Download Aplicacion del SQL

Document related concepts

SQL wikipedia , lookup

Open Database Connectivity wikipedia , lookup

Lenguaje de definición de datos wikipedia , lookup

Microsoft SQL Server wikipedia , lookup

SQL:2008 wikipedia , lookup

Transcript
[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.
P r o f . L c d o Luis Peña.
Página 1/8
[UNEFA – TSU EN ANALISIS Y DISEÑO DE SISTEMAS, 3ER. SEMESTRE]
Base de Datos
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.
P r o f . L c d o Luis Peña.
Página 2/8
[UNEFA – TSU EN ANALISIS Y DISEÑO DE SISTEMAS, 3ER. SEMESTRE]
Base de Datos
A continuación se presenta un resumen de los eventos que han dado píe y evolución al SQL.
AÑO
1970
1974
1974
1978
1979
1981
1981
1982
1983
1986
1986
1987
1988
1988
1989
1989
1992
1999
2003
2006
ACONTECIMIENTO
Codd define el modelo de bases de datos relacional.
Comienza el proyecto System/R de IBM.
Primer artículo que describe al lenguaje SEQUEL.
Test de clientes del System/R
Oracle introduce el primer RDBMS comercial.
Relational Technology introduce al INGRES.
IBM anuncia el SQL/DS.
ANSI forma el comité de estándares SQL.
IBM anuncia DB2.
Se ratifica el estándar ANSI SQL. (SQL 86). SQL 1.
Sybase introduce un RDBMS para el procesamiento de transacciones.
Se ratifica el estándar ISO SQL. (SQL 86).
Ashton Tate y Microsoft anuncian SQL Server para OS / 2.
IBM anuncia la versión 2 de DB2.
Primera entrega de servidores de bases de datos SQL para OS/2.
Revisión menor del SQL (SQL 89).
Revisión mayor del SQL (SQL 92). SQL 2
Se agregaron expresiones regulares, consultas recursivas (para relaciones jerárquicas), triggers y algunas características
orientadas a objetos. SQL 3.
Se introducen algunas características del XML, cambios en las funciones, estandarización del objeto SEQUENCE y de las
columnas autonumericas.
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 Language («lenguaje 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
P r o f . L c d o Luis Peña.
Página 3/8
[UNEFA – TSU EN ANALISIS Y DISEÑO DE SISTEMAS, 3ER. SEMESTRE]
Base de Datos
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
P r o f . L c d o Luis Peña.
Página 4/8
[UNEFA – TSU EN ANALISIS Y DISEÑO DE SISTEMAS, 3ER. SEMESTRE]









Base de Datos
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.
P r o f . L c d o Luis Peña.
Página 5/8
[UNEFA – TSU EN ANALISIS Y DISEÑO DE SISTEMAS, 3ER. SEMESTRE]
Base de Datos
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
ALTER
DROP
TRUNCATE
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
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
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)
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
UPDATE
DELETE
SELECT
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,…])
Este comando permite actualizar registros ya existentes en una o más tablas pertenecientes a una base de datos.
Este comando permite eliminar uno o más registros en una o más tablas pertenecientes a una base de datos.
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)
GRANT (CONCESION)
DENY (NIEGUE)
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
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.
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.
P r o f . L c d o Luis Peña.
Página 6/8
[UNEFA – TSU EN ANALISIS Y DISEÑO DE SISTEMAS, 3ER. SEMESTRE]
Base de Datos
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
P r o f . L c d o Luis Peña.
Página 7/8
[UNEFA – TSU EN ANALISIS Y DISEÑO DE SISTEMAS, 3ER. SEMESTRE]
Base de Datos
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 r o f . L c d o Luis Peña.
Página 8/8