Chapitre 5

35
Cours VB 2007/2008 1 Chapitre 5 Introduction aux Bases de Données Relationnelles

description

Chapitre 5. Introduction aux Bases de Données Relationnelles. Introduction. Une Base de Données est un ensemble de données mémorisé par un ordinateur, utilisé par de nombreuses personnes et possédant une organisation régie par un modèle de données. - PowerPoint PPT Presentation

Transcript of Chapitre 5

Page 1: Chapitre 5

Cours VB 2007/2008 1

Chapitre 5

Introduction aux Bases de Données

Relationnelles

Page 2: Chapitre 5

2 Cours VB – ISG 2007/2008

Introduction

Une Base de Données est un ensemble de données mémorisé par un ordinateur, utilisé par de nombreuses personnes et possédant une organisation régie par un modèle de données.

Les BD possèdent une organisation donc une structure régie par un modèle

A. Flory, Bases de données : conception et réalisation, Editions Economica, Paris 1982

Remarque: Les données stockées dans une base sont indépendantes des programmes informatiques qui les utilisent ainsi que du type de mémoire auxiliaire sur laquelle elles sont stockées.

Page 3: Chapitre 5

3 Cours VB – ISG 2007/2008

Exemple

Système de Gestion de Bases de Données (SGBD)

Base de données sur la clientèle

Traitement des opérations des clients

Programmesde comptes

chèques

Programmesde comptes d’épargne

Programmesde prêts à

tempérament

User

Page 4: Chapitre 5

4 Cours VB – ISG 2007/2008

Une BD doit satisfaire cinq critères principaux: Bonne représentation du monde réel Non-redondance de l’information Indépendance des données par rapport aux traitements Sécurité et confidentialité des données Performance des applications et des requêtes

La conception d’une BD suppose une démarche composées de plusieurs étapes

Déterminer et identifier les problèmes Proposer des solutions possibles Modéliser le futur système Mettre en œuvre une solution Tester la solution proposée Maintenir et faire évoluer le système

Critères et Conception d'une BD

Page 5: Chapitre 5

5 Cours VB – ISG 2007/2008

Les Systèmes de Gestion de Bases de Données (SGBD)

Un SGBD est un outil logiciel qui permet, selon un modèle de BD particulier, de gérer les données en offrant les fonctionnalités suivantes :

un langage de définition des données (LDD), c'est-à-dire un langage de définition du modèle (organisation physique)

un langage de manipulation des données (LMD) pour ajouter, modifier, retrouver, supprimer des données;

la gestion des règles assurant l'intégrité des données; la gestion de la confidentialité des données; la gestion des conflits d'accès simultanés aux données; la sécurité de fonctionnement, avec des outils de sauvegardes et

reprises de la base. L'administrateur de la base fera appel à toutes ces fonctionnalités du

SGBD. L'utilisateur final n'accédera généralement qu'au LMD

Page 6: Chapitre 5

6 Cours VB – ISG 2007/2008

Le modèle relationnel a été défini par Codd dans les années 70 Un grand succès par rapport à ses prédécesseurs de type "hiérarchique", "réseau" etc. grâce à :

La simplicité de la structure des données, La simplicité des opérateurs, L’indépendance entre les données et les applications.

Exemples de SGBDR commercialisés : ACCESS, DB2, ORACLE, INGRES, SYBASE, INFORMIX, PARADOX, SQL Server, etc.

Base de données relationnelles

Page 7: Chapitre 5

7 Cours VB – ISG 2007/2008

I. Modèle conceptuel des Données (MCD)

La modélisation des données sur le plan conceptuel, aboutit à une représentation schématique de l’ensemble des données et de leurs liens, au sein du domaine étudié.

Le MCD traduit les choix ou contraintes de gestion fondamentaux exprimés à travers les concepts du modèle E/A (Entité-Association), traduction de E/R (Entity-Relationship) qui est un modèle conceptuel conçu dans les années 1970.

Entité 1 Entité 2Association

Page 8: Chapitre 5

8 Cours VB – ISG 2007/2008

