• Aucun résultat trouvé

Bases de Donn´ees Module M2104

N/A
N/A
Protected

Academic year: 2022

Partager "Bases de Donn´ees Module M2104"

Copied!
206
0
0

Texte intégral

(1)

Bases de Donn´ ees

Module M2104

IUT R&T Villetaneuse

13 f´ evrier 2020

(2)

Introduction Objectifs

Objectif d’une base de donn´ees

Stocker les donn´ ees communes ` a plusieurs applications de fa¸ con plus

efficace qu’un syst` eme de fichiers.

(3)

Introduction Objectifs

Objectif d’une base de donn´ees

Stocker les donn´ ees communes ` a plusieurs applications de fa¸ con plus

efficace qu’un syst` eme de fichiers.

(4)

Introduction Objectifs

Introduction

Base de donn´ ees versus SGBD

Une base de donn´ ees est un ensemble de donn´ ees reli´ ees entre elles, accessibles ` a plusieurs utilisateurs simultan´ ement.

Un SGBD (Syst` eme de Gestion de Bases de Donn´ ees) est un logiciel permettant de :

cr´ eer des bases de donn´ ees les interroger

les mettre ` a jour

assurer les contrˆ oles d’int´ egrit´ e, de concurrence et de s´ ecurit´ e.

Objectifs principaux

int´ egration

ind´ ependance

disponibilit´ e

s´ ecurit´ e

(5)

Introduction Objectifs

Introduction

Base de donn´ ees versus SGBD

Une base de donn´ ees est un ensemble de donn´ ees reli´ ees entre elles, accessibles ` a plusieurs utilisateurs simultan´ ement.

Un SGBD (Syst` eme de Gestion de Bases de Donn´ ees) est un logiciel permettant de :

cr´ eer des bases de donn´ ees les interroger

les mettre ` a jour

assurer les contrˆ oles d’int´ egrit´ e, de concurrence et de s´ ecurit´ e.

Objectifs principaux

int´ egration

ind´ ependance

disponibilit´ e

s´ ecurit´ e

(6)

Introduction Objectifs

Introduction

Base de donn´ ees versus SGBD

Une base de donn´ ees est un ensemble de donn´ ees reli´ ees entre elles, accessibles ` a plusieurs utilisateurs simultan´ ement.

Un SGBD (Syst` eme de Gestion de Bases de Donn´ ees) est un logiciel permettant de :

cr´ eer des bases de donn´ ees les interroger

les mettre ` a jour

assurer les contrˆ oles d’int´ egrit´ e, de concurrence et de s´ ecurit´ e.

Objectifs principaux

int´ egration

ind´ ependance

disponibilit´ e

s´ ecurit´ e

(7)

Introduction Objectifs

Int´ egration & Ind´ ependance

Int´ egration

Dans un syst` eme de traitement de donn´ ees orient´ e fichier,

l’application dialogue avec un grand nombre de fichiers ⇒ risque de duplication ou de perte d’informations

Dans l’approche base de donn´ ees, il y a :

centralisation de toutes les donn´ ees en un r´ eservoir unique de donn´ ees commun ` a toutes les applications

centralisation de tous les contrˆ oles d’int´ egrit´ e et de coh´ erence

Ind´ ependance

Ind´ ependance physique : le niveau utilisateur est transparent ` a un changement :

de support ou de chemin d’acc` es aux donn´ ees

de m´ ethode d’acc` es aux donn´ ees.

(8)

Introduction Objectifs

Int´ egration & Ind´ ependance

Int´ egration

Dans un syst` eme de traitement de donn´ ees orient´ e fichier,

l’application dialogue avec un grand nombre de fichiers ⇒ risque de duplication ou de perte d’informations

Dans l’approche base de donn´ ees, il y a :

centralisation de toutes les donn´ ees en un r´ eservoir unique de donn´ ees commun ` a toutes les applications

centralisation de tous les contrˆ oles d’int´ egrit´ e et de coh´ erence

Ind´ ependance

Ind´ ependance physique : le niveau utilisateur est transparent ` a un changement :

de support ou de chemin d’acc` es aux donn´ ees

de m´ ethode d’acc` es aux donn´ ees.

(9)

Introduction Objectifs

Disponibilit´ e & S´ ecurit´ e

Disponibilit´ e

Performance : tout utilisateur doit ignorer l’existence d’utilisateurs concurrents.

S´ ecurit´ e

Int´ egrit´ e : protection contre la modification invalide des donn´ ees.

Confidentialit´ e : protection contre l’acc` es ill´ egal aux donn´ ees.

(10)

Introduction Objectifs

Disponibilit´ e & S´ ecurit´ e

Disponibilit´ e

Performance : tout utilisateur doit ignorer l’existence d’utilisateurs concurrents.

S´ ecurit´ e

Int´ egrit´ e : protection contre la modification invalide des donn´ ees.

Confidentialit´ e : protection contre l’acc` es ill´ egal aux donn´ ees.

(11)

Conception de Bases de Donn´ees

Conception d’une base de donn´ees

(12)

Conception de Bases de Donn´ees

Conception de BD

niveau externe

r´ edaction en fran¸cais des besoins (cahier des charges)

niveau conceptuel

diagramme de classes UML

niveau logique sch´ ema relationnel

⇓ niveau physique

scripts SQL

(13)

Conception de Bases de Donn´ees

Conception de BD

niveau externe

r´ edaction en fran¸cais des besoins (cahier des charges)

niveau conceptuel

diagramme de classes UML

niveau logique sch´ ema relationnel

⇓ niveau physique

scripts SQL

(14)

Conception de Bases de Donn´ees

Conception de BD

niveau externe

r´ edaction en fran¸cais des besoins (cahier des charges)

niveau conceptuel

diagramme de classes UML

niveau logique sch´ ema relationnel

niveau physique

scripts SQL

(15)

Conception de Bases de Donn´ees

Conception de BD

niveau externe

r´ edaction en fran¸cais des besoins (cahier des charges)

niveau conceptuel

diagramme de classes UML

niveau logique sch´ ema relationnel

niveau physique

(16)

Conception de Bases de Donn´ees Cahier des charges

Exemple

Cahier des charges

On souhaite d´ evelopper une application informatique de gestion de vols.

Cette application doit permettre de g´ erer l’affectation des pilotes aux diff´ erents vols.

Contraintes

Un pilote ne peut pas assurer deux vols en mˆ eme temps.

Lors d’un vol, il doit y avoir un pilote dans l’avion.

(17)

Conception de Bases de Donn´ees Cahier des charges

Exemple

Cahier des charges

On souhaite d´ evelopper une application informatique de gestion de vols.

Cette application doit permettre de g´ erer l’affectation des pilotes aux diff´ erents vols.

Contraintes

Un pilote ne peut pas assurer deux vols en mˆ eme temps.

Lors d’un vol, il doit y avoir un pilote dans l’avion.

(18)

Conception de Bases de Donn´ees Classes et Objets

Notion de classe

Personne - nom : String - prenom : String - dateNaissance : Date + age() : int

Une classe est la description formelle d’un

ensemble d’objets ayant des propri´ et´ es

(attributs et m´ ethodes) communes

Une classe peut ˆ etre instanci´ ee : une

instance d’une classe est un objet

(19)

Conception de Bases de Donn´ees Classes et Objets

Notion de classe

Personne - nom : String - prenom : String - dateNaissance : Date + age() : int

Une classe est la description formelle d’un

ensemble d’objets ayant des propri´ et´ es

(attributs et m´ ethodes) communes

Une classe peut ˆ etre instanci´ ee : une

instance d’une classe est un objet

(20)

Conception de Bases de Donn´ees Classes et Objets

Repr´ esentation graphique

De

- nombreFaces : int + lancer() : int Classe

Visibilit´ e

Nom Attributs Op´ erations

Nom

Le nom de la classe doit ´ evoquer le concept d´ ecrit par la classe ; il

commence par une majuscule.

(21)

Conception de Bases de Donn´ees Classes et Objets

Repr´ esentation graphique

De

- nombreFaces : int + lancer() : int Classe

Visibilit´ e

Nom Attributs Op´ erations

Nom

Le nom de la classe doit ´ evoquer le concept d´ ecrit par la classe ; il

commence par une majuscule.

(22)

Conception de Bases de Donn´ees Classes et Objets

Attributs — Op´ erations ou m´ ethodes

Attributs

Les attributs d´ efinissent la structure d’un objet : ils r´ epondent ` a la question : Qui suis-je ?

