m. benjelloun 2006-07 bases de données relationnelles - 1 les bases de données relationnelles...

136
M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service d’Informatique Faculté Polytechnique de Mons [email protected] 2006-2007 de la théorie à la pratique

Upload: berenger-bruyere

Post on 03-Apr-2015

120 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 1

Les Bases de données relationnelles

Mohammed BENJELLOUN

Service d’Informatique

Faculté Polytechnique de Mons

[email protected]

2006-2007

de la théorie à la pratique

Page 2: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 2

Objectifs - Comprendre les concepts et techniques sur lesquels reposent les fonctions principales d'un système de gestion de bases de données.

- Pouvoir représenter dans une base de données le contenu d'information d'un domaine d'application.

- Pouvoir utiliser ces fonctions pour mettre en oeuvre une application simple reposant sur une base de données (Analyse, conception, structuration des données, mise en oeuvre d’une base de donnée relationnelles avec intéraction... ).

ContenuL'approche base de données Conception d'une base de données Bases de données relationnelles Pratique d'un SGBD

Page 3: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 3

Etapes et Démarche de modélisation 

1. Analyse de la situation existante et des besoins

2. Création d'une série de modèles qui permettent de représenter tous les aspects importants

3.  A partir des modèles, implémentation d'une base de données

Page 4: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 4

Un modèle de base de données est un ensemble d’éléments qui décrit les données et permet d’exprimer les propriétés et les liens entre ces données. Le modèle est souvent représenté de manière graphique. Il se compose d’une description des données et de leurs relations ainsi que d’un ensemble de contraintes concernant la valeur que peuvent prendre les données ou concernant les liens qui les relient.

Un schéma de base de données est une description de la structure des données à gérer via l’utilisation d’un langage déterminé.

Page 5: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 5

Information : Une information est un élément qui permet de compléter notre connaissance sur un objet, un événement, une personne ... .

 Exemple: Le nom d'une personne est une information concernant cette personne.

  Système d'information : Un système d'information est constitué par l'ensemble des

informations relatives à un domaine bien défini. 

Exemple: Librairie : stock, commandes, ventes … 

Un S. I. existe indépendamment des techniques informatiques. Il contient les données et les traitements nécessaires pour assimiler et stocker les informations entrantes et produire les informations sortantes.

Définitions

Page 6: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 6

Base de données :

Une base de données (BD) est un ensemble bien structuré de données relatives à un sujet global. Ces données peuvent être de nature et d'origine différentes.

  Les données sont des faits, connus et qui ont un sens pour l’utilisateur. Ces données doivent avoir une relation entre elles.

“collection de données enregistrées ensemble, sans redondancesans redondance pénible ou inutile, pour servir plusieurs applicationsplusieurs applications, on y enregistre les données de façon à ce qu’elles soient indépendantes des programmesindépendantes des programmes qui les utilisent, on utilise une approche commune et approche commune et contrôléecontrôlée pour ajouter, modifier, retrouver des données”. James Martin

Collection de données persistantes utilisées par des systèmes d’application de certaines entreprises …

Définitions

Page 7: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 7

Exemples: FPMs BD ⇨ ⇨ sur tous les étudiants. Une banque BD sur tous les clients.⇨ ⇨ Une société d'assurances BD contrats⇨ ⇨ d'assurances et sinistres.

Une base de données correctement construite permet de partager les données entre plusieurs utilisateurs, de restreindre l’accès ou la modification des données, d’assurer l’intégrité des données et d’équilibrer les conflits des besoins tout en réduisant les redondances et en évitant les incohérences

Définitions

Page 8: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 8

---- une base de données ?

• Contrôle centralisé des données

• Redondance réduite

• Incohérence évitée

• Données partagées

• Normes imposées

• Restrictions de sécurité possibles• Intégrité assurée (36/15/2005 est impensable)

• Conflits des besoins équilibrés

• Et stocker, consulter, modifier des informations

Lorsqu’on a besoin d’organiser les données en un ensemble structuré et :

Qu'attendre Pourqoui

Page 9: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 9

Un système de gestion de bases de données (SGBD) est un programme qui permet la représentation informatique des données, qui nous permet de créer, de modifier et d'exploiter des bases de données. Ce système constitue donc notre interface pour accéder aux données.

SGBD BD

logiciel gérant une BD. Il permet à un utilisateur de communiquer (requêtes) avec une base de données pour : - décrire et organiser les données sur les mémoires, - rechercher, sélectionner et modifier les données.

Système de gestion de bases de données :

Page 10: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 10

Un SGBD assure- la description des données,- leur recherche et mise à jour,- la sûreté : vérifier les droits d’accès des utilisateurs ; limiter les accès non autorisés ; crypter les informations sensibles- la sécurité : sauvegarde et restauration des données ; limiter les erreurs de saisie, de manipulation- l’intégrité : définir des règles qui maintiennent l’intégrité de la base de données (contraintes d’intégrité)- la concurrence d’accès : détecter et traiter les cas où il y a conflit d’accès entre plusieurs utilisateurs et les traiter correctement.

---- un SGBD?Qu'attendre Pourqoui

Page 11: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 11

•a) le modèle hiérarchique: les données sont classées hiérarchiquement, selon une arborescence descendante. Ce modèle utilise des pointeurs entre les différents enregistrements. Le plus ancien, peu souple.•b) le modèle réseau: Comme le modèle hiérarchique ce modèle utilise des pointeurs vers des enregistrements. Moyennement souple, complexe pour le développement, performance moyenne.•c) le modèle relationnel (SGBDR, Système de gestion de bases de données relationnelles): les données sont enregistrées dans des tables. La manipulation de ces données se fait selon la théorie mathématique des relations , théorie ensembliste. (du mathématicien CODD). Fort souple, aisé à développer.•d) le modèle objet (SGBDO, Système de gestion de bases de données objet): les données sont stockées sous forme de classes.

•a) •b)•c)

•d)fort souple, aisé à développer

+ieurs MODELES de BASES de DONNEES

Page 12: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 12

Les caractéristiques L'architecture à trois niveaux définie par le standard ANSI/SPARC permet d'avoir une indépendance entre les données et les traitements. D'une manière générale un SGBD doit avoir les caractéristiques suivantes:

• Indépendance physique: Le niveau physique peut être modifié indépendamment du niveau conceptuel. Cela signifie que tous les aspects matériels de la base de données n'apparaissent pas pour l'utilisateur, il s'agit simplement d'une structure transparente de représentation des informations

• Manipulabilité: des personnes ne connaissant pas la base de données doivent être capables de décrire leur requêtes sans faire référence à des éléments techniques de la base de données

• Rapidité des accès: le système doit pouvoir fournir les réponses aux requêtes le plus rapidement possible, cela implique des algorithmes de recherche rapides

• Administration centralisée: le SGBD doit permettre à l'administrateur de pouvoir manipuler les données, insérer des éléments, vérifier son intègrité de façon centralisée

• Limitation de la redondance: le SGBD doit pouvoir éviter dans la mesure du possible des informations redondantes, afin d'éviter d'une part un gaspillage d'espace mémoire mais aussi des erreurs • Vérification de l'intégrité: les données doivent être cohérentes entre elles, de plus lorsque des éléments font références à d'autres, ces derniers doivent être présents • Partageabilité des données: le SGBD doit permettre l'accès simultané à la base de données par plusieurs utilisateurs • Sécurité des données: Le SGBD doit présenter des mécanismes permettant de gérer les droits d'accès aux données selon les utilisateurs

Page 13: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 13

Historique

Page 14: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 14

Modèle relationnelLes concepts mis en oeuvre dans le modèle relationnel sont fondés sur une théorie mathématique directement issue de l'algèbre relationnelle, de la théorie des ensembles et de la logique formelle.

Cette technologie a vu le jour dans les années 70 avec les travaux de Codd

* Objets simples : table, ligne, colonne* Basé sur des objets mathématiques bien connus : - Relation, n-tuple, ensemble, etc.* Opérations d'interrogation - Sélection, projection, jointure

Actuellement le modèle le plus répandu (de loin)

1980 : Les systèmes de gestion de bases de données relationnels apparaissent sur le marché.1990 : Les systèmes de gestion de bases de données relationnels dominent le marché.

Page 15: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 15

Les objectifs du modèle relationnel :

· proposer des schémas de données faciles à utiliser,· fournir une approche méthodologique dans la construction des schémas.· améliorer l'indépendance logique et physique,· mettre à la disposition des utilisateurs des langages de haut niveau pouvant éventuellement être utilisés par des non informaticiens,· optimiser les accès à la base de données,· améliorer l'intégrité et la confidentialité,

•Manipulations relationnelles, en général exprimées en SQL, transforment des tables en une table

Algèbre Relationnelle

Les données sont perçues par l’utilisateur comme des tables JOIN: relie 2 tables grâce aux valeurs

communes de 2 colonnes communes

Page 16: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 16

OpOpérationsérations relationnelle relationnelless• Sélection :

– Projection

– Restriction

– Jointure

– Division

– Agrégation

• Opération suppl.

• Mise à jour

• Création d ’une vue

Page 17: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 17

Liste non exhaustive de SGBD relationnels :

Adabas de Software AG Access de Microsoft DB2 : IBMInformix : UnixIngres : Vax, IBM, Sun, HP, DosMS-sqlMySQL (logiciel libre)Oracle : Oracle (multi plateforme)Progress : Unix, Dos, VMS, OS/2PostgreSQL (logiciel libre)SqlServer de Microsoft Sybase de Sybase

Page 18: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 18

Mise en oeuvre d’un SGBD

On distingue trois niveaux d’appréhension définis par la norme ANSI/SPARC (architecture de référence d'un SGBD). A chaque niveau correspond un schéma de représentation :

- le niveau interne avec le schéma physique Description du stockage des données au niveau des unités de stockage

- le niveau conceptuel avec le schéma conceptuelDescription de la structure des données de la base, description de leurs propriétés (relations qui existent entre elles), sans soucis d'implémentation physique ni de la façon de s'en servir.

le niveau externe avec les vues (comment l’utilisateur voit les données)Description pour chaque utilisateur de sa perception des données.

ES ES ES

CS

IS

Page 19: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 19

ES ES ES

CS

IS

ESs : Schémas Externes CS : Schéma Conceptuel IS : Schéma Interne

L'administrateur aura pour rôle :• la conception du modèle à partir du monde réel à représenter, • le réglage du schéma physique pour certaines optimisations de performances, • le maintien de la base de données physique, • la description des schémas externes à l'usage des utilisateurs finaux.

Page 20: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 20

Schémas Externes (ESs)

Définit une vue de la BD Vues SQL, Vbasic, orientés Web notamment (HTML, XML…) …

ES ES ES

CS

IS

• Une BD est en général munie de plusieurs différentes ESs

• Mais tous ont le CS comme racine commune

Page 21: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 21

Schéma Interne (IS) Comment transformer les objets? Comment ils seront stockés? Comment y accèdes?

CS Schéma Conceptuel

MeriseMerise est une des méthodes de conception et de développement de projets informatiques. Cette méthode date de 1978-1979, et fait suite à une consultation nationale lancée en 1977 par le ministère de l’Industrie français dans le but de choisir des sociétés de conseil en informatique dont la mission était de définir une méthode de conception de systèmes d’information.

Une des techniques permettant de concevoir une base de données relationnelle est basée sur cette méthode. En effet, une des caractéristiques principales de la méthode Merise est la séparation des données et des traitements du futur système d’information.

Page 22: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 22

Terme relationnel formel Equivalent informel• relation relation perçue entre entités (!!table)• n-uplet ligne ou enregistrement• cardinalité nombre de lignes• attribut colonne ou champ• degré nombre de colonnes• clé primaire identificateur unique• clé étrangère référence = attribut principal ailleurs • domaine Ensemble de valeurs légales (ensemble des valeurs d’un attribut)

Objets relationnels: domaines et relations

Page 23: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 23

Les composants d'une base de données relationnelle

Quatre types d'objets.

Tables, Requêtes, Formulaires, Rapports.

1. Les Tables

Une table est une collection de données relatives à un domaine bien défini.N° Mat NOM SALAIRE Code post.

159 Donald 1500 € 7000

132 Obélix 1900 € 5060

1187 Picsou 1134 € 1000

354 ….. …. ….

Valeurs de l’attribut Un champ de données (Attribut)

Enregistrement, N_Uplet

Table : Employés_Disney

Page 24: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 24

Clé primairePour identifier de manière unique chaque enregistrement de la table.  

La clé primaire, constituée d'un ou de plusieurs champs, nous permet d'identifier de manière unique chaque enregistrement d'une table. 

Pour définir des liens entre plusieurs tables la clé primaire est indispensable.

 2.   Les requêtes (angl. Queries) 

Les requêtes ≡ "questions" qu'on pose au SGBD. Le résultat est toujours un sous-ensemble d'une ou de plusieurs tables. 

Il existe 4 types de requêtes: 

1. Requêtes de sélection. Select2. Requêtes d'insertion. Insert3. Requêtes de modification. Update4. Requêtes de suppression. Delete 

Pour chaque requête nous retrouvons le cycle suivant:

Formuler la requête

Analyser et Exécuter la requête

Résultat de la requête

Page 25: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 25

 

3.    Les formulaires (angl. Forms)  

Les formulaires pour ajouter, modifier ou supprimer des données dans les tables.

Les formulaires offrent certains avantages: facilité d'utilisation, sécurité des donnée

4.     Les rapports (angl. Reports)

Pas de dialogue interactif avec l'utilisateur.Un rapport se base généralement sur une ou plusieurs tables ou le résultat d'une

requête.

Page 26: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 26

Cahier des charges en accord avec le client (activité et besoins) créer une représentation virtuelle de la réalité. produire quatre modèles de données relatifs à quatre niveaux d’abstraction.

Le niveau conceptuel identifie et décrit formellement l’ensemble des informations du domaine géré par le futur système d’information. Ce niveau amène donc le concepteur à construire une représentation formelle de la signification des données.

Le niveau organisationnel exprime la répartition organisationnelle des données informatisées, la sécurité des données par rapport aux acteurs des unités organisationnelles et précise quelles sont, parmi les données définies au niveau conceptuel, celles qui seront prises en compte par le futur système informatisé. On ne développera pas cet aspect vu qu’il dépend fortement de l’environnement d’intégration du système d’information.

Le niveau logique fournit une description des données prenant en compte les moyens informatiques de mémorisation et l’implémentation du système par un SGBD. C’est également ici que l’on retrouvera l’algèbre relationnelle.

Le niveau physique exprime les choix techniques et décrit les données de la base de données dans la syntaxe du système de gestion adopté.

Niveaux d’abstraction

Page 27: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 27

Cycle d'abstraction de conception des S.I.

La conception du système d'information se fait par étapes, afin d'aboutir à un système d'information fonctionnel reflétant une réalité physique. Il s'agit donc de valider une à une chacune des étapes en prenant en compte les résultats de la phase précédente. D'autre part, les données étant séparées des traitements, il faut vérifier la concordance entre données et traitement afin de vérifier que toutes les données nécessaires aux traitements sont présentes et qu'il n'y a pas de données superflues.Cette succession d'étapes est appelée cycle d'abstraction pour la conception des systèmes d'information:

Niveau Statique (données) Dynamique (traitements)

Conceptuel MCD MCT

Organisationnelou logique

MLD MOT(QUI ? QUAND ?)

Opérationnelou physique

MPD MOPT

Page 28: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 28

Donc la démarche classique d'un projet en BD comprend les étapes suivantes:

1. Analyse de la situation existante et des besoins2. Création d'une série de modèles qui permettent de représenter tous les aspects importants3.    A partir des modèles, implémentation d'une base de données

Méthodologie pour traduire un système d'information naturel en une base de données

Analyse

MCD

MLD

MPD

Réel Perçu

Schéma Conceptuel

Schéma Logique

Niveaux d’abstractions

Niveau Conceptuel

Niveau Logique

Niveau Physique

Elaboration du Modèle E-R

Passage au ModèleRelationnel

ImplémentationSur SGBD-R

Univers de l’application

Page 29: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 29

Application?Choix de l’application / groupe

Niveau Conceptuel

Niveau Logique

Niveau Physique

Elaboration du Modèle E-R

Passage au ModèleRelationnel

ImplémentationSur SGBD-R

Schéma Conceptuel

Schéma Logique

Schéma Physique

Implémentation Sur SGBD-R

Rapport

Def. Dom. C.Chg

Univers de l’applicatio

n

Page 30: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 30

1er rapport : mars 2006 Cahier de charges.2ème rapport : ….. Cahier de charges et MCD.3ème rapport : ….. Rapport final   Votre rapport doit respecter scrupuleusement la table des matières suivante : 1.     Cahier de charges de l’application 2.     MCD3.     MLD4.     MPD (qlq tables et relations)5.     Implémentation6.     Conclusion7.     Explications du fonctionnement de votre base de données Utilisez :

Formulaires, index, requêtes, rapport.Pouvoir faire :

Trier, exécuter des requêtes en SQL, utiliser des macros en SQL.  Genre de documents à éditer : Liste alphabétique des clients,( étudiants, … ) par ville (secteur …) ..

Liste par chiffre d’affaire des clients (moyenne pour les étudiants) …  Lors de la conclusion : Les besoins futurs ! N’oubliez pas de joindre une disquette ou un CD de votre base de données.Indiquez aussi les noms des étudiants qui composent le groupe sur le support informatique et le rapport.

Quelles seront les évolutions possibles de votre base de données ?

Page 31: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 31

1. Le niveau conceptuel, se base directement sur l'analyse, c’est une représentation du monde réel par un seul modèle. Il décrit, de façon formelle, l'ensemble des données du système d'information, sans tenir compte de l'implémentation informatique de ces données. Ce niveau représente donc la signification des données, se traduit par un formalisme que nous appelons:

Permet de définir les informations pertinentes pour l’application et d’envisager leur structure.

Doit refléter le plus fidèlement possible la réalité à modéliser dans la BD, à tout niveau :

données, relation, contraintes de cohérence de données, ..

Modèle conceptuel des données MCD

Analyse

Niveau ConceptuelElaboration du Modèle E-R

Schéma Conceptuel

Page 32: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 32

 La construction du schéma conceptuel comporte normalement les étapes suivantes :

• Définir les objectifs

• Analyser la réalité

• Tracer le schéma conceptuel

Pour la construction du modèle conceptuel, beaucoup de méthodes ont été mises en place mais aucune ne donne réellement satisfaction. On peut cependant les répartir en deux catégories :

modélisation directe :

Elle consiste à identifier, à partir d’une description exprimée en langage naturel, les entités et les associations en appliquant les règles suivantes :les noms deviennent des entitésles verbes deviennent des associations La partie analytique consiste essentiellement à transformer des phrases décrivant certains aspects de la réalité en entités, relations et cardinalités.

Page 33: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 33

Il semble que la bonne approche de construction d’un modèle conceptuel des données soit un compromis entre la méthode directe, qui laisse une large part à l’intuition et la méthode basée sur l’étude des dépendances fonctionnelles. Quelle que soit la technique utilisée, le modèle doit être vérifié, normalisé et enrichi de concepts étendus pour représenter le plus fidèlement possible l’application.

modélisation par analyse des dép. fonctlles

Identifier toutes les propriétés du S.I. à analyser. Cette étape aboutit au dictionnaire des données épuré qui devra comporter ni synonyme, ni donnée calculée ...

Page 34: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 34

3. Le niveau physique, qui se base sur le modèle logique des données, contient finalement toutes les définitions et détails relatifs à l'utilisation d'un SGBD spécifique (p.ex. Access, dBASE, Oracle, Caché ...). A partir de ce niveau, on peut directement créer la base de données. Ce niveau est représenté par le:

2. Le niveau logique se base sur le modèle conceptuel des données. Ce niveau introduit la notion des tables logiques, et constitue donc le premier pas vers les tables des SGBD. Ce niveau est représenté par le:

Modèle logique des données : MLD

Modèle physique des données : MPD

Niveau LogiquePassage au Modèle

Relationnel Schéma Logique

Niveau PhysiqueImplémentation

Sur SGBD-RSchéma

Physique

Page 35: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 35

Un des modèles possibles pour le schéma conceptuel est le modèle “entité-association”. Proposé par Peter Chen en 1976, il est notamment utilisé dans la méthodologie Merise.

Le schéma conceptuel

Traduire l’analyse du système réel établie préalablement en entité, en relations, en propriétés et en cardinalités.

Une entité permet de modéliser un ensemble d’objets de même nature.

Les relations sont des liens sémantiques qui peuvent exister entre plusieurs entités.

Les “cardinalités” représentent le nombre possible d’interactions entre les entités et les “attributs” .

Passer1, N 1,1CLIENT

NuméroNom…

Commande

NuméroDateQuantité

Page 36: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 36

Le Modèle Conceptuel des Données (MCD)

Analyse ⇨ (MCD) : "Schéma Entité-Relation" ou "Schéma Entité-Association".

COMMANDE

No CdeDate Cde

PRODUIT

No ProdDésignationPrix Unitaire

CONCERNER

Quantité Cdée

Relation ou Association

Propriété de la Relation

Nom de la RelationNom d’entité

ENTITE

Propriété d’entité

Page 37: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 37

Dans l'exemple, l'entité Produit ∑ produits S.I.. et l'entité Commande ∑ commandes S.I.

Un identifiant est une colonne dont lesvaleurs permettent de repérer une seule ligne

NOM

Identifiant 

Attributs

Nom de l’entité

Propriété 1Propriété 2Propriété 3Propriété 4

PRODUIT

No ProdDésignationPrix Unitaire

Le choix d'un identifiant correcte est très important pour la modélisation:

Choix ?

ENTITE

L'identifiant est une propriété (une ou plusieurs) particulière d'un objet telle qu'il n'existe pas deux occurrences de cet objet pour lesquelles cette propriété pourrait prendre une même valeur.

Page 38: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 38

Choix ?

Comme choix pour l'identifiant d'une entité nous distinguons généralement 3 possibilités:

1. Une propriété naturelle Exemple: Le nom d'un pays pour une entité Pays

2. Une propriété artificielle qui est inventée par le créateur du MCDExemple: Le numéro d'un client pour une entité Client,

Produit, Commande, …

3. Une propriété composée d'autres propriétés naturellesExemple: Le nom et la localité pour une entité Entreprise

Le modèle conceptuel des données propose de souligner les identifiants

Page 39: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 39

Attributs caractéristiques des entités

obligatoires ou facultatives avec un domaine (type) de valeurs

CLIENT VEHICULE

NoNomAdresse

No_Matric.MarqueModèleAnnéeCylindrée

ID_PersonneNomPrénomSexeEmailAdresse

Personnes

Qu'est ce qu'un bon schéma Entité-Relation (« formes normales ») ? ni perte d'information ni redondance contraintes (d’intégrité) entre les valeurs des

attributs le but: indépendance / applications (vues

particulières)

Page 40: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 40

Associations ou Relations

CLIENT

NoNomAdresse

CONTRAT

NoTypeDate

VEHICULE

NoMarqueModèleAnnéeCylindrée

APPARTIENT SIGNE

Personnes DiplômesObtenir

ID_PersonneNomPrénomSexeAdresseTéléphoneEmail

Code_diplômeTitre_diplômeAbréviation

Année_d_obtention

Page 41: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 41

La notion de relation 

Une relation décrit un lien entre deux ou plusieurs entités.Chaque relation possède un nom, qui est généralement constitué par un verbe à l'infinitif.Chaque relation a implicitement un identifiant, qui est composé par les identifiants des entités auxquelles elle est liée.

PasserCLIENT

NuméroNomPrénomAdresseCode_postalLocalité

Commande

NuméroDateQuantité

MCD Relation binaire

DéverserLAC RIVIERE

Décharge

EMPLOYE

N° Matricule CONJOINT

Relation ternaire

Relation réflexive (relation récursive)

Page 42: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 42

Entre l'entité CLIENT et la relation Passer, nous avons les cardinalités suivantes:

* Cardinalité minimale = 1, ce qui veut dire que chaque client passe au moins une commande.* Cardinalité maximale= N, ce qui veut dire que chaque client peut passer plusieurs (N) commandes.

Entre l'entité Commande et la relation Passer, nous retrouvons les cardinalités suivantes:

CardinalitéLes cardinalités précisent la participation de l'entité concernée à la relation.

cardinalité minimale cardinalité maximale

Passer1, N 1,1

CLIENT

NuméroNomPrénomAdresseCode_postalLocalité

Commande

NuméroDateQuantité

* Cardinalité minimale = 1, donc chaque commande est passée par au moins un client.

* Cardinalité maximale =1, chaque commande est passée au maximum par un seul client.

Page 43: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 43

Autres exemples

Utiliser0,N 1,N

Employé

NuméroNomPrénomAdresseCode_postalService

Ordinateur

Numéro_PCTypeConfiguration

Entre l'entité Employé et la relation Utiliser, nous avons:    Cardinalité minimale = 0 Certains employés n'utilisent pas d'ordinateur   Cardinalité maximale = N

Entre l'entité Ordinateur et la relation Utiliser, nous avons:

    Cardinalité minimale = 1

       Cardinalité maximale =N

COMMANDE

No CdeDate Cde

PRODUIT

No ProdDésignationPrix Unitaire

CONCERNER

Quantité Cdée

1,N 0,N

Une occurrence de commande est concernée au moins 1 fois.Une occurrence de commande peut être concernée plusieurs (N) fois.Une occurrence de produit peut ne pas être concernée (0).Une occurrence de produit peut être concernée plusieurs (N) fois.

Page 44: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 44

1,1 : Un COUREUR Provient au min d’1 PAYS et au max d’1 PAYS.

Un COUREUR Provient d’un et d’un seul PAYS.

0,n : Un PAYS est représenté au min par 0 COUREUR et au max n. Un PAYS est représenté par aucun ou plusieurs COUREURS.

plusieurs

plusieurs

plusieursun

Page 45: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 45

CONFIGURATIONS POSSIBLES :

0,1 Une occurrence participe au moins 0 fois et au plus 1 fois à l’association1,1 Une occurrence participe exactement 1 fois à l’association0,N Une occurrence peut ne pas participer ou participer plusieurs fois1,N Une occurrence participe au moins 1 fois, voire plusieurs 

  

Le fait d'indiquer pour cardinalité minimale '1' implique une contrainte forte : elle signifie qu'une entité ne peut exister indépendamment d'une autre. De telles entités sont dites ''faibles'' .

Insistons sur le point suivant : les cardinalités n'expriment pas une vérité absolue, mais des choix de conception. Ils ne peuvent être déclarés valides que relativement à un besoin. Plus ce besoin sera exprimé précisément, et plus il sera possible d'apprécier la qualité du modèle.

!

Page 46: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 46

Les cardinalités, du point de vue de l'association, dans une interprétation ensembliste 

Notation E-A

Explication Relation ensembliste

  

1,1 <-> 1,1

 

TOUTE occurrence de A a un homologue UNIQUE parmi les occurrences de B et réciproquement????

       

  

1,N <-> 1,N

 

TOUTE occurrence de A a AU MOINS un homologue parmi les occurrences de B et réciproquement

       

RELATIONS OBLIGATOIRES

Notation E-A

Explication Relation ensembliste

 0,N <-> 0,1

UNE occurrence de A peut avoir 0,1,N vis-à-vis.  UNE occurrence de B est limitée à 0 ou 1 homologue

       

 1,N <->

0,N

TOUTE occurrence de A a AU MOINS un homologue.  Mais UNE occurrence de B peut ne pas en avoir, en avoir 1 ou plusieurs. 

       

RELATIONS Optionnelles

Page 47: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 47

CLIENT

NoNomAdresse

CONTRAT

NoTypeDate

ACCIDENT

NoDate(Montant)

VEHICULE

NoMarqueModèleAnnéeCylindrée

APPARTIENT SIGNE

CONCERNE

Exercice 0: Cardinalités?

0-N 0-N 1-1

1-N

1-1

0-N

Page 48: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 48

Passer1,N 1,1

CLIENT

NuméroNomPrénomAdresseCode_postalLocalité

Commande

NuméroDateQuantité

Exercice 1: Laquelle des deux modélisations est correcte ?

Passer0,N 1,1

CLIENT

NuméroNomPrénomAdresseCode_postalLocalité

Commande

NuméroDateQuantité

Une commande est toujours passée par au moins un client. Une commande est également passée au maximum par un client. Une commande est donc toujours passée par un et un seul client.

Un client passe au moins une commande et au maximum plusieurs (N) commandes.Cette modélisation ne tient pas compte des clients qui ne passent aucune commande. Un client est uniquement considéré comme tel s'il passe au moins une commande

Un client peut passer aucune commande et au maximum plusieurs (N) commandes.Cette modélisation tient compte des clients qui ne passent aucune commande.

Page 49: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 49

Disposer0,N 1,1

CLIENT

NuméroNomPrénomAdresseCode_postalLocalité

Carte_Membre

No_CarteType_Abonnement

Date_création

Exemple

La cardinalité minimale indique donc quelle entité est

indépendante(0) et quelle entité est dépendante(1). On dit qu'une entité est indépendante par rapport à une relation lorsque sa cardinalité minimale vaut 0.

Une relation ne peut pas être liée uniquement à des entités dépendantes qui ont une cardinalité maximale de 1.!

On dit que CLIENT est l'entité indépendante par rapport à l'association

Disposer, tandis que Carte_Membre est l'entité dépendante.

Une occurrence d'un client peut très bien exister sans carte de membre,

mais une carte de membre ne peut pas exister sans client.!

Page 50: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 50

La modélisation suivante par exemple n'est pas correcte !!!

Disposer1,1 1,1

CLIENT

NuméroNomPrénomAdresseCode_postalLocalité

Carte_Membre

No_CarteType_AbonnementDate_création

Dans ce cas, il faut réunir les propriétés des deux entités dans une seule.

!

Page 51: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 51

Exercice 2 

Voici le résultat simplifié d'une analyse faite auprès d'une compagnie d'assurance qui désire informatiser la gestion des contrats auto.

     Un client peut assurer plusieurs voitures auprès de la compagnie. Chaque voiture est assurée par un seul contrat. Un contrat assure une seule voiture.

 

    En ce qui concerne un client, la compagnie désire connaître son nom, prénom, adresse complète, numéro de téléphone ainsi qu'un numéro de compte bancaire avec indication de la banque.

 

    Chaque contrat contient un numéro de contrat unique, la prime annuelle à payer, la date de paiement annuel, la marque de la voiture, le modèle de la voiture, le numéro d'immatriculation de la voiture, la valeur de la voiture et la date d'acquisition de la voiture.

Page 52: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 52

1,1

0,N

Medecin

MarticulNom

Patient

No_SSNomMutuelle

Medicament

CodeLibelle

Prescrit

Nb Prises

Donner Assister

0,N 1,N

Consultation

No_ConsDate

1,1

0,N

Visites dans un centre médical

1. Un patient peut-il effectuer plusieurs visites?2. Un médecin peut-il recevoir plusieurs patients dans la même consultation?3. Peut-on prescrire plusieurs médicaments dans une même consultation?4. Deux médecins différents peuvents-ils prescrire le même médicament.

OuiNonOuiOui

OuiNonOuiOui

Page 53: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 53

Exercice 3 " LabDB "

 

La société "LabDB" désire informatiser son système de facturation. Les factures devraient se présenter de la façon suivante:

   

 Créez un MCD, qui permet de modéliser correctement le système d'information nécessaire, sachant que:  Un client peut bien sûr recevoir plusieurs factures, mais il est uniquement considéré

comme tel à partir du moment ou il reçoit sa première facture.  Une facture concerne un et un seul client.

LabDB SPRL Facture No. 00015, avenue SGBD7000 FPMs Mons, le 15.02.2003

Client Nom  : Nom_ClientPrénom  : Pre_ClientAdresse  : Serv. Info, 15Code_postal : 7000 Localité  : Mons

Montant de la facture : 3400 €

PARTIE 1

Obtenir

1,N 1,1CLIENT

No_ClientNomPrénomAdresseCode_postalLocalité

Facture

No_FactureDateMontant

Page 54: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 54

PARTIE 2Le responsable de la facturation de la société désire rendre les factures plus

informatives. Comme un client peut acheter plusieurs articles différents en même temps, la facture devrait indiquer pour chaque article le numéro , un libellé, le prix unitaire, la quantité vendue et le prix total pour ce type d'article.

la facture devrait avoir: Voici l'aspect que la facture devrait avoir:

LabDB SPRL Facture No. 00025, avenue SGBD7000 FPMs Mons, le 15.02.2003

Client Nom  : Nom_Client Prénom  : Pre_Client Adresse  : Serv. Info, 15Code_postal : 7000 Localité  : Mons

No. Article

Libellé Prix unitaire

Quantité Prix

233 Analyse 1000 € 1 1000 €

025 MCD 700 € 2 1400 €

142 MLD 1000 € 1 1000 €

Montant total de la facture : 3400 €

Proposez un nouveau MCD qui reflète ces modifications, en respectant le fait que tous les articles disponibles sont stockés (p.ex. No=233 Libellé="Analyse" PU=1000 €). Même si un article n'est pas encore considéré par une facture, il existe dans le système d'information.

Page 55: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 55

Solution de l’exercice " LabDB " 

PARTIE 1 Obtenir

1,N 1,1CLIENT

No_ClientNomPrénomAdresseCode_postalLocalité

Facture

No_FactureDateMontant

Remarque: No_Client en + ⊵ propriété artificielle définit comme identifiant. Sinon il faut définir un identifiant composé de +ieur propriétés.

PARTIE 2Obtenir

1,N 1,1CLIENT

No_ClientNomPrénomAdresseCode_postalLocalité

Facture

No_FactureDate

Porter

1,N

0,N

Article

No_ArticleLibelléPrix_Unitaire

Quantité

Remarque:L'entité Facture ne contient plus la propriété Montant. Il existe une règle générale de conception qui dit:Aucune propriété qui peut être calculée à partir d'autres propriétés existantes ne devra être stockée dans le MCD. !

Page 56: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 56

Exercice 4 : Structure administrative

On considère un sous-ensemble d’une structure administrative.

D’une direction (caractérisée par un nom unique et le nom de son PDG) dépendent plusieurs départements (dotés chacun d’un nom unique dans sa direction et du nom de son directeur).

Un département est découpé en services, ayant un nom (unique dans son département) et un responsable. Un service a la charge d’un certain nombres de dossiers (identifiés par un numéro et dotés d’un titre, d’une date et d’une description).

Dans chaque service travaillent des employés identifiés par un numéro et caractérisés par leur nom et leur adresse.

Page 57: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 57

DIRECTION

NomPDG

DEPARTEMENT

Nom_DepDirecteur

SERVICE

Nom_ServResponsable

PERSONNE

No_PersNomAdresse

DOSSIER

No_DosTitreDateDescription

dir-dép

dép-serv

traite travaille

0-N

1-1

1-1

1-1 1-1

0-N

0-N 0-N

Structure administrative

Page 58: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 58

Peut – il devenir comme cela ?

Entité

NomResponsable

PERSONNE

No_PersNomAdresse

DOSSIER

No_DosTitreDateDescription

traite travaille

1-1 1-1

0-N 0-N

Page 59: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 59

Une dépendance fonctionnelle (df) existe lorsqu'un ensemble d'attributs détermine parfaitement un autre ensemble d'attributs.

Pour une table T(relation R), un attribut Y de T dépend fonctionnellement d ’un attribut X de T ssi chaque valeur de X est associée a une et une seule valeur de Y

X Y

Ex: {Nom, Tel.} définit {ID}{Nom, Prénom} {Adresse,Sexe,Téléphone,Email} //Vrai s’il n’y a pas de problème d’homonymie

Les formes normales 2NF, 3NF et BCNF sont basées sur des contraintes en relation avec la notion de dépendance fonctionnelle.

Notion de dépendance fonctionnelle

Page 60: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 60

Considérons l’entité suivante et quelques une de ses occurrences :

Cette entité est juste mais elle implique une redondance d’information relative à la catégorie. L’association entre le numéro de la catégorie et son libellé est en effet répétée dans chaque occurrence de l’entité ARTICLE.

Notion de dépendance fonctionnelle

Page 61: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 61

NormalisationLe processus de normalisation du modèle relationnel à pour objectif d’établir une meilleure représentation conceptuelle des données d’une application par des tables relationnelles. Cela consiste, essentiellement, à décomposer les tables (entités, relations) contenant trop d’informations en tables (E/R) plus petites. Un mauvais schéma relationnel pouvant entraîner des anomalies lors des manipulations.

On peut mesurer la qualité d’une relation par son degré de normalisation. Ainsi, au plus une relation appartient à une forme normale avancée, au plus sa qualité augmente.

Définition: Le processus de Normalisation permet, par étapes, d'aboutir à des relations ayant les bonnes propriétés.

FN=Forme Normale.

1 FN (Codd, 1971) 2 FN (Codd, 1971)

3 FN (Codd, 1971)BCFN (Boyce, Codd, 1971)

4 FN (Fagin, 1977) 5 FN (Fagin, 1979)

Page 62: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 62

NORMALISATION Programmation plus facile des applications

Relations plus simples à gérer

Normaliser un schéma relationnel c'est le remplacer par un schéma équivalent où toutes les relations vérifient certaines propriétés. Ces propriétes sont basées sur l'analyse des dépendances fonctionnelles à l intérieur de chaque relation.

Normalisation

La normalisation permet de:- éviter les redondances (perte de place et incohérences)- minimiser l’espace de stockage- éviter les problèmes de mises à jour.

Page 63: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 63

Définition: Une relation est en Première Forme Normale (1FN) si et seulement si elle ne contient que des valeurs simples et élémentaires (si tout attribut est atomique= non décomposable ).

Nom Adresse

Picsou 9, rue de Houdain, 7000 Mons

Nom N° Rue CP Ville

Picsou 9 Houdain 7000 Mons

Non 1FN

En 1FN

1FN

ID_Personne

…Adresse

Personnes

PERE ENFANT

P1 { Enf11, Enf12, Enf13 }

P2 { Enf21, Enf22, Enf23 }

PERE ENFANT

P1 Enf11

P1 Enf12

P1 Enf13

P2 Enf21

P2 Enf22

Non 1FN

En 1FN

Normalisation

Page 64: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 64

Exercice: Normaliser la relation COMMANDE

COMMANDE PRODUITS

Cd1 { Bureau 50€, Chaise 49€ , Ecran 199€ }

Cd2 { Ecran 199€, Souris 19€ }

Solution: COMMANDE PRODUIT PRIX en €

Cd1 Bureau 50

Cd1 Chaise 49

Cd1 Ecran 199

Cd2 Ecran 199

Cd2 Souris 19

Normalisation

Page 65: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 65

3FN si: Elle est en 2FN, Il n’existe aucune DF entre deux attributs non clé primaire

(tout attribut n'appartenant pas à une clé ne dépend pas d'un attribut non-clé.)

Une relation est en 3FN si elle est en 2FN et si tous les attributs qui n’appartiennent pas à la clé primaire sont mutuellement indépendants. Ceci correspond à la non transitivité des dépendances fonctionnelles et permet d’éviter les redondances. La forme 3FN implique que chaque attribut peut être mis à jour indépendamment des autres.

Une relation est en 2FN si elle est en 1FN et si tout attribut n’appartenant pas à la clé dépend totalement et non-partiellement de la clé. On dit alors que chaque attribut est en dépendance irréductible avec la clé. C’est la phase d’identification des clés. Cette étape est très importante vu qu’elle évite de nombreuses redondances.

( 2FN: 1FN + si tous les attributs qui ne participent à aucune clé pour l'entité, sont des attributs d'entités et non pas d'autres entités.)

(2FN: 1FN + toute colonne qui n'appartient pas à une clé dépend pleinement de la clé et ne peut se déduire d'un sous-ensemble de cette clé. )

2FN et 3FNNormalisation

Page 66: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 66

Exemple :

Soit la relation concernant des dons de bienfaiteurs pour une association.

Nom Ville Rue Montant Date

Picsou Disney Pas de sous 10 € 3/10/99

Picsou Disney Pas de sous 12 € 13/1/01

Picsou Disney Pas de sous 30 € 23/7/03Donald Disney Bcp de sous 500€ 15/6/05

redondance

Supposer Picsou change d'adresse (VILLE = Mons, RUE = Houdain). Risque de ne pas corriger toutes les lignes concernées.

D'où BD incohérente

2e ET 3e FORME NORMALE

• Difficulté maintenance intégrité.

Normalisation

Page 67: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 67

Problème dit «Anomalies de Mise à Jour»:

Cause: Les Redondances d'informations sont sources d'Incohérences

Solution: On aurait aimé la structure suivante:

PERSONNEDONS

Nom Ville Rue

Picsou Disney Pas de sous

Donald Disney Bcp de sous

Nom Montant Date

Picsou 10 € 3/10/99

Picsou 12 € 13/1/01

Picsou 30 € 23/7/03

Donald 500€ 15/6/05

• L'adresse de Picsou figure une seule fois.

• On a séparé des informations distinctes

(sur la personne, sur les dons).«Le Bon Attribut au Bon Endroit»

Normalisation

Page 68: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 68

Normalisation du schéma - élimination des redondances internes

1 fait1 donnée

DEPARTEMENT

IdDepartLocalisation

EMPLOYE

NumEmpNom

dépend

1-1

0-N

Localisation ne dépendque de DEPARTEMENT

EMPLOYE

NumEmpNomDEPARTEMENTLocalisation

Normalisation

2FN

Page 69: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 69

Soit la table décrivant des fournisseurs d'une sociétéAutre Exemple :

NOM_FOUR VILLE CD_POSTAL PIECE QTE_EXP

F1 Mons 7000 Bureau 300

F1 Mons 7000 Ecran 500

F1 Mons 7000 Armoire 20

F2 Charleroi 6000 Bureau 500

F2 Charleroi 6000 Ecran 600

F3 Keumiée 5060 Ecran 500

FOUR1

Quelques anomalies:• Redondances.• Difficulté de maintenance.• Mémoriser l’adresse fournisseur impossible si pas de pièce fournie. e.g. <F4, Mons, 7000>• Suppression de toutes les pièces fournies par F2, fait perdre aussi son adresse.

deux tables distinctes : fournisseur (info fournisseur) pièces fournies.

Normalisation

Page 70: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 70

On décompose donc (PROJECTION)

EXPEDITION

NOM_FOUR PIECE QTE_EXP

F1 Bureau 300

F1 Ecran 500

F1 Armoire 20

F2 Bureau 500

F2 Ecran 600

F3 Ecran 500

NOM_FOUR VILLE CD_POSTAL

F1 Mons 7000

F2 Charleroi 6000

F3 Keumiée 5060

F4 Mons 7000

FOUR2

NOM_FOUR VILLE CD_POSTAL PIECE QTE_EXP

F1 Mons 7000 Bureau 300

F1 Mons 7000 Ecran 500

F1 Mons 7000 Armoire 20

F2 Charleroi 6000 Bureau 500

F2 Charleroi 6000 Ecran 600

F3 Keumiée 5060 Ecran 500

FOUR1

Normalisation

2FN

Page 71: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 71

• Dans la relation FOUR1, des attributs non clé (e.g. VILLE),

«dépendaient» d'une partie de la clé (NOM_FOUR).• Les anomalies précédentes ont ainsi été éliminées, renforçant l'intégrité de la base.

(on a pu insérer F4... par exemple).

Normalisation

En fait, les redondances ont juste été minimisées. Car la relation FOUR2 souffre encore de quelques anoma1ies.

Exercice: Lesquelles?Considérer toujours le tuple supplémentaire<F4, ..., Mons, 7000> NOM_FOUR VILLE CD_POSTAL

F1 Mons 7000

F2 Charleroi 6000

F3 Keumiée 5060

F4 Mons 7000

FOUR2

Page 72: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 72

• On décompose encore la relation FOUR2

FOUR3

NOM_FOUR VILLE

F1 Mons

F2 Charleroi

F3 Keumiée

F4 Mons

COMMUNE

VILLE CD_POSTAL

Mons 7000

Charleroi 6000

Keumiée 5060

On dit qu'on est passé à la 3e Forme Normale

Normalisation

•Dans la relation FOUR2, des attributs non clé (e.g. CD_POSTAL), «dépendaient» d'un autre attribut non clé ( ici VILLE) .• Il n'y a plus de redondances

RÉSULTAT FINAL:

FOUR3 COMMUNE EXPEDITION

NOM_FOUR VILLE VILLE CD_POSTAL NOM_FOUR PIECE QTE_EXP

3FN

Page 73: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 73

Exces :

Deuxième forme normale (2FN)!!!Une relation est en 2FN si:Elle est en 1FN, Tout attribut, non clé primaire, est dépendant de la clé primaire.Exemple de relation en 1FN mais pas en 2FN:

Projet NumProjet NumEmployé Fonction NomEmployé

Pourquoi?

Problèmes- on ne peut enregistrer un employé que s'il participe à un projet - si un employé participe à plusieurs projets, on doit répéter les informations sur cet employé (redondance et problèmes de m-à-j) Une solution peut être proposée qui consiste à extraire la dépendance fonctionnelle:1. On créé une nouvelle relation contenant l'attribut déterminé par une partie de la clé primaire

2. La clé primaire de la nouvelle relation est cette partie de la clé

Employé NumEmployé NomEmployé Projet NumProjet NumEmployé Fonction

NumEmployé est à la fois clé primaire et clé externe dans Projet

Normalisation

Page 74: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 74

On peut aussi étudier d'autres relations comme:

CLIENT N°client nom prénom date de naissance rue ville

Cette relation est en 2FN par contre la suivante n'est pas en 2FN.

COMMANDE_PRODUIT N°produit quantité N°fournisseur ville

Normalisation

Pourquoi?

Relation en 2FN mais pas en 3FN

Employé NumEmployé NomEmployé NumService NomService

Pourquoi?

Un autre exemple:

COMPAGNIE Vol Avion Pilote

Pourquoi?

Page 75: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 75

Contraintes d’intégrité

utilisant le mot réservé CHECK

Le concepteur peut également définir ses propres domaines :CREATE DOMAIN Domaine_Sexe CHAR(1)

CHECK (VALUE IN (‘M’, ‘F’)) ;

Le modèle d'une base de données relationnelle implique, par sa conception, un certain nombre de contraintes d'intégrité (C. I. ) qui traduisent les propriétés sémantiques des données :

Intégrité de domaine :

Contraintes d’intégrité statiques :

concerne le contrôle des valeurs des attributs, le contrôle entre valeurs des attributs ainsi que le contrôle des opérateurs entre attributs.

Intégrité de clé primaire : la contrainte de clé primaire d'une relation implique la non duplication des lignes, c'est-à-dire que chaque objet du monde réel peut être enregistré sans ambiguïté par une seule ligne, un seul "tuple";

- on peut ajouter à une colonne la contrainte de non-nullité qui implique que cette colonne ne peut pas avoir de valeur nulle, c'est-à-dire ne peut pas être indéfinie ou inutilisable;

Les contraintes de domaine et de non-nullité sont gérées en langage SQL, lors de la création de la table.

Après MLD

Page 76: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 76

Intégrité de référence :

L’intégrité de référence (ou intégrité référentielle) est un ensemble de contraintes contrôlant les dépendances et indépendances des relations. Elle concerne principalement l’intégrité des clés étrangères dont les valeurs sont ‘NULL’ ou des valeurs de la clé primaire.

L’objectif des clés étrangères étant de repérer un enregistrement dans différents espaces, des contraintes d’intégrité référentielle doivent assurer la validité des références entre tables.

L’intégrité référentielle signifie qu’il n’y a pas de valeurs de clés étrangères invalides. Pour cela, il faut donc prendre des décisions quant à la suppression ou la modification de la cible que référence la clé étrangère. FOREIGN KEY Nom_Clé REFERENCES Nom_Table [ON DELETE option] [ON UPDATE option]

C. I.

Page 77: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 77

L’intégrité relationnelle contrôle la sémantique et gère les contraintes de type if…then… Voici l’exemple d’une règle d’intégrité qui assure la suppression du numéro de téléphone d’une personne décédée.

CREATE INTEGRITY RULE Règle_DécèsFORALL Personnes (IF Personnes.Décédé = True

THEN Personnes.Téléphone = NULL)ON ATTEMPTED VIOLATION Reject ;

Intégrité de relationnelle :C. I.

Page 78: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 78

Contraintes d’intégrité fonctionnelle

Les contraintes d’intégrité fonctionnelles (CIF) contrôlent la détermination absolue d’une entité participant à une association du modèle conceptuel par une ou plusieurs autres participant à la même association. Ce type de contrainte permet donc d’identifier les dépendances entre entités.

Les CIFs ne doivent pas être confondues avec les dépendances fonctionnelles, qui permettent de déterminer les dépendances qui existent entre deux groupes d’attributs au sein d’une même relation

L’identification des CIFs permet de corriger certaines erreurs de conception de bases de données relationnelles. En effet, si la connaissance d’une ou plusieurs entités d’une association conduit à la détermination complète d’une autre entité participant à la même association, on peut considérer qu’il y a redondance d’information dans le modèle.

Page 79: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 79

Personnes Diplômes0N

0N

ID_PersonneNomPrénomSexeAdresseTéléphoneEmail

Code_diplômeTitre_diplômeAbréviation

ObtenirAnnée_d_obtention

Universités

Code_universitéNom_universitéAbréviation

0 NCIF

Si on imagine re-normaliser les diplômes de telle manière que chaque université possède l’exclusivité du diplôme qu’elle délivre, dans ce cas, la connaissance du diplôme implique celle de l’université. Il y a donc une contrainte d’intégrité fonctionnelle entre l’entité Diplômes et l’entité Universités.

Personnes 0N

0N

ObtenirAnnée_d_obtention UniversitésDiplômes Délivrer 0

N

01

CIF

Page 80: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 80

1,1

1,N

ActivitéCumul Nb H

d’activité

0,N

0,NChauffeur

Matri_Chauf.

Camion

No_Camion

ConduireMois

Mois

0,N

Trouver un MCD équivalent à ce MCD :

ActivitéCumul Nb H

d’activitéChauffeur

Matri_Chauf.

Camion

No_Camion

ConduireMois

Mois

1,1

1,N

0,N

0,N

Un camion n’ayant qu’un chauffeur, l’activité du chauffeur par camion est l’activité du camion

CIF

Page 81: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 81

1,1

2

Relation

4

3Entité 2

Entité 1

CIF

1

Principe de simplification par les contraintes d’intégrité fonctionnelles

Relation binaire non porteuse de données avec 1,1 sur l’une des pattes

On supprime la patte n°3.

!

CONTRAINTE D'INTEGRITE FONCTIONNELLE

Une Contrainte d'Intégrité Fonctionnelle (en abrégé : CIF) se définit par le fait que l'une des entités participant à l'association est complètement déterminée par la connaissance d'une ou plusieurs autres entités participant dans cette même association.

CIF

Page 82: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 82

1,1

0,N

1,N

1,NChauffeur

Matri_Chauf.

Camion

No_Camion

0,N

1,N

0,N

1,1Client

N°Client

Type de Client

Type

ActivitéCumul Nb H

d’activité

Affecter1,1 0,N

1,1

0,N

1,N

1,NChauffeur

Matri_Chauf.

Camion

No_Camion

0,N

1,N

0,N

1,1Client

N°Client

Type de Client

Type

ActivitéCumul Nb H

d’activité

Affecter1,1 0,N

CIF

Page 83: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 83

Les associations transitives Considérons le modèle suivant :

L’association binaire qui relie l’entité « CONTRAT » et l’entité « PROPRIETAIRE» doit être ôtée du modèle car on peut retrouver le propriétaire à partir des associations « Concerner » et « Appartenir ». Il s’agit d’une association transitive.

CIF

Page 84: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 84

Gestion FPMS_Etudiants

La FPMs veut ré-informatiser son système d'information qui gère les étudiants, Groupes d’étudiants (classes)(1er_A,... , 3eme_IG,…) . Sachant que :Un étudiant est caractérisé par [no. matricule, nom, prénom, date de naissance, adresse, Email ].Une classe est caractérisée par le nom de la classe (p.ex 1er) et par une indication du groupe ou spécialité (P.ex : 1er_A, 4eme_Elec) ainsi que par le nombre d’étudiants qui la fréquente.

Un étudiant enregistré dans le système fréquente au moins une classe au cours des années. On désire également saisir tous les enseignants dans le système d'information. Un enseignant est caractérisé par un code interne (CodeProf) , nom, prénom, Email et la matière qu'il enseigne. Une matière (cours) peut être composée de cours, T.P. et Exercices. Chacun des modules présente un poids en pourcentage de la côte globale à l’examen. Un module peut être donné par un ou plusieurs enseignants.

Une matière est représentée au moins par un code matière (p.ex. INF_B = Informatique de base, BD = Base de données, etc.) et un libellé complet qui exprime le terme général ( p.ex "Informatique" etc.).

Page 85: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 85

Modélisez le fait que chaque classe soit enseignée chaque année par un ou plusieurs enseignants. Un enseignant peut bien sûr donner des cours (cours, Labo., Exercices) à plusieurs classes, enseigner plusieurs matières différentes pendant une ou plusieurs années, mais peut également ne pas donner de cours pendant une ou plusieurs années.

    Exprimez aussi le fait que l’étudiant puisse suivre des cours en deux années différentes.

   Exprimez la contrainte suivante : connaissant le code postal de l’étudiant, nous pouvons choisir parmi les localités, celle qui correspond à l’adresse de l’étudiant, ou connaissant la localité le code postal est capté automatiquement.

Page 86: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 86

Le Modèle Logique des Données (MLD)

Définition 

Le niveau logique, qui se base sur le modèle conceptuel des données, introduit la notion des tables logiques, et constitue donc le premier pas vers les tables des SGBD.

Passage du MCD au MLD 

Le passage du schéma conceptuel à la structure relationnelle (MLD) se fait facilement et obéit à certaines règles.

 

Le MLD est toujours basé sur MCD. Un MLD est essentiellement composé de tables logiques reliées

entre elles par des flèches…

Analyse

MCD

MLD

Réel Perçu

Schéma Conceptuel

Schéma Logique

Page 87: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 87

Page 88: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 88

Entité Toute entité est transformée en table. Les propriétés de l'entité deviennent les attributs de la table.L'identifiant de l'entité devient la clé primaire de la table.

EMPLOYE

MatriculeNomFonction

EMPLOYE (Mat, Nom, Fonc)

Identifant Clé primaire

Propriété

Attribut

modèle conceptuel modèle logique

Page 89: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 89

Association ou relation 

Notion Père_fils ou mère_fille

Les relations du modèle conceptuel peuvent, sous certaines conditions, soit disparaître, soit devenir une table.

Page 90: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 90

Une clé étrangère est une colonneconstituée de l’identifiant d’une autre table

(et joue le rôle de référence à une ligne de cette table)

Relation un-à-plusieurs (participation totale) (1,1) (1,N) : (1,1) (0,N)

Porter dans la relation fille la clé primaire de la relation mère. L'attribut ainsi ajouté s'appelle clé étrangère. Par convention, nous la symboliserons au moyen de #.

(contrainte référentielle)

Page 91: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 91

(1,1) - (0,N) : se fait comme une relation un-à-plusieurs normale.

EMPLOYE

MatriculeNomFonction

DEPARTEMENT

NomAdresse

Occupe

1-1

0-N

EMPLOYE

Matricule Nom Fonction NomDpt

DEPARTEMENT

Nom Adresse

Page 92: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 92

Relation plusieurs-à-plusieurs  (1,N) - (1,N) : (0,N) - (0,N) : (0,N) - (1,N)

CLIENT

Cde ClientNomAdresse

PRODUIT

RéférenceDésignationPrix Unitaire

COMMANDER

Quantité

1,N 1,N

CLIENT(CdCli, Nom, Adresse) PRODUIT(Ref, Des, Prix)

COMMANDER(#CdCli, #Ref, Quant)

Clé primaireClés étrangères

Page 93: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 93

0,N : La même règle s'applique

COMM

CdCli Ref

CLIENT

CdCli Nom Adresse

PRODUIT

Ref Des Prix

CLIENT

Cde ClientNomAdresse

PRODUIT

RéférenceDésignationPrix Unitaire

COMMANDER

Quantité

0,N 0,N

Qu

Page 94: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 94

Relation un-à-un (1,1)—(1,1) :L'une des entités devient un attribut de l'autre entité.  Exemple : Client(No_Client, Nom, Adresse)

Carte_Membre(No_Carte,Type_Abonnement)  Deviennent:

Client(No_Client, Nom, Adresse, #No_Carte,Type_Abonnement).

!

Page 95: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 95

Disposer0,1 1,1

CLIENT

NuméroNomPrénomAdresseCode_postalLocalité

Carte_membre

No_CarteType_AbonnementDate_création

CLIENT

NoClientNomPrénomAdresseCde_postalLocalité

Carte_membre

No_CarteNoClientType_AbonnementDate_création

Disposer

Relation (0,1) – (0,1) :  

Idem que précédemment avec choix.Si l’association contient elle même des propriétés, alors >>> ajouter avec la clé étrangère.

Page 96: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 96

DIMENSION SUPERIEURE A 2:

Si la relation entre chacune des paires d'entités ne peut déterminer la troisième entité. Une table pour chacune des entités et une table pour la relation. Cette dernière possédera une clé primaire composée d'au moins trois champs.

Acte

Code-acteDésignation

0-N 0-NMédecin

Nom-médecinAdresse

Pratiquer

Lieu

Patient

N°Sec.SocNom

1-N

Medecin(Nom-Med, Adr)Acte(Cd-Acte, Des)Patient(NSS, Nom-Pat)Pratiquer(#Nom-Med, #Cd-Acte, #NSS, Lieu)

Page 97: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 97

Résumé :

A A-B BRelation binaire :

(1,1) – (1,N)  et (1,1) - (0,N) : A ( id_A, a1, a2, …, #id_B) (1,1) - (0,N) B ( id_B, b1,b2,…) (1,N) - (1,N) , (0,N) - (1,N) :  A ( id_A, a1, a2, …,)(0,N) - (0,N) B ( id_B, b1,b2,…)

A-B (#id_A, #id_B, a-b,…)

(1,1) - (1,1) : A ( id_A, a1, a2, …, id_B, b1,b2,…) (0,1)- (1,1) : A ( id_A, a1, a2, …)

B ( id_B, b1,b2,…, #id_A) (0,1) – (0,1) : Idem que (0,1)- (1,1) avec choix du placement de la clé étrangère.

Page 98: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 98

Relation ternaire

A-B-CA B

C

A ( id_A, a1, a2, …,)B ( id_B, b1,b2,…)C ( id_B, b1,b2,…)A-B-C (#id_A, #id_B, #id_C, a-b-c,…)

-N -N

-N

Page 99: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 99

EXCE :

Page 100: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 100

Page 101: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 101

Exercice "LabDB" Transformez le MCD suivant, qui représente la facturation de la société "LabDB" en un MLD en respectant toutes les règles du passage MCD à MLD.

Obtenir

1,N 1,1CLIENT

No_ClientNomPrénomAdresseCode_postalLocalité

Facture

No_FactureDate

Porter

1,N

0,N

Article

No_ArticleLibelléPrix_Unitaire

Quantité

ObtenirCLIENT

No_ClientNomPrénomAdresseCode_postalLocalité

Facture

N°_FactureN°ClientDate

Article

No_ArticleLibelléPrix_Unitaire

Porter

N° FactureNo_ArticleQuantité

Page 102: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 102

Exercice_Obélix  

La société Obélix et Compagnie fournit des menhirs dans le monde entier et gère les commandes à l’aide d’un micro-ordinateur.  

Exemple d’une commande: Obélix et Compagnie

Livreur de menhirs

Village gaulois 

Date commande: 22.02.2003 Nº commande: 4711

 

Nº client 012 Nom client: BISCORNUS

Prénom: M.

Adresse: BABAORUM

 

Code Libellé Quantité Prix unitaire

12 MENHIR CLASSIC 2 500

21 MENHIR SE/30 1 1500

25 MENHIR II FX 1 2500

Donner : Le MCDLes cardinalités et leur

signification.Le Modèle des

données.

Page 103: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 103

Rep_Obélix

Schéma Entité-Association

COM_PRO

CLIENT COMMANDE

PRODUIT

CLI_COM0,N 1,1

1,N

0,N

Signification:- Une commande est passée par un (1) client.- Un client peut passer plusieurs (N) commandes.- Une commande peut concerner plusieurs (N) produits.- Un produit peut intervenir dans plusieurs (N) commandes.

L’association CLI_COM est du type (1,N).L’association COM_PRO est du type (N,N).

Modèle des données CLIENT(NUM_CLI, NOM_CLI, PRE_CLI, ADR_CLI)COMMANDE(NUM_COM, DAT_COM, #NUM_CLI)PRODUIT(NUM_PRO, LIB_PRO, PRI_UNI)COM_PRO(#NUM_COM, #NUM_PRO,QTE_COM)

Page 104: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 104

Modèle relationnel textuel :Client(NoClient, Nom, Prénom)Commande (NoCde, DateCde, NoClient#)Produit(RefPdt, Désignation, Prix)Ligne(NoCde#, RefPdt#, Qté)

Client Commande

NoClient Nom Prénom NoCde DateCde NoClient#

1 Lassus Annick 100 14/04/2001 2

2 Mundubeltz Armelle 101 14/04/2001 1

3 Chaulet Bernadette

Produit Ligne

RefPdt Désignation Prixen € NoCde# RefPdt# Qté

VE45 Vélo 150 100 VE45 1

VE32 Kit 2 roues 30 100 VE32 1

VE21 Kit éclairage 15 101 VE21 2

Page 105: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 105

NumClient Nom Ville

001 Albert Bruxelles

002 Francois Liège

003 Brabo Anvers

NumClient NumPiece Quantite

001 0002 3

002 0002 1

002 0003 5

NumPiece Descr. Cout

0001 Table 500

0002 Chaise 300

0003 Armoire 1.000

CLIENT PRODUIT

COMMANDE

des relations existent entre les tableaux d ’une BD, ici: Albert de Bruxelles a commandé 3 chaises à 300 EUR

Page 106: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 106

CLIENT

NumCliNomAdresse

CONTRAT

NumCtrTypeDate

ACCIDENT

NumAccDate(Montant)

VEHICULE

NumVehMarqueModèleAnnéeCylindrée

APPARTIENT SIGNE

COUVERT

CONCERNE

0-N 0-N 1-1

0-1

0-N

1-1

1-1

0-N

(1-N)

Page 107: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 107

VEHICULE

NumVeh ... NumCli

CONTRAT

Numcli NumCtr Type Date

CONCERNE

NumVeh NumAcc

ACCIDENT

NumAcc Date (Montant)

NumCtr

CLIENT

NumCli Nom Adresse

Page 108: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 108

Exemple - SQL

create table CLIENT (

NumCli char (12) not null,

Nom char (38) not null,

Adresse char (60) not null,

primary key (NumCli) )

create table CONTRAT (

NumCli char (12) not null,

NumCtr char (8) not null,

Type decimal (4) not null,

Date date not null

primary key (NumCtr)

Foreign key (NumCli) references CLIENT )

create table VEHICULE (

NumVeh char (16) not null,

Marque char (30) not null,

Modele char (30) not null,

Annee decimal (4) not null,

Cylindree decimal (6) not null,

NumCli char (12) not null,

Ncli char (12) not null,

NumCtr decimal (8) not null,

primary key (NumVeh),

unique (Numcli, NumCtr),

Foreign key

(Numcli) references CLIENT,

Foreign key

(Numcli, NumCtr) references CONTRAT

)

Page 109: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 109

create table ACCIDENT ( NumAcc char (10) not null, Date date not null, Montant decimal (6), not null, primary key (NumAcc))

create table CONCERNE ( NumVeh char (16) not null, NumAcc char (10) not null,

primary key (NumVeh, NumAcc), foreign key (NumVeh) references VEHICULE,

foreign key (NumAcc) references ACCIDENT)

Page 110: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 110

Access

Page 111: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 111

Page 112: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 112

SQLS.Q.L. « Structured Query Language », "langage structuré de requête" est un langage pour interroger et gérer les bases de données relationnelles. Il permet de créer, modifier et sélectionner des données.  Le SQL peut se diviser en trois parties: DDL (data definition language), sert à définir la structure:

créer, modifier, effacer... DML (data manipulation language), sert à manipuler les données:

choisir, ajouter, effacer des tuples. DCL (data control language), sert à contrôler l'accès à l'information.

Page 113: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 113

On retrouve dans le DDL les commandes principales suivantes: 

CREATE TABLE Création d'une table CREATE INDEX Création d'un index CREATE VIEW Création d’une vue ALTER TABLE Modification de la structure

DROP TABLE Effacement d'une table

 On retrouve dans le DML les commandes principales suivantes: 

INSERT Insérer un tuple UPDATE Modifier un tuple DELETE Effacer un tuple SELECT Choisir un ensemble de tuples

Page 114: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 114

Il existe de plus des fonctions: 

De tri (ORDER BY) et de regroupement (GROUP BY) arithmétiques, mathématiques et statistiques (moyenne, maximum, minimum, etc.) logiques (UNION, INTERSECTION, etc.) etc. Les données sont définies selon des types (entier,caractères, date,etc.).

Types de donnéesSMALLINT entier (16 bits)

INTEGER entier (32 bits)

DECIMAL (m,n) décimaux de m chiffres (dont n après la virgule)

FLOAT réels flottants

CHAR (n) chaîne de n caractères

VARCHAR chaîne variable d’au plus n caractères

DATE dates (année, mois et jour)

TIME instants (heure, minute, seconde)

Page 115: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 115

On peut aussi inclure dans la définition des attributs des mots de contrôle pour forcer la saisie. 

Par exemple:

NOM CHAR(20) NOT NULL 

définit une variable "NOM" qui sera constituée d'un champs de 20 caractères auquel on devra obligatoirement attribuer une valeur si on désire ajouter un tuple contenant cet attribut.

Page 116: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 116

Exercice "LabDB"

Obtenir

1,N 1,1CLIENT

No_ClientNomAdresse

Facture

No_FactureDate

Porter

1,N

0,N

Article

No_ArticleLibelléPrix_Unitaire

Quantité

Obtenir

1,N 1,1CLIENT

No_ClientNomBoite_PostRueCode_postalLocalité

Facture

No_FactureDate

Porter

1,N

0,N

Article

No_ArticleLibelléPrix_Unitaire

Quantité

Page 117: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 117

ObtenirCLIENT

No_ClientNomBoite_PostRueCode_postalLocalité

Facture

N°_Facture#N°ClientDate

Article

No_ArticleLibelléPrix_Unitaire

Porter

N° FactureNo_ArticleQuantité

Obtenir

1,N 1,1CLIENT

No_ClientNomBoite_PostRueCode_postalLocalité

Facture

No_FactureDate

Porter

1,N

0,N

Article

No_ArticleLibelléPrix_Unitaire

Quantité

Page 118: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 118

Création d’une table

CREATE TABLE Client ( No_Client CHAR (4),

Nom CHAR (12),

Bte_Post INTEGER,

RueCHAR(30),

Code_PINTEGER,

Localite CHAR (20)

);

createtable

Aperçu des opérations les plus courantes

CLIENT

No_ClientNomBoite_PostRueCode_postalLocalité

Page 119: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 119

Identifiant

primarykey

CREATE TABLE Client (

No_Client CHAR (4) NOT NULL,

Nom CHAR (12),

Code_P INTEGER,

Localite CHAR (20),

PRIMARY KEY (No_Client)

);

notnull

CLIENT

No_ClientNomBoite_PostRueCode_postalLocalité

Page 120: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 120

Facture

N°_Facture#N°ClientDate

Article

No_ArticleLibelléPrix_Unitaire

Porter

N° FactureNo_ArticleQuantité

CREATE TABLE Porter(

No_Facture CHAR (8) NOT NULL,

No_Article CHAR (8) NOT NULL,

Quantité INTEGER,

PRIMARY KEY (No_Facture, No_Article),

);

FOREIGN KEY (No_Facture) REFERENCES Facture,

FOREIGN KEY (No_Article) REFERENCES Article

foreignkey Clé étrangère

Page 121: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 121

Ajouter une colonne à une table 

ALTER TABLE Client ADD Prenom CHAR(25); 

Détruire une table 

DROP TABLE FOURNISSEUR;

Créer un index

CREATE INDEX PR-Cli1 ON Client (Localite);

CLIENT

No_ClientNomPrenomBoite_PostRueCode_postalLocalité

Détruire un index

DROP INDEX PR-Cli1

Page 122: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 122

Consultation d’une BD

SELECT Nom, Localite

précise les valeurs (colonnes, valeurs calculées)

qui constituent chaque ligne du résultat

FROM Client

indique les tables desquelles le résultat tire ses valeurs

WHERE Localite = ‘Charleroi’

donne la condition de sélection

que doivent satisfaire les lignes qui fournissent le résultat

Page 123: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 123

Sélection de tous les attributs: SELECT * FROM Client;  

Sélection de certains attributs: SELECT Nom, Prenom FROM Client; 

Sélection de certains attributs et tuples: SELECT Nom, Code_P FROM Client WHERE Code_P < 7000 AND …; 

Sélectionner le nom de tous les Clients qui vivent à Mons: SELECT Nom FROM Client WHERE VILLE= ‘MONS’;

Manipulation des données :

Page 124: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 124

SELECT ID_Personnel, Nom, Code_Postal FROM Client

Extraction

Page 125: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 125

Extraction

SELECT * FROM Client

Page 126: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 126

Extraction

SELECT ID_Personnel, Nom, Code_Postal FROM ClientWHERE Nom = ‘Bros’

Page 127: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 127

AVANT

DISTINCT

SELECT DISTINCT Localite

FROM Client

WHERE Categorie = ‘1’

APRES

SANS

DISTINCT

APRES

AVEC

DISTINCT

Le DISTINCT permet d'obtenir une liste qui ne contient qu'une fois chaque Localite.

Page 128: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 128

Conditions de sélection

SELECT Nom, Compte

FROM Client

WHERE Localite = ‘Charleroi’

AND Compte >= 0

andor

not

()

SELECT TableClient.Nom, TableClient.compte

FROM TableClient

WHERE (((TableClient.Localite)='Charleroi')

AND ((TableClient.compte)>=0));

Access

Page 129: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 129

EXCE : Trouver les N°_Com avec leur date de tous les Clients de Charleroi.

Facture

N°_Facture#N°ClientDate

Page 130: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 130

Sous-requêtes

SELECT No, Date

FROM Commande

WHERE NoClient in

(SELECT No

FROM Client

WHERE Localite = ‘Charleroi’)

AVANT

Facture

N°_Facture#N°ClientDate

Page 131: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 131

EXCE : 

Trouver les noms de tous les fournisseurs qui vendent la pièce numéro 2.

Rep :  SELECT NOM FROM FOURNISSEUR WHERE NOFOUR IN (SELECT NOFOUR FROM ASSOCIATION WHERE NOPCE=2);

Le IN signifie inclus dans. Il existe une autre méthode : JOIN  Pour comprendre les requêtes (ou query) imbriquées, il faut exécuter d'abord la requête entre parenthèses.

Page 132: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 132

SELECT *

FROM Client

WHERE Localite IN (

SELECT Localite

FROM Client

WHERE Client.No = ‘3’)

Les clients qui habitent dans la même localité que le client n°2

Page 133: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 133

Différents opérateurs Différentes fonctions

=INNOT INCONTAINDOES NOT CONTAIN

COUNTSUM

AVGMINMAX

On peut également se servir de mots de contrôle tels: BETWEEN, NULL, LIKE, EXISTS, IN, ALL, SOME, etc..

COUNT(*) nombre de lignes trouvées

AVG(colonne) moyenne des valeurs de la colonne

SUM(colonne) somme des valeurs de la colonne

MIN(colonne) minimum des valeurs de la colonne

MAX(colonne) maximum des valeurs de la colonne

Page 134: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 134

Données calculées et duplication de lignes

SELECT COUNT (NoClient)

FROM Commande

nombre de commandes !!!

distinct

APRES 9

SELECT COUNT (DISTINCT NoClient)

FROM Commande

nombre de commandes !!!

APRES 6

nombre de commandes ???

Page 135: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 135

Mise à jour : UPDATE ASSOCIATION

SET PRIX=23 WHERE NOPCE=5 AND NOFOUR="ZZ"; 

Dans la table ASSOCIATION pour tous les enregistrements dont le NOPCE=5 et NOFOUR=ZZ, la colonne PRIX sera mise à 23.

Suppression :  

DELETE FOURNISSEUR WHERE NOFOUR="ZZ";

 

Dans la table FOURNISSEUR supprime l'enregistrement dont NOFOUR=ZZ.

Il faut s'assurer que ce fournisseur n'est pas utilisé dans la table ASSOCIATION.

Page 136: M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

M. BENJELLOUN 2006-07 Bases de données relationnelles - 136

Création :  

INSERT INTO ASSOCIATION (NOPCE,NOFOUR,PRIX) VALUES(1,"KK",10);

 

Crée dans la table ASSOCIATION un enregistrement en assignant des valeurs aux colonnes.