définitions schéma et instance de relation algèbre

Post on 18-Jun-2022

1 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

2-1

Le modèle relationnel

DéfinitionsSchéma et instance de relationAlgèbre relationnelleOpérateurs fondamentauxOpérateurs dérivésExemples de requêtes algébriques

2-2

Bases de données relationnellesConcepts de base

modèle de données : organise les données dans des tablesune BD relationnelle est un ensemble de tables

Avantagesconcepts simplesbase mathématique solide

• théorie des ensembleslangages de requêtes puissantsoptimisation de requêtesthéorie pour la conception

Standard industrielSQL

2-3

Modèle relationnelRelation

Une relation R avec les attributs A={A1, A2, …, An} définis sur n domaines de valeurs D={D1, D2, ..., Dn} est un ensemble fini de n-uplets <d1, d2, ..., dn> tels que d1 ∈ D1, d2 ∈ D2, ..., dn ∈ Dn Notation: R(A1, A2, …, An) ou R(A1: D1, A2: D2, …, An: Dn)Ex. de domaines : les entiers, les ages, les noms, etc.

Structure tabulaire oùR est l'entête de la tableles attributs sont des colonnes (columns)chaque n-uplet (tuple) est une ligne (row)

2-4

Schéma et instance de relation

Schéma de relationun schéma de relation est un nom et un ensemble d'attributsun schéma de BD relationnelle est un ensemble de schémas de relations

Instance de relation (ou relation)une relation est une instance d'un schéma de relationune relation r de schéma R = {A1, ..., An} est un sous-ensemble du produit cartésien des domaines des attributs, i.e.,

r ⊆ Dom1 × Dom2 × … × Domn

2-5

Schémas de relations

EMP(ENO, ENAME, TITLE)PROJ (PNO, PNAME, BUDGET)WORKS(ENO,PNO, RESP, DUR)PAY(TITLE, SALARY)

Les attributs soulignés sont les clés (identificateurs de tuples)

ENO

EMP

ENAME TITLE

PROJ

PNO PNAME BUDGET

RESP

WORKS

PNOENO DUR

PAY

SALARYTITLE

2-6

Instances de relationsENO ENAME TITLE

E1 J. Doe Elect. Eng.E2 M. Smith Syst. Anal.E3 A. Lee Mech. Eng.E4 J. Miller ProgrammerE5 B. Casey Syst. Anal.E6 L. Chu Elect. Eng.E7 R. Davis Mech. Eng.E8 J. Jones Syst. Anal.

EMP

ENO PNO RESP

E1 P1 Manager 12

DUR

E2 P1 Analyst 24E2 P2 Analyst 6E3 P3 Consultant 10E3 P4 Engineer 48E4 P2 Programmer 18E5 P2 Manager 24E6 P4 Manager 48E7 P3 Engineer 36

E8 P3 Manager 40

WORKS

E7 P5 Engineer 23

PROJ

PNO PNAME BUDGET

P1 Instrumentation 150000

P3 CAD/CAM 250000P2 Database Develop. 135000

P4 Maintenance 310000P5 CAD/CAM 500000

TITLE SALARY

PAY

Elect. Eng. 55000Syst. Anal. 70000Mech. Eng. 45000Programmer 60000

2-7

PropriétésBasées sur la théorie des ensembles

pas d'ordre entre les attributs pas d'ordre entre les tuples

• mais les résultats de requêtes peuvent être triéspas de tuples dupliqués

• mais les SGBD autorisent les doublesorienté valeur: un tuple est identifié par sa valeur de clé

Les valeurs d'attributs sont atomiquespas de structure

Degré ou ariténombre d'attributs

Cardinaliténombre de tuples

2-8

Algèbre relationnelle

Forme

<Opérateur><parametres> <Opérandes> → <Résultat>↓ ↓

Relation (s) Relation

2-9

Opérateurs de l'algèbre relationnelleFondamentaux

unionrenommagedifférencesélectionprojectionproduit cartésien

Dérivésintersectionjointuredivision

