Vous êtes sur la page 1sur 18

IFT3030 Base de donnes

Chapitre 4 Le modle relationnel

6Introduction 6Architecture 6Modles de donnes 6Modle relationnel 6Algbre relationnelle 6SQL 6Conception 6Fonctions avances 6Concepts avancs 6Modle des objets 6BD objets

Plan du cours
n n n n n n n n n n n

Introduction Architecture Modles de donnes Modle relationnel Algbre relationnelle SQL Conception Fonctions avances Concepts avancs Modle des objets BD objets
2

6Introduction 6Architecture 6Modles de donnes 6Modle relationnel 6Algbre relationnelle 6SQL 6Conception 6Fonctions avances 6Concepts avancs 6Modle des objets 6BD objets

Concepts de base
n

Scalaires
Les valeurs scalaires reprsentent la plus petite unit smantique de donnes. Atomiques Nom d une ville
Montral possde une smantique M, o, n, t, r , , a, l n en possdent pas

6Introduction 6Architecture 6Modles de donnes 6Modle relationnel 6Algbre relationnelle 6SQL 6Conception 6Fonctions avances 6Concepts avancs 6Modle des objets 6BD objets

Concepts de base
n

Domaine
Ensemble nomm de valeurs scalaires toutes du mme type Groupe de valeurs d o sont extraites les valeurs effectives
jours = {lundi, mardi, mercredi, jeudi, vendredi, samedi, dimanche} couleurs = {rouge, vert, bleu, jaune, ... , pourpre} ges = [0, 125] salaires = R +
4

6Introduction 6Architecture 6Modles de donnes 6Modle relationnel 6Algbre relationnelle 6SQL 6Conception 6Fonctions avances 6Concepts avancs 6Modle des objets 6BD objets

Concepts de base
n

Relation
Une relation R sur un ensemble de domaines D1, D2, , Dn est constitue de deux parties
L en-tte : ensemble fix d attributs (<nom-attribut : nom-domaine>) {<A1 : D 1>, <A 2 : D 2>, , <A n : Dn>} Chaque attribut Aj prend ses valeurs dans Dj et les noms des attributs sont distincts

6Introduction 6Architecture 6Modles de donnes 6Modle relationnel 6Algbre relationnelle 6SQL 6Conception 6Fonctions avances 6Concepts avancs 6Modle des objets 6BD objets

Concepts de base
n

Relation
Le corps : ensemble de n-uplets (<nom-attribut : valeur-attribut>) {<A1 : vi1>, <A 2 : vi2>, , <An : vin>} pour le nuplet i Tout couple attribut-valeur doit correspondre un couple attribut-domaine de l en-tte et toute valeur vij Dij

6Introduction 6Architecture 6Modles de donnes 6Modle relationnel 6Algbre relationnelle 6SQL 6Conception 6Fonctions avances 6Concepts avancs 6Modle des objets 6BD objets

Concepts de base
n

Attribut
Colonne d une relation caractrise par un nom

Relation
Degr
nombre d attributs

Cardinalit
nombre de n-uplets

6Introduction 6Architecture 6Modles de donnes 6Modle relationnel 6Algbre relationnelle 6SQL 6Conception 6Fonctions avances 6Concepts avancs 6Modle des objets 6BD objets

Concepts de base
n

Exemple
Attribut

Prof_adj Prof_agr Prof_tit


NOM GRADE Prof_adj Prof_agr Prof_adj Prof_tit Prof_agr COURS MRT1111 MRT2221 MRT3331 MRT1112 MRT1664

Domaine

MAT

AN_ENT 1997

62945 Gilles 34560 Myriam 21539 Claudine

Cardinalit

1993 1999 1982 1990

n-uple

80200 Bernard 75902 Yida

Degr
8

6Introduction 6Architecture 6Modles de donnes 6Modle relationnel 6Algbre relationnelle 6SQL 6Conception 6Fonctions avances 6Concepts avancs 6Modle des objets 6BD objets

Concepts de base
n

Relation vs. Table


Relation : dfinition d un objet abstrait (voir plus haut) Table : reprsentation concrte de cet objet abstrait Souvent confondues

6Introduction 6Architecture 6Modles de donnes 6Modle relationnel 6Algbre relationnelle 6SQL 6Conception 6Fonctions avances 6Concepts avancs 6Modle des objets 6BD objets

Concepts de base
n

Proprits d une relation


Pas de duplication des n-uplets
ensemble mathmatique

Pas d ordonnancement des n-uplets


ensemble mathmatique diffrence avec les modles prcdents

Pas d ordonnancement des attributs


rfrence par nom

10

6Introduction 6Architecture 6Modles de donnes 6Modle relationnel 6Algbre relationnelle 6SQL 6Conception 6Fonctions avances 6Concepts avancs 6Modle des objets 6BD objets

