Professional Documents
Culture Documents
Los orígenes del SQL están ligados a los de las bases de datos relacionales. En 1970 E. F. Codd
propone el modelo relacional y asociado a este un sublenguaje de acceso a los datos basado en el
cálculo de predicados. Basándose en estas ideas, los laboratorios de IBM definen el lenguaje
SEQUEL (Structured English QUEry Language) que más tarde sería ampliamente implementado
por el SGBD experimental System R, desarrollado en 1977 también por IBM. Sin embargo, fue
Oracle quien lo introdujo por primera vez en 1979 en un programa comercial.
El SEQUEL terminaría siendo el predecesor de SQL, siendo éste una versión evolucionada del
primero. El SQL pasa a ser el lenguaje por excelencia de los diversos SGBD relacionales
surgidos en los años siguientes y es por fin estandarizado en 1986 por el ANSI, dando lugar a la
primera versión estándar de este lenguaje, el SQL-86 o SQL1. Al año siguiente este estándar es
también adoptado por la ISO.
Sin embargo este primer estándar no cubre todas las necesidades de los desarrolladores e incluye
funcionalidades de definición de almacenamiento que se consideraron suprimir. Así que en 1992
se lanza un nuevo estándar ampliado y revisado del SQL llamado SQL-92 o SQL2.
1 SQL-86 SQL-87 Primera publicación hecha por ANSI. Confirmada por ISO en 1987.
986
Optimización [editar]
Como ya se dijo arriba, y como suele ser común en los lenguajes de acceso a bases de datos de
alto nivel, el SQL es un lenguaje declarativo. O sea, que especifica qué es lo que se quiere y no
cómo conseguirlo, por lo que una sentencia no establece explícitamente un orden de ejecución. El
orden de ejecución interno de una sentencia puede afectar gravemente a la eficiencia del SGBD,
por lo que se hace necesario que éste lleve a cabo una optimización antes de la ejecución de la
misma. Muchas veces, el uso de índices acelera una instrucción de consulta, pero ralentiza la
actualización de los datos, dependiendo del uso de la aplicación, se priorizará el acceso indexado
o una rápida actualización de la información. La optimización difiere sensiblemente en cada
motor de base de datos y depende de muchos factores. Existe una ampliación de SQL conocida
como FSQL (Fuzzy SQL, SQL difuso) que permite el acceso a bases de datos difusas, usando la
lógica difusa. Este lenguaje ha sido implementado a nivel experimental y está evolucionando
rápidamente.
CREATE [editar]
Este comando crea un objeto dentro de la base de datos. Puede ser una tabla, vista, índice, trigger,
función, procedimiento o cualquier otro objeto que el motor de la base de datos soporte.
ALTER [editar]
DROP [editar]
Este comando elimina un objeto de la base de datos.Puede ser una tabla, vista, índice, trigger,
función, procedimiento o cualquier otro objeto que el motor de la base de datos soporte. Se puede
combinar con la sentencia ALTER.
Ejemplo 1:
DROP TABLE TABLA_NOMBRE
Ejemplo 2:
ALTER TABLE TABLA_NOMBRE
(
DROP COLUMN CAMPO_NOMBRE1
)
TRUNCATE [editar]
Este comando trunca todo el contenido de una tabla. La ventaja sobre el comando DELETE, es
que si se quiere borrar todo el contenido de la tabla, es mucho más rápido, especialmente si la
tabla es muy grande, la desventaja es que TRUNCATE solo sirve cuando se quiere eliminar
absolutamente todos los registros, ya que no se permite la cláusula WHERE. Si bien, en un
principio, esta sentencia parecería ser DML (Lenguaje de Manipulación de Datos), es en realidad
una DDL, ya que internamente, el comando truncate borra la tabla y la vuelve a crear y no ejecuta
ninguna transacción.
Ejemplo 1:
TRUNCATE TABLE TABLA_NOMBRE
Esta página está traduciéndose del idioma inglés a partir del artículo Insert (SQL), razón por la
cual puede haber lagunas de contenidos, errores sintácticos o escritos sin traducir.
Puedes colaborar con Wikipedia continuando con la traducción desde el artículo original
INSERT [editar]
Una sentencia INSERT de SQL agrega uno o más registros a una (y sólo una) tabla en una base
de datos relacional.
INSERT INTO tabla (columna1, [columna2, ... ]) VALUES (valor1, [valor2, ...])
Las cantidades de columnas y valores deben ser las mismas. Si una columna no se especifica, le
será asignado el valor por omisión. Los valores especificados (o implícitos) por la sentencia
INSERT deberán satisfacer todas las restricciones aplicables. Si ocurre un error de sintaxis o si
alguna de las restricciones es violada, no se agrega la fila y se devuelve un error.
Ejemplo:
Cuando se especifican todos los valores de una tabla, se puede utilizar la sentencia acortada:
Ejemplo (asumiendo que 'nombre' y 'numero' son las únicas columnas de la tabla
'agenda_telefonica'):
Una característica de SQL (desde SQL-92) es el uso de constructores de filas para insertar
múltiples filas a la vez, con una sola sentencia SQL:
Ejemplo (asumiendo ese 'nombre' y 'numero' son las únicas columnas en la tabla
'agenda_telefonica'):
Notar que las sentencias separadas pueden tener semántica diferente (especialmente con respecto
a los triggers), y puede tener diferente performance que la sentencia de inserción múltiple.
Informix
De Wikipedia, la enciclopedia libre
Informix es una familia de productos RDBMS de IBM, adquirida en 2001 a una compañía
(también llamada Informix o Informix Software) cuyos orígenes se remontan a 1980.
El DBMS Informix fue concebido y diseñado por Roger Sippl a finales de los años 1970. La
compañía Informix fue fundada en 1980, salió a bolsa en 1986 y durante parte de los años 1990
fue el segundo sistema de bases de datos más popular después de Oracle. Sin embargo, su éxito
no duró mucho y para el año 2000 una serie de tropiezos en su gestión había debilitado
seriamente a la compañía desde el punto de vista financiero.
En 2001 IBM, impulsada por una sugerencia de Wal-Mart (el mayor cliente de Informix) compró
Informix. IBM tenía planes a largo plazo tanto para Informix como para DB2, compartiendo
ambas bases de datos tecnología de la otra. A principios de 2005, IBM lanzó la versión 10 del
Informix Dynamic Server (IDS).
Tabla de contenidos
[ocultar]
• 1 Historia
o 1.1 1980: Inicios
o 1.2 1988: Compra de Innovative Software
o 1.3 1995: Compra de Illustra
o 1.4 1997: Mala gestión
o 1.5 2001: Otras compras
o 1.6 2002: Repercusiones de la mala gestión
• 2 Resumen de productos
• 3 Enlaces externos
Historia [editar]
1980: Inicios [editar]
Roger Sippl y Laura King desarrollaron mientras trabajaban en Cromemco, una antigua compañía
S-100/CP/M, una pequeña base de datos relacional basada en técnicas ISAM, como parte de un
paquete de generación de informes.
Sippl y King abandonaron Cromemco para fundar Relational Database Systems (RDS) en 1980.
Su primer producto, Marathon, era esencialmente una versión de 16 bits de su anterior sistema
ISAM, lanzado para el sistema operativo Onyx, una versión de Unix para los primeros
microprocesadores de ZiLOG.
Volviendo su atención al mercado emergente de los RDBMS, RDS lanzó su propio producto
como Informix (de Information on Unix, ‘información en Unix’) en 1981, incluyendo su propio
lenguaje Informer y el editor de informes ACE, usado para extraer datos de la base de datos y
presentarlos a los usuarios de forma legible. También incluía la herramienta de formularios en
pantalla PERFORM, que permitía a un usuario realizar consultas y editar los datos de la base de
datos interactivamente. El último lanzamiento de este producto fue la versión 3.30 a principios de
1986.
En 1985 presentaron un nuevo motor de consultas basado en SQL como parte de su
INFORMIX-SQL (o ISQL) versión 1.10 (la versión 1.00 no se llegó a lanzar). Este producto
también incluía versiones SQL de ACE y PERFORM. La diferencia más importante entre ISQL y
el anterior Informix era la separación del código de acceso a la base de datos en un motor
independiente (sqlexec) en lugar de incrustarlo directamente en el cliente, preparando así el
entorno a la llegada de la computación cliente-servidor con la base de datos corriendo en un
máquina diferente a la del usuario final.
Durante principios de los años 1980 Informix siguió siendo una empresa pequeña, pero a medida
que Unix y SQL ganaban popularidad durante mediados de la década su suerte cambió. Para 1986
habían crecido lo suficiente como para salir a bolsa con éxito, y cambiaron el nombre de la
compañía a Informix Software. Sus productos eran INFORMIX-SQL versión 2.00 e
INFORMIX-4GL 1.00, incluyendo ambos el motor de bases de datos y herramientas de
desarrollo (I4GL para programadores, ISQL para no-programadores).
En 1988, Informix compró Innovative Software, autores de un paquete ofimático para DOS y
Unix llamado SmartWare y WingZ, una innovadora hoja de cálculo para el Apple Macintosh.
WingZ contaba con una interfaz de usuario altamente gráfica, soportaba hojas de cálculo muy
grande y permitir programar en un lenguaje parecido a HyperCard llamado HyperScript. El
lanzamiento original resultó ser muy exitoso, convirtiéndose en la segunda hoja de cálculo, sólo
por detrás de Microsoft Excel, si bien muchos usuarios de WingZ lo consideraban un producto
superior. En 1990 comenzaron a aparecer versiones para otras plataformas, principalmente
variantes de Unix. Durante este periodo, muchas entidades financieras empezaron a invertir en
estaciones de trabajo Unix como forma de incrementar la capacidad de los puestos de trabajo
necesaria para realizar grandes modelos financieros. Durante un breve periodo, WingZ triunfó en
este nicho de mercado.
El segundo foco de interés, tras la compra en 1995 de Illustra, se centró en tecnología de bases de
datos objeto-relacionales (BDOR). Illustra, escrita por ex-miembros del equipo Postgres
liderados por el pionero en base de datos Michael Stonebraker, incluía varias características que
le permitían devolver objetos totalmente formados directamente de la base de datos, una
características que reducía significativamente el tiempo de programación de muchos proyectos.
Illustra también incluía una característica llamada DataBlades que permitía añadir nuevos tipos
de dato y funcionalidades que podían incluirse en el servidor básico como opción. Estas opciones
incluían soluciones para varios de los problemas espinosos del SQL, concretamente series
temporales, datos espaciales y contenido multimedia. Informix integró el mapeo objeto-relacional
y los DataBlades de Illustra en la versión 7.x de su versión OnLine, lo que resultó en el Informix
Universal Server (IUS), o más comúnmente, Versión 9.
Los fallos en las campañas de marketing y una dirección desafortunada en cuanto a gobierno
corporativo ensombrecieron los éxitos técnicos de Infomix. El 1 de abril de 1997 Infomix tuvo
que anunciar que los beneficios quedarían 100 millones de dólares por debajo de lo previsto. En
retrospectiva, el día anterior a esta noticia podría haber señalado la cima del éxito de Infomix
como compañía. Mientras su tecnología continuaba avanzando, los vaivenes en la gestión que
siguieron a la expulsión de su CEO en 1997 significaron que la compañía nunca recuperó el
impulso que le había dado el éxito de la Versión 7.x.
A partir del año 2000, los principales hitos en la historia de Informix dejaron de centrarse en sus
innovaciones técnicas. En mayo de ese año Informix compró Ardent Software, un compañía que
ya tenía su propia historia de fusiones y adquisiciones. Esta adquisición añadió los motores
multidimensionales UniVerse y UniData (conocidos conjuntamente como U2) a su ya por
entonces extensa lista de motores de bases de datos, que incluía no sólo los productos históricos
de Informix, sino también un motor SQL orientado a almacenes de datos de Red Brick y la
versión 100% java de SQL, Cloudscape (que más tarde fue incorporado en la imprementación de
referencia de J2EE).
En julio el anterior CEO de Ardent, James D. Foy, fue nombrado CEO de Informix, y reorganizó
pronto la compañía para hacerla más atractiva a una eventual adquisición. La principal medida
adoptada fue separar todas las tecnologías de motores de bases de datos de las aplicaciones y
herramientas.
En noviembre de 2002 Phillip White, el antiguo CEO de Informix expulsado en 1997, fue
procesado por un gran jurado federal y acusado de ocho cargos por fraude de bursátil, telefónico
y postal. En un acuerdo de súplica trece meses más tarde, se declaró culpable del único cargo de
presentar una declaración de registro falsa ante la SEC.
En mayo de 2004, el Departamento de Justicia estadounidense anunció que White era condenado
a dos meses de prisión federal por fraude bursátil, una multa de 10.000 dólares, así como un
período de dos años de libertad vigilada y 300 horas de servicios a la comunidad. El anuncio
señaló que la cuantía de las pérdidas sufrida los accionistas por el delito no podía ser
razonablemente estimada bajo los hechos del caso [1]. El anterior acuerdo de súplica de White
había limitado la pena de prisión a un máximo de 12 meses.
En noviembre de 2005 se publicó un libro que detallaba el auge y caída de Informix Software y
su CEO Phil White. Escrito por un empleado durante mucho tiempo de Informix, La historia
verdadera de Informix Software y Phil White: Lecciones de negocio y liderazgo para el equipo
ejecutivo (The Real Story of Informix Software and Phil White: Lessons in Business and
Leadership for the Executive team) proporciona un informe desde dentro de la compañía que
muestra una cronología detallada del éxito inicial de la compañía, su definitivo fracaso y cómo el
CEO Phil White acabó en la cárcel.
EL ENTORNO
Tiene un generador automático de pantallas para el usuario y unos módulos de informes muy
interesantes pero la tecnología base lleva unos 10 años estancada. Existen 3 formas de
desarrollar :
• Código 4GL
• FORMS
• REPORTS
También tienen menus en modo texto para hacer las tareas de administración, compilación y
ejecución.
SQL
FUNCIONES
AVG
COUNT
MAX
MIN
RANGE
STDEV
SUM
VARIANCE
DAY
MDY
MONTH
WEEKDAY
YEAR
CURRENT --> current date and time
EXTEND --> adjust the precision of a DATE or DATETIME value
DATE
TO_CHAR
TO_DATE
LOWER
UPPER
INITCAP
REPLACE
SUBSTR
SUBSTRING
LPAD
RPAD
DECODE
NVL
Tiene una sintaxis un tanto peculiar para los LEFT OUTER JOINS por lo demás es muy similar
al SQL de Oracle 8.
Obtenido de "http://es.wikipedia.org/wiki/Informix"
Oracle
De Wikipedia, la enciclopedia libre
Oracle database
Desarrollador: Oracle Corporation
S.O.: Multiplataforma
Género: RDBMS
Licencia: Privativa
En español: -
Oracle es un sistema de gestión de base de datos relacional (o RDBMS por el acrónimo en inglés
de Relational Data Base Management System), fabricado por Oracle Corporation.
Se considera a Oracle como uno de los sistemas de bases de datos más completos, destacando su:
• Soporte de transacciones.
• Estabilidad.
• Escalabilidad.
• Es multiplataforma.
Su mayor defecto es su enorme precio, que es de varios miles de euros (según versiones y
licencias). Otro aspecto que ha sido criticado por algunos especialistas es la seguridad de la
plataforma, y las políticas de suministro de parches de seguridad, modificadas a comienzos de
2005 y que incrementan el nivel de exposición de los usuarios. En los parches de actualización
provistos durante el primer semestre de 2005 fueron corregidas 22 vulnerabilidades públicamente
conocidas, algunas de ellas con una antigüedad de más de 2 años.
Aunque su dominio en el mercado de servidores empresariales ha sido casi total hasta hace poco,
recientemente sufre la competencia del Microsoft SQL Server de Microsoft y de la oferta de otros
RDBMS con licencia libre como PostgreSQL, MySql o Firebird. Las últimas versiones de Oracle
han sido certificadas para poder trabajar bajo Linux.
Historia [editar]
Oracle surge a finales de los 70 bajo el nombre de Relational Software a partir de un estudio
sobre SGBD (Sistemas Gestores de Base de Datos) de George Koch. Computer World definió
este estudio como uno de los más completos jamás escritos sobre bases de datos. Este artículo
incluía una comparativa de productos que erigía a Relational Software como el más completo
desde el punto de vista técnico. Esto se debía a que usaba la filosofía de las bases de datos
relacionales, algo que por aquella época era todavía desconocido.
Tipo
TINYINT
BIT
BOOL
SMALLINT
MEDIUMINT
INT
INTEGER
BIGINT
FLOAT
DOUBLE
DEC
NUMERIC
Tipo
CHAR
VARCHAR
TINYBLOB
TINYTEXT
BLOB
TEXT
MEDIUMBLOB
MEDIUMTEXT
LONGBLOB
LONGTEXT
ENUM
SET
Los tipos de columna de fecha y hora están diseñados para trabajar con
las necesidades especiales que exigen los datos de tipo temporal y se
puede utilizar para almacenar datos tales como la hora del día o fechas de
nacimiento.
Tabla #5: Tipos de datos fecha y hora Mysql
Fuente: Mysql Avanzado
Autor: Diego Burbano
Tipo
DATETIME
DATE
TIMESTAMP
TIME
YEAR
Las tablas estáticas tienen longitud fija. Cada registro tiene asignado exactamente 10
Bytes.
Este tipo de tablas se caracterizan por:
• Ser muy rápidas (ya que Mysql sabe que el segundo nombre comienza siempre en el
carácter número once)
• Resultan sencillas de almacenar en caché.
• Resultan sencillas para reconstruir tras un fallo.
• Requieren más espacio de disco
1. Tablas Dinámicas
Las columnas de las tablas dinámicas tienen diferentes tamaños. Auque este tipo de dato
ahorra espacio, resulta sin embargo más complejo.
Las tablas de tipo dinámico presentan las siguientes características:
• Todas las columnas de cadena son dinámicas.
• Por regla general, ocupan mucho menos espacio de disco que las tablas fijas.
• Las tablas requieren un mantenimiento regular para evitar su fragmentación.
• No resulta tan sencillo de reconstruir tras un fallo, especialmente si las tablas están
muy fragmentadas.
1. Tablas comprimidas
Las tablas comprimidas son tablas de solo lectura que utilizan mucho menos espacio en
disco.
Son ideales para su uso con datos comprimidos que no cambien (que solo se pueden leer
y no escribir) y donde no exista mucho espacio disponible.
Las tablas comprimidas presentan las siguientes características:
• Las tablas son mucho más pequeñas.
• Como cada registro se comprime de forma separada, la carga de acceso es reducida.
• Cada columna se podría comprimir de forma diferente, utilizando distintos
algoritmos de compresión.
• Se puede comprimir formatos de tabla fija y dinámica.
1. Tablas Merge
1. Tablas Heap
Las tablas Heap son el tipo de tabla más rápido porque se almacena
en memoria y utilizan un índice asignado. La contrapartida es que
como se almacenan en memoria, en el caso de una falla del sistema,
los datos se pierden.
2. Tablas Innodb
Las tablas Innodb son tablas de transacción segura (lo que significa que dispone de las
funciones COMMIT y ROLLBACK). En una tabla MyISAM, la tabla entera se bloquea al
realizar funciones de inserción. Durante esa fracción de segundo, no se puede ejecutar
ninguna otra instrucción sobre la tabla. Innodb utiliza funciones de bloqueo a nivel de
fila de manera que solo se bloquee dicha fila y no toda la tabla, y se puedan seguir
aplicando instrucciones sobre otras filas.
1. Transacciones y bloqueos
Hay que tener mucho cuidado cuando se realizan transacciones ya que al ejecutar
cualquiera de estos comandos cuando las transacción este a medias, automáticamente se
realizará un COMMIT.
1. Bloqueo de tablas
Se debe evitar los bloqueos sobre tablas que necesiten realizar un gran
volumen de actualizaciones, ya que, en el caso de los bloqueos de
escritura, no se puede leer o escribir ningún registro de la tabla durante el
bloqueo.
Además, como los bloqueos de escritura tienen prioridad sobre los de
lectura de manera predeterminada, no se puede leer ningún registro hasta
que todas las operaciones de actualización e inserción se completen, lo
que puede provocar que Mysql se atasque de forma terrible. Existen
varias formas de evitar los bloqueos de tabla. Una de ellas consiste en
realizar la operación de lectura y actualización dentro de la misma
instrucción (es lo que se conoce como actualización incremental).
3. Niveles de transacción
Se puede modificar el comportamiento predeterminado al trabajar con
transacciones mediante el establecimiento del nivel de transacción.
Existen varios niveles de transacción en Mysql. En concreto admite los
siguientes niveles de aislamiento de transacción.
1. READ UNCOMMITTED
Este nivel permite transacciones para leer datos sin confirmar desde
otras transacciones (es lo que se conoce como lectura sucia).
2. REPEATABLE READ
Este nivel no permite lecturas fantasma, que tienen lugar cuando otra
transacción ha confirmado una nueva fila que coincide con los resultados
de nuestra consulta. Los datos serán los mismos en cada ocasión.
4. Indices y optimización de consultas
Cada tipo de tabla tiene su propio comportamiento en materia de índices y cada una de
ellas lo procesa de manera diferente. No todos los tipos de índices están disponibles para
los distintos tipos de tabla. Es importante tener claro como se va a utilizar una tabla y los
índices que se van a necesitar ante de seleccionar el tipo de tabla. En ocasiones, lo que
parece ser el tipo de tabla perfecta se convierte en la peor elección porque o se puede
utilizar un determinado tipo de índice en ella.
A continuación se enlista las funciones y las diferencias de índices para cada tipo de
tabla. Las tablas MyISAM presentan las siguientes características:
• Los índices se almacenan con la extensión .MYI
• Los índices de número se almacenan con el byte alto primero par permitir una mejor
compresión del índice.
• Se puede utilizar índices BLOB y TEXT.
• Se permiten valores nulos en los índices.
• Los datos y el índice se pueden incluir en directorios diferentes ( lo que permite una
mayor velocidad).
Las tablas ISAM utilizan un índice B-TREE almacenado en archivos con la extensión
.ism.
Las tablas InnoDB no pueden utilizar índices de texto completo.
1. Uso eficaz de los índices
Las tablas con pocos índices devolverán los resultados muy rápido. Pero
la inclusión de demasiados índices, aunque no suele ser normal, también
ocasiona degradación de la base de datos. Los índices ocupan espacio de
disco y, como están ordenados, cada vez que se realice una operación de
inserción o de actualización, es necesario volver a organizar el índice para
incluir los cambios, lo que da como resultado una carga de trabajo
adicional significativa. La eficiencia en el uso de los índices depende
también de la configuración de Mysql.
2. Dónde utilizar los índices
El uso más común de un índice consiste en recuperar filas que cumplan
una condición incluida en la cláusula WHERE.
Es muy importante crear el índice correcto, sobre el campo correcto,
revisando siempre que forme parte de la condición.
Al buscar valores máximos o mínimos, Mysql, sólo necesita tomar el
primer valor o el último de una tabla ordenada con un índice, lo que
resulta extremadamente rápido.
Si se solicita con frecuencia valores máximos o mínimos, resulta muy útil
crear un índice sobre el campo pertinente.
3. Sistema de prefijación más a la izquierda
1. Optimización de Selecciones
• PMON.- Process Monitor, Monitorea los procesos de los usuarios en caso de que la
conexión falle. Su misión es monitorizar los procesos del servidor y tomar acciones
correctivas cuando alguno de ellos se interrumpe en forma abrupta, limpiando la
caché y liberando los posibles recursos que pudieran estar asignados en ese momento.
También es responsable por el restablecimiento de aquel proceso que se ha
interrumpido bruscamente.
• SMON.- System Monitor, este proceso es el encargado de recuperar la instancia y
abrir la base da datos en caso de que ocurra alguna falla. Levanta una instancia
cuando se le da la instrucción de partida (al comienzo del trabajo, encontrándose
previamente en shutdown). Enseguida limpia los segmentos temporales y recupera
las transacciones que pudieran haberse interrumpido debido a una falla del sistema.
Además disminuye la fragmentación del sistema agrupando aquellas extensiones
libres que existen dentro de la base de datos.
• CKPT.- CheckPoint Process, Sintoniza las tareas de grabación en la base de datos. Es
el responsable de advertir al proceso DBWR de efectuar un proceso de actualización
en el disco de los datos mantenidos en memoria, incluyendo los datafiles y control
files (para registrar el checkpoint). Este proceso es opcional, si no está presente, es el
proceso LGWR quien asume la responsabilidad de la tarea.
• DBWR.- DataBase Writer, escribe los bloques de datos de la memoria en la base de
datos. Es el responsable de la escritura en disco de toda la información almacenada en
los buffers de bloques que no se han actualizado.
• LGWR.- Log Writer, graba los bloques del redo log del buffer a los archivos Redo Log
File.
• ARCH (archiver): La función de este proceso es la de respaldar la información
almacenada en los archivos redo log cuando éstos se llenan. Este proceso está siempre
activo cuando se ha establecido el modo ARCHIVELOG. Si el sistema no está
operando en este modo se hace más difícil recuperar el sistema sin problemas luego
de una falla general.
Dentro de los procesos que forman parte de las base de datos tenemos:
• Control File, que contiene la información para controlar y mantener la integridad
de la base de datos.
• Data files, son lo archivos en los cuales se almacenan los datos de las aplicaciones.
• Redo Log Files, almacena los cambios hechos en la base de datos con propósito de
recuperarlos en caso de falla.
1. Estructuras adicionales
Para una correcta conexión, estos dos servicios deben estar ejecutándose.
1. Esquema General
1. Conexión Remota
1. Tipos de datos
TIMESTAMP WITH
VARCHAR BLOB
TIME ZONE
NVARCHAR(2) NLOB
LONG BFILE
En todos estos tipos se indica el tamaño en paréntesis tras el nombre del tipo, este
tamaño, en el caso de los tipos VARCHAR(2), es obligatorio, en el caso de los tipos
CHAR son opcionales (si no se pone toma uno como default).
El tipo de dato Number es un tipo de dato versátil, que permite representar todo tipo de
números de entre 10E-130 y 9,99999999999 * 10E128. Fuera de estos rangos, oracle
devuelve un error.
Los números decimales, se indican con NUMBER (p, s), donde p es la precisión máxima
y s es la escala.
El tipo de dato DATE, permite almacenar fechas. Las fechas se puede escribir en formato
día, mes, año entre comillas. El separador puede ser /, - y casi cualquier símbolo.
El tipo de dato TIMESTAMP, es una extensión del anterior, almacena valores de día,
mes, año, junto con la hora, minutos y segundos, con lo que representa un instante
concreto en el tiempo.
El tipo de dato INTERVAL representa intervalos de tiempo.
El tipo de dato RAW sirve para almacenar valores binarios de hasta 2000 bytes (se
puede especificar el tamaño máximo entre paréntesis).
LOB, son varios tipos de datos que permiten almacenar valores muy grandes. Incluye
BLOB, CLOB, NCLOB y BFILE.
El tipo ROWID, es un valor hexadecimal que representa la dirección única de una fila en
su tabla.
1. Transacciones y bloqueos
2. Transacciones
Oracle tiene dos lenguajes procedimentales principales, PL/SQL y Java. PL/SQL fue el
lenguaje original de Oracle para los procedimientos almacenados y tiene una sintaxis
similar al utilizado en el lenguaje Ada. Java se soporta mediante una máquina virtual
Java dentro del motor de base de datos. Oracle proporciona un paquete para encapsular
procedimientos, funciones y variables relacionadas en unidades únicas.
1. Disparadores
Cuando un objeto se crea dentro de un tablespace, este objeto adquiere todas las
propiedades antes descritas del tablespace utilizado.
Si creamos por ejemplo una tabla llamada Artículo, esta se almacena dentro del
tablespaceA, y que por lo tanto tendrá todas las propiedades del TableSpaceA que
pueden ser:
• Sus ficheros de datos están en $ORACLE_HOME/datos/tablespaceA
• Los objetos no pueden ocupar más de 10Mb de espacio de la base de datos.
• En cualquier momento se puede poner fuera de línea todos los objetos de un cierto
tablespace.
• Se puede hacer copia de seguridad solo de ciertos tablespace.
Si nos fijamos, se puede apreciar que es posible tener una tabla en un Tablespace, y los
índices de esta tabla en otro tablespace. Esto es debido a que los índices no son más que
objetos independientes dentro de la base de datos, como lo son las tablas. Y al ser objetos
independientes, pueden ir en tablespaces independientes.
En las bases de datos Oracle encontramos el tablespace SYSTEM es un tablespace por
defecto en todas las bases de datos Oracle. En él se almacenan todos los datos del
sistema, el catálogo y todo el código fuente y compilado de procedimientos PL/SQL.
También es posible utilizar el mismo tablespace para guardar datos del usuario. Este
tablespace contiene además, el diccionario de datos, almacenamiento para disparadores
y los procedimientos almacenados.
Por otra parte, también existe un tablespace Temporal. Este tablespace representa las
propiedades que tendrán los objetos que la base de datos cree temporalmente para sus
cálculos internos (normalmente para ordenaciones y agrupaciones).
El tablespace se puede crear con ciertas restricciones como por ejemplo un tablespace de
solo lectura (Read Only), que por lo tanto, todos los objetos en el contenidos pueden
recibir ordenes de consulta de datos, pero no de modificación de datos.
Un tablespace puede estar en línea o fuera de ella (OnLine o OffLine), esto es que el
tablespace completo está a disposición de los usuarios o está desconectado para
restringir el uso.
1. DataFile (Archivo de datos)
Fuente: Internet
Autor: Diego Burbano
Mysql es muy popular por su velocidad de procesamiento, además el tipo de
licencia que maneja es Gpl (General Public Licence).
Oracle es una base de datos robusta, es una de las bases de datos más
confiables que existen en el mercado.
2. Sistemas Operativos soportados
Fuente: Internet
Autor: Diego Burbano
Free BSD (Berkeley Software Distribution).- Es un sistema operativo
open source de la familia de sistemas operativos Unix, fue desarrollado por
Research Group, UC Berkeley.
Hp-UX ( Hewlett Packard Unix ).- es un sistema operativo de la familia
Unix, desarrollado por Hewlett-Packard.
Novell Netwate.- es un sistema operativo de red desarrollado por Novell,
Inc.
Sco Open Server.- La empresa que lo diseñó es The SCO Group, pertenece a
la familia de sistemas operativos Unix, el tipo de licencia es propietaria, antes
se llamaba Sco Unix desarrollado por Santa Cruz Operation (SCO) y ahora
mantenido por Sco Group.
Iris.- La empresa que lo diseño es Silicon Graphics, pertenece también a la
familia Unix.
Qnx.- la empresa que le desarrollo es QNX Software systems, el tipo de
licencia es propietaria.
3. Interfaces (Api’s) / Conectores soportados
Fuente: Internet
Autor: Diego Burbano
Mysql ofrece los conectores indicados en la tabla que pueden
ser usados para desarrollar aplicaciones utilizando mysql
como base de datos. Cuando una aplicación es desarrollada
con Php, Java, .net, perl, ODBC, Mysql dispone de un driver
que se encarga de realizar este trabajo.
Java.- es una plataforma independiente, es un lenguaje
orientado a objetos desarrollado por Sun Microsystems Inc.
Un compilador java crea al código binario y la maquina
virtual Java (JVM) convierte el código binario en lenguaje de
máquina. Java al ser una plataforma independiente, los
programas compilados en Java en una plataforma, pueden
ser utilizados en otra plataforma sin cambio alguno.
Oracle maneja PL/SQL que es un lenguaje de programación
propio de Oracle, la base de datos incluye un compilador Java
y JVM con la ingeniería de la base de datos. Esto permite a
los desarrolladores escribir procedimientos almacenados,
triggers y funciones en el estándar de programación Java
incluido en lenguaje Pl/sql. Los desarrolladores compilan los
programas Java directamente en la base de datos o leer una
clase java utilizando la utilidad de Oracle llamada LoadJava.
Mysql no permite almacenar o ejecutar programas java en la
base de datos.
4.4 Comparativa de Características de las
Bases de Datos
Tabla # 10: Comparativa de Características de las bases de
datos
Autor: Diego Burbano
4.5 Aplicaciones Administrativas de Mysql
Tabla # 11: Aplicaciones Administrativas de Mysql
5.1.2 Recomendaciones
o Oracle debe abrir el código fuente de sus aplicaciones de manera que
permita a los usuarios un mejor manejo de la herramienta y conocer
sobre su funcionamiento.
o Las pequeñas empresas deben tomar en cuenta las bases de datos de
código abierto como Mysql para sus desarrollos ya que tiene muchas
funcionalidades como las bases de datos comerciales y que está al
alcance de su economía.
o En este estudio se detallan buenas razones para usar bases de datos
de código abierto en las empresas, en el caso de mysql, cumple con
muchas de las características de las bases de datos propietarias,
además el soporte es muy bueno y lo principal es que el costo se
reduce en gran medida.
o Realizar las pruebas entre los motores de bases de datos en otros
sistemas operativos y con servidores de características óptimas. Este
estudio no las realiza por lo complicado que resulta en términos de
infraestructura y costos.