Révision Générale – L’approche bases de données – Définitions – Objectifs et fonctions – Architecture – Modèle Relationnel – SQL – Mis-à-jour, contraintes et triggers – Gestion de Vues – Gestion de transactions et concurrence Gestion de fichiers • Les données sont stockées dans des fichiers – différentes méthodes d’accès (séquentiel, indexé, haché, etc.) – un fichiers peut être utilisé par plusieurs programmes PROGRAM 1! Données! Fichier 1" PROGRAM 2! Données! PROGRAM 3! Données! Système! de fichiers! Fichier 2" Problémes avec les fichiers • Redondance des données – partage limité, au niveau du fichier • Faible structuration des données – fichiers plats (exception: COBOL) • Dépendance entre programmes et fichiers – modif. de fichier => modif. de programmes – coût élevé de maintenance des applications • Pas de cohérence globale des données • Difficile de développer de nouvelles applications Approche Base de Données PROGRAM 1 SGBD Requêtes PROGRAM 1 Transactions … PROGRAM 2 Base de données Définitions • Une base de données (BD) est une collection structurée de données sur des entités qui existent dans le contexte modélisé • La structure d’une base de données est déterminée par le modèle de données qui est utilisé • Un système de gestion de base de données (SGBD) est un logiciel qui facilite la gestion et l’accès à la BD • Une banque de données inclut une BD, un SGBD et des services pour un domaine particulier (par ex. banque du génome) Modèle de données • Formalisme qui définit la structure et la sémantique des données • Modèle de données conceptuel – pour la conception d’application, supporté par un outil (CASE tool) – modèles entité-association, objet (UML) • Modèle de données logique – pour la conception de BD, supporté par un SGBD – modèles hiérarchique, réseau, relationnel, objet • La structure est appelée le schéma – un schéma peut avoir plusieurs instances Exemple d’instances de relations EMP WORKS ENO ENAME TITLE E1 E2 E3 E4 E5 E6 E7 E8 J. Doe M. Smith A. Lee J. Miller B. Casey L. Chu R. Davis J. Jones Elect. Eng. Syst. Anal. Mech. Eng. Programmer Syst. Anal. Elect. Eng. Mech. Eng. Syst. Anal. PROJ PNO PNAME BUDGET P1 P2 P3 P4 P5 Instrumentation Database Develop. CAD/CAM Maintenance CAD/CAM 150000 135000 250000 310000 500000 ENO PNO E1 E2 E2 E3 E3 E4 E5 E6 E7 E7 E8 P1 P1 P2 P3 P4 P2 P2 P4 P3 P5 P3 RESP Manager Analyst Analyst Consultant Engineer Programmer Manager Manager Engineer Engineer Manager DUR 12 24 6 10 48 18 24 48 36 23 40 Objectifs des SGBD • Contrôle intégré des données – cohérence et intégrité – partage – performances d’accès – sécurité • Indépendance des données – logique : cache les détails de l’organisation conceptuelle des données – physique : cache les détails du stockage physique des données Architecture ANSI/SPARC ASSIGNMENT(ENO,PNO,ENAME,PNAME) Schéma externe Schéma conceptuel Schéma interne Vue externe Vue externe Vue externe EMP(ENO: string, ENAME: string, TITLE: string) Vue PROJ(PNO: string, PNAME: string, BUDGET: integer) conceptuelle WORKS(ENO: string, PNO: string, RESP: string, DUR: integer) Vue interne SGBD Stocke les relations dans des fichiers, avec des index sur certains attributs. Fonctions des SGBD • Schéma intégré – vue uniforme des données, par ex. sous formes de relations (ou tables) • Intégrité déclarative et cohérence – 24000 ≤ Salaire ≤ 250000 – l’utilisateur spécifie et le SGBD valide • Vues – réorganisation de relations pour certaines classes d’utilisateurs • Accès déclaratif – avec un langage de requête (SQL), l’utilisateur spécifie quoi et non comment Fonctions des SGBD • Traitement et optimisation de requêtes – performances obtenues automatiquement • Transactions – exécution des requêtes par des unités atomiques – indépendance à la concurrence multi-utilisateur et aux pannes • Conception d’applications BD – conception visuelle des schémas de BD – conception des traitements et des interfaces graphiques • Administration système – outils d’audit et de réglage (tunning) – visualisation des plans d’accès Langages des SGBD • Langage de définition de données (DDL) – pour définir les schémas conceptuel, externel et interne – les définitions sont stockées dans le répertoire système • Langage de manipulation de données (DML) – langage de requêtes déclaratif pour lire et mettre à jour les données – peut être autonome (par ex. SQL seul) ou intégré dans un langage de programmation (par ex. Java/SQL) Utilisateurs d’un SGBD • Utilisateur final (end user) – accède la BD par des formes d’écran, des interfaces applicatives ou, pour les plus experts, des requêtes ad hoc en DML • Programmeur d’application – conçoit et implémente des applications qui accèdent la BD • Administrateur de BD (DBA) – – – – définit et gère le schéma conceptuel et les vues gère le schéma interne et règle les performances charge et reformatte la BD gère la sécurité et la fiabilité Architecture système Utilisateurs finals Formes" Applications" Programmeurs d’application Interface DML" CLI" Administrateur de BD DDL" Commandes SQL " Processeur de requêtes" Gérant de fichiers" Gérant " de" transactions" " Gérant de tampons" Gérant du disque" Index" " Répertoire" " système" Fichiers" Gérant de pannes" SGBD" Compilateur " DDL"