Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
l’Estuaire
Estuary Academic and Strategic Institute(IUEs/Insam)
Sous la tutelle académique des Universités de Dschang et de Buéa
Contenu :
C H A P I T R E 1:
CONCEPTS FONDAMENTAUX
Une base de données (BD) représente l'ensemble (cohérent, intégré, partagé) des informations nécessaires
au fonctionnement d'une entreprise, ensemble dont la gestion est assurée par un logiciel appelé système de
gestion de bases de données (SGBD).
On entend ici par entreprise toute collectivité d'individus travaillant en coordination à la réalisation d'un
objectif commun.
Exemples de base de données: celle qui permet la gestion des personnels, étudiants, cours, inscriptions, ...
d'une université ou école, celle du système de réservation de places d'avion des compagnies d'aviation, celles
qui permettent la gestion des comptes des clients des sociétés bancaires, ...
Banque de données
Une base de données est développée au sein d'une entreprise, pour son propre fonctionnement. Inversement,
une banque de données est un ensemble de données, propres à un domaine d'application, que des
"producteurs" réunissent pour ensuite en commercialiser l'usage vers le public extérieur. Exemple: les
banques de données juridiques, économiques, médicales, des brevets, des propriétés des matériaux, ... . La
constitution et l'exploitation des banques de données font appel à des techniques spécifiques (télématique,
par exemple), différentes des techniques bases de données, seules étudiées dans ce cours.
Fichier
Dans une entreprise, il convient de faire appel à l'approche base de données lorsque les données à gérer sont
de natures diverses (exemple : étudiants, cours, enseignants, salles, ...) et possèdent de nombreux liens entre
elles (exemple : un étudiant suit un cours, un cours est assuré par un enseignant, ...). A contrario, il existe des
cas où les données à gérer, bien que importantes en volume, sont homogènes : les abonnés d'une revue, le
personnel d'une entreprise, les produits vendus par un magasin ... . Dans ces cas, on parlera de fichier (le
fichier des abonnés, ...) et l'on utilisera un système de gestion de fichiers (SGF), moins complexe qu'un
SGBD.
Tout système d'exploitation d'un ordinateur contient un SGF spécifique. Toutefois, pour les applications, on
fait plutôt appel à des progiciels du commerce (exemple: dBase, Filemaker, ...), d'un usage plus simple et
offrant des fonctionnalité plus élaborées.
Il est à noter que l'implantation physique d'une base de données sur les mémoires secondaires se fait via la
notion de fichier. Le choix de ceux-ci, toutefois, reste de la compétence du SGBD et est invisible à
l'utilisateur. Le cours abordera les techniques de gestion de fichiers lorsque nous traiterons des aspects
internes de réalisation d'un SGBD.
Une fois que cet accord aura été établi, il faudra pouvoir transmettre son contenu au logiciel SGBD choisi
par l'entreprise. Ceci sera fait au moyen d'un langage symbolique, spécifique du logiciel choisi, que l'on
appelle langage de description de données (LDD). Une fois que le SGBD aura pris connaissance de cette
description, il sera possible aux utilisateurs d'entrer les données, c'est-à-dire de constituer la première
version, initiale, de la base de données. On appelle implantation de la base de données cette phase qui
consiste à décrire la base de données dans le langage du SGBD et construire cette première version.
Une fois l'implantation terminée, peut commencer l'utilisation de la base de données. Celle-ci se fait au
moyen d'un langage, dit langage de manipulation de données (LMD), qui permet d'exprimer aussi bien les
requêtes d'interrogation (pour obtenir des informations contenues dans la base) que des requêtes de mise à
jour (pour ajouter de nouvelles informations, supprimer des informations périmées, modifier le contenu des
informations).
On appelle cycle de vie d'une base de données la suite des phases conception, implantation, utilisation.
et encore trop difficile à comprendre par un ordinateur. On fait donc appel à un langage formel, basée sur un
certain nombre de concepts bien établis. Par exemple, les concepts d'objet, de lien, de propriété.
On appelle modèle de données l'ensemble des concepts qui permettent la description de données d'une base
et les règles d'utilisation de ces concepts. On appelle schéma d'une base de données l'expression de la
description de la base de données d'une entreprise obtenue en employant un modèle de données.
Les différents schémas établis pour décrire les divers aspects d'une base de données sont les suivants:
1/ Lors de la phase de conception, il est nécessaire que les utilisateurs puissent discuter de leurs besoins: il
faudra donc qu'ils puissent exprimer leur vision sous forme d'une description, éventuellement partielle, de la
future base de données. Dans cette description, il n'est guère besoin de faire appel à des concepts de
l'informatique, dans la mesure où le problème à traiter est de déterminer quelles sont les informations
nécessaires à la vie de l'entreprise, et ce indépendamment de la solution informatique retenue. Cette
description s'appuiera donc sur un ensemble de concepts qui ne font aucune référence à l'informatique : le
modèle utilisé est dit "conceptuel".
La description ainsi obtenue s'appelle schéma conceptuel des besoins. Un modèle conceptuel comporte
généralement deux parties: le modèle statique, concepts permettant de décrire la structure de données, et le
modèle dynamique, concepts permettant de décrire les opérations sur les données.
Quelque soit le modèle conceptuel choisi (il en existe plusieurs), il n'est pas possible de décrire avec celui-ci
toute la connaissance que l'on possède sur les données à décrire: notamment, les règles de gestion de ces
données. Par exemple, l'expression de la règle "il ne doit pas y avoir plus de 20 % d'écart entre les salaires
des employés d'un même service et d'une même catégorie" n'est pas possible avec les seuls concepts
descriptifs d'un modèle. On introduira donc, en supplément à la description établie, la description explicite
des contraintes supplémentaires, dites contraintes d'intégrité. On utilise pour cela un langage d'expression
de règles, compatible avec le modèle conceptuel utilisé.
2/ Le schéma conceptuel des besoins décrit la future base, indépendamment des choix techniques
d'implantation. La phase suivante, celle d'implantation, demande que la partie décrivant les données de ce
schéma soit traduite dans les concepts du modèle utilisé par le SGBD choisi. On appelle modèle logique (ou
modèle machinable), le modèle sur lequel est construit un SGBD actuel. Il existe aujourd'hui plusieurs
modèles logiques (relationnel, CODASYL, hiérarchique, ...). Le schéma obtenu en traduisant dans un
modèle logique le schéma conceptuel des besoins sera appelé ici le schéma logique de la base de données. A
noter cependant que, dans la terminologie courante, ce schéma est souvent appelé le schéma conceptuel de la
base de données, ce qui ne va pas sans ambiguïté avec le schéma conceptuel résultant de la phase de
conception (point 1 ci-dessus).
3/ L'implantation des données elles-mêmes, c'est-à-dire le chargement de la base de données avec la version
initiale, nécessite que soient fixés les choix en matière de structuration de données sur la mémoire secondaire
(quels types de fichiers? quels index? ...). Ces choix, ainsi que nous l'avons dit plus haut, ne sont pas faits par
les utilisateurs, mais par les administrateurs système qui, en fonction de leur analyse des traitements qui vont
être effectués sur la future base de données, détermineront les paramètres effectifs pour l'implantation de la
base sous forme d'un ensemble de fichiers. L'ensemble de ces choix sera consigné dans ce que l'on appelle le
schéma interne de la base de données: description de comment les données de la base sont enregistrés dans
les fichiers. Cette description fait donc appel à un nouveau modèle, appelé modèle interne, où les concepts
seront ceux de fichier, organisation, index, chemin d'accès, clé, ...
4/ Enfin, au cours de la phase d'utilisation de la base de données, d'autres schémas sont élaborés pour
répondre aux besoins spécifiques des différents groupes d'utilisateurs. Ceux-ci n'ont pas besoin de connaître
l'ensemble du contenu de la base, à savoir, toutes les informations sur chaque type d'objet. Chaque utilisateur
a des exigences limitées (il n'est intéressé que par certaines informations) et particulières (il peut souhaiter
une représentation des informations différente de celle décrite dans le schéma conceptuel).
A chaque utilisateur (ou groupe d'utilisateurs) est donc associé un schéma, dit son schéma externe, qui
définit le sous-ensemble de la base de données auquel il a accès, structuré de façon à répondre à ses besoins
spécifiques.
Avantages de cette approche :
. simplicité chaque utilisateur n'a dans son schéma externe que ce qui l'intéresse
. protection il n'est pas possible que, par erreur ou par malveillance, un utilisateur accède aux
données d'autres utilisateurs non décrites dans son schéma externe.
Dans les SGBD actuels, le modèle de données employé pour décrire les schémas externes est le même que
celui du schéma logique, mais on pourrait proposer des modèles externes plus adaptés aux besoins
spécifiques des utilisateurs.
Un SGBD gère donc trois types de schémas pour une base de données, qui sont organisés en cascade de la
façon suivante:
Enseignant
+ : fichier FEnsCours,
Au niveau d'abstraction le plus élevé, un SGBD peut être vu comme une boite noire, assurant la gestion de la
BD conformément aux requêtes de ses utilisateurs:
L'interface utilisateur permet aux utilisateurs d'exprimer des requêtes: soit pour définir le contenu de la BD
(avec le LDD), soit pour interroger la BD (en extraire des informations), soit enfin pour apporter des
modifications à ce qui a été enregistré.
L'interface d'accès physique permet au SGBD d'accéder aux données sur les supports (disques, ...).
Un SGBD gère des problèmes très différents, avec des objectifs particuliers:
- interface utilisateur: compréhension, analyse et vérification des requêtes; objectifs: convivialité de
l'interface, puissance des langages de description et de manipulation;
- interface d'accès physique: optimisation du stockage des données (en termes d'espace occupé sur les
supports) et de l'accès aux données (en temps); objectif: avoir les meilleures performances.
L'articulation entre ces deux interfaces doit répondre à un objectif fondamental: assurer l'indépendance
programme/données. A savoir, d'une part, la possibilité pour un utilisateur de modifier sa vue de la base et
ses traitements sans avoir à se soucier des choix qui ont été opérés au niveau interne en matière de fichiers;
Enfin, un SGBD étant utilisé simultanément par plusieurs utilisateurs, il a à résoudre plusieurs problèmes
internes de coordination de ses actions, de cohérence et de contrôle du bon déroulement de ses activités.
Il convient donc d'avoir une vision plus fine de l'architecture d'un SGBD. Celle-ci conduit à distinguer trois
couches :
. niveau externe prend en charge le problème du dialogue avec les utilisateurs, c'est-à-dire l'analyse
des demandes de l'utilisateur, le contrôle des droits d'accès de l'utilisateur, la
présentation des résultats
. niveau interne s'occupe du stockage des données dans les supports physiques et de la gestion des
structures de mémorisation (fichiers) et d'accès (gestion des index, des clés, ...)
Une requête, exprimée par l'utilisateur dans un langage accepté par le système (LMD), est d'abord analysée
du point de vue syntaxique (conformité à la grammaire du langage); suit une analyse sémantique (les objets
cités doivent être connus dans le schéma externe de l'utilisateur).
Après cette validation, faite dans la couche externe, la requête est traduite, pour son passage à la couche
logique: les références aux objets du schéma externe sont remplacées par les références aux objets
correspondants dans le schéma logique. On utilise pour cela la description des règles de correspondance
entre schéma externe et schéma logique, établie, nécessairement, au moment de la définition du schéma
externe.
Au niveau logique, on fait les contrôles sur la confidentialité, la concurrence, etc. Si la requête est acceptée,
elle est optimisée et découpée en sous-requêtes plus élémentaires qui sont transférées au niveau interne;
sinon, elle peut être mise en attente ou refusée.
Au niveau interne, chaque sous-requête reçue est traduite en une ou plusieurs requêtes physiques
correspondantes (en fonction des informations contenues dans le schéma interne), puis le SGBD réalise
l'accès physique aux données (extraction ou modification). S'il s'agit d'une requête d'interrogation, les
données extraites sont passées à la couche logique, puis à la couche externe. Ici elles sont réorganisées, selon
le schéma externe de l'utilisateur, avant de les transmettre à l'utilisateur.
Questions de cours:
1. Donner 2 avantages d'un SGBD par rapport à un système de gestion de fichiers
classique.
2. Qui intervient sur une base de données ?
3. Présenter le rôle de chaque intervenant sur une base de données.
4. Soit la figure suivante :
Le modèle relationnel a été inventé en 1960 et a fait l'objet de très nombreuses recherches qui ont débouché
sur la réalisation et commercialisation de SGBDs relationnels. C'est le modèle le plus utilisé par les SGBDs
actuellement disponibles sur le marché.
C'est un modèle de données plus simple que celui de l'entité association, ce qui explique son succès tant sur
le plan théorique (théorie de la normalisation, définition de langages de manipulation de données), que sur
celui des réalisations. Mais cette simplicité est aussi sa faiblesse principale: c'est un outil trop pauvre
sémantiquement pour pouvoir bien représenter la complexité du monde réel. Ce pourquoi d'autres modèles
de type entité association ou orientés objets ont été ensuite proposés.
I. Lesrelations
1. Définitions
Les objets et associations du monde réel sont représentés par un concept unique: la relation. Les relations
sont des tableaux à deux dimensions, souvent appelés tables.
Exemples
Cet exemple représente une relation (ou table) décrivant les étudiants. Etudiant est le nom de la relation. Les
entêtes des colonnes, N° Etud, Nom, Prénom et Age, sont les attributs de la relation. Chaque ligne de la
table correspond à une occurrence. Par exemple:
<253, Aubry, Annie, 20>
constitue un n-uplet ou tuple, qui décrit une occurrence (l'étudiante Annie Aubry).
Il est usuel de souligner l'attribut, ou les attributs, qui constituent l'identifiant de la relation.
On remarque que l'identifiant de la relation "Suit" (qui traduit un type d'association) est composé des
identifiants des deux relations précédentes. Cette relation Suit exprime le lien entre un étudiant, désigné par
son numéro, et un cours, désigné par son nom. Si on avait utilisé le modèle entité association, les relations
Etudiant et Cours auraient été modélisées par des types d'entité, Etudiant et Cours, alors que la relation Suit
aurait été modélisée par un type d'association reliant ces types d'entité.
Notion de domaine
Un domaine est un ensemble de valeurs que peut prendre un attribut; c'est le domaine définition d'un ou
plusieurs attributs.
Exemple de domaines:
Dnom : chaînes de caractères de longueur maximale 30
Dnum : entiers compris entre 0 et 99999
Dcouleur : {"bleu", "vert", "jaune"}
Dâge : entiers compris entre 16 et 65
Relations
Une relation est définie par :
son nom
liste de couples (nom d'attribut : domaine)
son (ses) identifiant(s)
sa définition (phrase en français)
Les trois premières informations: nom de la relation, liste des couples (attribut : domaine) et identifiant(s)
constituent le schéma de la relation.
Exemple : schéma de la relation Etudiant :
Etudiant (N° Etud : Dnum, Nom : Dnom, Prénom : Dnom, Age : Dâge)
La population d'une relation est constituée de l'ensemble des tuples de la relation. C'est un ensemble; il n'y
a donc ni doubles, ni ordre (les nouveaux tuples sont rajoutés à la fin de la relation).
2. Règles de modélisation
Les attributs sont tous simples et monovalués: toute valeur prise par un attribut pour un tuple est atomique
(non décomposable par le SGBD) et unique. Les notions d'attribut multivalué, complexe ou facultatif,
n'existent pas dans le modèle relationnel.
Certains SGBDs relationnels gèrent une valeur spéciale, appelée valeur nulle et notée "?". Cette valeur peut
être prise par tout attribut (sauf si dans le schéma on a spécifié le contraire); elle signifie alors que le tuple
n'a pas de valeur pour cet attribut. Par exemple, un étudiant, Marc Dumont, de numéro 123, dont on ne
connaîtrait pas l'âge, serait représenté par le tuple:
< 123, Dumont, Marc, ? > .
Une telle solution implique un traitement particulier de cette valeur nulle dans les langages de manipulation
des données.
A l'opposé, les attributs obligatoires sont traduits lors de la création de la table en SQL par la clause NOT
NULL.
Solution 1: On ajoute l'attribut Adresse qui a pour domaine les chaînes de caractères. Dans ce cas,
l'utilisateur ne peut pas poser de questions sur la ville, il devra lire l'adresse et chercher dans la chaîne de
caractères le nom de la ville lui-même, ou par programme.
Solution 2: On ajoute les attributs suivants : n°rue, nom-rue, ville, code-postal à la relation. Le SGBD
connaît le détail de l'adresse, mais ne connaît pas la notion globale d'adresse.
La solution est choisie en fonction du type d'utilisation de l'attribut.
Cas d'un attribut multivalué du modèle entité association
Par exemple, on veut mémoriser les différents prénoms des étudiants (et non pas uniquement leur premier
prénom).
Solution 2: On ne garde que N°Etud, Nom, Age pour la relation Etudiant, et on crée une relation
supplémentaire, EtudPrénoms :
Un identifiant peut-être composé d'un ou plusieurs attributs. Une relation peut avoir un ou plusieurs
identifiants. Une relation étant un ensemble, elle a toujours un identifiant qui, dans le cas le plus
défavorable, est composé de tous les attributs de la relation. Par convention, l'attribut (ou les attributs)
constituant l' (ou un des) identifiant(s) est souligné.
Exemples
Etudiant (N°Etud, nom, prénom, age)
Il n'y a pas deux étudiants qui ont le même numéro.
La relation précédente, EtudPrénoms2, possède deux identifiants qui sont N°Etud, N°Prénom et N°Etud,
Prénom.
Règle: tous les attributs de tout identifiant doivent toujours avoir une valeur connue.
Exemple
Insérer dans Etudiant: < ?, Rochat, Jean, 19> est une instruction que le SGBD doit refuser.
4. Identifiant externe
Certains attributs référencent des tuples d'une autre relation (ou parfois de la même); c'est à dire que leur
valeur est toujours égale à celle de l'identifiant d'un tuple existant dans l'autre relation. On les appelle
identifiants externes (ou clés externes ou clés étrangères). Par exemple, la relation Suit (NomC, N°Etud)
possède un identifiant (NomC + N°Etud), et deux identifiants externes : NomC et N°Etud. En effet, NomC
"référence" un Cours, c'est à dire que si une valeur NomC existe dans Suit, alors il doit nécessairement
exister un cours de ce nom là dans la relation Cours. De même, N°Etud "référence" un Etudiant.
Le schéma d'une relation comprend donc, en plus de la définition du nom de la relation et de ses attributs et
domaines associés, la définition de son (ses) identifiant, et celle de ses identifiants externes, s'il en existe.
Définition :
Soient deux relations R1(X, Y) et R2 (V, W), où X, Y, V, W, désignent des attributs ou des ensembles
d'attributs, et où X est un identifiant de R1, on dit que W est un identifiant externe sur R1 (ou que W
référence R1) si pour tout tuple de R2, la valeur prise par W est nécessairement la valeur de X pour un tuple
existant de R1. Autrement dit, à tout instant, l'ensemble des valeurs prises par W est compris dans l'ensemble
des valeurs prises par X.
1. Introduction
On veut décrire les produits et leurs fournisseurs. On peut le faire avec le schéma suivant, schema 1 (on suppose
que chaque produit est d'une couleur unique):
Exemples de problèmes rencontrés lors des mises à jour de la base de données décrite par le schéma 2:
S'il n'y a plus de livraison pour un fournisseur son numéro de téléphone est perdu. S'il existe N livraisons
pour un fournisseur, le numéro TélF est répété N fois, il faut vérifier que c'est le même. Pour insérer une
nouvelle livraison, il faut enregistrer à nouveau ce numéro TelF. Ces problèmes n'existent pas avec le
schéma 1 qui est meilleur que ce second schéma.
Le processus de transformation d'une relation posant des problèmes lors des mises à jour en relations n'ayant
pas ces problèmes, est appelé processus de normalisation.
On mesure la qualité d'une relation (ou sa capacité à représenter le monde réel sans générer les problèmes
aperçus ci-dessus) par son degré de normalisation. Une relation peut être (de la moins bonne à la meilleure) en
1ère forme normale, en 2ème forme normale, en 3ème forme normale, en forme normale de Boyce Codd, en
4ème forme normale ... (chaque forme normale implique les précédentes).
Notation : pour la suite, les lettres X, Y, Z ... désigneront soit des attributs, soit des ensembles d'attributs; les
lettres A, B, C, ... désigneront des attributs.
Mais les DF :
NP Couleur, NP Poids, NP NomP
NomP Couleur, NomP Poids, NomP NP sont élémentaires.
La DF :
(NP, NF, date) Qté de la relation Livraison est élémentaire.
Chaque DF traduit un fait du monde réel. Les DF élémentaires traduisent des faits atomiques. La DF, NP
Couleur, signifie que chaque produit, identifié par son numéro, est d'une seule couleur. La DF, (NP,
NF, date) Qté, signifie qu'un même fournisseur ne peut livrer plusieurs fois le même jour le même
produit avec des quantités différentes.
Définition :
Etant donné une relation et un ensemble de DF portant sur les attributs de cette relation, on appelle
graphe minimum des DF de la relation, tout ensemble de DF élémentaires non déduites, équivalent à en
ce sens que toute DF de peut être déduite des DF du graphe.
Une méthode pour savoir si une DF, XY, est déduite des autres est la
suivante:
- établir un graphe (non minimum) des DF,
- parcourir tous les chemins possibles partant de X et suivant les DF. La DF, XY, est déduite si un
(ou plusieurs) de ces chemins atteint Y.
Soit une relation qui est en 1ère forme normale, mais qui n'est pas en 2ème forme normale:
Fournisseur1 (NF, NomProduit, Adr, Tel, Prix)
Nom Produit
Prix
Adr
NF
Tél
Problème pour les suppressions : si on supprime (momentanément) la liste des produits d'un fournisseur,
alors on supprime aussi le fournisseur.
Problème de mise à jour des tuples : si un fournisseur change d'adresse ou de téléphone, il faut faire cette
mise à jour sur tous les 100 tuples !
Ces problèmes sont dus au fait que la relation n'est pas en 2ème forme normale.
On décompose Fournisseur1 en deux relations de la façon suivante : pour chaque source de DF, on crée une
relation ayant pour attributs la source et tous les attributs en dépendance fonctionnelle directe de cette
source, en s'assurant qu'une (au moins) des deux sources est entièrement contenue dans les attributs
communs aux deux relations ainsi créées (cf théorème de Heath). On obtient ainsi :
Fournisseur (NF, Adr, Tel)
Catalogue (NF, NomProduit, Prix)
qui sont en 2ème forme normale (et même plus).
Cette décomposition est :
- sans perte d'information (NF est l'identifiant de la relation Fournisseur)
- sans perte de dépendance fonctionnelle (les DF sont soit dans l'une, soit dans l'autre des deux relations
décomposées).
Définition : Une relation est en deuxième forme normale si elle est en première forme normale et si chaque
attribut qui ne fait partie d'aucun identifiant dépend de tout identifiant entier (et non pas d'un morceau
d'identifiant)
NF Ville Pays
Dans le relation Fournisseur2, il y a redondance : le pays d'une ville est répété, ce qui cause des problèmes
de mise à jour. On décompose donc en :
Fourn (NF, Ville)
Géo (Ville, Pays)
Définition : une relation est en troisième forme normale si elle est en première forme normale et si chaque
attribut qui ne fait partie d'aucun identifiant dépend uniquement des identifiants entiers.
NB : On peut toujours décomposer en troisième forme normale sans perte ni d'information, ni de DF; ce qui
n'est pas vrai des formes normales plus poussées. D'où l'intérêt de cette troisième forme normale.
2.1 Projection
Projeter sur un ensemble de colonnes d’une table T, revient à supprimer de la table celles qui ne sont pas
dans l’ensemble
E
x
e
m
p
l
e
Support de cours bases de données Page 21
2.2 Sélection
La sélection sur une condition consiste donc à garder les lignes de la table vérifiant la condition
exemple
3.2 UNION
A∪B est la table contenant toutes les lignes de A et toutes les lignes de B sans doublon
3.3 DIFFERENCE
A – B est la table contenant toutes les lignes de A qui ne se trouvent pas dans B
On appelle jointure de T1 et T2 sur la condition cond la sélection sur cond effectuée sur T1 X T2:
Exemple
Objectifs
Lire les relations entre les entités en fonction des cardinalités.
Appliquer les règles de passage d’un modèle Entité/Association à un modèle
Relationnel.
Exercice n°1 :
Transformer le modèle Entité/Association suivant en modèle relationnel :
Exercice n°2 :
Soit le schéma E /A donnée ci-dessous représentant des visites dans un hôpital. Répondez aux
questions suivantes en fonction des caractéristiques de ce schéma.
Exercice n°3 :
On souhaite gérer des réservations dans une compagnie d'hôtels. On considère donc le
diagramme entité-association suivant (les attributs soulignes sont les identifiants des entités) :
1. A partir de ce diagramme, répondez aux questions suivantes par Oui ou Non en justifiant votre
réponse.
a. Est-il possible d'avoir des clients homonymes ?
b. Un client peut-il réserver plusieurs chambres à une date donnée ?
c. Est-il possible de réserver une chambre sur plusieurs jours ?
d. Est-il possible de savoir si une chambre est libre à une date donnée ?
e. Est-il possible de réserver plusieurs fois une chambre à une date donnée ?
2. Proposez un schéma de base (un modèle relationnel) correspondant au diagramme (Soulignez les
attributs identifiants des relations et ajoutez le caractère « # » avant les attributs identifiants
externes).
Exercice n°4 :
Soit le schéma entité-association suivant :
Exercice n°1 :
Soient les trois relations R1, R2 et R3 :
Exercice n°2:
b. π Age (Personne)
c. π Age (σ<Nom=’Serge’> (Personne))
Exercice n°3 :
c. R 5 = R2 – R1
d. R 7 = π A (R1)
Exercice n°4:
Soit un schéma relationnel composé de la relation Passager (nom, age, ville), on propose
l’extension suivante de la relation suivante :
Passager
Nom Age Ville
Catherine 32 Lyon
Sophie 54 Paris
Claude 13 Montpellier
Serge 40 Lyon
1. Donnez les résultats des requêtes suivantes, et indiquer leur type (sélection ou projection):
a. σ (Passager)
Nom=Claude
b. π (Passager)
Ville
c. π (σ (Passager))
Nom Age=30
Exercice n°1 :
Soit R1 (A, B, C, D, E, F) une relation avec l'ensemble de dépendances suivant :
DF = {AB → C, AB → D, AB → E, AB → F, B → C, D → E, D → F}
Exercice n°2:
Exercice n°3:
On considère une relation R construite sur les attributs Propriétaire, Occupant, Adresse,
Noapt, Nbpièces, Nbpersonnes, un nuplet (P, O, A, N, NB1, NB2) ayant la signification
suivante :
la personne O habite avec NB2 personnes l'appartement de numéro N ayant NB1 pièces dont
le propriétaire est P et l’adresse A
Exercice n°4:
Exercice n°5 :
Exercice n°6 :
Soit R une relation et X, Y, Z et W sont les ensembles d’attributs associés : R(X, Y, Z, W).
A-t-on les implications logiques suivantes ? Si la réponse est vrai préciser les axiomes
d’Armstrong ou les propriétés utilisés ?