Chaque attribut est d´ efini par un nom, un type, une visibilit´ e et une valeur qui peut diff´ erer d’un objet ` a un autre.

Dans le cas g´ en´ eral, la visibilit´ e d’un attribut est priv´ ee.

Op´ erations ou m´ ethodes

Les op´ erations d´ ecrivent les actions qu’un objet peut effectuer : elles r´ epondent ` a la question : Que puis-je faire ?

Elles peuvent prendre des valeurs en entr´ ee, modifier les attributs et/ou produire des r´ esultats

L’impl´ ementation d’une op´ eration est appel´ ee une m´ ethode. Dans le

cas g´ en´ eral, la visibilit´ e d’une m´ ethode est publique.

(23)

Conception de Bases de Donn´ees Classes et Objets

Attributs — Op´ erations ou m´ ethodes

Attributs

Les attributs d´ efinissent la structure d’un objet : ils r´ epondent ` a la question : Qui suis-je ?

Chaque attribut est d´ efini par un nom, un type, une visibilit´ e et une valeur qui peut diff´ erer d’un objet ` a un autre.

Dans le cas g´ en´ eral, la visibilit´ e d’un attribut est priv´ ee.

Op´ erations ou m´ ethodes

Les op´ erations d´ ecrivent les actions qu’un objet peut effectuer : elles r´ epondent ` a la question : Que puis-je faire ?

Elles peuvent prendre des valeurs en entr´ ee, modifier les attributs

et/ou produire des r´ esultats

(24)

Conception de Bases de Donn´ees Classes et Objets

Constructeurs

Personne - nom : String

- prenom : String - dateNaissance : Date + Personne()

+ Personne(nom :String, prenom : String, dateNais : Date) + getNom() : String

+ getPrenom() : String + age() : int

Un constructeur est une op´ eration appel´ ee lors de la cr´ eation d’un objet.

(25)

Conception de Bases de Donn´ees Classes et Objets

Constructeurs

Personne - nom : String

- prenom : String - dateNaissance : Date + Personne()

+ Personne(nom :String, prenom : String, dateNais : Date) + getNom() : String

+ getPrenom() : String + age() : int

Un constructeur est une op´ eration appel´ ee lors de la cr´ eation d’un objet.

(26)

Conception de Bases de Donn´ees Classes et Objets

Notion d’objet

jeanDupont : Personne nom : Dupont

prenom : Jean

dateNaissance : 29/02/1972 getNom() : String

getPrenom() : String age() : int

Un objet est une instance d’une classe dot´ ee de propri´ et´ es : une identit´ e

un ´ etat ou des propri´ et´ es structurelles : attributs et terminaisons d’associations

un comportement : ensemble de m´ ethodes qu’il peut invoquer

Les objets sont les ´ el´ ements d’un programme en cours d’ex´ ecution.

(27)

Conception de Bases de Donn´ees Classes et Objets

Notion d’objet

jeanDupont : Personne nom : Dupont

prenom : Jean

dateNaissance : 29/02/1972 getNom() : String

getPrenom() : String age() : int

Un objet est une instance d’une classe dot´ ee de propri´ et´ es : une identit´ e

un ´ etat ou des propri´ et´ es structurelles : attributs et terminaisons d’associations

un comportement : ensemble de m´ ethodes qu’il peut invoquer

Les objets sont les ´ el´ ements d’un programme en cours d’ex´ ecution.

(28)

Conception de Bases de Donn´ees Classes et Objets

Notion d’objet

jeanDupont : Personne nom : Dupont

prenom : Jean

dateNaissance : 29/02/1972 getNom() : String

getPrenom() : String age() : int

Un objet est une instance d’une classe dot´ ee de propri´ et´ es : une identit´ e

un ´ etat ou des propri´ et´ es structurelles : attributs et terminaisons d’associations

un comportement : ensemble de m´ ethodes qu’il peut invoquer

Les objets sont les ´ el´ ements d’un programme en cours d’ex´ ecution.

(29)

Conception de Bases de Donn´ees Relations entre classes : Associations

Association

D´ efinition

Une association est une relation entre des classes qui d´ ecrit les connexions structurelles entre leurs instances

polygone 1

sommets 3..*

Polygone D´ efini par I Point

Repr´ esentation graphique

Une association binaire est mat´ erialis´ ee par un trait plein entre les classes associ´ ees.

Elle peut avoir un nom : celui-ci figure alors au milieu du lien d’association.

Elle peut avoir un sens de lecture ( I ou J ).

De part et d’autre du lien d’association peuvent figurer des rˆ oles.

(30)

Conception de Bases de Donn´ees Relations entre classes : Associations

Association

D´ efinition

Une association est une relation entre des classes qui d´ ecrit les connexions structurelles entre leurs instances

polygone 1

sommets 3..*

Polygone D´ efini par I Point

Repr´ esentation graphique

Une association binaire est mat´ erialis´ ee par un trait plein entre les classes associ´ ees.

Elle peut avoir un nom : celui-ci figure alors au milieu du lien d’association.

Elle peut avoir un sens de lecture ( I ou J ).

De part et d’autre du lien d’association peuvent figurer des rˆ oles.

(31)

Conception de Bases de Donn´ees Relations entre classes : Associations

Association

D´ efinition

Une association est une relation entre des classes qui d´ ecrit les connexions structurelles entre leurs instances

polygone 1

sommets 3..*

Polygone D´ efini par I Point

Repr´ esentation graphique

Une association binaire est mat´ erialis´ ee par un trait plein entre les classes associ´ ees.

Elle peut avoir un nom : celui-ci figure alors au milieu du lien d’association.

Elle peut avoir un sens de lecture ( I ou J ).

(32)

Conception de Bases de Donn´ees Relations entre classes : Associations

Multiplicit´ e ou cardinalit´ e

polygone 1

sommets 3..*

Polygone D´ efini par I Point

Association binaire

La multiplicit´ e sur la terminaison cible fixe le nombre d’objets de la classe cible pouvant ˆ etre associ´ es ` a un seul objet donn´ e de la classe source (la classe de l’autre terminaison de l’association) :

exactement un : 1 ou 1..1

plusieurs : ∗ ou 0..∗

au moins un : 1..∗

de un ` a six : 1..6

(33)

Conception de Bases de Donn´ees Relations entre classes : Associations

Multiplicit´ e ou cardinalit´ e

polygone 1

sommets 3..*

Polygone D´ efini par I Point

Association binaire

La multiplicit´ e sur la terminaison cible fixe le nombre d’objets de la classe cible pouvant ˆ etre associ´ es ` a un seul objet donn´ e de la classe source (la classe de l’autre terminaison de l’association) :

