Fiche 1 - Etudiant

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 5

Faculté des Sciences Economiques et de Gestion de Sfax

Département : Informatique
Année universitaire : 2016-2017
Unité d’enseignement : Atelier de base de données
Enseignants : Fahmi BARGUI, Makram BOUJELBENE

Fiche N°1 : Concepts d’une base de données relationnelle


Objectifs

A la fin de cette leçon vous serez capable de :

- Transformer un MCD en un MLDR brut.


- Optimiser un MLDR brut.
- Définir les commandes élémentaires du langage SQL.
- Définir les opérations élémentaires de la commande SELECT.

Transformation MCD-MLDR

Activité 1. En se basant sur les règles de transformation d’un modèle conceptuel de


données (MCD) en un modèle logique de données relationnel (MLDR) (voir Annexe 1),
déduire le MLDR brut correspondant au MCD présenté par la Figure 1.

TypeCompte

TypCpt
1,n

Est_de_type

Agence 1,1 Client


Compte
NumAg
Contenir Possèder 1,n NumCl
NomAg 0,n 1,1 NumCpt 1,1
NomCl
AdrAg SoldeCpt 0,n AdrCl
TelAg TelCl
CaAg 0,n
0,n TypeOpération 1,n
TypOp
Travailler Opération Avoir
1,n NumOrdre
MntOp NumOp NumOrd

1,1
DirectEmp 1,1
Employé
0,n 0,n 0,n DateOp Prêt
Est_Directeur NumEmp
Est_Embauché Date
NomEmp 1,1 0,n 0,n Tranche 0,n NumPret
SalBasEmp DateEmb Date Echéance MntTr NbMois
0,1 MntPret
0,n DatePret
SubordEmp
0,1 0,1 TxPret

1,1
Est_accordé
Est_Commerciale Est_Autre
ComSal
0,n 0,n
Fonction
fonct

Figure 1. MCD banque

1
Le tableau suivant décrit le dictionnaire de données du MCD banque.
Dictionnaire de données (Trié par ordre alphabétique croissant)
Colonne Description
AdrAg Adresse d’une agence.
AdrCl Adresse d’un client.
CaAg Chiffre d’affaires d’une agence.
ComSal Commission d’un employé dont la fonction est commerciale.
DateEmb Date embauche d’un employé.
DateOp Date d’une opération (ou mouvement : retrait, virement, etc.) sur un compte.
DatePret Date d’un prêt.
DirectEmp Numéro d’un employé directeur.
Echéance Date de remboursement d’une tranche d’un prêt. Note le nombre de tranche
est égale au nombre de mois de remboursement.
Fonct Fonction d’un employé.
MntOp Montant (positif pour un virement, négatif pour un retrait) d’une opération
effectuée par un employé sur un compte.
MntPret Montant d’un prêt.
MntTr Montant d’une tranche.
NbMois Nombre de mois de remboursement d’un prêt.
NomAg Nom d’une agence.
NomCl Nom d’un client.
NomEmp Nom d’un employé.
NumAg Numéro d’une agence.
NumCl Numéro d’un client.
NumCpt Numéro d’un compte bancaire d’un client.
NumEmp Numéro d’un employé.
NumOrd Numéro positif et séquentiel qui commence par 1 et s’incrémente à pas de 1.
NumPret Numéro d’un prêt attribué à un client.
SalBasEmp Salaire de base d’un employé.
SoldeCpt Solde en dinars d’un compte bancaire. Il peut être positif (compte créditeur)
ou négatif (compte débiteur).
SuborEmp Numéro d’un employé subordonné.
TelAg Numéro de téléphone d’une agence.
TelCl Numéro de téléphone d’un client.
TxPret Taux de remboursement d’un prêt (en pourcentage, ex : 2%)
TypeCompte Type d’un compte bancaire.
TypOp Type d’une opération effectuée par un employé sur un compte bancaire.
Valeur numérique = 1 s’il s’agit d’un virement et -1 s’il s’agit d’un retrait.

Modèle logique de données brut :


