Le modèle relationnel Plan 1. Concepts descriptifs

Slides:



Advertisements
Présentations similaires
REFERENTIEL DE LA SERIE STG
Advertisements

Bases de Données Avancées: Bases de Données Relationnelles
Programme Introduction aux BD et aux SGBD Le modèle relationnel
Fonctionnalités des SGBD
Algèbre relationnelle
Optimisation de Requêtes
Bases de données orientées-objets
INTEGRITE ET BD ACTIVES
LE MODELE RELATIONNEL INVENTE PAR T. CODD (IBM SAN-JOSE)
SGBDR : LA GESTION DES VUES
Georges Gardarin 1 LE LANGAGE DE REQUETES SQL l Origines et Evolutions l SQL1 86: la base l SQL1 89: l'intégrité l SQL2 92: la nouvelle norme l SQL3 98:
Programme Introduction aux BD et aux SGBD Le modèle relationnel
Année universitaire Système dinformation Le SQL (Structured Query Language) langage dinterrogation dune base de données.
Initiation au système d’information et aux bases de données
Les contraintes d’integrité
Contrôles d'accès aux données
Rappel sur les bases de données et le vocabulaire
LE LANGAGE SQL Langage de manipulation de données (LMD)
Algèbre relationnelle
Modélisation E/R des Données
Introduction à la conception de Bases de Données Relationnelles
LANGAGES LIES AU MODELE RELATIONNEL
Les bases de données Cours assuré par: Mlle Smii imen
Chap 4 Les bases de données et le modèle relationnel
Le modèle relationnel.
3 Introduction au modèle relationnel 3.1 Concepts de base
L’utilisation des bases de données
Modèle Logique de Données
MODELE RELATIONNEL concept mathématique de relation
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
Algèbre Relationnelle
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
Cours de Base de Données & Langage SQL
Cours N°2 Base de Données & Langage SQL
Inventé par T. Codd (IBM Recherche)
Les concepts et les méthodes des bases de données
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 1 Modèle relationnel Historique.
1. Représentation des informations
Introduction.
Le langage de requêtes SQL
1 BDs Orientées Objets Witold LITWIN. 2 Pourquoi ? F Les BDs relationnelles ne sont pas adaptées aux applications CAD/CAM, cartes géo... F le problème.
Optimisation de requêtes
INTEGRITE ET BD ACTIVES
Bases de Données Relationnelles
1 G. Gardarin Optimisation de Requêtes  1. Introduction  2. Arbres relationnels  3. Restructuration algébrique  4. Modèle de coût  5. Choix du meilleur.
PostgreSQL – Présentation
DEFINITION DES DONNEES : schéma conceptuel. Schéma conceptuel instructiondescription CREATE TABLEcréation d'une relation ALTER TABLEmodification de la.
Sélection de colonnes (la projection)
1 J. PHILIPP d'après G. Gardarin SGBDR : la gestion des vues l 1. Contexte l 2. Vues externes l 3. Interrogation des vues l 4. Mises à jour des vues l.
1 Initiation aux bases de données et à la programmation événementielle Responsable : Souheib BAARIR. (le sujet de votre .
21/04/2015© Robert Godin. Tous droits réservés.1 6Gestion des contraintes d’intégrité en SQL n Contrainte d'intégrité statique – respectée pour chacun.
Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio.
Définition des contraintes Vérification des contraintes Triggers
06/04/06 LES BASES DE DONNEES INTRODUCTION CogniTIC – Bruxelles Formation - Cepegra.
Le langage SQL.
Séance /10/2004 SGBD - Approches & Principes.
Initiation aux bases de données et à la programmation événementielle
Initiation aux bases de données et à la programmation événementielle
1 Initiation aux bases de données et à la programmation événementielle Cours N°8 : Gestion de la cohérence avec des zones de liste déroulantes. Souheib.
INTRODUCTION AUX BASES DE DONNEES Base et métabase
Introduction Module 1.
Bases de données – Cours 3
Les bases de données Séance 4 Construction du Modèle Physique (la BDD)
Bases de données : modèlisation et SGBD Séance 3.
Schéma de base de données Présentation. Conception du schéma logique  Transformation du schéma conceptuel en structures de données supportées par les.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 4 Support de cours rédigé par Bernard COFFIN Université.
1 Les bases de données Séance 5 -- Le Langage de Définition de Données ou la manœuvre de la structure de la base -- Le Langage de Manœuvre de Données.
Langage de manipulation de données (LMD)
Transcription de la présentation:

Le modèle relationnel Plan 1. Concepts descriptifs 2. L'algèbre relationnelle 3. Concepts additionnels

Le modèle relationnel Inventé par T. CODD (IBM SAN-JOSE). Publication : ACM 1970. Concepts de base du modèle Description des données à partir du LDD (Langage de Description des Données) Manipulation des données à partir du LMD (Langage de Manipulation des Données) Des concepts additionnels ont été progressivement définis. 1

1. Concepts descriptifs Ensemble de concepts de formalisation de la description d'article de fichiers plats. Le modèle est normalisé et extensible. Introduction de types variés de données (SQL2). Introduction de la gestion dynamique du temps (temps dynamique) et des concepts de programmation orientée objets (SQL3). 2

Domaine Ensemble de valeurs caractérisées par un nom. Exemples ENTIER REEL CHAINES DE CARACTERES FRANC SALAIRE = {4 000..100 000} COULEUR= {BLEU, BLANC, ROUGE} POINT = {(X:REEL,Y:REEL)} TRIANGLE = {(P1:POINT,P2:POINT,P3:POINT)} 3

Produit cartésien Le produit cartésien D1  D2...  Dn est l'ensemble des tuples (N-uplets) <V1,V2,...,Vn> tels que Vi Di Exemple D1 = {Bleu, Blanc, Rouge}, D2 = {Vrai, Faux} Bleu Vrai Bleu Faux Blanc Vrai Blanc Faux Rouge Vrai Rouge Faux D1  D2 représenté par 4

Relation Une relation est un sous ensemble du produit cartésien d'une liste de domaines, caractérisée par un nom. Exemple D1 = COULEUR D2 = BOOLEEN CoulVins Coul Choix Bleu Faux Blanc Vrai Rouge Vrai D1  D2 représenté par 5

Attribut Le modèle relationnel est perçu au travers d'une vision tabulaire. Une relation est une table bidimensionnelle. Une ligne est un tuple. Attribut Un identificateur est associé à chaque colonne pour la repérer, indépendamment de son numéro d'ordre. Les valeurs autorisée d'un attribut sont définies dans un domaine. 6

Graphe d'une relation DOM(A1) a b c 1 2 3 4 DOM(A2) a b c DOM(A1) 1 2 • DOM(A2) Le graphe peut représenter une Relation binaire R(A1,A2) ou ici n-aire. 7

Exemple de relation Attribut1 Attribut 3 Nom Tupple 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 Tupple 8

Clés Une clé est un ensemble minimal d'attributs dont la connaissance des valeurs détermine un tuple unique dans une relation. Formellement, une clé d'une relation R est un ensemble d'attributs K tel que  les tuples t1, t2 d'une instance de R, t1(K)  t2(K) Toute relation possède au moins une clé car la connaissance de tous ses attributs permet d'identifier un tuple unique. Quand plusieurs clés existent, on en choisi arbitrairement une appelée clé primaire. Exemple Le couple d'attributs {CRU, MILLESIME} dans la table VINS détermine la clé primaire NV. NSS : numéro de sécurité sociale d'une personne. 9

Contraintes Contraintes d'intégrité Contrainte référentielle Ensemble de valeurs admissibles d'un tuple. Contrainte référentielle Contrainte d'intégrité d'une relation R1 dont un groupe d'attributs apparaît comme une clé d'une relation R2. Valeur nulle Valeur conventionnelle introduite dans une relation pour représenter une information inconnue ou inacceptable. Contrainte d'entité Toute relation doit posséder au moins une clé primaire dont tout attribut est non nul. Contrainte de domaine Contrainte d'intégrité imposant qu’une colonne d'une domaine comporte des valeurs vérifiant une assertion logique.

Schéma de relation (1/2) Nom de la relation, liste de ses attributs et de la définition de leurs domaines, liste de ses clés. C'est un invariant de la relation (i.e. ne change pas) au cours du temps. Exemple VINS (NV: Int, CRU:texte, MILL:entier, DEGRE: Réel, REGION:texte) Par convention, la clé primaire est soulignée. 10

Schéma d'une relation (2/2) Intention et extension Un schéma de relation définit l'intention de la relation, à savoir les propriétés (au moins certaines) communes et invariantes des tuples. Une instance de table représente une extension de la relation, à savoir une vue des tuples qu'elle contient à un instant donné. Schéma d'une base de données relationnelle C'est l'ensemble des schémas des relations composantes.

Clé étrangère et contraintes d'intégrité référentielle Une clé étrangère est un groupe d'attributs d'une relation devant apparaître comme clé d'une autre relation. Les clés étrangères définissent les contraintes d'intégrité référentielles. Lors d'une insertion, la valeur des attributs 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. Ils correspondent aux liens entité-association obligatoires. 11

Exemples de schémas Exemples : les relations BUVEURS (NB, NOM, PRENOM, TYPE) VINS (NV, CRU, MILLESIME, DEGRE) ABUS (NB, NV, DATE, QUANTITE) constituent la base dégustation. Clés étrangères obtenues ABUS.NV REFERENCE VINS.NV ABUS.NB REFERENCE BUVEURS.NB 12

Diagramme des liens associés BUVEURS NB NOM PRENOM TYPE VINS NV CRU MILL. DEGRE ABUS NB NV DATE QUANTITE 13

Récapitulation des concepts descriptifs RELATION ou TABLE ATTRIBUT ou COLONNE TUPLE ou LIGNE DOMAINE ou TYPE CLE, CLE PRIMAIRE CLE ETRANGERE 14

Synthèse : création de Table (SQL) CREATE TABLE <relation name> (<attribute definition>+) [{PRIMARY KEY | UNIQUE} (<attribute name>+)] avec : <attribute definition> ::= <attribute name> <data type> [NOT NULL [{UNIQUE | PRIMARY KEY}] ] Exemple : CREATE TABLE VINS ( NV INTEGER PRIMARY KEY, CRU CHAR VARYING, MILL INTEGER NOT NULL, DEGRE FIXED 5.2 ) 15

2. L'algèbre relationnelle L'algèbre relationnelle est un ensemble d'opérations qui permettent d'exprimer toutes les requêtes possibles sous la forme d'expressions algébriques. Une requête est une paraphrase en anglais d'expressions relationnelles. Ces dernières sont à la base du langage SQL. Ces opérations peuvent être généralisées au modèle objet ce qui conduit à une algèbre relationnelle orientée objet. 16

Opérations ensemblistes Opérations ensemblistes pour des relations de même schéma UNION notée  opération portant sur deux relations R1 et R2 de même schéma consistant à construire une nouvelle relation R3 de même schéma ayant pour tuples ceux qui appartiennent à R1, ou à R2, ou aux deux. INTERSECTION notée  opération portant sur deux relations R1 et R2 de même schéma consistant à construire une nouvelle relation R3 de même schéma ayant pour tuples ceux qui appartiennent à R1 et à R2. DIFFERENCE notée — opération portant sur deux relations R1 et R2 de même schéma consistant à construire une nouvelle relation R3 de même schéma ayant pour tuples ceux qui appartiennent à R1, sans appartenir à R2. Opérations binaires Relation  Relation  Relation Extension Union externe pour des relations de différents schémas ramenées au même schéma avec des valeurs nulles. 17

Projection Cru,Région (VINS) Cru Région Suppression d'attributs non désirés d'une relation puis des éventuels tuples redondants.  : Relation  Relation notée A1,A2,…Ap ou encore (R) VINS Cru Mill Région Qualité VOLNAY 1983 BOURGOGNE A VOLNAY 1979 BOURGOGNE B CHENAS 1983 BEAUJOLAIS A JULIENAS 1986 BEAUJOLAIS C Cru,Région (VINS) Cru Région VOLNAY BOURGOGNE CHENAS BEAUJOLAIS JULIENAS BEAUJOLAIS 18

Restriction Opération sur une relation R1 produisant une relation R2 de même schéma, comportant les seuls tuples vérifiant un critère Q précisé en argument. :Relation  Relation, notée Q(R) Q est le critère de qualification de la forme : Ai Valeur, avec  un des opérateurs =, <,>,,, On peut définir des unions (ou) et des intersections (et) de critères simples. 19

Exemple de restriction VINS Cru Mill Région Qualité VOLNAY 1983 BOURGOGNE A VOLNAY 1979 BOURGOGNE B CHENAS 1983 BEAUJOLAIS A JULIENAS 1986 BEAUJOLAIS C MILL>1983 VINS Cru Mill Région Qualité JULIENAS 1986 BEAUJOLAIS C Autres restrictions : CRU="VOLNAY" CRU="CHENAS" 20

Jointure Opération de rapprochement selon une condition des tuples de deux relations R1 et R2 pour en former une troisième R3 contenant l'ensemble de tous les tuples obtenus par concaténation d'un tuple de R1 et d'un tuple de R2 vérifiant la condition de rapprochement. C'est une opération de la forme <Attribut1><opérateur> <Attribut 2> On distingue l'équi-jointure (opérateur = ) l'inéqui-jointure (un des autres opérateurs relationnels). Remarque Dans le cas de l'équi-jointure, deux attributs égaux apparaissent dans le résultat. La redondance peut être éliminée par la jointure naturelle.

Jointure naturelle Opération (notée ) de rapprochement de tuples de deux relations R1 et R2 pour en former une troisième dont les attributs sont la réunion des attributs des relations R1 et R2 et dont les tuples sont obtenus par composition de tuples de R1 et R2 ayant même valeur pour les attributs de même nom.  : Relation  Relation Relation Critères de jointure jointure naturelle : attributs de même nom identiques Attribut = Attribut théta-jointure ; comparaison d'attributs Attribut1 Attribut2 . 21

Exemple de Jointure   VINS Cru Mill Qualité VOLNAY 1983 A VOLNAY 1979 B CHABLIS 1983 A JULIENAS 1986 C  LOCALISATION Cru Région QualMoy VOLNAY Bourgogne A CHABLIS Bourgogne A CHABLIS Californie B  VINSREG Cru Mill Qualité Région QualMoy VOLNAY 1983 A Bourgogne A VOLNAY 1979 B Bourgogne A CHABLIS 1983 A Bourgogne A CHABLIS 1983 A Californie B 22

Principe de complétude L'algèbre relationnelle est complète. Les cinq (sept) opérations de base permettent de formaliser sous forme d'expressions toutes les questions que l'on peut poser dans la logique du premier ordre (sans fonction). Exemple Recherche, à partir des opération de projection, restriction, jointure des nom et prénom des buveurs de Volnay 88. PROJECT (NOM,PRENOM, RESTRICT(CRU="VOLNAY" et MILL =1988, JOIN(VINS,ABUS,BUVEURS))) 23

SQL Une requête SQL est une paraphrase d'une expression de l'algèbre relationnelle en anglais. Format simplifié d'une requête : SELECT A1, A2, …Ap // attributs FROM R1, R2, …Rk // relations WHERE Q [{UNION |INTERSECT | EXCEPT } … ] Sémantique du bloc SELECT PROJECT A1,A2,…Ap ( RESTRICT Q ( PRODUIT ( R1, R2, …, Rk) ) ) 24

3. Concepts additionnels Ensemble de concepts pour : Etendre les fonctionnalités de manipulation. Décrire les règles d'évolution des données. Supporter des objets complexes (SQL3). Ils ont été introduits progressivement dans le modèle. Le modèle devient plus complexe. Ils ne sont pas toujours standards (SQL3). Des extensions existent à l'infini … 25

Fonction et agrégat Fonction de calcul Agrégat Fonction de calcul en ligne appliquée sur un ou plusieurs attributs Exemple : DEGRE  QUANTITE / 100 Agrégat Partitionnement horizontal d'une relation selon les valeurs d'un groupe d'attributs, suivi d'un regroupement par une fonction de calcul en colonne (SUM, MIN, MAX, AVG, COUNT, …) 26

Exemples d'agrégats SELECT CRU, SUM (QUANTITE) VINS CRU MILL QUANTITE CHABLIS VOLNAY MEDOC 1977 1987 1986 1985 10.9 11.9 10.8 11.2 100 250 400 300 200 DEGRE SELECT MOY(DEGRE) FROM VINS; SELECT CRU, SUM (QUANTITE) FROM VINS GROUP BY CRU; AVG DEGRE 11.2 SUM CRU QUANTITE CHABLIS 350 VOLNAY 700 MEDOC 200 27

Vue Relation d'un schéma externe déduite des relations de la base par une question. Calcul de la vue Une vue est une fenêtre dynamique sur la BD, recalculée dynamiquement lors de chaque accès. Une vue peut être matérialisée (vue concrète). Exemple : définition de la vue GrosBuveurs CREATE VIEW GrosBuveurs AS SELECT NB, Nom, Prénom, FROM Buveurs, Abus WHERE Buveurs.NB = Abus.NB AND Abus.Quantité > 100 28

Procédure stockée Procédure écrite en L3G/SQL ou L4G/SQL, définie au niveau du schéma de la base et stockée avec cette dernière. Avantages Répartition des traitements entre client et serveur. Limitation du trafic sur le réseau, partage de procédures. Exemple Réservations Réservations Transactionnelles Batch Etablir la réservation 29

Déclencheur (Trigger) Action dans la base de données déclenchée suite à l'apparition d'un événement particulier. Forme : {BEFORE | AFTER} <événement> THEN <action> Un événement peut être : une opération sur une table (début ou fin), un événement externe (heure, appel, etc.). Une action peut être : une requête de mise à jour de la base BD (update), une interruption de la transaction (abort), un appel d'une procédure cataloguée. 30

Déclencheur avec condition (règle) Il est possible d'ajouter une condition pour déclencher l'action uniquement quand la condition est vérifiée. Une condition est une qualification portant sur la base. Exemples : BEFORE DELETE FROM Vins THEN DELETE FROM Abus WHERE Vins.Nv = Abus.Nv BEFORE UPDATE FROM EMPLOYE IF SALAIRE > 100.000 THEN ABORT TRANSACTION 31

4. CONCLUSION L'ensemble des concepts présentés est aujourd'hui bien compris et bien formalisé. Le modèle relationnel est unique, de plus en plus riche et normalisé. Il intègre les Bases de Données actives et objets. Sa syntaxe évolue vers celle d'un L4G standardisé. Son formalisme est généralisé permettant la définition de l'algèbre d'objets. Le langage associé est défini sur plusieurs niveaux. SQL1, SQL2, SQL3 32

Exemples d'utilisation des opérateurs Considérons la base dégustation suivantes : BUVEURS (NB, NOM, PRENOM, TYPE) VINS (NV, CRU, MILLESIME, DEGRE) ABUS (NB, NV, DATE, QUANTITE) Q1 : afficher les degrés des vins de cru Morgon, et de millésime 1978. R1 = RESTRICT (VINS, CRU = "MORGON") R2 = RESTRICT (VINS, MILLESIME = 1978) R3 = INTERSECT (R1, R2) RESULTAT = PROJECT (R3, DEGRE)

Exemples (suite) Rechercher les noms et prénoms des buveurs de Morgon ou de Chenas. R1 = RESTRICT (VINS, CRU = "MORGON") R2 = RESTRICT (VINS, CRU = "CHENAS") R3 = UNION(R1,R2) R4 = JOIN(R3, ABUS) R5 = JOIN(R4, BUVEURS) RESULTAT = PROJECT(R5, NOM, PRENOM)