I.1 Entité Une entité correspond à un objet abstrait ou concret

que l’on perçoit de la réalité. Une entité est dotée d’une existence propre, ayant un

intérêt pour l’organisme et facilement identifiable. Les entités permettent de décrire

Des objets tangibles : employés, produits,.. Des objets abstraits : qualité, expertise,

calendrier.. Transactionnels : contrat, commande,..

Elle est totalement définie par : Son nom Son identifiant (d’une façon unique) Ses attributs (au moins deux)

CLIENTNumClientNom Prénom Adresse Téléphone Solde

identifiantNom de l'entité

attributs

Page 9: Chapitre 5

9 Cours VB – ISG 2007/2008

Identifiant: C'est l'attribut ou l'ensemble d'attributs qui identifient un et un seul enregistrement.

Un identifiant peut être simple (un seul attribut) (exemple: NumClient) ou composée (plusieurs attributs) (exemple: NumVoiture + NumSérie)

Exemples : Numclient est un identifiant de l’entité

CLIENT: Il permet d’identifier un client d’une manière unique.2 clients différents ne peuvent pas avoir le même Numclient

L’attribut Nom ne peut pas être un identifiant de l’entité CLIENT 2 clients peuvent avoir le même nom Sellami Mohamed – Sellami Ali

I.2 Identifiant

Page 10: Chapitre 5

10 Cours VB – ISG 2007/2008

1.3 Attribut & Occurence

Un attribut (ou propriété) est le plus petit élément d’information manipulé. C’est une propriété caractéristique de l’entité.

Il associe à chaque entité une valeur appartenant à un domaine. A chaque attribut est associé un et un seul domaine.

Exemple: Le domaine de l'attribut couleur (rouge, blanc, bleu, noir, vert) Une occurrence d’une entité est l’ensemble des valeurs des attributs qui la

caractérisent. Pour chaque entité il existe une ou plusieurs occurrences. Exemple: Occurrences de l'entité CLIENT

NumClient Nom Prénom Adresse Téléphone Solde

133 Sellami Mohamed Z.I Manouba 71 645 765 1.200,000134 Nabli Samir Z.I Ben Arous 71 380 476 2.800,000

Page 11: Chapitre 5

11 Cours VB – ISG 2007/2008

I.4 Association

Une association est un lien ou relation entre deux ou plusieurs entités.

Exemple: Une commande contient des articles.

Il est possible de caractériser l’association par des attributs

Exemple : l’association Contenir peut être porteuse de données concernant la quantité du produit commandé.

On distingue : les associations n-aires qui relient plus de deux

entités. les association binaires qui ne relient que deux

entités.

CommandeNumCom…

ProduitsRefProd…

ContenirQt

Page 12: Chapitre 5

12 Cours VB – ISG 2007/2008

La cardinalité exprime le nombre minimum et maximum d’occurrences d’entités participatives à l’association

(0,*) ou (1,*) : cardinalité minimale Une cardinalité min de 0 : l’entité peut avoir

des occurrences qui ne participent pas à l’association – participation facultative

Une cardinalité min de 1 : toute occurrence de l’entité doit obligatoirement participer à une occurrence de l’association – participation obligatoire

(*,1) ou (*,n) : cardinalité maximale

Cardinalité

Nom de l’association Attribut de l’association

ProduitNumprod…

CommandeNumCli…

Contenir Qt

(1,n) (0,n)

I.5 Cardinalité (1)

Page 13: Chapitre 5

13 Cours VB – ISG 2007/2008

?Facture

NumFact…

ClientNumCli…

Une facture est attribuée à un et un seul client (min, max) : (1,1) Un client peut ne pas avoir de facture Un client peut avoir plusieurs factures (min,max) : (0,n)

Avoir

I.5 Cardinalité (2)

Contrainte d’intégrité fonctionnelle (CIF) est une association particulière dont la cardinalité présente les valeurs 0,1 ou 1,1 entre une association et une entité.

[un à plusieurs] ou[un à un]

FactureNumFact…

ClientNumCli…

Avoir(1,1)(0,n) CIF

Page 14: Chapitre 5

14 Cours VB – ISG 2007/2008

Contrainte d’intégrité multivaluée (CIM) [plusieurs à plusieurs] sont toutes associations que ne présentent pas les cardinalités 0,1 ou 1,1 entre une association et une entité

QtContenir

ProduitRefProd…

CommandeNumCommande…

(1,n) (0,n)CIM

I.5 Cardinalité (3)

Une commande contient au moins un produit Une commande peut contenir plusieurs produits (min,max) : (1,n) Un produit peut ne pas être commandé Un produit peut être commandé dans plusieurs

commandes (min, max) : (0,n)

?Produit

Numprod…

CommandeNumCli…

Contenir Qt

Page 15: Chapitre 5

15 Cours VB – ISG 2007/2008

II. Passage du modèle E/Aau modèle Relationnel (1)

On dispose du diagramme de modélisation E/A des données, il faut implanter la structure obtenue en machine sous forme d'un modèle relationnel.

Nous allons donc transformer notre structure du niveau conceptuel « le diagramme E/A » sous une forme relationnelle « schéma relationnel » ou « modèle logique » au niveau logique.

Ce Passage se fait à l’aide de règles de passage …

Page 16: Chapitre 5

16 Cours VB – ISG 2007/2008

Relation 1Clé primaire 1

Relation 2Clé primaire 2

# Clé étrangère 1

Règle 2

CIFAssociation

Entité 1Identifiant 1

Entité 2Identifiant 2 Forte

0 ou 1,n

Faible0 ou 1,1

Règle 1: Toute entité se traduit par une table relationnelle (avec les même attributs) t.q l'identifiant devient la clé primaire de la table

EntitéIdentifiant

RelationClé primaire

Règle 1

II. Passage du modèle E/Aau modèle Relationnel (2)

Règle 2 : Les CIF non porteuses de données disparaissent mais le lien est conservé. La clé primaire de la relation initialement de type (*,n) devient une clé étrangère dans la deuxième relation.

Page 17: Chapitre 5

17 Cours VB – ISG 2007/2008

Règle 3 : Les CIM se transforment en relation. La clé de la relation est formée des

identifiants des entités.

II. Passage du modèle E/Aau modèle Relationnel (3)

Association

Entité 1Identifiant 1

Entité 2Identifiant 2 0 ou 1,n 0 ou 1,n

CIM

Relation 1Clé primaire 1

Relation 2Clé primaire 2

Règle 3

Relation 3# Clé 1# Clé 2

Page 18: Chapitre 5

18 Cours VB – ISG 2007/2008

Règle 4 : Toute association porteuse de données se

transforme en relation quelque soit les cardinalités des liens.

La clé de la relation est formée des identifiants des entités.

II. Passage du modèle E/Aau modèle Relationnel (4)

AssociationAttribut 1Attribut 2

Règle 4

Entité 1Identifiant 1

Entité 2Identifiant 2

Relation 1Clé primaire 1

Relation 2Clé primaire 2

Relation 3# Clé 1# Clé 2 Attribut 1Attribut 2

Page 19: Chapitre 5

19 Cours VB – ISG 2007/2008

Exemple

FactureNumFact…

ClientNumCli….

Avoir(1,1)(0,n) CIF

ProduitRefProd…

CommandeNumCommande…

(1,n) (0,n)CIM

Contenir Qt

Passer

(0,n)

(1,1)

CIF

Page 20: Chapitre 5

20 Cours VB – ISG 2007/2008

Exemple

FactureNumFactNumCli…

ClientNumCli…

ProduitRefProd…

CommandeNumCommNumCli…

ContenirNumCommRefProdQt

Page 21: Chapitre 5

21 Cours VB – ISG 2007/2008

Travail à faire

Gestion de vol:Acteurs: Avions, Vol, Voyageur,…

Gestion de bibliothèqueActeurs: Livres, Auteurs, Étudiants, Professeurs,…

Gestion de la coupe d'AfriqueActeurs: Équipes, Joueurs, Arbitres, Matchs, Entraîneurs, Billets…

Page 22: Chapitre 5

22 Cours VB – ISG 2007/2008

III. Requêtes

Requête = liste de conditions pour la sélection de certains enregistrements

Poser une requête = avoir une vue particulière de la BD

Langage algébrique : Collection d'opérations qui agissent sur des tables et produisent des tables en résultats.

Opérateurs algébriques

Opérateurs relationnels SélectionJointureProjection

Opérateurs ensemblistes UnionIntersectionDifférenceProduit cartésien

Page 23: Chapitre 5

23 Cours VB – ISG 2007/2008

L'union est appliquée sur deux tables de même structure R1 et R2 pour obtenir une table R3 contenant l' ensemble des enregistrements de R1 et R2.

III.1 Opérateurs Ensemblistes : a- Union ()

Exemple Soient les deux tables Voitures1 et Voitures2. Voitures = Voitures1 Voitures2

Voitures1 NV Marque Série Puissance1240 FORD 84 51456 BMW 80 7

Voitures2 NV Marque Série Puissance1456 BMW 80 71364 GOLF 86 61845 FORD 84 5

Voitures NV Marque Série Puissance1240 FORD 84 51456 BMW 80 71364 GOLF 86 61845 FORD 84 5

Page 24: Chapitre 5

24 Cours VB – ISG 2007/2008

L'intersection est appliquée sur deux tables de même structure R1 et R2 pour obtenir une table R3 contenant l'ensemble des enregistrements appartenant à la fois à R1 et R2.

III.1 Opérateurs Ensemblistes : b- Intersection()

Exemple: Soient les deux tables Voitures1 et Voitures2. Voitures = Voitures1 Voitures2

Voitures1 NV Marque Série Puissance1240 FORD 84 51456 BMW 80 7

Voitures2 NV Marque Série Puissance1456 BMW 80 71364 GOLF 86 61845 FORD 84 5

Voitures NV Marque Série Puissance1456 BMW 80 7

Page 25: Chapitre 5

25 Cours VB – ISG 2007/2008

La différence est appliquée sur deux tables de même structure R1 et R2 pour obtenir une table R3Contenant l'ensemble des tuples appartenant à R1 et n'appartenant pas à R2.

III.1 Opérateurs Ensemblistes : c- Différence (-)

Exemple: Soient les deux tables Voitures1 et Voitures2. Voitures = Voitures1 - Voitures2

Voitures1 NV Marque SériePuissance

1240 FORD 84 51456 BMW 80 7

Voitures2 NV Marque SériePuissance

1456 BMW 80 71364 GOLF 86 61845 FORD 84 5

Voitures NV Marque Série Puissance1240 FORD 84 5

Page 26: Chapitre 5

26 Cours VB – ISG 2007/2008

Le produit cartésien est appliqué sur deux tables R1 et R2 n'ayant pas nécessairement la même structure pour obtenir une relation R3 composée de l'ensemble des enregistrements obtenus suite à toutes les combinaisons des enregistrements de R1 et R2

III.1 Opérateurs Ensemblistes: d- Produit cartésien ()

Exemple: Soient les deux tables Voitures1 et Voitures2. Voitures = Voitures1 Voitures2Voitures1 Marque Modèle

FORD élanceFORD flair

Voitures2 Puissance54

Voitures Marque Modèle PuissanceFORD élance 5FORD élance 4FORD flair 5FORD flair 4

Page 27: Chapitre 5

27 Cours VB – ISG 2007/2008

La sélection est une opération qui produit une nouvelle table en enlevant des enregistrements à la table de départ.

III.2 Opérateurs Relationnels: a- Sélection ()

(())

Exemple: Quels sont les prêts dont le taux est >= à 14% dans la relation prêt :

Relation PrêtN°Prêt Nom TauxIntérêt Montant150 AMEUR 13 10 000161 BEN SALAH 13 5 000162 DRIDI 15 2 000167 FARHAT 14 20 000171 AMEUR 13,5 15 000