exactement un : 1 ou 1..1 plusieurs : ∗ ou 0..∗

au moins un : 1..∗

de un ` a six : 1..6

(34)

Conception de Bases de Donn´ees Relations entre classes : Associations

Association r´ eflexive

Amiti´ e

Amiti´ e Personne

nom : String prenom : String dateNaissance : Date age() : int

Marie:Personne Jean:Personne

D´ efinition

Une association est dite r´ eflexive quand les deux extr´ emit´ es de

l’association aboutissent ` a la mˆ eme classe.

(35)

Conception de Bases de Donn´ees Relations entre classes : Associations

Association r´ eflexive

Amiti´ e

Amiti´ e Personne

nom : String prenom : String dateNaissance : Date age() : int

Marie:Personne Jean:Personne

D´ efinition

Une association est dite r´ eflexive quand les deux extr´ emit´ es de

(36)

Conception de Bases de Donn´ees Classe-association

Classe-association

employeurs

*

employes

* Entreprise

nom : String

Personne nom : String prenom : String Emploi

dateEmbauche : Date salaire : float

elle n’existe que pour contenir les attributs d’une association

elle est reli´ ee ` a l’association par un trait discontinu

(37)

Conception de Bases de Donn´ees Classe-association

Classe-association

employeurs

*

employes

* Entreprise

nom : String

Personne nom : String prenom : String Emploi

dateEmbauche : Date salaire : float

elle n’existe que pour contenir les attributs d’une association

(38)

Conception de Bases de Donn´ees Diagramme de classes

Diagramme de classes

diagramme le plus important de la mod´ elisation objet permet de mod´ eliser les classes du syst` eme et leurs relations ind´ ependamment d’un langage de programmation particulier repr´ esente graphiquement les classes interconnect´ ees par des associations ou des relations de g´ en´ eralisation

procure une vue statique du syst` eme (on ne tient pas compte du facteur temporel)

Principaux ´ el´ ements : les classes et leurs relations ou associations

(39)

Conception de Bases de Donn´ees Elaboration d’un diagramme de classes´

Elaboration d’un diagramme de classes ´

Trouver les classes du domaine ´ etudi´ e en collaboration avec un expert du domaine : concepts ou substantifs du domaine

Trouver les associations entre classes : verbes ou constructions verbales mettant en relation plusieurs classes (est compos´ e de, travaille pour. . . )

Trouver les attributs des classes : substantifs ou groupes nominaux (la masse d’une voiture, le montant d’une transaction. . . )

Attention : se m´ efier de certains attributs

qui sont en r´ ealit´ e des associations entre classes

(40)

Conception de Bases de Donn´ees Elaboration d’un diagramme de classes´

Diagramme de classes : exemple

1..* 1..*

Pilote id pilote : int nom : String adresse : String

Vol id vol : int

villeDepart : String villeArrivee : String heureDepart : String heureArrivee : String Effectue

date Vol : Date

Dans une optique bases de donn´ ees, on ne s’int´ eresse qu’aux attributs des

classes.

(41)

Conception de Bases de Donn´ees Elaboration d’un diagramme de classes´

Diagramme de classes : exemple

1..* 1..*

Pilote id pilote : int nom : String adresse : String

Vol id vol : int

villeDepart : String villeArrivee : String heureDepart : String heureArrivee : String Effectue

date Vol : Date

Dans une optique bases de donn´ ees, on ne s’int´ eresse qu’aux attributs des

(42)

Conception de Bases de Donn´ees Elaboration d’un diagramme de classes´

Diagramme de classes

Identifiant

Lorsqu’elle est impliqu´ ee dans un projet base de donn´ ees, une classe doit avoir un attribut jouant le rˆ ole d’identifiant unique.

Exemple

id pilote est un identifiant de la classe pilote. Pilote

id pilote : int

nom : String

adresse : String

(43)

Conception de Bases de Donn´ees Elaboration d’un diagramme de classes´

Diagramme de classes

Identifiant

Lorsqu’elle est impliqu´ ee dans un projet base de donn´ ees, une classe doit avoir un attribut jouant le rˆ ole d’identifiant unique.

Exemple

id pilote est un identifiant de la classe pilote.

Pilote

id pilote : int

nom : String

adresse : String

(44)

Conception de Bases de Donn´ees Sch´ema relationnel

Sch´ ema Relationnel

Sch´ ema Relationnel

fournit sous forme de relations une description simple des classes et de certaines associations du diagramme de classes.

Relation

Une relation R est un ensemble d’attributs. Exemple incomplet

PILOTE(id pilote, nom, adresse)

VOL(id vol, ville d´ epart, ville arriv´ ee, heure d´ epart, heure arriv´ ee)

La relation PILOTE a pour attributs : id pilote, nom et adresse

(45)

Conception de Bases de Donn´ees Sch´ema relationnel

Sch´ ema Relationnel

Sch´ ema Relationnel

fournit sous forme de relations une description simple des classes et de certaines associations du diagramme de classes.

Relation

Une relation R est un ensemble d’attributs.

Exemple incomplet

PILOTE(id pilote, nom, adresse)

VOL(id vol, ville d´ epart, ville arriv´ ee, heure d´ epart, heure arriv´ ee)

La relation PILOTE a pour attributs : id pilote, nom et adresse

(46)

Conception de Bases de Donn´ees Sch´ema relationnel

Sch´ ema Relationnel

Sch´ ema Relationnel

fournit sous forme de relations une description simple des classes et de certaines associations du diagramme de classes.

Relation

Une relation R est un ensemble d’attributs.

Exemple incomplet

PILOTE(id pilote, nom, adresse)

VOL(id vol, ville d´ epart, ville arriv´ ee, heure d´ epart, heure arriv´ ee)

La relation PILOTE a pour attributs : id pilote, nom et adresse

(47)

Conception de Bases de Donn´ees Sch´ema relationnel

Sch´ ema Relationnel

Sch´ ema Relationnel

fournit sous forme de relations une description simple des classes et de certaines associations du diagramme de classes.

Relation

Une relation R est un ensemble d’attributs.

Exemple incomplet

PILOTE(id pilote, nom, adresse)

VOL(id vol, ville d´ epart, ville arriv´ ee, heure d´ epart, heure arriv´ ee)

La relation PILOTE a pour attributs : id pilote, nom et adresse

(48)

Conception de Bases de Donn´ees Sch´ema relationnel

Sch´ ema Relationnel

Relation : instanciation

Une relation est instanci´ ee par une table.

Exemple

PILOTE id pilote nom adresse

3 Garratt Perth

4 Durand Paris

5 MacMachin Glasgow

(49)

Conception de Bases de Donn´ees Sch´ema relationnel

Sch´ ema Relationnel

Relation : instanciation

Une relation est instanci´ ee par une table.

Exemple

PILOTE id pilote nom adresse

3 Garratt Perth

4 Durand Paris

5 MacMachin Glasgow

(50)

Conception de Bases de Donn´ees Sch´ema relationnel

Sch´ ema Relationnel

Cl´ e Primaire

Une cl´ e primaire d’une relation est un attribut ou un groupe d’attributs de la relation qui identifie un tuple unique.

Une relation poss` ede une et une seule cl´ e primaire, mais peut contenir plusieurs cl´ es qui pourraient jouer ce rˆ ole (cl´ es candidates).

