Académique Documents
Professionnel Documents
Culture Documents
2019
COURS ET EXERCICES
CORRIGES SUR L'ALGEBRE
RELATIONNELLE ET LE SQL
I- Concepts de bases
a- Un attribut: Encore appelé rubrique ou colonne c'est une propriété ou un
renseignement. On dit encore c'est un élément d'une connaissance
levant toute ambiguïté. Exemple: Matricule.
b- Un enregistrement: Encore appelé Tuple est un ensemble de valeurs
relatif à un ou plusieurs attributs. On dit encore c'est une ligne d'un
tableau. Exemple:
Attributs
- Les progrès technologiques qui ont permis de stocker des masses de données
plus grandes;
- Les besoins des entreprises nécessitant dans leur organisation une
connaissance de plus en plus fine de leurs activités.
Un SGBD est un logiciel permettant d'organiser des données sur les périphériques et
qui fournit des procédures de sélection et de recherche de ces mêmes données. En un
mot un SGBD est un logiciel permettant à l'utilisateur d'interagir avec une Base de
Données. On dite généralement que c'est le logiciel permettant la gestion d'une Base
de Données. SGBD signifie Système de Gestion de Base de Données.
Les objectifs d'un SGBD sont nombreux mais l'on peut citer entre autres:
I- Introduction
Pour décrire de manière complète les systèmes d'informations, l'on a élaboré des
modèles.
II- Définition
A- Le modèle Entité/Association
Il est construit autour de concepts utilisés dans la méthode Merise. Il permet d'obtenir
une structuration efficace des données indépendamment des traitements. L'intérêt de
cette approche se situe à plusieurs niveaux. Ce modèle est naturel et facile à
comprendre. Il permet également d'obtenir sans manipuler les données des résultats
de synthèse. Il permet pour finir une représentation graphique claire des résultats. Les
concepts de base de modèle sont Entité, Association, Propriété auxquelles s'ajoutent
les cardinalités, identifiant ou clé d'entité. Exemple:
ETUDIANT FILIERE
Matricule Codfil
(1, 1) ETRE (1, N)
Nom Libellé
B- Le modèle Relationnel
Ce modèle est basé sur les relations et comporte des outils puissants de
conceptualisation et est orienté Système de Gestion de Base de Données Relationnel
ou DBMS (DataBase Management System). Les concepts de ce modèle sont:
Pour passer du MCD au MLD, l'on applique les Règles de passage suivantes:
Règle N°1: A chaque Entité, est associé un schéma de relation composé de tous les
attributs de l'entité;
Règle N°2: Si dans une association A, il existe une entité E pour laquelle la cardinalité
du couple (E, A) est égale à (0, 1) ou (1, 1), on ajoute dans le schéma de la relation (R)
qui traduit E une clé de chacune des autres entités participant à l'association. Cette
clé est suivie ou précédée du signe dièse (#)
Règle N°3: Si dans une association A, il n'existe pas d'entité E pour laquelle la
cardinalité du couple (E, A) est égale à (0, 1) ou (1, 1), on crée un nouveau schéma de
relation (R) contenant une clé de chaque entité participant à l'association ainsi que
tous les attributs de l'association si elle en contient.
NB: Toutes ces trois (3) règles s'appliquent de façon simultanée ou ensemble.
Restaurateur Produit
CodR Refprdt
NomR Libellé
(1, N)
(0, N)
PASSER
CONCERNE
R
Commande
(1, 1) (1, N) Qtécmde
Num_cde
Voici la résolution
Client Contrat
Numclt Codcontrat
Signer
(1, N) (1, 1)
Nomclt Objet
Datcontrat
(1, N)
Déterminer
Matricule Codquaf
Nomemp Libellé
Salaire
(1, N) (1, N)
Réajuster
II- Définition
On note A B
(Source) (But)
Mais la réciproque n’est pas vrai (si on connaît B, on ne peut pas en déduire A).
Il existe une DF entre num client et Nom client, car si on connaît une valeur de la
propriété num client. (Exemple : 23A2), il ne peut lui correspondre qu’une seule valeur
de la propriété nom (ex : Digbeu).
III- Terminologie
Exemple : Num Commande + Num Client date commande n’est pas une DF
élémentaire car on n’a pas besoin du numéro de client pour connaître la date de
commande, il suffit de connaître le numéro de la commande. La propriété Num Client
ne sert à rien dans cette DF.
- Transitivité :
Si A B et B C alors on a A C
Les DF qui peuvent être déduites par transitivité de deux autres DF (qui ne sont pas
directes) doivent être éliminées car elles sont alors redondantes.
Il ne reste alors que les DF directes, c'est-à-dire celles qui ne peuvent pas être
retrouvées par transitivité. Attention toutefois à la signification des dépendances. Une
dépendance fonctionnelle qu'on peut retrouver par transitivité ne doit pas être
supprimée si elle n'a pas le même sens que la transitivité des deux autres, car il y
aurait perte d'information.
Il existe trois (3) formes normales et elles ont pour objectifs de permettre la
décomposition des relations sans prendre d'informations à partir des notions des
dépendances fonctionnelles (DF)
Une relation est en 1FN si tout attribut contient une valeur atomique ou encore si tous
ces attributs sont élémentaires. On dit encore qu'une relation est en 1FN si:
- Elle possède une clé identifiant de manière unique et stable chaque ligne
- Chaque attribut est monovalué (ne peut avoir qu’une seule valeur par ligne)
Adresse (Rue, Ville). Donc la relation 'Etudiant' n'est pas en 1FN à cause de l'attribut
Adresse qui n'est pas élémentaire. Pour mettre 'Etudiant' en 1FN, il suffit de remplacer
Adresse par sa valeur dans 'Etudiant' ce qui donnerait:
Etudiant (CodE, Nom, Prenom, Rue, Ville) et dans ce cas 'Etudiant' est en 1FN.
Autrement dit, aucun des attributs ne dépend que d’une partie de la clé.
NB: La 2FN n'est à vérifier que pour les relations ayant une clé composée. Une
relation en 1FN n'ayant qu'un seul attribut clé est toujours en 2FN
Exemple:
Autrement dit, aucun attribut ne doit dépendre d’un autre attribut non clé.
Cette relation n’est pas en première forme normale. On dit généralement que la 3FN
sert à éliminer les transitivités.
Cette relation n’est pas en 3FN car Num_client nom_categ n’est pas une
dépendance directe. En effet, on a aussi Num_client et num_categ et nom_categ
NB: Si l’une des 3 règles n’est pas vérifiée, cela indique une erreur dans le modèle
relationnel et il faut alors modifier pour que les 3 règles soient vérifiées pour toutes
les relations. On vérifie les règles dans l’ordre. Si la première forme normale n’est pas
respectée, pas la peine de vérifier la 2FN. Et si la 2FN n’est pas vérifiée, inutile de
vérifier la 3FN. Il existe d’autres formes normales mais on admet couramment que ces
3 premières formes.
Résumé
CLASSE
Niveau, Section
Âge
Prise charge
Matière
Résolution de l'application 1
Le MLD issu de l'entité classe est: CLASSE (Niveau, Section, Âge, prise charge,
Matière). Or l'âge d'accès dépend du niveau ce engendre la DF: Niveau âge.
La relation CLASSE qui a une clé primaire concaténée (Niveau, Section) n'est pas en
2.FN car l'attribut âge ne dépend de toute la clé mais d'une partie de la clé. En
appliquant les règles de normalisation et de décomposition, l'on obtient:
Niveau âge;
SECTION NIVEAU
(1, N) (1, N)
Section CLASSE Niveau
Prise charge Âge
Matière
SECTION (Section)
Résolution
1- Le MLD est à la 1FN mais n'est pas en 2FN à cause de la DF issue de la relation
Concerner qui est CodR, Codcmde, Refprdt Qtécmde. Cette dépendance n'est
pas valable car la quantité commandée ne peut pas dépendre ou être fonction du
CodR ce qui signifie que la quantité commandée dépend d'une partie de la clé et non
de toute la clé. La quantité commandée dépend à la fois du produit et de la commande
ce qui engendre la dépendance suivante: Codcmde, Refprdt Qtécmde.
Produit
Restaurateur
Refprdt
CodR
Désignation
NomR
Dat péremption
Tel
Prix
(1, N) (1, N)
Commande
Passer
Codcmde
Concerner
Datcmde
(1, 1) Qtécmde
Libellé
(1, N)
Application 3
Soit Personnel (CodP, Nom, Salaire, Département, Bâtiment). Sachant qu'un personnel
appartient à un département donné et qu'un département ne peut avoir de locaux dans
plusieurs bâtiments:
Résolution
CodP Nom, Salaire, Département, Bâtiment (car CodP est la clé primaire)
Département
Personnel
Département
CodP (1, 1) (1, N)
Appartenir Bâtiment
Nom
Salaire
A- Définition
L'algèbre relationnelle est une collection d'opérations qui manipulent les relations
d'une Base de données. Elle est basée sur une organisation des données sous formes
de tables ou de relations. La manipulation des données se fait selon le concept
mathématique de relation de la théorie des ensembles. L'expression des besoins
utilisateurs se fait à l'aide d'opérateurs dont les opérandes sont des relations.
B- Les Opérateurs
L'union de deux (2) relations ou tables R et S est une relation T contenant l'ensemble
des tuples ou enregistrements appartenant à R ou à S ou aux deux. Les 2 relations ont
le même schéma (le même nombre d'attributs). On note:
Exemple
3 Z 1
Stock d'Abidjan (S)
5 H 12
Refprdt Libellé Prix
5 H 12 10 B 6
10 B 6
7 W 10 7 W 10
b- L'intersection
Exemple:
Matr Nom
1 A
2 Z
3 I T= Intersection (R, S)
S Matr Nom
Matr Nom
10 B
2 Z
2 Z
7 W
c- La différence
T= R-S= Différence(R, S) (donne ceux qui sont en IDA mais pas en RHCOM)
Matr Nom
1 A
3 I
d- Le produit cartésien
Exemple
Refprdt Libellé
1 Lait
2 Beurre
3 Bonbon
T= Client*Produit
e- La division
C'est la table ou relation contenant l'ensemble des tuples qui concaténés à chaque
tuple de l'une des tables fournies des tuples appartenant à l'autre.
a- La Projection
C'est un opérateur unaire ou de base de l'algèbre relationnelle. C'est une opération qui
consiste à éliminer des lignes (tuples ou enregistrements) ou des colonnes (attributs)
d'une ou plusieurs tables. On dit encore c'est une opération qui consiste à créer une
table ou relation à partir d'une autre en ne gardant que les colonnes spécifiées. On
note: R = Projection (R1; liste des attributs) ou R=Project (R1;Attribut);
R0= Etudiant;
R1= Projection (R0; Nom, Prenom); (Affiche ou donne uniquement que les noms et
prénoms des étudiants). On ne tient pas compte du Numéro, sexe, filière et âge de
l'étudiant.
b- La Sélection ou Restriction
C'est aussi un opérateur unaire. La sélection d'une relation R par une qualification Q
est une relation R' de même schéma dont les tuples sont ceux de R satisfaisant à la
qualification Q. On dit encore c'est une opération qui consiste à créer une table ou
relation à partir d'une autre en ne gardant que les lignes ou tuples pour lesquels une
colonne ou attribut vérifie certaines propriétés ou caractéristiques. On note:
Q est la condition est exprimée à l’aide des opérateurs mathématiques tels que =, >, <,
>=, <=, <> ou des opérateurs de logique de base ET, OU, NON.
R0=Etudiant;
2- Liste des numéros et Filière des étudiants dont l'âge varie entre 18 et 25 ans
c- La jointure
T= R * S [Q] ou T= R S [Q]
Exemple:
Les agrégats consistent dans un premier temps, à regrouper les tuples d’une relation
en fonction des valeurs d’un premier attribut, puis à appliquer une fonction de calcul
sur les valeurs d’un deuxième attribut des uplets regroupés.
b- La fonction de « comptage »
Elle donne le nombre de tuples (dénombrement) d’un ou de plusieurs groupes de
tuples. Syntaxe : R = Comptage (R1; attribut de dénombrement) ou
C- La fonction « calculer »
Les calculs et /ou comptage portent sur la relation R1. R2 ne comportera qu’une ligne
avec autant de colonnes.
d- La fonction « Trier »
Exercice 1
T.A.F :
1- Reconstruire le MCD
Correction
R0=Entreprise*Personne [N°ent=N°ent]
b- Donner la liste des noms des entreprises qui ont versé un montant taxe de
500000 F.
c- Donner la liste des noms des personnes relancées depuis le 18/03/2016 ayant
donné un avis favorable à la demande taxe A024
Exo N°2
3 –Quels sont les noms des hôtels de catégorie 2 étoiles de Méribel qui sont complets
la semaine du 01/01/2018 au 08/01/2018
I- Définition
b- L'opérateur (distinct)
Permet d'éliminer les doublons (répétitions) d'une ou plusieurs table(s).
Sa syntaxe est: Select Distinct… from… Where..;
Exemple: Select distinct from Commande;
c- L'opérateur As ()
Signifie Alias et permet de renommer temporairement un attribut d'une table ou
requête ou même d'une table. Il permet de donner un nom à de nouvelles colonnes
créées par la requête. Syntaxe: Select distinct champ AS champ from table;
d- L'opérateur In ()
Cet opérateur permet de faire un choix c'est-à-dire permet de vérifier si un attribut est
égal à une des valeurs déterminées. C'est une méthode simple pour vérifier si une
colonne (attribut) est égale à une valeur ou une autre valeur. Sa syntaxe est:
Select… from… Where… in (valeur 1,…, Valeur n);
Exemple: Employé (Numemp, nom, prénom, salaire, statut)
Quelle est la liste des noms, prénoms et salaire des employés qui sont soient
directeur ou soient ingénieur.
Select nom, prénom, salaire from Employé Where statut in ('Directeur', 'Ingénieur');
Son contraire est Not In. Exemple: Select nom from Employé Where statut Not in
('Directeur', 'Ingénieur'); (affiche tous les employés saufs les directeurs et les
ingénieurs).
Exemple
Qui sont les clients (Nom et prénom) qui ont faits des achats le 21/12/2018 ou le
28/12/2018?
f- L'opérateur Between
Permet de choisir une valeur dans un intervalle. On dit que cet opérateur indique la
valeur comprise entre deux (2) valeurs. Syntaxe: Select… from…Where…. Between
valeur 1 and valeur n;
Trouver la référence et libellé des produits dont le prix varie entre 100 et 200F CFA
Select Refprdt, Désignation from produit Where Prix Between 100 and 200;
g- L'opérateur Like
Il s'utilise dans la clause Where et permet de faire une recherche sur un modèle
particulier. Syntaxe: Select…from…Where… Like modèle;
Select * from Produit Where Désignation Like '% A'; (Tous les produits dont la
désignation se termine par un A).
Select * from Produit where Désignation Like ' A%'; (Commençant par un A).
Select * from Produit where Désignation Like '% A%'; (Qui utilisent un A).
Indique si une valeur est non définie ou inconnue. C'est en réalité un opérateur de
comparaison. Syntaxe: Select… from… where… is Null; ou encore Select… from…
where… is not null; Exemple: Client (Numclt, Nom, Prénom, Sexe)
i- La clause Group By
Cette clause permet de regrouper plusieurs résultats et utiliser une fonction de totaux
sur un groupe de résultats. Syntaxe: Select… from…Group By (Expression);
Exemple:
Select Numclt, Sum (Montant) from Client, Facture where (Client. Numclt=Facture.
Numclt) group by Numclt; (donne la somme totale versée par chaque client)
j- La clause Having
Similaire au where à la seule différence que le Having permet de filtrer en utilisant des
fonctions Sum, Count, Avg, Min, Max. Syntaxe: Select attribut 1, fonction (attribut 2)
from… group by attribut 1 Having fonction (attribut 2) opérateur de valeur;
Exemple
Liste des noms des clients ayant un total supérieur à 40000 FCFA
Select Nom, Sum (Montant) from Client, Facture where (Client. Numclt= Facture.
Numclt) Group by Nom Having Sum (Montant) > 40000;
k- La clause Order By
Exemple: Select Nom from Client Order By Nom Asc; (affiche uniquement que les
noms des clients par ordre alphabétique).
l- L'opérateur Union
Select…from…Where…;
Union
m- L'opérateur Intersect
Select…from…Where…;
Intersect
Select…from…Where…;
Permet de récupérer les enregistrements de la 1ère requête sans inclure ceux de 2nde
Select…from…Where…;
Minus
Select…from…Where…;
Permet d'insérer des données dans une table ou relation. Sa syntaxe est:
Ou
Insert Into Nom Table (Colonne1,…, Colonne n) values ('valeur 1',…,'valeur n');
Exemple: Insert Into Etudiant (Matricule, nom, sexe) values ('A12', 'Toure', 'F'); (insère
les valeurs A12, Toure et F dans la table Etudiant
p- L'opérateur Update
Permet d'effectuer des modifications ou mises-à-jour sur les données existantes d'une
table. Sa syntaxe est:
Where…;
Update Facture
Set Montant=Montant+20%*Montant;
Update Facture
Where Codfact='A12';
q- L'opérateur Delete
Alter Table Commande ADD montant Varchar; ce qui donne Commande (Codcmde,
libellé, datcmde, montant)
Permet de créer une ou plusieurs tables avec les données (Int, Date, Text, CHAR,
Varchar). Cet opérateur utilise aussi le Not Null (qui impose la saisie), Primary Key (clé
primaire), Foreign Key (clé secondaire), etc. Exemple:
Nom Varchar,
Prénom Varchar,
Sexe Varchar);
Libellé Varchar,
Montant Int,
Datfact Date,
Numfact
Ou
Select… from Table 1 Inner Join Table 2 Where Table 1.Id= Table 2.Id;
Encore appelée requête imbriquée, c'est une requête située à l'intérieur d'une autre. A
l'exécution c'est la sous- requête qui est d'abord exécutée et son résultat est comparé
à la condition de la requête principale. Syntaxe: Select… from… Where colonne (sous-
requête).
Sur un résultat
Select … from Nom Table 1 Where colonne= (Select…from Nom Table 2);
Select… from Nom Table 1 Where colonne In (Select… from Nom Table 2);
Nb: on peut avoir In, Not In, =, >, >=, <, <=, <>
Select * from Client Where Nom = (Select Nom from Client Where Nom='Sylla');
Exercice 1
T.A.F :
Résolution
En Algèbre relationnelle
En SQL
En Algèbre Relationnelle
En SQL
Select Numstat, count (Numch) from Station, Réservation, Hôtel Where (Station.
Numstat= Réservation. Numstat) and (Hôtel. Codhot= Réservation. Codhot) and
(Datdebut=#22/12/1998#) and (région='Bafing');
3 –Quels sont les noms des hôtels de catégorie 2 étoiles de Méribel qui sont complets
la semaine du 01/01/2018 au 08/01/2018
En Algèbre Relationnelle
En Algèbre Relationnelle
R0= Chambre
En SQL
Il permet de choisir et ouvrir une base de données récente si celle-ci fait partie de la
liste des raccourcis affichées à droite de l’écran ou d’ouvrir (ou bien créer) une base
de données grâce au « bouton office » dans le coin gauche en haut.
Le menu Accueil
Le menu Créer
Le menu Données externes
Le menu Outils de bases de données
Le menu Créer
Il y a six types d’objets qui permettent de créer et de manipuler des bases de données
Access : tables, formulaires, états, requêtes, macros, modules (ces trois derniers sont
contenus dans la barre Autre).
Le volet de navigation permet par exemple d'ouvrir les composants d'une base de
données (appelés objets dans Access), pour les traiter ou pour y apporter des
modifications. Pour savoir rapidement ce que vous pouvez faire avec un objet, il suffit
de cliquer dessus avec le bouton droit et de consulter le menu contextuel
correspondant.
Le volet de navigation
1- Une table
Une table est une structure qui contient des données. Elle est organisée en lignes et
colonnes. Dans la terminologie base de données, les lignes sont représentées par les
enregistrements et les colonnes par les champs.
Les données sont stockées à l’intérieur des tables. Une table peut être comparée à
une liste, qui contient des enregistrements relatifs à un domaine bien défini.
Exemple : pour la gestion des contrats, nous avons construit deux tables. Celle qui
actuellement active est la table Client.
2- Une requête
C’est la formulation d’une question à traiter et la réponse qui lui est apportée sous
forme d’un enchaînement d’opérateurs mis en œuvre sur une ou plusieurs tables.
Les requêtes constituent dans un certain sens des "questions" qu'on pose au SGBD.
Le résultat d'une requête est toujours un sous-ensemble d'une ou de plusieurs tables.
Exemple
Nous voulons connaître la liste des contrats signés par le client N°1, la requête
pourrait être:
3- Un formulaire
4- Un état
Les états encore appelés rapports sont similaires aux formulaires, à la différence près,
qu'ils sont uniquement destinés à être imprimés. Il peut également contenir des
données calculées, triées ou même groupées.
Exemple
5- Une macro
Une macro est une action ou ensemble d'actions que vous pouvez utiliser pour
automatiser des tâches, pour effectuer une action spécifique.
6- Un module
Un module est principalement une collection de déclarations, d'instructions et de
procédures stockées ensemble sous un même nom, pour organiser votre code.
Soit un module standard : module dans lequel vous pouvez placer des procédures
Sub et Function que vous souhaitez rendre accessibles aux autres procédures dans
toute votre base de données.
Soit un module de classe : module qui peut contenir la définition d'un nouvel objet.
Lorsque vous créez une instance d'une classe, vous créez un nouvel objet. Les
procédures définies dans le module deviennent les propriétés et méthodes de l'objet.
En résumé
À l'aide de Microsoft Access, vous pouvez gérer toutes vos informations à partir
d'un fichier de base de données unique. Dans ce fichier, vous pouvez utiliser les
éléments suivants :
Il s'agit de créer des tables à partir du schéma conceptuel des données suivant:
Agent Véhicule
Prénom Marque
Chaque propriété peut être définie plus précisément à l’aide d’une liste de propriétés
attachées au type de données du champ. Toutes les propriétés ne sont pas
obligatoirement renseignées. Certaines peuvent avoir de valeur par défaut.
Pour chaque champ, éventuellement, cliquez dans la colonne à droite pour préciser
les propriétés.
Voici ci-dessous le menu et l’icône qui permet de créer une table en mode création
Créez la table Agent avec ses champs dans la fenêtre qui se présente comme suit :
Pour déterminer une clé primaire à une table : sélectionner le champ proposé
Table Véhicule
2.4. Les manipulations à savoir pour utiliser une table et travailler avec ses
enregistrements
MS Access permet de créer des tables à l'aide d'un modèle de table. Il s'agit des
modèles d'éléments courants tels que les contacts, les problèmes et les tâches, les
événements, les biens.
Permet de créer une table vide. On peut définir directement les champs dans la
nouvelle table ou l'ouvrir en mode création
Ce mode permet de créer un site SharePoint et une table dans la base de données
active qui établit une liaison vers la liste nouvellement créée.
Une base de données bien est rarement composée d'une seule table, mais d'un
ensemble de tables, entre lesquelles il existe certaines relations.
La clé secondaire : c'est un champ constituant la clé primaire d'une autre table. Elle
permet de représenter un lien entre deux tables. On dit aussi clé étrangère ou bien clé
externe.
2- Les index
Un index est constitué de un ou de plusieurs champs. Il permet de trier le contenu
d'une table dans un ordre spécifique ou de trouver rapidement un enregistrement.
Les index sont des structures qui accélèrent les tris et recherches dans les tables,
ainsi que l'exécution de certaines requêtes.
Exemple:
Créer par exemple un index sur le champ Nom veut dire que le SGBD copie toutes les
valeurs existantes du champ Nom dans une liste spéciale à 2 colonnes. La deuxième
colonne contient les noms triés en ordre alphabétique, et la première contient une
référence vers l'enregistrement correspondant de la table.
Il est évident que par la suite de la création de cet index, toutes les recherches et les
tris concernant le nom de l'agent sont accélérés.
Un index peut aussi comporter plusieurs champs comme par exemple Nom et
Prénom.
NB : La clé primaire est toujours indexée à l'aide d'un index sans doublons !
Avant de commercer à créer les relations entre les tables conformément au modèle
logique des données, les tables elles-mêmes doivent d'abord être créées. Pour notre
cours, il y a deux tables : Agent et Véhicule. Nous supposons qu'elles ont déjà été
créées (chapitre 3).
Établir la relation entre les tables Agent et Véhicule. Pour se faire, faire glisser le
champ N°Agent de la table Agent vers N°Agent de la table Véhicule et relâchez.
4- Les règles d’intégrité
À chaque fois qu'une relation entre deux tables est établie, une boîte de dialogue
apparait afin de préciser les options nécessaires au type de la relation établi.
Par le simple fait d'inclure des clés étrangères dans une table, Access ne reconnaît
pas encore une relation entre les tables. Access ne sait par exemple pas
automatiquement que le champ N°Chambre de la table Réservations fait référence à la
clé primaire N°Chambre de la table Chambres. A l'aide de la fenêtre des Relations, on
peut indiquer à Access les clés étrangères et leurs clés primaires associées, et ainsi
définir les relations entre les tables.
La documentation d’Access nous dit que le fait d'établir des relations simples entre
des tables, nous facilite en outre la création de requêtes multi table. Nous allons
vérifier cette affirmation plus tard dans la partie Activités de ce TP.
Access nous offre plusieurs possibilités pour garantir à tout moment l'intégrité
référentielle des données d'une BD.
Dans notre cas, nous allons appliquer toutes les trois règles.
Terminez par la seconde relation entre les tables Clients et Réservations par le
biais des champs Numclient des deux côtés.
Appliquez les 3 règles d’intégrités.
Validez.
Pour effectuer des opérations sur les relations de la base de données, il faut au
préalable afficher les relations.
Apparaît un menu supplémentaire Création qui permet de faire des manipulations sur
les relations :
Exercice N°1
Pilote (Numpl, Nom, Prénom, Nationalité, Salaire, Sexe, âge, fonction, ville)
1- Reconstruire le Mcd
En Al R0= Pilote; R1= Sélection (R0; ville= "Bouaké); R2= Projection (R1; Numpl, Nom)
b- liste des vols des pilotes dans des avions transportant plus de 200 personnes
AL: R0= Pilote; R1= Projection (R0; Numpl, Nom, Prénom, Somme (salaire))
e- Afficher la liste des noms des pilotes partant après 8h dans des avions de plus
500 places.
En SQL: Select Nom from Avion, Pilote, Vol Where (Heurdepart > 8) and (Capacité
>500) and (Avion.Numav=Vol.Numav) and (Pilote.Numpl=Vol.Numpl);
Exo N°2
3- Quels sont les chanteurs ayant réalisé au moins un concert dans toutes les salles?
R2=R0*R1 [Salle_ID=Salle_ID]
R0=Billet; R01=Vente;
R1=PROJECTION (R0;Billet_ID)
R2=PROJECTION (R01;Billet_ID)
Exo N°3
Correction
2- les requêtes
b- R0=Produit*Posséder [Refprod=Refprod]
Exercice N°4
6- Liste des noms qui ont le même versement que Digbeu Siriki
Nom Varchar,
Sexe Varchar,
Âge Integer
Filière);
Montant Integer,
Libellé Varchar,
Datv Date,
Numfact Varchar
11- Insérer l'étudiante Yao Mariam en Gescom ayant 23 ans avec le code A12
Insert Into Etudiant values ('A12', 'Yao', 'Mariam', 'F', 22, 'Gescom');
Ou
Union
Intersect
Minus