Cours
Bases de Données
Conception - Implémentation – Utilisation
Pr. M. QBADOU
Objectifs
Apprendre à concevoir un modèle Entité Association
Comprendre les fondements du modèle relationnel
Maîtriser le langage SQL
Apprendre à utiliser les SGBDR : Access |SQL Server |Oracle
|MySQL :
Pr M.QBADOU
▪ Implanter le schéma d’une base de données
▪ Utiliser une base de données
▪ Contrôler l’accès à une base de données
2
Sommaire
I. Introduction aux Bases de Données
Exemple introductif
Niveaux d’une application informatique
Qu’est ce qu’une Base de Données (BD) ?
Buts recherchés des DB
Cycle de vie d ’une base de données
Avantages de l ’approche BD
II. Introduction aux Systèmes de Gestion de Bases de Données
Pr M.QBADOU
Qu’est ce qu’un Système de Gestion de Bases de Données ?
Caractéristiques d ’un SGBD
Architecture d ’un SGBD
3
Exemples de SGBD
Sommaire
III. Fondement du Modèle Entité-Association
Objectifs du modèle
Concepts du modèle
▪ Attribut, Entité, Identifiant,
▪ Association, Cardinalités, Rôles.
▪ Types d’association
Démarche d’élaboration d’un modèle Entité-Association
Règles de validation d’un Modèle Entité-Association
Pr M.QBADOU
▪ Buts recherchés
▪ Formes normales
Exemple d’application
Etudes de cas
4
Sommaire
IV. Fondement du Modèle Relationnel
Objectifs du modèle
Concepts du modèle
▪ Domaine, attribut, relation(table), clés, schéma
▪ Règles d’intégrité :
o contraintes de domaine
o clé primaire, contrainte de référence,
Règles de passage du MCD au MLDR
Opérations de l’algèbre relationnelle
▪ Opérations ensemblistes (Union, Intersection, Différence …)
Pr M.QBADOU
▪ Projection, Restriction, Jointures
Normalisation d’un schéma relationnel
▪ Dépendances fonctionnelles
▪ Formes normales
5
Sommaire
V. Le langage SQL
Définition du langage SQL
Avantages du langage SQL
Langage de définition de données (DDL)
▪ Create table, Alter table, Create index, Drop
Langage de manipulation de données (DML)
▪ Select, Insert into, Update, Delete
Langage de contrôle de données (DCL)
Pr M.QBADOU
▪ Grant, Revoke, create user, alter user,…
6
Sommaire
VI. MySQL |SQL SERVER |Oracle
TP Création d’une BD
Création de table
▪ Champ, propriétés, indexes, listes de choix
Création de relation
Les requêtes
Sélection , groupement, sous requêtes
Insertion, Mise à jour, Suppression
Pr M.QBADOU
Définition de données
7
I. Introduction aux Bases de Données
1. Exemple introductif : Vues pour l’Achat en ligne de billets de train
Pr M.QBADOU
8 8888888888
8
I. Introduction aux Bases de Données
2. Les niveaux d’un Système Informatique
IHM
Vues utilisateurs Navigateur Navigateur
Navigateur Web
Applications
Programmes Application Application
Serveurs Web
Serveurs d’application
Pr M.QBADOU
SGBD SGBD SGBD
Bases de Données
Serveur de bases de
données
BDD BDD
9
I. Introduction aux Bases de Données
2. Système d’information
Branches dans les SI
Organisation fonctionnelle des tâches DBA
Pr M.QBADOU
10
I. Introduction aux Bases de Données
2. Système d’information
Activités du DBA
Pr M.QBADOU
11
I. Introduction aux Bases de Données
2. Système d’information
Cycle de vie du développement de systèmes d’information
Phase Action(s)
Planning
Analysis
Detailed
System design
Pr M.QBADOU
Implementation
Maintenance
12
I. Introduction aux Bases de Données
3. Définitions
3.1. Base de données
Collection de données structurées, mémorisées sans redondance
inutiles, pour servir plusieurs applications(utilisateurs) de façon
sélective et en temps très court, on y enregistre les données de façon qui
permet une indépendantes des programmes qui les utilisent, on utilise
une approche commune et contrôlée pour ajouter, modifier, retrouver
des données”. Elle contient également la description de ses données.
3.2. Système de Gestion de Bases de Données (SGBD)
SGBD
Pr M.QBADOU
Un ensemble de logiciels permettant aux
utilisateurs de :
▪ créer,
▪ Lire,
▪ Mettre à jour
▪ Supprimer
13 les données de la BD avec le contrôle des accès.
I. Introduction aux Bases de Données
4. Fonctions d’une Base de Données
▪ Gérer le stockage de données persistantes, très grands volumes
(plusieurs Go (109), To (1012)), avec des structures flexibles,
▪ Fournir un Langages de définition de données, d'interrogation et
de manipulation
▪ Gérer le catalogue accessible aux utilisateurs
▪ Gérer les autorisations, des transactions et des accès concurrents
▪ Gérer de l'intégrité des données
Pr M.QBADOU
▪ Fournir d’autres Outils divers :
Programmation, Développement, Administration, Communication,
Aide à la décision, …
14
I. Introduction aux Bases de Données
5. Exemples de BD
Les Bases de Données sont nécessaires à tous les domaines d'activité :
industrie, commerce, services, recherche scientifique, …
▪ Gestion de personnels, étudiants, Clients, Produits, Cours, …
▪ Système de réservation de places d ’avions des compagnies d ’avion
▪ Système de gestion des commandes, Achats, Ventes, …
▪ Systèmes bancaires, systèmes d’assurance
Pr M.QBADOU
▪ Bases scientifiques, techniques, sanitaire, Transport, ....
15
I. Introduction aux Bases de Données
6. Cycle de vie d’une base de données
Le développement d’une BD passe par quatre phases :
Planification et Conception de la BD
Implantation, test et évaluation de la BD dans un SGBD
Utilisation de la BD
Maintenance et évolution de la BD
Pr M.QBADOU
16
I. Introduction aux Bases de Données
Etapes de conception d’une BD 1
Interview
Documents
2 (Besoins)
Modélisation
Entité-Association
Modèle Schéma
Conceptuel Entité-Association
3
Transformation en
1 Analyse de la situation existante et des besoins
schéma relationnel
2 Création d'une série de modèles conceptuels
(canonique et vues externes) qui permettent de
Pr M.QBADOU
Schéma représenter tous les aspects importants du problème
Modèle logique
Relationnel
3 Traduction des modèles conceptuels en modèle
4 logique et optimisation (normalisation) de ce modèle
Implémentation du logique
schéma relationnel
4 Implémentation d'une base de données dans un
SGBD, à partir du modèle logique
17 BD
I. Introduction aux Bases de Données
6.1. Conception de la BD
Consiste à représenter le contenu de la base en termes conceptuels,
indépendamment de toute considération informatique sous la forme d’un
schéma en utilisant une méthode et un formalisme de modélisation : Modèle
Entités-Association (E-A).
Modélisation conceptuelle - Modèle E-A
Le Modèle E-A est une représentation graphique claire de l’ensemble des
données du SI d’un organisme (l’entreprise). Il doit :
▪ décrire les données gérées sans tenir compte des choix d’organisation,
d’automatisation, ou techniques
▪ décrire les choix de gestion en précisant la signification des invariants, leur
Pr M.QBADOU
structure et leurs liens (dépendances fonctionnelles entre les données)
Le concepteur doit identifier, décrire et représenter les entités et leurs
associations en utilisant le formalisme suivant :
Entité
Association
18
I. Introduction aux Bases de Données
Modèle E-A – Exemple 1
Objectifs? Perception
Énoncé
Monde réel
Analyse Personnes 0,N Voitures
conceptuelle 1,N Possède 1,1
N° CIN. N° plaque.
Nom Marque
0,N Modèle
Adresse 1,N 1,N
Schéma Louer ...
...
Durée
conceptuel
Calendrier
Pr M.QBADOU
1,N
DateLocation
Règles :(contraintes)
• Seules les voitures dont la modèle est >=2018 sont considérés,
• La durée de location est exprimée en jours et doit être au moins égale à 1,
19 • Une même voiture ne peut être louer à la même date plus qu’une fois.
I. Introduction aux Bases de Données
Modèle E-A – Exemple 2 CLIENT
0,N
0,N
NumClient Signe
Nom (1,1)
Appartient
Adresse CONTRAT
1,1 NumContrat
1,1 0,1 TypeContrat
VEHICULE Couvert DateDebut
DateFin
NumVehicule 0,N
0,N
Marque Concerne ACCIDENT
Modele NumAccident
Annee DateAccident
Adresse
Eléments d’un modèle E-A
Pr M.QBADOU
Les éléments de base du modèle E-A sont :
L’entité, l’attribut, l’identifiant, l’association et les cardinalités
Il existe deux catégories d’entités :
▪ Entités régulières : leur existence ne dépend pas de l’existence d’une autre entité.
▪ Entités faibles : leur existence dépend de l’existence d’une autre entité.
20
l’entité CONTRAT n’existe que si l’entité CLIENT est présente.
I. Introduction aux Bases de Données
Modélisation logique de la BD – Modèle relationnel
Concevoir un schéma interne unique représentatif du schéma
conceptuel et représentable par le SGBD
Modèle Entité- Modèle relationnel (MLD)
Association (E-A)
PERSONNES
N°CIN
Exemple 1
Nom LOCATIONS
Adresse N°CIN *
… N°Plaque *
Pr M.QBADOU
DateLocation*
VOITURES
Durée
N° plaque
Marque
Modèle
…
N°CIN *
21
I. Introduction aux Bases de Données
Exemple 2
Gestion d’un ensemble de polycliniques lieus de travail de Médecins
spécialistes
Modèle E-A Modèle relationnel
POLICLINIQUE
POLICLINIQUE Nom
Nom Localité TRAVAILLE
Localité Téléphone Nom *
Téléphone Localité *
0-N
NumMatr *
Pr M.QBADOU
1-1
Travaille Possède 0-N
MEDCINS
0-N MEDCINS SPECIALITE
SPECIALITE NumMatr
NumMatr Nom CodeSp
CodeSp
CodeSp * Libellé
Nom Libellé
22
I. Introduction aux Bases de Données
6.2. Implantation de la BD
Transmission de ce schéma au SGBD en utilisant :
▪ Le Niveau visuel ne nécessitant aucune programmation
▪ Le Niveau programmation en utilisant SQL de description de
données DDL(Data Description Language)
/* implémentation C */
struct Type_Pers Personnes{
char N_CIN[12];
char Nom[30]; /* Implémentation BD- Ordre SQL */
char Adresse[100]; CREATE TABLE Personne(
Pr M.QBADOU
char Tel[20]; N_CIN char(12) Primary key,
}; Nom char(30) Not Null ,
struct Type_Pers Personne[100000]; Adresse char(100) ) Not Null ,
Tel char(100) ) Unique
);
23
I. Introduction aux Bases de Données
Démonstration
Pr M.QBADOU
24
I. Introduction aux Bases de Données
◆ TP – AirCompagnie
◼ Etant donné le modèle conceptuel ci-dessous, réaliser le modèle logique
correspondant
Pr M.QBADOU
◼ Créer une base de données Access nommée AirCompagnie
◼ Générer et exécuter le script SQL pour créer le schéma de la base
25 ◼ Insérer les données exemples contenus dans le fichier Excel Vols.xlsx
I. Introduction aux Bases de Données
Corrigé TP
Compagnie Aérienne – Modèle physique
Pr M.QBADOU
26
I. Introduction aux Bases de Données
Corrigé TP
Compagnie Aérienne – Modèle physique
Pr M.QBADOU
27
I. Introduction aux Bases de Données
Compagnie Aérienne : Script SQL
create table Pilote( create table Vol(
Matricule long Constraint PkPilote Primary key, NumVol long Primary key,
Nom char(50) not null, HeureDep date not null,
Prenom char(50) not null, HeureArr Date not null,
Ville char(50) not null, VilleDep char(50) not null,
Age integer not null,Salaire currency not null VilleArr char(50) not null);
); create index IndVilleArr on Vol(VilleArr);
create index IndVille on Pilote(Ville); create table Depart(
create table Passager( NumVol long Constraint DepartVol references Vol,
NumPa long Constraint PkPassager Primary key, DateDep Date,
Nom char(50) not null Matricule long Constraint DepartPilote references Pilote,
); NumAv long references Avion,
Pr M.QBADOU
create table Avion( Constraint PKDepart primary key(NumVol,DateDep));
NumAv long Constraint PkAvion Primary key, create table Reservation(
Type char(10) not null, NumVol long , DateDep Date,
Capicite char(50) not null, NumPa long references Passager,
Entrepot char(50) not null primary key(NumVol,DateDep,NumPa ),
); foreign key(NumVol,DateDep) references Depart);
28
I. Introduction aux Bases de Données
Compagnie Aérienne : Exemple de données
AVION NUMAV TYPE CAPACITE ENTREPOT
1 A300 300 NICE
2 A310 300 NICE
3 B707 250 PARIS
4 A300 280 LYON
5 B747 460 PARIS
PILOTE MATRICULE NOM PRENOM VILLE AGE SALAIRE
1 MIRANDA SERGE PARIS 45 26000.00
2 LETHANH NAHN TOULOUSE 24 21000.00
3 TALADOIRE GILLES NICE 30 18000.00
4 CHARBONNIER ANNETTE PARIS 40 17000.00
5 REY CHRISTOPHE TOULOUSE 45 19000.00
Pr M.QBADOU
6 CHARBONNIER FABIEN PARIS 24 18000.00
VOL NUMVOL VILLEDEP VILLEARR HEUREDEP HEUREARR
100 NICE TOULOUSE 1100 1230
102 TOULOUSE LYON 1400 1600
103 TOULOUSE LYON 1800 2000
106 PARIS LYON 0800 0900
111 LYON NANTES 1630 2000
29
I. Introduction aux Bases de Données
Compagnie Aérienne : Exemple de données
NUMPA NOM
PASSGER
1 ALAMI
2 FARID
3 PASCAL
NUMVOL DATE-DEP NUMAV MATRICULE 4 LEMAITRE
DEPART 5 FAOUZI
100 31-12-95 1 1 6 ARNAUD
100 19-12-95 1 1
103 09-11-95 2 6
102 15-11-95 3 5
103 29-10-95 2 4
NUMPA NUMVOL DATE-DEP
RESERVATION
1 1 31-12-95
Pr M.QBADOU
2 1 31-12-95
3 1 31-12-95
4 1 19-12-95
5 1 19-12-95
1 2 29-10-95
6 2 29-10-95
30
I. Introduction aux Bases de Données
6.3. Utilisation de la DB
Interrogation et mise à jour de la base en utilisant un langage de
manipulation de données (DML). Ce langage permet de créer :
▪ Des requêtes d ’interrogation : sélection de données
▪ Des requêtes de manipulation des données :
Ajout,
suppression,
modification
Pr M.QBADOU
6.4. Maintenance et évolution de la DB
Deux types de maintenance :
▪ Corrective : supprimer les données polluantes, redondantes
▪ Evolutive : Faire évoluer la structure des données
31
Pr M.QBADOU
32
II. Introduction aux SGBD
1 Qu’est ce qu’un SGBD ?
SGBD = ensemble d'outils logiciels permettant la création, l’administration,
l'utilisation et la maintenance de bases de données. Il représente l’interface
entre les applications (programmes) et les bases de données
2 Caractéristiques d’un SGBD
Un SGBD doit garantir :
▪ L’indépendance physique : la façon dont les données sont structurées et
manipulées ne dépend pas des structures de stockage
▪ L’indépendance logique : Intégrer toutes les visions personnelles (des
utilisateurs) dans une vision globale.
Pr M.QBADOU
▪ La manipulation des données : Permettre l’accès facile aux données aux
utilisateurs (non informaticiens)
▪ L’efficacité des accès : Temps d’accès rapide
▪ La cohérence et la non redondance : chaque données ne doit être stockée
33 qu’une seule fois dans la base (sauf exception).
II. Introduction aux SGBD
▪ La cohérence : Garantir un état cohérent des données en les soumettant à
des contraintes d ’intégrité.
▪ La partageabilité : Permettre les accès simultanés de plusieurs utilisateurs
aux même données
▪ La sécurité : Protection des données contre des accès non autorisés
(Définition des utilisateurs et leurs droits)
▪ La résistance aux pannes : Récupération de la base en cas de pannes
Pr M.QBADOU
34
II. Introduction aux SGBD
3 Architecture d’un SGBD
Interface utilisateurs Interface d’accès
physique
SGBD BD
Analyse/vérification des requêtes
Convivialité de l ’interface Stockage/ accès
Optimisation
Architecture client/serveur
PC Windows
BD
Appli Python
Elèves
Uvs
Pr M.QBADOU
Livres
SGBD Chambres
Mac
Appli Java
Méta Modèle :
Description
Appli C BD
35
PC Linux
II. Introduction aux SGBD
Couches d’un SGBD
Pour garantir l ’indépendance physique/logique, un SGBD est structuré
en trois couches
Couche Couche Couche
BD interne logique externe
Stockage Contrôle Dialogue
• Stockage des • Optimisation des • Analyse des
données requêtes demandes
Pr M.QBADOU
• Gestion des • Gestion des accès • contrôle des
fichiers concurrents droits
• Gestion des accès • Contrôle de la
• présentation
(index, clés, …) cohérence des
des résultats
36
données
II. Introduction aux SGBD
• Description des données : 3 niveaux d’abstraction (ANSI/X3/SPARC (1975)
Schéma externe pour la ▪ Comment les données sont
Schéma externe pour la Schéma externe pour
Direction des études
Bibliothèque Service social vues par les « utilisateurs »
• - Elève
• Elève
Schéma externe
• Livre
1 • UV …. • Elève externe n
Schéma
• Chambre
▪ Représentations logique
▪ Multiples
▪ Globalité des données
▪ Représentation logique
▪ Unique
Schéma conceptuel
Pr M.QBADOU
Eleve(num, nom, adresse, age)
UV(code, nbH, coord)
Inscription(numEleve, codeUV, dateInscri)
Livre(cote, titre, numEleve, datePret)
Emprunt(cote, numEleve,DatePret)
Chambre(no, prix, numEleve)
▪ Globalité des données
▪ Représentation physique
des données. Stockage
Schéma physique (fichiers, index, …)
▪ Unique
37
II. Introduction aux SGBD
4 Classes de SGBD
Les SGBD sont répertoriés en quatre classes suivant de modèle logique de
données considéré pour représenter les données :
• SGBD hiérarchiques,
• SGBD Réseaux,
• SGBD Relationnels,
• SGBD Objets, Objet-Relationnels,
• SGDB Semi-Structurés,
• SGBD NoSQL,
Pr M.QBADOU
• SGBD NewSQL,
• …
38
II. Introduction aux SGBD
4.1. SGBD hiérarchiques (1950)
Les données sont représentées sous forme d’une structure
arborescence d’enregistrements (Records, Record types).
Cette structure, implantée à l’aide de pointeurs, détermine
le chemin d’accès aux données (Relation père fils
(pointeur, arbre))
Record types
Record
Pr M.QBADOU
Exemples de SGBD Hiérarchiques
Les systèmes IDS (Integreted Data System) et IMS(Integreted Managment System)
développés vers 1965 respectivement par Honeywell et IBM
39
Limitation : Très limité en terme d’arbre et de relation
II. Introduction aux SGBD
4.2. SGBD réseaux ( Années 1960)
les données sont représentées dans la base sous la forme d'un
graphe quelconque qui utilise des pointeurs et qui détermine le
chemin d'accès aux données. Les nœuds constituent des articles
et les arcs du graphe constituent des pointeurs
Set
Record types
Record
Pr M.QBADOU
Exemples de SGBD réseaux
Les systèmes IDS2, IMS2, IDMS et SGBD TOTAL développés à la fin des années 60.
Limitation : Langage navigationnel basé sur des pointeurs (Très complexe)
40
II. Introduction aux SGBD
4.3. SGBD Relationnels ( années 70)
les données sont représentées dans la base sous la
forme d’un ensemble de tables à deux dimensions.
Les relations entre les tables sont réalisées en
utilisant des clés primaires et des clé étrangères.
• Structures tabulaires et relations basées sur les valeurs
des données
• Modèles basés sur le théorie mathématique des
ensembles
• Langage déclaratif (SQL), algébrique implémentant une
algèbre relationnelle
• Contraintes de cohérence et d’intégrité définies au
niveau du moteur,
Pr M.QBADOU
• cohérence transactionnelle forte,
• Optimiseur de requêtes et Indexation.
Exemples de SGBD Relationnels
Les systèmes Access, Oracle, Ingres, SqlServer, Informix, Sybase, …
Ces SGBD séparent entre la description et la manipulation des données.
Limitation : Purement adapté au transactionnel (OLTP), non adapté à l’analytique (OLAP), non
adapté aux données non structurées.
41
II. Introduction aux SGBD
4.4. SGBD Objets Nomclasse1 Nomclasse2
les données sont représentées dans la base sous la forme Propriétés(données) Propriétés
d’un ensemble d’objets coopérants et reliés. Chaque objet ppté1
…
ppté1
…
est composé d’un ensemble de donnée (propriétés) en Méthodes(fonctions) Méthodes
plus d’un ensemble de fonctions (méthodes) qui Méthode1 Méthode1
… …
manipulent ces données. L’ensemble des objets similaires
sont décrits par un même modèle appelé Classe.
• Le Schéma plus sémantique, plus proche des entités réelles,
• La création de types abstraits par l'intégration de méthodes,
• L'héritage → Schéma mieux structuré et la réutilisation des éléments de
modélisation,
• Supprimer les clés artificielles introduites dans le relationnel,
• Résout le problème de « Impedance mismatch ».
Exemples de SGBD Objets
Pr M.QBADOU
Oracle8, DB2, ObjectStore, ….
Utilisés dans les domaines : Web, CAO,
multimédia, télécommunication, …
Limites
▪ Gestion complexe des pannes → problème de fiabilité,
▪ Gestion de la concurrence (transactions) plus difficile à mettre en œuvre,
42