La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Introduction aux Bases de Données Relationnelles

Présentations similaires


Présentation au sujet: "Introduction aux Bases de Données Relationnelles"— Transcription de la présentation:

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

2 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. A. Flory, Bases de données : conception et réalisation, Editions Economica, Paris 1982 Les BD possèdent une organisation donc une structure régie par un modèle 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. Cours VB – ISG 2007/2008

3 Traitement des opérations des clients
Exemple Traitement des opérations des clients User Programmes de comptes chèques Programmes de comptes d’épargne Programmes de prêts à tempérament Système de Gestion de Bases de Données (SGBD) Base de données sur la clientèle Cours VB – ISG 2007/2008

4 Critères et Conception d'une BD
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 Cours VB – ISG 2007/2008

5 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 Cours VB – ISG 2007/2008

6 Base de données relationnelles
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. Cours VB – ISG 2007/2008

7 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é 2 Association Cours VB – ISG 2007/2008

8 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) Nom de l'entité CLIENT NumClient Nom Prénom Adresse Téléphone Solde identifiant attributs Cours VB – ISG 2007/2008

9 I.2 Identifiant 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 Cours VB – ISG 2007/2008

10 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 1.200,000 134 Nabli Samir Z.I Ben Arous 2.800,000 Cours VB – ISG 2007/2008

11 I.4 Association Commande Produits NumCom RefProd … … Contenir Qt
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. Commande NumCom Produits RefProd Contenir Qt Cours VB – ISG 2007/2008

12 I.5 Cardinalité (1) 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é Commande NumCli (1,n) (0,n) Produit Numprod Contenir Qt Nom de l’association Attribut de l’association Cours VB – ISG 2007/2008

13 I.5 Cardinalité (2) ? Client NumCli Facture NumFact Avoir 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) Facture NumFact Client NumCli Avoir (1,1) (0,n) CIF 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] Cours VB – ISG 2007/2008

14 ? I.5 Cardinalité (3) Qt Une commande contient au moins un produit
Numprod Commande NumCli Contenir Qt 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) Qt Contenir Produit RefProd Commande NumCommande (1,n) (0,n) CIM 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é Cours VB – ISG 2007/2008

15 II. Passage du modèle E/A au 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 … Cours VB – ISG 2007/2008

16 II. Passage du modèle E/A au modèle Relationnel (2)
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 Règle 1 Relation Clé primaire 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. CIF Association Entité 1 Identifiant 1 Entité 2 Identifiant 2 Forte 0 ou 1,n Faible 0 ou 1,1 Relation 1 Clé primaire 1 Relation 2 Clé primaire 2 # Clé étrangère 1 Règle 2 Cours VB – ISG 2007/2008

17 II. Passage du modèle E/A au modèle Relationnel (3)
Règle 3 : Les CIM se transforment en relation. La clé de la relation est formée des identifiants des entités. CIM Entité 1 Identifiant 1 Entité 2 Identifiant 2 0 ou 1,n 0 ou 1,n Association Relation 1 Clé primaire 1 Relation 2 Clé primaire 2 Règle 3 Relation 3 # Clé 1 # Clé 2 Cours VB – ISG 2007/2008

18 II. Passage du modèle E/A au modèle Relationnel (4)
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. Entité 1 Identifiant 1 Entité 2 Identifiant 2 Association Attribut 1 Attribut 2 Relation 1 Clé primaire 1 Relation 2 Clé primaire 2 Relation 3 # Clé 1 # Clé 2 Attribut 1 Attribut 2 Règle 4 Cours VB – ISG 2007/2008

19 Exemple Client NumCli …. Facture NumFact … Avoir Passer Qt Commande
CIF (0,n) (1,1) Avoir (0,n) CIF Passer (1,1) CIM Commande NumCommande (1,n) (0,n) Produit RefProd Contenir Qt Cours VB – ISG 2007/2008

20 Exemple Client Facture NumCli NumFact … NumCli … Commande NumComm
Produit RefProd Contenir NumComm RefProd Qt Cours VB – ISG 2007/2008

21 Travail à faire Gestion de vol: Acteurs: Avions, Vol, Voyageur,…
Gestion de bibliothèque Acteurs: Livres, Auteurs, Étudiants, Professeurs,… Gestion de la coupe d'Afrique Acteurs: Équipes, Joueurs, Arbitres, Matchs, Entraîneurs, Billets… Cours VB – ISG 2007/2008

22 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élection Jointure Projection Opérateurs ensemblistes Union Intersection Différence Produit cartésien Cours VB – ISG 2007/2008

23 III.1 Opérateurs Ensemblistes : a- Union ()
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. Exemple Soient les deux tables Voitures1 et Voitures2. Voitures = Voitures1  Voitures2 Voitures1 NV Marque Série Puissance FORD BMW Voitures2 NV Marque Série Puissance GOLF FORD Voitures NV Marque Série Puissance FORD Cours VB – ISG 2007/2008

