Organisation et administration d une base de données Diapositive de résumé Objectif du cours Introduction et utilisation d une base de données Comparatif des SGBD Structure Physique et Logique d une BD Introduction à l'administration d une base de données (Oracle ) 2 1
Objectif du cours Introduction et utilisation d une base de données 2
Définition Base de données : ensemble structuré de données pour satisfaire simultanément plusieurs utilisateurs de façon sélective enregistrées avec le minimum de redondance en un temps opportun. Stockage des données : Sur support permanent Administration des données : Systèmes de Gestion de Base de Données (SGBD) 5 Utilisations : SIG Un système d'information géographique (SIG) est un système d'information capable d'organiser et de présenter des données alphanumériques spatialement référencées, ainsi que de produire des plans et des cartes. Ses usages couvrent les activités géomatiques de traitement et diffusion de l'information géographique. Représentation généralement en deux dimensions (rendu 3D ou animation présentant des variations temporelles sur un territoire sont possibles). Représentation plus ou moins réaliste de l'environnement spatial en se basant sur des primitives géométriques : points, des vecteurs (arcs), des polygones des maillages. À ces primitives sont associées des informations attributaires telles que la nature (route, voie ferrée, forêt, etc.) ou toute autre information contextuelle (nombre d'habitants, type ou superficie d'une commune par ex.). 6 3
Utilisations : Biométrie La liste des applications pouvant utiliser la biométrie, peut être très longue. Voici quelques exemples non exhaustifs : Le contrôle d'accès à des locaux (sites sensibles, salles informatiques...) Les systèmes d'informations (lancement du système d'exploitation, accès au réseau, commerce électronique...) La police et les gouvernements (services d immigrations, aéroports, manifestations...) Les documents officiels (fichiers judiciaires, titres d'identités, votes électroniques...) L'automobile (système d'ouverture et de démarrage sans clé) Le Système d'information des visas (SIV) ou Système européen d'identification des visas est une base de données de l'union européenne. Elle recueille les empreintes digitales et les informations biométriques concernant le visage (une photo numérisée) de tous les postulants à un VISA de court séjour pour l'espace Schengen. 7 Utilisations : Biométrie Le principal problème lié à l'utilisation de la biométrie est d'ordre éthique. Il concerne le stockage de données personnelles (et quoi de plus personnel qu'une empreinte) ainsi que le contrôle que son propriétaire peut en faire. En effet l'empreinte de l'utilisateur peut être stockée de deux façons: Stockage centralisé : L image de l empreinte est stockée dans une base de donnée sur un serveur. L utilisateur n a pas accès à ces données et n a pas de contrôle sur l utilisation qui est faite de son empreinte. Stockage décentralisé : L image de l empreinte est stockée en local sur le disque dur ou sur une carte. L utilisateur a accès à cette image et peut contrôler l utilisation qui est faite de son empreinte. En France, la Commission Nationale Informatique et Liberté (CNIL) est défavorable à la création de bases de données d'empreintes digitales en l'absence d'un impératif de sécurité incontestable. L Anonymisation des données est l une des démarches qui concourent au respect de la loi Informatique & Libertés et à la protection des données à caractère personnel. 8 4
Utilisations : Informatique décisionnelle L informatique décisionnelle désigne les moyens, les outils et les méthodes qui permettent de collecter, consolider, modéliser et restituer les données, matérielles ou immatérielles, d'une entreprise en vue d'offrir une aide à la décision et de permettre aux responsables de la stratégie d'entreprise d avoir une vue d ensemble de l activité traitée. De nos jours, les données applicatives métier sont stockées dans une ou plusieurs base(s) de données. Ces données sont extraites, transformées et chargées dans un entrepôt de données généralement par un outil de type ETL (Extract-Transform-Load) 9 Utilisations : Bases de données multimédia Une base de données multimédia est un type de base de données consacré au stockage et à l'organisation de données multimédia : documents sonores, images, vidéos. Elles peuvent s'appuyer sur différentes architectures de bases de données, les types les plus utilisés étant le modèle relationnel et le modèle objet. Les bases de données multimédia ne sont pas des applications encore très courantes, et posent encore des problèmes, notamment pour l'indexation de leur contenu et les recherches par contenu. Domaines : détection de copies (droits), retrouver un plan spécifique d un programme, annotation automatique de vidéos biométrie (empreintes, iris), vidéosurveillance 10 M. Slaughter 5
Comparatif des SGBD Comparatif 1 - MS SQL Server 2000 : OS : Windows Open source : Non Gestion des transactions : Oui Requête imbriquées : Oui Vues : Oui Intégrité Référentielle : Oui Trigger : Oui Procédures Stockées : Oui Sauvegarde : à chaud License : Payante Outils frontaux : oui, mais pas en ce qui concerne le développement Pourquoi la choisir : indépendance des bases de données, autonomic computing, architecture relativement simple 2 - Oracle 10g SE: OS : Windows, Linux, Unix Open source : Non Gestion des transactions : Oui Requête imbriquées : Oui Vues : Oui Intégrité Référentielle : Oui Trigger : Oui Procédures Stockées : Oui Sauvegarde : à chaud et à froid License : Payante Outils frontaux : oui, mais pas simple d'utilisation Pourquoi la choisir : base de données complexes, requête complexes, gros budgets, leader du marché 12 6
Comparatif 3 - MySQL v.4 : OS : Windows, Linux Open source : Oui Gestion des transactions : Oui, mais seulement via innodb (payant) Requête imbriquées : non Vues : non Intégrité Référentielle : Oui en mode InnoDB et BDB Trigger : Non Procédures Stockées : Non Sauvegarde : Utilitaire mysqldump License : Payante en cas de commercialisation Outils frontaux : MySQL Control center Pourquoi la choisir : base de données simples, pages web dynamiques, alternative gratuite (selon option!) à Access 4 - Postgre SQL : OS : Linux, Unix, Windows Open source : Oui Gestion des transactions : Oui Requête imbriquées : Oui Vues : Oui Intégrité Référentielle : Oui Trigger : Oui Procédures Stockées : Oui Sauvegarde : pg dump License : gratuite Outils frontaux : PostgreSQL admin tools Pourquoi la choisir : base de données simple à administrer, requête complexes, ne convient pas pour de gros volumes 13 Introduction à l administration Deux architectures possibles: client/serveur : des applications clientes envoient les requêtes SQL et PL/SQL a un serveur. Multi-tier : des serveurs d'application allègent la charge du serveur en réalisant certains accès pour les clients. Un serveur de bases de données est composé : d'une instance = plusieurs processus et une zone de mémoire d'une base de données de plusieurs schémas, assimiles a des utilisateurs 14 7
Métiers Administrateur Responsable de la sécurité Administrateur réseaux Développeurs d'application Administrateurs d'application Utilisateurs : modifier les données, créer des rapports 15 Rôle du DBA Installer les logiciels Oracle un serveur, des applications clientes, En fonction de la configuration système disponible Si fonctionnement en réseau : composants réseaux d'oracle Planifier et créer des bases de données Gérer l'espace et implanter les schémas des données Assurer la sécurité, l'intégrité et la pérennité des données Effectuer des réglages pour optimiser les performances 16 8
Structure Physique et Logique d une BD Structure Physique d une BD La structure physique d une base de données Oracle est constituée de trois types de fichiers : fichiers de données (Data files) stockage des données utilisateurs et des données de gestion de la base fichiers de reprise ( Redo Log files) contiennent la trace des dernières modifications et permettent en cas de panne de remettre la base dans un état cohérent. fichiers de contrôle (Control files) contiennent les informations relatives à la structure physique de la base. 18 9
Structure Logique d une BD La structure logique se compose de : tablespaces segments extentions blocs objets de schéma Les objets de schéma : tables vues index clusters séquences procédures stockées fonctions packages triggers 19 Structure Physique et Logique d une BD Correspondance entre structure logique et physique Fichier Table Base de Données Tablespace Table Fichier Table 20 10
Notion de tablespace Rôle d un tablespace : unité logique de stockage des objets de la base contrôle de l espace consommé répartition des entrées/sorties sur des fichiers différents et des disques différents séparation des segments de données et des segments d index unité de sauvegarde à chaud et à froid de la base Deux types de tablespaces : tablespace SYSTEM (obligatoire) tablespaces non-systèmes 21 Notion de tablespace Tablespace SYSTEM existe à la création de la base contient le dictionnaire de données Tablespaces non-système peuvent être rajoutés ou supprimés peuvent être actifs (online) ou désactivés (offline) contiennent les données, les index contiennent les segments de rollback Tablespaces temporaires : ils sont utilisés pour les tris des données ils ne peuvent pas contenir des objets permanents 22 11
Notion de segment, extension, bloc base de données tablespace fichier de données segment extension bloc bloc O/S 23 Tablespace Tablespace Segment 20M Next Extent 5M Initial Extent 15M Blocs Oracle 24 12
Définitions Tablespace: Un lieu de stockage logique pour des données. Segment: Un segment contient toutes les données pour une structure spécifique à l intérieur d un tablespace : une table, un index, une partition d une table,... Il est composé d un ou plusieurs extents. Extent: Un ensemble de blocs Oracle contigus. Bloc DB: Généralement plusieurs blocs de fichier physique. Stratégie d allocation d espace L unité d allocation d espace est l extent L espace est alloué lorsqu un objet est créé et plus tard lorsqu il grandit Un tablespace possède un ou plusieurs fichiers. Possibilité d extension dynamique du tablespace 25 Les segments Segments de données : servent à stocker les données Segments d index Segments de rollback : utilisés pour la gestion des transactions et contiennent les copies des données avant modification, permettant d annuler une transaction en cas de besoin Segments temporaires : utilisés pour les tris des données, certaines sous-requêtes Segments de démarrage 26 13
Les fichiers de reprise Oracle utilise un ensemble de plusieurs Redo Log Files (ou fichiers «journaux») : mémorisent toutes les transactions effectuées par les utilisateurs. représentent un historique complet de toutes les commandes (amenant une modification) passées sur la base de données. Rôle des fichiers de reprise : Protéger les segments de données, d index, de rollback Sauvegarde des données modifiées Journaliser les information concernant les mises à jour afin de pouvoir les refaire Redémarrer la base après un arrêt brutal (coupure de courant, ) 27 Le dictionnaire de données Le dictionnaire de données: contient la description de tous les objets gérés par le SGBD, est créé lors de l initialisation de la base et modifié lors de l exécution des ordres du LDD tels que : CREATE objet, ALTER objet, DROP objet, GRANT, REVOKE, Le SGBD est le seul à modifier le dictionnaire de données. Les utilisateurs peuvent consulter le dictionnaire par l exécution des requêtes sur les vues du dictionnaires. 28 14
Le dictionnaire de données Quatre classes de vues sont disponibles en fonction du privilège de chaque utilisateur : classe DBA vues préfixées par DBA_ et V_$ permet le contrôle de tous les objets et un suivi des performances classe USER permet le contrôle de tous les objets dont l utilisateur est propriétaire classe ALL permet le contrôle de tous les objets qui sont accessibles à l utilisateur autres vues 29 Le dictionnaire de données Exemples : DBA_DATA_FILES : information sur les fichiers de données USER_CONSTRAINTS :définitions des contraintes sur les tables de l utilisateur ALL_ALL_TABLES : description de tous les objets accessibles à l utilisateur TABLE_PRIVILEGES : les privilèges attribués aux utilisateurs sur les objets de la base. 30 15
Structure dynamique d'une base de données Le serveur Oracle est composées de : Instance Oracle : Structures mémoire, les processus pour gérer la base Base de données Oracle 31 Structure dynamique d'une base de données La zone mémoire Oracle découpe la zone mémoire qui lui est allouée en trois parties : la PGA : gère les processus utilisateurs, la SGA : une zone commune de mémoire partagée, contenant des informations spécifiques à une instance, la zone de tri, pour le stockage temporaire des données. 32 16
Structure dynamique d'une base de données Les états d'une base de données : Une base de données reconnaît quatre états : base fermée NOMOUNT MOUNT OPEN Seul un utilisateur privilégié, vis à vis de la base de données, peut modifier les états d'une instance. 33 Structure dynamique d'une base de données Les processus Processus Oracle Processus utilisateur Serveur Oracle Utilisateur 34 17
Structure dynamique d'une base de données Les processus assurent le fonctionnement d'une instance Oracle 5 processus indispensables : DBWR (Database Writer) LGWR (Log Writer) CKPT (Checkpoint) PMON (Process Monitor) SMON (System Monitor) Ces processus sont interdépendants. 35 Le processus DBWR Travaille en priorité avec les buffers de données en mémoire. Vérifie qu'il y a toujours des buffers libres en mémoire. Transfert les blocs de données de la mémoire vers les fichiers de la base de données. Le comportement de DBWR est contrôlé par le paramètre DB_WRITERS 36 18
Les processus LGWR et CKPT Le processus LGWR (log writer) assure la sécurité. Il a pour mission d'écrire toutes les informations utiles dans les fichiers redo-log. - Il supervise la mémorisation des transactions. - Il met à jour les fichiers Redo Log. - Si l'un est plein, il commute sur le suivant. Il est automatiquement déclenché lors d'un commit, lorsqu'un buffer Redo Log est au tiers plein ou quand le processus dbw a besoin de libérer les buffers de la base de données. Le processus CKPT est un mécanisme de synchronisation (checkpoint). Ce processus d arrière plan a pour rôle d enregistrer le point de reprise dans l entête des fichiers de données et dans les fichiers de contrôle. 37 Le System Monitor Le processus SMON surveille la base de données lors de son démarrage et au cours de son fonctionnement. SMON rétabli la base si le dernier arrêt n'a pas été correctement effectué. SMON est chargé de faire de la place si DBWR a besoin d'espace pour effectuer un tri. SMON vérifie l'espace libre dans les fichiers de la base de données. 38 19
Le Processus Monitor PMON supervise tous les autres processus et nettoie les transactions défaillantes. - Il est chargé du nettoyage en effectuant une annulation (rollback) lorsqu un processus utilisateur est planté. - Il libère les verrous et les ressources. 39 Structure dynamique d'une base de données 40 20
Introduction à l'administration d une base de données (Oracle ) Les Taches d'un DBA Assurer l'accessibilité de la base de données Création de la base Gestion des structures physiques Gestion de la sécurité Administration réseau Sauvegarde et restauration de la base Optimisation de la base de données 42 21
Outils d'administration Server Manager Line Mode Oracle Entreprise Manager Les utilisateurs DBA par défaut : SYS SYSTEM 43 La sécurité sur une base de données De façon générale, la sécurité comporte trois aspects : la confidentialité: repose sur la gestion des utilisateurs et des droits d'accès aux informations présentes dans l'instance. la disponibilité des données : dépend à la fois du SGBD, du système d'exploitation ainsi que de la plate-forme matérielle utilisée. l'intégrité des données : repose sur l'application et sur le SGBD.. 44 22
La gestion des utilisateurs sous Oracle La sécurité d'un SGBD est basée sur la notion d'utilisateur: il représente une potentialité de connexion pour atteindre la base de données. Chaque outil utilisé (sqlplus ou svrgmr) demande un nom de connexion et un mot de passe. Oracle détient dans une table interne la liste des utilisateurs pouvant intervenir sur les informations de l'instance. 45 La gestion des utilisateurs sous Oracle Création d'un utilisateur : CREATE USER nom_user IDENTIFIED {BY mot_passe EXTERNALLY} [DEFAULT TABLESPACE nom_tablespace] [TEMPORARY TABLESPACE nom_tablespace] [PASSWORD EXPIRE] [ACCOUNT {LOCK UNLOCK}]; 46 23
La gestion des utilisateurs sous Oracle SQL> select * from all_users; USERNAME USER_ID CREATED ------------------------------ ---------- --------- SYS 0 31-AUG-99 SYSTEM 5 31-AUG-99 REZNIK 21 07-SEP-99 DBSNMP 17 31-AUG-99 TRACESVR 19 31-AUG-99 SCOTT 20 31-AUG-99 JBOUFFIL 53 15-SEP-99 FBEUVIER 49 15-SEP-99 SBILLOT 50 15-SEP-99 RBIZOT 51 15-SEP-99 NBLANCPA 52 15-SEP-99 47 La gestion des utilisateurs sous Oracle Lors d'une connexion deux phases distinctes sont reconnues : la phase d'identification (reconnaissance de l'utilisateur, elle est liée à son nom de connexion), la phase d'authentification (certification de l'identité de l'utilisateur, elle est liée à la fourniture d'un mot de passe). Oracle impose que l'identification soit assurée par le SGBD. La vérification de l'authentification est alors laissée sous le contrôle du système d'exploitation. L'utilisateur est alors qualifié «d'externe». 48 24
La gestion des utilisateurs sous Oracle SQL> select USERNAME, PASSWORD from dba_users; USERNAME PASSWORD ------------------------------ -------------------- SYS 602B3F19454EB26E SYSTEM 4C7BB6C087EACC33 REZNIK C8E29748A2F3EFB8 DBSNMP E066D214D5421CCC TRACESVR F9DA8977092B7B81 SCOTT F894844C34402B67 JBOUFFIL 6BCAA44EAA6C5117 FBEUVIER 3FD3D2CF4DF443DD SBILLOT 18FC1A1D000DE48E RBIZOT 72F8EFBF0E423ABF NBLANCPA D46DF7681AD9A639 TOTO EXTERNAL 49 La gestion des utilisateurs sous Oracle Lors de l'activation de sqlplus, le nom de connexion et le mot de passe sont saisis, on peut vérifier le nom de connexion par la commande SHOW USER : SQL> SHOW USER USER is NPETIT Une des caractéristiques des utilisateurs est la liste des tablespaces sur lesquels ils peuvent intervenir par défaut. Chaque utilisateur possède : un tablespace par défaut, un tablespace temporaire. SQL> CREATE USER toto IDENTIFIED BY toto DEFAULT TABLESPACE eleve05-06; 50 25
La gestion des utilisateurs sous Oracle Les limites statiques La confidentialité des ressources statiques s'appuie sur la notion de : privilège, rôle, vue. 51 La gestion des utilisateurs sous Oracle Les privilèges système Les privilèges système sont des permissions liées aux actions. Ils permettent l'exécution d'actions sur des types d'objets. Chacun de ces privilèges est donné sur tout objet d'un certain type. Par exemple, pour qu'un utilisateur puisse se connecter, il est impératif de lui donner le privilège create any session. 52 26
La gestion des utilisateurs sous Oracle Privilèges système : create any session, pour se connecter, create any index, pour créer des index, create any table, pour créer des tables, create user, pour créer des utilisateurs, 53 La gestion des utilisateurs sous Oracle Syntaxe : GRANT {privilège_système rôle } [,{privilège_système rôle}] TO {nom_utilisateur role PUBLIC} [ {nom_utilisateur role PUBLIC}] [WITH ADMIN OPTION]; REVOKE {privilège_système rôle } FROM {nom_utilisateur role PUBLIC}; Exemple: SQL> GRANT CREATE USER TO NPETIT; 54 27
La gestion des utilisateurs sous Oracle Les privilèges sur les objets ALTER : modification des objets, DELETE : suppression des lignes, EXECUTE : exécution de procédures et fonctions, INDEX : création d'index, INSERT : insertion de lignes, REFERENCES : référence à une colonne d'une table, SELECT : sélection de lignes, UPDATE : modification de lignes, ALL, tous les privilèges précédemment cités. 55 La gestion des utilisateurs sous Oracle GRANT {privilège_objet } [,{privilège_objet }] ON [schéma.]objet TO {nom_utilisateur role PUBLIC} [ {nom_utilisateur role PUBLIC}] [WITH GRANT OPTION]; REVOKE {privilège_objet } FROM {nom_utilisateur role PUBLIC}; Exemple : SQL> GRANT SELECT ON livre TO PUBLIC; 56 28
La gestion des utilisateurs sous Oracle Les privilèges par défaut Par défaut, le propriétaire (ou le créateur) d'un objet (quelque il soit) possède tous les droits sur cet objet. 57 Scruter les processus 58 29
Arrêt/Démarrage de la base 59 Suivi d activités 60 30
Monitoring de sessions Toad permet de monitorer les sessions et de les supprimer au besoin, sans risquer de supprimer la mauvaise session 61 Toad s Session Browser 62 31
Toad s Session Browser 63 Toad s Session Browser 64 32
Sauvegarde et restauration Les principes de la sauvegarde et de la restauration Pour obtenir une sauvegarde fiable, il est nécessaire que l'application soit arrêtée (ce qui est difficilement acceptable). Cet arrêt assure le respect de certaines règles : les fichiers ne sont plus accédés. Ils sont donc dans un état stable et les informations présentes dans ces derniers sont donc cohérentes quant aux dates des transactions (dans le cas d'une instance), les buffers caches du système et de l'application sont mis à jour dans les fichiers, si plusieurs fichiers sont utilisés, nous disposons d'un ensemble d'informations globalement cohérentes. 65 Sauvegarde et restauration Les techniques de sauvegarde et de restauration La sauvegarde: trois interventions sont nécessaires pour effectuer les sauvegardes : le SGBD dispose de commandes pour mettre dans un état stable un fichier, une commande liée au système d'exploitation permet de sauvegarder les fichiers, le DBA remet en activité l'objet Oracle. La restauration s'opère en quatre étapes : effectuer un diagnostic pour connaître la liste des fichiers corrompus, mettre l'instance dans un état permettant une phase de restauration, restaurer le fichier (ou les fichiers), «prévenir» le SGBD qu'une modification a eu lieu. 66 33
Sauvegarde et restauration Les politiques de sauvegarde Quatre structures sont vues par le système d'exploitation : les fichiers de configuration (init.ora et config.ora et le contenu de /var/opt/oracle) : ces derniers sont de taille relativement petite et l'administrateur sait si leur contenu a évolué, les control files : ces fichiers sont aussi de taille relativement faibles (quelques kilo-octets). Ils sont modifiés lors d'un changement de structure impliquant le système d'exploitation, les fichiers de redo log : ces fichiers mémorisent toutes les transactions ayant été effectuées sur une instance. Il est donc impératif de les conserver tant qu'une sauvegarde complète, instance arrêtée, n'a pas eu lieu, Après, les sauvegardes de ces fichiers deviennent obsolètes et peuvent être détruites, les fichiers de données (mis en oeuvre dans les tablespaces) : ils représentent souvent la partie la plus importante en quantité d'informations. 67 Sauvegarde et restauration Les méthodes proposées par le SGBD Deux techniques sont possibles : sauvegarde de tous les fichiers mis en oeuvre dans une instance. On parle de backup complet. sauvegarde partielle de l'instance, seulement certains fichiers sont conservés. On parle de backup partiel. Ces techniques peuvent être utilisées lorsque l instance est : arrêtée: on parle de backup à froid, ouverte: cette méthode pose intrinsèquement des problèmes de fiabilité. 68 34
Questions 69 35