Guia de sql



Descargar 89.49 Kb.
Fecha de conversión01.05.2018
Tamaño89.49 Kb.


[UNEFA TSU EN ANALISIS Y DISEÑO DE SISTEMAS, 3ER. SEMESTRE]

Base de Datos


GUIA DE SQL.
Unidad 4: Aplicación del Lenguaje de Consulta Estructurado (SQL)

SQL: El Lenguaje de Consulta Estructurado (Structured Query Language) es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones. Su característica más predominante es el manejo del álgebra y el cálculo relacional permitiendo diseñar y generar consultas con el fin de recuperar información de interés en una base de datos de una forma sencilla.


El SQL es una herramienta para organizar, gestionar y recuperar datos almacenados en una base de datos informática de tipo relacional. Cuando se necesita recuperar datos de una base de datos, se utiliza al lenguaje SQL para efectuar la petición, ya sea en modo consola o desde el código programado inmerso en una aplicación tipo HMI que ha sido desarrollado desde un lenguaje anfitrión (GAMBAS BASIC, VISUAL BASIC, etc). El DBMS, sea MySQL, Oracle, SQL Server, etc, procesa la petición SQL, recupera los datos solicitados y los devuelve. Este proceso de solicitar datos de la Base de datos y de recibir los resultados se denomina consulta (Query) a la base de datos, de aquí su nombre Structured Query Language.

El nombre Structured Query Language es realmente y en cierta medida inapropiado. En primer lugar el SQL es mucho más que una herramienta de consulta, aunque ese fue su propósito original, y recuperar datos sigue siendo una de sus funciones más importantes. El SQL se utiliza para controlar todas las funciones que un DBMS proporciona a sus usuarios, incluyendo:



  • Definición de Datos. El SQL permite a un usuario definir la estructura y organización de los datos almacenados y de las relaciones entre ellos.

  • Recuperación de Datos. El SQL permite al usuario o a un programa de aplicación recuperar los datos almacenados en la base de datos y utilizarlos.

  • Manipulación de Datos. El SQL permite a un usuario o a un programa de aplicación actualizar la base de datos añadiendo nuevos datos, suprimiendo datos antiguos y modificando datos previamente almacenados.

  • Control de Acceso. El SQL puede ser utilizado para restringir la capacidad de un usuario para recuperar, añadir, eliminar y modificar datos, protegiendo así los datos almacenados frente a accesos no autorizados.

  • Compartición de Datos. El SQL se utiliza para coordinar la compartición de datos por parte de usuarios concurrentes, asegurando que no interfieran unos con otro.

  • Integridad de Datos. El SQL define restricciones de integridad en la base de datos, protegiéndola contra corrupciones debidas a actualizaciones inconsistentes o a fallos del sistema.

Por lo tanto el SQL es un lenguaje completo de control e interactuación con un sistema de gestión de bases de datos.

El SQL no es realmente un lenguaje informático completo tal como C, GAMBAS o VISUAL BASIC, por nombras algunos, no dispone de sentencias de decisión tal como el “IF” para examinar condiciones, ni de sentencias “DO” o “FOR” para lograr iteraciones. Aunque el SQL es un lenguaje de cuarta generación, éste es un sublenguaje de base de datos, consistente en unas 30 sentencias especializadas para tareas de gestión de bases de datos. Estas sentencias se incorporan a otro lenguaje, tal como C o GAMBAS, para extender ese lenguaje y permitirle utilizar el acceso a la base de datos.

El SQL no es un lenguaje particularmente estructurado, especialmente cuando se compara con lenguajes altamente estructurados, en vez de ello, las sentencias SQL se asemejan a frases en inglés, completadas con palabras de relleno que no añaden nada al al significado de la frase pero que hace que se lean mas naturalmente.

A pesar de la imprecisión de su nombre, el SQL ha emergido como el lenguaje estándar para la utilización de bases de datos relacionales. El SQL es a la vez un potente lenguaje y un lenguaje relativamente muy fácil de aprender.