24 III.1 Opérateurs Ensemblistes : b- Intersection()
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. Exemple: Soient les deux tables Voitures1 et Voitures2. Voitures = Voitures1  Voitures2 Voitures1 NV Marque Série Puissance 1240 FORD 1456 BMW Voitures2 NV Marque Série Puissance 1364 GOLF 1845 FORD Voitures NV Marque Série Puissance Cours VB – ISG 2007/2008

25 III.1 Opérateurs Ensemblistes : c- Différence (-)
La différence est appliquée sur deux tables de même structure R1 et R2 pour obtenir une table R3 Contenant l'ensemble des tuples appartenant à R1 et n'appartenant pas à R2. Exemple: Soient les deux tables Voitures1 et Voitures2. Voitures = Voitures1 - Voitures2 Voitures1 NV Marque Série Puissance 1240 FORD 1456 BMW Voitures2 NV Marque Série Puissance 1456 BMW 1364 GOLF 1845 FORD Voitures NV Marque Série Puissance 1240 FORD Cours VB – ISG 2007/2008

26 III.1 Opérateurs Ensemblistes: d- Produit cartésien ()
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 Exemple: Soient les deux tables Voitures1 et Voitures2. Voitures = Voitures1  Voitures2 Voitures1 Marque Modèle FORD élance FORD flair Voitures2 Puissance 5 4 Voitures Marque Modèle Puissance FORD élance 5 FORD élance 4 FORD flair 5 FORD flair 4 Cours VB – ISG 2007/2008

27 III.2 Opérateurs Relationnels: a- Sélection ()
La sélection est une opération qui produit une nouvelle table en enlevant des enregistrements à la table de départ. () Exemple: Quels sont les prêts dont le taux est >= à 14% dans la relation prêt : Relation Prêt N°Prêt Nom TauxIntérêt Montant 150 AMEUR 161 BEN SALAH 162 DRIDI 167 FARHAT 171 AMEUR 13, Relation résultat 162 DRIDI 167 FARHAT Cours VB – ISG 2007/2008

28 III.2 Opérateurs Relationnels: b- Projection ()
La projection est une opération qui produit une nouvelle table en enlevant des attributs à la table de départ. () 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 (%) Montant 150 AMEUR 161 BEN SALAH 162 DRIDI 167 FARHAT 171 AMEUR 13, Relation TI N°Prêt Nom TauxIntérêt (%) 150 AMEUR 13 161 BEN SALAH 162 DRIDI 15 167 FARHAT 14 171 AMEUR 13,5 Cours VB – ISG 2007/2008

29 III.3 Opérateurs Relationnels: c- Jointure ()
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. Exemple A B Marque Modèle FORD élégance flair Type Puissance élégance 5 4  Voiture Marque Modèle Puissance FORD élégance 5 4 Cours VB – ISG 2007/2008

30 IV. Le langage SQL 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. Les SGBD (Systèmes de Gestion de Bases de Données) qui présentent les données sous la forme de tables proposent un langage de requête dénommé SQL (Structured Query Language). Présenté pour la première fois en 1973 par une équipe de chercheurs d’IBM, ce langage a rapidement été adopté comme standard. La première norme a été publiée en 1986 (SQL-86). La suivante, SQL-89, introduit notamment l’intégrité référentielle et constitue la base de tous les SGBD actuels. Tant la définition des structures de données que la manipulation du contenu (les données elles-mêmes) s’effectuent au moyen d’un unique langage, SQL. Une instruction SQL constitue une requête, c’est-à-dire la description d’une opération que le SGBD doit exécuter. Cours VB – ISG 2007/2008

31 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éponse FROM Précise la (ou les) table intervenant dans l'interrogation WHERE Précise les conditions à appliquer sur les lignes. On peut 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 à un regroupement ORDER BY Pré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 Cours VB – ISG 2007/2008

32 IV.1 Projection RESULTAT SELECT NoCli, Nom, Localité FROM Client
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. Client NoCli Nom Adresse Localité Catégorie Compte Principes L’exécution d’une requête SELECT produit un résultat qui est une table. D’une manière générale, une requête simple contient trois parties principales : - la clause SELECT précise les valeurs (nom des colonnes, valeurs dérivées) qui constituent chaque ligne de résultat, - la clause FROM indique les tables à partir desquelles le résultat tire ses valeurs, - la clause WHERE donne la condition ou les conditions de sélection que doivent satisfaire les lignes qui fournissent le résultat. 1 2 3 4 5 6 7 8 9 AMEUR BEN SALAH MRABET KRAIEM LABIDI CHAOUACHI GAFSI JELALI ROUISSI 23, a. Carthage 25, r. du Caire 112, r. d’Athène 5, a. de Madrid 180, r. de Rome 3, a. des Roses 14, r. de l’Eté 72, r. de la Gare 65, r. Lafayette Carthage Tunis Ariana La Marsa 1 2 3 0.000 72.000 35.000 RESULTAT Client Nom Localité AMEUR BEN SALAH MRABET KRAIEM LABIDI CHAOUACHI GAFSI JELALI ROUISSI Carthage Tunis Ariana La Marsa NoCli 1 2 3 4 5 6 7 8 9 SELECT NoCli, Nom, Localité FROM Client Cours VB – ISG 2007/2008

