G10 - La base de données relationnelle

publicité
DOSSIER G10 –
La base de données
Relationnelle
1
DOSSIER G10
Problématique
2
Problématique
• La société Locazur, située à Nice,
est spécialisée dans la location de véhicules
de prestiges.
• Pour la gestion des locations de ses véhicules,
Locazur utilise un SGBDR (Système de
Gestion de Base de Données Relationnelles).
• Toutefois elle rencontre certaines difficultés
dans l'utilisation de cette base de données.
3
DOSSIER G10
Activité 1 – Organiser
une base de données relationnelles
4
La base de données relationnelle
Modèle Relationnel des Données
Immatriculation
Table 1 : VEHICULES (Modele, Marque, DateAcquisition, KmCompteur, Immatriculation)
Clé primaire :
Clé étrangère :
Table 2 : CATEGORIE (CodeCategorie, NomCategorie, Prixjourlocation)
Clé primaire :
CodeCategorie
Clé étrangère :
Table 3 : CONTRAT (NumeroContrat, DateContrat, Nbjourslocation, CodeClient)
Clé primaire :
NumeroContrat
Clé étrangère :
CodeClient en référence à CodeClient de CLIENT
La Table
"VEHICULES"
n'a pas de clé
primaire.
Table 4 : CLIENT (CodeClient, Nom, Adresse, Telephone)
Clé primaire :
CodeClient
Clé étrangère :
01. Quel champ de la table
"VEHICULE" peut
convenir pour être
la clé primaire ?
• L'attribut Immatriculation peut convenir comme clé
primaire, car il est unique (deux véhicules ne peuvent pas
avoir la même immatriculation).
5
La base de données relationnelle
Un extrait des tables vous est proposé ci-dessous :
Un tuple (ou enregistrement)
correspond à l'ensemble des
valeurs d'une ligne de la table.
02. Donnez des exemples
de tuple de la table
"VEHICULES".
• Le véhicule :
6
La base de données relationnelle
Un extrait des tables vous est proposé ci-dessous :
10 Tuples
(10 lignes d'enregistrement)
Un tuple (ou enregistrement)
correspond à l'ensemble des
valeurs d'une ligne de la table.
03. Combien y a-t-il de tuple
dans cet extrait de table ?
• Il y a dans cet extrait de table :
7
La base de données relationnelle
Modèle Relationnel des Données
Table 1 : VEHICULES (Modele, Marque, DateAcquisition, KmCompteur, Immatriculation)
Clé primaire :
Clé étrangère :
Table 2 : CATEGORIE (CodeCategorie, NomCategorie, Prixjourlocation)
Clé primaire :
CodeCategorie
Clé étrangère :
Table 3 : CONTRAT (NumeroContrat, DateContrat, Nbjourslocation, CodeClient)
Clé primaire :
NumeroContrat
Clé étrangère :
CodeClient en référence à CodeClient de CLIENT
Table 4 : CLIENT (CodeClient, Nom, Adresse, Telephone)
Clé primaire :
CodeClient
Clé étrangère :
04. Pourquoi le champ
"Adresse" de la table
"CLIENT" n'est pas
bien structuré ?
• Car l'adresse doit être décomposée en 3 attributs
(champs) :
• la rue, la ville et le code postal.
8
La base de données relationnelle Un contrat
ne concerne
qu'un seul véhicule
Table 1 : VEHICULES (Modele, Marque, DateAcquisition, KmCompteur, Immatriculation)
Immatriculation
Clé primaire :
Immatriculation
et que ce dernier
Clé étrangère :
ne peut appartenir
Table 2 : CATEGORIE (CodeCategorie, NomCategorie, Prixjourlocation)
qu'à une seul
Clé primaire :
CodeCategorie
catégorie.
Clé étrangère :
Modèle Relationnel des Données
Table 3 : CONTRAT (NumeroContrat, DateContrat, Nbjourslocation, CodeClient)
Clé primaire :
NumeroContrat
Clé étrangère :
CodeClient en référence à CodeClient de CLIENT
Table 4 : CLIENT (CodeClient, Nom, Adresse, Telephone)
Clé primaire :
CodeClient
Clé étrangère :
05. Quels champs est-il
nécessaire d'ajouter
afin de réaliser les liens
entres les tables ?
Entre CONTRAT et VEHICULES :
Dans la table CONTRAT il faut ajouter
le champ Immatriculation
(Un contrat dépend fonctionnellement d'un véhicule).
9
La base de données relationnelle Un contrat
Modèle Relationnel des Données
Table 1 : VEHICULES (Modele, Marque, DateAcquisition, KmCompteur, Immatriculation)
Clé primaire :
Immatriculation
Clé étrangère :
CodeCatégorie
Table 2 : CATEGORIE (CodeCategorie, NomCategorie, Prixjourlocation)
Clé primaire :
CodeCategorie
Clé étrangère :
ne concerne
qu'un seul véhicule
et que ce dernier
ne peut appartenir
qu'à une seul
catégorie.
Table 3 : CONTRAT (NumeroContrat, DateContrat, Nbjourslocation, CodeClient, Immatriculation)
Clé primaire :
NumeroContrat
Clé étrangère :
CodeClient en référence à CodeClient de CLIENT
Immatriculation en référence à Immatriculation de VEHICULES
Table 4 : CLIENT (CodeClient, Nom, Adresse, Telephone)
Clé primaire :
CodeClient
Clé étrangère :
05. Quels champs est-il
nécessaire d'ajouter
afin de réaliser les liens
entres les tables ?
Entre VEHICULES et CATEGORIE :
Dans la table VEHICULES il faut ajouter
le champ CodeCatégorie
(Un véhicule dépend fonctionnellement d'une catégorie).
10
La base de données relationnelle
Modèle Relationnel des Données
En essayant de lier les tables
"CONTRAT" et "CLIENT"
à l'aide du champ commun
"CodeClient" le message suivant
Table 2 : CATEGORIE (CodeCategorie, NomCategorie, Prixjourlocation)
Clé primaire :
CodeCategorie
est apparu à l'écran.
Clé étrangère :
Table 1 : VEHICULES (Modele, Marque, DateAcquisition, KmCompteur, Immatriculation, CodeCatégorie)
Clé primaire :
Immatriculation
Clé étrangère :
CodeCatégorie en référence à CodeCatégorie de CATEGORIE
Table 3 : CONTRAT (NumeroContrat, DateContrat, Nbjourslocation, CodeClient, Immatriculation)
Clé primaire :
NumeroContrat
Clé étrangère :
CodeClient en référence à CodeClient de CLIENT
Immatriculation en référence à Immatriculation de VEHICULES
Table 4 : CLIENT (CodeClient, Nom, Adresse, Telephone)
Clé primaire :
CodeClient
Clé étrangère :
06. Justifiez ce message
d'erreur et proposez une
modification
dans la table "CONTRAT"
afin de permettre le lien
entre cette table
et la table "CLIENT".
Le champ CodeClient est en format Texte dans la table
CLIENT et en format Numérique dans la table CONTRAT.
Pour être liés, les champs doivent avoir le même format.
11
DOSSIER G10
Activité 2 – Les règles d'intégrité
d'une base de données
12
Les contraintes d’intégrité
Une fois le modèle relationnel établi, la base de données traduisant
l’ensemble des relations est implantée dans un SGBDR.
Le modèle relationnel permet de déterminer les champs de chaque
table.
Les tables sont alors complétées par l’ensemble des valeurs de
chaque enregistrement.
Afin d’éviter certaines erreurs lors de la saisie des
enregistrements, les SGBDR contrôlent la cohérence de l’ensemble
des valeurs prises en vérifiant les trois contraintes d’intégrité
suivantes :
- la contrainte d’intégrité de domaine ;
- la contrainte d’intégrité de table (ou de relation) ;
- la contrainte d’intégrité référentielle.
13
La base de données relationnelle
La structure de la table est la suivante Vous
:
décidez de créer une nouvelle
Table 1 : VEHICULES (Modele, Marque, DateAcquisition, KmCompteur, Immatriculation, CodeCatégorie)
catégorie en saisissant dans la table
Clé primaire :
Immatriculation
"CATEGORIE"
les éléments suivants :
Clé étrangère :
CodeCatégorie en référence à CodeCatégorie
de CATEGORIE
CodeCategorie : 4
Table 2 : CATEGORIE (CodeCategorie, NomCategorie, Prixjourlocation)
Clé primaire :
CodeCategorie
NomCategorie : Old Cars
Clé étrangère :
Prixjourlocation : 990 euros
Table 3 : CONTRAT (NumeroContrat, DateContrat, Nbjourslocation, CodeClient, Immatriculation)
Lorsque vous saisissez le prix par jour
Clé primaire :
NumeroContrat
(990 euros) le message suivant
Clé étrangère :
CodeClient en référence à CodeClient de CLIENT
Immatriculation en référence à Immatriculation
de VEHICULES
apparaît.
Table 4 : CLIENT (CodeClient, Nom, Adresse, Telephone)
Clé primaire :
CodeClient
Clé étrangère :
07. Justifiez ce message
d'erreur. Quelle valeur doit
être saisie dans l'attribut
"Prixjourlocation" ?
Le format du champ Prixjourlocation est numérique,
il ne peut accepter une saisie de format texte comme :
990 euros.
14
La contrainte d’intégrité de domaine
Si la valeur saisie n’est pas compatible avec le type de données
du champ (numérique, texte, monétaire, date, logique),
l’intégrité de domaine n’est pas respectée.
Un message d’erreur apparaît.
Exemple :
C'est le cas ici, dans la table CATEGORIE, le champ
Prixjourlocation et de type monétaire.
Si la valeur saisie par mégarde est de type texte
(le nom de la catégorie par exemple), la contrainte d’intégrité
de domaine n’est pas respectée.
Retour vers les liens
15
La base de données relationnelle
Laclient
structure
de la
tabledeest
la suivante
: véhicule (immatriculation :
Le
Maupart
décide
louer
un deuxième
Table 1 : VEHICULES (Modele, Marque, DateAcquisition, KmCompteur, Immatriculation, CodeCatégorie)
986AZS06)
leImmatriculation
17/09/2008 pour une durée de 3 jours. Vous décidez d'ajouter
Clé primaire :
ce
au contrat
n°à162
en saisissant
de la façon suivante dans
Clénouveau
étrangère : véhicule
CodeCatégorie
en référence
CodeCatégorie
de CATEGORIE
la table "CONTRAT" :
Table 2 : CATEGORIE (CodeCategorie, NomCategorie, Prixjourlocation)
Clé primaire :
CodeCategorie
Clé étrangère :
Table 3 : CONTRAT (NumeroContrat, DateContrat, Nbjourslocation, CodeClient, Immatriculation)
Clé primaire :
NumeroContrat
Clé étrangère :
CodeClient en référence à CodeClient de CLIENT
Immatriculation en référence à Immatriculation de VEHICULES
Table 4 : CLIENT (CodeClient, Nom, Adresse, Telephone)
Clé primaire :
CodeClient
Clé étrangère :
08. Justifiez ce message
d'erreur.
La clé primaire de CONTRAT est le numéro du contrat,
on ne peut donc pas avoir deux tuples (enregistrements)
de la table CONTRAT avec le même numéro de contrat.
16
La contrainte d’intégrité de table
(ou de relation)
Si la valeur de la clé primaire n’est pas saisie ou s’il s’agit
d’une valeur déjà existante, la contrainte d’intégrité de table
(ou de relation) n’est pas respectée.
Un message d’erreur apparaît.
Exemple :
Dans cet exemple, lors de la saisie d’un enregistrement dans
la table CONTRAT, le numéro de contrat 162 (clé primaire),
existe déjà, l’enregistrement ne pourra être validé.
Retour vers les liens
17
La base de données relationnelle
La structure de la table est la suivante :
Vous devez saisir un nouveau contrat en
Table 1 : VEHICULES (Modele, Marque, DateAcquisition, KmCompteur,
Immatriculation,
CodeCatégorie)
fonction
des éléments
suivants :
Clé primaire :
Immatriculation
Code contrat : 164
Clé étrangère :
CodeCatégorie en référence à CodeCatégorie de CATEGORIE
Date du contrat : 18/09/2009
Nombre de jours de location : 3
Table 2 : CATEGORIE (CodeCategorie, NomCategorie, Prixjourlocation)
Clé primaire :
CodeCategorie
Code client : 63 (il s'agit d'un nouveau client)
Clé étrangère :
Immatriculation : 158AZS06
Table 3 : CONTRAT (NumeroContrat, DateContrat, Nbjourslocation, CodeClient, Immatriculation)
Clé primaire :
NumeroContrat
Clé étrangère :
CodeClient en référence à CodeClient de CLIENT
Immatriculation en référence à Immatriculation de VEHICULES
Table 4 : CLIENT (CodeClient, Nom, Adresse, Telephone)
Clé primaire :
CodeClient
Clé étrangère :
Lors de la saisie dans la table "CONTRAT",
le message suivant apparaît à l'écran :
09. Justifiez ce message
d'erreur. Quelle saisie
préalable faut-il réaliser
pour enregistrer le contrat
du nouveau client ?
Dans la table "CONTRAT", l'attribut CodeClient est clé
étrangère. Il permet de faire le lien entre les tables
"CLIENT" et "CONTRAT".
La valeur "63" n'apparaît pas dans la table "CLIENT", par18
conséquent elle ne peut être acceptée dans la table "CONTRAT".
La contrainte d’intégrité référentielle
Si la valeur saisie pour un champ clé étrangère d’une table
ne fait pas partie des valeurs du même champ clé primaire
d’une autre table, la contrainte d’intégrité de référence
n’est pas respectée.
Un message d’erreur apparaît.
Les contraintes d’intégrité de domaine et de table s’appliquent
automatiquement.
La contrainte d’intégrité référentielle doit être définie lors
de la création des liens entre les tables.
Exemple :
Dans la table CONTRAT, lors de l’enregistrement d’un nouveau
contrat, numéro 164, la valeur saisie pour le code client est
« 63 ».
Or ce code client n’existe pas dans la table CLIENT
où le champ CodeClient est défini comme clé primaire.
La contrainte d’intégrité référentielle n’est pas respectée.
19
Retour vers les
liens
DOSSIER G10
Activité 3 – Exploiter la base de données
(les Opérateurs Relationnels)
20
Les opérateurs relationnels
Après modification le modèle relationnel se présente ainsi :
Modèle Relationnel des Données
Table 1 : VEHICULES (Modele, Marque, DateAcquisition, KmCompteur, Immatriculation, CodeCatégorie)
Clé primaire :
Immatriculation
Clé étrangère :
CodeCatégorie en référence à CodeCatégorie de CATEGORIE
Table 2 : CATEGORIE (CodeCategorie, NomCategorie, Prixjourlocation)
Clé primaire :
CodeCategorie
Clé étrangère :
Table 3 : CONTRAT (NumeroContrat, DateContrat, Nbjourslocation, CodeClient, Immatriculation)
Clé primaire :
NumeroContrat
Clé étrangère :
CodeClient en référence à CodeClient de CLIENT
Immatriculation en référence à Immatriculation de VEHICULES
Table 4 : CLIENT (CodeClient, Nom, Adresse, Telephone)
Clé primaire :
CodeClient
Clé étrangère :
LocAzur désirerait réaliser des traitements sur sa base de données
afin d'extraire certaines informations.
- obtenir le nom de tous les clients ;
- les immatriculations des véhicules qui ont plus
de 10 000 km au compteur ;
- les immatriculations des véhicules de la catégorie
"Prestige".
21
Les opérateurs relationnels
Modèle Relationnel des Données
Table 1 : VEHICULES (Modele, Marque, DateAcquisition, KmCompteur, Immatriculation, CodeCatégorie)
Clé primaire :
Immatriculation
Clé étrangère :
CodeCatégorie en référence
à CodeCatégorie
de CATEGORIE
Les
opérateurs relationnels
sont :
Projection
-La projection : sélectionner certaines colonnes d'une table ;
Table 2 : CATEGORIE (CodeCategorie, NomCategorie, Prixjourlocation)
-La restriction : sélectionner certaines valeurs d'une table ;
Clé primaire :
CodeCategorie
-La jointure : lier deux tables par un champ commun.
Clé étrangère :
Table 3 : CONTRAT (NumeroContrat, DateContrat, Nbjourslocation, CodeClient, Immatriculation)
Clé primaire :
NumeroContrat
Clé étrangère :
CodeClient en référence à CodeClient de CLIENT
Immatriculation en référence à Immatriculation de VEHICULES
CLIENT
Nom
Table 4 : CLIENT (CodeClient, Nom, Adresse, Telephone)
Clé primaire :
CodeClient
Clé étrangère :
LocAzur désirerait réaliser ce traitement sur sa base de données
afin d'extraire certaines informations.
Traitement : obtenir le nom de tous les clients
Champ(s) à afficher
Table(s) à utiliser
Opérateur(s) relationnel(s) à utiliser
22
Les opérateurs relationnels
Modèle Relationnel des Données
VEHICULES
Immatriculation
Table 1 : VEHICULES (Modele, Marque, DateAcquisition, KmCompteur, Immatriculation, CodeCatégorie)
Clé primaire :
Immatriculation
Clé étrangère :
CodeCatégorie en référence
à CodeCatégorie
de CATEGORIE
Les
opérateurs relationnels
sont :
Projection
Restriction
-La projection : sélectionner certaines colonnes d'une table ;
Table 2 : CATEGORIE (CodeCategorie, NomCategorie, Prixjourlocation)
-La restriction : sélectionner certaines valeurs d'une table ;
Clé primaire :
CodeCategorie
-La jointure : lier deux tables par un champ commun.
Clé étrangère :
Table 3 : CONTRAT (NumeroContrat, DateContrat, Nbjourslocation, CodeClient, Immatriculation)
Clé primaire :
NumeroContrat
Clé étrangère :
CodeClient en référence à CodeClient de CLIENT
Immatriculation en référence à Immatriculation de VEHICULES
Table 4 : CLIENT (CodeClient, Nom, Adresse, Telephone)
Clé primaire :
CodeClient
Clé étrangère :
LocAzur désirerait réaliser ce traitement sur sa base de données
afin d'extraire certaines informations.
Traitement : les immatriculations des véhicules qui ont plus de 10 000 km
Champ(s) à afficher
Table(s) à utiliser
Opérateur(s) relationnel(s) à utiliser
23
Les opérateurs relationnels
Modèle Relationnel des Données
VEHICULES
Immatriculation
Table 1 : VEHICULES (Modele, Marque, DateAcquisition, KmCompteur, Immatriculation, CodeCatégorie)
Clé primaire :
Immatriculation
Clé étrangère :
CodeCatégorie en référence
à CodeCatégorie
de CATEGORIE
Les
opérateurs relationnels
sont :
CATEGORIES
Projection
Restriction
Jointure
-La projection : sélectionner certaines colonnes d'une table ;
Table 2 : CATEGORIE (CodeCategorie, NomCategorie, Prixjourlocation)
-La restriction : sélectionner certaines valeurs d'une table ;
Clé primaire :
CodeCategorie
-La jointure : lier deux tables par un champ commun.
Clé étrangère :
Table 3 : CONTRAT (NumeroContrat, DateContrat, Nbjourslocation, CodeClient, Immatriculation)
Clé primaire :
NumeroContrat
Clé étrangère :
CodeClient en référence à CodeClient de CLIENT
Immatriculation en référence à Immatriculation de VEHICULES
Table 4 : CLIENT (CodeClient, Nom, Adresse, Telephone)
Clé primaire :
CodeClient
Clé étrangère :
LocAzur désirerait réaliser ce traitement sur sa base de données
afin d'extraire certaines informations.
Traitement : les immatriculations des véhicules de la catégorie "Prestige"
Champ(s) à afficher
Table(s) à utiliser
Opérateur(s) relationnel(s) à utiliser
24
DOSSIER G10
Schéma conceptuel
25
Schéma conceptuel
Table
Table
Table
PROJECTION
Clés primaires et étrangères
RESTRICTION
JOINTURE
une(des) clé(s) étrangère(s)
Intégrité de relation
Intégrité de domaine
26
Première STG
Gestion
Diaporama adapté et automatisé
par M. Grard (enseignant)
Sources :
•Éditions Hachette Livre
Retour vers les liens
27
Téléchargement