Dans le cas d’une relation issue d’une classe, la cl´ e primaire correspond ` a l’identifiant de la classe.

Exemple

PILOTE(id pilote, nom, adresse)

VOL(id vol, ville d´ epart, ville arriv´ ee, heure d´ epart,heure arriv´ ee)

id pilote est la cl´ e primaire de la relation PILOTE.

(51)

Conception de Bases de Donn´ees Sch´ema relationnel

Sch´ ema Relationnel

Cl´ e Primaire

Une cl´ e primaire d’une relation est un attribut ou un groupe d’attributs de la relation qui identifie un tuple unique.

Une relation poss` ede une et une seule cl´ e primaire, mais peut contenir plusieurs cl´ es qui pourraient jouer ce rˆ ole (cl´ es candidates).

Dans le cas d’une relation issue d’une classe, la cl´ e primaire correspond ` a l’identifiant de la classe.

Exemple

PILOTE(id pilote, nom, adresse)

VOL(id vol, ville d´ epart, ville arriv´ ee, heure d´ epart,heure arriv´ ee)

id pilote est la cl´ e primaire de la relation PILOTE.

(52)

Conception de Bases de Donn´ees Sch´ema relationnel

Sch´ ema Relationnel

Cl´ e Primaire

Une cl´ e primaire d’une relation est un attribut ou un groupe d’attributs de la relation qui identifie un tuple unique.

Une relation poss` ede une et une seule cl´ e primaire, mais peut contenir plusieurs cl´ es qui pourraient jouer ce rˆ ole (cl´ es candidates).

Dans le cas d’une relation issue d’une classe, la cl´ e primaire correspond ` a l’identifiant de la classe.

Exemple

PILOTE(id pilote, nom, adresse)

VOL(id vol, ville d´ epart, ville arriv´ ee, heure d´ epart,heure arriv´ ee)

id pilote est la cl´ e primaire de la relation PILOTE.

(53)

Conception de Bases de Donn´ees Sch´ema relationnel

Sch´ ema Relationnel : Contrainte d’Int´ egrit´ e et valeur nulle

Contrainte d’int´ egrit´ e

Tout SGBD relationnel doit v´ erifier l’unicit´ e et le caract` ere d´ efini (non nul) des valeurs de la cl´ e primaire.

Valeur nulle

Lors de l’insertion de tuples dans une relation, il arrive qu’un attribut soit inconnu ou non d´ efini. On introduit alors une valeur

conventionnelle, appel´ ee valeur nulle.

Une cl´ e primaire ne peut pas avoir une valeur nulle.

(54)

Conception de Bases de Donn´ees Sch´ema relationnel

Sch´ ema Relationnel : Contrainte d’Int´ egrit´ e et valeur nulle

Contrainte d’int´ egrit´ e

Tout SGBD relationnel doit v´ erifier l’unicit´ e et le caract` ere d´ efini (non nul) des valeurs de la cl´ e primaire.

Valeur nulle

Lors de l’insertion de tuples dans une relation, il arrive qu’un attribut soit inconnu ou non d´ efini. On introduit alors une valeur

conventionnelle, appel´ ee valeur nulle.

Une cl´ e primaire ne peut pas avoir une valeur nulle.

(55)

Conception de Bases de Donn´ees Sch´ema relationnel

Sch´ ema Relationnel : Cl´ e ´ Etrang` ere

Cl´ e ´ Etrang` ere

Une cl´ e ´ etrang` ere dans une relation est une cl´ e primaire dans une autre relation.

Exemple

MOD` ELE type constructeur capacit´ e

A340 Airbus 228

B747 Boeing 432

AVION id avion type compagnie

10 A340 Air France

20 B747 British Airways

30 B747 Qantas

type est la cl´ e primaire de la relation MOD` ELE et une cl´ e ´ etrang` ere de la

relation AVION.

(56)

Conception de Bases de Donn´ees Sch´ema relationnel

Sch´ ema Relationnel : Cl´ e ´ Etrang` ere

Cl´ e ´ Etrang` ere

Une cl´ e ´ etrang` ere dans une relation est une cl´ e primaire dans une autre relation.

Exemple

MOD` ELE type constructeur capacit´ e

A340 Airbus 228

B747 Boeing 432

AVION id avion type compagnie

10 A340 Air France

20 B747 British Airways

30 B747 Qantas

type est la cl´ e primaire de la relation MOD` ELE et une cl´ e ´ etrang` ere de la

relation AVION.

(57)

Conception de Bases de Donn´ees Sch´ema relationnel

Sch´ ema Relationnel : Cl´ e ´ Etrang` ere

Cl´ e ´ Etrang` ere

Une cl´ e ´ etrang` ere dans une relation est une cl´ e primaire dans une autre relation.

Exemple

MOD` ELE type constructeur capacit´ e

A340 Airbus 228

B747 Boeing 432

AVION id avion type compagnie

10 A340 Air France

20 B747 British Airways

30 B747 Qantas

(58)

Conception de Bases de Donn´ees Sch´ema relationnel

Sch´ ema Relationnel : Contrainte d’int´ egrit´ e de r´ ef´ erence

Lors de l’insertion d’un tuple dans AVION, le syst` eme doit v´ erifier que la valeur de l’attribut type existe bien dans MOD` ELE

Lors de la suppression d’un tuple dans MOD` ELE, 4 types de contrˆ oles peuvent ˆ etre effectu´ es :

interdire la suppression si la valeur de type existe dans AVION (recommand´ e)

supprimer ces valeurs

avertir l’utilisateur d’une incoh´ erence

remplacer ces valeurs par la valeur nulle

(59)

Du diagramme de classes au sch´ema relationnel

Du Diagramme de Classes au Sch´ema Relationnel

(60)

Du diagramme de classes au sch´ema relationnel

Diagramme de classes → Sch´ ema relationnel

Classes

Chaque classe du diagramme UML devient une relation contenant tous les attributs de la classe.

Si la classe poss` ede un identifiant, il devient la cl´ e primaire, sinon il faut ajouter une cl´ e primaire arbitraire.

Les m´ ethodes ne sont pas traduites.

(61)

Du diagramme de classes au sch´ema relationnel

Diagramme de classes → Sch´ ema relationnel

Association un ` a plusieurs

Ajouter un attribut cl´ e ´ etrang` ere dans la relation de cardinalit´ e N.

Cette cl´ e ´ etrang` ere est la cl´ e primaire de l’autre relation (celle de cardinalit´ e 1).

Association un ` a un

Il faut rajouter un attribut de type cl´ e ´ etrang` ere dans la relation d´ eriv´ ee de la classe de cardinalit´ e minimale ´ egale ` a 1.

Cette cl´ e ´ etrang` ere est la cl´ e primaire de l’autre relation.

Si les deux cardinalit´ es minimales sont ` a z´ ero, on choisit

arbitrairement la relation recevant la cl´ e ´ etrang` ere.

(62)

Du diagramme de classes au sch´ema relationnel

Diagramme de classes → Sch´ ema relationnel

Association un ` a plusieurs

Ajouter un attribut cl´ e ´ etrang` ere dans la relation de cardinalit´ e N.

Cette cl´ e ´ etrang` ere est la cl´ e primaire de l’autre relation (celle de cardinalit´ e 1).

Association un ` a un

Il faut rajouter un attribut de type cl´ e ´ etrang` ere dans la relation d´ eriv´ ee de la classe de cardinalit´ e minimale ´ egale ` a 1.

Cette cl´ e ´ etrang` ere est la cl´ e primaire de l’autre relation.

Si les deux cardinalit´ es minimales sont ` a z´ ero, on choisit