Compatibilité pour l'union même degréattributs correspondants définis sur le même domaine

2-10

Union

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

où R, S sont des relations, t est une variable tuplele résultat contient les tuples qui sont dans R ou dans S (élimination des doubles)R, S doivent être compatibles pour l'union

2-11

Renommage

Renomme certains attributs d’une tableForme

B1,…,Bn ←A1,…,An(R) =

{t’ | t∈R et t[Ai] = t’[Ai] pour i=1,n}où

R est une relation, t est une variable tuple{A1,…, An} est un sous-ensemble des attributs de R{B1,…, Bn} est un ensemble d’attributs

ExempleJOB ←TITLE (EMP) (ENO, ENAME, JOB)

2-12

Différence

Forme

R – S={t | t∈R et t∉S}

où R et S sont des relations, t est une variable tuple

le résultat contient tous les tuples qui sont dans R, mais pas dans S.

R – S ≠ S – R

R, S compatibles pour l'union

2-13

SélectionProduit un sous-ensemble horizontal de la relation

opérandeForme

σF(R)={t | t∈R et F(t) est vrai}où

R est une relation, t est une variable tupleF est une formule logique composée de

• opérandes: constantes ou attributs• opérateurs de comparaison

<, >, =, ≠, ≤, ≥• opérateurs logiques

∧, ∨, ¬

2-14

Exemple de sélection

ENO ENAME TITLEE1 J. Doe Elect. Eng.E2 M. Smith Syst. Anal.E3 A. Lee Mech. Eng.E4 J. Miller ProgrammerE5 B. Casey Syst. Anal.E6 L. Chu Elect. Eng.E7 R. Davis Mech. Eng.E8 J. Jones Syst. Anal.

EMP

ENO ENAME TITLE

E1 J. Doe Elect. EngE6 L. Chu Elect. Eng.

σ TITLE='Elect. Eng.'(EMP)

2-15

ProjectionProduit un partitionnement vertical d'une relationForme

ΠA1,…,An(R)={t[A1,…, An] | t∈R}

oùR est une relation, t est une variable tuple{A1,…, An} est un sous-ensemble des attributs de R

Note: la projection élimine les tuples dupliqués. Les SGBD relationnels (et SQL) permettent

projection (pure)projection sans élimination des doubles

2-16

Exemple de projection

PROJ

PNO BUDGET

P2 135000

P3 250000P4 310000P5 500000

PNAME

P1 150000InstrumentationDatabase Develop.

CAD/CAMMaintenanceCAD/CAM

ΠPNO,BUDGET(PROJ)

PNO BUDGET

P1 150000

P2 135000P3 250000P4 310000P5 500000

2-17

Produit cartésienSoient les relations

R de degré k1 , cardinalité n1S of degré k2 , cardinalité n2

Produit cartésien: R × S = {t [A1,…,Ak1

, Ak1+1,…,Ak1+k2] |

t[Ak1+1,…,Ak1+k2]∈S}

Le résultat de R × S est une relation de degré (k1+ k2) et contient (n1* n2) tuples, où chaque tuple est la concaténation d'un tuple de R avec un tuple de S.

2-18

Exemple de produit cartésienENO ENAME EMP.TITLE PAY.TITLE SALARY

E1 J. Doe Elect. Eng.E1 J. Doe Elect. Eng.E1 J. Doe Elect. Eng.E1 J. Doe Elect. Eng.

Elect. Eng. 55000Syst. Anal. 70000Mech. Eng. 45000Programmer 60000

E2 M. Smith Syst. Anal.E2 M. Smith Syst. Anal.E2 M. Smith Syst. Anal.E2 M. Smith Syst. Anal.

Elect. Eng. 55000Syst. Anal. 70000Mech. Eng. 45000Programmer 60000Elect. Eng. 55000Syst. Anal. 70000Mech. Eng. 45000Programmer 60000

Elect. Eng. 55000Syst. Anal. 70000Mech. Eng. 45000Programmer 60000

E3 A. Lee Mech. Eng.E3 A. Lee Mech. Eng.E3 A. Lee Mech. Eng.E3 A. Lee Mech. Eng.