…………………………………………………………………………………………………
…………………………………………………………………………………………………

2
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………

Optimisation du MLDR brut

L'implémentation du modèle logique dans un SGBD particulier, dépend de considérations


pratiques liées aux performances des applications. Pour optimiser ce modèle, il est d'abord
nécessaire de repérer les aspects du modèle qui sont susceptibles de générer des problèmes de
performance. On pourra citer à titre d'exemples : taille des tuples, nombre de tuples, fréquence
d'exécution de requêtes, complexité des requêtes exécutées (nombre de jointures, etc.),
fréquence des mises à jour (variabilité des données), etc. Une fois les éléments du modèle à
évaluer repérés, il faut mesurer (théoriquement ou empiriquement) si oui ou non ils risquent
de poser un problème de performance. Une fois certains problèmes de performance identifiés,
des solutions d'optimisation sont proposées, puis évaluées pour vérifier leur impact et leur
réponse au problème posé.
Parmi les solutions d'optimisation existantes, on pourra citer : la dénormalisation et
l’indexation.

- Indexation : La plupart des SGBD créent un index pour chaque clé primaire. Les
indexes peuvent dans certains cas diminuer les performances puisque : (1) il faut
mettre à jour les index en même temps que les données, et (2) il faut comparer la
valeur des indexes avec les critères de recherches. Pour ces deux raisons il faut réduire
au minimum le nombre d’attributs dans une clé primaire.
- Dénormalisation : consiste à regrouper plusieurs relations liées par des références, en
une seule relation, en réalisant statiquement les opérations de jointure adéquates.
L'objectif de la dénormalisation est d'améliorer les performances de la BD en
recherche sur les relations considérées, en implémentant les jointures plutôt qu'en les
calculant.

Activité 2. En se basant sur les deux opérations d’optimisation citées ci-dessous,


proposez une optimisation du modèle logique de données brut.

3
Modèle logique de données optimisé :
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………

Les principales commandes SQL

SQL (Structured Query Language, traduisez Langage de requêtes structuré) est un


langage complet de gestion de bases de données relationnelles. C'est à la fois :

- Un Langage de Définition de Données (LDD) : permet la définition et la mise à jour


de la structure de la base de données (tables, attributs, vues, index, ...).
- Un Langage de Manipulation de Données (LMD) : permet la mise à jour des
infor mat ions de la base de données.
- Un Langage d’Interrogation de Données (LID) : permet la recherche des
informations utiles en interrogeant la base de données. Certains considèrent ce langage
comme étant une partie du LMD.
- Un Langage de Contrôle de Données (LCD) : permet la définition des droits d’accès
pour les différents utilisateurs de la base de données.

4
Le tableau suivant résume les principales commandes du langage SQL. Nous nous
intéresserons essentiellement à la commande SELECT.

SQL
LDD LMD LID LCD
CREATE INSERT SELECT GRANT
ALTER UPDATE REVOKE
DROP DELETE

Le langage SQL est supporté par la plupart des produits commerciaux ; que ce soit par les
systèmes de gestion des bases de données micro tel que Access ou par les produits plus
professionnels tels que Oracle, Informix et SQL-Server. Il a fait l’objet de plusieurs normes
ANSI/ISO dont la plus répandue est la norme SQL3.

Les Opérateurs de la commande SELECT

Une requête SELECT permet la recherche de données à partir d’une base de données. Le
résultat d’une requête SELECT est une table temporaire (l’espace mémoire allouée pour
la requête est libérée après l’affichage du résultat final).
Une requête SELECT permet de réaliser les opérations élémentaires suivantes :
Projection :

Table T1
col1 col2 col3 col6 La projection permet de sélectionner la ou les colonnes à
retourner.

Restriction

Table T1
col1 col2 col3 col6 La restriction permet sélectionner la ou les lignes à retourner.

Jointure

Table T2 Table T1
La jointure permet d’associer les données stockées dans
col1 col2 col3 col6 col1 col2 col3 col6
join les tables en établissant des liens entre eux.

Vous aimerez peut-être aussi