Table des matières. Avant-propos



Documents pareils
Cours Bases de données

IFT3030 Base de données. Chapitre 2 Architecture d une base de données

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Information utiles. webpage : Google+ : digiusto/

Présentation du module Base de données spatio-temporelles

Bases de données avancées Introduction

Bases de Données. Stella MARC-ZWECKER. Maître de conférences Dpt. Informatique - UdS

Introduction aux Bases de Données

CHAPITRE 1 ARCHITECTURE

Introduction aux bases de données

Chapitre 1 : Introduction aux bases de données

Bases de données Cours 1 : Généralités sur les bases de données

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Le "tout fichier" Le besoin de centraliser les traitements des fichiers. Maitriser les bases de données. Historique

Bases de Données Avancées

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

Bases de Données. Plan

Introduction aux Bases de Données Relationnelles Conclusion - 1

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

Cours: Administration d'une Base de Données

IT203 : Systèmes de gestion de bases de données. A. Zemmari zemmari@labri.fr

1/ Présentation de SQL Server :

Initiation aux bases de données (SGBD) Walter RUDAMETKIN

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

INTRODUCTION AUX BASES de DONNEES

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

Intégration de données hétérogènes et réparties. Anne Doucet

Application web de gestion de comptes en banques

Bases de données relationnelles : Introduction

Bases de Données relationnelles et leurs systèmes de Gestion

Bases de données cours 1

et les Systèmes Multidimensionnels

Les bases de données

Chapitre 9 : Informatique décisionnelle

Entrepôt de données 1. Introduction

Développement de base de données Microsoft SQL Server Durée : 5 jours Référence : DPSQL12. Contenu

BASES DE DONNÉES. CNAM Centre associé de Clermont-Ferrand Cycle A Année J. Darmont I. INTRODUCTION II. LES SYSTÈMES HIÉRARCHIQUES

Catalogue des Formations

Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence

Conduite de projets informatiques Développement, analyse et pilotage (2ième édition)

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Introduction aux bases de données Cours 1 : Généralités sur les bases de données

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

Les bases de données Page 1 / 8

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

TP Contraintes - Triggers

Bases de Données Avancées

Implémentation des SGBD

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Business Intelligence : Informatique Décisionnelle

Bases de Données. Le cas des BD relationnelles ouverture sur les BD relationnelles spatiales Séance 2 : Mise en oeuvre

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Du 10 Fév. au 14 Mars 2014

Master I Génie Logiciel

Systèmes d information et bases de données (niveau 1)

Ecole des Hautes Etudes Commerciales HEC Alger. par Amina GACEM. Module Informatique 1ière Année Master Sciences Commerciales

//////////////////////////////////////////////////////////////////// Administration bases de données

Bases de données et sites WEB Licence d informatique LI345

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

Concepteur Développeur Informatique

Introduction aux Bases de Données

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Programme détaillé. Administrateur de Base de Données Oracle - SQLServer - MySQL. Objectifs de la formation. Les métiers

Comprendre Merise et la modélisation des données

Le Langage SQL version Oracle

PROSOP : un système de gestion de bases de données prosopographiques

Chapitre 10. Architectures des systèmes de gestion de bases de données

et Groupe Eyrolles, 2006, ISBN :

Le Langage De Description De Données(LDD)

Magasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP)

SQL Server 2012 Implémentation d'une solution de Business Intelligence (Sql Server, Analysis Services...)

TP Bases de données réparties

Gestion des bases de données

Architectures d'intégration de données

CREATION WEB DYNAMIQUE

Gestion des transactions et accès concurrents dans les bases de données relationnelles

INTRODUCTION : Données structurées et accès simplifié

Compétences Business Objects

FileMaker 13. Guide ODBC et JDBC


Module BDR Master d Informatique (SAR)

1.2 Genèse. 1.3 Version de Designer utilisée

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

Bases de Données Relationnelles. Le Modèle Relationnel

Introduction aux SGBDR

Bases de données relationnelles & SQL

Refonte front-office / back-office - Architecture & Conception -

CHAPITRE 1. Introduction aux bases de données

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

