LA Semestre 4 Mehdi Benzine
Le modèle relationnel Proposé par E.F Codd en 970 (publication ACM) Modèle logique basé sur la théorie mathématique des relations L'ensemble des valeurs que peut prendre une données est un domaine Exemple: Nom {Benallegue, Smati } Note [0, 0] Le produit cartésien de deux ensembles/domaines (A et B) est l'ensemble des couples (a, b) tels que a A et b B Le produit cartésien de n domaines est un ensemble de n-uplets ou tuples Une relation est un sous ensemble du produit cartésien de n domaines Exemple: R (Numéro Étudiant, Nom, Prénom, Note)
Le modèle relationnel Colonnes, Relation ou table Attributs, Champs Relation, Table Numéro Étudiant Nom Prénom Note 43 Benallegue Farid 34 Smati Nabil 7 363 Ayachi Fatiha 4 Lignes, Tuples, Nuplets 3
Propriétés propriétés des tuples à respecter L unicité des tuples : il ne peut y avoir de tuples identiques 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 4
Domaine Un domaine est un ensemble de valeurs. Entier Réel Booléen Caractère Chaîne de caractères Date Entier {000 0000} Couleur {vert, blanc, rouge, jaune, noir, bleu} 5
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. Notion principale : clé Mais aussi : contrôle des données manquantes et des valeurs d'attribut. De façon générale : extrêmement important de déclarer toutes les contraintes. Permet ensuite de se reposer sur le SGBDR pour la cohérence. 6
Clé primaire Puisque chaque tuple doit être unique, à chaque tuple est associé 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 unique attribut. 7
Clé primaire On choisi une clé parmi les 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 Sécurité Sociale. Par convention, on représente la clé primaire en la soulignant dans l'énoncé de la relation. 8
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. 9
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 (NumFilm, Titre, Réalisateur, Année). NumFilm est la clé primaire mais on peut (doit!) spécifier que le couple (Titre, Réalisateur) est unique. 0
Contrainte de référence Pays(Nom, Devise, Capitale, Superficie) Devise(Numéro, NbPieces, NbBillets, 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: Devise(4, 7, 5, 'dinar'), Pays('Algérie', 4, 'Alger', 3874)
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.
Clé étrangère (suite) Un attribut peut être à la fois une clé primaire et étrangère : Film(NumFilm, Titre, Année), Acteur(NumActeur, Nom, Prénom), Casting(NumFilm, NumActeur, Personnage). Un acteur peut jouer dans plusieurs films et un film peut contenir plusieurs acteurs : lien n-n. 3
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çant doivent disparaître 4
Docteurs Prescriptions Id-D Nom Prénom Kara Salim Slimani Aicha 3 Abaoui Djamil... Id-V Ligne Id-M Posologie par jour Visites Id-D Id-P Id-V Date Prix 5 0 gouttes 5 juin 50 8 par jour août 80 par jour 3 3 juillet 350 3 3 gouttes 3 4 mars 50... Patients Médicaments Id-P Nom Prénom Ville Touil Karim Sétif Id-M Nom Description Touati Nabila Ain Arnat Aspegic 000.. 3 Kara Asma Ouricia Fluisédal.. 4 Allal Khaled Sétif 3 Mucomyst........... 5
Contrainte de valeurs d'attribut 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é : clé primaire; autres attributs Restriction sur les valeurs d'un attribut : contrainte de domaine. extension : saison IN {'hiver', 'printemps', 'été', 'automne'} restriction : durée NOT NULL AND durée > 0 6
Langage Le langage SQL offre plusieurs sous-ensembles: 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 ) Langage de contrôl de données (Data Control Language DCL) permet la définition de contraintes d'intégrité, de droits d'accès aux objets 7