EL LENGUAJE SQL Y LOS SISTEMAS DE GESTIÓN DE
BASES DE DATOS.
El lenguaje S.Q.L. S.Q.L. significa lenguaje estructurado de consulta (Structured Query Language). Es un lenguaje estándar de cuarta generación que se utiliza para definir, gestionar y manipular la información contenida en una Base de Datos Relacional. Se trata de un lenguaje definido por el estándar ISO/ANSI SQL que utilizan los principales fabricantes de Sistemas de Gestión de Bases de Datos Relacionales. En los lenguajes procedimentales de tercera generación se deben especificar todos los pasos que hay que dar para conseguir el resultado. Sin embargo en SQL tan solo deberemos indicar al SGDB qué es lo que queremos obtener, y el sistema decidirá cómo obtenerlo. Es un lenguaje sencillo y potente que se emplea para la gestión de la base de datos a distintos niveles de utilización: usuarios, programadores y administradores de la base de datos. ¿Qué es una Base de Datos? Una base de datos está constituida por un conjunto de información relevante para una empresa o entidad y los procedimientos para almacenar, controlar, gestionar y administrar esa información. Además, la información contenida en una base de datos cumple una serie de requisitos o características: Los datos están interrelacionados, sin redundancias innecesarias. Los datos son independientes de los programas que los usan. Se emplean métodos determinados para incluir datos nuevos y para borrar, modificar o recuperar los datos almacenados. ¿Qué es un Sistema de Gestión de Bases de Datos? Lenguaje SQL Página 4 Un Sistema de Gestión de Bases de Datos (SGBD) es una aplicación comercial que permite construir y gestionar bases de datos, proporcionando al usuario de la Base de Datos las herramientas necesarias para realizar, al menos, las siguientes tareas: • Definir las estructuras de los datos. • Manipular los datos. Es decir, insertar nuevos datos, así como modificar, borrar y consultar los datos existentes. • Mantener la integridad de la información. • Proporcionar control de la privacidad y seguridad de los datos en la Base de Datos, permitiendo sólo el acceso a los mismos a los usuarios autorizados. Nota.- La herramienta más difundida para realizar todas estas tareas es el lenguaje SQL. Algunos de los productos comerciales más difundidos son: • ORACLE de Oracle Corporation. • DB2 de I.B.M. Corporation • SYBASE de Sybase Inc. • Informix de Informix Software Inc. • SQL Server de Microsoft Corporation. Tipos de Bases de Datos. Existen básicamente tres tipos de bases de datos: • Bases de Datos Jerárquicas. • Bases de Datos en Red. • Bases de Datos Relacionales. Éstas últimas son, con diferencia, las más difundidas y utilizadas en la actualidad debido a su potencia, versatilidad y facilidad de utilización. Se basan en el Modelo Relacional cuyas principales características veremos a continuación. Para gestionarlas se utiliza el lenguaje SQL. El Modelo de Datos Relacional. Componentes. El Modelo Relacional fue enunciado por E.F. Codd. Sus principales componentes son: Lenguaje SQL Página 5 Entidad. Es un objeto acerca del cual se recoge información relevante. Ejemplo de entidades: EMPLEADO, CLIENTE, PRODUCTO. Atributo. Es una propiedad o característica de la entidad. Por ejemplo pueden ser atributos de la entidad PERSONA los siguientes: DNI, NOMBRE, EDAD, ... Tabla. Son los objetos de la Base de Datos donde se almacenan los datos. Ejemplo de tabla de empleados: EMP_NO APELLID O OFICIO DIRECTO R FECHA_A L SALARIO COMISIO N DEP_NO 7499 ALONSO VENDEDOR 7698 20/02/8 1 140000 40000 30 7521 LOPEZ EMPLEADO 7782 08/05/8 1 135000 10 7654 MARTIN VENDEDOR 7698 28/09/8 1 150000 160000 30 7698 GARRIDO DIRECTOR 7839 01/05/8 1 385000 30 7782 MARTINE Z DIRECTOR 7839 09/06/8 1 245000 10 7839 REY PRESIDENT E 17/11/8 1 600000 10 7844 CALVO VENDEDOR 7698 08/09/8 1 180000 0 30 7876 GIL ANALISTA 7782 06/05/8 2 335000 20 7900 JIMENEZ EMPLEADO 7782 24/03/8 3 140000 20 Normalmente una tabla representa una entidad aunque también puede representar una asociación de entidades. Las tablas están formadas por filas y columnas: • Cada fila representa una ocurrencia de la entidad: Lenguaje SQL Página 6 Ejemplo: Un empleado si es una tabla de empleados, un departamento si es una tabla de departamentos, un cliente si se trata de una tabla de clientes, o un producto si es una tabla de productos. • Cada columna: Representa un atributo o característica de la entidad. Tiene un nombre y puede tomar por un conjunto de valores. Ejemplo: La tabla de empleados puede tener como columnas o atributos: numero de empleado, nombre, fecha de alta, salario,... Ejemplo de tabla de departamentos: DEP_NO DNOMBRE LOCALIDAD Fila 1 -> 10 CONTABILIDAD BARCELONA Fila 2 -> 20 INVESTIGACION VALENCIA Fila 3 -> 30 VENTAS MADRID Fila 4 -> 40 PRODUCCION SEVILLA Columna 1 Columna 2 Columna 3 A lo largo de este curso utilizaremos, además de las tablas de empleados y departamentos, las tablas de clientes, productos y pedidos cuyo contenido es el siguiente: TABLA DE CLIENTES: CLIENTE_NO NOMBRE LOCALIDAD VENDEDOR_NO DEBE HABER LIMITE_CREDITO ---------- ------------------------- -------------- ----------- ---------- ---------- -------------- 101 DISTRIBUCIONES GOMEZ MADRID 7499 0 0 500000 102 LOGITRONICA S.L BARCELONA 7654 0 0 500000 103 INDUSTRIAS LACTEAS S.A. LAS ROZAS 7844 0 0 1000000 104 TALLERES ESTESO S.A. SEVILLA 7654 0 0 500000 105 EDICIONES SANZ BARCELONA 7499 0 0 500000 106 SIGNOLOGIC S.A. MADRID 7654 0 0 500000 107 MARTIN Y ASOCIADOS S.L. ARAVACA 7844 0 0 1000000 108 MANUFACTURAS ALI S.A. SEVILLA 7654 0 0 500000 TABLA DE PRODUCTOS PRODUCTO_NO DESCRIPCION PRECIO_ACTUAL STOCK_DISPONIBLE ----------- ------------------------------ ------------- ---------------- 10 MESA DESPACHO MOD. GAVIOTA 55000 50 20 SILLA DIRECTOR MOD. BUFALO 67000 25 30 ARMARIO NOGAL DOS PUERTAS 46000 20 40 MESA MODELO UNIÓN 34000 15 50 ARCHIVADOR CEREZO 105000 20 60 CAJA SEGURIDAD MOD B222 28000 15 70 DESTRUCTORA DE PAPEL A3 45000 25 80 MODULO ORDENADOR MOD. ERGOS 55000 25 TABLA DE PEDIDOS PEDIDO_NO PRODUCTO_NO CLIENTE_NO UNIDADES FECHA_PE ---------- ----------- ---------- ---------- -------- 1000 20 103 3 06/10/99 1001 50 106 2 06/10/99 1002 10 101 4 07/10/99 1003 20 105 4 16/10/99 Lenguaje SQL Página 7 1004 40 106 8 20/10/99 1005 30 105 2 20/10/99 1006 70 103 3 03/11/99 1007 50 101 2 06/11/99 1008 10 106 6 16/11/99 1009 20 105 2 26/11/99 1010 40 102 3 08/12/99 1011 30 106 2 15/12/99 1012 10 105 3 06/12/99 1013 30 106 2 06/12/99 1014 20 101 4 07/01/00 1015 70 105 4 16/01/00 1016 30 106 7 18/01/00 1017 20 105 6 20/01/00 Relación. Conexión que puede haber entre dos entidades. Por ejemplo: Cliente-> compra-> Producto Empleado-> pertenece a -> Departamento En nuestras tablas podemos observar las siguientes relaciones: - La tabla EMPLEADOS está relacionada con la tabla DEPARTAMENTOS através de la columna DEP_NO (numero de departamento) que se encuentra en ambas tablas. De esta forma podemos saber, por ejemplo que el empleado GIL pertenece al departamento 20. Y si vamos a la tabla departamentos comprobaremos que el departamento 20 es INVESTIGACION y se encuentra en VALENCIA. Por tanto, el empleado GIL pertenece al departamento de INVESTIGACION que está en VALENCIA. - La tabla EMPLEADOS también se relaciona consigo misma mediante las columnas EMP_NO y DIRECTOR. Cada empleado tiene un número de empleado (EMP_NO) y suele tener también un DIRECTOR. Esta última columna contiene un número de empleado que, suponemos, es el director del empleado en cuestión. Así podemos saber que REY es el director de GARRIDO y de MARTINEZ; y que el director de JIMENEZ es MARTINEZ, etcétera. - La tabla PEDIDOS se relaciona con PRODUCTOS mediante la columna PRODUCTO_NO y con CLIENTES mediante la columna CLIENTE_NO. De esta forma sabemos que el pedido número 1000 lo ha realizado el cliente INDUSTRIAS LACTEAS S.A. y que el producto solicitado es SILLA DIRECTOR MOD. BUFALO a un precio de 67000, etcétera. - La tabla CLIENTES se relaciona con EMPLEADOS por medio de la columna VENDEDOR_NO de la primera que hace referencia a la columna EMPLEADO_NO de la segunda. Así cada cliente tendrá asignado un vendedor. Lenguaje SQL Página 8 El SGBD velará porque todas las operaciones que se realicen respeten estas restricciones manteniendo así la integridad de la información. ¿ Qué podemos hacer con SQL? Todos los principales SGBDR incorporan un motor SQL en el Servidor de Base Datos, así como herramientas de cliente que permiten enviar comandos SQL para que sean procesadas por el motor del servidor. De esta forma, todas las tareas de gestión de la Base de Datos (BD) pueden realizarse utilizando sentencias SQL. Consultar datos de la Base de Datos. Insertar, modificar y borrar datos. Crear, modificar y borrar objetos de la Base de Datos. Controlar el acceso a la información. Garantizar la consistencia de los datos. Tipos de sentencias SQL. Entre los trabajos que se pueden realizar en una base de datos podemos distinguir dos tipos: definición y manipulación de datos. Por ello se distinguen dos tipos de sentencias SQL: • Sentencias de manipulación de datos. (Lenguaje de Manipulación de Datos DML). Se utilizan para: Recuperar información. (SELECT) Actualizar la información: Añadir filas (INSERT) Eliminar filas (DELETE) Modificar filas (UPDATE) • Sentencias de definición de datos. (Lenguaje de Definición de Datos DDL). Se utilizan para: - Crear objetos de base de datos (CREATE) - Eliminar objetos de base de datos (DROP) - Modificar objetos de base de datos (ALTER)
El lenguaje S.Q.L. S.Q.L. significa lenguaje estructurado de consulta (Structured Query Language). Es un lenguaje estándar de cuarta generación que se utiliza para definir, gestionar y manipular la información contenida en una Base de Datos Relacional. Se trata de un lenguaje definido por el estándar ISO/ANSI SQL que utilizan los principales fabricantes de Sistemas de Gestión de Bases de Datos Relacionales. En los lenguajes procedimentales de tercera generación se deben especificar todos los pasos que hay que dar para conseguir el resultado. Sin embargo en SQL tan solo deberemos indicar al SGDB qué es lo que queremos obtener, y el sistema decidirá cómo obtenerlo. Es un lenguaje sencillo y potente que se emplea para la gestión de la base de datos a distintos niveles de utilización: usuarios, programadores y administradores de la base de datos. ¿Qué es una Base de Datos? Una base de datos está constituida por un conjunto de información relevante para una empresa o entidad y los procedimientos para almacenar, controlar, gestionar y administrar esa información. Además, la información contenida en una base de datos cumple una serie de requisitos o características: Los datos están interrelacionados, sin redundancias innecesarias. Los datos son independientes de los programas que los usan. Se emplean métodos determinados para incluir datos nuevos y para borrar, modificar o recuperar los datos almacenados. ¿Qué es un Sistema de Gestión de Bases de Datos? Lenguaje SQL Página 4 Un Sistema de Gestión de Bases de Datos (SGBD) es una aplicación comercial que permite construir y gestionar bases de datos, proporcionando al usuario de la Base de Datos las herramientas necesarias para realizar, al menos, las siguientes tareas: • Definir las estructuras de los datos. • Manipular los datos. Es decir, insertar nuevos datos, así como modificar, borrar y consultar los datos existentes. • Mantener la integridad de la información. • Proporcionar control de la privacidad y seguridad de los datos en la Base de Datos, permitiendo sólo el acceso a los mismos a los usuarios autorizados. Nota.- La herramienta más difundida para realizar todas estas tareas es el lenguaje SQL. Algunos de los productos comerciales más difundidos son: • ORACLE de Oracle Corporation. • DB2 de I.B.M. Corporation • SYBASE de Sybase Inc. • Informix de Informix Software Inc. • SQL Server de Microsoft Corporation. Tipos de Bases de Datos. Existen básicamente tres tipos de bases de datos: • Bases de Datos Jerárquicas. • Bases de Datos en Red. • Bases de Datos Relacionales. Éstas últimas son, con diferencia, las más difundidas y utilizadas en la actualidad debido a su potencia, versatilidad y facilidad de utilización. Se basan en el Modelo Relacional cuyas principales características veremos a continuación. Para gestionarlas se utiliza el lenguaje SQL. El Modelo de Datos Relacional. Componentes. El Modelo Relacional fue enunciado por E.F. Codd. Sus principales componentes son: Lenguaje SQL Página 5 Entidad. Es un objeto acerca del cual se recoge información relevante. Ejemplo de entidades: EMPLEADO, CLIENTE, PRODUCTO. Atributo. Es una propiedad o característica de la entidad. Por ejemplo pueden ser atributos de la entidad PERSONA los siguientes: DNI, NOMBRE, EDAD, ... Tabla. Son los objetos de la Base de Datos donde se almacenan los datos. Ejemplo de tabla de empleados: EMP_NO APELLID O OFICIO DIRECTO R FECHA_A L SALARIO COMISIO N DEP_NO 7499 ALONSO VENDEDOR 7698 20/02/8 1 140000 40000 30 7521 LOPEZ EMPLEADO 7782 08/05/8 1 135000 10 7654 MARTIN VENDEDOR 7698 28/09/8 1 150000 160000 30 7698 GARRIDO DIRECTOR 7839 01/05/8 1 385000 30 7782 MARTINE Z DIRECTOR 7839 09/06/8 1 245000 10 7839 REY PRESIDENT E 17/11/8 1 600000 10 7844 CALVO VENDEDOR 7698 08/09/8 1 180000 0 30 7876 GIL ANALISTA 7782 06/05/8 2 335000 20 7900 JIMENEZ EMPLEADO 7782 24/03/8 3 140000 20 Normalmente una tabla representa una entidad aunque también puede representar una asociación de entidades. Las tablas están formadas por filas y columnas: • Cada fila representa una ocurrencia de la entidad: Lenguaje SQL Página 6 Ejemplo: Un empleado si es una tabla de empleados, un departamento si es una tabla de departamentos, un cliente si se trata de una tabla de clientes, o un producto si es una tabla de productos. • Cada columna: Representa un atributo o característica de la entidad. Tiene un nombre y puede tomar por un conjunto de valores. Ejemplo: La tabla de empleados puede tener como columnas o atributos: numero de empleado, nombre, fecha de alta, salario,... Ejemplo de tabla de departamentos: DEP_NO DNOMBRE LOCALIDAD Fila 1 -> 10 CONTABILIDAD BARCELONA Fila 2 -> 20 INVESTIGACION VALENCIA Fila 3 -> 30 VENTAS MADRID Fila 4 -> 40 PRODUCCION SEVILLA Columna 1 Columna 2 Columna 3 A lo largo de este curso utilizaremos, además de las tablas de empleados y departamentos, las tablas de clientes, productos y pedidos cuyo contenido es el siguiente: TABLA DE CLIENTES: CLIENTE_NO NOMBRE LOCALIDAD VENDEDOR_NO DEBE HABER LIMITE_CREDITO ---------- ------------------------- -------------- ----------- ---------- ---------- -------------- 101 DISTRIBUCIONES GOMEZ MADRID 7499 0 0 500000 102 LOGITRONICA S.L BARCELONA 7654 0 0 500000 103 INDUSTRIAS LACTEAS S.A. LAS ROZAS 7844 0 0 1000000 104 TALLERES ESTESO S.A. SEVILLA 7654 0 0 500000 105 EDICIONES SANZ BARCELONA 7499 0 0 500000 106 SIGNOLOGIC S.A. MADRID 7654 0 0 500000 107 MARTIN Y ASOCIADOS S.L. ARAVACA 7844 0 0 1000000 108 MANUFACTURAS ALI S.A. SEVILLA 7654 0 0 500000 TABLA DE PRODUCTOS PRODUCTO_NO DESCRIPCION PRECIO_ACTUAL STOCK_DISPONIBLE ----------- ------------------------------ ------------- ---------------- 10 MESA DESPACHO MOD. GAVIOTA 55000 50 20 SILLA DIRECTOR MOD. BUFALO 67000 25 30 ARMARIO NOGAL DOS PUERTAS 46000 20 40 MESA MODELO UNIÓN 34000 15 50 ARCHIVADOR CEREZO 105000 20 60 CAJA SEGURIDAD MOD B222 28000 15 70 DESTRUCTORA DE PAPEL A3 45000 25 80 MODULO ORDENADOR MOD. ERGOS 55000 25 TABLA DE PEDIDOS PEDIDO_NO PRODUCTO_NO CLIENTE_NO UNIDADES FECHA_PE ---------- ----------- ---------- ---------- -------- 1000 20 103 3 06/10/99 1001 50 106 2 06/10/99 1002 10 101 4 07/10/99 1003 20 105 4 16/10/99 Lenguaje SQL Página 7 1004 40 106 8 20/10/99 1005 30 105 2 20/10/99 1006 70 103 3 03/11/99 1007 50 101 2 06/11/99 1008 10 106 6 16/11/99 1009 20 105 2 26/11/99 1010 40 102 3 08/12/99 1011 30 106 2 15/12/99 1012 10 105 3 06/12/99 1013 30 106 2 06/12/99 1014 20 101 4 07/01/00 1015 70 105 4 16/01/00 1016 30 106 7 18/01/00 1017 20 105 6 20/01/00 Relación. Conexión que puede haber entre dos entidades. Por ejemplo: Cliente-> compra-> Producto Empleado-> pertenece a -> Departamento En nuestras tablas podemos observar las siguientes relaciones: - La tabla EMPLEADOS está relacionada con la tabla DEPARTAMENTOS através de la columna DEP_NO (numero de departamento) que se encuentra en ambas tablas. De esta forma podemos saber, por ejemplo que el empleado GIL pertenece al departamento 20. Y si vamos a la tabla departamentos comprobaremos que el departamento 20 es INVESTIGACION y se encuentra en VALENCIA. Por tanto, el empleado GIL pertenece al departamento de INVESTIGACION que está en VALENCIA. - La tabla EMPLEADOS también se relaciona consigo misma mediante las columnas EMP_NO y DIRECTOR. Cada empleado tiene un número de empleado (EMP_NO) y suele tener también un DIRECTOR. Esta última columna contiene un número de empleado que, suponemos, es el director del empleado en cuestión. Así podemos saber que REY es el director de GARRIDO y de MARTINEZ; y que el director de JIMENEZ es MARTINEZ, etcétera. - La tabla PEDIDOS se relaciona con PRODUCTOS mediante la columna PRODUCTO_NO y con CLIENTES mediante la columna CLIENTE_NO. De esta forma sabemos que el pedido número 1000 lo ha realizado el cliente INDUSTRIAS LACTEAS S.A. y que el producto solicitado es SILLA DIRECTOR MOD. BUFALO a un precio de 67000, etcétera. - La tabla CLIENTES se relaciona con EMPLEADOS por medio de la columna VENDEDOR_NO de la primera que hace referencia a la columna EMPLEADO_NO de la segunda. Así cada cliente tendrá asignado un vendedor. Lenguaje SQL Página 8 El SGBD velará porque todas las operaciones que se realicen respeten estas restricciones manteniendo así la integridad de la información. ¿ Qué podemos hacer con SQL? Todos los principales SGBDR incorporan un motor SQL en el Servidor de Base Datos, así como herramientas de cliente que permiten enviar comandos SQL para que sean procesadas por el motor del servidor. De esta forma, todas las tareas de gestión de la Base de Datos (BD) pueden realizarse utilizando sentencias SQL. Consultar datos de la Base de Datos. Insertar, modificar y borrar datos. Crear, modificar y borrar objetos de la Base de Datos. Controlar el acceso a la información. Garantizar la consistencia de los datos. Tipos de sentencias SQL. Entre los trabajos que se pueden realizar en una base de datos podemos distinguir dos tipos: definición y manipulación de datos. Por ello se distinguen dos tipos de sentencias SQL: • Sentencias de manipulación de datos. (Lenguaje de Manipulación de Datos DML). Se utilizan para: Recuperar información. (SELECT) Actualizar la información: Añadir filas (INSERT) Eliminar filas (DELETE) Modificar filas (UPDATE) • Sentencias de definición de datos. (Lenguaje de Definición de Datos DDL). Se utilizan para: - Crear objetos de base de datos (CREATE) - Eliminar objetos de base de datos (DROP) - Modificar objetos de base de datos (ALTER)












