1
Introduction aux bases de
données
Olivier Perrin
Olivier.Perrin@loria.fr
2
Plan
• Motivations
Algèbre relationnelle
• SQL
Mises à jour, vues, contraintes
3
Qu’est-ce qu’un SGBD
Système de Gestion de Base de Données =
SGBD (SGBD Relationnel = SGBD-R)
Cest un programme qui rend plus simple
la manipulation de grandes quantités de
données
Il vous permet de ne pas penser aux
détails, mais de vous concentrer sur les
objectifs de votre application
4
Où utilise-t-on des SGBD ?
Backend pour les applications de gestion
traditionnelles
étudiants à l’Université
applications bancaires
réservations (SNCF, avion,…)
– …
Backend pour les sites Web (Amazon,…)
Backend pour les services Web
5
Une application classique
On veut construire un système qui permet
de gérer les informations concernant:
les étudiants
les cours
les professeurs
Qui suit tel cours, qui enseigne quoi ?
6
Gestion des données
La gestion des données est plus que la
gestion d’une base de données
• Imaginons:
disponibilité complète des données
n’importe où, n’importe quand
<votre application favorite>
Les techniques abordées dans ce cours
sont les principes pour gérer des données,
peu importe où et quand
7
Peut-on faire la même chose sans
SGBD ?
Sans problème !
On commence par stocker les données dans
les fichiers:
Et puis on écrit les programmes C ou Java qui
implantent les fonctionnalités voulues
Etudiant.txt Cours.txt Professeurs.txt
8
Sans un SGBD…
Ajouter “Pierre Martin” dans
CoursSGBD1”
Écrire un programme qui
Lit “étudiants.txt”
Lit “cours.txt”
Cherche et màj “Pierre Martin
Cherche et màj “CoursSGBD1”
Écrit “étudiants.txt”
Écrit “cours.txt”
9
Problèmes sans un SGBD…
Crash système:
quel est le problème ?
Beaucoup de données (disons 50 GB)
quel est le problème ?
Accès simultanés par plusieurs utilisateurs
besoin de verrous: au niveau OS, mais
maintenant au niveau données, pas très drôle
à manipuler et implanter
Lit “étudiants.txt”
Lit “cours.txt”
Cherche et màj “Pierre Martin”
Cherche et màj “CoursSGBD1”
Écrit “étudiants.txt”
Écrit “cours.txt” Crash !
10
Un SGBD
Système 2/3
Fichiers de
données
Serveur Applications
11
Fonctionnalités dun SGBD
Le programmeur voit SQL, à deux niveaux:
Data Definition Language - DDL
Data Manipulation Language - DML
c’est le langage de requête
Derrière, il y a:
l’optimisation des requêtes
le moteur de traitement des requêtes
la gestion du stockage
la gestion des transactions (concurrence,
récupérations)
Fonctions oertes par un SGBD
Définition des données
Manipulation des données
Intégrité des données
Gestion des accès concurrents
curité de fonctionnement
• Confidentialité
12
13
Comment le programmeur voit-il
le SGBD ?
Il utilise le DDL pour créer des tables:
Il utilise ensuite le DML pour peupler ou
interroger les tables:
CREATE TABLE Etudiant (
Nom CHAR(30)
NSS CHAR(9) PRIMARY KEY NOT NULL,
Diplôme CHAR(20)
) . . .
INSERT INTO Etudiant
VALUES(“Charles”, “123456789”, “LicencePro”)
14
Comment le programmeur voit-il
le SGBD ? (2)
• Tables
Implanté également avec des fichiers, mais
avec de nombreuses fonctionnalités
independance des données et des traitements
= séparer la vue logique de l’implantation
physique
NSS
Nom
Diplôme
123456789
Martin
LPro
123456879
Durand
DUT 2
NSS
123456789
123456879
CID
Nom
Semestre
CS123
SGBD
S1
CS456
Java
S3
Etudiant
Suit
Cours
15
Construire une application avec
un SGBD
• Modélisation
quelles sont les entités qui font partie de
l’application, et quels sont leurs liens
Conception et implantation
l’ensemble des tables, des attributs
création des tables dans le SGBD
remplissage de la base (insertion des n-uplets)
veloppement de l’application qui va utiliser la
base
plus facile puisque la gestion des données est prise en
charge par le SGBD
16
Transactions
“Pierre Martin” suit “CoursSGBD1”
Si le système plante, la transaction est soit
validée, soit annulée
BEGIN TRANSACTION;
INSERT INTO Suit
SELECT Etudiant.NSS, Cours.CID
FROM Etudiant, Cours
WHERE Etudiant.nom = “Pierre Martin” and
Cours.nom = “CoursSGBD1”
-- autres instructions
IF tout-est-OK
THEN COMMIT;
ELSE ROLLBACK
17
Transactions (2)
Une transaction = séquence d’instructions
qui réussissent toutes, ou échouent toutes
Propriétés ACID:
Atomicité: tous les eets, ou aucun d’eux
Cohérence: la transaction fait passer d’un état
cohérent à un état cohérent
Isolation: les eets d’une transaction sont
invisibles aux autres tant quelle nest pas
validée
Durabilité: lorsqu’une transaction est validée,
ses eets persistent
18
Reqûetes
Trouver tous les cours que Pierre suit ?
Que se passe-t-il au niveau du SGBD ?
le moteur de traitement des requêtes cherche
à répondre de manière optimale à la requête
SELECT C.nom
FROM Etudiant E, Suit S, Cours C
WHERE E. nom =“Pierre” and
E.nss = S. nss and S.cid = C.cid
19
Requêtes, derrière la scène
Requête SQL déclarative
Le moteur doptimisation choisit le meilleur plan
d’exécution
Plan dexécution impératif
SELECT C.nom
FROM Etudiant E, Suit S, Cours C
WHERE E. nom =“Pierre” and
E.nss = S. nss and S.cid = C.cid
nom
!cid=cid
!nss=nss
σnom="Pierre"
Etudiant Suit Cours
20
SGBD
Les commerciaux:
Oracle
IBM (avec DB2)
Microsoft (SQL Server)
– Sybase
Les open source (Unix) :
– PostgreSQL
– Mysql
1 / 38 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !