Vous êtes sur la page 1sur 62

Licence troisième année :

Base de Données

Rémi Eyraud
remi.eyraud@lif.univ-mrs.fr
http://www.lif.univ-mrs.fr/~reyraud/BD

1
Organisation de l'UE
● Premier cours : mardi 19 janvier, 8h30 - 10h30
● Premiers TDs : semaine du 25 janvier
● Premiers Tps : semaine du 25 janvier
● Au total :
– 10 cours
– 10 TDs
– 10 TPs dont au moins 4 concernant le projet.
● Calcul de la moyenne : (3E + 2Proj + Partiel)/6
2
Plan du cours de Base de Données
● Vaste introduction
● Le modèle relationnel
● Le langage SQL
● Les vues
● Conception de BD
● JDBC (Java Data Base Connectivity)

3
Introduction

Où trouve-t-on des bases de données ?

4
Introduction

Où trouve-t-on des bases de données ?


● médecine
● biologie
● astronomie
● administrations
● commerce et marketing
● gestion des stocks
● audiovisuel
● internet
5
Introduction

Où trouve-t-on des bases de données ?


● Gestion des données personnelles :
– agenda
– répertoire
– bibliothèque
– etc.
● loisirs
● art
● etc.

6
Introduction

Qu'est-ce qu'une base de données ?

7
Introduction

Qu'est-ce qu'une base de données ?


Une base de donnée regroupe, au sein d'un stockage
informatique, un ensemble de données de façon
suffisamment organisée (structure + relation) pour que ces
données puissent être facilement :
– retrouvées
– interrogées
– enrichies
– mises à jour
– supprimées
sans perturber la cohésion de l'ensemble (explicitée dans
l'organisation). 8
Introduction

Exemples et contre-exemples
● Toute source de donnée
● Un fichier texte
● Un ensemble de fichiers textes
● Un site internet quelconque
● Le web dans son ensemble
● Un répertoire de téléphone portable
● L'ensemble des information utilisées par la SNCF
pour l'achat d'un billet de train.
9
Introduction

Exemples et contre-exemples
● Toute source de donnée
● Un fichier texte
● Un ensemble de fichiers textes
● Un site internet quelconque
● Le web dans son ensemble
● Un répertoire de téléphone portable
● L'ensemble des informations utilisées par la
SNCF pour l'achat d'un billet de train.
10
Introduction

Usagers des BD
● Il existe 3 catégories d'usagers des bases de
données :
– les usagers interactifs
– les programmeurs d'applications
– les administrateurs

11
Usagers des Bases de Données

Les usagers interactifs


