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)
• C’est 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 d’un 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 offertes par un SGBD
• Définition des données
• Manipulation des données
• Intégrité des données
• Gestion des accès concurrents
• Sé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)
• Dé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 effets, ou aucun d’eux
–Cohérence: la transaction fait passer d’un état
cohérent à un état cohérent
–Isolation: les effets d’une transaction sont
invisibles aux autres tant qu’elle n’est pas
validée
–Durabilité: lorsqu’une transaction est validée,
ses effets 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 d’optimisation choisit le meilleur plan
d’exécution
Plan d’exé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 l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!