Relation résultatN°Prêt Nom TauxIntérêt Montant162 DRIDI 15 2 000167 FARHAT 14 20 000

Page 28: Chapitre 5

28 Cours VB – ISG 2007/2008

La projection est une opération qui produit une nouvelle table en enlevant des attributs à la table de départ.

III.2 Opérateurs Relationnels: b- Projection ()

(())

Exemple: Soit la nouvelle relation TI (N°Prêt, Nom, TauxIntérêt) crée à partir de la relation Prêt. Relation Prêt

N°Prêt Nom TauxIntérêt (%) Montant150 AMEUR 13 10 000161 BEN SALAH 13 5 000162 DRIDI 15 2 000167 FARHAT 14 20 000171 AMEUR 13,5 15 000

Relation TI N°Prêt Nom TauxIntérêt (%)150 AMEUR 13161 BEN SALAH 13162 DRIDI 15167 FARHAT 14171 AMEUR 13,5

Page 29: Chapitre 5

29 Cours VB – ISG 2007/2008

La jointure consiste à rapprocher selon une condition les enregistrements de deux tables R1 et R2 pour former une table R3. R1 et R2 n'ayant pas nécessairement la même structure. Chaque enregistrement dans R3 sera le résultat de la fusion d'un enregistrement de R1 et d'un enregistrement de R2 vérifiant la condition de rapprochement.Remarque : Si les tables R1 et R2 n'ont pas d'attributs en commun, la jointure sera assimilée à un produit cartésien.

III.3 Opérateurs Relationnels: c- Jointure ()

A B

Voiture

Marque ModèleFORD éléganceFORD flair

Type Puissanceélégance 5élégance 4

Marque Modèle PuissanceFORD élégance 5FORD élégance 4

Exemple

Page 30: Chapitre 5

30 Cours VB – ISG 2007/2008

Les SGBD qui présentent les données sous la forme de relations (ou tables) proposent un langage de requête dénommé SQL (Structured Query Language).

SQL est un langage unique qui permet de décrire, de manipuler, de contrôler l'accès et d’interroger les bases de données relationnelles.

IV. Le langage SQL

Page 31: Chapitre 5

31 Cours VB – ISG 2007/2008

IV. Le langage SQL

SELECT [DISTINCT] {* | expr [AS alias], ... }FROM table [alias], ...[WHERE { conditions | sous conditions} ][GROUP BY expr, ...] [HAVING conditions][ORDER BY {expr | num}{ASC | DESC}, ...];

SELECT Précise les colonnes qui vont apparaître dans la réponseFROM Précise la (ou les) table intervenant dans l'interrogation

WHERE

Précise les conditions à appliquer sur les lignes. Onpeut trouver :- Des comparateurs : =, >, <, >=, <=,<>- Des opérateurs logiques : AND, OR, NOT- Les prédicats : IN, LIKE, NULL, ALL, SOME, ANY,

EXISTS...GROUP BY Précise la (ou les) colonne de regroupement

HAVING Précise la (ou les) conditions associées à unregroupement

ORDER BYPrécise l'ordre dans lequel vont apparaître les lignes de

la réponse :- ASC : En ordre ascendant (par défaut)- DESC: En ordre descendant

Page 32: Chapitre 5

32 Cours VB – ISG 2007/2008

Choisit le nom des colonnes de la (ou des) table(s) que l'on souhaite voir apparaître dans la réponse.

Les colonnes sont données après la clause SELECT (* signifie tous).

La ou les table(s) (ou relations) sont indiquées après la clause FROM.

IV.1 Projection

ClientNom Adresse Localité Compte

AMEURBEN SALAHMRABETKRAIEMLABIDICHAOUACHIGAFSIJELALIROUISSI

23, a. Carthage25, r. du Caire112, r. d’Athène5, a. de Madrid180, r. de Rome3, a. des Roses14, r. de l’Eté72, r. de la Gare65, r. Lafayette

CarthageTunisArianaTunisTunisLa MarsaCarthageArianaTunis

125.000-230.000

0.0000.000