Contenus détaillés des habiletés du Profil TIC des étudiants du collégial

Évaluation et implémentation des langages

16H Cours / 18H TD / 20H TP

Optimisations des SGBDR. Étude de cas : MySQL

Notion de base de données

Module BD et sites WEB

Transcription:

Table des matières Avant-propos v Table des matières xi 1 Introduction aux systèmes de gestion de bases de données 1 1.1 Donnée et type de données 2 1.2 Donnée et information 2 1.3 Donnée simple et complexe 3 1.4 Différentes facettes du terme base de données 4 1.5 Système de gestion de bases de données 4 1.6 Principales architectures de bases de données 9 1.7 Des systèmes de gestion de fichiers aux SGBD 14 1.8 Perspective historique 20 1.9 Exemple introductif d'utilisation d'un SGBD 22 1.10 Conception du schéma d'une base de données 36 1.11 Architecture à trois niveaux des schémas 38 Exercices 40 Notes bibliographiques 40 Références 41 2 Processus de conception de bases de données 43 2.1 Planification 46 2.2 Analyse : modèle conceptuel de données 49 2.3 Diagrammes de classes UML 50 2.4 Modèle entité-association : ERD de Oracle Designer 80 Exercices 83 Références 84 3 Introduction au modèle relationnel 85 3.1 Concepts de base 86 3.2 Contraintes d'intégrité fondamentales du modèle relationnel 90 3.3 Conception logique : traduction du modèle conceptuel de données en schéma conceptuel relationnel 94 3.4 Algèbre relationnelle 122 Exercices 138 Notes bibliographiques 140 Références 140 4 Le langage SQL 141 4.1 Spécification du schéma relationnel avec SQL (LDD SQL) 144 4.2 Requêtes SQL (SELECT) 156 4.3 Opérations de mise à jour en SQL 193 4.4 Niveau externe du schéma en SQL 196 4.5 Schéma interne 215 4.6 Sommaire des SQL2, SQL:1999 et SQL:2003 215 Exercices 217 Projets à réaliser 218 Notes bibliographiques 218 Références 219

xii Systèmes de gestion de bases de données par l'exemple 5 Interface entre SQL et un programme 220 5.1 SQL enchâssé 223 5.2 Introduction à l'extension procédurale PL/SQL d'oracle 229 5.3 JDBC 243 5.4 SQLJ 279 Exercices 294 Projets à réaliser 296 Notes bibliographiques 296 Références 296 6 Gestion des contraintes d'intégrité en SQL 297 6.1 Contrainte de domaine (NOT NULL, CHECK, CREATE DOMAIN) 299 6.2 Contrainte de clé primaire (PRIMARY KEY) 301 6.3 Autres clés uniques (UNIQUE) 301 6.4 Contrainte d'intégrité référentielle (FOREIGN KEY REFERENCES) 302 6.5 Autres cas contraintes (CHECK complexe et ASSERTION) 307 6.6 Implémentation de la vérification des contraintes d'intégrité 309 6.7 Cohérence des contraintes d'intégrité 310 6.8 Nom de contrainte (clause CONSTRAINT) 310 6.9 Contraintes déférées (SET CONSTRAINTS DEFERRED) 310 6.10 Gâchettes (TRIGGER) 312 Exercices 324 Projets à réaliser 324 Notes bibliographiques 325 Références 325 7 Gestion des données en mémoire secondaire 326 7.1 Principales caractéristiques des disques 328 7.2 Fichiers et répertoires 335 7.3 Organisation par bloc 338 7.4 Concepts de base du traitement de fichiers en Java 353 7.5 Organisation par enregistrement 373 7.6 Allocation sérielle d'espace pour les enregistrements de taille fixe et l'adressage relatif 383 7.7 Allocation d'espace pour les enregistrements de taille variable 386 7.8 Allocation sérielle par grappe homogène 394 7.9 Fichiers séquentiels 398 7.10 Gestion d'enregistrements en Java 400 Exercices 415 Projets à réaliser 416 Notes bibliographiques 416 Références 416 8 Organisations unidimensionnelles : indexage et hachage 418 8.1 Organisations unidimensionnelles : indexage et hachage 420 8.2 Arbre digital 448 8.3 Hachage 449 8.4 Tableau comparatif des organisations 464 Exercices 466 Projets à réaliser 468 Notes bibliographiques 469 Références 469

