Introducción
CURSOS EN LÍNEA
VALERIA RAMÍREZ RODRÍGUEZ REBECA RODRÍGUEZ RAMÍREZ
Valeria Ramírez Rodríguez Rebeca Rodríguez Ramírez
Introducción
Introducción En la actualidad los sistemas computacionales han evolucionado de tal manera que prácticamente todos ellos cuentan con expendio de información almacenada en la computadora, la cual tiene como fin proveer de información útil, verdadera, segura, integra y ordenada a dicho sistema según sus objetivos. Es raro hoy en día encontrar un sistema que no pueda conectarse a una base de datos. Para garantizar que la información pueda ser almacenada, consultada y que cumpla con los requerimientos pedidos bajo el paradigma relacional de manera que no pierda su seguridad, integridad y consistencia nos apoyaremos de sistemas Manejadores de Bases de Datos. Entre la diversidad de estos sistemas contamos con un sinfín de posibilidades, sin embargo todos ellos cuentan con lenguajes capaces de manipular, ir contrayendo y mostrar la información, entre unos y otros llegan a variar pero, existe un lenguaje básico y universal entre ellos conocido con el nombre de SQL.
Antecendentes Structured Query Language (Lenguaje estructurado de consultas) es un lenguaje creado para garantizar todas las reglas y permitir el manejo de la información en un sistema de bases de datos relacional. Dicho lenguaje es, como ya hemos comentado, un estándar para los Manejadores de Bases de Datos que permite administrar la información. La manera de ejecución, a diferencia de otros lenguajes, es no procedural o declarativo. Esto se debe a que no se necesita crear un procedimiento para que se ejecuten las instrucciones, como pasa con el lenguaje C o Basic , en este caso simplemente se cuenta con sentencias declarativas que operan dependiendo de la tarea que se solicite para el sistema Manejador de Bases de Datos.
Figura 1. Algunos Manejadores de Bases de Datos
Introducción
Valeria Ramírez Rodríguez Rebeca Rodríguez Ramírez
SQL fue desarrollado por los laboratorios IBM en los 70’s, basado en Edgar Frank Codd quien
propuso el modelo relacional. Para 1986 la ANSI (The American National Standard Institute) encargada de realizar y homogeneizar estándares computacionales sacó la primera versión estandarizada de dicho lenguaje SQL-86. En el Lenguaje Estructurado de Consultas se pueden realizar varias operaciones la cuales se agrupan en tres grandes grupos de lenguajes los que en su conjunto forman SQL. Dichos lenguajes son:
Lenguaje de definición de datos DDL (Data Definition Language): Este lenguaje nos permite crear las estructuras básicas para poder guardar posteriormente la información es decir crear o eliminar (tablas, vistas, índices). Los comandos asociados a este lenguaje son:
CREATE: crear un objeto
DROP: eliminar un objeto
ALTER: modificar un objeto
Lenguaje de manipulación de datos DML (Data Manipulation Language): Este lenguaje nos permite manipular la información, es decir consultar, guardar o eliminar la información. Los comandos asociados a este lenguaje son:
SELECT: selecciona datos dentro de la base de datos
INSERT: permite agregar datos
UPDATE: permite actualizar datos
DELETE: permite eliminar datos
Lenguaje para administración de seguridad CL (Control Language): Finalmente este lenguaje se encarga de proteger la información permitiendo definiciones de usuarios entre otras cosas. Los comandos asociados a este lenguaje son:
GRANT: Otorga privilegios a usuarios de la base de datos
REVOKE: revoca privilegios a los usuarios de la base de datos
Valeria Ramírez Rodríguez Rebeca Rodríguez Ramírez
Introducción
Figura 2. Componentes de los lenguajes que integran SQL
Finalmente podemos decir que SQL Estándar puede operar de dos modos principales:
Interactivo. El usuario opera directamente el lenguaje desde una terminal, se ejecuta y obtiene una salida inmediata. Incrustado. Los comandos SQL se colocan dentro de un programa escrito en algún lenguaje de programación y se ejecutarán cuando el programa lo requiera.
Bases de datos Una base de datos se define como un conjunto de datos que se relacionan entre sí con un objetivo común. Estos pueden ser los datos referentes a la administración de una escuela, un trabajo, etc. Existen varios tipos de bases de datos, sin embargo para este curso, nos centraremos en las bases de datos relacionales.
Valeria Ramírez Rodríguez Rebeca Rodríguez Ramírez
Introducción
Modelo de datos Relacional Una base de datos relacional se define como una colección estructurada de datos relacionados entre sí con un objetivo común, las cuales representan un modelo de las relaciones existentes en el mundo real mediante el uso de tablas, y llaves que permiten interrelacionar los datos entre sí mediante el uso de asociaciones. Los elementos que conforman este modelo son los siguientes:
Relación Entidades o Tablas
Figura 3. Esquema de una base de datos relacional.
Los elementos de una base de datos relacional son:
Tabla. Conforman la estructura de la base de datos. Representan cada una de las entidades de las cuales es necesario conocer cierto tipo de información la cual debe estar contenida la base de datos. Las entidades pueden ser tangibles (empleado, alumno, producto o intangibles (un servicio, evento) Cada tabla debe tener un nombre único dentro de la base de datos, una tabla cuenta con llaves primarias, foráneas, atributos y tuplas.
Llaves. Son campos dentro de las tablas que nos permiten relacionar o asociar una tabla dentro de la base de datos con las otras también contenidas. Existen varios tipos de Llaves:
Llave Primaria. Se denomina llave (clave) al atributo que permite identificar de manera única cada registro de la relación. Es decir, cuando nuestra estructura de base de datos ya tenga datos almacenados, cada entidad que se capture, será llamada registro, este registro se representará como una línea o fila dentro de datos en la tabla. Los datos dentro del campo elegido para ser llave primaria y deben ser únicos e irrepetibles.
Valeria Ramírez Rodríguez Rebeca Rodríguez Ramírez
Introducción
Llave extranjera o foránea. Una llave foránea (FK) tiene la característica de ser llave primaria en otra tabla y al mismo tiempo forma parte de otra tabla como atributo. Asociaciones o relaciones. Una asociación es la unión o enlace de dos o más entidades, las cuales se encuentran dentro del alcance del sistema, y por ello el sistema debe mantener, correlacionar u desplegar información. Generalmente las asociaciones requieren de al menos dos entidades (tablas). Existen 3 tipos de asociaciones:
Uno a uno: por cada elemento de una entidad 1 hay otro de la entidad 2 Uno a muchos: por cada elemento de la entidad 1 hay uno o más que se relacionan directamente de la unidad 2. Muchos a muchos: por cada elemento de la entidad 1 hay varios elementos de la unidad 2 relacionados al mismo elemento de la unidad 1.
Figura 4. Estructura de una tabla.
El modelo relacional debe garantizar que las reglas de negocio se cumplan apoyándose de varias restricciones. Para facilitar dicho objetivo y precisión en la manipulación de los datos el modelo cuenta con:
Restricciones de dominio.
Integridad de la entidad.
Integridad referencial.
Restricciones de dominio El dominio es el conjunto de valores que pueden ser asignados a un atributo, todos los valores en una columna de una relación deben ser tomados del mismo dominio. En el dominio se encuentra implícito significado, tipo de dato, tamaño y rango de valores válidos. Por ejemplo, si
Introducción
Valeria Ramírez Rodríguez Rebeca Rodríguez Ramírez
el campo es un teléfono, el manejador de la base de datos no debe permitir letras en dicho campo.
La regla de integridad Esta regla diseñada para garantizar que toda relación tenga una llave primaria y que sus valores sean válidos. Garantiza que el contenido de la llave primaria sea Not Null es decir, no vacío. Hay que aclarar que Null, no es espacio en blanco ni cero.
La integridad referencial Es la regla que mantiene consistencia entre los renglones de dos relaciones, establece que si existe una llave foránea en una relación, el valor de esta deberá coincidir con un valor de la llave primaria en la relación o ser NULL. Ejemplo:
Importancia Dada la gran importancia que tiene SQL al ser el lenguaje para consultar la información de las bases de datos, se vuelve igualmente importante conocer y aplicar un estándar. Cuando las distintas compañías que desarrollan manejadores de bases de datos comienzan a implementar diferentes características en el lenguaje, con la finalidad de dar mayores prestaciones a sus usuarios y estos cambios establecen diferencias con la versión oficial, comienzan también los problemas, sobre todo para los desarrolladores.
Valeria Ramírez Rodríguez Rebeca Rodríguez Ramírez
Introducción
Figura 5. Incompatibilidad entre los distintos manejadores de bases de datos.
Por esta razón es necesario que exista un estándar que sea la referencia de lo que es el lenguaje y que sea la guía para que todos los manejadores de bases de datos. La idea de desarrollar un estándar es reducir las variaciones de un sistema a otro para quedarse únicamente con más estable o mejor. Se definen conceptos, procesos y normas que evitan errores de identificación y permiten que la portabilidad; haciendo posible pasar de un sistema a otro con cambios nulos o mínimos. En la realidad requiere un trabajo mayor, pero es posible el cambio.
Figura 6. Portada del estándar de SQL en su versión correspondiente a 2011.
Un estándar es importante porque proporciona las reglas para obtener:
Mayor portabilidad: una aplicación puede ser desarrollada para un manejador de bases de datos y podría correr en otros sin muchos cambios. Mejora el intercambio: resulta más fácil desarrollar aplicaciones que puedan acceder a diferentes bases de datos, porque todas las bases de datos hablan el mismo lenguaje.
Valeria Ramírez Rodríguez Rebeca Rodríguez Ramírez
Introducción
ISOP/IEC 9075 Después de que surgió SQL se convirtió en el lenguaje de los sistemas de gestión de bases de datos relacionales y ante las diversas versiones que se manejaban, fue necesario definir un estándar y fue en 1986 que se publicó la primera versión del estándar de este lenguaje, siendo conocido como SQL-86 o SQL1. El primer estándar no cubría todas las necesidades de los desarrolladores e incluía funcionalidades que no fueron aceptadas por todos y que tuvieron que suprimirse en la siguiente versión. En 1992, se lanzó un nuevo estándar ampliado y revisado llamado SQL-92 o mejor conocido como SQL2. Poco después este estándar fue adoptado por ISO (International Organization for Standardization ) y con la IEC (International Electrotechnical Commission ) desarrollaron las siguientes versiones.
Figura 7. Logos del ISO y la IEC.
El nombre oficial es ISO/IEC 9075 standard: Information technology - Database languages - SQL. Cada vez se ha intentado mejorarlo para satisfacer las necesidades de desarrolladores y las propias del mercado, por lo que se han publicado nuevos estándares:
SQL-86 o SQL1
corresponde a la versión de 1986 publicada por ANSI.
SQL-89
corresponde a una revisión menor de ANSI.
SQL-92 o SQL2
corresponde a una revisión mayor.
SQL:1999 corresponde al
ISO/IEC 9075:1999.
SQL:2003
ISO/IEC 9075:2003.
SQL:2006
ISO/IEC 9075:2006.
SQL:2008
ISO/IEC 9075:2008.
SQL:2011
ISO/IEC 9075:2011.
Actualmente el estándar se divide en varias partes:
Valeria Ramírez Rodríguez Rebeca Rodríguez Ramírez
Introducción
ISO / IEC 9075-1 Framework (SQL/Framework)
ISO / IEC 9075-2 Foundation (SQL/Foundation)
ISO / IEC 9075-3 Call-Level Interface (SQL/CLI)
ISO / IEC 9075-4 Persistent Stored Modules (SQL/PSM)
ISO / IEC 9075-9 Management of External Data (SQL/MED)
ISO / IEC 9075-10 Object Language Bindings (SQL/OLB)
ISO / IEC 9075-11 Information and Definition Schemas (SQL/Schemata)
ISO / IEC 9075-13 SQL Routines and Types Using the Java Programming Language (SQL/JRT) ISO / IEC 9075-14 XML-Related Specifications (SQL/XML)
Figura 1. Una parte del contenido del estándar 2011.
El estándar está disponible para su compra en el sitio de ISO.