Está en la página 1de 8

Motor de almacenamiento Oracle

En Oracle se tienen varios Conceptos de almacenamiento, los cuales son:



Concepto de Tablespace (espacio de tablas): La base de datos se divide en
unidades lgicas llamadas Tablespaces. Tablespace no es un fichero fsico en el
disco, simplemente es el nombre que tiene un conjunto de propiedades de
almacenamiento que se aplican a los objetos (tablas, secuencias, entre otros) que
se van a crear en la base de datos bajo el tablespace indicado. Algo que no hay
que olvidar es que un objeto en base de datos debe estar almacenado
obligatoriamente dentro de un tablespace. Cuando un objeto se crea dentro de un
cierto tablespace, este objeto adquiere todas las propiedades antes descritas del
tablespace utilizado.

Concepto de Datafile (fichero de datos): Un datafile es la representacin fsica
de un tablespace. Son los ficheros de datos donde se almacena la informacin
fsicamente. Un datafile puede tener cualquier nombre y extensin, y puede estar
localizado en cualquier directorio del disco duro, aunque su normalmente ser
$ORACLE_HOME/Database.

Cuando se crea un datafile, este ocupa tanto espacio en disco como se haya
indicado en su creacin, aunque internamente est vaco. Oracle hace esto para
reservar espacio continuo en disco y evitar as la fragmentacin. Conforme se
vayan creando objetos en ese tablespace, se ir ocupando el espacio que cre
inicialmente.

Concepto de Segment (segmento): Un segment es aquel espacio reservado por
la base de datos, dentro de un datafile, para ser utilizado por un solo objeto. As
una tabla o cualquier otro objeto est dentro de su segmento, y nunca podr salir
de l, ya que si la tabla crece, el segmento tambin crece con ella.

Concepto de Extent (extensin): Para cualquier objeto de base de datos que
tenga cierta ocupacin en disco, es decir, cualquier objeto que tenga un segment
relacionado, existe el concepto de extent. Extent es un espacio de disco que se
reserva de una sola vez, un segmento que se reserva en un momento
determinado de tiempo. El concepto de extent es un concepto fsico, unos estn
separados de otros dentro del disco. Ya dijimos que todo objeto tiene su segmento
asociado, pero lo que no dijimos es que este segmento, a su vez, se compone de
distintas extensiones. Un segmento, puede ser reservado de una sola vez (10 Mb
de golpe), o de varias veces (5 Mb hoy y 5 Mb maana). Cada una de las veces
que se reserva espacio se denomina extensin.

Concepto de Data block (bloque de datos): Un data block es el ltimo eslabn
dentro de la cadena de almacenamiento. El concepto de Data block es un
concepto fsico, ya que representa la mnima unidad de almacenamiento que es
capaz de manejar Oracle. Igual que la mnima unidad de almacenamiento de un
disco duro es la unidad de asignacin, la mnima unidad de almacenamiento de
Oracle es el data block. En un disco duro no es posible que un fichero pequeo
ocupe menos de lo que indique la unidad de asignacin, as si la unidad de
asignacin es de 4 Kb, un fichero que ocupe 1 Kb, en realidad ocupa 4 Kb.
Siguiendo con la cadena, cada segmento (o cada extensin) se almacena en uno
o varios bloques de datos, dependiendo del tamao definido para el extensin, y
del tamao definido para el data block.

Motores de almacenamiento MySQL

MyIsam: Es el motor de almacenamiento por defecto. Se basa en el cdigo ISAM
pero tiene muchas extensiones tiles. Cada tabla MyISAM se almacena en disco
en tres ficheros. Los ficheros tienen nombres que comienzan con el nombre de
tabla y tienen una extensin para indicar el tipo de fichero. Un fichero .frm
almacena la definicin de tabla. El fichero de datos tiene una extensin .MYD
(MYData) . El fichero ndice tiene una extensin .MYI (MYIndex).

Las siguientes son algunas caractersticas del motor de almacenamiento MyISAM
:

Todos los datos se almacenan con el byte menor primero. Esto hace que
sean independientes de la mquina y el sistema operativo. El nico
requerimiento para portabilidad binaria es que la mquina use enteros con
signo en complemento a dos (como todas las mquinas en los ltimos 20
aos) y formato en coma flotante IEEE (tambin dominante en todas las
mquinas).
Ficheros grandes (hasta longitud de 63 bits) se soportan en sistemas de
ficheros y sistemas operativos que soportan ficheros grandes.
Registros de tamao dinmico se fragmentan mucho menos cuando se
mezclan borrados con actualizaciones e inserciones. Esto se hace
combinando automticamente bloques borrados adyacentes y extendiendo
bloques si el siguiente bloque se borra.
El mximo nmero de ndices por tabla MyISAM en MySQL 5.0 es 64. Esto
puede cambiarse recompilando. El mximo nmero de columnas por ndice
es 16.
Las columnas BLOB y TEXT pueden indexarse.
Valores NULL se permiten en columnas indexadas. Esto ocupa 0-1 bytes
por clave.
Todos los valores de clave numrico se almacenan con el byte mayor
primero para mejor compresin de ndice.
Cuando se insertan registros en orden (como al usar columnas
AUTO_INCREMENT ), el rbol ndice se divide de forma que el nodo mayor
slo contenga una clave. Esto mejora la utilizacin de espacio en el rbol
ndice.
El tratamiento interno de una columna AUTO_INCREMENT por tabla.
MyISAM actualiza automticamente esta columna para operaciones
INSERT y UPDATE .
Soporte de un tipo VARCHAR autntico; una columna VARCHAR comienza
con la longitud almacenada en dos bytes.
Tablas con VARCHAR pueden tener longitud de registro fija o dinmica.
VARCHAR y CHAR pueden ser de hasta 64KB.
Merge: El motor de almacenamiento MERGE , tambin conocido como
MRG_MyISAM , es una coleccin de tablas MyISAM idnticas que pueden usarse
como una. "Idntica significa que todas las tablas tienen informacin de columna
e ndice idntica. No puede mezclar tablas en que las columnas se listen en orden
distinto, no tengan exactamente las mismas columnas, o tengan los ndices en
orden distinto.
Cuando crea una tabla MERGE , MySQL crea dos ficheros en disco. Los ficheros
tienen nombres que comienzan con el nombre de la tabla y tienen una extensin
para indicar el tipo de fichero, Un fichero .frm almacena la definicin de tabla , y un
fichero .MRG contiene los nombres de las tablas que deben usarse como una. Las
tablas no tienen que estar en la misma base de datos que la tabla MERGE misma.
Memory: El motor de almacenamiento MEMORY crea tablas con contenidos que
se almacenan en memoria. stas se conocan previamente como HEAP. Cada
tabla MEMORY est asociada con un fichero de disco. El nombre de fichero
comienza con el nombre de la tabla y tiene una extensin de .frm para indicar que
almacena la definicin de la tabla.
Como indica su nombre, las tablas MEMORY se almacenan en memoria y usan
ndices hash por defecto. Esto las hace muy rpidas, y muy tiles para crear tablas
temporales. Sin embargo, cuando se apaga el servidor, todos los datos
almacenados en las tablas MEMORY se pierde.
Las tablas MEMORY tienen las siguientes caractersticas:
El espacio para tablas MEMORY se reserva en pequeos bloques. Las
tablas usan el 100% del hashing dinmico para inserciones. No se necesita
rea de desbordamiento o espacio extra para claves. No se necesita
espacio extra para listas libres. Los registros borrados se ponen en una lista
encadenada y se resan cuando inserta nuevos datos en la tabla. Las
tablas MEMORY no tienen ninguno de los problemas asociados con
borrados ms inserciones en tablas hasheadas.
Las tablas MEMORY pueden tener hasta 32 ndices por tabla, 16 columnas
por ndice y una clave de longitud mxima de 500 bytes.
El servidor necesita suficiente memoria para mantener todas las tablas
MEMORY en uso a la vez.
BerkeleyDB: Sleepycat Software ha proporcionado a MySQL el motor de
almacenamiento transaccional Berkeley DB. A este motor de almacenamiento se
le llama tradicionalmente BDB. Se incluye soporte para BDB en distribuciones
fuentes de MySQL y en distribuciones binarias MySQL-Max .
Las tablas BDB pueden tener una gran probabilidad de sobrevivir a fallos del
sistema y ser capaces de realizar COMMIT y ROLLBACK en transacciones.
Cada tabla BDB se almacena en disco en dos ficheros. Los ficheros tienen
nombres que comienzan con el nombre de la tabla y tienen una extensin para
indicar el tipo de fichero. Un fichero .frm almacena la definicin de tabla, y un
fichero .db contiene los datos de tabla e ndices.
El motor de almacenamiento BDB proporciona tablas transaccionales. La forma de
usar estas tablas depende del modo autocommit:
Si est ejecutando con autocommit activado (por defecto), los cambios en
las tablas BDB se efectan inmediatamente y no pueden deshacerse.
Si est ejecutando con autocommit desactivado, los cambios no son
permanentes hasta que ejecuta un comando COMMIT . En lugar de hacer
un commit puede ejecutar ROLLBACK para olvidar los cambios.
Example: El motor de almacenamiento EXAMPLE es un motor de pruebas que no
hace nada. Su propsito es servir como ejemplo en el cdigo fuente MySQL para
ilustrar cmo empezar a escribir nuevos motores de almacenamiento.
Federated: El motor FEDERATED est disponible desde MySQL 5.0.3. Es un
motor que accede a datos en tablas de bases de datos remotas en lugar de tablas
locales.
Cuando crea una tabla FEDERATED , el servidor crea un fichero de definicin de
tabla en el directorio de base de datos. El fichero comienza con el nombre de tabla
y tiene extensin .frm . No se crean ms ficheros, ya que los datos reales estn en
la base de datos remota. Esto difiere de cmo funcionan los motores con tablas
locales.
Con el motor MySQL FEDERATED no hay ficheros de datos locales para una
tabla (por ejemplo, no hay fichero .MYD ). En su lugar, una base de datos remota
almacena los datos que normalmente estaran en la tabla. Esto necesita el uso de
la API del cliente MySQL para leer, borrar, actualizar e insertar datos. La
recuperacin de datos se inicia va un comando SELECT * FROM tbl_name . Para
leer el resultado, los registros se tratan uno a uno usando la funcin de la API C
mysql_fetch_row() y luego se convierten desde las columnas del conjunto de
resultados SELECT al formato que el handler FEDERATED espera.