EL PAPEL DEL SQL

El SQL no es en si mismo un DBMS, ni un producto autónomo, no se puede ir a una tienda de informática y comprar al SQL solo. El SQL es parte integral de un DBMS (ORACLE; MySQL, etc), Es un lenguaje que funciona como un a herramienta que permite comunicar al DBMS con la base de datos.

Todo DBMS esta compuesto de diferentes partes virtuales programadas que engranadas cumplen con todas sus funciones, pero existe una parte en específico a la que se le llama motor de la base de datos, que es la que estructura, almacena y recupera realmente los datos desde y hacia el disco duro. Acepta peticiones SQL ya sea modo consola, gráfico o desde el código de un lenguaje anfitrión. El motor es el verdadero corazón del DBMS.

El SQL juega diversos papeles:



  • El SQL es un lenguaje de consultas interactivas. Los usuarios escriben ordenes para recuperar datos y mostrarlos en la pantalla, proporcionando una herramienta conveniente y fácil de utilizar para consultas rápidas a la base de datos.

  • El SQL es un lenguaje de programación de base de datos. Los programadores insertan ordenes SQL en sus programas de aplicación para acceder a los datos de la base de datos.

  • El SQL es un lenguaje de administración de bases de datos. El administrador de la base de datos responsable de gestionar una base de datos en un computador utiliza al SQL para definir la estructura de la base de datos y para controlar el acceso a los datos almacenados.

  • El SQL es un lenguaje cliente / servidor. Los programas del computador utilizan al SQL para comunicarse sobre una LAN con servidores de bases de datos que almacenan los datos compartidos (Strings de enlaces y conexión a nivel de código). Las aplicaciones tipo Cliente / Servidor minimizan el tráfico por la red y permite que tanto los PC como los servidores efectúan mejor su trabajo.

  • El SQL es un lenguaje de bases de datos distribuidas. Los DBMS utilizan al SQL para ayudar a distribuir los datos a través de muchos sistemas informáticos conectados. El software DBMS de cada DBS utiliza la SQL para comunicarse con los otros DBS enviando peticiones para acceso a datos.

  • El SQL es un lenguaje de puerta de enlace a otras bases de datos. En una red informática con una mezcla de diferentes productos DBMS, el SQL se utiliza a menudo como puerta de enlace que permite que un DBMS se comunique con otros DBMS.

Orígenes y Evolución


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 SMBD 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 SMBD 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.

En la actualidad el SQL es el estándar de facto de la inmensa mayoría de los SMBD comerciales. Y, aunque la diversidad de añadidos particulares que incluyen las distintas implementaciones comerciales del lenguaje es amplia, el soporte al estándar SQL-92 es general y muy amplio.



A continuación se presenta un resumen de los eventos que han dado píe y evolución al SQL.

AÑO

ACONTECIMIENTO

1970

Codd define el modelo de bases de datos relacional.

1974

Comienza el proyecto System/R de IBM.

1974

Primer artículo que describe al lenguaje SEQUEL.

1978

Test de clientes del System/R

1979

Oracle introduce el primer RDBMS comercial.

1981

Relational Technology introduce al INGRES.

1981

IBM anuncia el SQL/DS.

1982

ANSI forma el comité de estándares SQL.

1983

IBM anuncia DB2.

1986

Se ratifica el estándar ANSI SQL. (SQL 86). SQL 1.

1986

Sybase introduce un RDBMS para el procesamiento de transacciones.

1987

Se ratifica el estándar ISO SQL. (SQL 86).

1988

Ashton Tate y Microsoft anuncian SQL Server para OS / 2.

1988

IBM anuncia la versión 2 de DB2.

1989

Primera entrega de servidores de bases de datos SQL para OS/2.

1989

Revisión menor del SQL (SQL 89).