● Une personne quelconque (ne sachant même pas
qu'il utilise une BD).
– Ex.: quelqu'un consultant des horaires de trains sur le
site de la SNCF
● Une personne visualisant le contenu d'un base à
l'aide d'une interface graphique conviviale.

12
Introduction

Les programmeurs d'applications


● Construisent les interfaces destinées aux usagers
interactifs.
● Sont spécialistes d'un langage de définition et
d'interrogation de données (ex: SQL).
● Exemple : développeur web.

13
Introduction

Les administrateurs
● Définissent (parfois) et maintiennent la base de
données.
● Possèdent plus de droits sur la base.
● 2 types :
– concepteur
– administrateur
● Exemple : vous, à la fin de ce cours ☺

14
Introduction

Types de Base de Données


● 3 types :
– BD personnelles (10 à 100 Ko)
– BD professionnelles (100 Ko à 100 G)
– Très grande BD (plus de 100 G)
● Exemples :
– Répertoire téléphonique
– Données clients d'une PME
– SNCF (1,5 To en 2006)

15
Introduction

SGBD
Système de Gestion de Base de Données :
● But : simplifier la tache des usagers (tout type).
● Rôle : aide au développement et à l'exploitation des BD
● Caractéristiques :
– définition et programmation de BD
– contrôle et sécurité de BD
– optimisation des accès à la base
● fourni : le(s) langage(s) nécessaire(s)
(déclaratifs/procéduraux) à la manipulation des données
(lecture & écriture).
16
Introduction

SGBD (suite)
● Gestion des couches physiques ET logiques
● Certains SGBD intègrent des outils connexes:
– générateurs (de rapport, d'applications, d'interface, etc.)
– utilitaires (calcul de statistiques, ...)
– interface web
– outils de fouille de données
● Un administrateur doit parfaitement connaître le
SGBD de sa base.

17
Historique

Bref historique
● 3 grandes phases :
– La préhistoire (1950-1970)
– La révolution (1970)
– L'ère post-révolutionnaire

18
Historique

Historique : la pré-préhistoire
● basée sur les fichiers
● Chaque application définit et gère ses propres
fichiers, reliés par des pointeurs
● Positif : premières idées
● Négatif :
– structure du stockage visible dans le code (struct en C)
– dépendance donnée/programme (portabilité nulle)
– redondance des données (taille, maintenance, ...)
– Pas de vrai SGBD
19
Historique

Historique : la préhistoire (1965-1970)


● Approche navigationelle
● Systèmes hiérarchiques et réseaux
● A base de fichiers gérés par arborescence de
pointeurs
● Positif : plus de redondance, premier vrai SGBD
● Négatif : mélange logique/physique, accès
procéduraux (programmation lourde), “one-
record-at-a-time”
● Toujours utilisés (SGBD : IDS2, IMS2, PHOLAS)
20
Historique

Historique : la révolution
● Approche relationnelle
● Premier SGBD relationnel en 1980
● idée majeure : indépendance des données (séparation
application/implémentation)
● Positif :
– simplicité des concepts de base

– existence d'un cadre théorique simple


– modèle de données (respect de l'intégrité)
– approche déclarative de haut niveau (SQL)
– SGBD performants (accès concurrents, optimisation,
pannes)
– portabilité des bases et des applications 21
Historique

Historique : la révolution (suite)


● Négatif :
– types de données prédéfinis (inadaptés aux données complexes)
– modélisation conceptuelle pauvre
– trop grande séparation données/opération (les procédures ne
font pas parties du modèle)
– théorie relationnelle pas entièrement exploité (ex: contraintes
d'intégrité)
– grand écart entre SQL et langages de programmation
– pas adapté à la fouille
● La plupart des bases actuelles sont relationnelles (SGBDR :
Oracle, PosgreSQL, DB2, Informix, ...) 22
Historique

Historique : la nouvelle génération


● Approche post-relationnelle
● Pour des applications de + en + complexes
● 2 grandes familles :
– approche orientée objet
– approche par documents semi-structurés (XML)
● Permet une intégration des idées de l'intelligence
artificielle (base de donnée déductives)
● Pas autant utilisée que les SGBDR.

23
Modélisation des données

Plan de ce cours
● Introduction
● Modélisation des données
– principes
– différents niveaux
– modèle entité-relation
● SGBD
– objectifs
– fonctionnalités
– architectures
24
Modélisation des données

Modélisation des données


● Principe premier : séparer description des
données et manipulation par des programmes.
● description : spécification des structures des
données et de leurs types.
● manipulation : opération d'interrogation,
d'insertion, mise à jour, suppression.
● Réalisation : norme ANSI-SPARC.

25
Modélisation des données

Décrire les données : définitions


● Données = ensembles reliés par des associations
(= ensembles de liens).
Exemple : base de données cinématographique
– Ensemble des films
– Ensemble des acteurs
– Association entre les films et les acteurs (ensemble de
liens film → acteurs)
décrire les données c'est définir ces ensembles via
leur propriétés (caractéristiques)
26
Modélisation des données

Décrire les données : définitions


● 3 grandes notions :
– Type de donnée : construction informatique spécifiant un
ensemble de données via leurs caractéristiques et les
opérations applicables.
– Instance : une donnée particulière appartenant à un type
spécifié + identifiant. Créées par insertion dans la base
– Modèle de description : spécification d'un ensemble de
types, parfois graphique.
– Schéma : mise en oeuvre du modèle de description à l'aide
d'une langage de description de données (LDD).
● LDD : souvent algébrique (SQL) ne nécessite pas d'exécution.
27
Modélisation des données

Décrire les données : exemples


● Le type Entier muni des opérations standards de
l'arithmétique est un type de donnée (élémentaire). 12 est une
instance de ce type.
● Le type Film avec ses propriétés : titre, réalisateur, langues,
acteurs, durée, année, etc. muni d'opérations internes comme
traduire est un type composé.
● Le film (“Usual suspects”, “Bryan Singer”, [anglais,
français], [“Byrne”, “Spacey”, “Del Toro”], 108, 1994) est
une instance du type Film dont l'identifiant pourrait être le
produit cartésien des valeurs de chaque propriété nommée.
● Le type générique Entité avec les propriétés p1, p2...pn et les
opérations Créer, Afficher, Modifier, Supprimer. 28
Modélisation des données

Les niveaux d'abstraction


● Selon l'ANSI-X3-SPARC, 3 niveaux spécifiant
clairement le passage de la vision de chaque
utilisateur à la représentation en machine.
● facilite la construction, la maintenance,
l'évolution des BD
● Les SGBD actuels ont tendance à n'utiliser que 2
niveaux MAIS il est important de comprendre ces
3 niveaux lors de la phase de conception.

29
Modélisation des données

Le niveau conceptuel
(chapitre 2)
● Niveau le plus important, détaillé avant même la
réalisation de la base.
● Il conditionne :
– la qualité de la base
– les développements au sein du SGBD
– la perception que les utilisateurs auront de la BD
● il correspond à l'explication et la description sémantique
des concepts et des relations du domaine modélisé.
● Indépendant d'un SGBD, il reflète un réalité cohérente
du domaine ET des acteurs du domaine.
30
Modélisation des données

Le niveau conceptuel (suite)


Le schéma conceptuel d'une BD couvre (mini) :
– La référence aux concepts élémentaires. Ex.: la durée
d'un film est un entier positif correspondant au nombre
de minutes.
– La définition des types composés : regroupement des
propriétés nommées d'un ensemble d'objets. Cet
ensemble est soit un concept du monde modélisé, soit
une association entre concepts. Ex.: à suivre
– Les règles que doivent respectées les données au cours
de leur vie. Ex.: un Film doit obligatoirement avoir un
titre, un acteur doit avoir joué dans au moins un Film,
etc. 31
Modélisation des données

Le niveau conceptuel (fin)


Ex. de définition de types composés et d'associations
Types d'objets :
FILM(titre, année, durée, nbPrix, réalisateur)
ACTEUR(nom, prénom, dateNaissance, photo)
Type d'association :
CASTING(FILM, ACTEUR, personnage)

Note : toutes les relations ne sont pas explicités. Par exemple, deux
acteurs peuvent être en relation parce qu'ils ont joué dans le même film.

32
Modélisation des données

Le niveau interne
(Cours de Master 1)
● Niveau le plus proche de l'implémentation
● Concerne la façon dont les données sont stockées.
● La définition du schéma interne est donc
fortement lié au choix du SGBD.
● Contenu :
– les fichiers contenant les données
– les articles de ces fichiers (leur longueur, mode de
placement, etc.)
– le mode d'accès à ces articles
● Dérive du schéma conceptuel. 33
Modélisation des données

Le niveau interne
Exemple de schéma interne possible pour le
schéma conceptuel de filmographie.

34
Modélisation des données

Le niveau externe
(chapitre 4)
● Le niveau externe spécifie des vues différentes
associée aux différents groupes d'utilisateurs.
● Eloigné du niveau interne, dépendant du niveau
conceptuel.
● On définit donc 1 ou plusieurs schémas externes.
Chaque schéma définit la manière dont un
utilisateur perçoit la base dans ses applications.
● Il spécifie les droits d'accès.

35
Modélisation des données

Le niveau externe
Exemples de schémas externes possibles pour le
schéma conceptuel de filmographie

36
Modélisation des données

Les trois niveaux (fin)


● Les schémas externes dépendent fortement du
schéma conceptuel : impossibilité de définir certaines
vues → le gros du travail (et des difficultés) est au
niveau conceptuel.
● Figure générale de l'ANSI-SPARC :

37
Modélisation des données

Le modèle entité-relation

● But : réaliser un schéma conceptuel


● Permet : description visuelle des entités (=types
d'objets) et de liens entre elles (= relations)
● Notion principale : agrégation (= la construction
d'un objet complexe/composé à l'aide d'objets
plus élémentaires).
● monde = distinction entre agrégations de
données élémentaires (entités) et des liaisons
entre ces entités (=relations)
● Entité = agrégation d'attributs (nommés et typés)
38
Modélisation des données

Modèle entité-relation : exemple

Spécifier un schéma conceptuel revient (presque) à fournir


un modèle entité-relation et à le préciser par diverses
informations.
39
SGBD

Objectif des SGBDs


● Nous avons vu le rôle des SGBD, nous verrons leurs
principes permettant de mettre en oeuvre leurs
objectifs.
● Ces principes dépendent fortement des trois niveaux
d'abstraction : l'objectif principal est la gestion des
données en respectant l'indépendance des
programmes aux données, tant aux niveaux logiques
que physique.
● Langages de haut niveau : quoi VS comment.
S'adressent au niveau logique, stocké dans le
dictionnaire des données.
40
SGBD

Indépendance physique
● Si modification du schéma interne alors les
programmes d'applications ne sont pas modifiés.
● Modifier les propriétés de stockage ne doit pas
modifier le schéma conceptuel.
● Ex.: ajouter un index dans un fichier, fusionner
deux fichiers, changer le codage des données, ...
● L'inverse n'est pas vrai.

41
SGBD

Indépendance logique
● Le schéma conceptuel résulte d'une synthèse de la vision
d'un ensemble (de groupes) d'usagers : les entités et leurs
relations sont un consensus.
● Or, un groupe d'usagers doit pouvoir modifier son schéma
externe sans modifier le schéma conceptuel.
● Avantages :
– chaque groupe voit les données comme il veut
– un groupe peut faire évoluer sa visions sans en faire
pâtir les autres (pas toujours possible)
● l'inverse (ajout d'attributs, d'entités, d'associations au
schéma conceptuel) doit aussi être (partiellement) possible.
42
SGBD

Manipuler avec des langages non-


procéduraux
● Un usagers voit les données indépendamment de leur
implémentation machine.
● Manipulation des données (au moins consultations)
affranchie du schéma interne.
● Le moyen d'accéder et de mettre à jour les données est
le problème du SGBD.
● Langages de (très) haut niveau utilisés :
– s'adresser à la base via entités, relations et propriétés.
– Basés sur logique du premier ordre et algèbre.
– plusieurs classes (suivant usagers).
43
SGBD

Administration des données


● Vie d'une BD :
1 description (3 niveaux)
2 création
3 évolution
● Des outils d'administration des données doivent
être disponibles.
● Ex: un administrateur doit pouvoir régulièrement
contrôler les données, la résolution de conflit
entre vues, etc.
44
SGBD

Efficacité des accès


● Mesures :
– débit (nombre de transactions types par seconde)
– temps de réponse (temps moyen pour une requête type)
● Objectif des SGBD : être bons ☺
● Les petites requêtes ne doivent pas attendre la fin
des grandes (cf cours de système d'exploitation).
● Problème majeur : accès disque (10 ms).
Ex. de solution : tampons en mémoire vive.
● Autre problème : les langages de haut niveau (cf
cours de traduction et sémantique).
45
SGBD

Cohérence des données


● Respect des propriétés élémentaires.
Ex.: la durée d'un film est positive.
● La modification (ou sa suppression) d'une donnée
mène à reconsidérer d'autres données.
Ex: enlever un acteur de la base implique enlever les
données de type Casting associées.
● Un SGBD doit veiller à cette cohérence, mise en
oeuvre à l'aide de contraintes d'intégrité et de
triggers (chapitre 4).

46
SGBD

Partage et sécurité
● Les données sont accessibles simultanément par
plusieurs usagers, de manière transparente (cf SE)
● Transaction : programme consultant ou modifiant une
base dont l'exécution est indivisible.
Ex.: réservation d'un billet de train
– 2 transactions concurrentes ne doivent pas être
emmêlées (cohérence, mais pas toujours
possible).
– Sécurité :
● restauration à l'identique après une panne (une
transaction est soit pas exécutée, soit exécutée).
● gestion des droits d'accès. 47
Fonctionnalités des SGBD

Fonctionnalités des SGBD


● Pour atteindre les objectifs précédents, les SGBD
intègrent de nombreuses fonctionnalités.
● Ce qui suit ne représente que des exemples
simples (liste non-exhaustive).

48
Fonctionnalités des SGBD

Description des données


(chapitre 4)
● Réservée aux administrateurs
● Le SGBD a un langage pour décrire les données aux 3 niveaux
(de + en + souvent graphique).
● Les 3 niveaux peuvent être partiellement référencés dans le
dictionnaire des données, avec le mode de passage d'un niveau
à l'autre.
● Exemple en SQL :
CREATE TABLE Film (titre TEXT, annee DATE, duree
INTEGER, nbPrix INTEGER, realisateur VARCHAR);
CREATE INDEX idxOnAnnee ON Film (annee);
● A chaque instructions est associée des contrôles d'intégrité.
Ex.: il ne doit pas déjà exister de table nommée Film.
49
Fonctionnalités des SGBD

Interrogation de données
(dès le premier TP, chapitre 3)
● fonctionnalité majeure
● langage assertionnelle (dans SGBD) pour retrouver
des données par leur contenu, en fonction du schéma
conceptuel, à condition d'être disponibles dans le
schéma externe en question.
● SQL se base sur la notion de qualification (= une
expression logique de critères simples). Les données
sont alors comparables (entre elles, avec une valeur
donnée, ...)
● Une autre fonctionnalité : la navigation dans les
descriptions (parcours d'association)
50
Fonctionnalités des SGBD

Interrogation de données : exemples


Sélection des titres de films ayant été tournés après 1997:
SELECT titre
FROM Film
WHERE annee > TO_DATE('1997',yyyy);
Sélection du nombre de prix de chaque film, indiqué par
son titre, dont ce titre contient le mot “suspect”:
SELECT titre, nbPrix
FROM Film
WHERE titre LIKE '%suspect%';

51
Fonctionnalités des SGBD

Ajout et mise à jour


● Un SGBD doit permettre l'ajout, la modification
et la suppression de données en maintenant la
cohérence.
● La modification est souvent précédée d'une
interrogation de la base.
● Lors d'une suppression, des conséquences en
cascade peuvent intervenir : le SGBD doit
permettre de spécifier le comportement du
modèle dans de tel cas.

52
Fonctionnalités des SGBD

Ajout et mise à jour : exemples


Modification de la description d'une entité
ALTER TABLE Acteur ADD (initiales VARCHAR);
Ajout d'un Film
INSERT INTO Film ('Into the wild', TO_DATE('2008',yyyy), 147,
0, 'Penn');
Ajout des initiales pour chaque acteur (modification de données)
UPDATE TABLE Acteur
SET initiales=FIRST(nom) + '.' + FIRST(prenom) + '.';
Suppression de données
DELETE FROM Casting WHERE personnage='Popeye';
53
Fonctionnalités des SGBD

Transformation de données
● Dans un SGBD à 3 niveaux d'abstraction il existe 2
niveaux de transformation :
– conceptuel → interne (et réciproquement)
– conceptuel → externe (et réciproquement)
● S'appuient sur les règles de correspondance entre
les 3 niveaux, établies par les concepteurs lors de la
définition des schémas.
● La définition de ces règles est réalisée à l'aide de
requêtes, implicites au niveau des schémas.

54
Fonctionnalités des SGBD

Transformation de données : exemple

55
Fonctionnalités des SGBD

Gestion de l'intégrité
● Un SGBD maintient la cohérence de la base à
condition que les règles de cohérence soient
explicitées :
1 chaque instance d'entité est muni d'un identifiant
unique (contrainte de clé primaire)
2 Une relation associe deux entités (contrainte
référentielle)
3 les valeurs des attributs d'entités doivent appartenir à
un type donné (contrainte de domaine).
● D'autres contraintes existent.
56
Architectures principales

Architectures principales
● Pour atteindre ces objectifs, plusieurs existent.
● Celle de l'ANSI-SPARC est une architecture
idéale.
● Actuellement les SGBD ont presque tous une
architecture client/serveur

57
Architectures principales

Architecture ANSI-SPARC
● processeur : compile et vérifie les schémas et les règles
de correspondance entre eux. S'il n'y a pas d'erreur le
résultat est stocké dans le dictionnaire.
● interfaces :
– lieu de création des schémas et de la définition des
correspondances
– lieu d'accès aux données
● limitations :
– suppose l'existence d'une base unique
– trop grande distinction langage de description / de
manipulation
– limites théoriques de mise à jour des vues
58
Architectures principales

Architecture ANSI-SPARC

59
Architectures principales

Architecture fonctionnelle classique


● Les niveaux interne et conceptuel fusionnent : le
véritable niveau conceptuel est réaliser via des
outils externes au SGBD.
● métabase = dictionnaire de données sous forme
de base de données.

60
Architectures principales

Architecture fonctionnelle classique

61
Quelques repères bibliographiques
● La bible francophone : “Bases de données”,
Georges Gardarin, éditions Eyrolles
● Le site web de l'auteur :
http://georges.gardarin.free.fr/Livre%20BD.htm
● Anglophone : “Rdb: A Comprehensive Guide”
(Broché), Ken England, Lilian Hobbs, Ian Smith.
● Plein de sites web “tutoriels” sur Oracle.

62