Upload
alimasaoudi
View
221
Download
0
Embed Size (px)
Citation preview
8/7/2019 Base de Donnes_Cours
1/62
1
Licence troisime anne :
Base de Donnes
Rmi [email protected]://www.lif.univ-mrs.fr/~reyraud/BD
mailto:[email protected]://www.lif.univ-mrs.fr/~reyraudhttp://www.lif.univ-mrs.fr/~reyraudmailto:[email protected]8/7/2019 Base de Donnes_Cours
2/62
2
Organisation de l'UE
Premier cours : mardi 19 janvier, 8h308h30 - 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
8/7/2019 Base de Donnes_Cours
3/62
3
Plan du cours de Base de Donnes
Vaste introduction
Le modle relationnel
Le langage SQL Les vues
Conception de BD
JDBC (Java Data Base Connectivity)
8/7/2019 Base de Donnes_Cours
4/624
O trouve-t-on des bases de donnes ?
Introduction
8/7/2019 Base de Donnes_Cours
5/625
O trouve-t-on des bases de donnes ?
mdecine
biologie
astronomie administrations
commerce et marketing
gestion des stocks
audiovisuel
internet
Introduction
8/7/2019 Base de Donnes_Cours
6/626
O trouve-t-on des bases de donnes ?
Gestion des donnes personnelles :
agenda
rpertoire bibliothque
etc.
loisirs art
etc.
Introduction
8/7/2019 Base de Donnes_Cours
7/627
Qu'est-ce qu'une base de donnes ?
Introduction
8/7/2019 Base de Donnes_Cours
8/628
Qu'est-ce qu'une base de donnes ?
Unebase de donne regroupe, au sein d'un stockageinformatique, un ensemble de donnes de faonsuffisamment organise (structure + relation) pour que ces
donnes puissent tre facilement : retrouves
interroges
enrichies mises jour
supprimes
sans perturber la cohsion de l'ensemble (explicite dans
l'organisation).
Introduction
8/7/2019 Base de Donnes_Cours
9/62
9
Exemples et contre-exemples
Toute source de donne
Un fichier texte
Un ensemble de fichiers textes Un site internet quelconque
Le web dans son ensemble
Un rpertoire de tlphone portable
L'ensemble des information utilises par la SNCFpour l'achat d'un billet de train.
Introduction
8/7/2019 Base de Donnes_Cours
10/62
10
Exemples et contre-exemples
Toute source de donne
Un fichier texte
Un ensemble de fichiers textes Un site internet quelconque
Le web dans son ensemble
Un rpertoire de tlphone portable
L'ensemble des informations utilises par laSNCF pour l'achat d'un billet de train.
Introduction
8/7/2019 Base de Donnes_Cours
11/62
11
Usagers des BD
Il existe 3 catgories d'usagers des bases dedonnes :
les usagers interactifs
les programmeurs d'applications
les administrateurs
Introduction
Usagers des Bases de Donnes
8/7/2019 Base de Donnes_Cours
12/62
12
Les usagers interactifs
Une personne quelconque (ne sachant mme pasqu'il utilise une BD).
Ex.: quelqu'un consultant des horaires de trains sur lesite de la SNCF
Une personne visualisant le contenu d'un base l'aide d'une interface graphique conviviale.
Introduction
8/7/2019 Base de Donnes_Cours
13/62
13
Les programmeurs d'applications
Construisent les interfaces destines aux usagersinteractifs.
Sont spcialistes d'un langage de dfinition etd'interrogation de donnes (ex: SQL).
Exemple : dveloppeur web.
Introduction
8/7/2019 Base de Donnes_Cours
14/62
14
Les administrateurs
Dfinissent (parfois) et maintiennent la base dedonnes.
Possdent plus de droits sur la base. 2 types :
concepteur
administrateur Exemple : vous, la fin de ce cours
Introduction
8/7/2019 Base de Donnes_Cours
15/62
15
Types de Base de Donnes
3 types :
BD personnelles (10 100 Ko)
BD professionnelles (100 Ko 100 G) Trs grande BD (plus de 100 G)
Exemples :
Rpertoire tlphonique Donnes clients d'une PME
SNCF (1,5 To en 2006)
Introduction
8/7/2019 Base de Donnes_Cours
16/62
16
SGBD
Systme de Gestion de Base de Donnes :
But : simplifier la tache des usagers (tout type).
Rle : aide au dveloppement et l'exploitation des BD Caractristiques :
dfinition et programmation de BD
contrle et scurit de BD optimisation des accs la base
fourni : le(s) langage(s) ncessaire(s)(dclaratifs/procduraux) la manipulation des donnes
(lecture & criture). Introduction
8/7/2019 Base de Donnes_Cours
17/62
17
SGBD (suite)
Gestion des couchesphysiques ET logiques
Certains SGBD intgrent des outils connexes:
gnrateurs (de rapport, d'applications, d'interface, etc.) utilitaires (calcul de statistiques, ...)
interface web
outils de fouille de donnes Un administrateur doit parfaitement connatre le
SGBD de sa base.
Historique
8/7/2019 Base de Donnes_Cours
18/62
18
Bref historique
3 grandes phases :
La prhistoire (1950-1970)
La rvolution (1970) L're post-rvolutionnaire
Historique
8/7/2019 Base de Donnes_Cours
19/62
19
Historique : la pr-prhistoire
base sur les fichiers
Chaque application dfinit et gre ses propres
fichiers, relis par des pointeurs Positif: premires ides
Ngatif:
structure du stockage visible dans le code (structen C) dpendance donne/programme (portabilit nulle)
redondance des donnes (taille, maintenance, ...)
Pas de vrai SGBD
Historique
8/7/2019 Base de Donnes_Cours
20/62
20
Historique : la prhistoire (1965-1970)
Approche navigationelle
Systmes hirarchiques et rseaux
A base de fichiers grs par arborescence depointeurs
Positif: plus de redondance, premier vrai SGBD
Ngatif: mlange logique/physique, accsprocduraux (programmation lourde), one-record-at-a-time
Toujours utiliss (SGBD : IDS2, IMS2, PHOLAS)
Historique
8/7/2019 Base de Donnes_Cours
21/62
21
Historique : la rvolution Approche relationnelle
Premier SGBD relationnel en 1980
ide majeure : indpendance des donnes (sparationapplication/implmentation)
Positif: simplicit des concepts de base
existence d'un cadre thorique simple
modle de donnes (respect de l'intgrit)
approche dclarative de haut niveau (SQL)
SGBD performants (accs concurrents, optimisation,pannes)
portabilit des bases et des applications Historique
8/7/2019 Base de Donnes_Cours
22/62
22
Historique : la rvolution (suite)
Ngatif:
types de donnes prdfinis (inadapts aux donnes complexes)
modlisation conceptuelle pauvre
trop grande sparation donnes/opration (les procdures nefont pas parties du modle)
thorie relationnelle pas entirement exploit (ex: contraintesd'intgrit)
grand cart entre SQL et langages de programmation
pas adapt la fouille
La plupart des bases actuelles sont relationnelles (SGBDR :
Oracle, PosgreSQL, DB2, Informix, ...) Historique
8/7/2019 Base de Donnes_Cours
23/62
23
Historique : la nouvelle gnration
Approche post-relationnelle
Pour des applications de + en + complexes
2 grandes familles : approche oriente objet
approche par documents semi-structurs (XML)
Permet une intgration des ides de l'intelligenceartificielle (base de donne dductives)
Pas autant utilise que les SGBDR.
Modlisation des donnes
8/7/2019 Base de Donnes_Cours
24/62
24
Plan de ce cours
Introduction
Modlisation des donnes
principes diffrents niveaux
modle entit-relation
SGBD objectifs
fonctionnalits
architectures
Modlisation des donnes
8/7/2019 Base de Donnes_Cours
25/62
25
Modlisation des donnes
Principe premier : sparerdescription desdonnes et manipulation par des programmes.
description : spcification des structures desdonnes et de leurs types.
manipulation : opration d'interrogation,d'insertion, mise jour, suppression.
Ralisation : norme ANSI-SPARC.
Modlisation des donnes
8/7/2019 Base de Donnes_Cours
26/62
26
Dcrire les donnes : dfinitions
Donnes = ensembles relis par des associations(= ensembles de liens).
Exemple : base de donnes cinmatographique
Ensemble des films
Ensemble des acteurs
Association entre les films et les acteurs (ensemble de
liens film acteurs)
dcrire les donnes c'est dfinir ces ensembles vialeur proprits (caractristiques)
Modlisation des donnes
8/7/2019 Base de Donnes_Cours
27/62
27
Dcrire les donnes : dfinitions
3 grandes notions :
Type de donne : construction informatique spcifiant unensemble de donnes via leurs caractristiques et les
oprations applicables. Instance : une donne particulire appartenant un type
spcifi + identifiant. Cres par insertion dans la base
Modle de description : spcification d'un ensemble de
types, parfois graphique.
Schma : mise en oeuvre du modle de description l'aided'une langage de description de donnes (LDD).
LDD : souvent algbrique (SQL) ne ncessite pas d'excution.
Modlisation des donnes
8/7/2019 Base de Donnes_Cours
28/62
28
Dcrire les donnes : exemples
Le typeEntiermuni des oprations standards del'arithmtique est un type de donne (lmentaire). 12 est uneinstance de ce type.
Le typeFilm avec sesproprits : titre, ralisateur, langues,acteurs, dure, anne, etc. muni d'oprations internes commetraduire est un type compos.
Le film (Usual suspects, Bryan Singer, [anglais,
franais], [Byrne, Spacey, Del Toro], 108, 1994) estune instance du typeFilm dont l'identifiant pourrait tre le
produit cartsien des valeurs de chaqueproprit nomme.
Le type gnriqueEntitavec les proprits p1, p2...pn et les
oprations Crer, Afficher, Modifier, Supprimer. Modlisation des donnes
8/7/2019 Base de Donnes_Cours
29/62
29
Les niveaux d'abstraction
Selon l'ANSI-X3-SPARC, 3 niveaux spcifiantclairement le passage de la vision de chaqueutilisateur la reprsentation 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 ces3 niveaux lors de la phase de conception.
Modlisation des donnes
8/7/2019 Base de Donnes_Cours
30/62
30
Le niveau conceptuel(chapitre 2)
Niveau le plus important, dtaill avant mme laralisation de la base.
Il conditionne :
la qualit de la base
les dveloppements au sein du SGBD
la perception que les utilisateurs auront de la BD
il correspond l'explication et la description smantiquedes concepts et des relations du domaine modlis.
Indpendant d'un SGBD, il reflte un ralit cohrentedu domaine ET des acteurs du domaine.
Modlisation des donnes
8/7/2019 Base de Donnes_Cours
31/62
31
Le niveau conceptuel (suite)
Le schma conceptuel d'une BD couvre (mini) :
La rfrence aux concepts lmentaires. Ex.: la dured'un film est un entier positif correspondant au nombre
de minutes.
La dfinition des types composs : regroupement desproprits nommes d'un ensemble d'objets. Cetensemble est soit un concept du monde modlis, soit
une association entre concepts. Ex.: suivre Les rgles que doivent respectes les donnes au cours
de leur vie. Ex.: unFilm doit obligatoirement avoir untitre, un acteurdoit avoir jou dans au moins unFilm,
etc. Modlisation des donnes
8/7/2019 Base de Donnes_Cours
32/62
32
Le niveau conceptuel (fin)
Ex. de dfinition de types composs et d'associations
Types d'objets :
FILM(titre, anne, dure, nbPrix, ralisateur)
ACTEUR(nom, prnom, dateNaissance, photo)
Type d'association :
CASTING(FILM, ACTEUR, personnage)
Note : toutes les relations ne sont pas explicits. Par exemple, deuxacteurs peuvent tre en relation parce qu'ils ont jou dans le mme film.
L i i
Modlisation des donnes
8/7/2019 Base de Donnes_Cours
33/62
33
Le niveau interne(Cours de Master 1)
Niveau le plus proche de l'implmentation
Concerne la faon dont les donnes sont stockes.
La dfinition du schma interne est doncfortement li au choix du SGBD.
Contenu :
les fichiers contenant les donnes
les articles de ces fichiers (leur longueur, mode deplacement, etc.)
le mode d'accs ces articles
Drive du schma conceptuel.
Modlisation des donnes
8/7/2019 Base de Donnes_Cours
34/62
34
Le niveau interne
Exemple de schma interne possible pour leschma conceptuel de filmographie.
Modlisation des donnes
8/7/2019 Base de Donnes_Cours
35/62
35
Le niveau externe(chapitre 4)
Le niveau externe spcifie des vues diffrentesassocie aux diffrents groupes d'utilisateurs.
Eloign du niveau interne, dpendant du niveauconceptuel.
On dfinit donc 1 ou plusieurs schmas externes.Chaque schma dfinit la manire dont un
utilisateur peroit la base dans ses applications. Il spcifie les droits d'accs.
L i t
Modlisation des donnes
8/7/2019 Base de Donnes_Cours
36/62
36
Le niveau externe
Exemples de schmas externes possibles pour leschma conceptuel de filmographie
Modlisation des donnes
8/7/2019 Base de Donnes_Cours
37/62
37
Les trois niveaux (fin)
Les schmas externes dpendent fortement duschma conceptuel : impossibilit de dfinir certainesvues le gros du travail (et des difficults) est auniveau conceptuel.
Figure gnrale de l'ANSI-SPARC :
Modlisation des donnes
8/7/2019 Base de Donnes_Cours
38/62
38
Le modle entit-relation
But : raliser un schma conceptuel
Permet : description visuelle des entits (=typesd'objets) et de liens entre elles (= relations)
Notion principale : agrgation (= la constructiond'un objet complexe/compos l'aide d'objets
plus lmentaires).
monde = distinction entre agrgations dedonnes lmentaires (entits) et des liaisonsentre ces entits (=relations)
Entit = agrgation d'attributs (nomms et typs)
Modlisation des donnes
8/7/2019 Base de Donnes_Cours
39/62
39
Modle entit-relation : exemple
Spcifier un schma conceptuel revient (presque) fournirun modle entit-relation et le prciser par diversesinformations.
Obj tif d SGBD
SGBD
8/7/2019 Base de Donnes_Cours
40/62
40
Objectif des SGBDs
Nous avons vu le rle des SGBD, nous verrons leursprincipes permettant de mettre en oeuvre leursobjectifs.
Ces principes dpendent fortement des trois niveauxd'abstraction : l'objectif principal est la gestion desdonnes en respectant l'indpendance des
programmes aux donnes, tant aux niveaux logiques
que physique. Langages de haut niveau : quoi VScomment.
S'adressent au niveau logique, stock dans ledictionnaire des donnes.
SGBD
8/7/2019 Base de Donnes_Cours
41/62
41
Indpendance physique
Si modification du schma interne alors lesprogrammes d'applications ne sont pas modifis.
Modifier les proprits de stockage ne doit pasmodifier le schma conceptuel.
Ex.: ajouter un index dans un fichier, fusionnerdeux fichiers, changer le codage des donnes, ...
L'inverse n'est pas vrai.
SGBD
8/7/2019 Base de Donnes_Cours
42/62
42
Indpendance logique
Le schma conceptuel rsulte d'une synthse de la visiond'un ensemble (de groupes) d'usagers : les entits et leursrelations sont un consensus.
Or, un groupe d'usagers doitpouvoir modifier son schma
externe sans modifier le schma conceptuel. Avantages :
chaque groupe voit les donnes comme il veut
un groupe peut faire voluer sa visions sans en faireptir les autres (pas toujours possible)
l'inverse (ajout d'attributs, d'entits, d'associations auschma conceptuel) doit aussi tre (partiellement) possible.
Manipuler avec des langages non-SGBD
8/7/2019 Base de Donnes_Cours
43/62
43
Manipuler avec des langages non-procduraux
Un usagers voit les donnes indpendamment de leurimplmentation machine.
Manipulation des donnes (au moins consultations)
affranchie du schma interne. Le moyen d'accder et de mettre jour les donnes est
le problme du SGBD.
Langages de (trs) haut niveau utiliss : s'adresser la base via entits, relations et proprits.
Bass sur logique du premier ordre et algbre.
plusieurs classes (suivant usagers).
SGBD
8/7/2019 Base de Donnes_Cours
44/62
44
Administration des donnes
Vie d'une BD :
1 description (3 niveaux)
2 cration
3 volution
Des outils d'administration des donnes doiventtre disponibles.
Ex: un administrateur doit pouvoir rgulirementcontrler les donnes, la rsolution de conflitentre vues, etc.
Efficacit des accsSGBD
8/7/2019 Base de Donnes_Cours
45/62
45
Efficacit des accs
Mesures : dbit (nombre de transactions types par seconde)
temps de rponse (temps moyen pour une requte type)
Objectif des SGBD : tre bons Les petites requtes ne doivent pas attendre la fin
des grandes (cfcours desystme d'exploitation).
Problme majeur : accs disque (10 ms).Ex. de solution : tampons en mmoire vive.
Autre problme : les langages de haut niveau (cfcours de traduction et smantique).
SGBD
8/7/2019 Base de Donnes_Cours
46/62
46
Cohrence des donnes
Respect des proprits lmentaires.
Ex.: la dure d'un film est positive.
La modification (ou sa suppression) d'une donnemne reconsidrerd'autres donnes.
Ex: enlever un acteur de la base implique enlever lesdonnes de type Casting associes.
Un SGBD doit veiller cette cohrence, mise enoeuvre l'aide de contraintes d'intgrit et detriggers (chapitre 4).
Partage et scurit
SGBD
8/7/2019 Base de Donnes_Cours
47/62
47
Partage et scurit
Les donnes sont accessibles simultanment parplusieurs usagers, de manire transparente (cf SE)
Transaction : programme consultant ou modifiant unebase dont l'excution est indivisible.
Ex.: rservation d'un billet de train
2 transactions concurrentes ne doivent pas treemmles (cohrence, mais pas toujours
possible). Scurit :
restauration l'identique aprs une panne (unetransaction est soit pas excute, soit excute).
gestion des droits d'accs.
Fonctionnalits des SGBD
8/7/2019 Base de Donnes_Cours
48/62
48
Fonctionnalits des SGBD
Pour atteindre les objectifs prcdents, les SGBDintgrent de nombreuses fonctionnalits.
Ce qui suit ne reprsente que des exemples
simples (liste non-exhaustive).
Description des donnesFonctionnalits des SGBD
8/7/2019 Base de Donnes_Cours
49/62
49
p(chapitre 4)
Rserve aux administrateurs Le SGBD a un langage pour dcrire les donnes aux 3 niveaux
(de + en + souvent graphique).
Les 3 niveaux peuvent tre partiellement rfrencs dans le
dictionnaire des donnes, 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 associe des contrles d'intgrit.Ex.: il ne doit pas dj exister de table nomme Film.
Interrogation de donnesFonctionnalits des SGBD
8/7/2019 Base de Donnes_Cours
50/62
50
g(ds le premier TP, chapitre 3)
fonctionnalit majeure langage assertionnelle (dans SGBD) pour retrouver
des donnespar leur contenu, en fonction du schmaconceptuel, condition d'tre disponibles dans le
schma externe en question. SQL se base sur la notion de qualification (= une
expression logique de critres simples). Les donnes
sont alors comparables (entre elles, avec une valeurdonne, ...)
Une autre fonctionnalit : la navigation dans lesdescriptions (parcours d'association)
Fonctionnalits des SGBD
8/7/2019 Base de Donnes_Cours
51/62
51
Interrogation de donnes : exemples
Slection des titres de films ayant t tourns aprs 1997:
SELECT titre
FROM Film
WHERE annee > TO_DATE('1997',yyyy);
Slection du nombre de prix de chaque film, indiqu parson titre, dont ce titre contient le mot suspect:
SELECT titre, nbPrixFROM Film
WHERE titre LIKE '%suspect%';
Fonctionnalits des SGBD
8/7/2019 Base de Donnes_Cours
52/62
52
Ajout et mise jour
Un SGBD doit permettre l'ajout, la modificationet la suppression de donnes en maintenant lacohrence.
La modification est souvent prcde d'uneinterrogation de la base.
Lors d'une suppression, des consquences en
cascade peuvent intervenir : le SGBD doitpermettre de spcifier le comportement dumodle dans de tel cas.
Fonctionnalits des SGBD
8/7/2019 Base de Donnes_Cours
53/62
53
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 donnes)
UPDATE TABLE Acteur
SET initiales=FIRST(nom) + '.' + FIRST(prenom) + '.';
Suppression de donnes
DELETE FROM Casting WHERE personnage='Popeye';
Transformation de donnes
Fonctionnalits des SGBD
8/7/2019 Base de Donnes_Cours
54/62
54
Transformation de donnes
Dans un SGBD 3 niveaux d'abstraction il existe 2niveaux de transformation :
conceptuel interne (et rciproquement)
conceptuel externe (et rciproquement) S'appuient sur les rgles de correspondance entre
les 3 niveaux, tablies par les concepteurs lors de ladfinition des schmas.
La dfinition de ces rgles est ralise l'aide derequtes, implicites au niveau des schmas.
Transformation de donnes : exempleFonctionnalits des SGBD
8/7/2019 Base de Donnes_Cours
55/62
55 Fonctionnalits des SGBD
8/7/2019 Base de Donnes_Cours
56/62
56
Gestion de l'intgrit
Un SGBD maintient la cohrence de la base condition que les rgles de cohrence soientexplicites :
1 chaque instance d'entit est muni d'un identifiantunique (contrainte de cl primaire)
2 Une relation associe deux entits (contrainterfrentielle)
3 les valeurs des attributs d'entits doivent appartenir un type donn (contrainte de domaine).
D'autres contraintes existent.
Architectures principales
8/7/2019 Base de Donnes_Cours
57/62
57
Architectures principales
Pour atteindre ces objectifs, plusieurs existent.
Celle de l'ANSI-SPARC est une architectureidale.
Actuellement les SGBD ont presque tous unearchitecture client/serveur
Architecture ANSI-SPARC
Architectures principales
8/7/2019 Base de Donnes_Cours
58/62
58
processeur: compile et vrifie les schmas et les rglesde correspondance entre eux. S'il n'y a pas d'erreur lersultat est stock dans le dictionnaire.
interfaces :
lieu de cration des schmas et de la dfinition descorrespondances
lieu d'accs aux donnes
limitations :
suppose l'existence d'unebase unique
trop grande distinction langage de description / demanipulation
limites thoriques de mise jour des vues
Architecture ANSI-SPARC
Architectures principales
8/7/2019 Base de Donnes_Cours
59/62
59
A hi f i ll l i
Architectures principales
8/7/2019 Base de Donnes_Cours
60/62
60
Architecture fonctionnelle classique
Les niveaux interne et conceptuel fusionnent : levritable niveau conceptuel est raliser via desoutils externes au SGBD.
mtabase = dictionnaire de donnes sous formede base de donnes.
Architecture fonctionnelle classique
Architectures principales
8/7/2019 Base de Donnes_Cours
61/62
61
Q l bibli hi
8/7/2019 Base de Donnes_Cours
62/62
62
Quelques repres bibliographiques
La bible francophone : Bases de donnes,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.
http://georges.gardarin.free.fr/Livre%20BD.htmhttp://georges.gardarin.free.fr/Livre%20BD.htm