LE MODELE RELATIONNEL INVENTE PAR T. CODD (IBM SAN-JOSE)

Slides:



Advertisements
Présentations similaires
Bases de Données Avancées: Bases de Données Relationnelles
Advertisements

Rappels. Les Systèmes de Gestion de Bases de Données (SGBD) L'algèbre relationnelle.
Programme Introduction aux BD et aux SGBD Le modèle relationnel
Matière/Sources: Daniel Bardou, Julie Dugdale &
SQL - Subtilités.
Le Modèle Relationnel (Chapitre 4)
Fonctionnalités des SGBD
Le Modèle Logique de Données
Algèbre relationnelle
TP 3-4 BD21.
Optimisation de Requêtes
Bases de données orientées-objets
INTEGRITE ET BD ACTIVES
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
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
Optimisation de Requêtes
Les fonctions.
Année universitaire Système dinformation Le SQL (Structured Query Language) langage dinterrogation dune base de données.
LMD: Langage de Manipulation de Données
Développement d’applications web
Contrôles d'accès aux données
LE LANGAGE SQL Langage de manipulation de données (LMD)
Algèbre relationnelle
B.Shishedjiev - Modèle relationnel
Initiation aux bases de données et à la programmation événementielle
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
SELECT {* | Expression [Alias] [,...] } FROM Table [WHERE Condition] [ORDER BY { Expression | Alias } [ ASC | DESC ] [NULLS FIRST | NULLS LAST ] [,...]
L’utilisation des bases de données
Modèle Logique de Données
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
1 LE LANGAGE DE REQUETES SQL Origines et Evolutions SQL1 86: la base SQL1 89: l'intégrité.
MODELE RELATIONNEL concept mathématique de relation
Staf 2x Cours de bases de données
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)
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 Cours de Management des Systèmes dInformation
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.
Christine Bonnet SOURCES : « Samples » dOracle, « Oracle 8 » R. Chapuis PRO*C – C ++
LE LANGAGE DE REQUETES SQL2
Introduction.
Algèbre Relationnelle : Implémentation
Le langage de requêtes SQL
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)
Le modèle relationnel Plan 1. Concepts descriptifs
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.
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
Le langage SQL.
Introduction Module 1.
Les bases de données Séance 4 Construction du Modèle Physique (la BDD)
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.
LE MODELE RELATIONNEL Inventé par T. Codd (IBM Recherche) Publication ACM Concepts pour la description 2. Concepts pour la manipulation 3. Concepts.
Langage de manipulation de données (LMD)
Transcription de la présentation:

LE MODELE RELATIONNEL INVENTE PAR T. CODD (IBM SAN-JOSE) PUBLICATION ACM 1970 1. CONCEPTS POUR LA DESCRIPTION 2. CONCEPTS POUR LA MANIPULATION 3. CONCEPTS ADDITIONNELS 1

1. CONCEPTS DESCRIPTIFS ENSEMBLE DE CONCEPTS POUR FORMALISER LA DESCRIPTION D'ARTICLES DE FICHIERS PLATS  MODELE NORMALISE MAIS EXTENSIBLE Introduction de types de données variés (SQL2) Introduction de la dynamique (Produits, SQL3) Introduction des objets (SQL3) 2

Domaine ENSEMBLE DE VALEURS 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 CARTESIEN D1x D2x ... x Dn EST  L'ENSEMBLE DES TUPLES (N-UPLETS) : <V1,V2,....Vn> TEL QUE Vi Di EXEMPLE D1 = {Bleu,Blanc,Rouge} D2 = {Vrai, Faux} Bleu Vrai Bleu Faux Blanc Vrai Blanc Faux Rouge Vrai Rouge Faux 4

Relation SOUS-ENSEMBLE DU PRODUIT CARTESIEN D'UNE LISTE DE DOMAINES UNE RELATION EST CARACTERISEE PAR UN NOM EXEMPLE D1 = COULEUR D2 = BOOLEEN CoulVins Coul Choix Bleu Faux Blanc Vrai Rouge Vrai 5

Attribut VISION TABULAIRE DU RELATIONNEL ATTRIBUT Une relation est une table à deux dimensions Une ligne est un tuple Un nom est associé à chaque colonne afin de la repérer indépendamment de son numéro d'ordre ATTRIBUT nom donné à une colonne d'une relation prend ses valeurs dans un domaine 6

Graphe d'une relation RELATION BINAIRE R(A1,A2) DOM(A2) DOM(A1) RELATION BINAIRE R(A1,A2) UNE RELATION N-AIRE EST UNE GENERALISATION A N DIMENSIONS 1 a 2 b 3 c 4 DOM(A2) 4 • 3 • 2 • 1 • • DOM(A1) a b c 7

Exemple de relation CHENAS 1983 BEAUJOLAIS ROUGE 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 8

Clé GROUPE D'ATTRIBUTS MINIMUM QUI DETERMINE UN TUPLE UNIQUE DANS UNE RELATION EXEMPLES {CRU,MILLESIME} DANS VINS ==> NV NSS DANS PERSONNE CONTRAINTE D'ENTITE Toute relation doit posséder au moins une clé documentée 9

