0% ont trouvé ce document utile (0 vote)
4 vues28 pages

Modèle relationnel en bases de données

Transféré par

FarahBédoui
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
4 vues28 pages

Modèle relationnel en bases de données

Transféré par

FarahBédoui
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Bases de données

avancées
cours 2 : le modèle relationnel
Qu’est-ce qu’un modèle
de données ?
Il s’agit d’une notion de plus haut niveau que
les structures de données utilisées en
programmations

Contrairement aux langages de


programmation, les opérations sur un modèle
de donnée sont très restreinte

Un modèle de donnée doit permettre de


définir plus précisément qu’en programmation
ce que les données peuvent être
Pourquoi utiliser un
modèle de données
Les restrictions imposées par les modèles de
données ont les vertues suivantes :

séparation entre concept et représentation

grande précision dans la définition des


données

optimisation des opérations sur les données

représentations physiques génériques


efficaces
Plan de la séance

Définition du modèle relationnel

Un langage algébrique de requêtes

Définir des contraintes sur les relations


Le modèle relationnel
Le modèle relationnel

Modèle logique très simple introduit par Ted


Codd en 1970 (prix Turing 1986) et développé
par IBM lab

Il est utilisé dans la plupart des SGBD


commerciaux (Oracle, Informix, BD2, Ingres,
Access ...)
Le modèle relationnel
Il n’utilise qu’un seul type de structure, les
relations (ou tables) :

A B C
- Chaque ligne de la table
R= a1 b1 c1 (tuple) représente une
association
a2 b2 c2 - Les noms des colonnes
sont les attributs qui
a3 b3 c3 sont typés (entier, bool,...)
a4 b4 c4
Exemple : Livraisons de combustibles
Nom Adresse Solde
Dupond 5, rue des 10.540
Clients Durand 32 av. du Bois 0
Lebon 8 rue du Moulin 4.369
Martin 16 rue de la 19.853
N° Nom Nom_F Combustibl Quant
1 Dupond Tout-Brûle bois 8,50
Commandes 2 Dupond Tout-Brûle mazout 7,95
3 Martin Robin & Fils bois 4290
4 Lebon Robin & Fils bois 4160
5 Martin Tout-Brûle charbon 6,50
Nom_F Adresse_F Combustible Prix
Petrol & 331 Parc industriel mazout 8,50
Produits Tout-Brûle 927 bv de l’Auto mazout 7,95
Robin & 18 av. du Buisson bois 4290
Tout-Brûle 927 bv de l’Auto bois 4160
Tout-Brûle 927 bv de l’Auto charbon 6,50
Définition du modèle
relationnel
On considère un ensemble d’identificateurs
appelés attributs

Un schéma de relation est un ensemble


d’attributs : {A1, A2}, {A2, A3}, {A1, A2, A3}

A chaque attribut A on associe un domaine,


Dom(A) l’ensemble de ses valeurs possibles

Le domaine d’un schéma d’une relation R est


le produit cartésien des domaines de ses
attributs
- Pour un schéma d’une relation R(A1,...,An) donnée, un tuple
ou n-uplet est un élément de Dom(A1)x...x Dom(An)

- Pour un schéma de relation R, une relation est un


ensemble fini de tuples

- Un schéma de base de données est un ensemble fini de


schémas de relations

- Une base de données est un ensemble fini de relations


Notation pour les
schémas de données
On associe à une relation son type que l’on
note :

{A1:d1,...,An:dn}, cela signifie que les


attribut de cette relation sont {A1,...,An} et
que dom(Ai)=di.

Un tuple appartenant à une relation de


schéma {A1:d1,...,An:dn} sera noté
(A1=v1,...,An=vn) s’il associe vi à l’attribut Ai
Algèbre relationnelle
Qu’est-ce qu’une
algèbre.
Une algèbre est la donnée de constantes et
d’opérations avec leur interprétations :

Exemple :

l’algèbre des nombres entiers avec :

1 et 0 comme constantes

+ et x comme opérations
Algèbre relationnelle
Les constantes sont des relations instanciées

Et les opérations sont :

celles sur les ensembles

des opérations qui enlèvent une partie


d’une relation

des opérations qui combinent des relations

des opérations qui gèrent les noms des


attributs
Les opérations sur les
ensembles

Si R et S ont le même schéma {A1:d1,...,An:dn}


alors on définit

R∩S={t | t ∈ R et t ∈ S}

R∪S={t | t ∈ R ou t ∈ S}

R-S={t | t ∈ R et t ∉ S}
L’opération de projection