arbitrairement la relation recevant la cl´ e ´ etrang` ere.

(63)

Du diagramme de classes au sch´ema relationnel

Diagramme de classes → Sch´ ema relationnel

Association plusieurs ` a plusieurs

L’association ou la classe-association devient une relation dont la cl´ e primaire est compos´ ee par la concat´ enation des cl´ es primaires des classes connect´ es ` a l’association.

Ces attributs deviennent cl´ e ´ etrang` eres dans la nouvelle relation.

Les attributs de la classe-association doivent ˆ etre ajout´ es ` a la nouvelle relation.

Ces attributs peuvent faire partie de la cl´ e ´ etrang` ere.

(64)

Du diagramme de classes au sch´ema relationnel

Diagramme de classes → Sch´ ema relationnel : Exemple

Diagramme de classes

1..* 1..*

Pilote id pilote : int nom : String adresse : String

Vol id vol : int

villeDepart : String villeArrivee : String heureDepart : String heureArrivee : String Effectue

date Vol : Date

Sch´ ema relationnel

PILOTE(id pilote, nom, adresse)

VOL(id vol, ville d´ epart, ville arriv´ ee, heure d´ epart, heure arriv´ ee)

EFFECTUE(id pilote, id vol, date vol)

(65)

Du diagramme de classes au sch´ema relationnel

Diagramme de classes → Sch´ ema relationnel : Exemple

Diagramme de classes

1..* 1..*

Pilote id pilote : int nom : String adresse : String

Vol id vol : int

villeDepart : String villeArrivee : String heureDepart : String heureArrivee : String Effectue

date Vol : Date

Sch´ ema relationnel

PILOTE(id pilote, nom, adresse)

(66)

Normalisation

Normalisation

(67)

Normalisation Objectifs

Normalisation

Objectifs Eviter : ´

la redondance, c’est-` a-dire la duplication d’informations.

les incoh´ erences par ajout.

la perte d’informations par suppression.

S’assurer qu’un sch´ ema relationnel est correct.

(68)

Normalisation D´ependances fonctionnelles

D´ ependances Fonctionnelles

D´ efinition

Soit R(X , Y , Z ) une relation.

Si ` a une valeur de X n’est associ´ ee qu’une seule valeur de Y , on dit que X d´ etermine Y

Notation : X → Y

On dit encore que Y d´ epend fonctionnellement de X.

(69)

Normalisation 1`ere Forme Normale

1 ` ere Forme Normale

Une relation est en 1 ` ere forme normale si et seulement si chaque attribut ne contient qu’une seule valeur ` a chaque instant (on n’affecte pas plusieurs valeurs ` a un seul attribut).

AVION id avion type capacit´ e compagnie

10 A340 228 Air France

20 B747 432 British Airways Qantas AVION n’est pas en 1 ` ere forme normale.

AVION1 id avion type capacit´ e compagnie

10 A340 228 Air France

20 B747 432 British Airways

30 B747 432 Qantas

AVION1 est en 1 ` ere forme normale.

(70)

Normalisation 1`ere Forme Normale

1 ` ere Forme Normale

Une relation est en 1 ` ere forme normale si et seulement si chaque attribut ne contient qu’une seule valeur ` a chaque instant (on n’affecte pas plusieurs valeurs ` a un seul attribut).

AVION id avion type capacit´ e compagnie

10 A340 228 Air France

20 B747 432 British Airways Qantas

AVION n’est pas en 1 ` ere forme normale.

AVION1 id avion type capacit´ e compagnie

10 A340 228 Air France

20 B747 432 British Airways

30 B747 432 Qantas

AVION1 est en 1 ` ere forme normale.

(71)

Normalisation 1`ere Forme Normale

1 ` ere Forme Normale

Une relation est en 1 ` ere forme normale si et seulement si chaque attribut ne contient qu’une seule valeur ` a chaque instant (on n’affecte pas plusieurs valeurs ` a un seul attribut).

AVION id avion type capacit´ e compagnie

10 A340 228 Air France

20 B747 432 British Airways Qantas AVION n’est pas en 1 ` ere forme normale.

AVION1 id avion type capacit´ e compagnie

10 A340 228 Air France

20 B747 432 British Airways

30 B747 432 Qantas

AVION1 est en 1 ` ere forme normale.

(72)

Normalisation 1`ere Forme Normale

1 ` ere Forme Normale

Une relation est en 1 ` ere forme normale si et seulement si chaque attribut ne contient qu’une seule valeur ` a chaque instant (on n’affecte pas plusieurs valeurs ` a un seul attribut).

AVION id avion type capacit´ e compagnie

10 A340 228 Air France

20 B747 432 British Airways Qantas AVION n’est pas en 1 ` ere forme normale.

AVION1 id avion type capacit´ e compagnie

10 A340 228 Air France

20 B747 432 British Airways

30 B747 432 Qantas

AVION1 est en 1 ` ere forme normale.

(73)

Normalisation 1`ere Forme Normale

1 ` ere Forme Normale

