Extensible Storage Engine

Extensible Storage Engine
Page d'aide sur l'homonymie Pour les articles homonymes, voir ESE.
Extensible Storage Engine
Importez le logo de ce logiciel
Développeur Microsoft
Environnement Windows
Type Moteur de base de données
Licence commercial
Site web [1]

Extensible Storage Engine (abr. ESE), aussi appelé Jet Blue est un moteur de base de données créé par Microsoft en 1996. Il est incorporé dans les systèmes d'exploitation de la série Windows NT et utilisé par les produits Active Directory et Exchange Server[1].

Il s'agit d'une bibliothèque logicielle qui manipule des bases de données selon la méthode séquentielle indexée (ISAM). Elle met en œuvre des mécanismes qui permettent de réaliser des transactions atomiques, cohérentes, isolées et durables (ACID) ainsi que des mécanismes de mémoire cache, de verrou et de journal (anglais log) en vue d'assurer la sécurité et la performance des opérations sur les bases de données.

Extensible Storage Engine est utilisé sur des bases de données dont la taille va de 1 mégaoctet à plus de 1 téraoctet[1].

Sommaire

Histoire

Le développement du produit a commencé en 1996, il était initialement appelé Jet Blue (JET pour Joint Engine Technology), en référence à son concurrent Jet Red, le moteur de base de données de Microsoft Access. Puis a été renommé Extensible Storage Engine parce que les deux produits ont une programmation différente, une histoire différente, des fonctionnalités différentes et ne sont pas interchangeables[1],[2].

il existe deux versions ESE97 et ESE98, en référence à leur année de sortie. La version ESENT, basée sur ESE97, est utilisée pour le service d'annuaire Active Directory[2].

Fonctionnalités

Extensible Storage Engine s'utilise par appel des fonctions de son interface de programmation. Cette interface offre la possibilité d'enregistrer des données dans des tables, puis de les retrouver en utilisant des index et des curseur. L'atomicité, la consistance, l'isolation et la durabilité des modifications des données et des métadonnées effectuées de manière concurrente sont assurées par des transactions[1].

Extensible Storage Engine est équipé d'un mécanisme de mémoire cache, qui lit le contenu de la base de données à l'avance, et écrit avec retard, ce qui accélère les opérations[3].

Par le mécanisme de concurrence multi-versions (en), un logiciel qui lit le contenu de la base de données durant une transaction verra le contenu de la base de données dans l'état où il était au moment où la transaction a démarré. Les modifications ultérieures effectuées dans d'autres transactions ne seront pas visibles. Extensible Storage Engine annulera la transaction si des modifications viennent recouvrir d'autres modifications effectuées entre temps dans d'autres transactions[4].

Extensible Storage Engine manipule les fichiers de base de données situées l'ordinateur. Les fichiers peuvent également être placés sur un autre ordinateur et manipulés par l'intermédiaire d'un système de fichier distribué, cette utilisation est cependant déconseillée par le fabricant[1].

Base de données

Les fichiers de base de données de Extensible Storage Engine sont fait d'un ensemble de page de taille fixe de 4 ou 8 Kiloctet - La taille des pages est déterminée à la création du fichier. Les pages sont reliées entre elles sur une structure en arbre B et contiennent une somme de contrôle (anglais checksum) qui permet de déceler d'éventuelles erreurs. Les pages contiennent les données, ainsi que les métadonnées du schéma et les index[1]. Les pages sont créées à mesure que des données sont ajoutées à la base de données. Si une page commence à être pleine, Extensible Storage Engine scinde celle-ci en deux, crée une nouvelle page et adapte l'arbre B[4].

Chaque base de données est composée d'un fichier principal, éventuellement accompagné de fichiers temporaires contenant les transactions, les index et le journal des opérations[1]. Extensible Storage Engine crée automatiquement des index et ceux-ci sont automatiquement supprimés s'ils n'ont pas été utilisés durant 8 jours[4].

les tables dans les bases de données ESE peuvent avoir une organisation non orthogonale, avec des champs qui ne sont pas présents dans tous les lignes de la table et des champs multi-valeurs. Les champs des enregistrements peuvent être de différents types de données, y compris monétaire, date, GUID, CLOB ou BLOB[4].