1992

Revisión mayor del SQL (SQL 92). SQL 2

1999

Se agregaron expresiones regulares, consultas recursivas (para relaciones jerárquicas), triggers y algunas características orientadas a objetos. SQL 3.

2003

Se introducen algunas características del XML, cambios en las funciones, estandarización del objeto SEQUENCE y de las columnas autonumericas.

2006

ISO/IEC 9075-14:2006 Define las maneras en las cuales el SQL se puede utilizar conjuntamente con XML. Define maneras 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.

El XML, sigla en inglés de eXtensible Markup Languagelenguaje de marcas extensible»), es un metalenguaje extensible de etiquetas desarrollado por el World Wide Web Consortium (W3C). Es una simplificación y adaptación del SGML y permite definir la gramática de lenguajes específicos (de la misma manera que HTML es a su vez un lenguaje definido por SGML). Por lo tanto XML no es realmente un lenguaje en particular, sino una manera de definir lenguajes para diferentes necesidades. Algunos de estos lenguajes que usan XML para su definición son XHTML, SVG, MathML.

XML no ha nacido sólo para su aplicación en Internet, sino que se propone como un estándar para el intercambio de información estructurada entre diferentes plataformas. Se puede usar en bases de datos, editores de texto, hojas de cálculo y casi cualquier cosa imaginable.

XML es una tecnología sencilla que tiene a su alrededor otras que la complementan y la hacen mucho más grande y con unas posibilidades mucho mayores. Tiene un papel muy importante en la actualidad ya que permite la compatibilidad entre sistemas para compartir la información de una manera segura, fiable y fácil.

EL ESTÁNDAR ANSI / ISO

ANSI. Instituto Nacional Estadounidense de Estándares (por sus siglas en inglés: American National Standards Institute) es una organización sin ánimo de lucro que supervisa el desarrollo de estándares para productos, servicios, procesos y sistemas en los Estados Unidos. ANSI es miembro de la Organización Internacional para la Estandarización (ISO) y de la Comisión Electrotécnica Internacional (International Electrotechnical Commission, IEC). La organización también coordina estándares del país estadounidense con estándares internacionales, de tal modo que los productos de dicho país puedan usarse en todo el mundo. Por ejemplo, los estándares aseguran que la fabricación de objetos cotidianos, como pueden ser las cámaras fotográficas, se realice de tal forma que dichos objetos puedan usar complementos fabricados en cualquier parte del mundo por empresas ajenas al fabricante original. De éste modo, y siguiendo con el ejemplo de la cámara fotográfica, la gente puede comprar carretes para la misma independientemente del país donde se encuentre y el proveedor del mismo.

Esta organización aprueba estándares que se obtienen como fruto del desarrollo de tentativas de estándares por parte de otras organizaciones, agencias gubernamentales, compañías y otras entidades. Estos estándares aseguran que las características y las prestaciones de los productos son consistentes, es decir, que la gente use dichos productos en los mismos términos y que esta categoría de productos se vea afectada por las mismas pruebas de validez y calidad.

ANSI acredita a organizaciones que realizan certificaciones de productos o de personal de acuerdo con los requisitos definidos en los estándares internacionales. Los programas de acreditación ANSI se rigen de acuerdo a directrices internacionales en cuanto a la verificación gubernamental y a la revisión de las validaciones.

