Las
aplicaciones en red son cada día más numerosas y versátiles. En muchos casos,
el esquema básico de operación es una serie de scripts que rigen el
comportamiento de una base de datos. Debido a la diversidad de lenguajes y de
bases de datos existentes, la manera de comunicar entre unos y otras sería
realmente complicada a gestionar de no ser por la existencia de estándares que
nos permiten el realizar las operaciones básicas de una forma universal. Es de
eso de lo que trata el Structured Query Language que no es más que un lenguaje
estándar de comunicación con bases de datos. Hablamos por tanto de un lenguaje
normalizado que nos permite trabajar con cualquier tipo de lenguaje (ASP o PHP)
en combinación con cualquier tipo de base de datos (MS Access, SQL Server,
MySQL...). El hecho de que sea estándar no quiere decir que sea idéntico para
cada base de datos. En efecto, determinadas bases de datos implementan
funciones específicas que no tienen necesariamente que funcionar en otras.
v Orígenes
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.1 Basándose en estas ideas, los laboratorios de IBM
definieron el lenguaje SEQUEL (Structured English Query Language) que más tarde
fue ampliamente implementado por el sistema de gestión de bases de datos (SGBD)
experimental System R, desarrollado en 1977 también por IBM. Sin embargo,
fueOracle quien lo introdujo por primera vez en 1979 en un producto comercial.
v Características
-Es
un lenguaje de alto nivel que permite una alta productividad en codificación y
la orientación a objetos. De esta forma, una sola sentencia puede equivaler a
uno o más programas que se utilizarían en un lenguaje de bajo nivel orientado a
registros.
-Lenguaje
de definición de datos: El LDD (lenguaje
de definición de datos) proporciona comandos para la definición de esquemas
de relación, borrado de relaciones y modificaciones de los esquemas de
relación.
Lenguaje interactivo de
manipulación de datos: El LMD (Lenguaje
de manejo de datos) incluye lenguajes de consultas basado tanto en álgebra
relacional como en cálculo relacional de tuplas.
-Control
de transacciones: SQL tiene comandos para especificar el comienzo y el final de
una transacción.
-SQL
incorporado y dinámico: Esto quiere decir que se pueden incorporar
instrucciones de SQL en lenguajes de programación como: C++, C, Java, PHP, Cobol,
Pascal y Fortran.
-Autorización:
El LDD incluye comandos para especificar los derechos de acceso a las
relaciones y a las vistas.
-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.
v Versiones
-1986 SQL-86 SQL-87 Primera publicación hecha por ANSI.
Confirmada por ISO en 1987.
-1989 SQL-89 Revisión menor.
-1992 SQL-92 SQL2 Revisión mayor.
-1999 SQL:1999 SQL2000 Se agregaron expresiones regulares,
consultas recursivas (para relaciones jerárquicas), triggers y algunas
características orientadas a objetos.
-2003 SQL:2003 Introduce algunas características de XML,
cambios en las funciones, estandarización del objeto sequence y de las columnas
autonuméricas. 2
-2005 SQL: 2005 ISO/IEC 9075-14:2005 Define las maneras en las cuales SQL se puede
utilizar conjuntamente con XML. Define maneras de importar y guardar datos XML
en una base de datos SQL, manipulándolos dentro de la base de datos y
publicando el XML y los datos SQL convencionales en forma XML. Además,
proporciona facilidades que permiten a las aplicaciones integrar dentro de su
código SQL el uso de XQuery, lenguaje de consulta XML publicado por el W3C
(World Wide Web Consortium) para acceso concurrente a datos ordinarios SQL y
documentos XML.
-2008 SQL: 2008Permite el uso de la cláusula
ORDER BY fuera de las definiciones de los cursores. Incluye los disparadores
del tipo INSTEAD OF. Añade la sentencia TRUNCATE.3
v
Ventajas
Ventajas
-Migración
en vivo: las bases de datos virtuales se pueden migrar de un servidor físico a
otro sin interrupción del servicio en caso de problemas de hardware.
-Rentabilidad
y fácil implementación de soluciones de alta disponibilidad.
-Implementación
flexible, dinámica y automatizada de nuevas instancias y recursos del sistema
cuando sea necesario (escalabilidad).
-Disponibilidad
mejorada: mediante la separación de las máquinas virtuales entre sí, en caso de
problemas con una máquina virtual, el resto de las máquinas virtuales puede
seguir funcionando sin sacrificar el desempeño.
v Desventajas
-Por lo tanto, no es de extrañar que la
virtualización de base de datos aumente cada vez más. Pero a pesar de estas
ventajas, también puede conducir a problemas en caso de que su implementación
sea realizada demasiado rápidamente y sin una planificación suficiente.
-Licencias:
en algunos casos, tales como las bases de datos Oracle antiguas, las licencias
de bases de datos anteriores no pueden ser transferidas 1:1 a un sistema
virtualizado debido a que sus costos están relacionados con el desempeño
(potencial) del sistema y no con lo que se utiliza realmente.
-Falta
de experiencia, o experiencia insuficiente por parte del personal
-volúmenes
de almacenes de datos de VMware reformateados
-volúmenes
de almacenes de datos VMFS dañados
-sistemas
de archivos invitados dañados
-archivos
virtuales (VMDK/VHD) corruptos osistemas de archivos (VMDK o VHD) borrados
accidentalmente.
Yoser Muñoz C.I: 24645284
Rosmery Rodríguez C.I:
18778399
Sección:
71