Concepts de base
n

Proprits d une relation


Les valeurs des attributs sont atomiques
premire forme normale

NF F1

PRODUIT NP P1 P2 QTE 100 350 QTE 175

NF F1 F1 F2

NP P1 P2 P3

QTE 100 350 175

F2

NP P3

11

6Introduction 6Architecture 6Modles de donnes 6Modle relationnel 6Algbre relationnelle 6SQL 6Conception 6Fonctions avances 6Concepts avancs 6Modle des objets 6BD objets

Intgrit des donnes


n

Introduction
A tout instant la base reprsente une partie du monde rel travers une configuration particulire des valeurs des donnes Certaines configurations des valeurs n ont pas de sens
exemple age d une personne = -35

Intgration de rgles d intgrit pour informer le SGBD de certaines contraintes du monde rel
12

6Introduction 6Architecture 6Modles de donnes 6Modle relationnel 6Algbre relationnelle 6SQL 6Conception 6Fonctions avances 6Concepts avancs 6Modle des objets 6BD objets

Intgrit des donnes


n

Exemple de contraintes d intgrit


Matricule doit tre sous la forme nnnnn La valeur de GRADE doit appartenir l ensemble {Prof_adj, Prof_agr, Prof_tit} L anne de recrutement doit tre suprieure 1920 (ou pourquoi pas 1878) L anne de recrutement doit tre infrieure ou gale l anne courante Tous les professeurs recruts avant 1994 doivent tre au moins agrgs

???

Contraintes spcifiques une base de donns particulire


13

6Introduction 6Architecture 6Modles de donnes 6Modle relationnel 6Algbre relationnelle 6SQL 6Conception 6Fonctions avances 6Concepts avancs 6Modle des objets 6BD objets

Intgrit des donnes


n

Proprits d intgrit gnrale


cls candidates et cls primaires cls trangres

Cls candidates
Ensemble minimal d attributs dont la connaissance des valeurs permet d identifier un n-uplet unique de la relation considre Chaque relation contient au moins une cl candidate
14

6Introduction 6Architecture 6Modles de donnes 6Modle relationnel 6Algbre relationnelle 6SQL 6Conception 6Fonctions avances 6Concepts avancs 6Modle des objets 6BD objets

Intgrit des donnes


n

Cls candidates
Propits
Soit R et une relation et soit K un ensemble d attributs (cl candidate), Unicit : t 1 et t2 R,

K (t1 ) K (t 2 )

Irrductibilit : In existe d ensemble L tel que L K et L cl candidate

15

6Introduction 6Architecture 6Modles de donnes 6Modle relationnel 6Algbre relationnelle 6SQL 6Conception 6Fonctions avances 6Concepts avancs 6Modle des objets 6BD objets

Intgrit des donnes


n

Cls candidates
Utilit
mcanisme d adressage au niveau des nuplets d une table Exemple Professeur WHERE MAT = 34560, produit un seul n-uplet en rsultat Professeur WHERE AN_ENT = 1994, va produire un nombre imprvisible de n-uplets en rsultat
16

6Introduction 6Architecture 6Modles de donnes 6Modle relationnel 6Algbre relationnelle 6SQL 6Conception 6Fonctions avances 6Concepts avancs 6Modle des objets 6BD objets

Intgrit des donnes


n

Cl primaire
Une cl choisie parmi l ensemble des cls candidates Le choix est arbitraire Peux se faire selon des heuristiques
Plus simple par exemple

Exemple
Cls candidates MAT et NOM - COURS Cl primaires MAT

17

6Introduction 6Architecture 6Modles de donnes 6Modle relationnel 6Algbre relationnelle 6SQL 6Conception 6Fonctions avances 6Concepts avancs 6Modle des objets 6BD objets

Intgrit des donnes


n

Cl primaire
Exemple Etudiant (Code_per, Nom, Prenom, Adresse, Date_nais, Lieu_nais, NASS) Quelles sont les cls candidates ? Quelle cl primaire choisir ?

18

6Introduction 6Architecture 6Modles de donnes 6Modle relationnel 6Algbre relationnelle 6SQL 6Conception 6Fonctions avances 6Concepts avancs 6Modle des objets 6BD objets

Intgrit des donnes


n

Cls trangres
Soit R2 une relation, un sous-ensemble d attributs FK dans R2 est dit cl trangre dans le cas o * il existe une relation R1 avec une cl candidate CK (R1 peut tre R2) * tout instant, chaque valeur de FK dans R2 est identique une valeur de CK dans R1

19

6Introduction 6Architecture 6Modles de donnes 6Modle relationnel 6Algbre relationnelle 6SQL 6Conception 6Fonctions avances 6Concepts avancs 6Modle des objets 6BD objets

Intgrit des donnes


n

