Introduction INT Introduction Notion de bases de données slide 7 Contexte technique Apport BD Terminologie BD Domaines d’application Les modèles de données pour BD Architecture de référence Qu’est-ce qu’un SGBD ? slide 27 slide 40 slide 45 6 Contexte technique BD Notion de bases de données Contexte technique Structure en mémoire centrale (MC) Fichiers Bases de données 7 Structure en MC Notion de bases de données Contexte technique Principes 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) 8 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) 9 Approche fichier avec PCs Direction des études Appli En Cobol Fichiers Étudiants et UVs Bibliothèque Notion de bases de données Contexte technique Service social Appli en Java Fichiers Étudiants et Livres Appli en C Fichiers Étudiants et Chambres 10 Approche fichiers + SGF Notion de bases de données Contexte technique Application bibliothèque Programme 1 Description du fichier des Étudiants *2 Édition du fichier Étudiants par ordre alpha Programme 2 Description du fichier des Étudiants Fichier Étudiants Mise à jour du fichier Étudiants via nom élève SGF 11 Notion de bases de données Contexte technique Problèmes de l’approche fichier 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 12 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 13 Notion de bases de données Contexte technique Approche centralisée PC Windows BD Appli C Appli Cobol PC NT Appli Java Étudiants Uvs Livres Chambres SGBD Description BD PC Linux Terminaux 14 Approche client/serveur PC Windows BD Appli Cobol SGBD PC NT Notion de bases de données Contexte technique Étudiants Uvs Livres Chambres Appli Java Description BD Appli C PC Linux 15 Apport d’une approche BD Notion de bases de données Apport BD Intégration : Description unique et globale des données Éviter les redondances Éviter les incohérences Indépendance : Indépendance entre données et traitements Séparation entre les descriptions logiques et physiques des données 16 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 » Manipulation « aisée » des données Accès efficaces aux données Répartition des des données données et des traitements 17 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 18 Données Une structure Simple: prix, nom, date Complexe: personne, document, image Une sémantique Notion de bases de données Terminologie BD 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 19 Données (2) Notion de bases de données Terminologie BD Des utilisateurs Interrogent « Quelle était la température à paris le 1er janvier 1997 ? » Mettent les données à jour les données « Créditer le compte de M. Monet de 1000 F » 20 Modèle de données Notion de bases de données Terminologie BD Ensemble de concepts pour décrire : 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 21 BD ET SGBD BD : Collection Notion de bases de données Terminologie BD 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 22 Notion de bases de données Terminologie BD Schéma et instance d’une BD Schéma (intention) : 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 23 CI et Métabase Notion de bases de données Terminologie BD Contrainte d’intégrité (CI): 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 » 24 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 : Notion de bases de données Domaines d’application 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 25 Notion de bases de données Domaines d’application Classification Volume de données Complexité des traitements Intensité du service Go Interrogation + Mise à jour Temps de réponse < 2 s. > 100 tps Application d’aide To à la décision Datewarehouse Datamining Interrogation Temps de réponse en mn ou h Notion de tpm Applications transactionnelles TPC (Transaction Processing Council) Benchmarks systèmes transactionnels 26 Modèles BD Les modèles de données pour 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 27 Modèles BD Modélisation des données Modèle de données : Ensemble de concepts pour décrire : En général, un ensemble d’opérations est associé pour manipuler les données Formalisme de description : Les données Les liens entre les données La sémantique des données Textuel Graphique Mathématique Exemples de modèles : Entité/association Hiérarchique/réseau Relationnel Objet, relationnel-objet 28 Modèles BD Modèle Entité/Association [Chen 76] code nbH 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 29 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 30 Modèles BD Critique du modèle Entité/Association 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 Avantages Sémantique riche Extension aux concepts objets (héritage, ...) Aspect visuel Modèle de conception de BD 31 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 Étudiant 32 Modèles BD Modèle hiérarchique (suite) Schéma BD BD Collection d’enregistrements reliés par des pointeurs Langage de manipulation Structure arborescente (forêt) 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 33 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 34 Modèles BD Modèle réseau (suite) Schéma BD BD Navigationnel et procédural Utilisation de pointeurs Standard CODASYL 71, 78 Systèmes Collection d’enregistrements reliés par des pointeurs Langage de manipulation Structure de graphe orienté acyclique (DAG) IDS2 d’Honeywell (1975), Total de Cincom (1974), Adabas de Soft. Ag (1978) Problèmes Pas d’indépendance logique/physique 35 Modèles BD Modèle relationnel [CODD 70] « A Relational Model for Large Shared Data Banks » Exemple Élève(num, nom, adresse, age) UV(code, nbH, coord) Inscrit(numÉtudiant, codeUV, note) Livre(côte, titre, numÉtudiant, datePrêt) Chambre(no, prix, numÉtudiant) 36 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 37 Modèles BD Modèle relationnel (3) Schéma BD BD Ensembliste Déclaratif Standard international [ SQL 86, 89, 92 ou SQL2] Prototypes de recherche Ensemble d’enregistrements reliés par des valeurs Langage de manipulation Structure de relation 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 38 Modèles BD Modèle relationnel (suite) Avantages Indépendance logique/physique Langage de manipulation simple Basé sur une théorie mathématique solide Standard 39 Architecture de référence Une architecture de référence pour les SGBD Description des données : 3 niveaux d’abstraction Exemple Conséquences Conception d’une BD 40 Architecture de référence Description des données : 3 niveaux d’abstraction Groupe ANSI/X3/SPARC (1975) Schéma externe 1 …. Schéma externe n Schéma conceptuel Schéma physique 41 Architecture de référence Exemple Schéma externe pour appli Bibliothèque - Étudiant - Livre Schéma externe pour appli Direction des études - Étudiant - UV Schéma conceptuel Schéma Physique Schéma externe pour appli Service social - Étudiant - 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 42 Architecture de référence Conséquences Indépendance physique 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 43 Architecture de référence Conception d’une BD 44 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 45 Qu’est-ce qu’un SGBD ? But et moyens But : 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) 46 Qu’est-ce qu’un SGBD ? Fonctionnalités 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 47 Qu’est-ce qu’un SGBD ? Fonctionnalités (++) 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) 48 Qu’est-ce qu’un SGBD ? Architecture d’un SGBD Administrateur 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 49 Qu’est-ce qu’un SGBD ? 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 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 50 Qu’est-ce qu’un SGBD ? LMD Objectif Style procédural Interroger et mettre à jour les données (extraire, ajouter, supprimer, modifier ) 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 » 51 Qu’est-ce qu’un SGBD ? Interface avec un LPG Problème d’un LMD Solution Uniquement interrogation et mise à jour des données Pas de « calculs » sur les données 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) 52 Qu’est-ce qu’un SGBD ? Java et 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) 53 Qu’est-ce qu’un SGBD ? Notion de transaction 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; 54 Qu’est-ce qu’un SGBD ? Propriétés des transactions A : Atomicity C : Consistency I : Isolation D : Durability 55 Qu’est-ce qu’un SGBD ? Les utilisateurs d’un SGBD Le concepteur 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 met à jour les schémas logiques Définit les CI + Vues + droits d’accès Définit les schémas physiques (structures de stratégies d’accès) Utilise le LDD et DD stockage + 56 Qu’est-ce qu’un SGBD ? Les utilisateurs d’un SGBD (suite) 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 57