ue flin601 bd ann e 2007 2008 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Cours … PowerPoint Presentation
Download Presentation
Cours …

Loading in 2 Seconds...

play fullscreen
1 / 83

Cours … - PowerPoint PPT Presentation


  • 167 Views
  • Uploaded on

UE FLIN601 - BD Année 2007 - 2008. Cours …. Plan. Généralités Rappels modèle relationnel Algèbre relationnelle, SQL Les contraintes Retour sur les fondements logiques Conception Organisation physique Transactions. Plan. Généralités Rappels modèle relationnel

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Cours …' - leena


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
ue flin601 bd ann e 2007 2008
UE FLIN601 - BD

Année 2007 - 2008

Cours …

slide2
Plan
  • Généralités
  • Rappels modèle relationnel
  • Algèbre relationnelle, SQL
  • Les contraintes
  • Retour sur les fondements logiques
  • Conception
  • Organisation physique
  • Transactions
slide3
Plan
  • Généralités
  • Rappels modèle relationnel
  • Algèbre relationnelle, SQL
  • Les contraintes
  • Conception
  • Organisation physique
  • Transactions
g n ralit s
Généralités

Une BD c'est quoi ?

  • Ensemble de données apparentées (même thématique)
  • Facilement interrogeable et modifiable par un langage de haut niveau (proche langue naturelle)
  • Stocké sur mémoire secondaire (disques)
g n ralit s1
Généralités

Une BD cela sert à quoi ?

  • Mémoriser des données
    • Structurées
    • Documents (texte, images, films …)
  • Volume de données de plus en plus grands
    • Giga, Terra, Péta bases (10**15 octets)
    • Numériques, Textuelles, Multimédia (images, films,...)
    • De plus en plus de données archivées
  • Retrouver en ligne la bonne donnée au bon moment
  • Mettre à jour les données variant dans le temps
g n ralit s2
Généralités

Un peu d'histoire

  • Années 60
    • Récipients logique de données  fichiers sur disque
    • Accès séquentiel puis sur clé
      • Lire (Nomf, Article), Ecrire (Nomf, Article)
      • Lire (Nomf, Article, Clé), Ecrire (Nomf, article, Clé)
  • Années 70
    • Avènement des Bases de Données Réseaux (issues d’Apollo)
    • Ensemble de fichiers reliés par des pointeurs
    • Langage d'interrogation par navigation
  • Années 80
    • Avènement des Bases de Données Relationnelles (BDR)
    • Relations entre ensemble de données
    • Langage d'interrogation par assertion logique

Modèle Objet , Web

g n ralit s3
Généralités

Un peu d'histoire

  • Années 90 …

Influence de l'approche Objet

Web

Modèle semi-structuré

qu tudie t on
Qu'étudie t'on ?

Généralités

Les modèles de données

Les méthodes de stockage

Les langages de requêtes

Les algorithmes d’optimisation de requêtes

Les algorithmes de contrôles

Les méthodes de publication de données

Les architectures de systèmes

La répartition des données

La prise en compte du web

qu tudie t on1

Réel

Modèle conceptuel

Indépendant du modèle de données

Indépendant du SGBD

effectue

Visite

Médecin

Modèle logique

Dépendant du modèle de données

Indépendant du SGBD

Codasyl

Relationnel

Objet

XML

Modèle Physique

Dépendant du modèle de données

Dépendant du SGBD

Organisation physique des données

Structures de stockage des données

Structures accélératrices (index)

Généralités

Qu'étudie t'on ?
slide10
Plan
  • Généralités
  • Rappels modèle relationnel
  • Algèbre relationnelle, SQL
  • Les contraintes
  • Conception
  • Organisation physique
  • Transactions
mod le relationnel
Modèle relationnel

Hypothèse de base

une relation est souvent une meilleure modélisation

qu’une fonction

mod le relationnel1
Modèle relationnel

Mais en Informatique on sait représenter

un ensemble par une application répétée (liste):

suivant(e), suivant(suivant(e)),…

donc attacher à x, R{x} par une liste

