BD: Architecture & Administration PDF
Document Details
Uploaded by Deleted User
Tags
Summary
Ce document présente un cours sur l'administration des bases de données. Il détaille les concepts fondamentaux et les sujets importants associés à la gestion des bases de données, tels que les politiques de contrôle des accès.
Full Transcript
Administration & architecture Présentation générale Intitulé de l’UE : UEF 2.2 Nombre de crédits : 5 Coefficient de la Matière : 4 Volume horaire : 1h:30mn de cours, 1h:30mn de TP Prérequis ▻ Modèle relationnel / normalisation / SQL en tant que ▻ langage de défin...
Administration & architecture Présentation générale Intitulé de l’UE : UEF 2.2 Nombre de crédits : 5 Coefficient de la Matière : 4 Volume horaire : 1h:30mn de cours, 1h:30mn de TP Prérequis ▻ Modèle relationnel / normalisation / SQL en tant que ▻ langage de définition de données et langage de requêtes Objectifs du cours Maîtrise de l’architecture des SGBD et l’administration d’une base de données après sa création Evaluation du cours (Interrogation + examen final) 2 Plan de cours Chapitre 1: Introduction Chapitre 2 : Gestion d’integrité ▰ Généralité ▰ Vue d’ensemble des CI ▰ Architecture ▰ Les contraintes statiques ▰ SGBD Oracle ▰ Les contraintes dynamique 3 Plan de cours Chapitre 3: Administration des BDs Chapitre 4: Mécanisme des vues ▰ Dictionnaire de Données ▰ Vues ▰ Vues Matérialisées 4 Plan de cours Chapitre 5: Gestion des privilèges d’accès ▰ Privilège système ▰ Privilège objet ▰ Notion de role 5 Les TD/TP à réaliser ▰ TP1 : création, manipulation, interrogation d'une BD+ CI statiques + Evolution de schéma (1 séances) ▰ TP2 : droits d’accès (? séance) ▰ TP3 : dictionnaire de données (1 séance) ▰ TD : PL/SQL + Triggers (2 séances) ▰ TP3 : PL/SQL + Triggers (2 séances) ▰ TD1 : les vues ( 2 séance) 6 1 Introduction 7 Plan Présentation générale des BD et SGBD : Rappels ❑ Généralités ▪ Définitions, historique des SGBD, des BD ❑ Le SGDB ▪ Niveaux de description et Architecture des SGBD ▪ Objectifs et fonctionnalités d’un SGBD ❑ Le SGBD ORACLE ▪ Architecture générale, description, fonctions.. 8 Définition d’une bases de données ▰ Collection de données cohérentes et structurées (données persistantes) utilisées par des systèmes informatiques. ▰ Collection de données fortement structurées et persistantes dont la structure est définie dans un schéma au moyen d’un langage de définition de données. ▰ Les données et le schéma sont gérés à l’aide d’un logiciel appelé système de gestion de bases de données (SGBD). 9 Définition d’un SGBDS Un SGBD: système de gestion de base de données ▰ Un ensemble de logiciels informatiques qui sert à la manipulation des bases de données. ▰ Il sert à effectuer des opérations ordinaires telles que consulter, modifier, construire, organiser, transformer, copier, sauvegarder ou restaurer des bases de données. Il est souvent utilisé par d'autres logiciels ainsi que les administrateurs ou les développeurs. ▰ L’ensemble, dont le composant central est le moteur de base de données, peut être sous forme de composants logiciels, de serveurs, de logiciels applicatifs ou d’environnement de programmations. ▰ Il permet généralement à plusieurs utilisateurs et plusieurs logiciels de manipuler plusieurs bases de données en même temps quelque soit le contenu et l’organisation des BDs 10 Rôle d’un administrateur Garantir un fonctionnement optimal de la base ▰ définir les stratégies de sauvegarde (sauvegarde, (maintenance) restauration, archivage) ▰ installer le SGBD ▻ gérer les accès aux données ▻ serveur, clients, outils d’applications ▰ maintenir de bonnes performances (ou les ▰ créer la base et la faire évoluer améliorer) ▻ définir les organisations logique et physique ▰ permettre l’échange de données Base Extérieur de stockage ▻ définir les ressources de mémorisation des ▻ Export/import, SQLloader données ▰ enregistrer et gérer les utilisateurs ▻ créer les rôles, profils utilisateurs ▻ affecter les rôles appropriés aux utilisateurs ▻ assurer la sécurité et la cohérence des données 11 Niveaux de description des données Stockage physique Description de l’organisation physique des données Domaine de Schéma interne l’administrateur de la base de données Description de l’univers à modéliser Domaine des avec éventuellement les contraintes concepteurs de Schéma conceptuel liées à ces objets (contraintes BD d’intégrité) Domaine des Application accédant aux créateurs Schéma Schéma Schéma Externe 1 Externe 2 Externe 3 données : notion de vue d’applications (accès limités) 12 Fonctionnalités d’un SGBD ▰ Interface : Rôle : Interpréteur de requêtes ▰ Analyseur de requêtes : Rôle : ▻ Génération de l’arbre algébrique ▻ Optimisation de la requête : génération de l’arbre optimisé ▻ Génération du plan d’exécution ▰ Gestionnaire de transactions : une transaction est l’unité d’exécution d’une requête: elle a la forme ▻ Début transaction ▻ Demande de verrous ▻ Lecture/ ecriture ▻ Fin transaction Rôle : piloter l’exécution d’une requête ▰ Gestion de la mémoire : Le SGBD gère un espace de stockage suivant deux aspects : ▻ Mémoire centrale : Buffer de données reçoit les données transférées de la MS et le Buffer SQL qui contient le plan d’exécution de la requête ▻ Mémoire secondaire qui contient les tables de données stockées suivant des organisations de stockage 13 Objectifs des SGBD ▰ Indépendance des données par rapport aux supports physiques ▻ Notion de relation qui définit la structure de données ▻ La structure d’implémentation d’une relation est la table sur laquelle seront définis des chemins d’accès. ▰ Indépendance logique ▻ Le SGBD doit autoriser plusieurs visions d’utilisateurs sur la base ▻ Possible grâce à la notion de vues 14 Objectifs des SGBD ▰ Evolution de la BD ▻ Evolution des données ▻ Insertion ▻ Suppression ▻ Modification ▻ Evolution du schéma : Modification de la structure d’une relation ▻ Ajout, suppression d’attributs ▻ Ajout d’une nouvelle relation. ▰ Cohérence de données ▻ Intégrité des données ▻ Les données d’une base de données doivent vérifier des invariants appelés contraintes d’intégrité. 15 Objectifs des SGBD Partageabilité des données et sécurité de fonctionnement ▰ Possibilité d’autoriser plusieurs utilisateurs à accéder en même temps à la base de données ▰ Gestion des conflits d’accès et d’écriture. ▰ Sécurité de la BD ▻ Gestion des utilisateurs ▻ Gestion des droits d’accès ▻ Gestion des transactions ▰ Intégrité de la BD ▻ Protection contre les pannes ▻ Reprise après panne ▻ Gestion des journaux log 16 Principales architectures des BDs ▰ Architecture centralisée ▻ Programme d'application et SGBD sur même machine (même site) ▻ Premiers systèmes ▰ Architecture du type client-serveur ▻ Programme d'application = client ▻ Interface (IHM) + traitement du domaine d’application ▰ SGBD = serveur de données ▻ machines (sites) différentes 17 Architecture Client-Serveur 18 Architecture à trois tiers 19 Bases de données réparties ▰ SGBD réparti ▻ Répartition des données de manière transparente ▻ Objet 20 Bases de données parallèles ▰ Parallélisme à l'intérieur d'un site 21 Entrepôt de données 22 Architecture Fonctionnelle générale d’un SGBD 1. L'utilisateur envoie une requête SQL au SGBD pour effectuer des opérations sur la base de données, telles que la sélection, l'insertion, la mise à jour ou la suppression de données. 23 Architecture Fonctionnelle générale d’un SGBD 2. Gestionnaire de sessions (Session Manager) : Il gère les connexions des utilisateurs à la base de données, suivant l'authentification et la gestion des sessions. 3. Gestionnaire de sécurité (Security Manager) : Il gère les autorisations et les droits d'accès aux données pour assurer la confidentialité et la sécurité des informations stockées dans la base de données. 24 Architecture Fonctionnelle générale d’un SGBD 4. Gestionnaire de métadonnées (Metadata Manager) : Il stocke et gère les métadonnées, c'est-à-dire les informations sur la structure de la base de données, les schémas, les relations entre les tables, 25 Architecture Fonctionnelle générale d’un SGBD 5. Gestionnaire de requêtes (Query Manager) : Il analyse les requêtes SQL reçues et détermine le meilleur plan d'exécution possible en utilisant des techniques d'optimisation. Cela inclut l'analyse syntaxique, la génération de plans d'exécution et l'optimisation pour améliorer les performances. Il travaille en tendem avec l’optimiseur de requête 26 Architecture Fonctionnelle générale d’un SGBD 6. Gestionnaire de transactions (Transaction Manager) : Si la requête implique des modifications de données, le gestionnaire de transactions assure la cohérence des données en gérant les verrous, les validations, et en garantissant que les transactions sont exécutées de manière atomique, cohérente, isolée et durable (ACID). 27 Architecture Fonctionnelle générale d’un SGBD 6. Gestionnaire de verrous (Lock Manager) : En cas de transactions concurrentes, le gestionnaire de verrous attribue des verrous pour assurer l'isolation des transactions et éviter les conflits d'accès aux données. 28 Architecture Fonctionnelle générale d’un SGBD 6. Gestionnaire de tampons (Buffer Manager) : gère la communication entre l'interface utilisateur, les gestionnaires de requêtes, les gestionnaires de transactions, et le stockage sur disque. Il travaille en étroite collaboration avec le moteur de stockage pour garantir un accès efficace aux données. 29 Architecture Fonctionnelle générale d’un SGBD 6. Il gère le transfert des données entre la mémoire centrale et le stockage de données sur disque. Il maintient un ensemble de tampons en mémoire pour stocker temporairement les pages de données les plus récemment accédées, réduisant ainsi le besoin d'accéder fréquemment au stockage de données.. 30 Architecture Fonctionnelle générale d’un SGBD Mémoire centrale INTERFACE UTILISATEUR Dictionnaire de données ANALYSE DE REQUÊTES Analyse Optimisation Lock Manager Syntaxique Lock Manager Transactions Buffer Manager Verrous exécution Tompon de transactions Gestion de la mémoire Buffer données (Mémoire cache) BD Mémoire secondaire 31 Architecture interne d’un SGBD Administrateur Utilisateur Applications Requêtes DDL Requêtes Programme interactives Compilateur du Pré-compilateur langage de prog Compilateur de Commandes DML Compilateur DDL requêtes Compilateur DML Transaction compilé Méta-base Gestionnaire des données Processeur BD Module de contrôle des accès concurrents BD Module de restauration er de recouvrement 32 Architecture d’un SGBD ▰ Gestionnaire de données ▻ La base de données ainsi que la méta-base sont stockées en mémoire secondaires. L’accès à leurs données est assuré par le gestionnaire de données. ▻ L’accès est d’abord contrôlé par le système de gestion de fichier, le gestionnaire de données est un module de plus haut niveau assurant l’accès aux données via un ensemble de buffers. ▰ Méta-base ▻ Contient toutes les informations sur les données comme la structure des tables, les types de données, les index crées, etc. 33 Architecture d’un SGBD ▰ Compilateur DDL ▻ Compile et exécute le schéma de définition de données et sauvegarde les descriptions dans la méta-base. ▰ Compilateur DML ▻ Compile et exécute les requêtes de manipulation de données. ▰ Compilateur de requêtes ▻ Traite les requêtes utilisateurs saisies de manière interactive. Il parse, analyse puis compile ces requêtes. 34 Architecture d’un SGBD ▰ Processeur de base de données ▻ Contrôle l’accès à la base de données. Il reçoit des ordres de recherche ou de mise à jour et les exécute sur la base de données. L’accès aux données est assuré par le gestionnaire de données. ▰ Pré-compilateur ▻ Permet d’extraire les commandes DML pour une compilation en code objet. Le reste du code est envoyé au compilateur du langage de programmation, ensuite les deux codes objets sont fusionnés pour générer des transactions qui seront à leur tour envoyée au processeur de BD 35 2 Contraintes d’intégrité 1 Introduction ❑ Les contraintes d’intégrité permettent d’assurer que les données d’une BD sont conformes à la réalité qu’elle représentent ❑ Une contrainte d’intégrité est une règle qui peut être simple ou complexe pouvant prendre la valeur vraie ou faux ❑ Elle s’applique sur les données d’une base de données ❑ Elle permet de maintenir la cohérence de données 2 ▰ Etudiant (matricule) ▰ Begin ▰ For i IN 1..100 loop insert into etudiant values (i); End loop ; End 3 Introduction Quand les déclarer ? ▰ A la création de la base de données. ▰ A tout instant de l’existence d’une base de données, on doit pouvoir définir une nouvelle contrainte d’intégrité de manière dynamique. Le SGBD doit fournir des mécanismes pour vérifier que la base est cohérente vis à vis de cette contrainte et l’accepter ou la rejeter. Comment ? ▰ A l’aide d’instructions ou de programmes SQL, ou ses différentes extensions SQL 86, SQL 89, PL/SQL etc. ▰ Le SGBD doit fournir des mécanismes pour vérifier que la base est cohérente vis à vis de cette contrainte et accepter ou rejeter toute mise à jour de la BD. 4 Introduction ▰ Soit la relation Employés ( NSS, Nom, Date_recrutement, Fonction, code_service*) ▰ À la création ▻ CREATE TABLE Employés ( NSS integer PRIMARY KEY, Nom char (40) NOT NULL, date_recrutement date, code_service varchar (30) , CONSTRAINT C1 CHECK (Fonction in (‘Ingenieur’ ‘comptable’)) ▰ Au cours de la vie de la BD ▻ ALTER TABLE Employés ADD CONSTRAINT C2 CHECK (Fonction IN (‘Ingenieur’ ‘comptable’)) 5 Les types de contraintes d’intégrités ▰ Les contraintes d’intégrité statiques sont celles qui correspondent à un prédicat sur l’état courant de la base. ▰ Les contraintes d’intégrité dynamiques sont celles qui concernent le passage d’un état à un autre. 6 Les types de contraintes d’intégrités Individuelle: Un tuple, Simple Ensembliste: Plusieurs tuples, Complexe Contrainte Statique Dynamique Statique dynamique Un état Changement d’état Mono attribut NSS char(12) Point indiciare>= Not Null Salaire employé ne Une colonne Unicité clé valeur minimale peut pas dépasser 2 fois la moyenne des Intra salaires relation: Une table Multi attribut Unicité d’une clé composée Date_recrutement < Unicité de clé Somme des crédits < Plusieurs date_promotion composée somme des débits colonnes pour un compte Multi attribut Clé étrangère Quantité Inter relation commandée