Principes des Bases de Données Relationnelles du 29 au 31 mai 2000 INT, Evry
Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL La conception d’une BD relationnelle Protection des informations Perspectives des BD Evry, 29-31 mai 2000
Objectifs du cours Montrer l’intérêt d’une approche BD Présenter le modèle relationnel Proposer une démarche de conception Présenter les SGBD relationnels et les outils associés Faire le point sur les différentes architectures de mise en œuvre des SGBD relationnels Evoquer les évolutions des bases de données Evry, 29-31 mai 2000
Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL La conception d’une BD relationnelle Protection des informations Perspectives des BD Evry, 29-31 mai 2000
Bases de données et SI BD: support technique pour la gestion des SI BD: environnement de développement des SI BD: élément stratégique dans l’architecture des SI (fonctionnalités, évolution, fiabilité, sécurité) Evry, 29-31 mai 2000
Contexte technique BD Structure en mémoire centrale (MC) Fichiers Bases de données Evry, 29-31 mai 2000
Structure en MC Principes Problèmes 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-utilisateur Evry, 29-31 mai 2000
Fichiers Stockage persistant sur disque «Gros» volumes de données Langages de programmation et SGF Contexte mono-utilisateur (en général) Evry, 29-31 mai 2000
Approche fichier avec PCs Evry, 29-31 mai 2000
Approche fichiers + SGF Evry, 29-31 mai 2000
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 Evry, 29-31 mai 2000
Bases de données Stockage persistant sur disque «Très gros» volumes de données Langage de requêtes et langages de programmation et SGBD Contexte multi-utilisateurs Evry, 29-31 mai 2000
Approche centralisée Evry, 29-31 mai 2000
Approche client/serveur Evry, 29-31 mai 2000
Notions de base Les données Modèle de données Schéma d’une BD Instance d’une BD Contraintes d’intégrité Système de gestion de bases de données Métabase Evry, 29-31 mai 2000
Les données Une structure Une sémantique 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 Evry, 29-31 mai 2000
Les données (suite) 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 Evry, 29-31 mai 2000
Les données (suite) 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 » Evry, 29-31 mai 2000
Modèle de données 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 Evry, 29-31 mai 2000
Schéma d’une 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 Evry, 29-31 mai 2000
Instance d’une BD Collection de données de la base écrite selon un certain modèle Instance du schéma Dynamique Evry, 29-31 mai 2000
Contraintes d’intégrité 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 » Evry, 29-31 mai 2000
Système de gestion de bases de données 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 Evry, 29-31 mai 2000
Métabase Collection des données qui décrivent la BD « Valeur du schéma » Evry, 29-31 mai 2000
Apport d’une approche BD Intégration Indépendance Sécurité Facilités pour l’utilisateur Evry, 29-31 mai 2000
Intégration Description unique et globale des données Eviter les redondances Eviter les incohérences Evry, 29-31 mai 2000
Indépendance Indépendance entre données et traitements Séparation entre les descriptions logiques et physiques des données Evry, 29-31 mai 2000
Sécurité Contrôle sémantique des données Protection contre les accès non autorisés Protection contre les pannes Evry, 29-31 mai 2000
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 Evry, 29-31 mai 2000
Une architecture de référence pour les SGBD Description des données Exemple Conséquences Conception d’une BD Niveau conceptuel Niveau interne Niveau externe Evry, 29-31 mai 2000
Description des données Trois niveaux de description selon le groupe ANSI/X3/SPARC (1975) Evry, 29-31 mai 2000
Exemple Evry, 29-31 mai 2000
Conséquences Indépendance physique Indépendance logique Indépendance entre les structures de stockage et les structures de données Pourvoir 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. Evry, 29-31 mai 2000
Conception d’une BD L'indépendance physique est réalisée si toute modification de la structure interne ne remet pas en cause la description effectuée par le LDD. Evry, 29-31 mai 2000
Niveau conceptuel (suite) Quoi ? Evry, 29-31 mai 2000
Niveau conceptuel (suite) Comment ? Il existe plusieurs modèles de données: E/A, réseau, relationnel, Z Evry, 29-31 mai 2000
Niveau conceptuel (suite) Principes de construction La BD est vue comme une représentation de l’univers du discours Distinction entre instance et type Evry, 29-31 mai 2000
Niveau conceptuel (suite) Principes de construction (suite) Distinction entre entités et association: Entité: élément concret ou abstrait du domaine d’application qui a une existence intrinsèque. Association: lien entre deux ou plusieurs entités. Evry, 29-31 mai 2000
Niveau interne Structure de stockage supportant les données = niveau physique. Dépendant du SGBD Les données sont organisées en fichiers Un fichier est composé d’enregistrements Un enregistrement est composé de champs Les données sont accédées par des index, des chaînages, ... La conception ne prend pas en compte les problèmes de performance Evry, 29-31 mai 2000
Niveau externe Une vue particulière de la BD par un utilisateur ou un groupe Vue = Sous-schéma = schéma externe En général, une vue = un sous-ensemble du schéma conceptuel Indépendance logique Sécurité, confidentialité Facilité de manipulation La définition d’une vue décrit les règles de passage entre les éléments du schéma conceptuel et les éléments de la vue Evry, 29-31 mai 2000
Modélisation et modèles pour les bases de données Modélisation des données Les modèles pour les bases de données Evry, 29-31 mai 2000
Modélisation des données 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 Evry, 29-31 mai 2000
Modélisation des données (suite) Modèle BD Modèle permettant la description et la manipulation des données Modèle implanté via un SGBD Formalisme de description Textuel Graphique Mathématique Evry, 29-31 mai 2000
Modélisation des données (suite) Exemples de modèles Entité/Association Hiérarchique, Réseau Relationnel Evry, 29-31 mai 2000
Modèle Entité/Association [Chen 7] Exemple de modèle Evry, 29-31 mai 2000
Critique du modèle Entité/Association 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 Evry, 29-31 mai 2000
Modèle relationnel [CODD 70] « A Relational Model for Large Shared Data Banks » Exemple Employé(No_ss, Nom, Adresse, Age, salaire) Projet(No, Libellé, Chef_projet) Travaille_sur(No_employé, No_projet) Evry, 29-31 mai 2000
Modèle relationnel (suite) Schéma BD Structure de relation BD Ensemble d’enregistrements reliés par des valeurs Langage de manipulation Ensembliste Déclaratif Standard international [ SQL 8, 89] Evry, 29-31 mai 2000
Modèle relationnel (suite) 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) Evry, 29-31 mai 2000
Modèle relationnel (suite) Avantages Indépendance logique/physique Langage de manipulation simple Basé sur une théorie mathématique solide Standard Evry, 29-31 mai 2000
Résumé sur les modèles Evry, 29-31 mai 2000
Qu’est-ce qu’un SGBD ? But Moyen Fonctionnalités de base Autres fonctionnalités Langage de définition Langage de manipulation des données Interface avec un LPG Les utilisateurs d’un SGBD Schéma global Evry, 29-31 mai 2000
But Simplifier et faciliter l’accès aux données de la base Assurer une grande sécurité du système d'information Evry, 29-31 mai 2000
Moyen 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) Evry, 29-31 mai 2000
Fonctionnalités de base 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 Evry, 29-31 mai 2000
Fonctionnalités de base (suite) Gestion de la sécurité de fonctionnement transaction, journaux, mécanisme de reprise Gestion des droits identification, attribution de droits Optimisation algorithme, statistiques Interface avec les langages de programmation Evry, 29-31 mai 2000
Autres 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) Evry, 29-31 mai 2000
Langage de définition 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 Evry, 29-31 mai 2000
Langage de manipulation des données Objectif Interroger et mettre à jour les données extraire ajouter supprimer modifier Evry, 29-31 mai 2000
Langage de manipulation des données (suite) 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 8, 89, 92 SQL « seul » et SQL « intégré » dans un LPG « classique » Evry, 29-31 mai 2000
Interface avec un LPG Problème d’un LMD Uniquement interrogation et mise à jour des données Pas de « calculs » sur les données Evry, 29-31 mai 2000
Interface avec un LPG (suite) Solution Interfacer le LMD avec un LPG Diverses techniques d’interfaçage (précompilation, ....) 2 approches langages hôtes: Par intégration d'un langage d'accès à la BD dans un langage de programmation SEQUEL et le langage C Embedded SQL 2 possibilités: Précompilation des requêtes à la BD Interprétation à l'exécution Par extension d'un langage de programmation PASCAL R Evry, 29-31 mai 2000
Interface avec un LPG (suite) Exemples LMD réseau interface normalisée avec COBOL LMD relationnel interfaces normalisées entre SQL et Cobol, Pascal, Fortran, PL/1 (1986) Ada, C (1989) Evry, 29-31 mai 2000
Les utilisateurs d’un SGBD L ’administrateur BD Contexte de travail: les 3 niveaux. Utilise LDD (définition de la BD avec le LDD) Définit les schémas logiques et physiques (structures de stockage + stratégies d’accès) Définit les CI + droits d’accès Définit vues Utilise le DD Evry, 29-31 mai 2000
Les utilisateurs d’un SGBD (suite) Le développeur d’applications Contexte de travail: niveau externe Utilise le LMD + LPG Ecrit des programmes pour interroger, mettre à jour et traiter les données Connaît les schémas logiques et physiques Evry, 29-31 mai 2000
Les utilisateurs d’un SGBD (suite) L ’utilisateur terminal Contexte de travail: niveau externe « Averti »: interroge la BD en utilisant LMD « Naïf »: utilise les programmes d’application Evry, 29-31 mai 2000
Les utilisateurs d’un SGBD (suite) Le concepteur Contexte de travail: niveau conceptuel Construction du schéma conceptuel avec un modèle de données Evry, 29-31 mai 2000
Schéma global Evry, 29-31 mai 2000