Table des matières xiii 9 Méthodes multidimensionnelles et représentation d'associations 471 9.1 Méthodes multidimensionnelles 472 9.2 Représentation des associations 489 Notes bibliographiques 497 Références 498 10 Évaluation des requêtes relationnelles 499 10.1 Concepts de base 501 10.2 Décomposition 506 10.3 Estimation du coût des opérations physiques 507 10.4 Optimisation 550 Exercices 568 Notes bibliographiques 572 Références 572 11 Théorie de la normalisation 573 11.1 Décomposition sans perte 576 11.2 Dépendance fonctionnelle 577 11.3 Normalisation 586 Exercices 605 Notes bibliographiques 609 Références 609 12 Cas d'utilisation détaillés et processus d'élaboration du modèle conceptuel de données 610 12.1 Cas d'utilisation détaillés 611 12.2 Concepts avancés de diagrammes de classes UML 622 12.3 Processus d'élaboration du modèle conceptuel de données 633 12.4 Estimation des volumes de données 661 Exercices 662 Références 664 13 Conception dans un contexte relationnel 665 13.1 Mise en œuvre des contraintes d'intégrité en SQL 668 13.2 Conception du schéma relationnel au niveau externe 695 13.3 Niveau interne de schéma relationnel : conception physique 697 13.4 Paramètres du mécanisme d'allocation d'espace : cas de Oracle 723 13.5 Mise au point de la configuration du SGBD : cas de Oracle 729 13.6 Choix de l'architecture et bancs d'essais TPC 731 Exercices 732 Projets à réaliser 734 Notes bibliographiques 734 Références 734 14 Intégrité et gestion des transactions 735 14.1 Concept de transaction 737 14.2 Propriétés d'une transaction 739 14.3 État d'une transaction 742 14.4 Architecture générale pour la gestion des transactions 744 14.5 Contrôle de concurrence 745 14.6 Fiabilité et récupération 783 14.7 Modèles avancés de transaction 798

xiv Systèmes de gestion de bases de données par l'exemple Exercices 802 Notes bibliographiques 810 Références 810 15 Développement d'application de bases de données en Java 811 15.1 Application Java/JDBC client-serveur 812 15.2 Développement d'applications Web par servlet Java 849 15.3 Architecture pour la persistance transparente 869 15.4 Norme EJB de J2EE 870 Projets à réaliser 900 Notes bibliographiques 902 Références 902 16 Bases de données objet et persistance transparente 903 16.1 Le langage de définition de données ODL 906 16.2 Mécanismes de gestion des objets persistants 918 16.3 Le langage de requête OQL 920 16.4 Le langage de manipulation de données OML 929 16.5 Persistance transparente avec la norme JDO 940 Notes bibliographiques 948 Références 948 17 Relationnel-Objet 949 17.1 Type défini par l'utilisateur (UDT) 950 17.2 Extensions au langage de manipulation de données SQL 960 17.3 Accès aux extensions objets en Java 965 Notes bibliographiques 975 Références 975 18 Bases de données parallèles et réparties 976 18.1 Base de données répartie 977 18.2 Base de données parallèle 990 Notes bibliographiques 999 Références 999 19 Entrepôts de données et analyse de données 1000 19.1 Schéma en étoile pour le OLAP 1003 19.2 Regroupements multidimensionnels (CUBE et ROLLUP SQL:1999) 1006 19.3 Statistiques d'ordonnancement 1012 19.4 Regroupements par fenêtrage 1014 19.5 Implémentation OLAP 1018 19.6 Fouille de données 1020 19.7 Règles d'association 1021 19.8 Algorithmes de regroupement 1058 19.9 Classification 1064 Notes bibliographiques 1072 Références 1075 20 Données semi-structurées et XML 1079 20.1 Introduction à XML 1081 20.2 Espace de nom XML (XML namespace) 1088 20.3 Schéma XML 1090 20.4 Langage de requête XPath 1098