Si R est une relation de schéma


{A1:d1,...,An:dn} si L={Ai1,...,Aim} alors :

πL(R)= {(Ai1=vi1,...,Aim=vim) |
(A1=v1,...,An=vn) ∈ R}
L’opération de sélection

Si R est une relation de schéma


{A1:d1,...,An:dn} et θ[A1,...,An] est une formule
logique alors :

σθ(R) = {(A1=v1,...,An=vn) ∈ R | θ[v1,...,vn]}


Le produit cartésien

Si R et S sont des relations ayant


respectivement pour schéma {A1:d1,...,An:dn}
et {B1:e1,...,Bm:em} alors

R x S = {(1.A1=v1,...,[Link]=vn,
2.B1=u1,...,[Link]=um) | (A1=v1,...,An=vn) ∈ R
et (B1=u1,...,Bm=um) ∈ S}
La jointure naturelle
Si R et S sont des relations ayant
respectivement pour schéma
{A1:d1,...,An:dn,B1:e1,...,Bm:em} et
{A1:d1,...,An:dn,C1:f1,...,Cp:fp} et que pour tout
i,j dans [1;m]x[1;p] Bi≠Cj alors

La jointure naturelle de R et S est définie


par

R join S = {(A1=v1,...,An,vn, B1=u1,...,Bm=um,


C1=t1,...,Cp=tp) | (A1=v1,...,An,vn,
B1=u1,...,Bm=um) ∈ R et (A1=v1,...,An,vn,
C1=t1,...,Cp=tp) ∈ S}
La jointure-θ
Si R et S sont des relations ayant
respectivement pour schéma
{A1:d1,...,An:dn,B1:e1,...,Bm:em} et
{A1:d1,...,An:dn,C1:f1,...,Cp:fp} et que pour tout
i,j dans [1;m]x[1;p] Bi≠Cj

Etant donné θ[1.A1,...,[Link],


2.A1,...,[Link],B1,...,Bm,C1,...Cp] on a:

R joinθ S = {(1.A1=v1,...,[Link]=v1,
2.A1=w1,...,[Link]=wn, B1=u1,...,Bm=um,
C1=t1,...,Cp=tp) |
(A1=v1,...,An=vn,B1=u1,...,Bm=um) ∈ R,
(A1=w1,...,An=wn,C1=t1,...,Cp=tp) ∈ S et
θ[v1,...,vn,w1,...,wn,u1,...,um,t1,...,tp]}
Renommage

Si R est une relation de schéma


{A1:d1,...,An:dn} et si f est une fonction
injective de {A1,...,An} dans {B1,...,Bn} alors

τf(R) = {(f(A1)=v1,...,f(An)=vn) | (A1=v1,...An=vn)


∈ R}
Requêtes dans l’algèbre
relationnelle
SELECT train_no FROM Horaire WHERE
depart=‘Bordeaux’ AND arrivee=‘Paris’ AND
date=’30/09/2009’

πL(σθ(Horaire)) où :

θ≡depart=‘Bordeaux’ ∧ arrivee=‘Paris’ ∧
date=’30/09/2009’

L≡{train_no}
Contraintes
Les deux types de
contraintes

Les contraintes concernant une relation

Les contraintes concernant plusieurs relations


(dites contraintes référentielles)
Contrainte de
déterminisme
Etant donnée une relation R de schéma
{A1:d1,...,An:dn}. On dit que {Ai1,...,Aim} est
une super-clé de R ssi pour toute valeur
vi1,...,vim il existe au plus un tuple
(A1=v1,...,An=vn) de R tel que
Ai1=vi1,...,Aim=vim.

Une super-clé est une clé lorsqu’elle est


minimale.
Contraintes et algèbre
relationnelle
Il y a deux façons équivalentes de définir des
contraintes avec l’algèbre relationnelle:

imposé qu’une relation soit vide : R=∅

ou qu’une relation est incluse dans une


autre : R ⊆ S

l’inclusion est équivalente à R-S=∅

la vacuité est équivalente à R ⊆ R-R


Clés et algèbre
relationnelle

Ce type de contrainte permet de définir une


clé L pour une relation R de schéma
{A1:d1,...,An:dn}:

R joinθ R = ∅ où θ impose l’égalité pour


les attributs de L et la différence pour les
attributs qui ne sont pas dans L.
Contraintes
référentielles

Le produit cartésien et les jointures


permettent de définir finement des
contraintes entre plusieurs relations.

Vous aimerez peut-être aussi