Schéma NOM DE LA RELATION, LISTE DES ATTRIBUTS AVEC DOMAINES, ET LISTE DES CLES D'UNE RELATION EXEMPLE VINS(NV: Int, CRU:texte, MILL:entier, DEGRE: Réel, REGION:texte) Par convention, la clé primaire est soulignée INTENTION ET EXTENSION Un schéma de relation définit l'intention de la relation Une instance de table représente une extension de la relation SCHEMA D'UNE BD RELATIONNELLE C"est l'ensemble des schémas des relations composantes 10

Clé Etrangère GROUPE D'ATTRIBUTS DEVANT APPARAITRE COMME CLE DANS UNE AUTRE RELATION LES CLES ETRANGERES DEFINISSENT LES CONTRAINTES D'INTEGRITE REFERENTIELLES 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 Elles correspondent aux liens entité-association obligatoires 11

Exemple de Schéma EXEMPLE BUVEURS (NB, NOM, PRENOM, TYPE) VINS (NV, CRU, MILL, DEGRE) ABUS (NB, NV, DATE, QUANTITE) CLES ETRANGERES ABUS.NV REFERENCE VINS.NV ABUS.NB REFERENCE BUVEURS.NB 12

Diagramme des Liens BUVEURS NB NOM PRENOM TYPE VINS NV CRU MILL. DEGRE ABUS NB NV DATE QUANTITE 13

Concepts Descriptifs : Bilan RELATION ou TABLE ATTRIBUT ou COLONNE DOMAINE ou TYPE CLE CLE ETRANGERE 14

Synthese : Create Table CREATION DES TABLES EN 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. CONCEPTS MANIPULATOIRES UN ENSEMBLE D'OPERATIONS FORMELLES Algèbre relationnelle CES OPERATIONS PERMETTENT D'EXPRIMER TOUTES LES REQUETES SOUS FORME D'EXPRESSIONS ALGEBRIQUES ELLES SONT LA BASE DU LANGAGE SQL Paraphrasage en anglais des expressions relationnelles Origine SEQUEL CES OPERATIONS SE GENERALISENT A L'OBJET Algèbre d'objets complexes 16

Opérations Ensemblistes OPERATION ENSEMBLISTE POUR DES RELATIONS DE MEME SCHEMA UNION notée  INTERSECTION notée  DIFFERENCE notée — OPERATIONS BINAIRES Relation X Relation --> Relation EXTENSION Union externe pour des relations de schémas différents Ramener au même schéma avec des valeurs nulles 17

Projection Elimination des attributs non désirés et suppression des tuples en double Relation -> Relation notée A1,A2,...Ap ( 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 Obtention des tuples de R satisfaisant un critère Q Relation ->Relation, notée Q(R) Q est le critère de qualification de la forme : Ai Valeur { =, <, >=, >, <=, #} Il est possible de réaliser des "ou" (union) et des "et" (intersection) 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 CRU="VOLNAY" CRU="CHENAS" 20

Jointure Composition des deux relations sur un domaine commun Relation X Relation ->Relation notée CRITERE DE JOINTURE Attributs de même nom égaux : Attribut = Attribut JOINTURE NATURELLE Comparaison d'attributs : Attribut1 Attribut2 THETA-JOINTURE 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

Complétude L'ALGEBRE RELATIONNELLE EST COMPLETE EXEMPLE Les cinq (sept) opérations de base permettent de formaliser sous forme d'expressions toutes les questions que l'on peut poser avec la logique du premier ordre (sans fonction). EXEMPLE NOM ET PRENOM DES BUVEURS DE VOLNAY 1988 ? PROJECT (NOM,PRENOM, RESTRICT(CRU="VOLNAY" et MILL =1988, JOIN(VINS,ABUS,BUVEURS))) 23

SQL Une requête SQL est un paraphrasage d'une expression de l'algèbre relationnelle en anglais FORMAT SIMPLIFIE : SELECT A1, A2, …Ap FROM R1, R2, …Rk WHERE Q [{UNION |INTERSECT | EXCEPT } … ] SEMANTIQUE 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) INTRODUITS PROGRESSIVEMENT DANS LE MODELE Complique le modèle Manque parfois de standard (SQL3) Des extensions à l'infini … 25

Fonction et Agrégat FONCTION AGREGAT Fonction de calcul en ligne appliquée sur un ou plusieurs attributs Exemple : DEGRE  QUANTITE / 100 AGREGAT 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 EXEMPLE : GrosBuveurs CREATE VIEW GrosBuveurs AS SELECT NB, Nom, Prénom, FROM Buveurs, Abus WHERE Buveurs.NB = Abus.NB and Abus.Quantité > 100 CALCUL DE LA VUE Une vue est une fenêtre dynamique sur la BD et est recalculée à chaque accès. Une vue peut être matérialisée (vue concrète). 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 elle Avantages : partitionner les traitements entre client et serveur limiter le trafic sur le réseau, partager des procédures Exemple : Réservations Réservations Transactionnelles Batch Etablir la réservation 29

Déclencheur (Trigger) Action 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 BD (mise à jour) un abort de transaction l'appel à une procédure cataloguée 30

Déclencheur avec condition (Règle) Il est possible d'ajouter une condition afin de déclencher l'action seulement 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 Un ensemble de concepts bien compris et bien formalisé Un modèle unique, de plus en plus riche et normalisé intégration des BD actives intégration des BD objets évolution vers un L4G standardisé Un formalisme qui s'étend plutôt bien algèbre d'objets Un langage associé défini à plusieurs niveaux : SQL1, 2, 3 32