E8 J. Jones Syst. Anal.E8 J. Jones Syst. Anal.E8 J. Jones Syst. Anal.E8 J. Jones Syst. Anal.

EMP × PAY

ENO ENAME TITLE

E1 J. Doe Elect. EngE2 M. Smith Syst. Anal.E3 A. Lee Mech. Eng.E4 J. Miller ProgrammerE5 B. Casey Syst. Anal.E6 L. Chu Elect. Eng.E7 R. Davis Mech. Eng.E8 J. Jones Syst. Anal.

EMP

TITLE SALARY

PAY

Elect. Eng. 55000Syst. Anal. 70000Mech. Eng. 45000Programmer 60000

2-19

Intersection

Forme

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

= R – (R – S)

R, S compatibles pour l'union

2-20

JointureForme

R F(R.Ai,S.Bj) S={t[A1,…,An,B1,…,Bm]|t[A1,…,An]∈R et t[B1,…,Bm]∈Set F(R.Ai, S.Bj) est vrai}

oùR, S sont des relations, t est une variable tupleF (R.Ai, S.Bj) est une formule de sélection.

Se déduit du produit cartésienR F S = σF(R × S)

2-21

Exemple de jointureENO ENAME TITLE

E1 J. Doe Elect. EngE2 M. Smith Syst. Anal.E3 A. Lee Mech. Eng.E4 J. Miller ProgrammerE5 B. Casey Syst. Anal.E6 L. Chu Elect. Eng.E7 R. Davis Mech. Eng.E8 J. Jones Syst. Anal.

EMP

EMP EMP.ENO>WORKS.ENOWORKS

ENO PNO RESP

E1 P1 Manager 12

DUR

E2 P1 Analyst 24E2 P2 Analyst 6E3 P3 Consultant 10E3 P4 Engineer 48E4 P2 Programmer 18E5 P2 Manager 24E6 P4 Manager 48E7 P3 Engineer 36

E8 P3 Manager 40

WORKS

E7 P5 Engineer 23

EMP. ENAME TITLE WORKS. PNO RESP DURENO. ENO

E2 M. Smith Syst. Anal. E1 P1 Manager 12E3 A. Lee Mech. Eng. E1 P1 Manager 12E3 A. Lee Mech. Eng. E2 P1 Analyst 24E3 A. Lee Mech. Eng. E2 P2 Analyst 6E4 J. Miller Programmer E1 P1 Manager 12E4 J. Miller Programmer E2 P1 Analyst 24E4 J. Miller Programmer E2 P2 Analyst 6E4 J. Miller Programmer E3 P3 Consultant 10E4 J. Miller Programmer E3 P4 Engineer 48E5 B. Casey Syst. Anal. E1 P1 Manager 12E5 B. Casey Syst. Anal. E2 P1 Analyst 24E5 B. Casey Syst. Anal. E2 P2 Analyst 6E5 B. Casey Syst. Anal. E3 P3 Consultant 10E5 B. Casey Syst. Anal. E3 P4 Engineer 48E5 B. Casey Syst. Anal. E4 P2 Programmer 18E6 L. Chu Elect. Eng. E1 P1 Manager 12E6 L. Chu Elect. Eng. E2 P1 Analyst 24E6 L. Chu Elect. Eng. E2 P2 Analyst 6E6 L. Chu Elect. Eng. E3 P3 Consultant 10E6 L. Chu Elect. Eng. E3 P4 Engineer 48E6 L. Chu Elect. Eng. E4 P2 Programmer 18E6 L. Chu Elect. Eng. E5 P2 Manager 24… … … … … … …

2-22

Types de jointure

θ-jointurela formule F utilise l'opérateur <, >, ≠, ≤, ≥

Equi-jointurela formule F n'utilise que l'opérateur =R R.A=S.B S

Jointure naturelleEqui-jointure où on élimine un des deux attributs communsR S = ΠR.AσF(R × S)

2-23

Exemple de jointure naturelleENO ENAME TITLE