Table des matières xv 20.5 XPointer 1101 20.6 Contraintes de clé 1101 20.7 Langage de requête XML Query (XQuery) 1104 20.8 Traitement d'un document XML avec JAXP 1105 20.9 Système de Gestion de XML 1108 20.10 Oracle et XML 1109 Exercices 1114 Notes bibliographiques 1115 Références 1115 21 Repérage de l information 1116 21.1 Mesures d'évaluation (rappel et précision) 1119 21.2 Indexation 1121 21.3 Indexation automatique de documents textuels 1123 21.4 Listes inversées 1124 21.5 Recherche plein texte 1124 21.6 Modèle booléen 1124 21.7 Modèle vectoriel 1126 21.8 Intégration du degré de pertinence au Booléen 1127 21.9 Intégration d'un mécanisme d'apprentissage par rétroaction (feedback) 1128 21.10 Méthodes avancées 1129 21.11 Intégration à un SGBD : le cas d'oracle 1132 Notes bibliographiques 1136 Références 1136 22 Logique et bases de données 1138 22.1 Calculs des prédicats du premier ordre 1139 22.2 Calculs des prédicats en bases de données 1140 22.3 Bases de données déductives : Datalog et sémantique du point fixe 1148 Notes bibliographiques 1154 Références 1154 Annexe Utilisation du logiciel Access de Microsoft 1155 A.1 Création d'un schéma de base de données 1156 A.2 Manipulation de données sous Access 1167 A.3 Formulation de requêtes à la manière de QBE 1168 A.4 Création d'un formulaire 1176 Références 1186 Index 1187

1 Introduction aux systèmes de gestion de bases de données L'art de douter est le meilleur secret pour apprendre. Marcel Prévost 1.1 Donnée et type de données 2 1.2 Donnée et information 2 1.3 Donnée simple et complexe 3 1.4 Différentes facettes du terme base de données 4 1.5 Système de gestion de bases de données (SGBD) 4 1.6 Principales architectures de bases de données 9 1.7 Des systèmes de gestion de fichiers aux SGBD 14 Redondance et incohérence des données 15 Mécanismes d'organisation de données limités des SGF 16 Intégrité sémantique 16 Contrôle de concurrence 17 Fiabilité 18 Sécurité 18 Gestion des transactions 18 Indépendance des données 19 1.8 Perspective historique 20 1.9 Exemple introductif d'utilisation d'un SGBD 22 Création du schéma avec l'outil SQL*plus d'oracle 24 Manipulation de données avec l'outil SQL*plus 25 INSERT SQL 26 Transaction (COMMIT SQL) 26 Respect des contraintes d'intégrité 29 SELECT SQL 29 Exécution d'un SELECT dans une application client-serveur Java 30 SELECT sur plusieurs tables 32 UPDATE SQL 33 DELETE SQL 34 Organisation physique des données 34 Dictionnaire de données 35 1.10 Conception du schéma d'une base de données 36 1.11 Architecture à trois niveaux des schémas 38 Exercices 40 Notes bibliographiques 40 Références 41

