Apprendre à travailler avec les BD
Apprendre à travailler avec les BD support de formation
...
BD et emploi
Marché du travail : BD = gros pourcentage des offres d’emploi
n Exemples … Nous recherchons des DBA Oracle pour des projets de longue durée. A ce titre, vous optimisez le portage des données Oracle 9i en environnement AIX vers une base Oracle 11g en environnement Windows Server. De plus, vous créez l'environnement Oracle d'accueil des données. L'action concerne le stockage des données, l'accès aux données, les scripts, ainsi que les procédures stockées utilisées dans les jobs de chargement…
… AS+, société de conseil et d'ingénierie en pleine croissance, d'aujourd'hui 25 personnes recrute dans le cadre du développement de ses activités. Vous prendrez en charge chez le client l'administration de la base de données Oracle sous Unix ainsi que l'exploitation de l'application. Vous devrez gérer et résoudre les incidents d'exploitation de l'application et créer et renseigner les dossiers permettant le suivi des évènements...
… Nous recherchons un ADMINISTRATEUR DE BASE DE DONNEES Sybase & Oracle…
… De formation Bac+3 à Bac+5, vous justifiez d'une expérience d'au moins 1 an sur l'environnement J2EE et d'une réelle maîtrise des développements JAVA. A ce titre, vous maîtrisez :
- langages : JAVA, Javascript, HTML, SQL, STRUTS, JSP
- base de données : DB2
- serveur d'application : Websphère
Exemples (suite)
… Au sein de la société Free, vous participerez aux activités de conception et de réalisation des différents projets. Vous avez une expérience significative dans le développement de systèmes d'information et de la maîtrise des bases de données. Autonome, rigoureux et motivé, vous souhaitez apporter vos compétences à des projets innovants et dynamiques. Vous possédez impérativement les connaissances suivantes :
- environnement : GNU/Linux, UNIX
- langage : Perl, C, SQL, HTML
- maîtrise des bases de données
La maîtrise des langages et des outils de développement Internet, la connaissance des solutions Open Source et la maîtrise des scripts shell ou Perl seront appréciées…
technologies Java, J2EE, Framework Stuts, Html, XML, CSS Expérience d'utilisation de Jbuilder X, Crystalreport9, Starteam 6, PowerAMC Bonnes compétences bases de données, SQL et Sybase (Transact Sql) et Shell Unix…
… Domaines de compétences requis : Langages : Java, PHP, C/C++, Technologies Java : J2EE, EJB 2.0, CORBA, RMI, JavaBeans, Servlets, JSP,… Serveurs d'Applications : BEA WebLogic, Jonas, JBoss… SGBDR : Oracle, SQL Server, MySQL ,… XML : XML, XSL, XML Schema,… Web Services : JAXM, JAX RPC, SOAP, Apache Axis, IBM WSDK OS : Linux, Solaris, Windows 200x …
BD et emploi
Tout informaticien peut être (sera) amené à
Utiliser des bases de données
Concevoir de grosses bases de données
Administrer de grosses bases de données
Tout non informaticien peut être amené à
Utiliser
Concevoir de petites bases
Exemples de bases de données
Gestion des personnels, étudiants, cours, inscriptions, ... de l’UJM
Système de réservation de places d'avions chez
Air France, de places de trains à la SNCF
Gestion des comptes clients de La Poste
Gestion des commandes chez Amazon.com
Gestion d’une bibliothèque
Gestion des pages Web chez google.com
...
Quels sont les besoins dans le domaine de la gestion de l’information ?
Décrire l’information
Manipuler l’information
Interroger la collection d’informations
Exactitude et cohérence
Garanties
Fiabilité
Contrôle de concurrence
Confidentialité
Efficacité
Besoin de pouvoir décrire
Décrire les données de l’application (trains, trajets et réservations) sans faire référence à une solution informatique particulière
modélisation conceptuelle
Élaborer une description équivalente pour le stockage des données dans le SGBD choisi
modélisation logique
langage de description de données (LDD)
Besoin de pouvoir manipuler
Créer la base de données initiale avec les données représentant le réseau SNCF
langage permettant l’insertion de données
Créer au fur et à mesure les données sur les réservations. Modifier si besoin et éventuellement supprimer toute donnée déjà rentrée
langage de manipulation de données (LMD) (insertion, modification, suppression)
Besoin de pouvoir interroger
Répondre à toute demande d’information portant sur les données contenues dans la base.
Par exemple:
- a) John Smith a-t-il une réservation pour aujourd’hui ?
Si oui, donner les informations connues sur cette réservation.
- b) Quels sont les horaires des trains de SaintEtienne à Dijon entre 9h et 10h le dimanche ?
- c) Donner les destinations au départ de SaintEtienne sans arrêt intermédiaire.
langage de requête (langage d’interrogation)
Besoin d’exactitude, de cohérence
Il faut pouvoir exprimer toutes les règles qui contraignent les valeurs pouvant être enregistrées de façon à éviter toute erreur qui peut être détectée.
Par exemple:
Il ne faut jamais donner la même place dans le même train à 2 clients
Les arrêts d’un train sont numérotés de façon continue (il ne peut y avoir pour un train donné un arrêt n° 3 s’il n'y a pas un arrêt n°2 et un arrêt n° 1)
La date de réservation pour un train doit correspondre à un jour de circulation de ce train
Le numéro de train dans une réservation / arrêt doit correspondre à un train existant
L’heure de départ d’une gare doit être postérieure à l’heure d’arrivée dans cette gare
L’heure d’arrivée à un arrêt doit être postérieure à l’heure de départ de l’arrêt précédent
langage d’expression de contraintes d’intégrité
Besoin de garanties
Il ne faut pas que les informations (par exemple, les réservations) soient perdues à cause d’un disfonctionnement quelconque: erreur de programmation, panne système, panne de l’ordinateur, coupure de courant, etc
garantie de fiabilité
Il ne faut pas qu’une action faite pour un utilisateur (par exemple l’enregistrement d’une réservation) soit perdue du fait d’une autre action faite simultanément pour un autre utilisateur (réservation de la même place).
garantie de contrôle de concurrence
Besoin de confidentialité
Toute information doit pouvoir être protégée contre l’accès par des utilisateurs non autorisés
en lecture
en écriture
Interdire par exemple aux clients de modifier les numéros des trains ou les horaires ou leur réservation.
garantie de confidentialité (privacy)
Besoin d’efficacité
Le temps de réponse du système doit être conforme aux besoins :
en interactif : pas plus de 3 secondes
en programmation : assez rapide pour assumer la charge de travail attendue (nombre de transactions par jour)
mécanismes d’optimisation
éventuellement, répartition / duplication des données sur plusieurs sites
Comment gérer des données ?
Avec des fiches en papier
Exemple des bibliothèques pendant très longtemps
Recherche très fastidieuse
Mise à jour longue
Place très importante
Problèmes de sécurité
Faible fiabilité
Aucune automatisation
Passage à l’échelle délicat
...
Comment gérer des données ?
Avec des fichiers informatiques
C’est un peu ce que l’on fait sur son ordinateur..
Fichiers organisés en dossiers
Index dans chaque dossier
Recherche fastidieuse
Problèmes de sécurité
Automatisation difficile à réaliser
Passage à l’échelle délicat
...
musique vidéos
classique rock
Rachmaninov Liszt Chopin
cto3_allegro.mp3
... action ...
cto3_intermezzo.mp3
cto3_finale.mp3
contenu.txt
...
campanella.mp3
...
... ...
françois
Comment gérer des données ?
Base de données
ensemble cohérent, intégré et partagé de données structurées
défini pour les besoins d’une application
Système de Gestion de Base de Données (SGBD)
logiciel permettant de couvrir les besoins :
définir une représentation des informations apte à
stocker, interroger et manipuler (insérer, supprimer, mettre à jour) de
grandes quantités de données (plus que la mémoire vive)
dont il faut garantir la longévité et
l’accessibilité de manière concurrente (plusieurs utilisateurs simultanés)
et sûre.
Qu’est-ce qu’une base de données ?
Une collection de données qui supporte les manipulations :
Recherche de données
Interactive
Assertionnelle
L4G
Logiquement et physiquement performante
Insertion, Mise à jour, Suppression de données
Cohérente
Partagée
Fiable
Pourquoi les bases de données ?
Intégration des données
Moins de duplications
Partage des données
Fiabilité des données
Transactions, Reprises sur pannes, Tolérance de pannes
Sécurité des données
Langages assertionnels de requêtes
SQL, QBE
Interfaces conviviales
L4G & Web
Pourquoi les bases de données ?
En pratique, il est impossible de concevoir ces fonctions soi-même
Théorie complexe
Conception d’une BD
Formes normales…
Langages de définition et de manipulation d’une BD
Optimisation de requêtes assertionnelles
Transactions et partage de données
….
Logiciel complexe
des centaines de milliers ou des millions de lignes de programme
Qui utilise des Bases de Données ?
Les utilisateurs interactifs
Ils cherchent des informations sans connaître la Base de Données
Utilisent des interfaces (formulaires, Web, ...)
Peuvent à la rigueur utiliser des langages tels que QBE
Les programmeurs d’applications
Construisent les interfaces pour les utilisateurs interactifs
Spécialistes de SQL
Les DBA (Database Administrators)
Modélisent les bases de données
Maintiennent les bases de données
Ont la priorité sur tous les autres usagers
Peuvent être très bien payé...
Différents types de BD
Il y en a pour tous les usages
BDs personnelles
MsAccess
100 Ko – 500 Ko
BDs professionnelles typiques
500 Ko – 100 Go
BDs professionnelles très grandes
Very Large Databases (VLDB)
> 100 Go
Culture générale
Informatique = 0 ou 1 = bit
1 octet = 8 bits (= 1 byte)
1 Ko = 210 octets = 1024 octets
1 Mo = 1024 Ko (méga octet) = 1048576 octets
1 Go = 1024 Mo (giga octet) = 1073741824 octets
1 To = 1024 Go (terra octet) = ...
1 Po = 1024 To (peta octet) = ...
disques durs moyens sur PC : 500 Go à 1.5 To
mémoire vive moyenne sur PC : 4 Go
…
Evolution des BD
Entre 1998 et 2005
Taille : 16 800 Go → 330 644 Go (330 To)
Nombre de tuples : 324 000 Millions → 2 847 553 Millions
Nombre de transactions par seconde : 1820 → 315 009
Problème de passage à l’échelle (scalability)
Composants logiciels d’une base de données
SGBD
Gère le niveau logique et physique de la base
Selon l’architecture ANSI-SPARC
Les outils frontaux (L4G)
Générateurs : de formes, de rapports, des applications
Intégrés au SGBD ou externes
Powerbuilder, Borland…
Interfaces WEB : HTML, XML…
Interfaces OLAP & Data Mining
Intelligent Data Miner (IBM)
Utilitaires : chargement, statistiques, aide à la conception…
Composants matériels d’une base de données
Ordinateur générique avec
son CPU (Central Processing Unit)
sa RAM (Random Access Memory)
son disque dur pour la BD
ses bandes magnétiques, ses graveurs pour la sauvegarde
La RAM est considéré traditionnellement trop petite pour une BD
Ce n’est plus toujours vrai
Problème d’organisation d’E/S pour une BD
Composants matériels d’une base de données
Machine spécialisée (MBD - Machine BD)
Ne supporte que la BD
En général multiprocesseur
Teradata massivement parallèle
Les applications sont sur d’autres ordinateurs
Liaison par LAN (Local Area Network)
SGBD
SGBD : Système de Gestion de Bases de Données
DBMS : DataBase Management System
Ne pas confondre avec Base de Données
Logiciel gérant une base de données
Mono ou multi-ordinateurs
Peut gérer plusieurs bases de données
Peut accéder aux BD d’autres SGBD
Nombreux SGBD sur le marché
ACCESS
MySQL, PostgreSQL
ORACLE
DB2
SQLSERVER
...
SGBD (par modèle de données)
1ère génération 1950 – 1965
SGF(Systèmes de Gestion de Fichiers)
Permettent de stocker et d'organiser les données sur mémoire secondaire
Différentes organisations
séquentielles
séquentielles triées
indexées
séquentielles indexées
SGBD (par modèle de données)
Exemple d'utilisation d'un SGF
Exemple de la base viticole
un fichier par entité : vins, viticulteurs, buveurs
un fichier par association : productions, commandes
Exemple de manipulation :
ouvrir le fichier vins ouvrir le fichier productions prendre le premier vin
- move nv dans var1 lire dans productions var1 afficher le numéro de producteur prendre le vin suivant et retourner en 1 s'il existe fermer les fichiers
SGBD (par modèle de données)
2ème génération 1965 - 1970
SGBD navigationnel
Hierarchique (IMS)
Réseaux (Codasyl, IDS2)
Principe : relier les données provenant de différents fichiers
Caractéristiques : liens logiques entre les données
hiérarchiques (modèle hiérarchique)
hiérarchiques ++ (modèle réseau)
Liens physiques entre les enregistrements informatiques (pointeurs)
SGBD (par modèle de données)
Exemple d'un SGBD hiérarchique
Lien de cardinalité 1-n
Un type de fils ne peut pas avoir plusieurs types de pères
Association m-n non modélisable
Duplication de structures de données
Accès par la racine de la hiérarchie
SGBD (par modèle de données)
Exemple d'un SGBD réseau
Lien de cardinalité 1-n
Un type de fils peut avoir plusieurs types de pères
Notion d'articles et d'ensembles
Association m-n modélisable
Pas d'ensemble récursif
Pas de partage d'objets pour un même ensemble
SGBD (par modèle de données)
3ème génération 1969 - …
SGBD relationnel (DB2, Oracle, Informix, MsAccess…)
Principe :
langages assertionnels
quoi au lieu de comment
SQL
langage de définition de bases de données
langage de manipulation de bases de données
normes SQL1, SQL2, SQL3
Culture générale
Différents types de langages de programmation
Programmation impérative : on exprime comment résoudre un problème
Programmation fonctionnelle : tout est exprimé sous forme de fonctions
Programmation logique : on exprime le problème mais pas comment le résoudre
Programmation objet : tout est exprimé sous forme d'objets qui communiquent entre eux pour résoudre un problème
Déclaratif (quoi) contre Procédural (comment)
…
SGBD (par modèle de données)
SGBD Orienté Objet (1990 - 1999)
En pratique : une impasse (O2, Objectstore, Objectivity..)
SGBD relationnel – objet (RO) 1993 - …
Évolution probable de tout SGBD relationnel
SGBD (par capacité)
Mainframe ou cluster de mainframes
DB2, Oracle, Adabas, ...
Machine base de données
Teradata
Serveurs Unix & Windows 2000
DB2, Informix, Oracle, Sybase, Unify, SQL Server, Ingres,…
Personnels
MsAccess, Paradox…
Carte de Crédit
CQL
...
Culture générale
Traitement d’un texte écrit dans un langage naturel
Analyse lexicale
Quels sont les mots du texte ?
Analyse syntaxique
Chacune des phrases a-t-elle été générée par la grammaire ?
Analyse sémantique
Chaque phrase a-t-elle un sens ?
Analyse pragmatique
Le texte en entier a-t-il un sens ?
Domaine de recherche très actif (partie de l’IA)
Principe de fonctionnement d’un SGBD
Analyse lexicale, syntaxique et sémantique d’une requête (interaction avec la BD)
Traduction au niveau logique
Contrôles de confidentialité, concurrence...
Si la requête est acceptée, optimisation et découpage en sous-requêtes élémentaires transférées au niveau interne
Au niveau interne, traduction des sous-requêtes en requêtes physiques correspondantes.
…
L’architecture ANSI-SPARC
C’est un standard pour tout SGBD digne de ce nom
Proposé vers 1965 par Charles Bachman
Auteur du concept de la BD
Concepteur de IDMS-2
Le 1er SGBD moderne
Créateur du modèle de données réseau (Codasyl)
Plus tard de l’architecture Open System Interconnection (OSI)
Prix Turing de l'ACM (Association for Computing Machinery)
La plus haute récompense scientifique en informatique en USA
Culture générale
Turing award ()
1966 A.J. Perlis (techniques de programmation avancées et compilation)
1967 Maurice V. Wilkes (inventeur du premier ordinateur stockant un programme)
1968 Richard Hamming (codage, détection d'erreur)
1969 Marvin Minsky (IA)
1970 J.H. Wilkinson (analyse numérique)
1971 John McCarthy (IA, LISP)
1972 E.W. Dijkstra (Algorithmique)
1973 Charles W. Bachman (bases de données)
1974 Donald E. Knuth (Algorithmique)
1975 Allen Newell (IA)
1975 Herbert A. Simon (idem)
1976 Michael O. Rabin (automates)
1976 Dana S. Scott (automates)
1977 John Backus (conception de langage de haut niveau, FORTRAN)
1978 Robert W. Floyd (analyse de programmes)
1979 Kenneth E. Iverson (langage de haut niveau)
1980 C. Antony R. Hoare (conception de langage)
1981 Edgar F. Codd (bases de données)
1982 Stephen A. Cook (complexité des programmes)
1983 Ken Thompson (implémentation d'UNIX)
1983 Dennis M. Ritchie (idem)
Culture générale
Turing award ()
1984 Niklaus Wirth (EULER, ALGOL-W, MODULA, PASCAL)
1985 Richard M. Karp (algorithmique, flot dans les réseaux)
1986 John Hopcroft (algorithmique et strutures de données)
1986 Robert Tarjan (idem)
1987 John Cocke (compilation, architecture RISC)
1988 Ivan Sutherland (info graphique, Sketchpad)
1989 William (Velvel) Kahan (analyse numérique)
1990 Fernando J. Corbato' (systèmes d'exploitation)
1991 Robin Milner (théorie programmation fonctionnelle)
1992 Butler W. Lampson (parallélisme)
1993 Juris Hartmanis (théorie de la complexité)
1993 Richard E. Stearns (idem)
1994 Edward Feigenbaum (IA)
1994 Raj Reddy (IA)
1995 Manuel Blum (théorie de la complexité, cryptographie)
1996 Amir Pnueli (logique temporelle)
1997 Douglas Engelbart (IHM, souris,)
1998 James Gray (bases de données, transactions)
Culture générale
Turing award ()
1999 Frederick P. Brooks, Jr. (architecture, systèmes d'exploitation, génie logiciel)
2000 Andrew Chi-Chih Yao (complexité, cryptographie)
2001 Ole-Johan Dahl (programmation objet, simula 67)
2001 Kristen Nygaard (idem)
2002 Ronald L. Rivest (cryptographie, RSA (1978))
2002 Adi Shamir (idem)
2002 Leonard M. Adleman (idem)
2003 Alan Kay (Smalltalk)
2004 Vinton G. Cerf (Internet _ TCP/IP)
2004 Robert E. Kahn (idem)
2005 Peter Naur (Langages, Algol 60, Compilation)
2006 Frances E. Allen (optimisation de compilateurs)
2007 Edmund M. Clarke, E. Allen Emerson et Joseph Sifakis (Model checking logiciels et matériels)
2008 Barbara Liskov (techniques fondamentales de programmation : abstraction, tolérance aux fautes, informatique distribuée)
2009 Charles P. Thacker (pour son travail chez Xerox)
2010 Leslie Valiant (Apprentissage automatique, théorie de la complexité, calcul distribué et parallèle)
L’architecture ANSI-SPARC
Le Schéma conceptuel
D’une manière abstraite: un modèle conceptuel de l’univers réel de la BD
dit aussi entreprise
L ’université de Saint-Etienne
La FNAC
Mes boissons préférées
L ’Univers
L’analyse du réel est le domaine des méthodes de conception de la BD
SE SE SE
SC
SI
L’architecture ANSI-SPARC
Le schéma conceptuel
D’une manière appliquée : la définition logique de
la BD
Une et une seule
Les données logiques, leurs structures et types
Relations, attributs, domaines
Entités…
Objets, Types, Classes
Leur manipulations
procédures, fonctions, méthodes…
SE SE SE
SC
SI
L’architecture ANSI-SPARC
Le Schéma conceptuel
La définition logique de la BD (suite)
Les liens sémantiques
Données d’un même objet réel
Les contraintes d’intégrité
Mono-valeur
Référentielles
...
Les contraintes de sécurité
Qui peut manipuler quoi