Cls trangres
Cl trangre Cl primaire

Table Commande noCommande dateCommande 1 01/06/2000 2 02/06/2000 3 02/06/2000 4 05/07/2000 5 09/07/2000 6 09/07/2000 7 15/07/2000 8 15/07/2000

noClient 10 20 10 10 30 20 40 40

noClient 10 20 30 40 50 60 70 80

Table Client nomClient noTlphone Luc Sansom (999)999-9999 Dollard Tremblay (888)888-8888 Lin B (777)777-7777 Jean Leconte (666)666-6666 Hafedh Alaoui (555)555-5555 Marie Leconte (666)666-6666 Simon Lecoq (444)444-4419 Dollard Tremblay (333)333-3333

20

10

6Introduction 6Architecture 6Modles de donnes 6Modle relationnel 6Algbre relationnelle 6SQL 6Conception 6Fonctions avances 6Concepts avancs 6Modle des objets 6BD objets

Intgrit des donnes


n

Cls trangres
Proprits
Il n est pas ncessaire d avoir pour toute valeur de CK dans R1 une valeur identique de FK dans R2 Une cl trangre est compose ou simple Chaque attribut d une cl trangre doit tre dfini sur le mme domaine que son quivalent dans la cl candidate correspondante

21

6Introduction 6Architecture 6Modles de donnes 6Modle relationnel 6Algbre relationnelle 6SQL 6Conception 6Fonctions avances 6Concepts avancs 6Modle des objets 6BD objets

Intgrit des donnes


n

Cls trangres
Proprits
Un attribut d une cl trangre peut faire partie d une cl candidate de sa relation Employe (Mat, Nom, ) Projet (Num, Designation, ) Role (Mat, Num, role) On dit que R2 rfrence R1
22

11

6Introduction 6Architecture 6Modles de donnes 6Modle relationnel 6Algbre relationnelle 6SQL 6Conception 6Fonctions avances 6Concepts avancs 6Modle des objets 6BD objets

Intgrit des donnes


n

Cls trangres
Diagramme rfrentiel
reprsentation graphique des rfrences

Employe Role Dept

Projet

23

6Introduction 6Architecture 6Modles de donnes 6Modle relationnel 6Algbre relationnelle 6SQL 6Conception 6Fonctions avances 6Concepts avancs 6Modle des objets 6BD objets

Intgrit des donnes


n