Chaque copie de Extensible Storage Engine peut manipuler jusqu'à 6 bases de données à la fois. Chaque processus utilisant ESE peut avoir jusqu'à 1024 copies de ESE.

Une base de données peut être détachée d'une instance ESE en cours pour être attachée ensuite à la même instance ou à une instance différente. Pendant qu'elle est détachée, une base de données peut être copiée en utilisant des utilitaires Windows standards.

Tables

La quantité d'espace de disque allouée à une table au sein d'une base de données est déterminée par un paramètre donné lorsque la table est créée avec l'opération CreateTable. Les tables croissent automatiquement en réponse à la création de données (enregistrement).

Les tables ont au minimum un index. Il doit y avoir au moins un index de cluster pour les données d'enregistrement. Lorsqu'il n'y a pas d'index de cluster défini par l'application, un index artificiel est utilisé qui ordonne et groupe les enregistrements par ordre chronologique d'insertion d'enregistrement.

Les index sont représentés en utilisant des arbres B+. ESE possède une fonctionnalité de compactage en-ligne qui re-compacte les données. Si une table devrait être fréquemment mise à jour, de l'espace peut lui être réservé pour des insertions futures en spécifiant une densité de page appropriée lors de la création d'une page ou d'un index.

Enregistrements et colonnes

La taille maximale d'un enregistrement est de 8 110 octets pour des pages de 8k-octets avec l'exception des colonnes à longue valeurs. Les types des colonnes "LongText" et "LongBinary" peuvent contenir des données d'une taille bien plus large que la taille de page de base de données. Ces données "long values" peuvent elles-mêmes faire jusqu'à 2G-octets en taille.

Les enregistrements sont typiquement uniformes dans le fait que chaque enregistrement a un ensemble de valeurs pour le même ensemble de colonnes. Dans ESE, il est aussi possible de définir un grand nombre de colonnes pour une table, et de n'en avoir que quelques unes de remplies de valeurs non nulles pour certains enregistrements. De même, une table peut aussi être une collection d'enregistrements hétérogènes.

ESE offre le support pour un large panel de valeurs de colonnes, allant en taille du bit seul jusqu'à des valeurs de 2G-octets. Faire le choix des types de colonnes corrects est important parce que le type de la colonne détermine beaucoup de ses propriétés, incluant son ordonnancement pour les index. Voici la liste des types ayant un support dans ESE :

Types de colonnes

Nom Description
Bit valeur ternaire (NULL, 0, ou 1)
Octet non signé entier non signé sur 1 octet
court ("Short") entier signé codé sur 2 octets
Court non signé entier non signé sur 2 octets
Long entier signé sur 4 octets
Long non signé entier non signé sur 4 octets
Long Long entier signé sur 8 octets
Monnaie entier signé sur 8 octets
IEEE Single Nombre à virgule flottante sur 4 octets
IEEE Double Nombre à virgule flottante sur 8 octets
Temps / Date Date ou temps codé sur 8 octets (date intégrale, temps fractionel)
GUID identifiant unique sur 16 octets
Binaire chaîne binaire, de longueur ⇐ 255 octets
Texte chaîne de caractère ANSI ou Unicode de longueur ⇐ 255 octets
Binaire long Chaîne binaire de grande taille de longueur < 2 G-octets
Texte long Chaîne de caractères de grande taille ANSI ou Unicode de longueur < 2G-octets

Colonnes fixes, variables et marquées
Chaque table ESE peut définir jusqu'à 127 colonnes de longueur fixe, 128 colonnes à longueur variable et 64.993 colonnes marquées.
Les colonnes fixes sont essentiellement des colonnes qui prennent la même quantité de mémoire pour chaque enregistrement, quelle que soit leur valeur. Les colonnes fixes utilisent 1 bit pour représenter une valeur nulle (NULL) et une quantité de mémoire fixe pour chaque enregistrement.
Les colonnes variables utilisent 2 octets pour déterminer une valeur nulle (NULL), et une quantité d'espace mémoire variable pour chaque enregistrement dans lequel cette colonne est définie.