ISO. La Organización Internacional para la Estandarización o International Organization for Standardization (ISO), es una organización internacional no gubernamental, compuesta por representantes de los organismos de normalización (ON's) nacionales, que produce normas internacionales industriales y comerciales. Dichas normas se conocen como normas ISO y su finalidad es la coordinación de las normas nacionales, en consonancia con el Acta Final de la Organización Mundial del Comercio, con el propósito de facilitar el comercio, facilitar el intercambio de información y contribuir con unos estándares comunes para el desarrollo y transferencia de tecnologías.

El trabajo en el estándar SQL oficial comenzó en 1982, cuando la ANSI encargo a su comité X3H2 que definiera un lenguaje de base de datos relacional. Al principio e, comité debatió los méritos de los diferentes lenguajes de bases de datos propuestos. Sin embargo, cuando el compromiso de IBM con SQL se incrementó y SQL emergió como el estándar de hecho en el mercado, el comité seleccionó al SQL como su lenguaje de bases de datos relacional, y se aplicó a estandarizarlo.

El estándar ANSI para SQL resultante esta basado en gran medida en el SQL del DB2, aunque contiene algunas diferencias importantes con respecto a él. Después de varias revisiones, el estándar fue oficialmente adoptado como estándar ANSI X3.135 en 1986, y como estándar ISO en 1987. El estándar ANSI/ISO ha sido adoptado desde entonces como estándar del FEDERAL INFORMATION PROCESSING STANDARD (FIPS) por el gobierno de los Estados Unidos.

Muchos de los miembros del comité ANSI e ISO eran representantes de vendedores de bases de datos que tenían productos SQL existentes, cada uno implementando un dialecto SQL ligeramente diferente. Al igual que los dialectos de los lenguajes humanos, los dialectos SQL eran generalmente muy similares los unos a los otros, pero incompatibles en sus detalles.

A pesar de la existencia de un estándar, ningún producto SQL comercial disponible hoy se conforma exactamente a él, y no hay dos productos comerciales SQL que soporten exactamente el mismo dialecto de SQL. Además como los vendedores de DBMS introducen nuevas capacidades continuamente a sus productos, amplían sus dialectos SQL y se apartan aún más del estándar.

El estándar SQL real, naturalmente, es el SQL implementado en los productos que están ampliamente aceptados en el mercado.

Aunque es el más ampliamente reconocido, el estándar ANSI / ISO no es el único estándar para SQL. X/OPEN , un grupo de vendedores europeos, han adoptado también SQL como parte de su grupo de estándares para un entorno de aplicaciones portables basado en el sistema operativo UNIX. Los estándares X/OPEN juegan un papel importante en el mercado informático europeo, donde la portabilidad entre sistemas informáticos de diferentes vendedores es una cuestión esencial. Desgraciadamente, el estándar X/OPEN difiere del estándar ANSI/ISO en varios aspectos.

CARATERÍSTICAS Y BENEFICOS DEL SQL

El SQL es un lenguaje fácil de entender y una herramienta completa para gestionar datos. He aquí algunas de las principales características y beneficios del SQL:



  • Independencia de los fabricantes. El SQL es ofertado por todos los principales vendedores de DBMS, y ningún producto nuevo de bases de datos puede tener éxito sin el soporte del SQL. Una base de datos basada en SQL y los programas que la utilizan pueden transferirse de un DBMS específico a otro DBMS de itro fabricante con mínimo esfuerzo de conversión y y poco reentrenamiento del personal.

  • Portabilidad a través de sistemas informáticos. Los fabricantes de DBMS ofertan sus productos sobre sistemas informáticos que van desde computadores personales y estaciones de trabajo hasta redes de área local. minicomputadoras y maxicomputadoras. Las aplicaciones basadas en SQL que comienzan en sistemas monousuarios pueden ser transferidas a sistemas mayores cuando éstas crecen. Los datos procedentes de bases de datos corporativas basadas en SQL pueden ser extraídas y remitidas a bases de datos departamentales y personales.

  • Estándares SQL. La ANSI y la ISO han publicado un estándar oficial SQL que se ha convertido también el estándar FIPS, lo que le convierte en un requerimiento esencial para los grandes contratos informáticos. En Europa, X/OPEN, ha añadido al SQL también estándar para acceso a bases de datos. Estos estándares sirven como sello oficial de aprobación para el SQL y han acelerado su aceptación en el mundo.

  • Fundamento Relacional. El SQL es el lenguaje para bases de datos relacionales, y se ha popularizado juntamente con el modelo de base de datos relacional. La estructura tabular, de filas y columnas de una base de datos relacional, es intuitiva para los usuarios, y hace que el lenguaje SQL se mantenga simple y fácil de entender.

  • Estructura de alto nivel en inglés. Las sentencias en SQL parecen sencillas frases en inglés, lo que lo hace fácil de aprender y entender. Esto es en parte debido a que las sentencias del SQL describen los datos a recuperar, en lugar de especificar como hallarlos.

  • Consultas interactivas ad hoc. El SQL es un lenguaje de consulta interactivo que proporciona a los usuarios acceso ad hoc a los datos almacenados. Utilizando el SQL interactivamente, un usuario puede obtener respuesta incluso a cuestiones complejas en minutos o segundos. Debido a la potencia de consulta ad hoc del SQL, los datos son más accesibles y pueden ser utilizados para ayudar a una organización a tomar decisiones, mejores, rápidas y más informadas.

  • Acceso a la base de datos mediante programas. El SQL es también un lenguaje de bases de datos utilizado por los programadores para escribir aplicaciones que acceden a una base de datos. Las mismas sentencias SQL que se utilizan para el acceso interactivo (Modo Consola) y programado (A través de programas anfitriones o macros), de modo que las partes de código asociadas con el acceso o uso de la base de datos de un programa pueden ser comprobadas primero en SQL interactivo y luego insertadas dentro del código del programa desarrollado en el lenguaje anfitrión.

  • Vistas múltiples de datos. Utilizando SQL, el creador de una base de datos puede dar a diferentes usuarios de la base de datos vistas diferentes de su estructura y contenidos. Además, los datos procedentes de diferentes partes de la base de datos pueden combinarse y presentarse al usuario como una simple fila / columna de una tabla. Las vistas SQL pueden ser utilizadas para mejorar la seguridad de una base de datos y para acomodarla a las necesidades particulares de los usuarios individuales.

  • Lenguaje completo de bases de datos. La potencia del SQL va más allá de la recuperación de datos. El SQL proporciona un lenguaje complejo y consistente para crear una base de datos, gestionar su seguridad, actualizar sus contenidos, recuperar los datos y compartirlos entre muchos usuarios concurrentes.

  • Definición dinámica de datos. Utilizando SQL la estructura de una base de datos puede ser modificada y ampliada dinámicamente, incluso mientras los usuarios están accediendo a los contenidos a la base de datos. El SQL proporciona de este modo máxima flexibilidad, permitiendo que una base de datos se adapte a exigencias cambiantes mientras continúan sin ser interrumpidas las aplicaciones en línea.

  • Arquitectura Cliente / Servidor. El SQL es un vehículo natural para implementar aplicaciones utilizando una arquitectura cliente / servidor distribuida. En este papel, el SQL sirve como enlace entre los sistemas informáticos frontales (front – end) optimizados para la interacción con el usuario y los otros de apoyo (back end) especializados para gestión e bases de datos, permitiendo que cada sistema rinda lo mejor posibles.

OPTIMIZACIÓN


Como suele ser común en los lenguajes 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 SMBD, 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 hace más lenta 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.

Lenguaje de definición de datos (DDL)


El lenguaje de definición de datos, en inglés Data Definition Language (DDL), es el que se encarga de la modificación de la estructura de los objetos de la base de datos. Existen tres operaciones básicas: CREATE, ALTER y DROP.

CREATE

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. CREATE TABLE TABLA_NOMBRE

ALTER

Este comando permite modificar la estructura de un objeto. Se pueden agregar/quitar campos a una tabla, modificar el tipo de un campo, agregar/quitar índices a una tabla, modificar un trigger, etc. ALTER TABLE TABLA NOMBRE

DROP

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_NOMBRE 1)

