450 likes | 534 Views
SGBDR Modélisation Construction Interrogation. Mary Vincent Laboratoire d’Informatique Médicale Faculté de Médecine Rennes, France. Historique. 1960 Uniquement des systèmes de gestion de fichiers plus ou moins sophistiqués. 1970
E N D
SGBDR ModélisationConstructionInterrogation Mary Vincent Laboratoire d’Informatique Médicale Faculté de Médecine Rennes, France http://www.med.univ-rennes1.fr
Historique • 1960 • Uniquement des systèmes de gestion de fichiers plus ou moins sophistiqués. • 1970 • Début des systèmes de gestion de bases de données réseaux et hiérarchiques proches des systèmes de gestion de fichiers. • Pb : • on ne pouvait pas interroger une base sans savoir où était l'information recherchée (on "naviguait") • Pas d’écriture de programmes possibles • Papiers sur le fondement de la théorie des BdDR • 1980 • Débuts des SGBDR • 1990 • Domination des SGBDR • Début des systèmes de gestion de bases de données orientés objet. http://www.med.univ-rennes1.fr
Cellule Chromosome Gène BdD hiérarchique Patron Chef Chef Sous-chef Sous-chef Sous-chef Sous-chef Sous-chef http://www.med.univ-rennes1.fr
BdD réseau Patron Patron Chef Chef Sous-chef Sous-chef Sous-chef Sous-chef Sous-chef http://www.med.univ-rennes1.fr
CodeGénome CodeChromosome BdD relationnelle Genome Chromosome Gene CodeGeneNomGene …. CodeGenomeNomGénome …. CodeChromosomeNumChromosome …. Select NomGene From Table Gene Where CodeChromosome = HUM-10 http://www.med.univ-rennes1.fr
BdD objet Transcris épissé Personne Taille Séquence AdresseSalaire Lieu de travail ARNm ARNt SnARN Patron Chef Sous-chef Localisation Moléculaire Vélo de fonction Ref chef Niveau d’expression condition Nom : Fonction : Primes de responsabilité Voiture de fonction Scooter de fonction Ref patron http://www.med.univ-rennes1.fr
SGBD • Définition et exemple • Clefs • Contraintes • Normalisation • Attentes • Une BdD est un ensemble d'informations qui est : • exhaustif, • non redondant, • structuré, • persistant. • Un SGBD est un logiciel qui permet de : • décrire, • modifier, • interroger, • administrer. http://www.med.univ-rennes1.fr
SGBD • Définition et exemple • Clefs • Contraintes • Normalisation • Attentes http://www.med.univ-rennes1.fr
SGBD • Définition et exemple • Clefs • Contraintes • Normalisation • Attentes Nom de la relation Attributs Clefs http://www.med.univ-rennes1.fr
SGBD • Définition et exemple • Clefs • Contraintes • Normalisation • Attentes • Clef primaire • Clef(s) secondaire(s) • Clef(s) étrangère(s) http://www.med.univ-rennes1.fr
SGBD • Définition et exemple • Clefs primaires • Contraintes • Normalisation • Attentes • Permet d’identifier de manière unique un tuple dans une table • Exemple : • Clef formée d’un attribut : • CLIENT (num_client, nom, prénom, adresse) • Clef formée de plusieurs attributs • PRODUIT (type, code, libelle, couleur) http://www.med.univ-rennes1.fr
SGBD • Définition et exemple • Clefs secondaires • Contraintes • Normalisation • Attentes • Autres clefs primaires possibles • Exemple : • CLIENT (num_client, code_INSEE, nom, prénom, adresse) Clef primaire Clef secondaire http://www.med.univ-rennes1.fr
SGBD • Définition et exemple • Clefs étrangères • Contraintes • Normalisation • Attentes • Clefs qui référencent des clefs primaires d’autres tables • Exemple : • CLIENT (num_client, nom, prénom, adresse) • PRODUIT (num_produit, libelle, couleur) • ACHAT (num_achat, #num_client, #num_produit, quantité) Clef primaire Clefs étrangères http://www.med.univ-rennes1.fr
SGBD • Définition et exemple • Clefs étrangères • Contraintes • Normalisation • Attentes • CLIENT (num_client, nom, prénom, adresse) • PRODUIT (num_produit, libelle, couleur) • ACHAT (num_achat, #num_client, #num_produit, quantité) http://www.med.univ-rennes1.fr
SGBD • Définition et exemple • Clefs étrangères • Contraintes • Normalisation • Attentes • Clients rennais ayant acheté des produits bleus http://www.med.univ-rennes1.fr
SGBD • Définition et exemple • Clefs • Contraintes d’intégrité • Normalisation • Attentes • Propriétés qui doivent toujours être vérifiées dans la base • Exemple: • Prix d’un produit toujours positif • Age compris entre 0 et 130 ans • Numéro de téléphone à 10 chiffres • … http://www.med.univ-rennes1.fr
SGBD • Définition et exemple • Clefs • Contraintes d’intégrité • Normalisation d’une BDR • Attentes • But et principe • Ensemble de règles à appliquer • Conformité des tables et relations avec le modèle relationnel utilisé par le moteur • Écriture simplifiée des requêtes • Assurer l’intégrité des données • Utilisation a priori optimale de ressources • Possibilité de Dénormaliser • Dépendances fonctionnelles • Les formes normales http://www.med.univ-rennes1.fr
SGBD • Définition et exemple • Clefs • Contraintes d’intégrité • Normalisation d’une BDR • Attentes • Dépendance fonctionnelle simple • Dépendance fonctionnelle de plusieurs valeurs A < - - > B A détermine plusieurs B A - > B A détermine B Si on connaît votre numéro de salarié dans l’entreprise on peut trouver votre nom. Si on connaît le nom d’un professeur on peut déterminer la liste de ses étudiants. http://www.med.univ-rennes1.fr
SGBD • Définition et exemple • Clefs • Contraintes d’intégrité • Normalisation d’une BDR • Attentes • Première forme normale • Les champs doivent être atomiques • Il ne peut y avoir de champs répétitifs • Les champs ont une signification constante et précise dans le temps • Exemple : • CLIENT (num_client, nom, prénom, lieu_date_naissance) • Pas de pertes d’informations • Requêtes facilitées http://www.med.univ-rennes1.fr
SGBD • Définition et exemple • Clefs • Contraintes d’intégrité • Normalisation d’une BDR • Attentes • Première forme normale • Les champs doivent être atomiques • Il ne peut y avoir de champs répétitifs • Les champs ont une signification constante et précise dans le temps • Exemple : http://www.med.univ-rennes1.fr
SGBD • Définition et exemple • Clefs • Contraintes d’intégrité • Normalisation d’une BDR • Attentes • Deuxième forme normale • Être en première forme normale • Les propriétés non clefs sont totalement dépendantes fonctionnellement de la totalité de la clé primaire • Tout attribut n’appartenant par à la clef ne dépend par que d’une partie de la clef http://www.med.univ-rennes1.fr
SGBD • Définition et exemple • Clefs • Contraintes d’intégrité • Normalisation d’une BDR • Attentes • Troisième forme normale • Être en deuxième forme normale • Tout attribut n’appartenant pas à une clef ne dépend pas que d’un attribut non clé • Si une valeur d’un champ non clé peut être déduite d’un autre champ non clé, alors la table n’est pas dans une 3ème forme normale Anomalie de suppression Anomalie d’insertion : nouveau service http://www.med.univ-rennes1.fr
SGBD • Définition et exemple • Clefs • Contraintes d’intégrité • Normalisation d’une BDR • Attentes • La normalisation n’est pas une finalité, mais un outil • On ne peut dénormaliser que si on a préalablement normaliser • justification http://www.med.univ-rennes1.fr
SGBD • Définition et exemple • Clefs • Contraintes • Normalisation • Attentes • Indépendance physique • Indépendance logique • Efficacité des accès aux données • Administration centralisée des données • Non redondance des données • Cohérence des données • Partageabilité des données • Sécurité des données • Résistance aux pannes http://www.med.univ-rennes1.fr
Conception de BdDR La conception d’une base de données n’est pas un domaine réservé aux informaticiens ! Preuve… Les logiciels de type SGBDR sont intégrés aux suites bureautiques les plus connues. Ex: ACCESS du pack Office. Cependant … La maîtrise d’un SGBDR est loin d ’être aussi facile à acquérir que celle d ’un logiciel de traitement de texte par ex. http://www.med.univ-rennes1.fr
Modélisation • Introduction • Définition • Construction • UML et Merise http://www.med.univ-rennes1.fr
Modélisation • Introduction • Définition • Construction • UML et Merise • Modèle entité association • Proposé par • Chen (USA) en 1976 • Tardieu en France, 1975 • Intégré à Merise en 1979 • Repris par le diagramme de classe d’UML • Pour faire un MCD : • utilisation des diagrammes de classes • Uniquement (pas d’autres diagrammes : cas, séquence…) http://www.med.univ-rennes1.fr
Modélisation • Introduction • Définition • Construction • UML et Merise • Les différentes composantes : • Attributs • Classes • Méthodes • Associations • Cardinalités http://www.med.univ-rennes1.fr
Modélisation • Introduction • Définition : Classe • Construction • UML et Merise • Description abstraite d’un objet de même structure et de même comportement • ~ Acteur • Modélisation : pas forcement lié au monde réel ELEVE MATIERE SALLE http://www.med.univ-rennes1.fr
Modélisation • Introduction • Définition : Attribut • Construction • UML et Merise • Données élémentaires • Sert à caractériser les classes et les associations • Exemple : ELEVE MATIERE SALLE ID_matiere Nom Coefficient Année ID_salle Nombre_place Batiment ID_eleve Nom Prenom Adresse Année naissance http://www.med.univ-rennes1.fr
Modélisation • Introduction • Définition : Clefs • Construction • UML et Merise • Un ou plusieurs attributs • Décrit un et un seul tuple de la classe (enregistrement) ELEVE MATIERE SALLE ID_matiere Nom Coefficient Année ID_salle Nombre_place bâtiment ID_eleve Nom Prénom Adresse Année naissance http://www.med.univ-rennes1.fr
Modélisation • Introduction • Définition : Association • Construction • UML et Merise • Association = relation • Lie deux classes ELEVE MATIERE SUIT ID_matiere Nom Coefficient Année ID_eleve Nom Prénom Adresse Année naissance MATIERE SALLE EST DISPENSEE EN ID_matiere Nom Coefficient Année ID_salle Nombre_place bâtiment http://www.med.univ-rennes1.fr
Modélisation • Introduction • Définition : Association • Construction • UML et Merise • Dimension : nombre de pattes de l’association • Collection : liste des classes qui participent à l’association • Exemple de « suit » • est de dimension 2 • sa collection est {ELEVES, MATIERE} ELEVE MATIERE SUIT ID_matiere Nom Coefficient Année ID_eleve Nom Prénom Adresse Année naissance http://www.med.univ-rennes1.fr
Modélisation • Introduction • Définition : Association de dimension 3 • Construction • UML et Merise PERSONNE VILLES Numéro Nom adresse ID_ville Nom Département Naissance DATE JJMMAAAA événement http://www.med.univ-rennes1.fr
Modélisation • Introduction • Définition • Construction : Cardinalités • UML et Merise • La cardinalité indique le nombre d’occurrences minimum et maximum qui peuvent intervenir dans une association. • Si la valeur de la cardinalité minimum est : • 0 : certaines occurrences de l’entité peuvent ne pas participer à l'association, • 1 : toutes les occurrences de l’entité participent à l'association. • Si la valeur de la cardinalité maximale est : • 1 : toutes les occurrences de l’entités participent au plus une fois à l'association, • * : certaines occurrences de l’entité peuvent participer plusieurs fois à l'association Salle MATIÈRE Numéro salle 1..* 1..1 Nom matière Nombre places Coefficient Année matière http://www.med.univ-rennes1.fr
Modélisation • Introduction • Définition • Construction : Cardinalités • UML et Merise ENSEIGNANT 1..* SALLE Numéro enseignant 1..1 Numéro salle Nom enseignant EST RESPONSABLE DE Nombre places 1..* EST DIPENSÉE 0..* 1..* MATIÈRE ENSEIGNE 0..* Nom matière PRÉ_REQUIE Coefficient 1..* Année matière 0..* 1..* SUIT Note 1..* ÉLÈVE Numéro élève Nom élève Adresse élève Année naissance http://www.med.univ-rennes1.fr
Modélisation • Introduction • Définition • Construction : Cardinalités • UML et Merise http://www.med.univ-rennes1.fr
Modélisation • Introduction • Définition • Construction : Cardinalités • UML et Merise http://www.med.univ-rennes1.fr
De l’UML vers les BDR • Les associations 1.1 • Les associations 1.* • Les associations *.* • Les associations 0..1,* • Traduction du diagramme de classe en BDR • 5 règles : • Règle 1 : Les classes deviennent des tables, les attributs les colonnes • Règles 2.3.4.5 : On gère les 3 types d’association. • 1.1 si les deux cardinalités sont 0..1 ou 1..1 • 1.* si une des deux cardinalités est 0..n ou 1..n • *.* si les deux cardinalités sont 0..n ou 1..n http://www.med.univ-rennes1.fr
De l’UML vers les BDR • Règles 2 : Les associations 1.1 • Les associations 1.* • Les associations *.* • Les associations 0..1,* A B 1 1 Table A (Clé_A Clé Primaire, Autres attributs de A, @Clé_B Référence B) Table B (Clé_B Clé Primaire, Autres attributs de B,@Clé_A Référence A) Livre Etat_livre Référence_li Num_etat_livre Couverture Pages Pourcent_usure 1 1 LIVRE(Référence_li, @Num_etat_livre) ETAT_LIVRE(Num_etat_livre, @Référence_li, Couverture, Pages, Pourcent_usure) http://www.med.univ-rennes1.fr
De l’UML vers les BDR • Règle 2 : Les associations 1.1 • Règle 3 : Les associations 1.* • Les associations *.* • Les associations 0..1,* A B 1 * Table A (Clé_AClé Primaire, Autres attributs de A) Table B (Clé_B Clé Primaire, Clé_A Référence A, Autres attributs de B) Livre Référence_li 1..* 1 LIVRE(Référence_li, @Num_etat_livre, @Num_oeuvre) OEUVRE(Num_oeuvre,Titre, ISBN) Oeuvre Num_oeuvre Titre ISBN http://www.med.univ-rennes1.fr
De l’UML vers les BDR • Règle 2 : Les associations 1.1 • Règle 3 : Les associations 1.* • Rège 4 : Les associations *.* • Les associations 0..1,* A B * * * * Table A (Clé_AClé Primaire, Autres attributs de A) Table B (Clé_BClé Primaire, Autres attributs de B) Table C (Clé_A Référence A, Clé_B Référence B, Clé primaire(Clé_A, Clé_B)) http://www.med.univ-rennes1.fr
De l’UML vers les BDR • Règle 2 : Les associations 1.1 • Règle 3 : Les associations 1.* • Rège 4 : Les associations *.* • Les associations 0..1,* Oeuvre Mot_clé 0..* Titre ISBN Nom_mot 0..5 OEUVRE(Num_oeuvre,Titre, ISBN) MOT_CLE(Ident_mot, Nom_mot) Table de jointure : REL_ŒUVRE_MOT_CLE(@ Num_oeuvre, @ Ident_mot) http://www.med.univ-rennes1.fr
De l’UML vers les BDR • Règle 2 : Les associations 1.1 • Règle 3 : Les associations 1.* • Règle 4 : Les associations *.* • Règles 5 : Les associations ternaires http://www.med.univ-rennes1.fr
De l’UML vers les BDR • Règle 2 : Les associations 1.1 • Règle 3 : Les associations 1.* • Règle 4 : Les associations *.* • Règles 5 : Les associations ternaires http://www.med.univ-rennes1.fr