Les colonnes marquées sont des colonnes qui ne prennent aucune place en mémoire si elles ne contiennent aucun enregistrement. La même colonnes marquée peut contenir des valeurs multiples dans un seul enregistrement. Lorsque des colonnes marquées sont définies dans un enregistrement, chaque instance d'une colonne marquée prend approximativement 4 octets d'espace mémoire en plus de la taille de la valeur de l'instance de la colonne marquée. Lorsque le nombre d'instances d'une seule colonne marquée est important, l'entête de chaque instance de colonne marquée fait approximativement 2 octets.

Références

  1. a, b, c, d, e, f et g (en)http://msdn.microsoft.com/en-us/library/ms684493(EXCHG.10).aspx Extensible Storage Engine - Microsoft Developer Network
  2. a et b (en)Tony Redmond,Microsoft Exchange Server for Windows 2000,Digital Press - 2001,(ISBN 9781555582241)
  3. Jean-François Apréa,Préparation à la certification MCSE Windows server 2003 active directory,Editions ENI - 2005,(ISBN 9782746024984)
  4. a, b, c et d (en)http://technet.microsoft.com/en-us/library/aa998171(EXCHG.65).aspx Extensible Storage Engine Architecture - Microsoft TechNet

Liens externes


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Extensible Storage Engine de Wikipédia en français (auteurs)

Игры ⚽ Нужен реферат?

Regardez d'autres dictionnaires:

  • Extensible Storage Engine — For JET Red storage engine of Microsoft Access, see Microsoft Jet Database Engine. For the teacher s term, Exceptional education. Extensible Storage Engine (ESE), also known as JET Blue, is an Indexed Sequential Access Method (ISAM) data storage… …   Wikipedia

  • Extensible Storage Engine — Microsoft Jet Engine (Microsoft Joint Engine Technology Engine) ist eine 1992 eingeführte, relationale Datenbank Engine für Windows Betriebssysteme. Dabei ist es interessant, dass Microsoft nicht nur eine, sondern zwei vollkommen unabhängige… …   Deutsch Wikipedia

  • Microsoft Jet Database Engine — This article is about JET Red used in Microsoft Access. For the JET Blue ISAM implementation, see Extensible Storage Engine. The Microsoft Jet Database Engine is a database engine on which several Microsoft products have been built. A database… …   Wikipedia

  • Moteur De Stockage Extensible — Pour les articles homonymes, voir ESE. Le moteur de stockage extensible de Windows (Extensible Storage Engine ou ESE), connu aussi sous le nom de JET Blue, est une méthode d accès séquentiel indexé c est à dire une technologie permettant le… …   Wikipédia en Français

  • Moteur de stockage extensible — Pour les articles homonymes, voir ESE. Le moteur de stockage extensible de Windows (Extensible Storage Engine ou ESE), connu aussi sous le nom de JET Blue, est une méthode d accès séquentiel indexé c est à dire une technologie permettant le… …   Wikipédia en Français

  • Comparison of structured storage software — Not to be confused with COM Structured Storage. Structured storage is computer storage for structured data, often in the form of a distributed database.[1] Computer software formally known as structured storage systems include Apache… …   Wikipedia

  • Jet-Engine — Microsoft Jet Engine (Microsoft Joint Engine Technology Engine) ist eine 1992 eingeführte, relationale Datenbank Engine für Windows Betriebssysteme. Dabei ist es interessant, dass Microsoft nicht nur eine, sondern zwei vollkommen unabhängige… …   Deutsch Wikipedia

  • Microsoft Jet Engine — (Microsoft Joint Engine Technology Engine) ist eine 1992 eingeführte, relationale Datenbank Engine für Windows Betriebssysteme. Microsoft entwickelte dabei zwei vollkommen unabhängige Versionen der Jet: Red und Blue. Jet Red Die Jet Red ist eine… …   Deutsch Wikipedia

  • Trident (layout engine) — Trident Developer(s) Microsoft Written in C++[1] Operating system Microsoft Windows: Windows XP to 7 (supported …   Wikipedia

  • Index (search engine) — Search engine indexing collects, parses, and stores data to facilitate fast and accurate information retrieval. Index design incorporates interdisciplinary concepts from linguistics, cognitive psychology, mathematics, informatics, physics, and… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”