2 Systèmes de gestion de bases de données par l'exemple Les bases de données (BD) jouent un rôle fondamental dans la plupart des applications de l'informatique. Elles sont utilisées dans une grande variété de domaines tels que la gestion des organisations, l'ingénierie, la médecine, le contrôle de processus, etc. Le terme base de données prend des significations différentes selon les contextes et l'évolution du domaine de l'informatique. Cette instabilité au niveau de la terminologie est un phénomène inévitable des disciplines jeunes. Les prochaines sections tentent de clarifier les principaux usages de ce terme en faisant ressortir les facettes plus particulièrement traitées dans cet ouvrage. En même temps, plusieurs concepts de base sont introduits. Comme dans toute introduction, plusieurs concepts sont présentés de manière sommaire et seront étudiés de manière plus élaborée dans les chapitres subséquents. 1.1 DONNÉE ET TYPE DE DONNÉES Avant d'aborder les bases de données, il est utile d'éclaircir la notion de donnée telle qu'utilisée dans le contexte de cet ouvrage. Donnée (data) Une donnée au sens informatique est une représentation d'un fait à l'aide d'un code binaire stocké dans la mémoire de l'ordinateur. Le mécanisme de codage doit être connu par le programme qui traite la donnée. Type de données (data type ) Le type de données détermine la nature du codage utilisé pour représenter une donnée et les opérations applicables à la donnée. Exemple Une donnée de type entier est normalement représentée par un entier codé en binaire d'une longueur prédéterminée, par exemple, 32 bits. Un bit est réservé pour le signe dans le cas d'un entier signé. Une donnée de type réel utilise un codage plus complexe composé de la mantisse, de l'exposant et d'un bit de signe. Une donnée de type caractère est souvent représentée par le code ASCII ou Unicode du caractère. Une chaîne de caractères peut être représentée par un tableau de caractères. Pour chaque type de données, il y a un ensemble d'opérations applicables aux données de ce type. Exemple Il est possible d'effectuer des opérations arithmétiques sur les données de type entier. Normalement, il y a aussi des opérations permettant de lire ou d'afficher un entier sous forme d'une chaîne de caractères. 1.2 DONNÉE ET INFORMATION Il peut être important de distinguer entre une donnée et une information. Une donnée ne prend un sens que lorsqu'elle est interprétée. Pour un programme, cette interprétation est de nature plutôt rudimentaire et se borne à la connaissance des opérations sur le type de la donnée. Par exemple, dans une base de données, la note d'un étudiant pourrait être représentée par une donnée de type réel. Le programme ne comprend pas qu'il s'agit d'une note. Sa compréhension se limite à pouvoir effectuer certaines opérations sur le nombre réel telles que le calcul de la moyenne d'un ensemble de notes. Une interprétation plus raffinée sera effectuée habituellement par un humain. Le contexte permet à l'humain d'interpréter la donnée. Une donnée devient une information lorsqu'elle enrichit les connaissances de cet humain. Par exemple, le contexte de la donnée permettra à l'humain de savoir que la donnée de type réel représente sa note. Lorsque le contexte est connu, l'humain peut alors interpréter la donnée et en tirer une information au sens où ses connaissances seront enrichies suite à la réception de la donnée. En consultant sa note, l'étudiant devient plus informé. Pour lui, la donnée devient une information.

1 Introduction aux systèmes de gestion de bases de données 3 Shannon et Weaver (1959) ont proposé une théorie formelle de l'information dans le but de mesurer la quantité d'information pouvant être communiquée dans un canal de communication. Selon cette théorie, la quantité d'information d'un message d'une source à un destinataire se mesure comme une diminution de l'incertitude au niveau du destinataire du message. Cette vision des choses fait ressortir un point crucial de la notion d'information. Le fait qu'un message (ou donnée) soit perçu comme une information est relatif au destinataire du message. La donnée informe si elle change quelque chose au niveau de l'état du destinataire. L'information est le résultat de ce changement au niveau de l'état du destinataire. Comme le niveau d'interprétation d'une donnée par un programme est très rudimentaire, le terme donnée sera habituellement préféré au terme information dans le contexte informatique. Cependant, les deux termes sont souvent utilisés comme synonymes lorsque de telles nuances sémantiques deviennent une préoccupation secondaire. 1.3 DONNÉE SIMPLE ET COMPLEXE Donnée simple ou complexe Une donnée de type simple, ou donnée simple (entier, réel, caractère), est indécomposable du point de vue du système qui la manipule alors qu'une donnée de type complexe,oudonnée complexe, est composée de données simples ou complexes. Exemple Une note représentée par un entier sera vue comme une donnée de type simple et l'ensemble des données relatives à un étudiant, incluant son code permanent, son prénom, son nom et la liste de ses notes peut être vue comme une donnée de type complexe. Type de données complexe Un type de données complexe est défini en composant des types simples ou complexes à l'aide de constructeurs de types (enregistrement, ensemble, tableau, etc.). La distinction entre ce qui est simple et ce qui est complexe est relative au contexte. Il n'y a donc pas de notion absolue de simple et complexe. Exemple Une chaîne de caractères pourra être considérée comme un type simple ou complexe selon le contexte. Dans les premières applications des bases de données, les types simples étaient limités à des entiers, des réels et des chaînes de caractères d'une taille limitée. L'évolution technologique permet de considérer aujourd'hui le traitement de données beaucoup plus élaborées et volumineuses telles que les données multimédias. Donnée multimédia (multimedia data) Une donnée qui représente un texte, une image, un son ou une séquence vidéo est appelée donnée multimédia. Une donnée de type image peut avoir une taille de 1 M (mégaoctet), par exemple. Néanmoins, du point de vue de la base de données, cette donnée peut être considérée comme une donnée de type simple si le système qui manipule cette donnée la voit toujours comme un élément atomique non décomposable. Du point de vue des bases de données, l'important est de retenir qu'il y a des types de données simples supportés par le système et qu'il est possible de construire des types plus complexes, à partir des types simples, à l'aide de constructeurs de types. Ce qui est simple ou complexe peut varier d'un système à l'autre.

