Bases de données - Introduction
-
Upload
truongliem -
Category
Documents
-
view
242 -
download
0
Transcript of Bases de données - Introduction
Bases de données - Introduction
Serge Abiteboul
INRIA
April 3, 2009
Serge Abiteboul (INRIA) Bases de données - Introduction April 3, 2009 1 / 29
Contact
Serge AbiteboulI.N.R.I.A., Saclay, Ile de [email protected]: Serge Abiteboul
Serge Abiteboul (INRIA) Bases de données - Introduction April 3, 2009 2 / 29
Plan du cours
1 Introduction2 Le Modèle Relationnel3 La Gestion de Fichiers4 Optimisation de Requêtes5 Transactions et Concurrence6 Pannes, BD Distribuées7 ( Les Contraintes d’intégrité )8 ( SGBD Déductifs )
Et un peu de Web si on a le temps
Serge Abiteboul (INRIA) Bases de données - Introduction April 3, 2009 3 / 29
Bibliographie
Les basesKorth H.F., Silberschatz A., Database System ConceptsPlus completUllman J.D., Principles of Database and Knowledge-BaseSystems, 2 volumes, Computer Science PressLa théorie sous-jascenteAbiteboul S, R. Hull et V. Vianu, Foundations ofDatabases, Addison-WesleyLes bases en françaisDelobel A. et M. Adiba, Bases de Données et SystèmesRelationnels, Dunod Informatique
Serge Abiteboul (INRIA) Bases de données - Introduction April 3, 2009 4 / 29
Introduction
Début de l’informatique :systèmes pour calculer (e.g. équations différentielles)Tendance actuelle :gestion de grosses quantités d’information (e.g. banque,bibliothèque, minitel)Problème : comment stocker et manipuler ces données ?
DONNES → BASE DE DONNESLOGICIEL → SGBD
Intermédiaire entre un être humain et les données
Serge Abiteboul (INRIA) Bases de données - Introduction April 3, 2009 5 / 29
Introduction
Caractéristiques :persistance des données (années)taille de ces données (Giga octets)accès diversifiés (partage, utilisateurs, programmes)protection des données
Exemple d’applications :Gestion (paye, stock,...)Transactionnel (banque, centrale d’achat...)Documentation (bibliothèque,...)Génie logicielEngineeringIA
Serge Abiteboul (INRIA) Bases de données - Introduction April 3, 2009 6 / 29
Diversité→ complexité
1 Utilisations:1 Utilisateurs: administrateurs, programmeurs, secrétaires...2 interfaces: langages BD, menus, saisies, rapports...
2 Modèles de données: réseau, hiérarchique, relationnel,entité-relation, orienté-objet, modèles sémantiques...
3 Supports physiques:1 Nature: disque (optique), bandes, réseaux...2 Organisation: index, arbre-B, hachage...3 Géographie: BD distribuées
Serge Abiteboul (INRIA) Bases de données - Introduction April 3, 2009 7 / 29
Fonctionnalités et architecture
Niveau physiqueGestion de mémoire secondairedonnées (fichiers), schéma, indexGestion concurrence et pannes
Niveau conceptuelCompilation (langage de description de données(LDD), langage de manipulation (LMD), etc.)Optimisation des requêtesGestion de la confidentialité et intégrité
Niveau externeenvironnement de programmationinterfaces graphiquesoutils d’aides (e.g. conception de schémas)débogueurs
Serge Abiteboul (INRIA) Bases de données - Introduction April 3, 2009 8 / 29
vue 3vue 2vue 1NIVEAU EXTERNE
NIVEAU LOGIQUE
NIVEAU PHYSIQUE
3 Niveaux
Serge Abiteboul (INRIA) Bases de données - Introduction April 3, 2009 9 / 29
HistoriqueModèle de données =
Langage de définition de données+
Langage de manipulation de données
60 Cobolmi-60 Hiérarchique IMS/IBM navigationnel
Réseau navigationnel73 Relationnel (Codd) assertionnel76 Entité-relation ?77 Fonctionnel fonctionnelFin 80 Orienté-objets navig + assert
Relationnel étendu assert + navig
Serge Abiteboul (INRIA) Bases de données - Introduction April 3, 2009 10 / 29
Grandes étapes
60-70 Hiérarchique et réseau80 Succès du relationnel
Part croissante de marcheExplosion sur micro
90 Nouvelles applis - sgbd-ooRelationnels étendus
00 Web et PHP/mySQL
Serge Abiteboul (INRIA) Bases de données - Introduction April 3, 2009 11 / 29
Idée principale
Séparer la définition logique des données deleur organisation réelle sur support physique.Architecture ansi-sparc (75) : 3 niveauxOrganisation physique peut être très différente ou pas:peu de différences dans modèle réseau, beaucoupmodèle relationnel.
Serge Abiteboul (INRIA) Bases de données - Introduction April 3, 2009 12 / 29
Niveau physique et niveau logiqueExemple : un seul fichier étudiant
(nom, prénom, # ss, date naissance, année)Je veux faire deux types d’accès:
1 direct par nom2 séquentiel par # ss
Approche classiqueje choisis une implantation :
1 un H-code sur les noms2 l’ensemble des enregistrements chaînés par #ss
J’écris mes programmes d’application :Un beau jour, je modifie l’implantation physique
H-code sur #ssindex sur les noms
=⇒ Il faut ré-écrire les applications !!!
Serge Abiteboul (INRIA) Bases de données - Introduction April 3, 2009 13 / 29
Physique et logique – suite
Approche BD :1 Je décide de mes structures physique/logique2 J’écris les programmes d’application en utilisant la
structure logiqueIl faut les compiler en programmes exécutablesLes performances dépendront de cette compilation.
C’est l’indépendance des données :Indépendance physique: On peut modifier l’implantationphysique sans modifier le niveau logique.Indépendance logique: On peut modifier le niveau logiquesans toucher à l’implantation.
Question : Pour quel utilisateur?
Serge Abiteboul (INRIA) Bases de données - Introduction April 3, 2009 14 / 29
Niveau logique et niveau externeVue du Prof : des cours + pour chaque cours :
Horaires et sallesListe d’étudiants (nom, prénom, note)
Vue de la Paye : un ensemble de profs(nom, prénom, adresse, indice, nombre d’heures...)
Vue des administrateurs d’emploi du temps : ...Vue de d’administration (suivi des élèves) : ...
Vues de la base de données1 Aucun ne voit tout2 Chacun utilise sa propre organisation/terminologie
Intégration de ces vues1 On laisse chaque usager avec sa vision du monde2 Intégration dans un schéma conceptuel3 Pour chacune de ces vues on définit un mapping
schéma externe −→ schéma conceptuel
Serge Abiteboul (INRIA) Bases de données - Introduction April 3, 2009 15 / 29
3 aspects importants
1 le traitement d’une requêtede sa conception et son exécution
2 les connaissancescontraintes d’intégrité et déduction
3 le facteur humainles personnes impliquées
Serge Abiteboul (INRIA) Bases de données - Introduction April 3, 2009 16 / 29
Le traitement d’une requête
analyse syntaxiquemodification de la requêtebasée sur les vues et les contraintes d’intégritéoptimisationgénération d’un programme optimise a partir de connaissances(e.g., statistiques) et des structures physiquesexécution pour obtenir le résultat
Serge Abiteboul (INRIA) Bases de données - Introduction April 3, 2009 17 / 29
Plus de sémantiqueContraintes d’intégrité
schéma = structure + contraintese.g., nom caractère 15, not null;age integer between 0 and 120;débit ≤ créditde manière générale, formule logiquebut principal: protéger les données
Autorisation
grant select on employee to jeanrevoke alter on employee to pierre
Déduction
Certaines données ne sont pas stockées maisdérivéesDes règles permettent de les obtenir
Serge Abiteboul (INRIA) Bases de données - Introduction April 3, 2009 18 / 29
Le facteur humain
Le constructeur du SGBDL’administrateur de la base
I discute avec les différents utilisateursI conception des différentes vuesI intégration de ces vues en un schéma conceptuelI conception du schéma physiqueI gère l’évolution de la base (nouveaux besoins, utilisateurs)I Outils à sa disposition: langages de définition de schémas
(physique, logique, externe)
Concepteur et programmeur d’applicationà partir : besoins des différents utilisateursécrit l’application pour des utilisateurs “naïfs”
Serge Abiteboul (INRIA) Bases de données - Introduction April 3, 2009 19 / 29
Le facteur humain (2)
Utilisateur sophistiqué: informaticien connaissant langagesprogrammation et langages BD (e.g., SQL)Utilisateur naïf: saisie, secrétaire, cadre, non spécialiste
Serge Abiteboul (INRIA) Bases de données - Introduction April 3, 2009 20 / 29
Impact du Web
Protocole d’échange standardFacilité pour exporter des donnéesDistribution des donnéesHTML: manque de structure + mélange données ettraitementXML: plus de structure + feuilles de présentation
mieux adapté pour les BD
Serge Abiteboul (INRIA) Bases de données - Introduction April 3, 2009 21 / 29
Architectures à la mode
Entrepôts de donnéesMédiateursPortails (d’entreprise)
Serge Abiteboul (INRIA) Bases de données - Introduction April 3, 2009 22 / 29
Modèle hiérarchique
IMS-IBM (64) encore utiliséBonnes performancesNe pas ré-écrire les applications
Serge Abiteboul (INRIA) Bases de données - Introduction April 3, 2009 23 / 29
tree realestaterecord regions root
1 rname char(20)record offices parent=regions1 city char(20)1 oaddr char(30)
record agents parent=offices1 aname char(20)1 sales integer
record emps parent=offices1 emp_no integer1 ename char(20)1 eaddr char(30)1 salary integer
record listings parent=offices1 addr char(30)1 price integer
record clients parents=agents1 cname char(20)1 caddr char(30)
Serge Abiteboul (INRIA) Bases de données - Introduction April 3, 2009 24 / 29
Modèle hiérarchiqueget leftmost agents
where rname = "Sud" and city = "Aix" and sales > 10000
/* les agents avec un chiffre d’affaire plus grand que 10000 */
get leftmost agentswhere sales > 10000
while not fail doprint agents.anameget next agents
where sales > 10000endwhile
/* les clients du premier Dupond */
get leftmost agentswhere ename = "Dupond"
get next within parent clientswhile not fail do
print clients.cnameget next within parent clients
endwhile
Serge Abiteboul (INRIA) Bases de données - Introduction April 3, 2009 25 / 29
Modèle réseau – même esprit
Serge Abiteboul (INRIA) Bases de données - Introduction April 3, 2009 26 / 29
REGIONS
IDF SUDNORD
OFFICES
PARIS
EMPS
AGENTS
LISTINGS
DUPOND MARTIN DURANT
CLIENTS
ZAZA MIMILULU
VERSAILLES ROISSY
Modèle hiérarchique
Serge Abiteboul (INRIA) Bases de données - Introduction April 3, 2009 27 / 29
ENREGISTRE
COURS
NOTE
TITRE
ETUDIANT
NOM
COURS ETUDIANT
RELATION
ENTITE
ATTRIBUTS
UN SCHEMAENTITE-RELATION
maths
info
physique
toto
zaza
lulu
5
5
2
9
UNE INSTANCE DE CE SCHEMA
Modèle entité-relation
Serge Abiteboul (INRIA) Bases de données - Introduction April 3, 2009 28 / 29
Merci
Serge Abiteboul (INRIA) Bases de données - Introduction April 3, 2009 29 / 29