BD1A-new-Rel

publicité
LE MODÈLE
RELATIONNEL
La notions de table (Access, MySQL …) est mieux formalisée avec le concept de relation. Le
modèle relationnel de données étudie les propriétés (données, opérations et contraintes) de ces
relations.
On se limitera ici aux données et à certaines opérations

 Structure de Données
Relation Attribut Domaine


 Opérateurs de Manipulation
Project
Restrict
Join
Union
Diff

SQL

__________________________________________________________________________________________________________________________________
© Najib TOUNSI
1
avril 17, 2017
LE MODÈLE RELATIONNEL
Structure de Données

 Concept de Relation
Relation R = sous ensemble du produit cartésien entre n domaines D1, D2,…, Dn
R

D1 X D2 X … X Dn
(Domaine étant un ensemble de valeurs donné)
Exemple:
D1 = { Ali, Amine, Amina…}
D2 = { 24, 34, 45, 21…}
D3 = { Rabat, Casa, …}
R = {<Ali, 34, Casa>,
<Amina, 24, Rabat>,
<Amine, 21, Rabat>, …}
t = <n, a, v>  R  " n est âgé de a et habite v ".
Propriétés qui définit le sous ensemble.
ou Schéma de relation
__________________________________________________________________________________________________________________________________
© Najib TOUNSI
2
avril 17, 2017
LE MODÈLE RELATIONNEL
Structure de Données

Forme de représentation plus commode (simplifiée)
Colonnes à valeur dans 
NOM
AGE
VILLE
Ali
Amine
Amina
34
24
21
Casa
Rabat
Rabat
D1
A chaque colonne on attribue un nom:
D2
NOM
D3
AGE et VILLE
Les valeurs de chaque colonne sont issues du domaine correspondant.
Une ligne = un n-uplet
__________________________________________________________________________________________________________________________________
© Najib TOUNSI
3
avril 17, 2017
LE MODÈLE RELATIONNEL
Structure de Données

 Définitions/Vocabulaire
 Relation/Domaine
 Attribut
Nom donné à un domaine dans une relation (e.g. son rôle). Doit être distinct
Considérer la relation NOTES (eleve, noteCours, noteTP). définie sur Noms X Notes X
Notes : deuxième et troisième domaines identiques, attributs différents
 Tuple
Un élément de la relation
<n, a, v> n-uplet
 Composant
Un élément dans un tuple
'Ali', '24', …
Notation:
 Clé

