Le modle relationnel L 2 A Semestre 4

  • Slides: 19
Download presentation
Le modèle relationnel L 2 A Semestre 4 Mehdi Benzine http: //bddinfo. e-monsite. com

Le modèle relationnel L 2 A Semestre 4 Mehdi Benzine http: //bddinfo. e-monsite. com

Rappel L’approche "bases de données" Modélisation des données � Éliminer la redondance des données

Rappel L’approche "bases de données" Modélisation des données � Éliminer la redondance des données � Centraliser et organiser correctement les données � Plusieurs niveaux de modélisation � Outils de conception Qu'est-ce qu'une base de données ? � Collection de données structurées � Interrogeable et modifiable par des langages de haut niveau (proches du langage naturel) � Partagée par plusieurs applications/utilisateurs Logiciel de Système de Gestion de Bases de Données (SGBD) � Factorisation des modules de contrôle des applications: interrogation, gestion des pannes, confidentialité, partage des données… � Administration facilitée des données 2

Rappel Objectifs des SGBD 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.

Rappel Objectifs des SGBD 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Indépendance physique des données Indépendance logique des données Manipulation simple Gestion des vues Optimisation des questions Gestion de la cohérence Gestion des pannes Concurrence d’accès Gestion de la confidentialité Standards 3

Le modèle relationnel � Proposé par E. F Codd en 1970 (publication ACM) �

Le modèle relationnel � Proposé par E. F Codd en 1970 (publication ACM) � Modèle logique basé sur la théorie mathématique des relations � R(X, Y) ={(X, Y) / X, Y entiers et Y divise X} est une relation entre 2 entiers � R (NuméroÉtudiant, Nom, Prénom, Note) est une relation entre un numéro d’étudiant, un nom, un prénom et une note. Cette relation caractérise un objet existant. � L'ensemble des valeurs que peut prendre une données est un domaine Exemple: Nom = {Benallegue, Smati …} Note = [0, 20] 4

Le modèle relationnel Colonnes, Relation ou table Attributs, Champs Relation, Table Numéro Étudiant Nom

Le modèle relationnel Colonnes, Relation ou table Attributs, Champs Relation, Table Numéro Étudiant Nom Prénom Note 12432 Benallegue Farid 12 13421 Smati Nabil 17 23632 Ayachi Fatiha 14 … … Lignes, Tuples, Nuplets 5

