m. benjelloun 2006-07 bases de données relationnelles - 1 les bases de données relationnelles...
Embed Size (px)
TRANSCRIPT

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
2006-2007
de la théorie à la pratique

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

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

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é.

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

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

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

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

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 :

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

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

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

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

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é.

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

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

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

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

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.

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

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.

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

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

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

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.

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

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

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

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

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 ?

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

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.

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 ...

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

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é

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é

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.

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

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)

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

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)

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.

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.

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

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.
!

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

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

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.

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.!

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.
!

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.

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

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

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.

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. !

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.

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

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

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

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

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)

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.

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

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

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

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

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

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

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

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

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

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

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

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?

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

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.

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.

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.

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

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

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

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

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

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.).

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.

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

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

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

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.

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)

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

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

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

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).
!

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.

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)

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.

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

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

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

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é

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.

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)

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

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

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)

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

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
)

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)

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

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

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.

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

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)

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.

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é

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é

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é

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é

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

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

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

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 :

M. BENJELLOUN 2006-07 Bases de données relationnelles - 124
SELECT ID_Personnel, Nom, Code_Postal FROM Client
Extraction

M. BENJELLOUN 2006-07 Bases de données relationnelles - 125
Extraction
SELECT * FROM Client

M. BENJELLOUN 2006-07 Bases de données relationnelles - 126
Extraction
SELECT ID_Personnel, Nom, Code_Postal FROM ClientWHERE Nom = ‘Bros’

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.

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

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

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

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.

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

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

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 ???

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.

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.