t.nom,
t.age, …
Attribut (ou collection d'attributs) dont la valeur est différente
d'un tuple à un autre.
 Informel : Table / Lignes / Colonnes (cf. Fichier / Enregistrement / Champs)
__________________________________________________________________________________________________________________________________
© Najib TOUNSI
4
avril 17, 2017
LE MODÈLE RELATIONNEL
Structure de Données
 Schéma de Relation
{Nom de la relation, La liste des Attributs/Domaines, la Clé
et le prédicat (propriété de définition)}
PERSONNE (NOM: noms, AGE: entiers, VILLE: villes)
Clé NOM, " n est âgé de a et habite v "
Formes simplifiées
PERSONNE
(NOM, AGE, VILLE)
PERSONNE
NOM
PERSONNE
NOM
AGE
VILLE
AGE
VILLE
__________________________________________________________________________________________________________________________________
© Najib TOUNSI
5
avril 17, 2017
LE MODÈLE RELATIONNEL
Structure de Données

 Propriétés
 Pas d'ordre dans les tuples
 Pas d'ordre dans les attributs
 Tous les tuples sont différents
 Il existe toujours une clé
 Relation Normalisée (Valeurs atomiques, indécomposables)
Exercice: Pourquoi 1 2 3 4?
__________________________________________________________________________________________________________________________________
© Najib TOUNSI
6
avril 17, 2017
LE MODÈLE RELATIONNEL
Opérations
Table des livres (Numéro inventaire du livre, titre et auteur du livre, nombre d’exemplaires dans la bibliothèque)
Livre
NumInv
Titre
Auteur
Qte
323
Bases De Données
C.J. Date
3
124
Algorithmes
D. Knuth
2
1110
Programmation
B. Meyer
6
241
Langage C
B. Kernighan
5
321
Unix
K. Thompson
2
216
Systèmes Exploitations
Crocus
1
312
Langage Java
J. Gosling
8
Table des abonné(e)s (Numéro abonné, son nom et prénom )
Abonne
NumAb
Nom
Prénom
12
Benali
Ali
10
BenSaid
Said
32
Karim
Karima
14
Rajaoui
Rajaa
__________________________________________________________________________________________________________________________________
© Najib TOUNSI
7
avril 17, 2017
Table des prêts (Numéro inventaire du livre emprunté, Numéro abonné de l’emprunteur et la date d’emprunt)
Pret
NumInv
NumAb
DatePret
323
10
1/11/2009
124
12
2/11/2009
323
12
3/10/2009
241
32
3/10/2009
321
14
13/10/2009
323
14
10/11/2009
312
10
3/10/2009
323
32
13/09/2009
Exercice : Quels sont les clés dans ces relations?
__________________________________________________________________________________________________________________________________
© Najib TOUNSI
8
avril 17, 2017
LE MODÈLE RELATIONNEL
Opérations

 Opérateurs Algébriques de Manipulation
Le modèle relationnel se distingue en cela des autres modèle.
Il définit les opérations possibles sur les relations. (Opérateurs Algébriques)
Opérateur :
Relation

Relation
(unaire)
Relation X Relation

Relation
(binaire)
Required parameters are missing or incorrect.
Required parameters are missing or incorrect.
__________________________________________________________________________________________________________________________________
© Najib TOUNSI
9
avril 17, 2017
LE MODÈLE RELATIONNEL
Opérations

 Opération de Projection: Opérateur PROJECT
PROJECT (Relation, Liste-Attributs )
PROJECT (Abonne, NumAb, Nom)
Résultat
NumAb
Nom
12
Benali
10
BenSaid
32
Karim
14
Rajaoui
__________________________________________________________________________________________________________________________________
© Najib TOUNSI
10
avril 17, 2017
LE MODÈLE RELATIONNEL
Opérations

 Opération de Restriction: Opérateur RESTRICT
RESTRICT (Relation,
Attribut = valeur )
RESTRICT (Livre, Qte = 2)
Résultat
NumInv
Titre
Auteur
Qte
124
Algorithmes
D. Knuth
2
321
Unix
K. Thompson
2
__________________________________________________________________________________________________________________________________
© Najib TOUNSI
11
avril 17, 2017
LE MODÈLE RELATIONNEL
Opérations

 Combinaison des opérateurs:
Expression Relationnelle
PROJECT (RESTRICT (Livre, Qte = 2), NumInv, Titre)
Résultat
NumInv
Titre
124
Algorithmes
321
Unix
Soit la réponse à la requête: « Quels sont les numéros et les titres des livres qui sont en quantité égale à deux »
Idéalement : Une requête  Expression algébrique  relation résultat qui fournit la réponse
__________________________________________________________________________________________________________________________________
© Najib TOUNSI
12
avril 17, 2017
LE MODÈLE RELATIONNEL
Opérations

 Opération de Jointure: Opérateur binaire JOIN
JOIN (Relation1, Relation2, Attribut1 = Attribut2 )
JOIN (Livre, Pret, Livre.NumInv = Pret.NumInv)
Résultat
+--------+-------------------+--------------+------+--------+-------+------------+
| numinv | titre
| auteur
| qte | numinv | numab | datepret
|
+--------+-------------------+--------------+------+--------+-------+------------+
| 323
| Bases De Données | C.J. Date
|
3 | 323
| 10
| 2007-11-01 |
| 323
| Bases De Données | C.J. Date
|
3 | 323
| 12
| 2007-10-03 |
| 323
| Bases De Données | C.J. Date
|
3 | 323
| 14
| 2007-11-10 |
| 323
| Bases De Données | C.J. Date
|
3 | 323
| 32
| 2007-09-13 |
| 124
| Algorithme
| D. Knuth
|
2 | 124
| 12
| 2007-11-02 |
| 241
| LangageC
| B. Kernighan |
5 | 241
| 32
| 2007-10-03 |
| 321
| Unix
| K. Thompson |
2 | 321
| 14
| 2007-10-13 |
| 312
| LangageJava
| J. Gosling
|
8 | 312
| 10
| 2007-10-03 |
Opération caractéristique:
Permet d'interroger plusieurs tables et associer les informations entre elles.
(Suivant les liens sémantiques).
__________________________________________________________________________________________________________________________________
© Najib TOUNSI
13
avril 17, 2017
LE MODÈLE RELATIONNEL
Opérations

 Exemple d'Expression Relationnelle
"Le nom des livres empruntés par l’abonné n° '12' "
PROJECT (RESTRICT (JOIN (Livre, Pret, Livre.NumInv = Pret.NumInv), NumAb = ‘12’), Titre)
Titre
Base de Données
Algorithmique
__________________________________________________________________________________________________________________________________
© Najib TOUNSI
14
avril 17, 2017
MODÈLE RELATIONNEL
Opérations
 Langage SQL

(Structured Query Language)
SELECT
Colonnes
Projections
FROM
Tables
Jointures
WHERE
Critères recherches
Restrictions
"Le nom des livres empruntés par l’abonné n° '12' "
SELECT Titre
FROM
Livre, Pret
WHERE
Livre.NumInv = Pret.NumInv AND
NumAb = ‘12’
__________________________________________________________________________________________________________________________________
© Najib TOUNSI
15
avril 17, 2017
Autre forme :
SELECT Titre
FROM
Livre JOIN Pret
WHERE
NumAb = ‘12’
ON Livre.NumInv = Pret.NumInv
__________________________________________________________________________________________________________________________________
© Najib TOUNSI
16
avril 17, 2017
MODÈLE RELATIONNEL
Opérations

Equivalence avec les opérateurs relationnels
Opérateur relationnel
Equivalent SQL
PROJECT (Abonne, NumAb, Nom)
SELECT
FROM
NumAb, Nom
Abonne
RESTRICT (Livre, Qte = 3)
SELECT
FROM
WHERE
*
Livre
Qte = 3
JOIN (Livre, Pret,
Livre.NumInv = Pret.NumInv)
SELECT *
FROM
Livre, Pret
WHERE Livre.NumInv = Pret.NumInv
ou bien
SELECT *
FROM
Livre JOIN Prêt
ON
Livre.NumInv = Pret.NumInv
__________________________________________________________________________________________________________________________________
© Najib TOUNSI
17
avril 17, 2017
Téléchargement