E1 J. Doe Elect. EngE2 M. Smith Syst. Anal.E3 A. Lee Mech. Eng.E4 J. Miller ProgrammerE5 B. Casey Syst. Anal.E6 L. Chu Elect. Eng.E7 R. Davis Mech. Eng.E8 J. Jones Syst. Anal.

EMP

EMP PAY

ENO ENAME TITLE SALARY

E1 J. Doe Elect. Eng. 55000M. Smith 70000E2 Analyst

E3 A. Lee Mech. Eng. 45000

E4 J. Miller Programmer 60000E5 B. Casey Syst. Anal. 70000E6 L. Chu Elect. Eng. 55000E7 R. Davis Mech. Eng. 45000E8 J. Jones Syst. Anal. 70000

TITLE SALARY

PAY

Elect. Eng. 55000Syst. Anal. 70000Mech. Eng. 45000Programmer 60000

2-24

Division

Soient les relationsR de degré k1 (R = {A1,…,Ak1

}) S de degré k2 (S = {B1,…,Bk2

})

Soient A = {A1,…,Ak1} et B = {B1,…,Bk2

} et B ⊆ A

alors, T = R ÷ S est une relation de degré k1-k2 [c-à-d, T(Y) où Y = A-B] tel que pour qu'un tuple t soit dans T, il doit être dans R en combinaison avec chaque tuple de S

2-25

Division

x1x2x3

XS

x1 y1x2 y1x3 y1x4 y1x1 y2x3 y2x2 y3x3 y3x4 y3x1 y4x2 y4x3 y4

X YR

T1 ← ΠY(R)T2 ← ΠY((S × T1) − R)T ← T1 − T2

y1y4

TY

2-26

Exemple de division

ENO PNO PNAME

E1 P1 Instrumentation 150000

BUDGET

E2 P1 Instrumentation 150000E2 P2 Database Develop. 135000

E3 P4 MaintenanceE4 P2 InstrumentationE5 P2 InstrumentationE6 P4E7 P3 CAD/CAME8 P3 CAD/CAM

310000150000150000310000250000250000

EMP

Maintenance

E3 P1 Instrumentation 150000

ENO

E3

EMP÷PROJ

PROJ

PNO BUDGET

P2 135000

P3 250000P4 310000

PNAMEP1 150000Instrumentation

Database Develop.

CAD/CAMMaintenance

E3 P2 Database Develop. 135000E3 P3 CAD/CAM 250000

2-27

Requêtes algébriquesEmp (Eno, Ename, Title, City)Project(Pno, Pname, Budget, City)Pay(Title, Salary)Works(Eno, Pno, Resp, Dur)

Villes où il y a des employés ou des projets?ΠCity(Emp) ∪ ΠCity(Project)

Villes où il y a des projets mais pas d'employés? ΠCity(Project) − ΠCity(Emp)

2-28

Requêtes algébriquesEmp (Eno, Ename, Title, City)Project(Pno, Pname, Budget, City)Pay(Title, Salary)Works(Eno, Pno, Resp, Dur)

Noms des projets de budget > 225?ΠPname(σBudget>225 (Project))

Noms et budgets des projets où travaille l'employé E1?ΠPname, Budget(Project (σEno=‘E1’ (Works)))Π Pname, Budget(σEmp.Eno=Works.Eno (Project × σ Eno=‘E1’ (Works)))

Employés qui travaillent dans chaque projet?Π Eno, Pno(Works) ÷ ΠPno(Project)

2-29

Arbre algébrique

Utile pour manipuler les requêtes (optimisation, vues)Exemple

ΠPname, Budget(Project (σEno=‘E1’ (Works)))

ΠPname, Budget

Works

σ Eno=‘E1’ Project

2-30

Mise à jour d'une BD relationnelle

Avec les opérateurs relationnelsInsertion de tuples = union de la relation contenant les tuples à insérer avec la relation déjà existante dans la baseSuppression de tuples = différence entre la relation existante dans la base et la relation contenant les tuplesà supprimer Modification = suppression suivie d'une insertion

top related