TRUNCATE

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. TRUNCATE TABLE TABLA_NOMBRE

Lenguaje de manipulación de datos (DML)


El lenguaje de manipulación de datos, en inglés Data Manipulation Language (DML), es el que se encarga de la modificación los datos contenidos en las tablas de la base de datos. Existen tres operaciones básicas: INSERT, UPDATE, DELETE y SELECT.

INSERT

Este comando permite añadir uno o más registros a una o más tablas dentro de la base de datos. INSERT INTO tabla (columna1,[columna2,…]) VALUES (valor1, [valor2,…])

UPDATE

Este comando permite actualizar registros ya existentes en una o más tablas pertenecientes a una base de datos.

DELETE

Este comando permite eliminar uno o más registros en una o más tablas pertenecientes a una base de datos.

SELECT

Este comando no modifica ni cambia el estado de los registros existentes. El SELECT permite extraer información de las tablas de las bases de datos en forma de copia, y manipular esta información extraída para presentarla de la manera en que haya sido requerida.

Lenguaje de control de datos (DCL)

Parte del lenguaje SQL que se encarga de la seguridad y acceso a los datos dentro de una base de datos. Sirve sobre todo cuando se trabaja en un entorno multiusuario y de red, donde es muy importante la protección y la seguridad de los datos y la compartición de datos por parte de usuarios. Los comandos más utilizados son: REVOKE, GRANT y DENY.

