Introduction INT Management 9 Introduction Notion de bases de données slide 11 Contexte technique Apport BD Terminologie BD Domaines d’application Les modèles de données pour BD slide 31 Architecture de référence slide 44 Qu’est-ce qu’un SGBD ? slide 49 10 Contexte technique BD Notion de bases de données Contexte technique Structure en mémoire centrale (MC) Fichiers Bases de données 11 Structure en MC Principes Notion de bases de données Contexte technique Stockage des données dans la mémoire volatile d’un ordinateur Problèmes Stockage temporaire «Petits» volumes de données Langages de programmation Contexte mono-processus (mono-utilisateur en général) 12 Fichiers Notion de bases de données Contexte technique Stockage persistant sur disque «Gros» volumes de données Langages de programmation et SGF Contexte mono-utilisateur (en général) 13 Approche fichier avec PCs Direction des études Bibliothèque Appli En Cobol Fichiers Elèves et UVs Notion de bases de données Contexte technique Service social Appli en Java Fichiers Elèves et Livres Appli en C Fichiers Elèves et Chambres 14 Notion de bases de données Contexte technique Approche fichiers + SGF Application bibliothèque Programme 1 Description du fichier des Elèves *2 Edition du fichier Elèves par ordre alpha Programme 2 Description du fichier des Elèves Fichier Elèves Mise à jour du fichier Elèves via nom élève SGF 15 Problèmes de l’approche fichier Notion de bases de données Contexte technique Difficulté à saisir les liens entre les données Pas de partage de données entre les utilisateurs Pas de vision globale des données Redondance des données Risque d'incohérence des données Pas d'indépendance entre les données et les traitements Problème de gestion de la sécurité des données Multiplicité des traitements, des langages, des matériels 16 Bases de données Notion de bases de données Contexte technique Stockage persistant sur disque «Très gros» volumes de données Langage de requêtes et langages de programmation SGBD Contexte multi-utilisateurs 17 Notion de bases de données Contexte technique Approche centralisée PC Windows BD Appli C Appli Cobol PC NT Appli Java Elèves Uvs Livres Chambres SGBD Description BD PC Linux Terminaux 18 Notion de bases de données Contexte technique Approche client/serveur PC Windows BD Appli Cobol SGBD PC NT Elèves Uvs Livres Chambres Appli Java Description BD Appli C PC Linux 19 Apport d’une approche BD Intégration : Notion de bases de données Apport BD Description unique et globale des données Eviter les redondances Eviter les incohérences Indépendance : Indépendance entre données et traitements Séparation entre les descriptions logiques et physiques des données 20 Notion de bases de données Apport BD Apport d’une approche BD (2) Sécurité : Contrôle sémantique des données Protection contre les accès non autorisés Protection contre les pannes Facilités pour l’utilisateur : Partage des données Vision « haut niveau » et « personnalisée » des données Manipulation « aisée » des données Accès efficaces aux données Répartition des données et des traitements 21 Terminologie BD Notion de bases de données Terminologie BD Données Modèle de données BD SGBD Schéma d’une BD Instance d’une BD Contraintes d’intégrité Métabase 22 Données Notion de bases de données Terminologie BD Une structure Simple: prix, nom, date Complexe: personne, document, image Une sémantique Le solde d’un compte courant Une photo de Paris réalisée par le satellite SPOT Un propriétaire Responsable de la création d’une donnée Définit les règles pour son identification et son intégrité: « La température de l’air est comprise entre -30° et +40°C » « Le salaire de l’année n est supérieur au salaire de l’année n-1 » Accorde des droits d’utilisation 23 Données (2) Notion de bases de données Terminologie BD Des utilisateurs Interrogent les données « Quelle était la température à paris le 1er janvier 1997 ? » Mettent à jour les données « Créditer le compte de M. Monet de 1000 F » 24 Modèle de données Ensemble de concepts pour décrire : Notion de bases de données Terminologie BD Les données du monde réel Les liens entre les données La sémantique des données Ensemble d’opérations pour manipuler les données 25 BD ET SGBD BD : Notion de bases de données Terminologie BD Collection de données décrites selon un certain modèle SGBD : Système logiciel gérant les données d’une BD, selon un modèle fixé Un SGBD doit permettre la définition, la manipulation et le contrôle des données 26 Schéma et instance d’une BD Schéma (intention) : Notion de bases de données Terminologie BD Description des données de la base, conformément à un modèle Schéma réseau, schéma relationnel, ... Statique en général. Instance (extension) : Collection de données de la base écrite selon un certain modèle Instance du schéma Dynamique 27 CI et Métabase Contrainte d’intégrité (CI): Notion de bases de données Terminologie BD Règle spécifiée sur les données, pour définir un état cohérent de la base Le salaire d’un employé doit être supérieur au SMIC Métabase (dictionnaire de données - DD): Collection des données qui décrivent la BD « Valeur du schéma » 28 Domaines d’application Notion de bases de données Domaines d’application Comme élément central : Banques de données (professionnelles, grand public) Systèmes transactionnels (banques, assurances,…) Systèmes d’aide à la décision (tableaux de bord, analyse statistique,…) Comme élément essentiel : Systèmes d’information et de communication (entreprise, administration,…) Systèmes de surveillance et de contrôle (télécoms, production,…) Comme élément auxiliaire : Systèmes de recherche documentaire (textes,sons, graphiques, …) Systèmes XAO (CAO,PAO,EAO,…) Systèmes experts 29 Classification Volume de données Notion de bases de données Domaines d’application Complexité des traitements Intensité du service Applications Go transactionnelles Interrogation + Mise à jour Temps de réponse < 2 s. > 100 tps To Interrogation Temps de réponse en mn ou h Notion de tpm Application d’aide à la décision Datewarehouse Datamining TPC (Transaction Processing Council) Benchmarks systèmes transactionnels 30 Les modèles de données pour les BD Modèles BD Modélisation des données Modèles Modèle entité/association [Chen 76] Modèle hiérarchique Modèle réseau Modèle relationnel 31 Modélisation des données Modèles BD Modèle de données : Ensemble de concepts pour décrire : Les données Les liens entre les données La sémantique des données En général, un ensemble d’opérations est associé pour manipuler les données Formalisme de description : Textuel Graphique Mathématique Exemples de modèles : Entité/association Hiérarchique/réseau Relationnel Objet, relationnel-objet 32 Modèle Entité/Association [Chen 76] code nbH Modèles BD coord UV 1,n S’inscrire note 3,n num nom Élève 0,n 0,1 age adresse datePrêt côte Emprunter 0,1 Livre titre Louer 1,1 no Chambre prix 33 Modèle Entité/Association - 2 0,1 Livre cote titre 1,1 Chambre no prix Emprunter UV code nbH coord 1,n S’inscrire note 3,n Eleve num nom age adresse 0,n 0,1 datePret Louer 34 Critique du modèle Entité/Association Modèles BD Avantages Sémantique riche Extension aux concepts objets (héritage, ...) Aspect visuel Modèle de conception de BD Inconvénients Uniquement un modèle de description de données Pas de langage de manipulation associé Pas de SGBD E/A Pas un modèle d’implantation de BD 35 Modèles BD Modèle hiérarchique Système IMS d’IBM conçu à la fin des années 60 pour le programme Appolo (NASA) Exemple Élève Livre UV UV Chambre Elève 36 Modèle hiérarchique (suite) Schéma BD Collection d’enregistrements reliés par des pointeurs Langage de manipulation Structure arborescente (forêt) BD Modèles BD Navigationnel et procédural Utilisation de pointeurs (Exemple du langage DL/1 du système IMS) Problèmes : Pas d’indépendance logique/physique Redondance des données, risques d’incohérence 37 Modèles BD Modèle réseau Modèle défini par le groupe DBTG du comité CODASYL en 1971 (revu en 1978) Exemple Élève Livre Chambre UV Inscrit 38 Modèle réseau (suite) Modèles BD Schéma BD Structure de graphe orienté acyclique (DAG) BD Collection d’enregistrements reliés par des pointeurs Langage de manipulation Navigationnel et procédural Utilisation de pointeurs Standard CODASYL 71, 78 Systèmes IDS2 d’Honeywell (1975), Total de Cincom (1974), Adabas de Soft. Ag (1978) Problèmes Pas d’indépendance logique/physique 39 Modèle relationnel Modèles BD [CODD 70] « A Relational Model for Large Shared Data Banks » Exemple Élève(num, nom, adresse, age) UV(code, nbH, coord) Inscrit(numElève, codeUV, note) Livre(côte, titre, numElève, datePrêt) Chambre(no, prix, numElève) 40 Modèle relationnel (2) « MLD » Ecole UV CODE NBH COORD INSCRIT CODE NUM NOTE ELEVE NUM NO NOM AGE ADRESSE Modèles BD LIVRE COTE NUM TITRE DATEPRET CHAMBRE NO NUM PRIX 41 Modèle relationnel (3) Modèles BD Schéma BD Structure de relation BD Ensemble d’enregistrements reliés par des valeurs Langage de manipulation Ensembliste Déclaratif Standard international [ SQL 86, 89, 92 ou SQL2] Prototypes de recherche System/R chez IBM (1976), Ingres à Berkeley (1976) Systèmes commerciaux SQL/DS et DB2 d’IBM (1982), Oracle (1983), Ingres (1983), Informix (1981), Sybase (1984), SqlServer (1998) MySQL (1995) Access 42 Modèle relationnel (suite) Modèles BD Avantages Indépendance logique/physique Langage de manipulation simple Basé sur une théorie mathématique solide Standard 43 Une architecture de référence pour les SGBD Architecture de référence Description des données : 3 niveaux d’abstraction Exemple Conséquences Conception d’une BD 44 Description des données : 3 niveaux d’abstraction Architecture de référence Groupe ANSI/X3/SPARC (1975) Schéma externe 1 …. Schéma externe n Schéma conceptuel Schéma physique 45 Architecture de référence Exemple Schéma externe pour appli Bibliothèque - Elève - Livre Schéma externe pour appli Direction des études - Elève - UV Schéma conceptuel Schéma Physique Schéma externe pour appli Service social - Elève - Chambre Comment les données sont vues par les « utilisateurs » Représentations logique Multiples Globalité des données Représentation logique Unique Globalité des données Représentation physique des données. Comment les données sont mémorisées (fichiers, index, …) Unique 46 Conséquences Indépendance physique Architecture de référence Indépendance entre les structures de stockage et les structures de données Pouvoir modifier l'organisation physique sans modifier les programmes d’application Exemple: ajouter un index Indépendance logique Pouvoir modifier le schéma conceptuel sans modifier les programmes d’application Exemple : ajouter un attribut 47 Conception d’une BD Architecture de référence 48 Qu’est-ce qu’un SGBD ? Qu’est-ce qu’un SGBD ? But Moyens mis en oeuvre Fonctionnalités Architecture Langage de définition des données (LDD) Langage de manipulation des données (LMD) Interface avec un LPG Java et les SGBD Transaction Les utilisateurs d’un SGBD 49 But et moyens But : Qu’est-ce qu’un SGBD ? Simplifier et faciliter l’accès aux données de la base Assurer une grande sécurité du système d'information Moyens : En offrant une vision de « haut niveau » des données, via un modèle logique des données En se chargeant de faire la correspondance avec la vision de « bas niveau » des données (structures de stockage et méthodes d’accès) 50 Fonctionnalités Qu’est-ce qu’un SGBD ? Langage de définition et de manipulation des données (LDD + LMD) Gestion de l’intégrité définition des CI, Trigger Gestion de la persistance Structures de stockage et méthodes d’accès cluster, index Gestion de la concurrence (transaction, verrouillage) Gestion de la sécurité de fonctionnement transaction, journaux, mécanisme de reprise sur panne Gestion des droits identification, attribution de droits Optimisation algorithme, statistiques Interface avec les langages de programmation 51 Fonctionnalités (++) Qu’est-ce qu’un SGBD ? Gestion de versions Gestion de la répartition Gestion d’objets complexes (image, document, ...) Gestion de connaissances, règles de déduction Environnement de développement (AGL) 52 Architecture d’un SGBD Administrateur Qu’est-ce qu’un SGBD ? Programmeur d’application Définition des schémas de la BD Utilisateur terminal Manipulation de la BD Traducteur LDD Traducteur LMD Noyau SGBD Métabase BD 53 LDD Définition logique des données Schéma conceptuel global Schémas des vues utilisateur Structure des données et liens entre les données Définition physique des données Qu’est-ce qu’un SGBD ? Schéma physique des données Méthodes de placements et d’accès Contrôle des données Contraintes d’intégrité Droits d’accès 54 LMD Objectif Interroger et mettre à jour les données (extraire, ajouter, supprimer, modifier ) Style procédural Qu’est-ce qu’un SGBD ? Exprimer la séquence des opérations d’accès aux données pour obtenir le résultat Modèle hiérarchique et réseau Langage navigationnel Norme CODASYL 71, 78 pour modèle réseau Dépendant du niveau physique Intégration dans un LPG (Cobol pour modèle réseau) Style déclaratif Exprimer l’information souhaitée sans dire la façon dont on accède à l’information Modèle relationnel Langage ensembliste Indépendant du niveau physique Norme SQL 86, 89, 92 SQL « seul » et SQL « intégré » dans un LPG « classique » 55 Interface avec un LPG Qu’est-ce qu’un SGBD ? Problème d’un LMD Uniquement interrogation et mise à jour des données Pas de « calculs » sur les données Solution Interfacer le LMD avec un LPG Diverses techniques d’interfaçage (précompilation, ....) Exemples LMD réseau interface normalisée avec COBOL LMD relationnel interfaces normalisées entre SQL et Cobol, Pascal, Fortran, PL/1 (1978) Ada, C (1989) Java (SQLJ) 56 Java et SGBD Qu’est-ce qu’un SGBD ? JDBC : API de niveau SQL/CLI avec indépendance des SGBD cibles (pb de pilote) SQLJ : embedded SQL pour Java Interface de gestion de la persistance des objets Java (transformation automatique des objets java en structures relationnelles dans les 2 sens) 57 Notion de transaction Qu’est-ce qu’un SGBD ? Séquence d’opération élémentaires (lire, écrire) sur la BD Transaction retrait (noCompte, montant) Début select solde into s from Comptes where numCompte = noCompte; si s > montant alors Update compte set solde = solde – montant where numCompte = noCompte; donnerArgent(montant); Valider(); Sinon Imprimer(‘opération impossible’); Annuler(); Finsi Fin; 58 Propriétés des transactions Qu’est-ce qu’un SGBD ? A : Atomicity C : Consistency I : Isolation D : Durability 59 Les utilisateurs d’un SGBD Le concepteur Qu’est-ce qu’un SGBD ? Contexte de travail : niveau conceptuel Construction du schéma conceptuel avec un modèle de données Administrateur BD Contexte de travail : les 3 niveaux. Définit et màj les schémas logiques Définit les CI + Vues + droits d’accès Définit les schémas physiques (structures de stockage + stratégies d’accès) Utilise le LDD et DD 60 Les utilisateurs d’un SGBD (suite) Qu’est-ce qu’un SGBD ? Développeur d’applications Contexte de travail : niveau externe et conceptuel Utilise le LMD + LPG Écrit des programmes pour interroger, mettre à jour et traiter les données Connaît les schémas logiques et physiques Utilisateur terminal Contexte de travail : niveau externe « Averti »: interroge la BD en utilisant un LMD « Naïf »: utilise les programmes d’application 61