Glossaire de bases de données relationnelles

Ce glossaire - index permet d'accéder au support de cours en cliquant sur l'icone du concept choisi. Les autres liens permettent une navigation hypertexte dans ce glossaire - index. 

  • administrateur de base de données (DBA) : utilisateur privilégié en charge de concevoir et de faire évoluer les schémas externes, le schéma conceptuel et le schéma physique d'une base de données.
    C'est lui qui utilise un langage de définition de données.
  • agrégat : fonction définie en SQL qui permet de calculer un résultat atomique (un entier ou un réel) à partir d'un ensemble de valeurs. Les agrégats sont au nombre de 5 : COUNT, SUM, MIN, MAX, AVG.
  • algèbre relationnelle : modèle formel permettant d'exprimer et de calculer les requêtes sur les relations.
    Ce modèle est équivalent aux langages d'interrogation prédicatifs.
    L'algèbre relationnelle est constituée d'un ensemble d'opérateurs algébriques. Les plus utilisés
    sont la sélection, la jointure, la projection et les opérateurs ensemblistes.
    Le résultat de l'exécution d'un opérateur est toujours une relation, ce qui permet la composition. L'algèbre relationnelle est utilisée également pour l'optimisation de requêtes.
    Une requête algébrique peut se présenter sous forme d'un arbre algébrique.
  • arbre algébrique : visualisation d'une requête sous une forme graphique d'arbre plus facile à lire qu'une forme linéaire. Se prête bien également à l'optimisation de requêtes.
  • architecture ANSI/SPARC : architecture de référence d'un SGBD. Elle est constituée de 3 niveaux : le niveau externe (proche des utilisateurs) constitué des schémas externes,
    le niveau conceptuel (celui du milieu) constitué du schéma conceptuel et le niveau physique (celui des disques) constitué du schéma physique.
  • attribut : c'est un des concepts du modèle relationnel. Un attribut désigne un domaine par un nom qui identifie le rôle joué par l'attribut dans la relation.
  • base de données : c'est une collection d'informations structurées. Cette structure est définie par un schéma (appelé aussi intention) décrit selon un modèle de données.
    Les données respectent le schéma et sont appelées aussi extension.
  • base de données répartie : c'est une base de données dont l'extension est répartie sur différents sites et l'intension est dupliquée sur tous ces sites.
    Une base de données répartie est supportée par un SGBD réparti.
  • benchmarks : ils permettent de mesurer les performances d'un SGBD sur une machine donnée. Les plus utilisées sont les TPC/A, TPC/B, TPC/C et TPC/D. Ils sont censés évaluer l'efficacité transactionnelle.
  • clé : un des concepts du modèle relationnel. Une clé est composée d'un ou plusieurs attributs d'un schéma de relation dont la valeur permet de désigner au plus un tuple de l'extension de la relation.
  • clé étrangère : c'est un concept du modèle relationnel. Une clé étrangère est constituée
    d'un ou plusieurs attributs d'un schéma de relation qui sont la clé d'un autre schéma de relation.
    Cela permet de représenter une notion de pointeur symbolique entre deux tuples. Une contrainte d'intégrité référentielle doit être associée à chaque clé étrangère.
  • contraintes d'intégrité : il s'agit d'une propriété du schéma qui permet de restreindre l'ensemble des valeurs prises par l'extension de la base de données aux valeurs du monde réel.
    Un petit nombre de contraintes d'intégrité peuvent être codées directement par un SGBD relationnel, la plupart doivent être codées dans les programmes d'applications, par exemple écrit en embedded SQL.
  • contraintes d'intégrité référentielle : cas particulier de contraintes d'intégrité liée à la notion de clé étrangère. Cette contrainte interdit d'ajouter ou de supprimer des tuples si cela conduit à
    avoir des clés étrangères qui désignent des tuples inexistants.
  • contrôle de concurrence : c'est un mécanisme d'un SGBD qui permet de supporter l'accès simultané à la même donnée sans risque de corrompre la base de données (perte d'informations par exemple).
    Ceci est directement lié à la notion de transaction. La plupart du temps dans les systèmes commerciaux, le contrôle de concurrence est assuré par des mécanismes de verrouillage des données de type protocole de verrouillage à deux phases.
  • datawarehouse et datamining : ces deux termes désignent des outils d'infocentre. Un datawarehouse (ou entrepôt de données) est une base de données construite par agrégation de plusieurs autres bases de données (toutes celles de l'entreprise plus éventuellement d'autres).
    Ce processus d'agrégation est très complexe et utilise de nombreux outils (de fusion, de qualité, ...).
    La plupart du temps ce datawarehouse est construit dans un but décisionnel, c'est à dire que les applications qui l'exploitent sont des systèmes d'aide à la décision.
    Ces systèmes nécessitent des architectures matérielles et logicielles complexes pour avoir un niveau de performances correct. Au niveau logiciel on trouve les SGBD multidimensionnels et au niveau matériel des machines parallèles.
    Les outils de datamining (ou fouille de données) font partie des outils d'aide à la décision. Il s'agit d'extraire/apprendre des informations à partir des données stockées dans la base de données.
    On trouve dans cette catégorie des outils venant de l'analyse de données mais aussi des travaux sur l'apprentissage symbolique en intelligence articifielle.
  • décomposition (algorithme de) : c'est un algorithme qui permet de transformer un schéma relationnel qui n'est pas en 3ème forme normale en un schéma en 3ème forme normale.
    Le principe est celui de décomposition binaire d'une relation selon une dépendance fonctionnelle.
    Au bout d'un nombre fini de décompositions binaires, on obtient un schéma en 3ème forme normale.
  • dépendances fonctionnelles : propriété d'un schéma relationnel qui exprime le fait que la valeur d'un attribut (ou d'un ensemble d'attributs) est déterminée par la valeur d'un autre attribut (ou ensemble d'attributs).
    Les dépendances fonctionnelles sont à la base de l'algorithme de décomposition ainsi que de la définition des formes normales.
  • dictionnaire de données (ou méta-base) : un schéma relationnel peut être considéré comme de l'information structurée et rien n'interdit de définir une base de données
    décrivant un ensemble de schémas relationnels. Cette base est appelée dictionnaire de données ou méta-base. Elle peut être manipulée à l'aide d'un langage de manipulation de données comme l'algèbre relationnelle ou SQL.
  • domaine : un des concepts du modèle relationnel. Un domaine est un ensemble de valeurs défini de manière intentionnelle ou extensionnelle.
    Le rôle que joue un domaine dans une relation est identifié par l'attribut. Dans les systèmes commerciaux, la notion de domaine est moins riche, puisque le concepteur d'un schéma relationnel ne peut définir ses propres domaines (il doit utiliser des domaines prédéfinis).
  • droits d'accès : une base de données est accessibles par un ensemble d'utilisateurs. Ceci pose des problèmes de contrôle de concurrence mais aussi de confidentialité.
    En effet, il ne faut pas que tous les utilisateurs puissent voir toutes les informations de la base de données.
    Ceci peut se traiter par deux mécanismes. Tout d'abord l'attribution de droits sur les relations ainsi que par la définition de vues permettant de masquer certaines informations.
    Il existe différents droits sur une relation correspondant aux différentes opérations possibles dans le langage de manipulation de données (insertion, interrogation, ...).
    La définition de droits d'accès fait partie du langage de définition de données et est faite par l'administrateur de la base de données.
  • embedded SQL (sql immergé) : partie de la norme SQL concernant le couplage de SQL avec un langage de programmation classique (C, Pascal, Cobol, Fortran, ...). Il s'agit d'une interface de programmation d'assez haut niveau (par opposition à OBDC qui est une interface d'assez bas niveau).
    Ce couplage se fait par précompilation d'un code source composé d'instructions du langage de programmation (par exemple C) et d'ordres SQL.
    Le résultat de la précompilation est un code C contenant des appels à une librairie C de fonctions d'accès au SGBD. Il suffit ensuite d'utiliser le compilateur C et l'éditeur de liens fournis avec le système d'exploitation.
    Dans le système Oracle, le nom du produit correspondant est Pro*C.
  • extension : ensemble d'informations dont la structure est définie dans une intention. On parle d'extension d'une relation (il s'agit alors d'un ensemble de tuples),
    ou d'extension d'un schéma relationnel (il s'agit alors de l'ensemble des extensions des relations composant le schéma).
  • formes normales : expression de la qualité d'un schéma relationnel. La qualité évaluée est la non-redondance d'informations du schéma.
    La définition des formes normales 1 à 3 est basée sur l'étude des dépendances fonctionnelles. Si on veut aller plus loin il faut traiter d'autres dépendances comme les dépendances multivaluées.
    Il ne s'agit pas d'un ordre total mais d'un ordre partiel. Un schéma de bonne qualité est en 3ème forme normale.
  • GROUP BY : opérateur de SQL permettant de structurer une relation en un ensemble de sous-relations (appelées partitions). On parle également de partitionnement.
    Il faut noter que cet opérateur n'a pas d'équivalent en algèbre relationnelle puisque le résultat n'est pas une relation.
  • index : il s'agit d'un élément du schéma physique. Un index est une structure de données permettant d'accéder de manière efficace à un tuple en connaissant la valeur d'un de ses attributs (ou ensemble d'attributs).
    Les opérations qui sont rendues plus efficaces sont la sélection ou la jointure.
    Dans les systèmes commerciaux le type d'index le plus utilisé est l'arbre B+.
    Attention, un index améliore les performances d'accès en interrogation mais pénalise les mises à jour et prend de la place sur le disque.
  • intention : définition de la structure d'une base de données. Intension s'oppose normalement à extension.
  • JDBC (interface Java vers SGBD relationnels) : interface de programmation permettant d'adresser des requêtes à n'importe quel SGBD depuis le langage Java ainsi que de récupérer le résultat.
    Attention, JDBC n'utilise pas forcément ODBC comme support sous-jacent.
  • jointure : opération de l'algèbre relationnelle. Elle permet de construire une relation à partir de deux autres en fusionnant chaque tuple de la première relation avec tous les tuples de la seconde relation qui respectent une condition appelée condition de jointure.
  • langages d'interrogation prédicatifs : ce sont des modèles formels de requêtes sur des relations.
    Ce modèle est équivalent à l'algèbre relationnelle. Les quantificateurs de SQL ainsi que le langage QBE (Query By Example) sont inspirés des langages prédicatifs.
  • LDD - DDL (langage de description de données) : langage permettant de définir et modifier la partie intention d'une base de données, ainsi que les utilisateurs et leurs droits d'accès. Ce langage est principalement utilisé par l'administrateur de la base de données.
  • LMD - DML (langage de manipulation de données) : langage permettant de manipuler la partie extension d'une base de données. Par manipulation on entend l'interrogation, la suppression, l'ajout et la mise à jour d'informations.
  • méta-base : voir dictionnaire de données
  • modèle de données : ensemble de règles permettant de créer un schéma de données. les modèles les plus connus sont le modèle relationnel, le modèle Entité-Association.
  • modèle Entité-Association : il s'agit d'un modèle utilisé au niveau conceptuel. C'est un modèle intermédiaire entre l'application qui est non formalisée et le modèle relationnel qui est un modèle informatique.
    Le modèle Entité-Association est simple ce qui en fait un outil de dialogue entre informaticiens et utilisateurs.
  • modèle relationnel : c'est un modèle de données défini par Codd en 1970. Il forme la base de la technologie relationnelle qui s'est imposée aujourd'hui.
    Les concepts de base du modèle relationnel sont la relation et le domaine.
    La partie manipulation du modèle relationnel est l'algèbre relationnelle.
  • normalisation : processus permettant de passer d'un schéma relationnel qui n'est pas en 3ème forme normale à un schéma en 3ème forme normale.
    Ce processus est mis en oeuvre à l'aide de l'algorithme de décomposition ou de l'algorithme de synthèse. Ces algorithmes reposent sur la notion de dépendances fonctionnelles.
  • opérateurs ensemblistes : ce sont les opérateurs ensemblistes classiques (union, intersection, différence) qui sont définis dans l'algèbre relationnelle et dans SQL.
  • optimisation de requêtes : c'est l'opération qui permet de construire le programme d'accès le plus efficace à partir d'une expression SQL en entrée.
    Un programme d'accès peut se voir comme un arbre algébrique. L'optimisation se passe en plusieurs étapes, la première utilise les propriétés de l'algèbre relationnelle et la seconde la connaissance du schéma physique de la base de données (en autre les index).
  • Oracle : il s'agit du SGBD le plus vendu au monde (environ 25% du marché mondial) et c'est celui que nous utilisons à l'INT. En plus du noyau de SGBD proprement dit qui assure les fonctions de base (support de SQL, contrôle de concurrence, ...), Oracle est
    composé de nombreux outils comme Sql*Plus un interprète SQL, Pro*C l'interface embedded SQL pour le langage C, un langage de programmation pour les procédures stockées appelé PL/SQL, etc.
    Il existe également une version répartie, Oracle réparti.
  • Oracle réparti : c'est le SGBD réparti d'Oracle.
  • ODBC (Open DataBase Connectivity) : interface de programmation d'assez bas niveau permettant de transmettre des requêtes SQL à un SGBD et de récupérer les résultats. Cette interface est surtout présente dans le monde Windows.
  • partitionnement : voir GROUP BY.
  • PL/SQL d'Oracle : langage propriétaire d'Oracle d'écriture des procédures stockées et de la partie action des triggers.
    Il s'agit d'une extension au langage de programmation Ada qui inclut les ordres SQL.
  • Pro*C d'Oracle : version d'Oracle de embedded SQL pour le langage C.
  • procédure stockée : tous les SGBD permettent de définir, stocker et exécuter des programmes (appelés procédures stockées) manipulant leurs bases de données.
    Cela permet une plus grande efficacité et le partage de programmes entre différentes applications.
    La version Oracle s'appelle PL/SQL.
    Sybase et SQLSERVER de Microsoft utilisent un langage appelé Transact/SQL.
  • projection : opération de l'algèbre relationnelle permettant de ne garder que certains attributs d'une relation. Correspond à peu près à la clause SELECT de SQL.
  • protocole de validation à deux phases (two phase commit, 2PC) : il s'agit du protocole permettant la validation des transactions réparties. Il synchronise les transactions locales pour les faire valider (ou abandonner) toutes ensemble pour assurer la propriété d'atomicité.
    Un SGBD réparti implante ce protocole.
  • protocle de verrouillage à deux phases (two phase locking, 2PL) : il s'agit du protocole utilisé dans les SGBD pour assurer le contrôle de concurrence par verrouillage.
  • quantificateurs (ANY, ALL, EXISTS) : les quantificateurs se trouvent dans les langages prédicatifs et en SQL. Il s'agit des quantificateurs classiques (quelque soit et il existe).
  • relation (ou table) : un des concepts du modèle relationnel. Une relation est définie par un schéma de relation ou intention.
    Une clé doit être associée à chaque schéma de relation. Le contenu ou extension d'une relation est un ensemble de tuples. Attention dans les systèmes commerciaux, une relation n'est pas forcément un ensemble (on peut avoir plusieurs fois le même tuple).
  • restriction : voir sélection.
  • requête : expression d'un langage de définition de données ou d'un langage de manipulation de données.
  • reprise après panne : mécanisme offert par un SGBD pour supporter la propriété d'atomicité (tout ou rien) d'une transaction. La reprise va souvent de paire avec le contrôle de concurrence.
  • rétro-conception d'un schéma relationnel : on peut obtenir un schéma Entité - Association par rétro-conception d'un schéma relationnel.
    Ce processus n'a pas de solution unique.
  • schéma conceptuel : correspond au niveau intermédiaire dans l'architecture ANSI/SPARC.
    Il s'exprime avec le modèle Entité-Association dans la phase de conception puis avec un modèle informatique de haut niveau comme le modèle relationnel.
  • schéma de relation
    : voir intention.
  • schéma entité-association : schéma conceptuel exprimé avec le modèle Entité-Association.
    On peut transformer un schéma Entité - Association en un schéma relationnel équivalent.
  • schéma externe : un des schémas définis dans l'architecture ANSI/SPARC. Il correspond au niveau le plus proche des utilisateurs.
    Dans les SGBD relationnels il s'exprime par des vues.
  • schéma physique : un des schémas définis dans l'architecture
    ANSI/SPARC
    . Il correspond au niveau le plus proche des disques. Il comprend entre autre la définition des index.
  • schéma relationnel : il s'agit d'un schéma conceptuel exprimé avec le modèle relationnel. Il est constitué d'un ensemble de schéma de relation.
    La rétro-conception d'un schéma relationnel permet d'obtenir un schéma Entité - Association.
  • sélection (ou restriction) : opération de l'algèbre relationnelle qui permet de ne garder que certains tuples d'une relation (ceux respectant une certaine condition).
  • SGBD (Système de Gestion de Bases de Données) : logiciel supportant la définition de bases de données, leur exploitation efficace, la définition d'utilisateurs, le tout dans un contexte multi-utilisateurs.
    Nous en sommes à la troisième génération de SGBD, les SGBD relationnels. Ils sont appelés ainsi car ils supportent des bases de données décrites selon le modèle relationnel. Ils supportent également le langage SQL.
    Un SGBD est administré par un administrateur de base de données.
    Des exemples de SGBD sont Oracle, DB2 IBM, Sqlserver, Sybase, Informix.
    Depuis la fin des années 1980, il existe également des SGBD objets.
  • SGBD objet : c'est un SGBD implantant un modèle de données objet et offrant un langage de requêtes qui est le plus souvent une extension de SQL.
    Le SGBD O2 est un exemple de SGBD objet. Malheureusement ce SGBD n'a pas survécu à la guerre contre les grands éditeurs; Les SGBD objets sont normalisés par un organisme qui s'appelle l'ODMG.
  • SGBD réparti : c'est un SGBD gérant une base de données répartie. Les fonctionnalités aditionnelles d'un SGBD réparti sont l'accès à des données distantes
    ainsi que l'exécution de transactions réparties au moyen du protocole de validation à deux phases.
    Oracle réparti est un exemple de SGBD réparti.
  • SQL (Structured Query Language) : langage normalisé par l'ISO incluant à la fois un langage de définition de données et un langage de manipulation de données.
    SQL est lié au modèle relationnel.
    Tous les SGBD supportent SQL mais le plus souvent ils étendent le langage.
    La version actuelle de la norme est la V2, une V3 est en préparation mais semble assez monstrueuse (le draft s'approche des 1000 pages!).
    SQL peut être vu comme un habillage syntaxique de l'algèbre relationnelle avec quelques éléments empruntés aux langages prédicatifs (les quantificateurs)
    et quelques extensions (agrégats et GROUP BY).
  • SqlPlus d'Oracle : interprète SQL d'Oracle. Il prend en entrée une expression SQL, la soumet à Oracle et affiche les résultats sur la sortie standard.
    Il supporte quelques fonctions de personnalisation de l'affichage ainsi que de gestion de fichiers (sauvegarde d'une expression SQL dans un fichier, ...).
  • table : voir relation
  • transaction : programme accédant à une base de données pour y faire de l'interrogation et/ou de la mise à jour.
    Une transaction doit supporter les propriétés ACID (Atomicity, Consistency, Isolation and Durability). La reprise sur panne et le contrôle de concurrence sont définis dans le contexte de transactions.
  • transformation d'un schéma Entité - Association vers un schéma relationnel :
    un schéma Entité - Association peut se transformer de manière systématique vers un schéma relationnel équivalent. Cette transformation est d'ailleurs présente dans de nombreux logiciels de type AGL (Atelier de Génie Logiciel).
  • trigger : permet la programmation événementielle dans un contexte de base de données. On peut associer l'exécution d'une action (la plupart du temps une procédure stockée) à un événement survenant dans la base de données (insertion, suppression ou modification d'un tuple).
    Permet de programmer par exemple la vérification de contraintes d'intégrité ou de la gestion de replica dans le cadre de base de données réparties.
  • tuple (nuplet) : l'extension d'une relation est constituée de tuples. Un tuple est une ligne structurée comme une séquence de valeurs d'attributs.
  • vue relationnelle : mécanisme permettant le support de schéma externe dans le modèle relationnel.
    Une vue est une relation virtuelle qui est calculée à chaque fois que l'on cherche à y accéder.
    Une vue est définie par une requête d'interrogation en SQL.
    En interrogation une vue se manipule comme une relation, par contre la mise à jour d'une vue est impossible sauf cas très particulier (la requête d'interrogation définissant la vue est mono-relation).

top