Bases de données Modèle relationnel
BD relationnelle Observation de la réalité, Collecte d informations Réflexion et modélisation Définitions des tables d une BD relationnelle Obtenir une représentation correcte de la réalité Pouvoir faire évoluer facilement la représentation
BD relationnelle Une seule table?? Exemple : bibliothèque Bibli(Titre, Auteur, Nom, Prénom,Adresse) Problèmes : Un livre peut avoir plusieurs auteurs Duplication des données Emprunter plusieurs livres Comment conserver un client qui rend son dernier livre Sémantique des données très mal représentée
BD relationnelle Observation et collecte d informations Analyse et modélisation des données en suivant une méthode «concrète, simple, non-ambiguë» Génération des tables (relations) de la BdD relationnelle à partir du schéma entités-associations, par une démarche systématique et simple Obtention d un schéma relationnel
Modèle E/A Entités : «objets concrets ou abstraits» provenant de l observation du monde réel. Possède un nom : personne, livre, commande, enseignement, Occurrence : instanciation d une entité Attribut : propriété d une entité (nom, couleur, marque,...), il possède un domaine de valeurs. Clé/Identifiant : ensemble minimum d attributs dont les valeurs identifient de façon unique chaque occurrence de l entité.
Modèle E/A CLIENT entité Nom : String Prénom : String Adresse : String NumClient : int DateNaissance : Date CLIENT clé Occurence Nom : «Dupont» Prénom : «Jean» Adresse : «5 rue..» NumClient : 14566 DateNaissance : 14-01- 1979
Modèle E/A Association : relation entre plusieurs entités. 1, 2, ou plus de 2 entités concernées, 2 ou plus de 2 occurrences concernées. Possède un nom : «emprunte», «conduit», Peut posséder des attributs. Exemple
Modèle E/A Personne Nom : String Prénom : String Adresse : String NumSS : int DateNaissance : Date Est dirigée par L association d une entité vers elle-même doit porter sur des occurrences différentes.
Modèle E/A Cardinalité d une association : «min.. max» «Compte le nombre de fois (min et max) où une occurrence de l entité peut se retrouver engagée dans l association» Cardinalité minimum : 0 : peut ne pas être engagée 1 : doit être engagée au moins une fois Cardinalité maximum : I : ne peut pas être engagée plus d une fois n : peut être engagée plus d une fois
Exemple Emprunteur Nom: String Prénom : String Adresse : String 0..n Emprunte Date Emprunt : Date 0..1 Livre TITRE : String ISBN : int 1..n 3 entités reliées par 2 associations Est décrit par 1..n Auteur Nom : String Prénom :String
Exemple Voiture Type : String Marque : String NV: int Couleur : String 1..n 1..1 Est conduit Appartient Date_achat : Date 0..n 0..n Personne Nom : String Prénom : String Adresse : String NumSS : int DateNaissance : Date 2 entités reliées par 2 associations différentes
Exemple Accident Type : String Description : String Numéro: int 1..1 Bing Un accident s est produit avec «telle» voiture conduite par «telle voiture» Voiture Type : String Marque : String NV: int Couleur : String 1..n 1..1 0..n Est conduit Appartient Date_achat : Date 0..n 0..n Personne Nom : String Prénom : String Adresse : String NumSS : int DateNaissance : Date
Introduction au MR Introduit par E.F. Codd (IBM) Modèle ensembliste simple, supportant des ensembles d enregistrements au niveau de description et manipulation Base de nombreux systèmes Objectifs Un haut degré d indépendance des programmes d applications et des activités interactives à la représentation interne des données Base solide pour traiter la cohérence et la redondance Développement de langages de manipulation de données Modèle extensible pour modéliser et manipuler simplement des données tabulaires Standard pour la description et la manipulation des BD
Introduction au modèle relationnel Le modèle relationnel de données connaît un grand succès pour les raisons suivantes : représentation simple des données à l'aide du concept unique de relation, existence d'une démarche rigoureuse (normalisation) permettant la construction du schéma base de SGBD relationnels et de langages d'interrogation renommés.
Concepts de base Attribut Attribut : Un attribut est un identificateur (un nom) décrivant une information stockée dans une base. Par exemple, le numérodesécuritésociale et le nom d'une personne sont des attributs.
Concepts de base Domaine Ensemble de valeurs caractérisé par un nom Le domaine d'un attribut est l'ensemble, fini ou infini, de ses valeurs possibles. Par exemple, l'attribut numérodesécuritésociale a pour domaine l'ensemble des combinaisons de quinze chiffres et nom a pour domaine l'ensemble des combinaisons de lettres (une combinaison comme cette dernière est généralement appelée chaîne de caractères ou, plus simplement, chaîne). Autres exemples : un ensemble d'entier, un ensemble de chaînes de caractères, {rouge, vert, bleu}
Concepts de base Relation relation est un sous-ensemble du produit cartésien d une liste de domaines caractérisé par un nom VINS CRU MILL REGION COULEUR CHENAS 1983 BEAUJOLAIS ROUGE TOKAY 1980 ALSACE BLANC TAVEL 1986 RHONE ROSE CHABLIS 1986 BOURGOGNE BLANC ST-EMILION 1987 BORDELAIS ROUGE Le degré d une relation est son nombre d attributs Une relation est représentée sous la forme d'un tableau à deux dimensions dans lequel les n attributs figurent les titres des n colonnes.
Concepts de base Tuple Les lignes d une relation correspondent à des n- uplets de valeurs Ligne d une relation correspondant à un enregistrement Une ligne CRUS REGION PRIX est appelée tuple Sancerre Loire 45 Chablis Volnay Bourgog ne 42 38
Concepts de base Schéma de relation Nom de la relation suivi de la liste des attributs et de la définition de leurs domaines. Noté sous la forme : R (A1 : D1, A2 : D2 Ai : Di,.An : Dn) R : le nom de la relation Ai : les attributs Di : les domaines associés Le SCHEMA D'UNE BASE DE DONNEES est l'ensemble des schémas des relations de la base et les contraintes associées Une relation est appelée TABLE dans les SGBD
Concepts de base Extension/Intentions Le schéma d une relation représente son intention, les propriétés (au moins certaines) communes et invariantes de tuples qu elle va contenir au cours du temps. Une table représente une extension d une relation, une vue des tuples qu elle contient à un instant donné Extension : Instance Intension est le résultat de la description des données et l extension fait suite à des manipulations et représente un état de base.
Les règles d intégrité structurelle Assertions qui doivent être vérifiées par les données contenues dans la base Règles qui sont inhérentes au modèle de données Règles de comportement MR impose une règle minimale qui est l unicité des clés Trois types de règles d intégrité : Les contraintes de référence Les contraintes d entité Les contraintes de domaine
Unicité de clé Une relation est un ensemble de tuples Un ensemble n ayant pas d élément en double Afin d identifier les tuples d une relation sans donner toutes les valeurs et d assurer l unicité des tuples, la notion de clé est utilisée. Clé : Ensemble minimal d attributs dont la connaissance des valeurs permet d identifier un tuple unique de la relation considérée. Toute relation possède au moins une clé S il existe plusieurs clés, on choisit en général une arbitrairement qui est appelée clé primaire La détermination d une clé pour une relation nécessite une réflexion sur la sémantique de la relation.
Contraintes de références Modèle relationnel est utilisé pour représenter des entités du monde réel qui sont des objets ayant une existence propre et des associations entre ces objets Une entité -> tuple Une entité est identifié par la valeur de sa clé Une association est modélisé par une relation comportant les clés des entités spécifiques et les caractéristiques propres à l association Ex : BUVEURS, VINS, ABUS Le maintient des liens obligatoires a justifié l introduction de la notion de contrainte référentielle
Contraintes de références Contrainte d intégrité portant sur une relation R1, consistant à imposer que la valeur d un groupe d attributs apparaisse comme valeur de clé dans une autre relation R2. Une association ne peut exister que si les entités participant à l association existent La représentation de contraintes de référence peut s effectuer par la définition de clés étrangères Une clé étrangère est un groupe d attributs qui doit apparaître comme une clé dans une autre relation Contraintes référentielles définissent des liens obligatoires entre relations Contraintes très fortes qui conditionnent le succès des opérations de mises à jour.
Valeurs Nulles et clés Valeur conventionnelle introduite dans une relation pour représenter une information inconnue ou inapplicable. Contrainte d entité : contrainte d intégrité imposant que toute relation possède une clé primaire et que tout attribut participant à une clé primaire soit non nul.
Contraintes de domaines Une relation est construite à partir d un ensemble de domaines, souvent limités à {entier, chaîne..} Contrainte d intégrité imposant qu une colonne d une relation doit comporter des valeurs vérifiant une assertions logique.
Passage de E/A au modèle relationnel
Passage Modèle E/A au Modèle relationnel Règle 1 Chaque type d entité donne naissance à une relation du même nom. Chaque propriété du type d entité devient un attribut de la relation. L identifiant du type d entité devient la clé de la relation.
Passage Modèle E/A au Modèle relationnel Règle 2 Si un type d association n a aucune patte de cardinalité maximale égale à 1, alors : ce type d association devient une relation chaque propriété du type d association devient un attribut de la relation l identifiant du type d association devient la clé de la relation.
Passage Modèle E/A au Modèle relationnel Règle 3 Un type-association dont au moins une patte a une cardinalité maximale à 1 ne devient pas une relation. Il faut alors considérer un des deux types-entités (forcément un dont la patte vers le type-association a une cardinalité maximale valant 1) et la relation correspondant à ce type-entité se voit simplement ajouter comme attribut l'identifiant de l'autre typeentité.
Passage Modèle E/A au Modèle relationnel Type d association achète Le modèle relationnel sera : CLIENT(num_client, nom_client, adresse) FOURNISSEUR(num_fournisseur, nom_fournisseur, adresse) auquel s ajoute la relation issue du type d association achète : ACHAT(num_client, num_fournisseur).
Passage Modèle E/A au Modèle relationnel Type d association propriétaire Le modèle relationnel sera : PERSONNE(identifiant_personne, ) APPARTEMENT(identifiant_appartement, ) auquel s ajoute la relation, issue du type d association propriétaire : PROPRIETAIRE(identifiant_personne, identifiant_appartement).
Passage Modèle E/A au Modèle relationnel Type d association commande Le type d association Passée par n est donc pas transformé en relation : on ajoute un attribut dans la source (donc dans le type d entité Commande). L attribut ajouté est la clé du type d entité but de la DF, donc l attribut num_client, clé de Client.
Passage Modèle E/A au Modèle relationnel Le modèle relationnel sera donc : COMMANDE(num_commande, date, num_client*) CLIENT(num_client, nom, adresse) ARTICLE(num_article, designation, prix) auquel s ajoute la relation issue de Concerne que l on appellera DETAIL_COMMANDE : DETAIL_COMMANDE(num_commande, num_article, quantité).
Passage Modèle E/A au Modèle relationnel Type d association enseignement Le type d association Enseignant est une DF. Il n est pas transformé en relation, mais on ajoute dans la relation source de la DF (c està-dire dans UV) l attribut clé (code_professeur) du type d entité but (Professeur).
Passage Modèle E/A au Modèle relationnel Le modèle relationnel sera donc : ELEVE(code_eleve, nom, prenom) UV(code_UV, nom, annee, code_professeur*) PROFESSEUR(code_professeur, nom, prenom) auquel s ajoute la relation issue de A suivi que l on appellera NOTE : NOTE(code_eleve, code_uv, note).
Schéma E/A de la bibliothèque universitaire LIVRE N_LIVRE TITRE LANGUE 1,N 1,N 1,1 EXISTE EXEMPLAIRE N_EXEMPLAIRE DATE_ACHAT 0,1 ECRIT EMPRUNTE 1,N 0,N AUTEUR N_AUTEUR ETUDIANT N_ETUDIANT NOM PRENOM NATIONALITE NOM_ETUDIANT PRENOM ADRESSE
Arités LIVRE N_LIVRE TITRE LANGUE 1,N 1,1 EXISTE EXEMPLAIRE N_EXEMPLAIRE DATE_ACHAT 0,1 Un livre existe en 1 ou n exemplaire Un exemplaire l est de 1 seul est unique livre Un exemplaire est emprunté par au maximum 1 étudiant. Il peut ne pas être emprunté. Un étudiant emprunte autant de livre qu il le désire. EMPRUNTE 0,N ETUDIANT N_ETUDIANT NOM_ETUDIANT PRENOM ADRESSE
Passage au Modèle Relationnel LIVRE N_LIVRE LIVRE(N_LIVRE, TITRE, LANGUE) TITRE LANGUE 1,N AUTEUR(N_AUTEUR, NOM_AUT, PRENOM_AUT, NATIONALITE) ECRIT ECRIT(N_AUTEUR, N_LIVRE) 1,N AUTEUR N_AUTEUR L identifiant devient une clé. NOM PRENOM NATIONALITE
Clés étrangères LIVRE N_LIVRE TITRE LANGUE 1,N 1,1 EXISTE EXEMPLAIRE N_EXEMPLAIRE DATE_ACHAT LIVRE(N_LIVRE, TITRE, LANGUE) EXEMPLAIRE(N_EXEMPLAIRE, DATE_ACHAT) EXISTE(N_LIVRE, N_EXEMPLAIRE) LIVRE(N_LIVRE, TITRE, LANGUE) EXEMPLAIRE(N_EXEMPLAIRE, DATE_ACHAT, N_LIVRE)
Passage au Modèle Relationnel LIVRE N_LIVRE TITRE LANGUE 1,N 1,1 EXISTE EXEMPLAIRE N_EXEMPLAIRE DATE_ACHAT 0,1 LIVRE(N_LIVRE, TITRE, LANGUE) EXEMPLAIRE(N_EXEMPLAIRE, DATE_ACHAT, N_ETUDIANT, N_LIVRE) ETUDIANT(N_ETUDIANT, NOM_ETU, PRENOM_ETU, ADRESSE) EMPRUNTE 0,N ETUDIANT N_ETUDIANT NOM_ETUDIANT PRENOM ADRESSE
Démarche de conception Identifier les entités les plus naturelles (sujets, compléments) Identifier les associations entre ces entités ( verbes n exprimant pas de dépendances fonctionnelles). Identifier les attributs et les identifiant de ces entités et de ces association. Exprimer les cardinalités et les rôles (distinguer le singulier du pluriel). Enumérer des CI (Contraintes d Intégrité).