REVOKE (REVOQUE)

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

GRANT (CONCESION)

Este comando permite modificar la estructura de un objeto. Se pueden agregar/quitar campos a una tabla, modificar el tipo de un campo, agregar/quitar índices a una tabla, modificar un trigger, etc.

DENY (NIEGUE)

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.

Un Lenguaje de Control de Datos (DCL por sus siglas en inglés: Data Control Language) es un lenguaje proporcionado por el Sistema de Gestión de Base de Datos que incluye una serie de comandos SQL que permiten al administrador controlar el acceso a los datos contenidos en la Base de Datos.

Algunos ejemplos de comandos incluidos en el DCL son los siguientes:

  • GRANT: Permite dar permisos a uno o varios usuarios o roles para realizar tareas determinadas.

  • REVOKE: Permite eliminar permisos que previamente se han concedido con GRANT.

Las tareas sobre las que se pueden conceder o denegar permisos son las siguientes:

  • CONNECT

  • SELECT

  • INSERT

  • UPDATE

  • DELETE

  • USAGE

En Oracle, la ejecución de un comando DCL implica un COMMIT de forma implícita. Sin embargo, en PostgreSQL, la ejecución de un comando DCL forma parte de una transacción, por lo que puede ser deshecha mediante el comando ROLLBACK.

El DCL (Data Control Language) se compone de instrucciones que permiten:

  • Ejercer un control sobre los datos tal como la asignación de privilegios de acceso a los datos (GRANT/REVOKE).

  • La gestión de transacciones (COMMIT/ROLLBACK).

Transacción Control Language (TCL): El conjunto de sentencias SQL que se deben ejecutar para el éxito o fracasar en su conjunto se llama como Transacción. En conjunto de sentencias SQL si al menos una sentencia falla, la base de datos se debe restaurar en un estado en el que estaba antes de ejecutar la primera instrucción de un conjunto. SQL proporciona comandos para gestionar cada transacción siguiente:

  • COMMIT Para guardar el estado de base de datos después de completar la transacción.

  • ROLLBACK Para restaurar el estado de base de datos, en un estado antes del inicio de la operación.

