annuaire électronique flux opérant catalogue …barry/access/cours1.pdfmotivation organiser le...
TRANSCRIPT
Motivation Organiser le Système d’Information de l’Entreprise
FLUXSORTANT
Modèle de l’Entreprise
Système de Pilotage
Système d’Information
Système OpérantFLUX
ENTRANT
Modélisation d’une entreprise Notions de bases Définition intuitive d’une BD (1)
Définition intuitive : on peu considérer une Base de Données (BD) comme une grande quantité de données (ou ensemble d’informations), centralisées ou non, servant pour les besoins d’une ou plusieurs applications, interrogeables et modifiables par un groupe d’utilisateurs travaillant en parallèle.
Exemples d’application Système Socrate : SNCF Annuaire électronique Catalogue électronique d’une bibliothèque
Notions de bases Définition intuitive d’une BD (2)
Définition ; une base de données est un ensemble structuré de données (1) enregistrées sur des supports accessibles par l’ordinateur (2) pour satisfaire simultanément plusieurs utilisateur (3) de manière sélective (4) en un temps opportun (5).
(1) : Organisation et description de données (2) : Stockage sur disque (3) : Partage des données (4) : Confidentialité (5) : Performance
SGBD (1)
Définition : Le logiciel qui permet d’interagir avec une BD est Système de Gestion de Base de Données (SGBD)
BDSGBD
SGBD (2)
Un SGBD est un intermédiaire entre les utilisateurs et les fichiers physiques
Un SGBD facilite- la gestion de données, avec une représentation intuitive simple sous forme de table par exemple- la manipulation de données. On peut insérer, modifier les données et les structures sans modifier les programmes qui manipulent la base de données
Programme 1
Programme 2
Programme 3
SGBDFichier 1
Fichier 2
Fichier 3
Base de données
Démarche de construction d’une BD relationnelle
InterviewDocuments
ModélisationEntité association
Schéma logique enEntité-Association
Transformation en relationnel
Schéma conceptuelen relationnel
Le modèle relationnelGénéralités
Notions de modèle de données : Un modèle est un ensemble d’outils utilisés pour décrire et manipuler des
données Modèle relationnel
Créé par CODD (69/70) La majorité des SGBD actuels sont basés sur ce modèle Les données sont organisées sous forme de tables à deux dimensions, une
table correspondant à une relation. Les données sont manipulées par des opérateurs de l’algèbre relationnelle L’état de la base est défini par un ensemble de contraintes d’intégrité
Normalisation Au modèle relationnel est associé la théorie de la normalisation des relations
qui permet de se débarrasser des incohérences au moment de la conception d’une base de données.
Concepts du modèle (1)
Table (relation) : Vision tabulaire du relationnel- les données sont représentées dans une table- Exemple : la table OUVRAGES décrit un ouvrage
12TA1 Réseaux informatique Eyrolles 1998 10 Interconnexion, ….13G01 Algorithmes génétiques Eyrolles 1994 5 Informatique, ….
Côte Titre Editeur Année NbExemplaire Thème
OUVRAGES
Concepts du modèle (2)
Attribut : nom donnée à une colonne d’une table (exemple cote, titre, editeur, etc…). La première ligne de la table comporte ses attributs
Nom de la table (ou de la relation) : OUVRAGES Tuple (ou n-uplet) : nom donné à une ligne comportant des valeurs saisies. Extension d’une table : le contenu de la table à savoir tous les tuples Cardinalité : nombre de tuples de la relation. Exemple la cardinalité dans
OUVRAGES est 2 L’ordre des lignes et des colonnes n’est pas significatif Pas de lignes identiques Une case possède une et une seule valeur
Concepts du modèle (3)
Attribut Nom donné à une colonne d’une relation Prend ses valeurs dans un domaine
Domaine : ensemble de valeurs possibles prises par les attributs Exemple :
Entier, reel, chaines de caractères Euro Salaire = {4 000..100 000) Couleur = {bleu, blanc, rouge}
Notions de clé primaire
Clé primaire : Groupe d’attributs minimum qui détermine un tuple d’une manière unique dans la table Exemple de clés : le numéro de la sécu, le numéro d’étudiant La clé de la table OUVRAGE est l’attribut « cote », car la cote
permet de déterminer de façon unique une ligne de la table. ATTENTION : la clé de détermine par rapport à toutes les valeurs
possibles de l’attribut (ou les attributs) formant la clé primaire, et surtout pas par rapport aux valeurs déjà saisie
Remarque : toute table doit obligatoirement avoir une clé primaire
Schéma d’une table
Le schéma d’une table, appelé aussi le schéma en intention, comporte le nom de la relation, ses attributs + format et la clé primaire.
La clé primaire est souvent soulignée (et/ou mise en gras)
Exemple : le schéma de la table OUVRAGES est OUVRAGES (cote : texte, titre : texte, editeur : texte,
NbExemplaire, numérique, année : date, thème : texte)
Problème de Redondance des données
La redondance = répétition des informations Un des objectifs des SGBD est (de nous permettre) de
représenter les données avec le moins de redondance possible
Pour chaque ouvrage nous désirons avoir ses auteurs dans la base. Ceci nous amène à créer un attribut supplémentaire : Auteur. Or un ouvrage peut avoir plusieurs auteurs. Nous sommes donc obligés de créer des tuples supplémentaires (un pour chaque auteur). apparition de redondance
Comment éliminer ces redondances ?
Eliminer les redondances (1)
Pour éliminer les répétitions, nous allons dans un premier tempsconstruire une table auteur comportant tous les auteurs
La table auteur est décrite par AUTEURS (NumAuteur, nomAuteur, PrénomAuteur).Nous avons rajouté l’attribut NumAuteur pour représenter la clé. NumAuteur est un numéro qui peut être donné automatiquement par le SGBD.
Dans la table OUVRAGE, nous pouvons remplacer chaque nom d’auteur par son numéro.
Cette représentation nous permet effectivement de réduire la table OUVRAGES, il n’y a que le numéro de l’auteur au lieu du nom et du prénom, mais il y a toujours des redondances. La redondance provient du fait qu’un OUVRAGE peut avoir plusieurs auteurs
Pour éliminer ces redondances, nous allons construire une table ECRIT qui permet de relier les OUVRAGES et leurs AUTEURS.
Eliminer les redondances (2)
Rappelons qu’un des intérêts d’un SGBD est sa possibilité de créer des liens entre les objets
Le schéma de la table ECRIT est ECRIT (cote, NumAuteur), il suffit donc de prendre les clés primaires des tables OUVRAGES et AUTEURS et former une nouvelle table, en l’occurrence ECRIT.
La base de données décrivant les OUVRAGES sera composé des tables suivantes : AUTEURS (NumAuteur, Nom, Prénom) OUVRAGES (cote, Titre, NbExemplaire, Année, Editeur, Theme) ECRIT (cote, NumAuteur)
Noter que nous avons supprimé l’attribut NumAuteur de la table OUVRAGES
Clé étrangère
Les attributs cote et NumAuteur de la table ECRIT proviennent en fait respectivement des tables OUVRAGES et AUTEURS. Ces deux attributs sont clés primaires dans chacune de ces tables
Définition : nous appelons Clé étrangère toute clé primaire apparaissant dans une autre table
Exemple : NumAuteur est une clé étrangère dans le table ECRIT Cote est aussi une clé étrangère dans ECRIT Par convention, une clé étrangère est soulignée en pointilé (et/ou mise en
italique) Attention : la notion de clé est toujours liée à une table. Un attribut (ou
groupe d’attributs) est clé primaire, ou clé étrangère dans une table donnée.
Contraintes d’intégrités (1)
Un des avantages des bases de données par rapport à une gestion de fichiers traditionnelle réside dans la possibilité d’intégrer des contraintes que doivent vérifier les données à tout instant.
Exemple : on souhaite poser les contraintes suivantes : Le nombre d’exemplaire de chaque OUVRAGE doit être supérieur à 0
(zéro) Chaque OUVRAGE doit avoir au moins un auteur Tec.
Ceci est possible grâce à la notion de contraintes d’intégrité Définition : Des contraintes d’intégrités sont des assertions qui doivent
être vérifiées à tout moment par les données contenues dans la base de données.
Contraintes d’intégrités (2)Trois type de C.I. obligatoires
Contrainte de clé : une relation doit posséder une clé primaire Contrainte d’entité : un attribut d’une clé ne doit pas possèder de valeurs
nulles (vides) Contraintes de référence (pour les clés étrangères), c’est une contrainte
exprimée entre deux tables. Tout tuple d’une relation faisant référence à une autre relation doit se référer à un tuple qui existe : Intuitivement, cela consiste à vérifier que l’information utilisée dans un
tuple pour désigner un autre tuple est valide, notamment si le tuple désigné existe bien
En d’autre terme, quand on désigne un attribut comme clé étrangère, les seules valeurs que peut prendre cet attribut sont celles qui sont déjà saisies dans la table qu’il référence.
Contraintes d’intégrités (3)
Contrainte optionnelle Contrainte de domaine : liée au domaine de définition d’un attribut Exemple : NbExemplaire > 0
Les contraintes d’intégrité sont vérifiées (exécutées) à chaque mise à jour de la base de données (ajout, suppression ou modification d’un tuple). Si lors d’un mise à jour une contrainte n’est pas satisfaite, cette mise à jour ne peut pas avoir lieu.
Exemple (1)
Schéma de la relation AUTEURS AUTEURS (NumAuteur, Nom, Prénom)
Schéma de la relation EDITEURS EDITEURS (NumEditeur, Nom, Adresse)
Schéma de la relation OUVRAGES (avec la modification de l’exercice précédent) OUVRAGES (cote, Titre, NbExemplaire, Annee, NumEditeur,
Theme) Clé primaire : cote Contrainte de domaine : NbExemplaire > 0 Contrainte référentielle : OUVRAGES.NumEditeur est une clé
étrangère et fait référence à EDITEURS.NumEditeur ou encore OUVRAGES.NumEditeur REFRENCE EDITEURS.NumEditeur
Exemple (2)
Schéma de la table ECRIT ECRIT (NumAuteur, cote) Clé primaire : NumAuteur, cote Contraintes référentielles :
ECRIT.NumAuteur REFERENCE AUTEURS.NumAuteur ECRIT.cote REFERENCE OUVRAGES.cote Le fait d’écrire ECRIT.cote REFERENCE OUVRAGES.cote, c’est-à-
dire définir l’attribut cote dans ECRIT comme clé étrangère, implique une contrainte référentielle. Ceci se traduit par ; les seules valeurs que peut prendre cote dans ECRIT sont celles qui sont déjà saisies dans cote d’OUVRAGES.
Schéma d’une base de données
Le schéma d’une base de données est composée de l’ensemble des schémas des tables (relations) définies dans cette base de données
Exemple de schéma de la base de données permettant la gestion denotices bibliographiques : AUTEURS (NumAuteur, Nom, Prénom) OUVRAGES (cote, Titre, NbExemplaire, Annee, NumEditeur, Theme)
Contrainte de domaine : NbExemplaire > 0 Contrainte référentielle : OUVRAGES.NumEditeur REFERENCE
EDITEURS.NumEditeur ECRIT (NumAuteur, cote)
Contraintes référentielles : ECRIT.NumAuteur REFERENCE AUTEURS.NumAuteur ECRIT.cote REFERENCE OUVRAGES.cote
EDITEURS (NumEditeur, Nom, Adresse)
AUTEUR
NumAuteurNomprénom
OUVRAGE
CoteTitreNbExemplaireAnnéeThème
EDITEUR
NumEditeurNomAdresse
A pour éditeur
1,1
1,N
Ecrit
1,N
1,N
Modèle Entité Association
Création d’une base de données vide
Base de données existante(s)
Création d’une nouvellebase de données
Remplissage d’une base de données
Indications
• Une base de données sous Access est composée de tables.
• Exemple :– Une table AUTEURS permettant de stocker des indications
portant sur tous les auteurs dont on désire garder les coordonnées
– Une table OUVRAGES permettant se stocker des indications sur les ouvrages que chaque auteur de la table AUTEURS a écrit.
– Une table ECRIT permettant de savoir qui a écrit quoi.
Création d’une table en mode création
Construction d’un table
• La table AUTEURS stocke une liste de coordonnées d’auteurs.
• Chaque auteur est caractérisé par un nom et un prénom.• Deux auteurs peuvent avoir un même nom et un même
prénom. Aussi afin de les reconnaître, nous leur associons un numéro unique.
• Un auteur est donc caractérisé par trois caractéristiques (ou champ) :– NumAuteur (un numéro identifiant chaque auteur de manière unique)– Nom – Prénom
Création d’un champ
Création d’un champ numérique automatique Donner un nom à la table
Click surl’icône enregistrement
Remplissage de la table AUTEURS (1)
Click ici
Remplissage de la table AUTEURS (2)
La table est vide pour le moment.
Zone de remplissagemanuelle
Zone de remplissageautomatique
Remplissage de la table AUTEURS (3)
En cours decréation
Les numéross’incrémententautomatiquement
Utilisation de la touche tabulation afin de passer d’un champ à un autre.
Navigation dans une table
Nombre d’auteurs présentsdans la table.Positionnement sur le
premier auteurPositionnement sur ledernier auteur
Passage àl’auteur suivant
Passage à l’auteurprécédent
Positionnement sur le nouvel auteur
Création d’un champ numérique
Le nombre d’enfantsdoit être inférieur à 10
Message indiquant que la valeur du champ « nb enfant » n’est pas correct
Création d’une zone déroulante (1)
Création d’une zone déroulante (2)
Liste des valeurspossibles
Création d’une zone déroulante (3)
Saisie d’une valeur dans la liste
Pour que la valeur soit obligatoirement dans la liste, il faut remplir le champ« valide si »
Restriction des valeurs possibles
Exercice 1
• Créer la table OUVRAGES avec les champs :– Titre : texte– NbExemplaire : > 0 et avec pour valeur par défaut : 10– Editeur : Flamarion ou Eyrolles ou Europia ou cepadues– Cote : numéro automatique– Theme : texte avec pour valeur par défaut : « policier ».
• Créer la table ECRIT avec les champs :– Cote : Numérique– NumAuteur : Numérique
Exercice 2
ETUDIANT (NumEtudiant : Numéro automatiqueNom : texte, Adresse : texte, Date_Naissance : date)
INSCRIPTION (NumEtudiant : Numérique, Uv : texte,Date_Inscription : date Moyenne : Numérique)
UNITE_VALEUR (Uv : texte, Nb_Heures : numérique > 0 et < 200, NumResponsable : numérique)
RESPONSABLE (NumResponsable : numero automatique,Nom : texte, Piece : texte, Departement : liste de valeurs possibles
(Mathématique, Histoire, Informatique)
Création d’une clé primaire simple (1)Clic sur le boutondroit de la souris
Le champ NumAuteurest la clé primaire de la table AUTEURS
Création d’une clé primaire simple (2)1) Sélection duchamp
2) Sélection et clic surl’icône clé
3) Création de la clé primaire
La valeur d’un champ dépend d’un champ d’une autre table (1)
La valeur de du champ NumAuteur de la table ECRIT doit être une valeur du champ NumAuteur de la table AUTEURS
Sélection de la table AUTEURS
La valeur d’un champ dépend d’un champ d’une autre table (2)
Sélection d’une valeur
La valeur de ces champs peutprendre une valeur qui n’est pasprésente dans les listes respectives
Contraintes référentielles(1)
Clic sur cette icône
Ces liens sont dus auxcréations de listes indiquantqu’il y a un lien entre les champs.
Contraintes référentielles(2)
Double clic
Contraintes référentielles(3)
Affichage de plusieurs champs dans une liste de choix
C’est bien le NumAuteur qui est stocké mais à l’écran nous voyons uniquement le nom de l’auteur
Insertion de tuples dans une table à partir d’une autre table (1)
Cet icône indique que ce champ est lié avec le champ d’une autre table
Insertion de tuples dans une table à partir d’une autre table (2)
Clic sur l’icône +
Diderot a écrit les ouvragesde cote 3, 2, 1.
Georges Simenonn’a pas encore écritd’ouvrages
On crée un nouveau tupledans la table ECRIT indiquantquel nouvel ouvrage a écritDiderot
Insertion de tuples dans une table à partir d’une autre table (3)
On indique ici que Diderot à écrit l’ouvrage de Cote 4
Le tuple a bien été créé.
Exercice 1
Reprenez la base de données gérant les inscriptions des étudiants dans des unités de valeurs en y créant les clés primaires avec les dépendancesfonctionnelles correspondantes.
ETUDIANT (NumEtudiant, Nom, Adresse, Date_Naissance)
INSCRIPTION (NumEtudiant, Uv, Date_Inscription, Moyenne)avec NumEtudiant = ETUDIANT. NumEtudiant et Uv = UNITE_VALEUR.Uv
UNITE_VALEUR (Uv, Nb_Heures, NumResponsable)avec NumResponsable = RESPONSABLE.NumResponsable
RESPONSABLE (NumResponsable, Nom, Piece, Departement)