29
Bases de données - Introduction Serge Abiteboul INRIA April 3, 2009 Serge Abiteboul (INRIA) Bases de données - Introduction April 3, 2009 1 / 29

Bases de données - Introduction · BASE DE DONNES LOGICIEL ! SGBD Intermédiaire entre un être humain et les données Serge Abiteboul (INRIA) Bases de données - Introduction April

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Bases de données - Introduction · BASE DE DONNES LOGICIEL ! SGBD Intermédiaire entre un être humain et les données Serge Abiteboul (INRIA) Bases de données - Introduction April

Bases de données - Introduction

Serge Abiteboul

INRIA

April 3, 2009

Serge Abiteboul (INRIA) Bases de données - Introduction April 3, 2009 1 / 29

Page 2: Bases de données - Introduction · BASE DE DONNES LOGICIEL ! SGBD Intermédiaire entre un être humain et les données Serge Abiteboul (INRIA) Bases de données - Introduction April

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

Page 3: Bases de données - Introduction · BASE DE DONNES LOGICIEL ! SGBD Intermédiaire entre un être humain et les données Serge Abiteboul (INRIA) Bases de données - Introduction April

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

Page 4: Bases de données - Introduction · BASE DE DONNES LOGICIEL ! SGBD Intermédiaire entre un être humain et les données Serge Abiteboul (INRIA) Bases de données - Introduction April

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

Page 5: Bases de données - Introduction · BASE DE DONNES LOGICIEL ! SGBD Intermédiaire entre un être humain et les données Serge Abiteboul (INRIA) Bases de données - Introduction April

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

Page 6: Bases de données - Introduction · BASE DE DONNES LOGICIEL ! SGBD Intermédiaire entre un être humain et les données Serge Abiteboul (INRIA) Bases de données - Introduction April

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

Page 7: Bases de données - Introduction · BASE DE DONNES LOGICIEL ! SGBD Intermédiaire entre un être humain et les données Serge Abiteboul (INRIA) Bases de données - Introduction April

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

Page 8: Bases de données - Introduction · BASE DE DONNES LOGICIEL ! SGBD Intermédiaire entre un être humain et les données Serge Abiteboul (INRIA) Bases de données - Introduction April

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

Page 9: Bases de données - Introduction · BASE DE DONNES LOGICIEL ! SGBD Intermédiaire entre un être humain et les données Serge Abiteboul (INRIA) Bases de données - Introduction April

vue 3vue 2vue 1NIVEAU EXTERNE

NIVEAU LOGIQUE

NIVEAU PHYSIQUE

3 Niveaux

Serge Abiteboul (INRIA) Bases de données - Introduction April 3, 2009 9 / 29

Page 10: Bases de données - Introduction · BASE DE DONNES LOGICIEL ! SGBD Intermédiaire entre un être humain et les données Serge Abiteboul (INRIA) Bases de données - Introduction April

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

Page 11: Bases de données - Introduction · BASE DE DONNES LOGICIEL ! SGBD Intermédiaire entre un être humain et les données Serge Abiteboul (INRIA) Bases de données - Introduction April

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

Page 12: Bases de données - Introduction · BASE DE DONNES LOGICIEL ! SGBD Intermédiaire entre un être humain et les données Serge Abiteboul (INRIA) Bases de données - Introduction April

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

Page 13: Bases de données - Introduction · BASE DE DONNES LOGICIEL ! SGBD Intermédiaire entre un être humain et les données Serge Abiteboul (INRIA) Bases de données - Introduction April

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

Page 14: Bases de données - Introduction · BASE DE DONNES LOGICIEL ! SGBD Intermédiaire entre un être humain et les données Serge Abiteboul (INRIA) Bases de données - Introduction April

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

Page 15: Bases de données - Introduction · BASE DE DONNES LOGICIEL ! SGBD Intermédiaire entre un être humain et les données Serge Abiteboul (INRIA) Bases de données - Introduction April

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

Page 16: Bases de données - Introduction · BASE DE DONNES LOGICIEL ! SGBD Intermédiaire entre un être humain et les données Serge Abiteboul (INRIA) Bases de données - Introduction April

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

Page 17: Bases de données - Introduction · BASE DE DONNES LOGICIEL ! SGBD Intermédiaire entre un être humain et les données Serge Abiteboul (INRIA) Bases de données - Introduction April

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

Page 18: Bases de données - Introduction · BASE DE DONNES LOGICIEL ! SGBD Intermédiaire entre un être humain et les données Serge Abiteboul (INRIA) Bases de données - Introduction April

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

Page 19: Bases de données - Introduction · BASE DE DONNES LOGICIEL ! SGBD Intermédiaire entre un être humain et les données Serge Abiteboul (INRIA) Bases de données - Introduction April

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

Page 20: Bases de données - Introduction · BASE DE DONNES LOGICIEL ! SGBD Intermédiaire entre un être humain et les données Serge Abiteboul (INRIA) Bases de données - Introduction April

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

Page 21: Bases de données - Introduction · BASE DE DONNES LOGICIEL ! SGBD Intermédiaire entre un être humain et les données Serge Abiteboul (INRIA) Bases de données - Introduction April

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

Page 22: Bases de données - Introduction · BASE DE DONNES LOGICIEL ! SGBD Intermédiaire entre un être humain et les données Serge Abiteboul (INRIA) Bases de données - Introduction April

Architectures à la mode

Entrepôts de donnéesMédiateursPortails (d’entreprise)

Serge Abiteboul (INRIA) Bases de données - Introduction April 3, 2009 22 / 29

Page 23: Bases de données - Introduction · BASE DE DONNES LOGICIEL ! SGBD Intermédiaire entre un être humain et les données Serge Abiteboul (INRIA) Bases de données - Introduction April

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

Page 24: Bases de données - Introduction · BASE DE DONNES LOGICIEL ! SGBD Intermédiaire entre un être humain et les données Serge Abiteboul (INRIA) Bases de données - Introduction April

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

Page 25: Bases de données - Introduction · BASE DE DONNES LOGICIEL ! SGBD Intermédiaire entre un être humain et les données Serge Abiteboul (INRIA) Bases de données - Introduction April

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

Page 26: Bases de données - Introduction · BASE DE DONNES LOGICIEL ! SGBD Intermédiaire entre un être humain et les données Serge Abiteboul (INRIA) Bases de données - Introduction April

Modèle réseau – même esprit

Serge Abiteboul (INRIA) Bases de données - Introduction April 3, 2009 26 / 29

Page 27: Bases de données - Introduction · BASE DE DONNES LOGICIEL ! SGBD Intermédiaire entre un être humain et les données Serge Abiteboul (INRIA) Bases de données - Introduction April

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

Page 28: Bases de données - Introduction · BASE DE DONNES LOGICIEL ! SGBD Intermédiaire entre un être humain et les données Serge Abiteboul (INRIA) Bases de données - Introduction April

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

Page 29: Bases de données - Introduction · BASE DE DONNES LOGICIEL ! SGBD Intermédiaire entre un être humain et les données Serge Abiteboul (INRIA) Bases de données - Introduction April

Merci

Serge Abiteboul (INRIA) Bases de données - Introduction April 3, 2009 29 / 29