Una transacción se puede definir como un conjunto de acciones que se tienen que realizar todas o ninguna para preservar la integridad de la base de datos.
Por ejemplo supongamos que tenemos una base de datos para las reservas de avión. Cuando un usuario pide reservar una plaza en un determinado vuelo, el sistema tiene que comprobar que queden plazas libres, si quedan plazas reservará la que quiera el usuario generando un nuevo billete y marcando la plaza como ocupada. Aquí tenemos un proceso que consta de dos operaciones de actualización de la base de datos (crear una nueva fila en la tabla de billetes y actualizar la plaza reservada en el vuelo, poniéndola como ocupada) estas dos operaciones se tienen que ejecutar o todas o ninguna, si después de crear el billete no se actualiza la plaza porque se cae el sistema, por ejemplo, la base de datos quedaría en un estado inconsistente ya que la plaza constaría como libre cuando realmente habría un billete emitido para esta plaza. En este caso el sistema tiene el mecanismo de transacciones para evitar este error. Las operaciones se incluyen las dos en una misma transacción y así el sistema sabe que las tiene que ejecutar las dos, si por lo que sea no se pueden ejecutar las dos, se encarga de deshacer los cambios que se hubiesen producido para no ejecutar ninguna.

Las instrucciones que gestionan las autorizaciones serán utilizadas normalmente por el administrador mientras que las otras, referentes a proceso de transacciones serán utilizadas también por losprogramadores.

No todos los sistemas disponen de ellas.

A continuación se describen tres aspectos importantes dentro del modo de trabajo de los DBMS.


MODO GRÁFICO. La mayoría de los DBMS actuales que se consiguen en el mercado tienen un ambiente de trabajo gráfico, que no utiliza ningún tipo de código, sino que más bien permite la definición de bases de datos y tablas, así como también de la manipulación de los datos de la mismas a través del uso de ventanas gráficas asistidas por herramientas tipo wizard. Esta forma gráfica de trabajo difiere en cada DBMS, cada quien lo diseña y desarrolla de la manera que más crea conveniente.
MODO CONSOLA. Actualmente todos los DBMS manejan al SQL como el lenguaje por excelencia de acceso a los datos. Los DBMS permiten la utilización de editores muy sencillos que permiten trabajar bajo código SQL en modo consola, y así interactuar directamente con una base de datos. Todas las operaciones que se pueden hacer con los asistentes gráficos de trabajos mencionados en el punto anterior también pueden hacerse directamente trabajando con el código SQL. Aquí lo que sucede es que el entorno gráfico funciona como una especie de intermediario entre el usuario y el SQL, pero después de ejecutadas las acciones en el entorno gráfico se genera y ejecuta de manera oculta para el usuario el código SQL equivalente que es quien en verdad acciona el motor del DBMS. Lo que si es cierto es que todos los DBMS concuerdan por lo menos en un 95 % con un mismo código SQL. Cuando se trabaja en modo consola se generan líneas de código que son conocidas como SCRIPTS.

MODO PROGRAMADO. Esta forma de trabajo ocurre cuando dentro de un programa anfitrión en el cual se ha desarrollado una aplicación de tipo HMI se insertan líneas de código SQL para acceder a los datos que se encuentran en una base de datos. Claro esta que esto se hace siguiendo las reglas de sintaxis previas del lenguaje anfitrión y cumpliendo con una serie de aspectos que deben ser tomados en cuenta, como por ejemplo, lo que tiene que ver con el enlace que en primera instancia se debe hacer con la base de datos desde el mismo lenguaje anfitrión, el cual se hace, por lo general, introduciendo unas líneas de código dentro del programa anfitrión con la ruta de conexión con la base de datos y en donde también se debe cumplir con una sintaxis preestablecida.

Sistemas de gestión de base de datos


Los sistemas de gestión de base de datos con soporte SQL más utilizados son, por orden alfabético:

  • DB2

  • Firebird

  • Informix

  • Interbase

  • MySQL

  • Oracle

  • PostgreSQL

  • SQL Server

  • Sybase ASE

Y entre los de menos envergadura el ACCESS y el BASE.



Página /8

P r o f . L c d o Luis Peña.




La base de datos está protegida por derechos de autor ©bazica.org 2016
enviar mensaje

    Página principal