4 Systèmes de gestion de bases de données par l'exemple 1.4 DIFFÉRENTES FACETTES DU TERME BASE DE DONNÉES Le terme base de données est devenu très commun. Plusieurs sens parfois contradictoires sont attribués à ce terme dans le langage courant et même dans le jargon de l'informatique. Base de données (BD) (database ) Au sens large, une base de données est n importe quelle collection de données. À une extrémité du spectre, par exemple, certains vont utiliser le terme base de données pour désigner un fichier de texte contenant une liste de noms et de numéros de téléphone dans un format plus ou moins arbitraire. C est une base de données au sens minimaliste du terme. Le mode d utilisation de cette base de données est très primitif et passe par un logiciel de traitement de texte qui peut être utilisé pour consulter le contenu du fichier. La structure des données est, dans ce cas, inconnue du logiciel et l interprétation est totalement de la responsabilité de l utilisateur humain. Le logiciel ne sait pas qu il y a, dans la séquence de caractères du texte, des sous-séquences qui représentent des noms et des numéros de téléphone. Pour lui, il s agit d une séquence ennuyante de caractères quelconques. Un ensemble de fichiers de textes peut aussi être qualifié de base de données. On retrouve cette interprétation dans les applications de gestion documentaire, par exemple. Un ensemble de fichiers d enregistrements supportant une application est aussi souvent appelé une base de données. Certains logiciels désignent par base de données un seul fichier d'enregistrements et, en conséquence, il faut définir plusieurs bases de données pour supporter une application. Pour d'autres logiciels, une base de données peut en fait contenir plusieurs sous-bases de données indépendantes les unes des autres. Quelle confusion! À l extrême limite, la Toile (World Wide Web - WWW) peut aussi être vue comme une base de données lourde, de nature hétérogène et répartie. Un aspect qui ajoute à la confusion au niveau de la terminologie est la nuance entre une base de données et une collection de bases de données. Par exemple, dans une organisation, on pourrait parler de plusieurs bases de données, chacune étant consacrée à une fonction spécifique. Ainsi, il pourrait y avoir une base de données pour supporter les fonctions d inventaire et de ventes, une autre pour la comptabilité et une autre pour les ressources humaines. Ce phénomène fréquent de multiplication de bases de données est dû au fait que différentes applications sont développées de façon indépendantes parfois sur des plates-formes technologiques différentes. Cependant, d un point de vue plus abstrait, le tout peut être considéré comme une seule base de données logique qui est implantée par un ensemble de bases de données physiques. Selon le contexte du discours, ces deux interprétations pourront être utilisées. Dans la prochaine section, l'interprétation du terme base de données favorisée dans cet ouvrage sera précisée. 1.5 SYSTÈME DE GESTION DE BASES DE DONNÉES (SGBD) Base de données (BD) (database ) Dans un sens plus strict, une base de données est un ensemble de données, possédant les caractéristiques suivantes : 1. Elles sont fortement structurées. 2. Elles sont persistantes. 3. Leur structure est définie dans un schéma. 4. Elles sont gérées par un logiciel appelé système de gestion de bases de données qui en gère aussi le schéma.