Archive: El motor de almacenamiento ARCHIVE se usa para guardar grandes
cantidades de datos sin ndices con una huella relativamente pequea. Cuando
crea una tabla ARCHIVE , el servidor crea un fichero de definicin de tabla en el
directorio de base de datos. El fichero comienza con el nombre de tabla y tiene
una extensin de .ARZ y .ARM. Un fichero .ARN puede aparecer durante
operaciones de optimizacin.
El motor ARCHIVE soporta slo INSERT y SELECT. Esto significa que no puede
ejecutar DELETE, REPLACE, o update . Un SELECT realiza un escaneo de tabla
completo. Los registros se comprimen al insertarse.
CSV: El motor de almacenamiento CSV almacena datos en ficheros de texto
usando valores separados por comas. Cuando crea una tabla CSV , el servidor
crea un fichero de definicin de tabla en el directorio de base de datos. El fichero
comienza con el nombre de tabla y tienen una extensin .frm. El motor de
almacenamiento crea un fichero de datos. Su nombre comienza con el nombre de
tabla y tiene extensin .CSV. El fichero de datos es un fichero de texto. Cuando
almacena datos en la tabla, el motor la guarda en el fichero de datos en formato
CSV.
InnoDB: InnoDB dota a MySQL de un motor de almacenamiento transaccional
(conforme a ACID) con capacidades de commit (confirmacin), rollback
(cancelacin) y recuperacin de fallas. InnoDB realiza bloqueos a nivel de fila y
tambin proporciona funciones de lectura consistente sin bloqueo al estilo Oracle
en sentencias SELECT. Estas caractersticas incrementan el rendimiento y la
capacidad de gestionar mltiples usuarios simultneos. No se necesita un bloqueo
escalado en InnoDB porque los bloqueos a nivel de fila ocupan muy poco espacio.
InnoDB tambin soporta restricciones FOREIGN KEY. En consultas SQL, an
dentro de la misma consulta, pueden incluirse libremente tablas del tipo InnoDB
con tablas de otros tipos.
InnoDB se dise para obtener el mximo rendimiento al procesar grandes
volmenes de datos. el motor de almacenamiento. InnoDB mantiene su propio
pool de almacenamiento intermedio para tener un cache de datos e ndices en la
memoria principal. InnoDB almacena sus tablas e ndices en un espacio de tablas,
el cual puede consistir de varios ficheros (o particiones disco).
MySQL Clster: MySQL Clster es una versin de alta disponibilidad, alta
redundancia de MySQL adaptada para el entorno de computacin distribuida. Usa
el motor de almacenamiento NDB Clster para permitir la ejecucin de varios
servidores MySQL en un clster. Este motor de almacenamiento est disponible
en las distribuciones binarias de MySQL 5.0 y en los RPMs compatibles con las
distribuciones Linux ms modernas.
Lo sistemas operativos en que MySQL Clster est disponible son Linux, Mac OS
X, y Solaris.
Motor de almacenamiento PostgreSQL
PostgreSQL posee un solo Storage Manager este esta compuesto por varios
mdulos que proveen administracin de las transacciones y acceso a los objetos
de la base de datos. Los mdulos se programaron bajo 3 lineamientos bien claros:
Manejar transacciones sin necesidad de escribir cdigo complejo de
recuperacin en caso de cadas.
Mantener versiones histricas de la data bajo el concepto de graba una
vez, lee muchas veces.
Tomar las ventajas que ofrece el hardware especializado como
multiprocesadores, memoria no voltil, etc.
Los mdulos que componen el Storage Manager son:

Transaction System
Relational Storage
Time Management
Concurrency Control y Timestamp Management
Record Access

PostgreSQL siempre esta aadiendo los datos, los datos modificados o borrados
realmente no se modifican o se borran, las pginas donde ellos estn
almacenados se marca como no visible y se inserta un nuevo registro completo
con un clon de toda los datos. Esto hace que la base de datos ocupe mucho
espacio y afecta el tiempo de acceso a los datos.

Motores de almacenamiento de MariaDB

PBXT: Es un motor de almacenamiento transaccional de propsito general. PBXT
es totalmente "ACID " compatible , lo que significa que se puede utilizar como una
alternativa a otros motores transaccionales de MariaDB ( tales como XtraDB o
InnoDB ) .

PBXT caractersticas son las siguientes :

Soporte MVCC: MVCC permite la lectura de la base de datos sin
bloquear.
Totalmente compatible con ACID : Esto significa que todas las
transacciones son: atmica , consistente, aislada y durable.
Bloqueo a nivel de fila: Al actualizar , PBXT utiliza el bloqueo de filas .
Bloqueo a nivel de fila tambin se utiliza durante SELECT FOR UPDATE.
Rollback rpida y recuperacin: PBXT utiliza un mtodo especializado
para identificar la basura que hace " deshacer " innecesario . Esto hace
que tanto rollback de las transacciones y la recuperacin despus de
reiniciar muy rpido.
Deteccin de Deadlock : PBXT identifica todo tipo de bloqueos
inmediatamente.
Write-Once : PBXT utiliza un almacenamiento basado en registro que
permite escribir los datos transaccionales directamente a la base de
datos, sin primero escribir en el registro de transacciones .
Integridad Referencial : PBXT admite definiciones de claves forneas ,
incluyendo actualizaciones y eliminaciones en cascada.

XtraDB: Es una versin mejorada del motor de almacenamiento InnoDB, diseado
para una mejor escala en el hardware moderno, e incluye una variedad de otras
caractersticas tiles en entornos de alto rendimiento.

XtraDB incluye todo el diseo de InnoDB robusto, fiable cumple las reglas ACID y
arquitectura MVCC avanzada, y se basa en la base slida con ms funciones, ms
capacidad de ajuste, ms mtricas, y ms escalabilidad. En particular, est
diseado para escalar mejor en muchos ncleos, para usar la memoria de manera
ms eficiente, y para ser ms conveniente y til. Las nuevas caractersticas son
especialmente diseados para aliviar algunas de las limitaciones de InnoDB.

Aria: Est compilado por defecto en MariaDB 5.1 y es necesario estar "en uso"
cuando se inicia mysqld.

Adems, las tablas internas en disco estn en el formato de tabla Aria en lugar del
formato de tabla MyISAM. Esto debera acelerar algunos GROUP BY y DISTINCT
consultas porque Aria tiene mejor almacenamiento en cach que MyISAM.

FederatedX: Es un fork del motor de almacenamiento federada, el ltimo de los dos
ya no est siendo mantenido por Oracle. El propsito de FederatedX es mantener el
desarrollo de este motor de almacenamiento progresando - tanto para aadir nuevas
funciones, as como arreglar viejo bugs.

FederatedX es un motor de almacenamiento que funciona con MariaDB y MySQL.
Donde otros motores de almacenamiento se construyen como las interfaces de nivel
inferior a los almacenes de datos basados en archivos, FederatedX utiliza libmysql
para hablar con la fuente de datos, el origen de datos es un RDBMS remoto. En la
actualidad, ya que slo utiliza FederatedX libmysql, slo puede hablar con otro RDBMS
MySQL. El plan es, por supuesto, ser capaz de utilizar otros sistemas de RDBMS como
fuente de datos.

También podría gustarte