algebrerelationnelle support

Upload: masterf971

Post on 11-Oct-2015

9 views

Category:

Documents


0 download

TRANSCRIPT

  • Algbre relationnelle

    AlgebreRelationnelle_support.docx 16/10/2012 Page 1

    lments dalgbre relationnelle

    I. INTRODUCTION 2 A. ORIGINE 2 B. LES RELATIONS 2 1. TERMINOLOGIE 2

    2. EXEMPLES DE RELATION 3

    3. EXEMPLE DE RELATION 3

    C. INTEGRITE DES RELATIONS 4 D. LALGEBRE RELATIONNELLE 4 II. LES OPERATIONS UNAIRES 5 A. PROJECTION 5 B. SELECTION 6 C. EXPRESSIONS ALGEBRIQUES 7 III. LES OPERATIONS ENSEMBLISTES 8 A. OPERATIONS SUR LES ENSEMBLES - RAPPELS 8 B. UNION 8 C. DIFFERENCE 10 D. PRODUIT CARTESIEN 11 IV. LES OPERATIONS DERIVEES 13 A. INTERSECTION 13 B. QUOTIENT OU DIVISION 14 C. JOINTURES 16 1. JOINTURE INTERNE (THETA-JOINTURE) 16

    2. JOINTURE NATURELLE 17

    3. LA JOINTURE EXTERNE 18

    4. CAS PARTICULIERS 19

    V. LES OPERATIONS DE CALCULS ET DAGREGATS 20 A. COLONNES CALCULEES 20 B. COMPTE 21 C. SOMME 22 VI. LES EXPRESSIONS DE L'ALGEBRE RELATIONNELLE 23 A. QUELQUES EXEMPLES 23 B. PLUSIEURS SOLUTIONS 24 VII. EXERCICES DENTRAINEMENT 25 VIII. BIBLIOGRAPHIE 27

  • Algbre relationnelle

    AlgebreRelationnelle_support.docx 16/10/2012 Page 2

    I. Introduction

    A. Origine

    Lalgbre relationnelle a t introduite dans les annes 1970 par Edgar Frank Codd ( Ted Codd, 1923-2003), alors informaticien chez IBM, pour formaliser les oprations sur les relations, partir de la thorie des ensembles. Lobjectif tait de crer une plus grande indpendance entre programmes et reprsentation internes des donnes et disposer de rgles permettant de rsoudre les problmes de cohrence et de redondance de donnes dans les fichiers.

    Ses travaux sont lorigine des bases de donnes relationnelles, modle de BD le plus utilis encore aujourdhui, et de SQL, langage dclaratif de manipulation des donnes dune BD relationnelle, partir des oprateurs de lalgbre relationnelle.

    Le modle relationnel sinscrit galement dans les phases de la conception des bases de donnes.

    Cf.Article de EF Codd : http://www.databaseanswers.org/downloads/Codds_1970_Paper.pdf

    B. Les relations

    1. Terminologie

    La relation (mathmatique) entre 2 ensembles (binaire) E1 et E2 est forme par le sous-ensemble du produit cartsien E1 X E2. Chacun des 2 ensembles est dfini par son domaine de valeurs, ensemble des valeurs pouvant tre prises par ses lments. La relation forme ainsi un ensemble de couples, chacun tant form dun 1er lment appartenant E1 et dun 2nd appartenant E2.

    Le terme n-uplets (tuples en anglais), qualifie lensemble de couples forms par le produit cartsien de n ensembles.

    Un domaine (- de valeurs) est un ensemble de valeurs. Un domaine possde un identificateur.

    Exemple de domaines :

    les nombre entiers de 1900 1999 : {1900, 1901, 1902,..., 1998, 1999} annee les nombre entiers de 1 31 : {1, 2, 3,..., 30, 31} jour les jours de la semaine : {dimanche, lundi, mardi, ..., vendredi, samedi} jourSemaine les mois de lanne : {janvier, fvrier, mars, ..., novembre, dcembre} mois

    Une relation est un sous-ensemble du produit cartsien dune liste de domaines. Une relation possde un identificateur.

    Rappel : Le produit cartsien de deux ensembles X et Y est l'ensemble de tous les couples, dont la premire composante appartient X et la seconde Y. Lensemble ainsi produit peut former un produit cartsien avec un 3me ensemble Z, etc.

    Exemple dune relation dateNaissanceEtudiant :

    Le produit cartsien jourSemaine X jour X mois X annee constitue un ensemble compos de toutes les combinaisons possibles (certaines nexisteront jamais, par exemple le 30 fvrier)

    la relation dateNaissanceEtudiant sera forme par un sous-ensemble de ce produit cartsien (en effet, certains jours aucun tudiant ne sera n)

    Un attribut est ainsi un des lments dune relation. Chaque attribut appartient un domaine de valeur et possde un identificateur.

    Exemples dattributs :

  • Algbre relationnelle

    AlgebreRelationnelle_support.docx 16/10/2012 Page 3

    jourNaissance appartenant au domaine jour

    moisNaissance appartenant au domaine mois

    Ainsi, un schma de relation est dcrit par un identificateur de relation et un ensemble dattributs, chacun appartenant un domaine de valeurs diffrent.

    Le schma de la relation est ainsi :

    DateNaissanceEtudiant (jourSemNaissance : jourSemaine, jourNaissance : jour, moisNaissance : mois, anneeNaissance : annee)

    Le degr dune relation correspond son nombre dattributs.

    Le degr de la relation DateNaissanceEtudiant est 4.

    et tre forme par le sous-ensemble suivant :

    {jeudi, 16, mai, 1985}, {lundi, 29, juin, 1987}, {vendredi, 6, octobre, 1989}, {mercredi, 16, juin, 1993}

    La cardinalit de la relation correspond au nombre de tuples de la relation.

    La cardinalit de la relation DateNaissanceEtudiant est 4.

    Une occurrence dune relation dsigne lun des tuples de la relation.

    Une occurrence de la relation est {jeudi, 16, mai, 1985}.

    2. Exemples de relation

    On considre la relation R dfinie par les attributs A, B et C :

    en comprhension (ou en intention) : o R(A : caractere, B : caractere, C : caractere) o Degree de la relation : 3

    en extension : o R = { {a,b,c}, {d,a,f}, {c,b,d} } o Cardinalit de la relation 3

    Ou bien sous forme tabulaire (= de tableau) :

    3. Exemple de relation

    On considre la relation Individu dfinie par les attributs numero , nom , prnom et dateNaissance :

    en comprhension : o Individu (numero : entier, nom : chaine, prenom : chaine, dateNaissance : date) o degr de la relation : 4

    en extension : o Individu = { { 1, Dupont, Jacques, 15/01/1920 },

    { 2, Durand, Pierre, 20/07/1949}, { 3, Lambert, Paul, 03/12/1974 } }

    R A B C

    a b c

    d a f

    c b d

  • Algbre relationnelle

    AlgebreRelationnelle_support.docx 16/10/2012 Page 4

    o cardinalit de la relation : 3 Ou bien sous forme tabulaire :

    Individu Numero Nom Prenom DateNaissance

    1 Dupont Jacques 15/01/1920

    2 Durand Pierre 20/07/1949

    3 Lambert Paul 03/12/1974

    C. Intgrit des relations

    La notion de clef permet de maintenir lintgrit des valeurs dans les relations :

    CLEF PRIMAIRE (anglais : Primary Key): cest la clef qui assure lunicit dun tuple dune relation ; tous les autres attributs dune relation sont en dpendance unique de la clef primaire ; la clef peut tre simple ou composite ;

    o on la reprsente souligne numP

    CLE CANDIDATE : cest une colonne qui nest pas clef primaire, mais qui aurait pu ltre et dont on souhaite, parfois, garantir lunicit des valeurs (un code INSEE, une adresse mail);

    o On la reprsente : immatAv ;

    CLEF ETRANGERE (anglais : Foreign Key): un attribut clef trangre dans une relation est clef primaire dans une autre table ; elle matrialise un lien logique entre ces 2 relation ;

    o on la reprsente gnralement prfixe dun # : #numAv

    Exemples 1 :

    Pilote ( numP, villeP)

    Avion (numAv, nomAv, capaAv, locAv, immatAv)

    Vol (numVol, villeDep, villeArr, #numP, #numAv) o #numP fait reference numP dans Pilote o #numAv fait reference NumAv dans Avion

    Exemple 2 :

    Ouvrage (num_ouvrage, titre, annee, #reliure) o #reliure fait rfrence reliure dans Reliure

    Reliure (reliure, prix)

    D. Lalgbre relationnelle

    Lalgbre relationnelle correspond aux oprations quon applique des relations. Le rsultat produit par lapplication dun oprateur de lalgbre relationnelle une relation est une nouvelle relation.

    L'algbre relationnelle comporte deux familles d'oprateurs :

    Les oprateurs unaires (mise en jeu dune seule relation) : PROJECTION et SELECTION

    Les oprateurs ensemblistes (mise en jeu de 2 relations): UNION, DIFFERENCE et PRODUIT CARTESIEN

    Ces 5 oprations forment un ensemble cohrent et minimal. Des extensions ces oprations de bases permettent d'en amliorer l'efficacit travers une simplification de leur criture (INTERSECTION, JOINTURE,...) ou d'effectuer des calculs (COMPTE, SOMME,).

    Remarque : le symbolisme de reprsentation des oprateurs peut varier dun auteur lautre. Vous trouvez les exemples de reprsentations courants.

    Lalgbre relationnelle est un langage thorique dinterrogation des relations et forme la base des langages dinterrogation de base de donnes relationnelle (SQL, par exemple).

  • Algbre relationnelle

    AlgebreRelationnelle_support.docx 16/10/2012 Page 5

    II. LES OPERATIONS UNAIRES Les oprations unaires dappliquent une seule relation et ont pour rsultat une nouvelle relation.

    A. PROJECTION

    La projection est une opration de RESTRICTION sur les COLONNES.

    La projection d'une relation R consiste en la mise en place d'une nouvelle relation en ne retenant que certains attributs et en supprimant les tuples dupliqus.

    Notation :

    T = xi,..,xn ( R ) ou

    T = PROJECTION (R , x1, ,xn)

    On utilise parfois le caractre * pour conserver toutes les attributs de la relation dorigine ou bien la relation rsultante est gale la relation initiale : T = R (peu dintrt)

    T = PROJECTION(R, A, B)

    CHOIX DUN SOUS-ENSEMBLE DE COLONNES DE LA RELATION DE DEPART

    R A B C

    a b c

    d a f

    c b d

    T A B

    a b

    d a

    c b

  • Algbre relationnelle

    AlgebreRelationnelle_support.docx 16/10/2012 Page 6

    B. SELECTION

    La slection est une opration de RESTRICTION sur les LIGNES.

    La slection consiste extraire de la relation R considre un sous-ensemble de tuples satisfaisant certains critres.

    On appelle ces critres qualification (en abrg Q).

    La qualification Q peut tre exprime l'aide de constantes, doprateurs relationnels (>, =,

  • Algbre relationnelle

    AlgebreRelationnelle_support.docx 16/10/2012 Page 7

    C. Expressions algbriques

    Afin de rpondre des demandes plus complexes, il est possible combiner les oprateurs pour former des expressions permettant de rpondre toutes formes de questions.

    Ainsi, pour obtenir, partir de la relation R, les colonnes A et B de lensemble des tuples pour lesquelles la valeur de lattribut A est diffrente de a, nous pouvons crire :

    R1 = SELECTION ( R , Aa )

    R1 A B C

    d a f

    c b d

    Puis :

    T = PROJECTION( R1 , A, B )

    T A B

    d a

    c b

    Soit : T = PROJECTION ( SELECTION ( R , Aa ) , A, B )

  • Algbre relationnelle

    AlgebreRelationnelle_support.docx 16/10/2012 Page 8

    III. LES OPERATIONS ENSEMBLISTES Les oprations ensemblistes sappliquent 2 relations pour former une nouvelle relation.

    Les oprations UNION et DIFFERENCE exigent des relations quelles soient union compatibles , c'est dire qu'elles aient le mme schma :

    o mme nombre dattributs (mme degr) o les attributs associs 2 2 sont issus de mmes domaines

    Remarque : les doublons sont limins. (tuples pour lesquels les valeurs de tous les attributs ont la mme valeur)

    A. Oprations sur les ensembles - rappels

    Soient deux ensembles R et S (S est en gras sur les schmas). Pour les 3 cas prsents, vous trouverez le rsultat en extension et la cardinalit (nombre dlments) de l'ensemble rsultant, T.

    T = R U S card(R) + card(S) - card(R S) T = R - S card(R) - card(R S) T = S - R card(S) - card(R S)

    B. UNION

    Lunion de 2 relations R et S de mme schma est une relation T de mme schma contenant lensemble des tuples appartenant soit R, soit S, soit la fois R et S

    Notations :

    T = (R U S) Ou

    T=UNION(R, S)

  • Algbre relationnelle

    AlgebreRelationnelle_support.docx 16/10/2012 Page 9

    TOUS LES TUPLES DES DEUX RELATIONS EN SUPPRIMANT LES DOUBLONS

    R A B C

    a b c

    d a f

    c b d

    S A B Cb g ad a f

    R A B C

    a b c

    d a f

    c b d

    S A B Cb g ad a f

    Les doublons sont supprims

    Les relations sont union-compatibles

    T A B C

    a b c

    d a f

    c b d

    b g a

    Provient de R

    Provient de S

  • Algbre relationnelle

    AlgebreRelationnelle_support.docx 16/10/2012 Page 10

    C. DIFFERENCE

    La diffrence entre 2 relations R et S de mme schma dans l'ordre (R - S) est la relation T de mme schma contenant les tuples appartenant R sauf ceux qui appartiennent aussi S.

    Notation :

    T= (R - S) Ou

    T= MINUS(R,S)

    T = DIFFERENCE(R, S)

    On enlve de R ce qui est aussi dans S (TOUTES LES LIGNES DE LA PREMIERE RELATION A LEXCEPTION DE CELLES DE LA DEUXIEME)

    R A B C

    a b c

    d a f

    c b d

    S A B Cb g ad a f

    Les tuplesprsents dans S ne sont pas repris

    Les relations sont union-compatibles

    T A B C

    a b c

    c b d

    Les tuplesde R qui ne sont pas dans S

  • Algbre relationnelle

    AlgebreRelationnelle_support.docx 16/10/2012 Page 11

    D. PRODUIT CARTESIEN

    Le produit cartsien de 2 relations R et S de schma quelconque est une relation T ayant pour attributs les attributs de R et de S, et dont les tuples sont constitus par la combinaison de chaque tuple de R avec chacun des tuples de S,.

    Le produit cartsien permet la construction de toutes les combinaisons possibles entre les tuples de 2 relations.

    Notation :

    T = (R X S) ou

    T=PRODUIT(R, S)

    R A B C

    a b c

    d a f

    c b d

    S A Db gd a

    S A Db gd a

    R A B C

    a b c

    d a f

    c b d

    Le schma rsultant comporte tous les attributs de R et de S

    Chaque tuple de R est associ chacun des tuples de S pour former un couple de valeurs

  • Algbre relationnelle

    AlgebreRelationnelle_support.docx 16/10/2012 Page 12

    T R.A R.B R.C S.A S.D

    a b c b g

    a b c d a

    d a f b g

    d a f d a

    c b d b g

    c b d d a

    Les tuples de R Les tuples de S

  • Algbre relationnelle

    AlgebreRelationnelle_support.docx 16/10/2012 Page 13

    IV. Les oprations drives Elles peuvent tre construites partir des oprations de base.

    A. INTERSECTION

    L'intersection de 2 relations R et S de mme schma est une relation T de mme schma contenant les tuples appartenant la fois R et S.

    Notation :

    T = ( R S) ou

    T = INTERSECT(R, S) Lintersection peut tre construite partir des oprateurs de base :

    ( R S) = R (R S) = S ( S R )

    LES LIGNES QUI SONT A LA FOIS DANS LA PREMIERE ET DANS LA DEUXIEME RELATION

    R A B C

    a b c

    d a f

    c b d

    S A B Cb g ad a f

    R A B C

    a b c

    d a f

    c b d

    S A B Cb g ad a f

    Les relations sont union-compatibles

    Les tuplesprsents dans R et dans S sont repris

    T A B C

    d a fTuplescommuns R et S

  • Algbre relationnelle

    AlgebreRelationnelle_support.docx 16/10/2012 Page 14

    B. QUOTIENT ou DIVISION

    Le quotient (ou division) : de la relation R de schma R (A1, A2,An) par la sous-relation S de schma S (Ap+1, An) est la relation T de schma T(A1, A2,Ap) forme de tous les tuples qui, combins chaque tuple de S, donnent toujours un tuple de R.

    Notation :

    T = ( R / S) ou

    T = DIVISION (R, S)

    T = QUOTIENT (R, S) Le quotient permet de rechercher l'ensemble de tous les sous-tuples d'une relation satisfaisant une sous-relation dcrite par l'opration diviseur.

    R A B C D

    a b c d

    a b a d

    a c b a

    b c c d

    d a c d

    b c a d

    S C Dc da d

    R A B C D

    a b c d

    a b a d

    a c b a

    b c c d

    d a c d

    b c a d

    S C Dc da d

    T A Ba bb c

  • Algbre relationnelle

    AlgebreRelationnelle_support.docx 16/10/2012 Page 15

    Le produit cartsien de T et S va toujours donner un tuple de R

    Exemple dutilisation : rechercher tous les produits qui existent dans une gamme de couleurs(ou une gamme de prix), ou bien tous les livres quon trouvera dans une gamme de reliures, ou bien les coureurs qui ont particip une liste de grands prix,etc.

    R A B C D

    a b c d

    a b a d

    a c b a

    b c c d

    d a c d

    b c a d

    S C Dc da d

    T A Ba bb c

    X

  • Algbre relationnelle

    AlgebreRelationnelle_support.docx 16/10/2012 Page 16

    C. JOINTURES

    Lopration de base de la jointure est le produit cartsien.

    1. Jointure interne (thta-jointure)

    Cette opration est essentielle dans les systmes relationnels pour rassembler de manire cohrente des attributs provenant de plusieurs relations.

    La jointure interne, ou thta-jointure (INNER JOIN) est une produit cartsien de R et S qui conserve seulement les tuples satisfaisant une qualification (qualification = comparaison entre 2 attributs) :

    L'quijointure est une jointure ayant pour qualification l'galit entre 2 attributs; La non-quijointure est une jointure ayant pour qualification un oprateur autre que l'galit entre 2

    attributs

    La jointure de 2 relations R et S selon une qualification Q est l'ensemble des tuples du produit cartsien R X S satisfaisant la qualification Q. (voir loprateur Selection).

    La jointure exige que les 2 relations aient un domaine en commun.

    La jointure est quivalente lapplication dune slection un produit cartsien.

    Notation :

    T = (R Q)S

    ou

    T = JOINTURE(R, S , Q)

    T = JOIN (R, S, R.B = S.A)

    R A B C

    a b c

    d a f

    c b d

    S A Db gd a

  • Algbre relationnelle

    AlgebreRelationnelle_support.docx 16/10/2012 Page 17

    2. Jointure naturelle

    La jointure naturelle (NATURAL JOIN) est une jointure de R et S sur tous les attributs de mme nom, suivi de la projection qui permet de supprimer les attributs rpts.

    Attention :

    si aucun nom dattribut nest commun, on obtient un produit cartsien

    si des attributs portent le mme nom sans toutefois avoir le mme sens, on obtiendra une jointure incohrente...

    T = NATURAL JOIN (R, S)

    R X S R.A R.B R.C S.A S.D

    a b c b g

    a b c d a

    d a f b g

    d a f d a

    c b d b g

    c b d d a

    QR.B = S.A

    T R.A R.B R.C S.A S.D

    a b c b g

    c b d b g

    R A B C

    a b c

    d a f

    c b d

    S A Db gd a

  • Algbre relationnelle

    AlgebreRelationnelle_support.docx 16/10/2012 Page 18

    3. La jointure externe

    La jointure externe (OUTER JOIN) est une jointure de R et S qui conserve tous les tuples, de lune ou lautre des relations et les tuples issus de la jointure des 2 relations : La jointure de R et S conserve tous les tuples : de R pour une jointure externe gauche, (LEFT OUTER JOIN) et de S pour une jointure externe droite (RIGHT OUTER JOIN) ou des 2 relations pour une jointure totale (FULL OUTER JOIN).

    Les valeurs des tuples ne satisfaisant pas la qualification ont pour valeur NULL.

    T = LEFT OUTER JOIN (R, S, R.A = S.A)

    Ou

    T = LEX JOIN(R, S, R.A = S.A)

    (REX_JOIN pour une jointure externe droite)

    (FEX_JOIN pour une jointure externe complte)

    On conserve tous les tuples de la table gauche de la jointure

    R X S R.A R.B R.C S.A S.D

    a b c b g

    a b c d a

    d a f b g

    d a f d a

    c b d b g

    c b d d a

    T A B C S.A D

    d a f d a

    R A B C

    a b c

    d a f

    c b d

    S A Db gd a

  • Algbre relationnelle

    AlgebreRelationnelle_support.docx 16/10/2012 Page 19

    4. Cas particuliers

    L'autojointure est un cas de jointure d'une relation avec elle-mme. Cela se passe comme si on avait 2 copies diffrentes d'une mme relation. Les noms des attributs sont prfixs du nom de relation afin d'viter toute ambigut.

    La semijointure est un cas de jointure ne conservant que les attributs dune des relations .

    R X S R.A R.B R.C S.A S.D

    a b c b g

    a b c d a

    d a f b g

    d a f d a

    c b d b g

    c b d d a

    QR.A = S.A

    T R.A R.B R.C S.A S.D

    a b c null null

    d a f d a

    c b d null null

    Tuple joint

  • Algbre relationnelle

    AlgebreRelationnelle_support.docx 16/10/2012 Page 20

    V. Les oprations de calculs et dagrgats On peut galement ajouter des oprations de calcul et de regroupement en appliquant une fonction statistique sur les attributs des relations. De nombreuses requtes ont en effet besoin de ces oprations.

    A. Colonnes calcules

    Certaines colonnes peuvent provenir dun rsultat de calcul. La mise en place de ces calculs peut tre effectue dans le cadre des projections.

    On dfinit ici une nouvelle relation R pour laquelle les attributs B et C sont numriques (condition pour effectuer des calculs).

    R A B C

    a 2 10

    d 3 15

    c 5 5

    A B BparC MoitieC

    a 2 2*10 10/2

    d 3 3*15 15/2

    c 5 5*5 5/2

    T = PROJECTION (R , A, B, BparC=B*C, MoitieC=C/2 )

    T A B BparC MoitieC

    a 2 20 5

    d 3 45 7,5

    c 5 25 2,5

  • Algbre relationnelle

    AlgebreRelationnelle_support.docx 16/10/2012 Page 21

    B. COMPTE

    Compte est une opration courante qui permet de DENOMBRER LES LIGNES d'une relation qui ont une mme valeur d'attribut en commun.

    La relation rsultante ne contient que les attributs de regroupement xi choisis avec leurs occurrences dans la relation

    Notation :

    T = compte x1, , xn ( R ) ou

    T = COMPTE (R , x1,,xn)

    Si aucun attribut de regroupement n'est prcis, l'opration renvoie alors le nombre de tupes de R. La relation T ne comporte alors quun seul tuple avec une seule colonne.

    Exemple 1 : T = COMPTE (R )

    On compte le nombre de tuples de R

    Exemple 2 : T = COMPTE (R , B )

    On compte le nombre de tuples de R par valeur diffrente de la colonne B

    R A B Ca b cd a fc b d

    T CompteR3

    T B CompteRb 2a 1

    Countx1,,xn

    T

    R

  • Algbre relationnelle

    AlgebreRelationnelle_support.docx 16/10/2012 Page 22

    C. SOMME

    Somme est une opration qui permet de faire la SOMME CUMULEE des valeurs d'un attribut Y pour chacune des valeurs diffrentes de attributs de regroupement x1, xn.

    Y doit tre numrique.

    La relation rsultante ne contient que les diffrentes valeurs des attributs Xi de regroupement choisis ainsi que la somme cumule des Y correspondants.

    Notation :

    T = somme x1,,xn ( R, Y)

    ou

    T = SOMME (R, Y , x1,...,xn)

    Si aucun attribut de regroupement n'est prcis, l'opration renvoie alors la somme de toutes des valeurs de la colonne Y. La relation T ne comporte alors quun seul tuple avec une seule colonne.

    Cette opration se gnralise facilement d'autres oprations : MOYENNE, MINIMUM, MAXIMUM.

    On dfinit ici une nouvelle relation R pour laquelle lattribut C est numrique.

    Exemple 1 : T = SOMME (R , C )

    On effectue la somme de la colonne C pour tous les tuples de R

    Exemple 2 : T = SOMME (R , C, B )

    On effectue la somme de la colonne C par valeur diffrente de la colonne B

    R A B Ca b 10d a 15c b 5

    T SommeC30

    T B SommeCb 15a 15

  • Algbre relationnelle

    AlgebreRelationnelle_support.docx 16/10/2012 Page 23

    VI. Les expressions de l'algbre relationnelle Une fois les oprateurs relationnels identifis, il est alors facile de combiner ces oprations lmentaires pour construire des expressions de l'algbre relationnelle permettant de fournir les rponses des questions complexes.

    Afin de sapprocher du langage SQL daccs aux bases de donnes relationnelles, certains auteurs introduisent de nouveaux oprateurs.

    Ainsi, vous trouverez un oprateur de classement des lignes (tri) :

    T = TRI (R, x1 [croissant | decroissant], ,xn[croissant | decroissant]),

    qui produit une nouvelle relation T partir de la relation R, en triant, en rordonnant, les lignes selon les critres de tri. Un critre de tri fait rfrence une colonne et un mot clef qui prcise le type de classement quon va appliquer cette colonne (croissant, par dfaut, ou dcroissant).

    A. Quelques exemples

    Exemple pour 3 relations :

    Fournisseurs (fno, nom, adresse, ville)

    Produits (pno, design, prix, poids, couleur) Commandes (cno, #fno, #pno, qute)

    Dterminer les diffrents numros de fournisseurs nomms "Dupont"

    On slectionne les donnes des fournisseurs dont le nom est dupont :

    R1 = SELECTION ( Fournisseurs , nom=dupont )

    On rcupre seulement le numro de fournisseur (colonne fno) :

    R2 = PROJECTION ( R1 , fno )

    Ou bien :

    PROJECTION ( SELECTION ( Fournisseurs / nom= dupont ) , fno )

  • Algbre relationnelle

    AlgebreRelationnelle_support.docx 16/10/2012 Page 24

    Dterminer les numros de fournisseurs qui ont moins de 3 commandes

    On compte le nombre de commandes par fournisseur :

    R1 = COMPTE (Commandes , fno)

    On slectionne les lignes pour lesquelles le compte est infrieur 3 :

    R2 = SELECTION (R1 , compteCommandes < 3)

    On rcupre seulement le numro de fournisseur (colonne fno):

    R3 = PROJECTION (R2 , fno)

    Ou bien :

    PROJECTION ( SELECTION ( COMPTE ( Commandes , fno ) , compte < 3 ) , fno )

    B. Plusieurs solutions

    Il existe en gnral plusieurs requtes algbriques diffrentes qui fournissent une solution une question donne. Si la relation obtenue est identique avec ces diffrentes requtes, l'efficacit est rarement la mme (par exemple, l'opration de jointure est en gnral coteuse ; la table temporaire la plus volumineuse pour effectuer cette requte est engendre par le produit cartsien des 2 tables).

    Des calculs utilisant la cardinalit dune relation ainsi que le nombre et la taille (moyenne) de ses attributs permet de choisir les requtes la moins couteuse.

  • Algbre relationnelle

    AlgebreRelationnelle_support.docx 16/10/2012 Page 25

    VII. Exercices dentranement En utilisant les 3 relations (Fournisseurs, Produits, Commandes) :

    Fournisseurs (fno, nom, adresse, ville)

    Produits (pno, design, prix, poids, couleur) Commandes (cno, #fno, #pno, qte)

    lister les numros et noms des fournisseurs

    lister les donnes sur les produits dont le poids est suprieur 15kg

    liste les produits dont le poids est compris entre 15 et 40 kg

    lister les fournisseurs de Lille, Lyon ou Nice

    lister les noms des fournisseurs avec les numros de produits commands ainsi que la quantit commande

    lister les couples de rfrences de fournisseurs situs dans la mme ville

    lister tous les produits de moins de 20 kg avec les quantits en cours de commande

    compter le nombre de commandes du produit no 102

    lister le nombre de commandes par fournisseur

    lister les numros de fournisseur qui ont plus de 3 commandes d'au moins dix articles en cours

  • Algbre relationnelle

    AlgebreRelationnelle_support.docx 16/10/2012 Page 26

    Propositions de rponses :

    lister les numros et noms des fournisseurs o PROJECTION (Fournisseurs , fno, nom)

    lister les donnes sur les produits dont le poids est suprieur 15kg o SELECTION (Produits , poids > 15)

    liste les produits dont le poids est compris entre 15 et 40 kg o SELECTION (Produits , poids >= 15 ET poids = 15) o R2 = SELECTION (Produits , poids = 10) o R3 = COMPTE ( R2 , fno, cno) o R4 = SELECTION (R3 , R3.compte > 3) o R5 = PROJECTION (R4, fno)

  • Algbre relationnelle

    AlgebreRelationnelle_support.docx 16/10/2012 Page 27

    VIII. Bibliographie

    Bases de donnes et systmes d'information - le modle relationnel : langages, systmes et mthodes - Hacer Boudjlida - Dunod - 1999 - isbn 2 10 004309 9 des bases de donnes l'internet - Philippe Mathieu - Vuibert Informatique - 2000 - isbn 2-7117-8669-2 SQL2 de la thorie lapplication Pierre Delmal bibliothque des universits 1995 isbn 2 8041 2179 8