1 Introduction aux systèmes de gestion de bases de données 5 C est cette interprétation du terme base de données qui est le sujet principal de cet ouvrage. Système de gestion de bases de données (SGBD) (database management system - DBMS) Un système de gestion de bases de données est un logiciel spécialisé pour la gestion de bases de données. Le premier point (1) implique que la structure des données est clairement identifiée et très élaborée. Programme source avec LMD enchâssé Programmeur Utilisateur expert pré-compilateur Programme source incorporant des appels à une interface programmatique Administrateur de base de données (ABD) Compilateur Utilisateur Utilitaire d'édition du schéma Utilitaire d'édition et d'interprétation de commandes du LMD Programme d'application Utilitaire convivial de manipulation de données Interprète du LDD Evaluateur de requête (LMD) Système de gestion de base de données (SGBD) Dictionnaire de données (contient le schéma ou méta-données) Base de données (contient les données) Mémoire secondaire permanente Figure 1 Composantes principales de l'environnement d'un SGBD du point de vue de l'utilisateur

6 Systèmes de gestion de bases de données par l'exemple Le deuxième point (2), concernant la persistance, signifie que les données doivent survivre aux programmes qui les manipulent. Les programmes ont une durée de vie limitée. Lorsqu'un programme d'application est interrompu, les données contenues en mémoire centrale sont perdues. Mémoire centrale (main memory, primary storage), principale, vive, primaire ou volatile La mémoire centrale est directement accessible par le processeur central (ou unité centrale de traitement). Elle contient les instructions et les données d'un programme en exécution. Cette mémoire est aussi appelée mémoire principale, vive, primaire ou volatile. Elle est caractérisée par sa rapidité et par sa non-permanence. Pour que les données puissent survivre aux programmes qui les manipulent, elles doivent être conservées en mémoire secondaire. Mémoire secondaire (secondary storage), permanente, externe, stable, non volatile ou persistante La mémoire secondaire est accessible indirectement via des opérations d'entrée/sortie. Cette mémoire est aussi appelée mémoire permanente, externe, stable, non volatile ou persistante. Elle est caractérisée par sa lenteur, relativement à la mémoire vive, et par son aspect permanent. Le médium le plus fréquemment utilisé comme mémoire secondaire est le disque magnétique. Un SGBD comprend des mécanismes sophistiqués pour assurer la persistance des données malgré les interruptions des programmes d'application. Non seulement faut-il pouvoir assurer la persistance des données malgré la fin normale d'un programme d'application, mais encore faut-il également pouvoir réagir à certains événements imprévus qui peuvent survenir (pannes matérielles, bogues, etc.). Cela implique, qu ultimement, les données sont stockées en mémoire secondaire et qu'en plus, diverses formes de redondance de données sont exploitées pour améliorer la fiabilité de la BD. Souvent, les données redondantes sont conservées dans des mémoires plus lentes et moins coûteuses que le disque, comme la bande magnétique ou le disque optique parfois appelés mémoires tertiaires. Le SGBD contient aussi des mécanismes sophistiqués pour gérer d autres aspects de l intégrité des données tels que la sécurité, l intégrité sémantique et l accès concurrent. Troisièmement (3), la structure des données est définie formellement en utilisant un langage de définition des données (LDD). Langage de définition des données (LDD ) (data definition language DDL ) Le langage de définition des données est un langage spécialisé qui permet de définir les types des données qui sont emmagasinées dans la base de données. Schéma de la base de données (database schema ) La structure des données définie à l'aide du langage de définition des données est appelée le schéma de la base de données. Une caractéristique importante d'un SGBD est la possibilité de définir des types complexes à partir de types simples afin de former des structures de données très riches et interreliées. Les SGBD actuels tendent à incorporer de plus en plus de fonctionnalités pour le traitement de types de données plus complexes en incorporant des types standards pour la représentation de données multimédias et en permettant de créer de nouveaux types de données non prédéfinis selon les besoins. En particulier, les SGBD objet et relationnel-objet permettent d'étendre les types du SGBD par la définition de nouvelles classes.