72.000-258.000870.000320.000

35.000

Catégorie

111122333

NoCli

123456789

SELECT NoCli, Nom, Localité FROM Client

ClientNom Localité

AMEURBEN SALAHMRABETKRAIEMLABIDICHAOUACHIGAFSIJELALIROUISSI

CarthageTunisArianaTunisTunisLa MarsaCarthageArianaTunis

NoCli

123456789

RESULTAT

Page 33: Chapitre 5

33 Cours VB – ISG 2007/2008

IV.2 Sélection Sélectionne des lignes (n-uplets, tuples)

d'une (ou plusieurs) table(s) qui satisfont certaines conditions.

La ou les conditions sont indiquées après la clause WHERE (on peut avoir plusieurs conditions séparées par des opérateurs logiques (and, or,…).

ClientNom Adresse Localité Compte

AMEURBEN SALAHMRABETKRAIEMLABIDICHAOUACHIGAFSIJELALIROUISSI

23, a. Carthage25, r. du Caire112, r. d’Athène5, a. de Madrid180, r. de Rome3, a. des Roses14, r. de l’Eté72, r. de la Gare65, r. Lafayette

CarthageTunisArianaTunisTunisLa MarsaCarthageArianaTunis

125.000-230.000

0.0000.000

72.000-258.000870.000320.000

35.000

Catégorie

111122333

NoCli

123456789

SELECT *FROM ClientWHERE Localité="Ariana"

Nom Adresse Localité Compte

MRABETJELALI

112, r. d’Athène72, r. de la Gare

ArianaAriana

0.000320.000

Catégorie

13

NoCli

38

RESULTAT

Page 34: Chapitre 5

34 Cours VB – ISG 2007/2008

IV.3 Projection & Sélection

ClientNom

MRABETJELALI

NoCli

38

ClientNom Adresse Localité Compte

AMEURBEN SALAHMRABETKRAIEMLABIDICHAOUACHIGAFSIJELALIROUISSI

23, a. Carthage25, r. du Caire112, r. d’Athène5, a. de Madrid180, r. de Rome3, a. des Roses14, r. de l’Eté72, r. de la Gare65, r. Lafayette

CarthageTunisArianaTunisTunisLa MarsaCarthageArianaTunis

125.000-230.000

0.0000.000

72.000-258.000870.000320.00035.000

Catégorie

111122333

NoCli

123456789

SELECT NoCli, NomFROM ClientWHERE Localité="Ariana"

RESULTAT

Page 35: Chapitre 5

35 Cours VB – ISG 2007/2008

IV.4 Jointure

SELECT Commande.NoCom, Client.NoCli, Nom, Adresse, DateFROM Commande, ClientWHERE Commande.NoCli = Client.NoCli

ClientNom Adresse Localité Compte

AMEURBEN SALAHMRABETKRAIEMLABIDICHAOUACHIGAFSIJELALIROUISSI

23, a. Carthage25, r. du Caire112, r. d’Athène5, a. de Madrid180, r. de Rome3, a. des Roses14, r. de l’Eté72, r. de la Gare65, r. Lafayette

CarthageTunisArianaTunisTunisLa MarsaCarthageArianaTunis

125.000-230.000

0.0000.000

72.000-258.000870.000320.000

35.000

Catégorie

111122333

NoCli

123456789

Commande#NoCli Date

984592321

09/09/9907/12/9903/01/0005/04/0012/12/0015/02/0109/07/0116/04/0112/04/02

NoCom

100101102103104105106107108

Nom

AMEURBEN SALAHBEN SALAHMRABETKRAIEMLABIDIJELALIROUISSIIROUISSII

NoCli

122345899

NoCom

108105107106102103101100104

Adresse

23, a. Carthage25, r. du Caire25, r. du Caire112, r. d’Athène5, a. de Madrid180, r. de Rome72, r. de la Gare65, r. Lafayette65, r. Lafayette

Date

12/04/0215/02/0116/04/01 09/07/0103/01/0005/04/0007/12/9909/09/9912/12/00

RESULTAT