Chap6 BDD
Chap6 BDD
Chap6 BDD
• Historique
• Pourquoi utiliser une base de données?
• Définitions
Généralités sur les bases de • Objectifs d’un SGBD
données • Fonctionnalités d’un SGBD
• Niveaux de représentation des données
• Processus de modélisation d’un BD
• Modèles de structuration des données
• Modèle Entité-Association
ESI – Structures de fichiers et structures de données (SFSD) • Modèle Relationnel
N. EL-ALLIA
1 • Algèbre relationnel 2
Historique Historique
• De tout temps, toute organisation (société) a cherché • Jusqu’aux années 60: organisation classique en
à structurer ses informations. fichiers gérés par des SGF (système de gestion de
fichiers)
• Au début (avant l’avènement de l’informatique):
informations sous formes de fiches uniquement, • années 60: 1ère génération de SGBD :
classées par ordre alphabétique, chronologique, Au début de l’apparition des bases de données, le
…(qui existent encore !), niveau conceptuel est très lié à la représentation des
données sur les supports physiques
• Puis avec les supports informatiques
– modèle hiérarchique, modèle réseau
infos mémorisées sur supports magnétiques, …
Il faut les organiser pour pouvoir travailler dessus • 1970 - 1980: 2ème génération :
(retrouver telle info, voir sa valeur, supprimer, mettre à plus indépendant des supports :
jour, …) notion de fichiers. – modèle relationnel
3 4
1
Historique Pourquoi utiliser une base de données?
La démarche classique consiste à réaliser pour un
• débuts des années 80: 3ère génération :
type d'information, un programme d'application.
– modèle à objets,
Exemple : Une université doit conserver un volume
élevé d’information:
noms, prénom, année d’entrée, adresse de
l’étudiant, nom, prénom, année d’embauche,
grade des enseignants, et des salariés, …etc
• Ces informations se retrouvent dans différents
systèmes de traitement de fichiers.
5 6
Pourquoi utiliser une base de données? Pourquoi utiliser une base de données?
• De plus, certaines informations sont souvent
- Système de gestion de la scolarité,
conservées en plusieurs endroits.
- Système de comptabilité (paie),
Duplication de données redondance
- Système des emprunts de la bibliothèque,
Gaspillage au niveau du volume de fichiers
- Système de gestion de personnel,…etc
fichiers multiples
• Pour obtenir une information, on doit:
1) déterminer le système à consulter
2) trouver la bonne information concernée.
Perte de temps fichiers multiples
7 8
2
Définitions Définitions
Base de données: • Lourdeur d’accès aux données.
Une base de données est un gros ensemble • Manque de sécurité (accès direct aux fichiers)
d’informations structurées mémorisées sur un support • Pas de contrôle de concurrence (comment palier aux
permanent et qui peut être partagée par plusieurs problèmes d’accès simultané par plusieurs utilisateurs)
applications et qui est interrogeable par le contenu. Il est donc nécessaire d’avoir recours à un logiciel
chargé de gérer les fichiers constituant une base de
L’utilisation de fichiers classiques pourrait sembler données, de prendre en charge les fonctionnalités de
pouvoir apporter une solution à ce problème. Mais protection et de sécurité et de fournir les différents
l’utilisation directe de gros fichiers soulève de gros types d’interfaces nécessaires à l’accès aux données.
problèmes . Ce logiciel est le Système de Gestion des Bases de
Données (SGBD).
9 10
Définitions Définitions
Définition d’un SGBD: Les SGBD assurent d’autres fonctions importantes,
notamment :
Un Système de Gestion de Bases de Données (SGBD)
est un logiciel de haut niveau permettant aux - la protection de la base de données
utilisateurs: La protection implique à la fois:
- de structurer, la protection du système contre les pannes logicielles et
- d’insérer, matérielles
- de modifier, et la protection sécuritaire contre les accès illicites ou
- de rechercher de manière efficace des données malveillants.
spécifiques, au sein d’une grande quantité - et son entretien à long terme
d’informations, stockées sur mémoires secondaires Une grande base de données peut être utilisées de
partagée de manière transparente par plusieurs nombreuses années.
utilisateurs. Le SGBD doit donc être capable d’entretenir et
11 de faire évoluer ses propres structures dans la durée. 12
3
Objectifs d’un SGBD Objectifs d’un SGBD
1.Indépendance des programmes aux données : 4. Partage et sécurité des données :
- Dépendance physique. - Simultanéité lecture/écriture.
- Dépendance logique. - Confidentialité (authentification, droits d'accès, …).
2. Simplicité des Manipulations des données : - Gestion de la concurrence des transactions.
- Langage non procédural. - Restauration après pannes (journal, sauvegarde).
- Recherche, Insertion et Mise à jour. 5. Redondance contrôlée des données :
3. Efficacité des accès aux données : - Sauvegarde des données.
- Temps de réponse.
- Débit global.
13 14
15 16
4
Niveaux de représentation des données Niveaux de représentation des données
Niveau externe:
17 18
19 20
5
Niveaux de représentation des données Niveaux de représentation des données
Exemple: Analogie des niveaux avec déclaration de types Au niveau conceptuel
Déclaration d’un enregistrement en C : L'enregistrement est décrit par son contenu significatif et ses
typedef struct relations.
{ char nom[15];
char rue[25];
char ville[15]; Au niveau physique
}Client; L'enregistrement est décrit comme un bloc d'emplacement
Au niveau externe mémoires consécutifs (mots ou octets)
L'enregistrement est décrit par des vues :
· vue #1 : tous les clients demeurant dans la ville X
· vue #2 : tous les clients ayant le même nom de famille
· vue #3 : tous les clients demeurant sur la rue Y
21 22
6
Processus de modélisation d’une BD Processus de modélisation d’une BD
3) Implantation du modèle 4) Conception physique
- Déterminer la structure - Spécification des structures
de la BD: de stockage interne et de
· relationnelle, l'organisation des fichiers
· réseau de la BD.
· hiérarchique.
25 26
7
Processus de modélisation d’une BD Processus de modélisation d’une BD
Exemple2 de mauvaise conception En résumé: Cycle de vie d ’une base de données
N° Nom Prénom Ville Pays Enfant1 Enfant2 Enfant3 NbEnfants
1 Flen aaa Alger ALG Pipo Lolo 2
2 Ait Ait Tizi ALG Sissi 1
3 Ben Ben Oran ALG Sam Titi Yoyo 3
4 Moh Med Alger ALG 0
• Redondance cachée
– Nombre d’enfants vs enfants
• Difficulté de gestion
– Comment gérer les personnes ayant plus de 3 enfants !
– Comment afficher la liste des enfants ?
29 30
31 32
8
Modèles de structuration des données Modèle Entité/Association
Modèle logique orienté enregistrement - Origine: Peter Chen (1976).
- Niveau conceptuel et interne de la BD; - La méthode permet de distinguer les entités qui
- Se rapproche de la structure physique des données; constituent la base de données, et les associations
- Trois modèles les plus connus : (relations) entre ces entités.
· Modèle relationnel;
- Ces concepts permettent de donner une structure à
la base.
· Modèle hiérarchique;
· Modèle réseau. Ces concepts de base sont:
– Entité
– Attribut
– Type d’entité
– Association (relation)
– Type d’association
– Cardinalités
33 34
9
Modèle Entité/Association Modèle Entité/Association
Attributs Attributs
- Composite: composé de plusieurs autres attributs de base. - Valeur simple: possède qu’une seule valeur (valeur
- Atomique: pas divisible. unique).
Exemple: Âge possède une seule valeur.
- Valeurs multiples: possède un ensemble de valeurs
pour la même entité
Exemple: Couleur pour une voiture (rouge, verte, bleue,
jaune,etc…)
- Dérivé: attribut qui est en étroite relation avec un
autre attribut.
Exemple: Âge et date de naissance.
37 38
10
Modèle Entité/Association Modèle Entité/Association
Attributs clès Type d'entités
Clé Primaire : - Ensemble d'entités du même type.
- La clé désignée parmi les clés candidates par le Exemple:
concepteur de la base de données pour identifier de Employé: ensemble des personnes qui travaille pour une
façon unique une entité. compagnie.
- soulignée dans le schéma de E/A.
Exemple:
ÉTUDIANT{Matricule, Nom, Age}
• Super Clé: {Matricule, Nom, Age} ou {Matricule, Nom}
• Clé: {Matricule}
• Clé candidate: {Matricule}
• Clé primaire: {Matricule}
41 42
Etudiant Cours
Matricule Code
Nom Suivre Intitulé
Prénom. Crédit
… …
43 44
11
Modèle Entité/Association Modèle Entité/Association
Relation Réflexive Type de Relation
Appelée aussi cyclique ou récursive. Un type de relations est un ensemble de relations qui
Exemple : agissent sur les mêmes types d’entités.
– FILIATION(père: PERSONNE, fils: PERSONNE) Ici, l’ensemble de relations (r1,r2) représente un type
Dans une occurrence
d’association une personne
de relation.
– Compose(composant: PRODUIT,
peut assumer un des deux rôles composé: PRODUIT)
père ou fils.
45 46
- Une relation de degré trois est appelé relation l’enseignant A enseigne à la salle C …
ternaire. - (Cours, Salle): l’instance (B,C) signifie que le cours B est
donné à la salle C
- Une relation peut être de n'importe quel degré. En - Les 3 instances (A,C), (A,B) et (C,B) n'implique pas
général, elles sont binaires. nécessairement que l'instance (A,B,C) existe dans la relation
ternaire ABC. (voir explication au tableau)
47 48
12
Modèle Entité/Association Modèle Entité/Association
Attributs d’une relation Cardinalité
Une relation peut posséder des attributs. Exprime le nombre minimum et le nombre maximum de
participations de chaque occurrence d’entité à une
association (min, max).
49 50
13
Modèle Entité/Association Modèle Entité/Association
Cardinalité Les rations de cardinalité
Exemple:
Personne Livre
Num 1,n 1,n Num
Est
Nom l’auteur Titre
Prénom. Année
Adresse ISBN
53 54
55 56
14
Modèle Entité/Association Modèle Entité/Association
Les ratios de cardinalité Les ratios de cardinalité
57 58
59 60
15
Modèle Entité/Association Modèle Entité/Association
Mise en situation un exemple: Mise en situation un exemple:
Considérons la base de données d’une université pour Cette BD pourrait être organisée, en 2 entités et 2
maintenir l'information concernant les étudiants et leurs relations, comme suit:
cours. Entité ÉTUDIANT: Information sur chaque étudiant.
Chaque étudiant suit un certain nombre de cours. Entité COURS: Information sur chaque cours.
Un cours peut posséder certains pré-requis.
Pour chaque cours effectués, un étudiant doit avoir un Relation RÉSULTAT: Résultat pour les cours des
résultat. (voir au tableau) étudiants.
Relation PRÉ-REQUIS: Les pré-requis de chaque
cours.
61 62
63 64
16
Modèle Entité/Association Modèle Relationnel
Conclusion sur le modèle E/A 1. Introduction
Le modèle E/A est utilisé dans la plupart des méthodes 2. Evolution du modèle relationnel
d’analyse/conception : OMT, CASE, MERISE, etc. La 3. Définitions
syntaxe varie, mais on retrouve toujours les mêmes 4. Contraintes relationnelles
éléments fondamentaux.
5. Opérations sur une BD relationnelles
Dans le cadre des bases de données, le modèle E/A
est utilisé dans la phase de conception. Il permet de 6. Manipulation des données
spécifier la structure des informations qui vont être
contenues dans la base et d’offrir une représentation
abstraite indépendante du modèle logique qui sera
choisi ensuite. Le modèle E/A a cependant
l’inconvénient majeur de ne pas proposer d’opérations
sur les données 65 66
17
Modèle Relationnel Modèle Relationnel
3. Définitions • Attribut
Dans le modèle relationnel, les données sont stockées Les attributs nomment les colonnes d’une relation. Il
dans des tables (tableau à deux dimensions). servent à la fois à indiquer le contenu de cette colonne,
Chaque colonne de la table est nommée et à la référencer quand on effectue des opérations. Le
indépendamment de son ordre, qui n'a aucune incidence nom d’un attribut peut apparaître dans plusieurs
dans ce modèle. On nomme attribut le nom donné à une schémas de relations.
colonne de la table. Chaque attribut possède un domaine de valeurs
Une ligne de la table contient des valeurs pour chacun (D1,D2,..., Dn).
des attributs. Chacune de ces lignes est appelée n-uplet Exemple:
ou tuple.
Les attributs: Matricule, Nom, Prénom, Date de
L'ensemble des n-uplets d'une table se nomme relation. naissance, … sont des attributs d’étudiant
Une BD relationnelle est formée d'un ensemble de
relations 69 70
18
Modèle Relationnel Modèle Relationnel
• Relation • Produit cartésien
Une relation r de schéma R(A1;A2; … ;An) est un sous- Le produit cartésien d'un ensemble de domaines D1,
ensemble du produit cartésien des domaines de R, D2,…, Dn, noté D1 xD2 x…xDn, est l'ensemble de n-
càd. R Dom(A1)x Dom(A2)x…xDom(An). uplets (ou tuples) <v1, v2,…, vn> tels que vi ∈ Di.
On dit aussi que r est une instance du schéma de • Degré d’une relation
relation R. Une instance de table représente une Le degré de la relation est le nombre d'attributs (n)
extension de la relation dans son schéma relationnel
• Tuple ou n_uplet Exemple:
Un n-uplet correspond à une ligne d'une relation. Il est Cette relation est de degré 7 :
composé de n éléments : ÉTUDIANT(Matricule, Nom, Prénom, Date_naiss,
(v1, v2,..., vn) où v1ϵD1, v2ϵD2, ..., vnϵDn Téléphone, Adresse, Promotion)
73 74
ETUDIANTS
Table Matricule Nom Date_naiss Groupe
Attributs
19
Modèle Relationnel Modèle Relationnel
4. Contraintes relationnelles 4. Contraintes relationnelles
- Il existe 4 types de contraintes: 4.1 Contraintes de domaines
· de domaines - La valeur de chaque attribut dans un tuple est
· de clés atomique (non divisible)
· d’intégrité entité Attributs composites ou multivalués non acceptés
79 80
20
Modèle Relationnel Modèle Relationnel
5. Opérations sur une BD relationnelle 6. Manipulation des données
- Langage de définition des données (définition et MAJ Pour manipuler les relations, nous avons besoin d’un
du schéma) : langage adapté dont la particularité est de savoir
- création et destruction d’une relation ou d’une base manipuler aisément ces tableaux de données. Ce
- ajout, suppression d’un attribut langage constitue l’algèbre relationnelle.
- définition des contraintes (clés, références, ...)
L’algèbre relationnelle est le langage interne d’un
- Langage de manipulation des données SGBD relationnel. Ce langage consiste en un
- saisie des n-uplets d’une relation ensemble d’opérations qui permettent de manipuler
- affichage d’une relation
des relations, considérées comme des ensembles de
- modification d’une relation: insertion, suppression et maj
des n-uplets tuples : on peut ainsi faire l’union ou la différence de
- requêtes: consultation d’une ou de plusieurs relations deux relations, sélectionner une partie de la relation,
- Gestion des transactions et Gestion des vues effectuer des produits cartésiens ou des projections,
81 etc. 82
83 84
21
Modèle Relationnel Algèbre Relationnelle
6. Manipulation des données L'algèbre relationnelle est le langage interne d'un
Deux classes : SGBD relationnel. Elle se compose d'opérateurs de
• Les langages procéduraux: permettent de définir: manipulation des relations.
- l'information Ces opérateurs sont regroupés en deux familles :
- une méthode de recherche dans la base
- la façon d’accéder à l’information - les opérateurs ensemblistes (union, différence,
Exemple: algèbre relationnelle intersection et produit cartésien)
langage opérationnel, une requête s’écrit comme une - et les opérateurs relationnels (sélection,
succession d’opérations effectuées sur des relations
projection, jointure et division).
• Les langages non-procéduraux: permettent de définir:
- l'information désirée, mais le système de BD se charge de la
procédure de recherche.
Exemple: calcul relationnel
langage non-procédural permettant d'expliciter le résultat que
85
l'on désire sans spécifier la séquence des opérations à effectuer. 86
87 88
22
Algèbre Relationnelle Algèbre Relationnelle
Différence − Différence −
• Arguments : 2 relations de même schéma : Exemple:
R(A1, . . . , Am) S(A1, . . . , Am)
• Notation: R−S
• Schéma de T = R − S : T(A1, . . . , Am)
• Valeur de T : Différence ensembliste sur D1×…×Dm :
T = {t | t ∈ R ∧ t S}
La différence signifie: on veut ’rejeter’ quelque chose,
on ’ne veut pas’ des lignes ayant telle propriété.
89 90
91 92
23
Algèbre Relationnelle Algèbre Relationnelle
Produit cartésien × Produit cartésien ×
• Arguments : 2 relations quelconques : • Valeur de T = R × S : ensemble de tous les n-uplets
R(A1, . . . , An) S(B1, . . . , Bk ) ayant n + k composants (attributs)
• Notation: R×S - dont les n premiers composants forment un n-
• Schéma de T = R × S : T(A1,. . . , An, B1,. . . , Bk ). uplet de R
- On introduit les règles de renommage suivantes pour - et les k derniers composants forment un n-uplet
lever les éventuelles ambiguités sur le schéma de T: de S.
- Si le produit cartésien est le produit d’une relation
avec elle-même alors le nom de la relation est
numéroté pour identifier les deux rôles (par 1 et 2).
- Si les relations ont des attributs en commun, les noms
des attributs en commun sont préfixés par le nom de la
relation d’origine. 93 94
24
Algèbre Relationnelle Algèbre Relationnelle
Sélection/restriction σ Sélection/restriction σ
Exemple: Exemple:
a) On sélectionne les n-uplets dans la relation R tels b) On sélectionne les n-uplets tels que
que l’attribut B vaut “b” :
97 98
99 100
25
Algèbre Relationnelle Algèbre Relationnelle
Projection π Projection π
Exemple: Exemple:
a) On élimine la colonne C dans la relation R : b) On élimine la colonne B dans la relation R (on garde
A et C) :
26
Algèbre Relationnelle Algèbre Relationnelle
Jointures Jointures
1. Jointure naturelle 1. Jointure naturelle
Soit U = {A1,..., Am, B1,..., Bn, X1,..., Xk} l’ensemble des Exemple:
attributs des 2 relations et V = {X1,..., Xk} l’ensemble
des attributs en commun
105 106
107 108
27
Algèbre Relationnelle Algèbre Relationnelle
Jointures Jointures
2. Théta jointure 2. Théta jointure
Exemple Théta jointure: R A ≤ CS σ A ≤ C (R × S) Exemple Equijointure: R A=DS σ B=D(R × S)
109 110
28
Algèbre Relationnelle Algèbre Relationnelle
Division ÷ Division ÷
- La division s’exprime en fonction du produit cartésien, Exemple: R ÷ S = R1 − R2 avec
de la projection et de la différence :
T = R ÷ S = R1 − R2 où
113 114
29
Algèbre Relationnelle Algèbre Relationnelle
En réalité, nous n’utiliserons dans nos requêtes que les En outre, ils trouvent leur application dans la
opérateurs les plus maniables : ce sont l’union et la conception des ordinateurs de base de données : les
différence pour l’insertion et la suppression de tuples opérateurs de l’algèbre relationnelle et leurs formes
dans la base et la restriction, la projection et la jointure dérivées n’y sont pas mis en œuvre sous forme
pour la recherche sélective de tuples. logicielle, mais implantées directement dans des
Les opérateurs de l’algèbre relationnelle ne présentent composants matériels de l’ordinateur.
pas seulement un intérêt sur le plan théorique. Leur
portée pratique est aussi importante. par exemple,
nous en aurons besoin pour optimiser les requêtes au
niveau du langage des systèmes de bases de données
relationnelles
117 118
30
Algèbre Relationnelle
Exemple2 de travail:
ETUDIANT (Num_Etudiant integer, Nom char(20),
Adresse varchar(50))
COURS (Num_Cours integer, Nom char(20))
PROFS (Num_Prof integer, Nom char(20), Adresse
varchar(50))
COURS_SUIVI (Num_Etudiant integer, Num_Cours
integer)
COURS_ENSEIGNES (Num_Prof integer, Num_Cours
integer)
121
31