Une relation est en 1 ` ere forme normale si et seulement si chaque attribut ne contient qu’une seule valeur ` a chaque instant (on n’affecte pas plusieurs valeurs ` a un seul attribut).

AVION id avion type capacit´ e compagnie

10 A340 228 Air France

20 B747 432 British Airways Qantas AVION n’est pas en 1 ` ere forme normale.

AVION1 id avion type capacit´ e compagnie

10 A340 228 Air France

20 B747 432 British Airways

(74)

Normalisation 2`eme Forme Normale

2 ` eme Forme Normale

Une relation est en 2 ` eme forme normale si et seulement si : elle est en 1 ` ere forme normale

tout attribut n’appartenant pas ` a la cl´ e primaire ne d´ epend pas d’une partie de cette cl´ e.

AVION id avion constructeur type capacit´ e compagnie

10 Airbus A340 228 Air France

20 Boeing B747 432 British Airways

30 Boeing B747 432 Qantas

D´ ependances fonctionnelles : (1) id avion → type (2) id avion → compagnie (3) type → capacit´ e (4)type → constructeur

La relation AVION n’est pas (1 et 2) en 2 ` eme forme normale.

(75)

Normalisation 2`eme Forme Normale

2 ` eme Forme Normale

Une relation est en 2 ` eme forme normale si et seulement si : elle est en 1 ` ere forme normale

tout attribut n’appartenant pas ` a la cl´ e primaire ne d´ epend pas d’une partie de cette cl´ e.

AVION id avion constructeur type capacit´ e compagnie

10 Airbus A340 228 Air France

20 Boeing B747 432 British Airways

30 Boeing B747 432 Qantas

D´ ependances fonctionnelles : (1) id avion → type (2) id avion → compagnie (3) type → capacit´ e (4)type → constructeur

La relation AVION n’est pas (1 et 2) en 2 ` eme forme normale.

(76)

Normalisation 2`eme Forme Normale

2 ` eme Forme Normale

Une relation est en 2 ` eme forme normale si et seulement si : elle est en 1 ` ere forme normale

tout attribut n’appartenant pas ` a la cl´ e primaire ne d´ epend pas d’une partie de cette cl´ e.

AVION id avion constructeur type capacit´ e compagnie

10 Airbus A340 228 Air France

20 Boeing B747 432 British Airways

30 Boeing B747 432 Qantas

D´ ependances fonctionnelles : (1) id avion → type (2) id avion → compagnie (3) type → capacit´ e (4)type → constructeur

La relation AVION n’est pas (1 et 2) en 2 ` eme forme normale.

(77)

Normalisation 2`eme Forme Normale

2 ` eme Forme Normale

Une relation est en 2 ` eme forme normale si et seulement si : elle est en 1 ` ere forme normale

tout attribut n’appartenant pas ` a la cl´ e primaire ne d´ epend pas d’une partie de cette cl´ e.

AVION id avion constructeur type capacit´ e compagnie

10 Airbus A340 228 Air France

20 Boeing B747 432 British Airways

30 Boeing B747 432 Qantas

D´ ependances fonctionnelles :

(1) id avion → type

(2) id avion → compagnie

(3) type → capacit´ e

(78)

Normalisation 2`eme Forme Normale

2 ` eme Forme Normale

AVION id avion constructeur type capacit´ e compagnie

10 Airbus A340 228 Air France

20 Boeing B747 432 British Airways

30 Boeing B747 432 Qantas

D´ ependances fonctionnelles : (1) id avion → type (2) id avion → compagnie (3) type → capacit´ e (4)type → constructeur

La relation AVION est en 2 ` eme forme normale. Remarque

la v´ erification de la deuxi` eme forme normale n’a de sens que dans le cas o` u

la cl´ e primaire est constitu´ ee de plusieurs attributs.

(79)

Normalisation 2`eme Forme Normale

2 ` eme Forme Normale

AVION id avion constructeur type capacit´ e compagnie

10 Airbus A340 228 Air France

20 Boeing B747 432 British Airways

30 Boeing B747 432 Qantas

D´ ependances fonctionnelles : (1) id avion → type (2) id avion → compagnie (3) type → capacit´ e (4)type → constructeur

La relation AVION est en 2 ` eme forme normale. Remarque

la v´ erification de la deuxi` eme forme normale n’a de sens que dans le cas o` u

la cl´ e primaire est constitu´ ee de plusieurs attributs.

(80)

Normalisation 2`eme Forme Normale

2 ` eme Forme Normale

AVION id avion constructeur type capacit´ e compagnie

10 Airbus A340 228 Air France

20 Boeing B747 432 British Airways

30 Boeing B747 432 Qantas

D´ ependances fonctionnelles : (1) id avion → type (2) id avion → compagnie (3) type → capacit´ e (4)type → constructeur

La relation AVION est en 2 ` eme forme normale.

Remarque

la v´ erification de la deuxi` eme forme normale n’a de sens que dans le cas o` u

la cl´ e primaire est constitu´ ee de plusieurs attributs.

(81)

Normalisation 2`eme Forme Normale

2 ` eme Forme Normale

AVION id avion constructeur type capacit´ e compagnie

10 Airbus A340 228 Air France

20 Boeing B747 432 British Airways

30 Boeing B747 432 Qantas

D´ ependances fonctionnelles : (1) id avion → type (2) id avion → compagnie (3) type → capacit´ e (4)type → constructeur

La relation AVION est en 2 ` eme forme normale.

Remarque

la v´ erification de la deuxi` eme forme normale n’a de sens que dans le cas o` u

(82)

Normalisation 3`eme Forme Normale

3 ` eme Forme Normale

Une relation est en 3 ` eme forme normale si et seulement si : elle est en 2 ` eme forme normale et

tout attribut n’appartenant pas ` a la cl´ e ne d´ epend pas d’un attribut non cl´ e.

AVION id avion constructeur type capacit´ e compagnie

10 Airbus A340 228 Air France

20 Boeing B747 432 British Airways

D´ ependances fonctionnelles : (1) id avion → type (2) id avion → compagnie (3) type → capacit´ e (4) type → constructeur

La relation AVION n’est pas (3 et 4) en 3 ` eme forme normale.

(83)

Normalisation 3`eme Forme Normale

3 ` eme Forme Normale

Une relation est en 3 ` eme forme normale si et seulement si : elle est en 2 ` eme forme normale et

tout attribut n’appartenant pas ` a la cl´ e ne d´ epend pas d’un attribut non cl´ e.

AVION id avion constructeur type capacit´ e compagnie

10 Airbus A340 228 Air France

20 Boeing B747 432 British Airways

D´ ependances fonctionnelles : (1) id avion → type (2) id avion → compagnie (3) type → capacit´ e (4) type → constructeur

La relation AVION n’est pas (3 et 4) en 3 ` eme forme normale.

(84)

Normalisation 3`eme Forme Normale

3 ` eme Forme Normale

Une relation est en 3 ` eme forme normale si et seulement si : elle est en 2 ` eme forme normale et

tout attribut n’appartenant pas ` a la cl´ e ne d´ epend pas d’un attribut non cl´ e.

AVION id avion constructeur type capacit´ e compagnie

10 Airbus A340 228 Air France

20 Boeing B747 432 British Airways

D´ ependances fonctionnelles : (1) id avion → type (2) id avion → compagnie (3) type → capacit´ e (4) type → constructeur

La relation AVION n’est pas (3 et 4) en 3 ` eme forme normale.

(85)

Normalisation 3`eme Forme Normale

3 ` eme Forme Normale

Une relation est en 3 ` eme forme normale si et seulement si : elle est en 2 ` eme forme normale et

tout attribut n’appartenant pas ` a la cl´ e ne d´ epend pas d’un attribut non cl´ e.

AVION id avion constructeur type capacit´ e compagnie

10 Airbus A340 228 Air France

20 Boeing B747 432 British Airways

D´ ependances fonctionnelles : (1) id avion → type (2) id avion → compagnie (3) type → capacit´ e

(86)

Normalisation 3`eme Forme Normale

3 ` eme Forme Normale

MOD` ELE type constructeur capacit´ e

A340 Airbus 228

B747 Boeing 432

AVION id avion type compagnie

10 A340 Air France

20 B747 British Airways

30 B747 Qantas

D´ ependances fonctionnelles : id avion → type, id avion → compagnie, type → constructeur, type → capacit´ e

MODELE et AVION sont en 3 ` eme forme normale.

(87)

Normalisation 3`eme Forme Normale

3 ` eme Forme Normale

MOD` ELE type constructeur capacit´ e

A340 Airbus 228

B747 Boeing 432

AVION id avion type compagnie

10 A340 Air France

20 B747 British Airways

30 B747 Qantas

D´ ependances fonctionnelles : id avion → type, id avion → compagnie, type → constructeur, type → capacit´ e

MODELE et AVION sont en 3 ` eme forme normale.

(88)

Normalisation 3`eme Forme Normale

3 ` eme Forme Normale

MOD` ELE type constructeur capacit´ e

A340 Airbus 228

B747 Boeing 432

AVION id avion type compagnie

10 A340 Air France

20 B747 British Airways

30 B747 Qantas

D´ ependances fonctionnelles : id avion → type, id avion → compagnie, type → constructeur, type → capacit´ e

MODELE et AVION sont en 3 ` eme forme normale.

(89)

Normalisation

R` egles sur les Relations

Tuples et attributs

1

chaque tuple d’une relation est unique

2

l’ordre des tuples dans une relation n’a pas de signification

3

chaque attribut prend ses valeurs dans un seul domaine

4

un domaine peut correspondre ` a plusieurs attributs

Domaine

Un domaine est un ensemble de valeurs identifi´ ees par un nom. D´ efinition du domaine :

en intension (exemples : entier, r´ eel, chaˆıne de caract` eres, . . . )

en extension (exemple : villes = {Paris, Marseille, Lyon})

(90)

Normalisation

R` egles sur les Relations

Tuples et attributs

1

chaque tuple d’une relation est unique

2

l’ordre des tuples dans une relation n’a pas de signification

3

chaque attribut prend ses valeurs dans un seul domaine

4

un domaine peut correspondre ` a plusieurs attributs Domaine

Un domaine est un ensemble de valeurs identifi´ ees par un nom.

D´ efinition du domaine :

en intension (exemples : entier, r´ eel, chaˆıne de caract` eres, . . . )

en extension (exemple : villes = {Paris, Marseille, Lyon})

(91)

Alg`ebre relationnelle

Alg`ebre relationnelle

(92)

Alg`ebre relationnelle

Alg` ebre Relationnelle

L’alg` ebre relationnelle utilise une collection d’op´ erateurs qui agissent sur des relations et produisent des relations comme r´ esultat.

Op´ erateurs

unaires : projection, s´ election

ensemblistes : union, produit, diff´ erence, intersection

binaires (ou n-aires) : jointure, division

(93)

Alg`ebre relationnelle

Alg` ebre Relationnelle

L’alg` ebre relationnelle utilise une collection d’op´ erateurs qui agissent sur des relations et produisent des relations comme r´ esultat.

Op´ erateurs

unaires : projection, s´ election

ensemblistes : union, produit, diff´ erence, intersection

binaires (ou n-aires) : jointure, division

(94)

Alg`ebre relationnelle Projection

Projection

La projection d’une relation R sur un ensemble d’attributs {A i } de R est un sous-ensemble de R r´ eduit aux sous-tuples ne contenant que les attributs de {A i }.

Suppression dans les tuples de tous les attributs n’appartenant pas ` a {A i }, puis suppression des doublons.

Notation : Π A

1

,...,A

n

(nom-relation)

(95)

Alg`ebre relationnelle Projection

Exemple

Quels sont les diff´ erents types d’avions ?

AVION id avion constructeur type capacit´ e compagnie

10 Airbus A340 228 Air France

20 Boeing B747 432 British Airways

30 Boeing B747 432 Qantas

AVION id avion constructeur type capacit´ e compagnie

10 Airbus A340 228 Air France

20 Boeing B747 432 British Airways

30 Boeing B747 432 Qantas

Π

type

(AVION) type

A340

B747

(96)

Alg`ebre relationnelle Projection

Exemple

Quels sont les diff´ erents types d’avions ?

AVION id avion constructeur type capacit´ e compagnie

10 Airbus A340 228 Air France

20 Boeing B747 432 British Airways

30 Boeing B747 432 Qantas

AVION id avion constructeur type capacit´ e compagnie

10 Airbus A340 228 Air France

20 Boeing B747 432 British Airways

30 Boeing B747 432 Qantas

Π

type

(AVION) type

A340

B747

(97)

Alg`ebre relationnelle Projection

Exemple

Quels sont les diff´ erents types d’avions ?

AVION id avion constructeur type capacit´ e compagnie

10 Airbus A340 228 Air France

20 Boeing B747 432 British Airways

30 Boeing B747 432 Qantas

AVION id avion constructeur type capacit´ e compagnie

10 Airbus A340 228 Air France

20 Boeing B747 432 British Airways

30 Boeing B747 432 Qantas

Π

type

(AVION) type

A340

(98)

Alg`ebre relationnelle S´election

S´ election

La s´ election sur une relation R suivant une condition C portant sur des

attributs de R est un sous-ensemble de R dont les tuples satisfont C .

Notation : σ C (R)

(99)

Alg`ebre relationnelle S´election

Exemple

Quels avions peuvent accueillir au moins 300 passagers ?

AVION id avion constructeur type capacit´ e compagnie

10 Airbus A340 228 Air France

20 Boeing B747 432 British Airways

30 Boeing B747 432 Qantas

AVION id avion constructeur type capacit´ e compagnie

10 Airbus A340 228 Air France

20 Boeing B747 432 British Airways

30 Boeing B747 432 Qantas

σ

capacit´e

≥300 (AVION)

(100)

Alg`ebre relationnelle S´election

Exemple

Quels avions peuvent accueillir au moins 300 passagers ?

AVION id avion constructeur type capacit´ e compagnie

10 Airbus A340 228 Air France

20 Boeing B747 432 British Airways

30 Boeing B747 432 Qantas

AVION id avion constructeur type capacit´ e compagnie

10 Airbus A340 228 Air France

20 Boeing B747 432 British Airways

30 Boeing B747 432 Qantas

σ

capacit´e

≥300 (AVION)

(101)

Alg`ebre relationnelle Union

Union

L’union est une op´ eration ensembliste portant sur 2 relations R 1 et R 2 de mˆ eme sch´ ema. R 1 ∪ R 2 est la relation de mˆ eme sch´ ema contenant les tuples de R 1 et ceux de R 2 : Copie des tuples de R 1 et de R 2 , puis suppression des doublons.

Quels sont tous les pilotes ? P AF id nom adresse

1 Dupond Nice 2 Smith Londres 3 Garratt Perth

P BA id nom adresse

3 Garratt Perth

4 Durand Paris

5 MacMachin Glasgow P AF∪P BA id nom adresse

1 Dupond Nice

2 Smith Londres

3 Garratt Perth

4 Durand Paris

5 MacMachin Glasgow

(102)

Alg`ebre relationnelle Union

Union

L’union est une op´ eration ensembliste portant sur 2 relations R 1 et R 2 de mˆ eme sch´ ema. R 1 ∪ R 2 est la relation de mˆ eme sch´ ema contenant les tuples de R 1 et ceux de R 2 : Copie des tuples de R 1 et de R 2 , puis suppression des doublons.

Quels sont tous les pilotes ? P AF id nom adresse

1 Dupond Nice 2 Smith Londres 3 Garratt Perth

P BA id nom adresse

3 Garratt Perth

4 Durand Paris

5 MacMachin Glasgow

P AF∪P BA id nom adresse

1 Dupond Nice

2 Smith Londres

3 Garratt Perth

4 Durand Paris

5 MacMachin Glasgow

(103)

Alg`ebre relationnelle Union

Union

L’union est une op´ eration ensembliste portant sur 2 relations R 1 et R 2 de mˆ eme sch´ ema. R 1 ∪ R 2 est la relation de mˆ eme sch´ ema contenant les tuples de R 1 et ceux de R 2 : Copie des tuples de R 1 et de R 2 , puis suppression des doublons.

Quels sont tous les pilotes ? P AF id nom adresse

1 Dupond Nice 2 Smith Londres 3 Garratt Perth

P BA id nom adresse

3 Garratt Perth

4 Durand Paris

5 MacMachin Glasgow P AF∪P BA id nom adresse

1 Dupond Nice

2 Smith Londres

3 Garratt Perth

(104)

Alg`ebre relationnelle Produit

Produit

Le produit est une op´ eration ensembliste portant sur 2 relations R 1 et R 2 . R 1 × R 2 est la relation ayant pour sch´ ema la concat´ enation des sch´ emas de R 1 et R 2 , et pour tuples toutes les combinaisons de tuples de R 1 et R 2 . L’op´ eration produit n’est que tr` es rarement utilis´ ee.

R

1

A B C a1 b1 c1 a2 b2 c2 a3 b3 c3

R

2

D E d1 e1 d2 e2

R

1

× R

2

A B C D E

a1 b1 c1 d1 e1

a1 b1 c1 d2 e2

a2 b2 c2 d1 e1

a2 b2 c2 d2 e2

a3 b3 c3 d1 e1

a3 b3 c3 d2 e2

(105)

Alg`ebre relationnelle Produit

Produit

Le produit est une op´ eration ensembliste portant sur 2 relations R 1 et R 2 . R 1 × R 2 est la relation ayant pour sch´ ema la concat´ enation des sch´ emas de R 1 et R 2 , et pour tuples toutes les combinaisons de tuples de R 1 et R 2 . L’op´ eration produit n’est que tr` es rarement utilis´ ee.

R

1

A B C a1 b1 c1 a2 b2 c2 a3 b3 c3

R

2

D E d1 e1 d2 e2

R

1

× R

2

A B C D E

a1 b1 c1 d1 e1

a1 b1 c1 d2 e2

a2 b2 c2 d1 e1

a2 b2 c2 d2 e2

a3 b3 c3 d1 e1

a3 b3 c3 d2 e2

(106)

Alg`ebre relationnelle Produit

Produit

Le produit est une op´ eration ensembliste portant sur 2 relations R 1 et R 2 . R 1 × R 2 est la relation ayant pour sch´ ema la concat´ enation des sch´ emas de R 1 et R 2 , et pour tuples toutes les combinaisons de tuples de R 1 et R 2 . L’op´ eration produit n’est que tr` es rarement utilis´ ee.

R

1

A B C a1 b1 c1 a2 b2 c2 a3 b3 c3

R

2

D E d1 e1 d2 e2

R

1

× R

2

A B C D E

a1 b1 c1 d1 e1

a1 b1 c1 d2 e2

a2 b2 c2 d1 e1

a2 b2 c2 d2 e2

a3 b3 c3 d1 e1

a3 b3 c3 d2 e2

(107)

Alg`ebre relationnelle Diff´erence

Diff´ erence

La diff´ erence est une op´ eration ensembliste portant sur 2 relations R 1 et R 2 de mˆ eme sch´ ema. R 1 \ R 2 est la relation ayant le mˆ eme sch´ ema que R 1

et R 2 , et pour tuples ceux appartenant ` a R 1 et pas ` a R 2 .

Quels sont les pilotes d’Air France ne travaillant pas pour British Airways ? P AF id nom adresse

1 Dupond Nice 2 Smith Londres 3 Garratt Perth

P BA id nom adresse

3 Garratt Perth

4 Durand Paris

5 MacMachin Glasgow P AF\P BA id nom adresse

1 Dupond Nice

2 Smith Londres

(108)

Alg`ebre relationnelle Diff´erence

Diff´ erence

La diff´ erence est une op´ eration ensembliste portant sur 2 relations R 1 et R 2 de mˆ eme sch´ ema. R 1 \ R 2 est la relation ayant le mˆ eme sch´ ema que R 1

et R 2 , et pour tuples ceux appartenant ` a R 1 et pas ` a R 2 .

Quels sont les pilotes d’Air France ne travaillant pas pour British Airways ? P AF id nom adresse

1 Dupond Nice 2 Smith Londres 3 Garratt Perth

P BA id nom adresse

3 Garratt Perth

4 Durand Paris

5 MacMachin Glasgow

P AF\P BA id nom adresse

1 Dupond Nice

2 Smith Londres

(109)

Alg`ebre relationnelle Diff´erence

Diff´ erence

La diff´ erence est une op´ eration ensembliste portant sur 2 relations R 1 et R 2 de mˆ eme sch´ ema. R 1 \ R 2 est la relation ayant le mˆ eme sch´ ema que R 1

et R 2 , et pour tuples ceux appartenant ` a R 1 et pas ` a R 2 .

Quels sont les pilotes d’Air France ne travaillant pas pour British Airways ? P AF id nom adresse

1 Dupond Nice 2 Smith Londres 3 Garratt Perth

P BA id nom adresse

3 Garratt Perth

4 Durand Paris

5 MacMachin Glasgow P AF\P BA id nom adresse

1 Dupond Nice

2 Smith Londres

(110)

Alg`ebre relationnelle Intersection

Intersection

L’intersection est une op´ eration ensembliste portant sur 2 relations R 1 et R 2 de mˆ eme sch´ ema. R 1 ∩ R 2 est la relation ayant le mˆ eme sch´ ema que R 1

et R 2 , et pour tuples ceux appartenant ` a la fois ` a R 1 et ` a R 2 .

Quels sont les pilotes travaillant pour Air France et British Airways ? P AF id nom adresse

1 Dupond Nice 2 Smith Londres 3 Garratt Perth

P BA id nom adresse

3 Garratt Perth

4 Durand Paris

5 MacMachin Glasgow P AF∩P BA id nom adresse

3 Garratt Perth

(111)

Alg`ebre relationnelle Intersection

Intersection

L’intersection est une op´ eration ensembliste portant sur 2 relations R 1 et R 2 de mˆ eme sch´ ema. R 1 ∩ R 2 est la relation ayant le mˆ eme sch´ ema que R 1

et R 2 , et pour tuples ceux appartenant ` a la fois ` a R 1 et ` a R 2 . Quels sont les pilotes travaillant pour Air France et British Airways ?

P AF id nom adresse 1 Dupond Nice 2 Smith Londres 3 Garratt Perth

P BA id nom adresse

3 Garratt Perth

4 Durand Paris

5 MacMachin Glasgow

P AF∩P BA id nom adresse

3 Garratt Perth

(112)

Alg`ebre relationnelle Intersection

Intersection

L’intersection est une op´ eration ensembliste portant sur 2 relations R 1 et R 2 de mˆ eme sch´ ema. R 1 ∩ R 2 est la relation ayant le mˆ eme sch´ ema que R 1

et R 2 , et pour tuples ceux appartenant ` a la fois ` a R 1 et ` a R 2 . Quels sont les pilotes travaillant pour Air France et British Airways ?

P AF id nom adresse 1 Dupond Nice 2 Smith Londres 3 Garratt Perth

P BA id nom adresse

3 Garratt Perth

4 Durand Paris

5 MacMachin Glasgow P AF∩P BA id nom adresse

3 Garratt Perth

Références

Documents relatifs

Ils sont ensuite émis sans vitesse par la source S, puis accélérés par un champ électrostatique uniforme qui règne entre S et P tel que.. U sp

◮ Retrouver les d ´epartements qui sont impliqu ´es dans le d ´eveloppement du jeu en r ´eseau peut se faire dans une sous-requ ˆete, dont le r ´esultat peut ˆetre utilis ´e dans

Vérification graphique : Utilisation de GeoGebra Il faut trouver la valeur du rayon du cylindre qui donne comme volume

Une m´ ethode statique n’a pas acc` es ` a l’´ etat de la classe, il s’agit d’une fonction utilitaire rattach´ ee ` a la classe (attention aux faux amis avec d’autres

Cr´ eation d’une nouvelle relation RelE1-E2 Cl´ e de la relation : (cl´ e de E1, cl´ e de E2) Sch´ ema : Cl´ es et attribut de l’association TRAVAIL DANS (NSS, NUM,

Objectif : se restreindre ` a cet ensemble minimal pour concevoir le sch´ ema (logique) de la base de donn´ ees. D´ epart : Relation universelle et d´ ecomposition selon les

Le seuil de satisfaction est le seuil au del` a duquel l’acteur est satisfait alors que la satisfaction est le niveau de satisfaction fi- nale de l’acteur ` a l’issue de la

On fixe une cat´ egorie C et on prend comme objets les couples (R, M ) d’une monade R sur C et d’un R-module M. Que peut-on prendre comme morphismes pour faire une cat´