mod le relationnel2
Modèle relationnel

=> les relations ne sont pas indispensables

En fait si !

sinon les opérations sont trop complexes

On part donc des ensembles et relations

mod le relationnel3
Modèle relationnel

En BD modèle relationnel

Le modèle de données

  • Simple

description d'une "table"

  • Formel

théorie des ensembles

logique

mod le relationnel4
Modèle relationnel

En BD modèle relationnel

Un petit exemple

VINS(CRU,MILL,REGION,COULEUR)

VINS CRU MILL REGION COULEUR

CHENAS 1983 BEAUJOLAIS ROUGE

TOKAY 1980 ALSACE BLANC

--------

TAVEL 1986 RHONE ROSE

CHABLIS 1986 BOURGOGNE BLANC

ST-EMILION 1987 BORDELAIS ROUGE

terminologie
Terminologie

Nom de relation R VINS

Att (ensemble d'attributs)

Att ( R ) ensemble fini d'attributs de R

Att(VINS) ={CRU,MILL,REGION,COULEUR}

Pour chaque attribut un domaine, ensemble de valeurs

Dom (REGION) = chaînes de caractères longueur 30

R(A,B,C) Arité ( R ) = Attr ( R ) 

Arite(VINS) = 4

Schéma de base de donnée

ensemble fini de schémas de relation

terminologie1
Terminologie

Schéma de relation (INTENTION)

nom de relation R défini sur U={A1,A2, …, Ak)

Contenu du schéma de relation (EXTENSION)

Instance du schéma de relation

Une ligne de la table = un tuple ou n-uplet sur (A1,A2, …, Ak)

(a1,a2,…,ak) telles que pour tout i=1..k, ai  Dom(Ai)

N-uplet = fonction, élt du produit cartésien

Notation u[Ai] = ai = composante de u sur Ai

terminologie2
Terminologie

Une instance r de R =

  • ensemble fini de tuples ou n-uplets

sur (A1,A2, …, Ak)

  • sous-ensemble fini du produit cartésien

DOM (A1) x DOM (A2) x ….. DOM (Ak)

Instance = un des contenus possibles de la table !!

terminologie3
Terminologie

Instance d'une base de données

ensemble d'instances de schéma de relation

r1,r2, …rn (une pour chaque Ri)

Telles que ri soit une instance de Ri

op rateurs
Opérateurs

Nécessité de langages

pour extraire les données

  • Formels

Langage algébrique

Théorie des ensembles

Calculs

Logique

alg bre relationnelle
Algèbre relationnelle
  • Opérations ensemblistes

pour des relations de même schéma

UNION notée 

INTERSECTION notée 

DIFFERENCE notée —

A  B = A - (A - B) ou B - (B-A)

(A  B)  B = B

alg bre relationnelle1
Algèbre relationnelle
  • Renommage

- peut servir à donner le même nom à des attributs

distincts

- donner des noms distincts

Utiliser pour réaliser opérations ensemblistes sur des relations d'attributs différents

R(A1, A2)  ren B1->A1 S(B1,A2)

alg bre relationnelle2
Projection

opération unaire

opération verticale (supprimer des colonnes)

Elimination des attributs non désirés et suppression des tuples en double

Relation -> Relation notée :  A1,A2,...Ak (R)

Sémantique R(U)

soit W  U w [R] (r ) = {u[W]  u  r}

Algèbre relationnelle
alg bre relationnelle3
Algèbre relationnelle

VINS Cru Mill Région Qualité

VOLNAY 1983 BOURGOGNE A

VOLNAY 1979 BOURGOGNE B

CHENAS 1983 BEAUJOLAIS A

JULIENAS 1986 BEAUJOLAIS C

Cru,Région

(VINS) Cru Région

VOLNAY BOURGOGNE

CHENAS BEAUJOLAIS

JULIENAS BEAUJOLAIS

slide25
Sélection

opération unaire

opération horizontale (supprimer des lignes en utilisant certains critères)

Soit V un ensemble d'attributs

Une condition élémentaire sur V est

A comp a ou A comp B

Avec A, B  V, a  Dom(A), Dom(A) = Dom(B) et

Comp est un comparateur (=,<, >, …)

Une condition sur V peut aussi être

C1  C2, C1  C2, C1

Sélection (Restriction)

slide26
Relation -> Relation

notée : C (R)

Sémantique R(U)

C [R] (r ) = {u u  r et u satisfait C}

Sélection (Restriction)

slide27

Sélection (Restriction)

VINS Cru Mill Région Qualité

VOLNAY 1983 BOURGOGNE A

VOLNAY 1979 BOURGOGNE B

CHENAS 1983 BEAUJOLAIS A

JULIENAS 1986 BEAUJOLAIS C

 (MILL>1983) VINS

VINS Cru Mill Région Qualité

JULIENAS 1986 BEAUJOLAIS C

produit de relations rxs
Produit de relations (RxS)

R S R x S

E <-> F F <-> G E <->G

e1 f1 f2 g1 e1 g1

e1 f2 f2 g2 e1 g2

e1 f3 f3 g2 e1 g3

e2 f4 f3 g3 e2 g3

e3 f5 f4 g3

f6 g4

Opération binaire

produit de relations rxs1
Produit de relations (RxS)

R x S =

{(e,g) | f (e,f) R et (f,g) S}

jointures
Jointures

3 types de jointure

  • Théta-jointure

R1 (U1), R2 (U2)

 est une formule booléenne entre attributs de U1 U U2

exemple  : A1 =(B2+C2)

R1 R2

= {t: U1 U U2 | t[U1]  r1  t[U2]  r2  (t)}

jointures1
Jointures
  • Equijointure

R1 (U1), R2 (U2)

C’est un théta-jointure de la forme

 : A1 = A2 avec A1 U1 et A2 U2

R1 R2

(A1 = A2)

= {t: U1 U U2 | t[U1]  r1  t[U2]  r2 t[A1]=t[A2]}

slide32

Jointures

R S R S

E <-> F F <-> G E F G

e1 f1 f2 g1 e1 f2 g1

e1 f2 f2 g2 e1 f2 g2

e1 f3 f3 g2 e1 f3 g2

e2 f4 f3 g3 e1 f3 g3

e3 f5 f4 g3 e2 f4 g3

f6 g4

Jointure naturelle

jointures2
Jointures

R S = {(e,f,g) | f (e,f) R et (f,g) S}

Combiner le contenu de

deux instances en se servant

des valeurs dans les colonnes communes

jointures3
Jointures

Jointure naturelle

c’est une opération “intelligente” (égalité des noms)

chaque attribut commun n’apparaît qu’une fois

jointures4
Jointures

Exemple

VINS Cru Mill Qualité

VOLNAY 1983 A

VOLNAY 1979 B

CHABLIS 1983 A

JULIENAS 1986 C

LOCALISATION Cru Région QualMoy

VOLNAY Bourgogne A

CHABLIS Bourgogne A

CHABLIS Californie B

VINSREG Cru Mill Qualité Région QualMoy

VOLNAY 1983 A Bourgogne A

VOLNAY 1979 B Bourgogne A

CHABLIS 1983 A Bourgogne A

CHABLIS 1983 A Californie B

compl tude
Complétude

les 5 opérations

Union, Différence

Jointure (naturelle)

Sélection

Projection

Langage complet = capable d’exprimer ces 5 opérations

compl tude1
Complétude
  • Remarque

Quotient

R(X,Y)  S(Y) = Q(X)

Q(X) est la division de R (X, Y) par S (Y) ssi Q contient tous les tuples ( x ) tels que (y)  S, ( x, y )  R

compl tude2
Complétude
  • Remarque

Quotient

R(X,Y)  S(Y) = Q(X)

F

S1

F P

S1 P1

S1 P2

S2 P1

S2 P3

P

P1

P2

Quels sont les fournisseurs de toutes les pièces

Q

S

R

compl tude3
Complétude
  • Remarque

Quotient

R(X,Y)  S(Y) =

 x ( R) -  x (( x ( R) x S) - R)

compl tude4
Complétude
  • L'algèbre relationnelle est complète

Les cinq opérations de base permettent de formaliser

sous forme d'expressions toutes les questions que l'on

peut poser avec la logique du premier ordre

(sans fonction)

  • Exemple

BUVEURS (NB, NOM, PRENOM, TYPE)

VINS (NV, CRU, MILL, DEGRE)

ABUS (NB, NV, DATE, QUANTITE)

Nom et prénom des buveurs de volnay 1988 ?

conclusion
Conclusion

Langage relationnel complet

(avec modifications)

comparable à la machine de Türing ?

non, il manque

l’itération ( ou la récursion)

problème type : fermeture transitive d’une relation

Il faut calculer Rn, avec n variable

vision logique
Vision logique

Une relation R d'arité n

a pour instance un ensemble fini de faits ou atome de base

R(a1, …,ak)

Une requête Q peut être exprimée sous forme de règle conjonctive

Q : Rep(u) <- R1(u1), R2(u2), … Rp(up)

vision logique1
Vision logique

Rep(u) est la tête de Q

R1(u1), R2(u2), … Rp(up) le corps de Q

La régle est un outil de déduction

Relation intentionnelle Rep(u) ,

Relations extensionnelles R1, R2 .. Rp

slide44
Plan
  • Généralités
  • Rappels modèle relationnel
  • Algèbre relationnelle, SQL
  • Les contraintes
  • Conception
  • Organisation physique
  • Transactions
slide45
SQL
  • Une requête SQL est un paraphrasage d'une expression de l'algèbre relationnelle en anglais
  • Requête élémentaire :

SELECT A1, A2, …Ap

FROM R1, R2, …Rk

WHERE Q [{UNION |INTERSECT | EXCEPT } … ]

  • Sémantique du bloc select :

PROJECT A1,A2,…Ap (

RESTRICT Q (

PRODUIT ( R1, R2, …, Rk) ) )

slide46
SQL
  • Ensemble de concepts pour :
    • Etendre les fonctionnalités de manipulation
    • Décrire les règles d'évolution des données
    • Supporter des objets complexes (SQL3)
  • Introduits progressivement dans le modèle :
    • Complique parfois le modèle
    • Standardisés au niveau de SQL3 (1999)
    • Des extensions multiples …
slide47
SQL
  • FONCTION
    • Fonction de calcul en ligne appliquée sur un ou plusieurs attributs
    • Exemple : DEGRE * QUANTITE / 100
  • AGREGAT
    • Partitionnement horizontal d'une relation selon les valeurs d'un groupe d'attributs, suivi d'un regroupement par une fonction de calcul en colonne (SUM, MIN, MAX, AVG, COUNT, …)
slide48

VINS

CRU

DEGRE

QUANTITE

MILL

1977

10.9

CHABLIS

100

1987

11.9

CHABLIS

250

1977

10.8

VOLNAY

400

1986

11.2

VOLNAY

300

1985

11.2

MEDOC

200

AVG

DEGRE

11.2

SQL
  • SELECT AVG(DEGRE) FROM VINS;
  • SELECT CRU, SUM(QUANTITE)
  • FROM VINS
  • GROUP BY CRU;

SUM

CRU

QUANTITE

CHABLIS

350

VOLNAY

700

MEDOC

200

slide49
SQL

SELECT <liste de projection>

FROM <liste de tables>

[WHERE <critère de jointure> AND <critère de restriction>]

[GROUP BY <attributs de partitionnement>]

[HAVING <citère de restriction>]

  • Restriction :
    • arithmétique (=, <, >, )
    • textuelle (LIKE)
    • sur intervalle (BETWEEN)
    • sur liste (IN)
  • Possibilité de blocs imbriqués par :
    • IN, EXISTS, NOT EXISTS, ALL, SOME, ANY
slide50
SQL

<search condition> ::= [NOT]

<nom_colonne> qconstante½ <nom_colonne>

<nom_colonne> LIKE <modèle_de_chaîne>

<nom_colonne> IN <liste_de_valeurs>

<nom_colonne> q(ALL ½ ANY½ SOME) <liste_de_valeurs>

EXISTS <liste_de_valeurs>

UNIQUE <liste_de_valeurs>

<tuple> MATCH [UNIQUE] <liste_de_tuples>

<nom_colonne> BETWEEN constante AND constante

<search condition> AND ½ OR <search condition>

avec

q ::= < ½ = ½ > ½ ³½£½ <>

Remarque: <liste_de_valeurs> peut être dynamiquement déterminée par une requête

slide51
SQL

VUES

  • Relation d'un schéma externe déduite des relations de la base par une question
  • Exemple : GrosBuveurs

CREATE VIEW GrosBuveurs AS

SELECT NB, Nom, Prénom,

FROM Buveurs, Abus

WHERE Buveurs.NB = Abus.NB and Abus.Quantité > 100

  • Calcul de la vue
    • Une vue est une fenêtre dynamique sur la BD et est recalculée à chaque accès.
    • Une vue peut être matérialisée (vue concrète).
slide52
SQL
  • SQL est complété par des langages de programmation
  • Passage de l'ensembliste au tuple à tuple
    • utilisation de curseurs

SELECT

SELECT

SELECT

  • DECLARE C1 CURSOR AS
  • SELECT …FROM … WHERE …
  • OPEN C1 ;
  • DO WHILE SQLCODE = 0

BEGIN

FETCH C1 INTO :VAR2

CLOSE C1 ;

SGBD

Curseur

Curseur

slide53
SQL

Modifications

INSERT INTO nom-table

UPDATE nom-table

DELETE FROM nom-table

slide54
SQL

INSERT INTO <relation name>

[( attribute [,attribute] … )]

{VALUES <value spec.> [, <value spec.>] …| <query spec.>}

  • Exemples

INSERT INTO VINS (NV, CRU, MILLESIME)

VALUES (112, "JULIENAS", 2002)

INSERT INTO BUVEURS (NB,NOM,PRENOM)

SELECT NVT, NOM, PRENOM

FROM VITICULTEURS

WHERE VILLE LIKE '%MACON%'

slide55
SQL

UPDATE <relation name>

SET <attribute = {value expression | NULL}

[<attribute> = {value expression | NULL}] …

[WHERE <search condition>]

  • EXEMPLE

UPDATE ABUS

SET QTE = QTE * 1.1

WHERE ABUS.NV IN

SELECT NV

FROM VINS

WHERE CRU = 'VOLNAY' AND MILLESIME = 1990

slide56
SQL

DELETE FROM <relation name>

[WHERE <search condition>]

  • EXEMPLE

DELETE FROM ABUS

WHERE NV IN

SELECT NV

FROM VINS

WHERE DEGRE IS NULL

slide57
Plan
  • Généralités
  • Rappels modèle relationnel
  • Algèbre relationnelle, SQL
  • Les contraintes
  • Conception
  • Organisation physique
  • Transactions
les contraintes
Les Contraintes

Dans une base on doit mettre de

l'information

Information ≈ données contraintes

les données "satisfont" des contraintes

les contraintes1
Les Contraintes

Différents types de contraintes

Contraintes structurelles (liées au modèle)

exemple u[Ai]  Dom (Ai)

Contraintes liées à l'application

contraintes statiques

contraintes dynamiques

les contraintes2
Les Contraintes

Exemple 1

Une seule adresse et un seul numéro de tel par cinéma

L'instance est correcte

mais l'instance est incohérente

(ne satisfait pas la contrainte)

CINE Nom Adresse Téléphone

UGC 9, Rue Boileau 04 67 41 85 67

DiagoCentre Bd Gambetta 04 67 54 32 31

DiagoCentre Bd Gambetta 04 67 54 85 38

Gaumont Place Comédie 04 67 54 85 38

les contraintes3
Les Contraintes

Exemple 2

Plusieurs adresses et plusieurs lignes téléphoniques par cinéma

L'instance est correcte

mais l'instance est incohérente

(ne satisfait pas la contrainte)

CINE Nom Adresse Téléphone

UGC 9, Rue Boileau 04 67 41 85 67

UGC 9, Rue Boileau 04 67 65 81 67

DiagoCentre Bd Gambetta 04 67 54 32 31

DiagoCentre Bd Gambetta 04 67 54 85 38

Gaumont Place Comédie 04 67 54 85 38

les contraintes4
Les Contraintes

Exemple 2

Plusieurs adresses et plusieurs lignes téléphoniques par cinéma

L'instance est correcte

et l'instance est cohérente

(satisfait la contrainte)

CINE Nom Adresse Téléphone

UGC 9, Rue Boileau 04 67 41 85 67

UGC 9, Rue Molière 04 67 65 81 67

DiagoCentre Bd Gambetta 04 67 54 32 31

DiagoCentre Bd Gambetta 04 67 54 85 38

DiagoCentre Bd Renouvier 04 67 45 82 38

les contraintes5
Les Contraintes

Exemple 3

Les films programmés sont des films répertoriés

L'instance est correcte

mais l'instance est incohérente

(ne satisfait pas la contrainte)

PROGRAMME Nom_Ciné Titre Horaire

UGC Speed 2 18h

UGC Speed 2 20h

DiagoCentre Marion 15h

DiagoCentre Western 20h

FILM Titre Metteur-en-scène Auteur

Speed 2 Jan de Bont S. Bullock

Speed 2 Jan de Bont J. Patric Marion M. Poirier C. Tetard

Marion M. Poirier MF Pisier

les contraintes6
Les Contraintes

Dépendances fonctionnelles

Schéma R(A1, ..,An)

DF Syntaxe X  Y (X détermine Y)

Avec X, Y  {A1, ..An}

Sémantique

r X  Y (l'instance r satisfait la DF)

les contraintes7
Les Contraintes

Dépendances fonctionnelles

Schéma R(A1, ..,An)

DF Syntaxe X  Y (X détermine Y)

Avec X, Y  {A1, ..An}

Sémantique

r X  Y (l'instance r satisfait la DF)

 couple de n-uplets t, t'  r

t[X] = t' [X]  t[Y] = t' [Y]

les contraintes8
Les Contraintes

Exemple 1

Une seule adresse et un seul numéro de tel par cinéma

Nom  Adresse Nom  Téléphone

CINE Nom Adresse Téléphone

UGC 9, Rue Boileau 04 67 41 85 67

DiagoCentre Bd Gambetta 04 67 54 32 31

DiagoCentre Bd Gambetta 04 67 54 85 38

Gaumont Place Comédie 04 67 54 85 38

t = (DiagoCentre Bd Gambetta 04 67 54 32 31)

t'= (DiagoCentre Bd Gambetta 04 67 54 85 38 )

t [Nom] = DiagoCentre = t' [Nom] = DiagoCentre

t [Adresse] = Bd Gambetta = t' [Adresse] = Bd Gambetta

t [Nom] = DiagoCentre = t' [Nom] = DiagoCentre

t [Tel] = 04 67 54 32 31 ≠ t' [Tel] = 04 67 54 85 38

les contraintes9
Les Contraintes

DF triviales (satisfaites pour toute instance r de R)

X Y avec Y  X

Schéma avec dépendances fonctionnelles

R (U, F) F ensemble de DF

Rque : un schéma avec DF, seules les instances

satisfaisant les df sont considérées

les contraintes10
Les Contraintes

Implication de DF

FILM(Titre, Metteur-en-scène, Acteur)

avec la df Titre  Metteur-en-scène

  • r instance de FILM avec df
  • r Titre Acteur Metteur-en-scène
les contraintes11
Les Contraintes

Implication de DF

PROGRAMME(Titre, Résumé, Nom_ciné, Salle)

avec la df Nom_ciné Salle  Titre

et la df Titre  Résumé

r instance de PROGRAMME avec df

r Nom_ciné Salle  Résumé

les contraintes12
Les Contraintes

Implication de DF

Généralisation

Si on dispose d'un ensemble de DF F vérifiées par R,

Quelles sont les df qui peuvent être déduites

Logiquement de F ?

les contraintes13
Les Contraintes

Implication de DF

Généralisation

Si on dispose d'un ensemble de DF F vérifiées par R,

On note f : X Y est dite conséquence sémantique

de F

ssi tout r vérifiant F vérifie f

F

(X Y)

les contraintes14
Les Contraintes

Implication de DF

R, F

F

(X Y) ?

Quelles sont toutes les df satisfaites par R, F ?

Ou quelles sont toutes les df impliquées par F ?

F+

F

Fermeture transitive de

les contraintes15
Les Contraintes

Implication de DF

Système formel (complet et consistant)

Réflexivité Si X  Y alors X Y

Augmentation Si X Y alors X ZYZ

Transitivité Si X Y et Y Z alors X Z

Union Si X Y et X Z alors X YZ

Décomposition Si X YZ alors XY et X Z

Pseudo-Transitivité Si X Y et WY Z alors XW Z

les contraintes16
Les Contraintes

Implication de DF

Fermeture transitive de X dans F notée X+

Proposition

F

(X Y) ssi Y  X+

On se ramène au calcul d'une fermeture transitive

d'ensemble d'attributs

les contraintes17
Les Contraintes

Algorithme de calcul

Données U ens attributs, F ensemble de DF

Résultat X+ Fermeture transitive de X dans F

// df non marquées

T = X;

Répéter

pour chaquedf non marquée Y  Z telle que Y T faire

T = T  Z ; marquer Y  Z

Jusqu'à stabilité de T

Retourner T

les contraintes18
Les Contraintes

Clé d'un schéma avec DF

Super-Clé X tel que X+ = Att(R)

Clé

une super-clé X

telle qu'aucun sous ensemble de X n'est super-clé

les contraintes19
Les Contraintes

Dépendances d'inclusion

Contraintes importantes

Multirelation R1(A1, .., An), R2(B1, .., Bn)

Syntaxe

R1[A1, .., An]  R2 [B1, .., Bn]

Sémantique

r1, r2 R1[A1, .., An]  R2 [B1, .., Bn]

u  r1, il existe v  r2 tel que u[Ak]= v[Bk] pour k =1.. n

les contraintes20
Les Contraintes

Dépendances d'inclusion

Exemple : PROGRAMME(Titre)  FILM (Titre)

Clé étangère / contrainte référentielle

ISA

les contraintes21
Les Contraintes

les contraintes d‘intégrité référentielles simples sont parfois prises en compte par les SGBD

=>insertion ou suppression impossible

sinon, utilisation de Triggers

ou code dans chaque traitement

les contraintes22
Les Contraintes

les dépendances d’Inclusion simples sont prises en compte par les SGBD OO

par la généralisation ou relation is-a

les contraintes23
Les Contraintes

contraintes plus générales :

il y en a plein

( ce sont les règlements lois, etc)

un mécanisme général pourrait s’en occuper

( cf Trigger)

les contraintes24
Les Contraintes

il faut

  • un langage d’expression des contraintes générales.
  • un mécanisme capable d’intercepter les actions invalides
les contraintes25
Les Contraintes

CREATE TABLE <nom_table>

(<def_colonne> *

[<def_contrainte_table>*]) ;

< def_colonne > ::=

<nom_colonne> < type ½ nom_domaine >

[CONSTRAINT nom_contrainte

< NOT NULL ½ UNIQUE ½ PRIMARY KEY ½

CHECK (condition)½ REFERENCES nom_table (liste_colonnes) > ]

< def_contrainte_table > ::= CONSTRAINT nom_contrainte

< UNIQUE (liste_colonnes)½ PRIMARY KEY (liste_colonnes)½

CHECK (condition)½

FOREIGN KEY (liste_colonnes) REFERENCES nom_table (liste_colonnes) >

[NOT] DEFERRABLE