Propriétés � 2 propriétés des tuples à respecter (une relation est un ensemble de

Propriétés � 2 propriétés des tuples à respecter (une relation est un ensemble de tuples) �L’unicité des tuples: il ne peut pas y avoir de tuples identiques (chaque tuple est unique) �L’ordre des tuples: l’ordre des tuples n’a pas d’importance, c’est la même occurrence � 3 propriétés des attributs à respecter �Indivisibilité: Les données ne sont pas décomposables �Domaine unique: les attributs ne peuvent prendre n’importe quelle valeur (intervalle, type de données) �Ordre: l’ordre des attributs n’a pas d’importance 6

Domaine Un domaine est un ensemble de valeurs. �Entier �Réel �Booléen �Chaîne de caractères

Domaine Un domaine est un ensemble de valeurs. �Entier �Réel �Booléen �Chaîne de caractères �Date �Couleur {vert, blanc, rouge, jaune, noir, bleu} �… Etudiant(Numéro. Etudiant: int, nom: String, Prénom: String, Note: real[0, 20]) 7

Contraintes d’intégrité �Un ensemble de règles d'intégrité structurelle permet de faciliter la gestion de

Contraintes d’intégrité �Un ensemble de règles d'intégrité structurelle permet de faciliter la gestion de la cohérence des données. �Ces règles sont énoncées par des assertions sur les relations et les attributs. �De façon générale : il est extrêmement important de déclarer toutes les contraintes d’intégrité. Permet ensuite de se reposer sur le SGBDR pour la cohérence. 8

Clé primaire �Puisque chaque tuple doit être unique, à chaque tuple est associée une

Clé primaire �Puisque chaque tuple doit être unique, à chaque tuple est associée une clé unique, définie au niveau de la relation. �Une clé est un ensemble minimal d'attributs dont la connaissance des valeurs permet d'identifier un tuple de façon unique au sein de la relation considérée. �Une clé n'est pas forcément un attribut unique. 9

Clé primaire �On choisi une clé parmi les clés possibles (clés candidates) pour identifier

Clé primaire �On choisi une clé parmi les clés possibles (clés candidates) pour identifier chaque tuple : c'est la clé primaire. �Ce choix est guidé par la sémantique de la relation. �Exemple: Pour une relation étudiant choisir Numéro Étudiant et non pas Numéro d’Identification National. �Par convention, on représente la clé primaire en la soulignant dans l'énoncé de la relation. 10

Exemple Étudiant (Numéro. Etudiant, Nom, Prénom). �On aurait pu choisir le couple (Nom, Prénom)

Exemple Étudiant (Numéro. Etudiant, Nom, Prénom). �On aurait pu choisir le couple (Nom, Prénom) mais la simplicité pousse à prendre Numéro. Etudiant. Notes (Numéro. Etudiant, Code. UE, note). �La clé minimale (comprenant le moins d'attributs possible) doit être favorisée. 11

Contrainte d'unicité �La définition d'une clé primaire contient une contrainte d'unicité. �On peut aussi

Contrainte d'unicité �La définition d'une clé primaire contient une contrainte d'unicité. �On peut aussi spécifier que la valeur d'un (groupe d'attribut doit être unique, c'est-à-dire que deux tuples ne peuvent avoir la même valeur pour cet attribut. Exemple : Film (Num. Film, Titre, Réalisateur, Année). �Num. Film est la clé primaire mais on peut (doit!) spécifier que le couple (Titre, Réalisateur) est unique. 12

Contrainte de référence Pays(Nom, Devise, Capitale, Superficie) Devise(Numéro, Nb. Pieces, Nb. Billets, Nom) Le

Contrainte de référence Pays(Nom, Devise, Capitale, Superficie) Devise(Numéro, Nb. Pieces, Nb. Billets, Nom) Le Pays référence sa monnaie via la clé primaire de la relation Devise : les valeurs de l'attribut devise de la relation Pays sont les valeurs de l'attribut numéro de la relation Devise. Exemple: Pays('Algérie', 4, 'Alger', 2381741) Devise(4, 7, 5, 'dinar'), 13

Clé étrangère �Une contrainte référentielle exprime un lien obligatoire entre deux relations. �Une clé

Clé étrangère �Une contrainte référentielle exprime un lien obligatoire entre deux relations. �Une clé étrangère (ex. : devise) est un groupe d'attributs dans une relation R (ex. : Pays) qui doit correspondre à la clé primaire d'une autre relation R' (ex. : Devise). �Une relation possède une clé primaire, peut spécifier plusieurs clés étrangères. �Convention d'écriture: italique. 14

Clé étrangère (suite) Un attribut peut être à la fois une clé primaire et

Clé étrangère (suite) Un attribut peut être à la fois une clé primaire et étrangère : Film(Num. Film, Titre, Année), Acteur(Num. Acteur, Nom, Prénom), Casting(Num. Film, Num. Acteur, Personnage). Un acteur peut jouer dans plusieurs films et un film peut contenir plusieurs acteurs : lien n-n. 15

Clé étragère (suite) Pour maintenir la cohérence de la base de données, la contrainte

Clé étragère (suite) Pour maintenir la cohérence de la base de données, la contrainte d'intégrité référentielle impose que : �Lors d'une insertion, la valeur des attributs constituant la clé étrangère doit exister dans la relation référencée �Lors d'une suppression dans la relation référencée les tuples référençants doivent disparaître 16

Docteurs Prescriptions Id-D Nom Prénom 1 Kara Salim 2 Slimani Aicha 3 Abaoui Djamil

Docteurs Prescriptions Id-D Nom Prénom 1 Kara Salim 2 Slimani Aicha 3 Abaoui Djamil …. …… Id-C Ligne Id-M Posologie 1 1 12 1 par jour Consultations Id-D Id-P Id-C Date Prix 1 2 5 10 gouttes 1 2 1 15 juin 250 2 1 8 2 par jour 1 1 2 12 août 180 2 2 12 1 par jour 2 2 3 13 juillet 350 2 3 3 2 gouttes 2 3 4 1 mars 250 …. …. ………… Patients Médicaments Id-P Nom Prénom Ville 1 Touil Karim Sétif Id-M Nom Description 2 Touati Nabila Ain Arnat 1 Aspegic 1000 ………………. . 3 Kara Asma Ouricia 2 Fluisédal ………………. . 4 Allal Khaled NULL 3 Mucomyst ………………. . ………………. . 17

Contraintes de valeur d'attributs �On ne connaît pas forcément les valeurs de tous les

Contraintes de valeur d'attributs �On ne connaît pas forcément les valeurs de tous les attributs lors de l'insertion d'un tuple. Convention : valeur NULL �Contrainte de non-vacuité : un attribut ne doit pas être NULL. �Une clé primaire ne doit jamais être NULL. �Contrainte sur la valeur d'un attribut : contrainte de domaine �extension : saison IN ('hiver', 'printemps', 'été’, 'automne’) �restriction : durée NOT NULL AND durée > 0 18

Langage SQL Le langage SQL permet de manipuler les données et les schémas relationnels.

Langage SQL Le langage SQL permet de manipuler les données et les schémas relationnels. SQL se compose de plusieurs sous-ensembles parmi lesquels: �Langage de manipulation de données (Data Manipulation Language DML) permet l'interrogation, l'insertion, la modification et la suppression de tuples. �Langage de définition de données (Data Definition Language DDL) permet la création, la modification, et la suppression d'objets (tables, vues, index …) 19