Beruflich Dokumente
Kultur Dokumente
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
Domaine
MAT
AN_ENT 1997
Cardinalit
n-uple
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
6Introduction 6Architecture 6Modles de donnes 6Modle relationnel 6Algbre relationnelle 6SQL 6Conception 6Fonctions avances 6Concepts avancs 6Modle des objets 6BD objets
Concepts de base
n
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
NF F1
NF F1 F1 F2
NP P1 P2 P3
F2
NP P3
11
6Introduction 6Architecture 6Modles de donnes 6Modle relationnel 6Algbre relationnelle 6SQL 6Conception 6Fonctions avances 6Concepts avancs 6Modle des objets 6BD objets
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
???
6Introduction 6Architecture 6Modles de donnes 6Modle relationnel 6Algbre relationnelle 6SQL 6Conception 6Fonctions avances 6Concepts avancs 6Modle des objets 6BD objets
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
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 )
15
6Introduction 6Architecture 6Modles de donnes 6Modle relationnel 6Algbre relationnelle 6SQL 6Conception 6Fonctions avances 6Concepts avancs 6Modle des objets 6BD objets
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
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
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
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
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
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
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
Cls trangres
Diagramme rfrentiel
reprsentation graphique des rfrences
Projet
23
6Introduction 6Architecture 6Modles de donnes 6Modle relationnel 6Algbre relationnelle 6SQL 6Conception 6Fonctions avances 6Concepts avancs 6Modle des objets 6BD objets
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
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
Domaine de base
Entier : INTEGER Dcimal : DECIMAL(m,n) Rel flottant : FLOAT Chane de caractres : CHAR(n) Date : DATE .
26
13
6Introduction 6Architecture 6Modles de donnes 6Modle relationnel 6Algbre relationnelle 6SQL 6Conception 6Fonctions avances 6Concepts avancs 6Modle des objets 6BD objets
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
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
Exemple
ALTER TABLE COMMANDE ADD COLUMN DATE_COM DATE n
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
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
31
6Introduction 6Architecture 6Modles de donnes 6Modle relationnel 6Algbre relationnelle 6SQL 6Conception 6Fonctions avances 6Concepts avancs 6Modle des objets 6BD objets
32
16
6Introduction 6Architecture 6Modles de donnes 6Modle relationnel 6Algbre relationnelle 6SQL 6Conception 6Fonctions avances 6Concepts avancs 6Modle des objets 6BD objets
33
6Introduction 6Architecture 6Modles de donnes 6Modle relationnel 6Algbre relationnelle 6SQL 6Conception 6Fonctions avances 6Concepts avancs 6Modle des objets 6BD objets
34
17
6Introduction 6Architecture 6Modles de donnes 6Modle relationnel 6Algbre relationnelle 6SQL 6Conception 6Fonctions avances 6Concepts avancs 6Modle des objets 6BD objets
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