33 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,…). Client Nom Adresse Localité Compte AMEUR BEN SALAH MRABET KRAIEM LABIDI CHAOUACHI GAFSI JELALI ROUISSI 23, a. Carthage 25, r. du Caire 112, r. d’Athène 5, a. de Madrid 180, r. de Rome 3, a. des Roses 14, r. de l’Eté 72, r. de la Gare 65, r. Lafayette Carthage Tunis Ariana La Marsa 0.000 72.000 35.000 Catégorie 1 2 3 NoCli 4 5 6 7 8 9 SELECT * FROM Client WHERE Localité="Ariana" Principes L’exécution d’une requête SELECT produit un résultat qui est une table. D’une manière générale, une requête simple contient trois parties principales : - la clause SELECT précise les valeurs (nom des colonnes, valeurs dérivées) qui constituent chaque ligne de résultat, - la clause FROM indique les tables à partir desquelles le résultat tire ses valeurs, - la clause WHERE donne la condition ou les conditions de sélection que doivent satisfaire les lignes qui fournissent le résultat. RESULTAT Nom Adresse Localité Compte MRABET JELALI 112, r. d’Athène 72, r. de la Gare Ariana 0.000 Catégorie 1 3 NoCli 8 Cours VB – ISG 2007/2008

34 IV.3 Projection & Sélection
Client Nom Adresse Localité Compte AMEUR BEN SALAH MRABET KRAIEM LABIDI CHAOUACHI GAFSI JELALI ROUISSI 23, a. Carthage 25, r. du Caire 112, r. d’Athène 5, a. de Madrid 180, r. de Rome 3, a. des Roses 14, r. de l’Eté 72, r. de la Gare 65, r. Lafayette Carthage Tunis Ariana La Marsa 0.000 72.000 35.000 Catégorie 1 2 3 NoCli 4 5 6 7 8 9 SELECT NoCli, Nom FROM Client WHERE Localité="Ariana" RESULTAT Principes L’exécution d’une requête SELECT produit un résultat qui est une table. D’une manière générale, une requête simple contient trois parties principales : - la clause SELECT précise les valeurs (nom des colonnes, valeurs dérivées) qui constituent chaque ligne de résultat, - la clause FROM indique les tables à partir desquelles le résultat tire ses valeurs, - la clause WHERE donne la condition ou les conditions de sélection que doivent satisfaire les lignes qui fournissent le résultat. Client Nom MRABET JELALI NoCli 3 8 Cours VB – ISG 2007/2008

35 IV.4 Jointure Client Commande NoCli Nom Adresse Localité Catégorie Compte NoCom #NoCli Date 1 2 3 4 5 6 7 8 9 AMEUR BEN SALAH MRABET KRAIEM LABIDI CHAOUACHI GAFSI JELALI ROUISSI 23, a. Carthage 25, r. du Caire 112, r. d’Athène 5, a. de Madrid 180, r. de Rome 3, a. des Roses 14, r. de l’Eté 72, r. de la Gare 65, r. Lafayette Carthage Tunis Ariana La Marsa 1 2 3 0.000 72.000 35.000 100 101 102 103 104 105 106 107 108 9 8 4 5 2 3 1 09/09/99 07/12/99 03/01/00 05/04/00 12/12/00 15/02/01 09/07/01 16/04/01 12/04/02 SELECT Commande.NoCom, Client.NoCli, Nom, Adresse, Date FROM Commande, Client WHERE Commande.NoCli = Client.NoCli RESULTAT Nom AMEUR BEN SALAH MRABET KRAIEM LABIDI JELALI ROUISSII NoCli 1 2 3 4 5 8 9 NoCom 108 105 107 106 102 103 101 100 104 Adresse 23, a. Carthage 25, r. du Caire 112, r. d’Athène 5, a. de Madrid 180, r. de Rome 72, r. de la Gare 65, r. Lafayette Date 12/04/02 15/02/01 16/04/01 09/07/01 03/01/00 05/04/00 07/12/99 09/09/99 12/12/00 Cours VB – ISG 2007/2008


Télécharger ppt "Introduction aux Bases de Données Relationnelles"

Présentations similaires


Annonces Google