oracle
Oracle est un système de gestion de base de données relationnel (SGBDR) propriétaire fourni par Oracle Corporation
Synopsis
Oracle est couramment utilisé dans les applications sur différentes plates-formes (linux, bsd, windows et autres). Il a été développé par Lawrence Ellison, accompagné d'autres personnes telles que Bob Miner et Ed Oates.
Concepts, structures logiques et physiques
Structures logiques
oracle utilise des schemas qui sont une structure permettant d'accéder et de manipuler les données de la base de données.
On retrouve entre autres les schemas suivants:
- Table ;
- Vues, vues matérielles (snapshot) ;
- Procédures stockés et triggers ;
- Index ;
- Synonymes : alias d'une table ;
- Liens : connexion entre deux serveurs pour permettre de faire une requête utilisant les données des deux machines ;
- Package : ensemble de procédures stockés regroupés pour être distribués (équivalent d'une bibliothèque) ;
- Cluster : permet d'accélérer l'accès aux données, en évitant la redondance dans l'utilisation des données.
Tout ces schémas correspondent aux schéma utilisateurs. Cela permet de définir des unités de droits données aux utilisateurs.
Table space : c'est une structure logique (pas un fichier) contenant plusieurs schémas objets. Par défaut il en existe un, le table space system, contenant le dictionnaire de données, la définition des utilisateurs, procédures stockés ... C'est un peu l'équivalent de la table mysql pour MySQL. Il existe encore une autre table space nommée data, qui ne contient que les données de l'application par la suite. Les index sur ces données peuvent être stockées dans la même table space, ou dans un autre (que l'on peut placer sur un autre disque afin d'améliorer les performances).
Les schémas objects sont composés de segments. Par exemple pour une table, nous avons des data segments. Dans un index, des index segments. Le roolback segment permet d'implémenter les transitions. Enfin, le temporary segment permet de stockés les données à un moment N les données calculées pour les données (par exemple les données utilisées pendant les tries, ou les données utilisés par les procédures stockés pendant leurs exécutions ...).
Les segments sont eux-mêmes découpés en extents. Eux mêmes sont découpés en blocs, la plus petite unité de stockage allouable par Oracle. Sa taille est indépendante de celle de la taille des blocks du systèmes de fichier. Le bloc est organisé avec un header (qui défini où il est, quel schéma object, segment ...), un espace vide et les données.