Exemple
Employe (mat# : entier, nom : caracteres, adresse : caracteres, dept : entier, sup : entier) Projet (num# : entier, designation : caracteres) Departement (dept# : entier, dir : entier, nom : caracteres) Role (mat# : entier, num# : entier, role_emp : caracteres)
24

12

6Introduction 6Architecture 6Modles de donnes 6Modle relationnel 6Algbre relationnelle 6SQL 6Conception 6Fonctions avances 6Concepts avancs 6Modle des objets 6BD objets

Intgrit des donnes


n

Cls trangres
Intgrit rfrentielle
La base de donnes ne doit pas contenir une valeurs de cl trangre non unifiable Cette contrainte est dite rfrentielle Consquence : Il faut crer et dtruire les nuplets dans un ordre particulier Dans certain SGBD (version 92 de SQL), on peux diffrer la vrification d une contrainte d intgrit rfrentiel (restreinte vs. cascade)

25

6Introduction 6Architecture 6Modles de donnes 6Modle relationnel 6Algbre relationnelle 6SQL 6Conception 6Fonctions avances 6Concepts avancs 6Modle des objets 6BD objets

Aperu de dclaration de table en SQL


n

Domaine de base
Entier : INTEGER Dcimal : DECIMAL(m,n) Rel flottant : FLOAT Chane de caractres : CHAR(n) Date : DATE .

Cration d une table (forme simple)


CREATE TABLE <nom-table> ( <attribut> <type>, <attribut> <type>, <attribut> <type>, )

26

13

6Introduction 6Architecture 6Modles de donnes 6Modle relationnel 6Algbre relationnelle 6SQL 6Conception 6Fonctions avances 6Concepts avancs 6Modle des objets 6BD objets

Aperu de dfinition de donnes en SQL


n

Cration d une table (forme simple)


Exemple
CREATE TABLE VIN ( NV INTEGER, CRU CHAR(10), MIL INTEGER)

Contraintes d intgrit
NOT NULL UNIQUE ou PRIMARY KEY FOREIGN KEY REFERENCES CHECK
27

6Introduction 6Architecture 6Modles de donnes 6Modle relationnel 6Algbre relationnelle 6SQL 6Conception 6Fonctions avances 6Concepts avancs 6Modle des objets 6BD objets

Aperu de dfinition de donnes en SQL


n

Avec contraintes d intgrit

Exemple (SQL 86)


CREATE TABLE COMMANDE ( NC INTEGER UNIQUE NOT NULL, NV INTEGER NOT NULL QUANTITE DECIMAL(6))

Exemple (SQL 89)


CREATE TABLE COMMANDE ( NC INTEGER PRIMARY KEY, NV INTEGER NOT NULL REFERENCES VIN, QUANTITE DECIMAL(6) CHECK(QUANTITE > 0))
---------------------------------------------------------------------------------------------------------------

NC INTEGER, PRIMARY KEY (NC), NV INTEGER NOT NULL, FOREIGN KEY (NV) REFERENCES VIN,

SQL 92
28

14

6Introduction 6Architecture 6Modles de donnes 6Modle relationnel 6Algbre relationnelle 6SQL 6Conception 6Fonctions avances 6Concepts avancs 6Modle des objets 6BD objets

Aperu de dfinition de donnes en SQL


n

Modification du schma d une table


ALTER TABLE <table> ADD COLUMN<attribut> <type>, <attribut> <type>,

Exemple
ALTER TABLE COMMANDE ADD COLUMN DATE_COM DATE n

Suppression d une table


DROP TABLE <table>

Exemple
DROP TABLE COMMANDE

29

6Introduction 6Architecture 6Modles de donnes 6Modle relationnel 6Algbre relationnelle 6SQL 6Conception 6Fonctions avances 6Concepts avancs 6Modle des objets 6BD objets

Aperu de dfinition de donnes en SQL


n

Exemple (SQL)
Employe (mat# : entier, nom : caracteres, adresse : caracteres, dept : entier, sup : entier) Projet (num# : entier, designation : caracteres) Departement (dept# : entier, dir : entier, nom : caracteres) Role (mat# : entier, num# : entier, role_emp : caracteres)
30

15

6Introduction 6Architecture 6Modles de donnes 6Modle relationnel 6Algbre relationnelle 6SQL 6Conception 6Fonctions avances 6Concepts avancs 6Modle des objets 6BD objets

Aperu de dfinition de donnes en SQL, exemple


Employe (mat# : entier, nom : caracteres, adresse : caracteres, dept : entier, sup : entier)
CREATE TABLE EMPLOYE ( MAT INTEGER, NOM CHAR(12), ADRESSE CHAR(25), DEPT INTEGER NOT NULL, SUP INTEGER NOT NULL, PRIMARY KEY (MAT), FOREIGN KEY (DEPT) REFERENCES DEPARTEMENT, FOREIGN KEY (SUP ) REFERENCES EMPLOYE (MAT));

31

6Introduction 6Architecture 6Modles de donnes 6Modle relationnel 6Algbre relationnelle 6SQL 6Conception 6Fonctions avances 6Concepts avancs 6Modle des objets 6BD objets

Aperu de dfinition de donnes en SQL, exemple


Projet (num# : entier, designation : caracteres)
CREATE TABLE PROJET ( NUM INTEGER, DESIGNATION CHAR(20), PRIMARY KEY (NUM));

32

16

6Introduction 6Architecture 6Modles de donnes 6Modle relationnel 6Algbre relationnelle 6SQL 6Conception 6Fonctions avances 6Concepts avancs 6Modle des objets 6BD objets

Aperu de dfinition de donnes en SQL, exemple


Departement (dept# : entier, dir : entier, nom : caracteres)
CREATE TABLE DEPARTEMENT ( DEPT INTEGER, DIR INTEGER NOT NULL, DESIGNATION CHAR(20), PRIMARY KEY (DEPT), FOREIGN KEY (DIR) REFERENCES EMPLOYE (MAT));

33

6Introduction 6Architecture 6Modles de donnes 6Modle relationnel 6Algbre relationnelle 6SQL 6Conception 6Fonctions avances 6Concepts avancs 6Modle des objets 6BD objets

Aperu de dfinition de donnes en SQL, exemple


Role (mat# : entier, num# : entier, role_emp : caracteres)
CREATE TABLE ROLE ( MAT INTEGER, NUM INTEGER, ROLE_EMP CHAR(15), PRIMARY KEY (MAT, NUM), FOREIGN KEY (MAT) REFERENCES EMPLOYE , FOREIGN KEY (NUM) REFERENCES PROJET));

34

17

6Introduction 6Architecture 6Modles de donnes 6Modle relationnel 6Algbre relationnelle 6SQL 6Conception 6Fonctions avances 6Concepts avancs 6Modle des objets 6BD objets

Aperu de l'insertion de donnes en SQL


n

Insertion
Forme
INSERT INTO <table> [ (<liste_colonnes>)] {VALUES (<liste_valeurs>) | <requete>}

Exemple 1
INSERT INTO Employe (mat, nom, adresse, dept, sup) VALUES (34098, Gilles, 3456, Gaspe, Mtl, 456, 68735)

35

18