Sie sind auf Seite 1von 23

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA GUA PRACTICA DE LABORATORIO DEL CURSO: 301330

BASES DE DATOS BSICOS

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA


ESCUELA DE CIENCIAS BSICAS TECNOLOG A E INGENIERA PROGRAMA TECNOLOGA E INGENIERA DE SISTEMAS

301330 BASES DE DATOS BSICO MARA DORA ALBA SNCHEZ GMEZ (Directora Nacional)

MEDELLN JULIO DE 2011

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA GUA PRACTICA DE LABORATORIO DEL CURSO: 301330 BASES DE DATOS BSICOS

Nombre del curso: Programa: Directora curso:

BASES DE DATOS BSICOS TECNOLOGA E INGENIERA DE SISTEMAS MARA DORA ALBA SNCHEZ GMEZ

INSTRUCCIONES GENERALES El curso Bases de datos Bsico por ser de tipo Metodolgico, requiere fortalecer la fundamentacin terica que se lleva a cabo en el aula virtual con el desarrollo del componente prctico, que el estudiante debe realizar en el CEAD en el cual est matriculado o desde su casa u oficina. Todos los estudiantes deben entregar un informe por cada prctica, al tutor asignado. En ese sentido cada CEAD dispone de un Tutor del rea que estar a cargo de la motivacin, del acompaamiento y de la valoracin de estas actividades prcticas, adems deber reportar para cada una de ellas el resultado individual del componente prctico desarrollado por cada estudiante. Por cada Unidad Didctica se debe realizar una prctica, la cual ser de mucha ayuda para el desarrollo de los trabajos colaborativos en cada una de estas. Se espera que este espacio sea aprovechado para despejar dudas e inquietudes relacionadas con la temtica.
Reporte y evaluacin de la prctica

Cada tutor asignado al componente prctico del curso una vez que valore cada prctica, debe pasar al director del curso los puntos que sac el estudiante. La valoracin mxima de cada prctica es de 10 puntos. Este puntaje, se encuentra como un tem en la rbrica de cada trabajo colaborativo. Por lo tanto el tutor que dirige la prctica en cada CEAD, debe enviar al correo electrnico institucional de la Directora del curso ( mariadora.sanchez@unad.edu.co), el reporte de cada una de stas en archivo Excel y que incluya: Cdigo del estudiante Nombre completo del estudiante Nmero grupo trabajo colaborativo Nombre del Tutor responsable de la prctica. Puntos asignados, entre cero (0) y diez (10), as: 5 si asisti, 3 si asisti y participo y, 2 si realiz el informe. Sin embargo, si el estudiante en el informe adjunta las evidencias de su prctica, se le puede reconocer los diez (10) puntos. Se recomienda que la prctica de cada Unidad se realice antes de la entrega del trabajo colaborativo respectivo, as tendr herramientas para hacer aportes en cada uno de estos trabajos. Por lo tanto la fecha mxima para realizacin de estas es: Practica No 1 Matriz Relacin 10 de Septiembre 2011 Practica No 2 Modelo Entidad Relacin y Modelo Relacional 4 de Octubre 2011 Practica No 3 Sentencias SQL 2 de Noviembre 2011

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA GUA PRACTICA DE LABORATORIO DEL CURSO: 301330 BASES DE DATOS BSICOS

UNIDAD I
SESIN No. 1: INTRODUCCIN AL MODELO LGICO - MATRIZ RELACIN Objetivos de la prctica de laboratorio Introducir a los estudiantes en el anlisis de una problemtica de datos, bajo la tcnica de la Matriz de Relacin. Competencias a desarrollar Identifica las entidades, las relaciones y sus cardinalidades en un estudio de casos. Descripcin de la prctica / actividad Basado en el enunciado del caso que se encuentra en el anexo el estudiante debe identificar las entidades con sus respectivas relaciones y cardinalidades. Software a utilizar en la prctica Por ser este un taller, los estudiantes estn en la libertar de utilizar un software como Word o Excell para realizar la Matriz Relacin. Equipos / instrumentos a utilizar en la prctica: Laboratorio de Sistemas. Resultados a obtener en la prctica: El estudiante debe crear la Matriz Relacin. Informe a entregar: Matriz Relacin. Duracin de la Prctica: tres (3) horas, de la cuales dos son para realizacin del taller propuesto y una para sustentacin de la misma. Fundamentacin Terico Cuando se est iniciando a modelar conceptualmente los datos, una manera de realizarlo es a travs de la tcnica de la Matriz de Relacin; esta tcnica se basa en las teora de conjunto, ms especficamente, los conceptos de conjuntos y relaciones. Es as, que para empezar a trabajar una problemtica (caso), se hace necesario que el estudiantes determine primero los conjuntos de datos (Entidades), las relaciones que existen entre los elementos (Instancias u ocurrencias) de los conjuntos de datos y el tipo de relacin (Cardinalidad).

Con base en lo anterior, los pasos que se deben seguir para llenar la matriz de relacin son los siguientes: Identificar en la problemtica los sustantivos en plural (Conjuntos o Entidades). Colocar en las filas todas las entidades que encontr en el paso anterior.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA GUA PRACTICA DE LABORATORIO DEL CURSO: 301330 BASES DE DATOS BSICOS

Colocar en las columnas todas las entidades, pero en el mismo orden que las coloc en las filas. Vale la pena aclarar, que esta organizacin es muy importante, pues la diagonal, siempre debe ser la interseccin entre los mismas entidades o conjunto. Llenar la diagonal, de tal forma, que se analice si existen relaciones entre las instancias u ocurrencias de las misma entidad (Subconjuntos); S no es as, entonces se coloca una X, si es as, entonces se entra a establecer el tipo de relacin (Cardinalidad). Es bueno observar en el caso, que los verbos me identifican la relacin y el tipo de relacin que existen entre las instancias u ocurrencias de una o diferentes entidades.

Se empieza a llenar la matriz desde la primera fila, de izquierda a derechas, donde lo primero que se debe mirar es s, existe o no relacin; si existe, entonces se entrar a determinar el tipo de relacin, donde siempre de parte del Mnimo (Entidad Fila) y se llega al Mximo (Entidad Columna). Esta operacin se contina hasta llegar a la ltima fila. Se debe aclarar, que a partir del llenado de la segunda fila en adelante, las casillas que estn trabajando y se encuentran debajo de la diagonal, el establecimiento de la relacin se da, s y solo s, la casilla contraria a la diagonal est llena. Lo anterior, debido a que las relaciones son en ambos sentidos, es decir simtricas; ya lo que resta es identificar el tipo de relacin, es decir, la Cardinalidad. De modo grfico se vera as: ENTIDAD Departamento Cargo Empleado Departamento X X 1-N Cargo X X 1-N Empleado 1-1 1-1 X a) Enunciado Caso empleados - Caso Ejemplo Para iniciar a modelar los datos, miremos el siguiente caso de empleados: Se quiere crear una base de datos de personal para una compaa, con las siguientes caractersticas:

La compaa tiene un conjunto de departamentos. Cada departamento tiene un conjunto de empleados, un conjunto de proyectos y un conjunto de oficinas. Los proyectos tienen empleados asignados, y las oficinas empleados que laboran en ellas. Los cargos estn codificados, de tal forma, que tienen un cdigo nico y una descripcin del cargo. Cada empleado tiene una historia de cargos ocupados, en la cual se requiere saber la fecha en que ha ocupado stos.

Adems se tiene,

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA GUA PRACTICA DE LABORATORIO DEL CURSO: 301330 BASES DE DATOS BSICOS

Por cada departamento, nmero de departamento (nico), nombre, presupuesto anual. Por cada empleado, nmero de empleado (nico), nombre, direccin y telfono de residencia, departamento y proyecto al que esta asignado actualmente, nmero de oficina y cargo actual. Por cada proyecto, nmero de proyecto (nico), nombre, presupuesto del proyecto y departamento al que pertenece. Por cada oficina, nmero de oficina (nico), rea en metros cuadrados, nmeros de telfono.

Adems se sabe lo siguiente:


Un empleado pertenece a mximo un departamento al tiempo. Un empleado est vinculado a mximo un proyecto al tiempo. Un empleado tiene mximo una oficina al tiempo. Un empleado desempea mximo un cargo al tiempo. Una oficina pertenece a mximo un departamento al tiempo.

Identificacin de entidades y Matriz de relacin Observando el caso de empleados, encontramos los siguientes sustantivos (Entidades): Departamentos, Empleados, Proyectos, Oficinas, Cargos e Historia de Cargos. ENTIDAD Dptos. Empl. Proy. Ofic. Cargos Hist_Carg. Dptos. 1-N 1-N 1-N x X X Empl. 1-1 1-1 1-1 1-1 1-N x Proy. 1-1 1-N x X X X Ofic. 1-1 1-N X x X X Cargos 1-N X 1-N X X x Hist_Carg. 1-1 1-1 X X X x En la matriz anterior, observemos las relaciones y cardinalidades de Historias de Cargos. Lo primero es que solo est relacionada con las entidades Empleados y Cargos. Miramos que un empleado puede tener como mximo varias historias de cargos, esto, porque una persona durante la vida laboral puede desempear varios cargos; y una historia de cargos le pertenece mximo a un empleado, esto debido a que cada vez que un empleado cambia de cargo, se genera una instancia u ocurrencia en historia de cargos. Por otro lado, con respecto a la relacin que tiene con cargos, una Historia de Cargo, tiene mximo un Cargo, y un Cargo, puede encontrarse en varias instancias u ocurrencias de Historia de Cargos, esto debido a que pueden haber varios empleados con el mismo cargo. Con respecto a las dems relaciones, son claras sus relaciones, de acuerdo al enunciado del caso.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA GUA PRACTICA DE LABORATORIO DEL CURSO: 301330 BASES DE DATOS BSICOS

UNIDAD II

SESIN No. 2: MODELOS DE DATOS LOGICO Y MODELO RELACIONAL Objetivos de la prctica de laboratorio Realizar el modelo lgico de datos con base en la matriz Relacin generada en el primer laboratorio, aplicando la tcnica Entidad-Relacin, y el modelo relacional con base en el modelo lgico, aplicando las reglas para pasar un modelo lgico a un modelo relacional. Competencias a desarrollar Modela bajo la tcnica Entidad-Relacin, con base en la matriz relacin. As mismo, identifica los atributos y atributos claves segn el caso de estudio. Descripcin de la prctica / actividad: Pasar la Matriz relacin a un diagrama entidad relacin y identificar los atributos y atributos claves de acuerdo al caso estudiado en la prctica anterior. Transformar el diagrama Entidad-Relacin a un Modelo Relacional (Tablas y Columnas). Software a utilizar en la prctica Se propone utilizar el siguiente software. Sin embargo, los que manejen otro software quedan en libertad de realizar el diagrama relacional en el paquete que mejor se acomoda. mysql-workbench es una aplicacin grfica que sirve para realizar tanto el diagrama Entidad-Relacin, como el diagrama relacional para bases de datos en MySql. Se puede descargar en el sitio: http://dev.mysql.com/doc/refman/5.5/en/wb-installing.html. Equipos / instrumentos a utilizar en la prctica: Laboratorio de Sistemas. Resultados a obtener en la prctica: El estudiante debe generar el Modelo Relacional con base en el modelo entidad relacin, una vez haya realizado la conversin del Modelo que se gener en la sesin 1. Informe a entregar: Modelo Relacional del Modelo Entidad Relacin de la sesin 1. Duracin de la Prctica: Cinco (5) horas, de la cuales dos son para realizacin del paso de la Matriz Relacin al modelo lgico, dos horas para el paso del modelo lgico al modelo relacional y una para sustentacin de la misma.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA GUA PRACTICA DE LABORATORIO DEL CURSO: 301330 BASES DE DATOS BSICOS

Fundamentacin Terica
A. Paso Matriz Relacin a Diagrama Entidad-Relacin Con base en el caso de empleados, desarrollado en las notas de apoyo del trabajo colaborativo. Se desarrollar el modelo entidad relacin partiendo de la matriz que se realiz en ese mismo documento. Para esto, se deben seguir los siguientes pasos: 1) Colocar en el centro la entidad que tiene ms relaciones 1-1 o la que mejor identifique el problema. Vemos que en la fila de la entidad EMPLEADOS, se tiene cuatro (4) relaciones 1-1, y una 1-N; las dems entidades tienen una(1) o mximo dos(2) y por lo tanto empleados debe ser la entidad central. 2) Continuar con las dems entidades, partiendo de la primera fila. Esta entidad, es la de DEPARTAMENTOS, vemos que tiene relacin con las entidades EMPLEADOS y OFICINAS; como la primera entidad que llevamos en el diagrama es empleados, luego colocamos en el extremo superior izquierdo la entidad de DEPARTAMENTOS. Seguimos con la entidad de PROYECTOS, y encontramos que esta tiene relacin solo con DEPARTAMENTOS y EMPLEADOS, luego la colocamos al lado izquierdo de EMPLEADOS y abajo de DEPARTAMENTO. Luego encontramos la entidad de OFICINAS, esta solo est relacionada con DEPARTAMENTOS Y EMPLEADOS, por lo tanto la colocamos en el extremo superior derecho, cerca de stas dos entidades. Seguimos con cargos, y encontramos que est relacionada con EMPLEADOS e HISTORIA DE CARGOS, entonces la colocamos al lado derecho de EMPLEADOS. Por ltimo, encontramos la entidad de HISTORIA DE CARGOS, la cual est rel acionada con EMPLEADOS y CARGOS, por lo tanto la colocamos debajo de estas dos entidades. Todo el proceso anterior, es una recomendacin de organizacin, con el fn de que cuando comencemos a establecer las relaciones, no nos queden lneas(Relaciones) cruzadas. Ver grfico.

Colocar las relaciones, partiendo de la primera fila, que es la entidad departamento; observamos que ste tiene relacin con EMPLEADOS, PROYECTOS Y OFICINAS, por lo tanto, procedemos a pasar las respectivas lneas. Ver siguiente grfico.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA GUA PRACTICA DE LABORATORIO DEL CURSO: 301330 BASES DE DATOS BSICOS

Fundamentacin Terica

Ahora procedemos a colocar la cardinalidad. Observamos que la primera casilla que encontramos es la de DEPARTAMENTOS con EMPLEADOS; para ellos se dice: Un DEPARTAMENTO, puede tener muchos EMPLEADOS. Lo mismos ocurre con PROYECTOS Y OFICINAS, un DEPARTAMENTO, puede tener muchos PROYECTOS y muchas OFICINAS. Ntese que siempre partimos del mnimo y llegamos al mximo. Veamos la grfica siguiente:

El proceso anterior se sigue con las dems entidades que se encuentran en la fila, como son EMPLEADOS, PROYECTOS, OFICINAS, CARGOS e HISTORIAS DE CARGOS. Para lo cual tendramos el siguiente diagrama:

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA GUA PRACTICA DE LABORATORIO DEL CURSO: 301330 BASES DE DATOS BSICOS

Seleccin de atributos y atributo clave 4) Colocar los atributos a cada una de las entidades; mirando el caso, vemos que los sustantivos en singular para cada entidad son los que aparecen en el Diagrama.

5) Determinar el atributo clave. Si observamos en el caso y los atributos encontrados, observamos que en el caso, hay alguno de ellos que dicen que son nicos, es el caso de atributo nmero en DEPARTAMENTOS, EMPLEADOS, PROYECTOS y OFICINAS; para el caso de CARGOS, se ve el cdigo, y por ltimo, HISTORIAS DE SALARIOS solo tiene un atributo. En esta ltima entidad, el nico atributo que puede ser clave es ste. Sin embargo analizaremos este caso para el siguiente paso. Teniendo en cuenta lo anterior, entonces nuestro diagrama quedara as:

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA GUA PRACTICA DE LABORATORIO DEL CURSO: 301330 BASES DE DATOS BSICOS

B. Paso Diagrama Entidad-Relacin al Modelo Relacional Existen unas reglas muy sencillas que se deben entrar a aplicar: 1) Toda entidad es una tabla. 2) Todos los atributos de una entidad, son columnas o campos de la tabla. El atributo clave es campo clave. 3) Toda Relacin Uno a Varios (1-N), la tabla hija hereda de la tabla padre el campo clave. Si la relacin es fuerte (lleva i), entonces el campo clave heredado es campo clave del hijo. Ejemplo: Suponiendo que se tiene el siguiente modelo.

Antes de empezar a aplicar las reglas anteriores, se debe tener en cuenta las siguientes recomendaciones: 1) Empezar a relacionar las entidades que son padres, es decir, aquellas que no tienen pata de gallina como son la ENTIDAD_A y la ENTIDAD_E. 2) Despus se relacionan las entidades que son hijas, tienen pata de gallina con las entidades que ya fueron descritas en el punto anterior: En este caso, observamos que la ENTIDAD_B y la ENTIDAD_C tienen relacin con la ENTIDAD_A.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA GUA PRACTICA DE LABORATORIO DEL CURSO: 301330 BASES DE DATOS BSICOS

3) El proceso se contina hasta finalizar. As tenemos que las entidades que faltan son hijas de entidades que ya estn relacionadas; en este ejemplo la ENTIDAD_D y la ENTIDAD_F, estn relacionadas, la primera con la ENTIDAD_C y la ENTIDAD_E; la segunda con la ENTIDAD_B. De acuerdo a lo anterior y a la aplicacin de la primera regla "Toda entidad es una tabla", quedara as: ENTIDAD_A ( ENTIDAD_E ( ENTIDAD_B ( ENTIDAD_C ( ENTIDAD_D ( ENTIDAD_F ( Obsrvese que se abre un parntesis, eso es con el fin de comenzar a aplicar la segunda regla "Todo atributo es un campo de la tabla y si es atributo clave, tambin es campo clave". Luego entonces quedara as: ENTIDAD_A (A1, A2) ENTIDAD_E (E1, E2) ENTIDAD_B (B1, B2, B3 ENTIDAD_C (C1, C2, C3, C4 ENTIDAD_D ( ENTIDAD_F (F1, F2 En las tablas anteriores, se observa que la ENTIDAD_A y la ENTIDAD_E se le cerr el parntesis, esto debido a que son entidades que no heredan de nadie. Haciendo analoga con un rbol, son la raz del rbol, son solo padres. Sin embargo las dems quedan con el parntesis abierto pues las dems, en ciertas relaciones, son todas hijas de alguien.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA GUA PRACTICA DE LABORATORIO DEL CURSO: 301330 BASES DE DATOS BSICOS

Ahora se contina aplicando la tercera regla "Toda relacin uno a varios, la entidad hija hereda el campo clave de la tabla padre; si la relacin es fuerte, entonces la hereda como campo clave tambin" Miremos como quedara: Como la tablas ENTIDAD_A y la ENTIDAD_E, ya estn finalizadas, entonces seguimos con nuestro anlisis con la tabla ENTIDAD_B, donde vemos que esta entidad es hija de la ENTIDAD_A y el campo clave de la tabla ENTIDAD_A es A1, pero adems, como la relacin es fuerte (tiene i), entonces este campo clave es tambin campo clave de la tabla ENTIDAD_D. Grficamente se tiene: ENTIDAD_A (A1, A2) ENTIDAD_E (E1, E2) ENTIDAD_B (B1, B2, B3, A1) Se sigue con la tabla ENTIDAD_C, se observa que esta entidad es hija de la ENTIDAD_A, por lo tanto hereda el campo clave A1, pero en este caso NO es parte del campo clave. Grficamente se tiene: ENTIDAD_A (A1, A2) ENTIDAD_E (E1, E2) ENTIDAD_B (B1, B2, B3, A1) ENTIDAD_C (C1, C2, C3, C4, A1) Se contina con la tabla ENTIDAD_D, sta es una entidad asociativa, por lo tanto es dbil de mnimo dos entidades que en este caso es la ENTIDAD_C y la ENTIDAD_E. Aplicando la regla encontramos que hereda el campo clave C1 y C2 de la primera tabla y el campo clave E1 de la segunda tabla, pero como tambin las relaciones que tiene con las dos entidades son fuertes (i), entonces estos campos claves a su vez son campos claves de la tabla hija. Grficamente se tiene: ENTIDAD_A (A1, A2) ENTIDAD_E (E1, E2) ENTIDAD_B (B1, B2, B3, A1) ENTIDAD_C (C1, C2, C3, C4, A1) ENTIDAD_D (C1, C2, E1)

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA GUA PRACTICA DE LABORATORIO DEL CURSO: 301330 BASES DE DATOS BSICOS

UNIDAD III
SESIN NO. 3: ENTORNO DE UN MOTOR DE BASES DE DATOS DDL y DML En esta sesin se sugiere trabajar con el motor de bases de datos MySql. Sin embargo, se tiene la libertad de trabajar en cualquier motor de bases de datos que garantice la utilizacin de las sentencias estndar de SQL. Objetivos de la prctica de laboratorio: Crear, llenar y consultar una base de datos. Competencias a desarrollar Identifica y usa las estructuras del lenguaje de definicin de datos y el lenguaje de manipulacin de datos. Descripcin de la prctica / actividad: Con base en el motor de base de datos seleccionado se debe entrar a crear el esquema de la base de datos diseada en la sesin 2, y realizar el llenado con datos de la base de datos. Las sentencias de SQL a utilizar son todas las del Lenguaje de Definicin de Datos (CREATE, DROP, ALTER, ADD) y parte del Lenguaje de Manipulacin de datos (INSERT, UPDATE y DELETE) Software a utilizar en la prctica: MySQL u otro motor que contenga sentencia SQL. Equipos / instrumentos a utilizar en la prctica: Laboratorio de Sistemas Resultados a obtener en la practica: El estudiante debe generar la base de datos de la sesin 2 con datos. Informe a entregar: Documento con todas las sentencias utilizadas para: Crear la base de datos, con sus respectivas tablas, campos, campos claves y llaves forneas. Los que realicen el laboratorio en la casa u oficina, debern incluir una copia del esquema de la base de datos. Ingresar, Actualizar y Borrar datos de la base de datos. Los que realicen el laboratorio en la casa u oficina, debern incluir una copia de los pantallazos donde se evidencie la ejecucin de las diferentes sentencias de Insercin, Actualizacin y Borrado de datos en la base de datos creada.

Duracin de la Prctica: tres (4) horas, de la cuales dos son para creacin y llenado de datos de la base de datos, dos para la realizacin de la consulta y una para sustentacin de la misma.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA GUA PRACTICA DE LABORATORIO DEL CURSO: 301330 BASES DE DATOS BSICOS

Fundamentacin Teorica Lenguaje de Consulta Estructurada El SQUARE, fue un leguaje que fue mejorando hasta que en el ao 1976, apareci el SQL, el cual se ha convertido en una estndar en la industria de los fabricantes de herramientas de bases de datos. Este lenguaje se divide en dos grupos de instrucciones, el DDL y el DML. El DDL, es el lenguajes de definicin de datos y el DML es el lenguaje de definicin de datos. A. Lenguaje de Definicin de Datos DDL Consta de tres instrucciones bsicas como es el CREATE, el ALTER y el DROP. Los elementos de las bases de datos que se le puede aplicar estas instrucciones son bases de datos (DATABASE), tablas (TABLE), ndices (INDEX) y vistas (VIEW). Miremos esquemticamente lo anterior:

CREATE DROP ALTER

DATABASE INDEX VIEW TABLE

Obsrvese que las bases de datos, ndices y vistas solo pueden ser creadas (CREATE) o borradas (DROP), mientras que las tablas pueden tambin de las anteriores alterarse. La sentencia general es: Creacin de Elementos

NOMB_INSTRUCCION ELEMENTO Nomb_Elemento Miremos un ejemplo de cada uno, para ellos trabajaremos con una base de datos ejemplo. Ver anexo 1. la base de datos es de COMPRAS, las cuales tienen unos proveedores, unas partes y suministros; empezaremos creando la base de datos. a. Creacin de una base de datos CREATE DATABASE COMPRAS;

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA GUA PRACTICA DE LABORATORIO DEL CURSO: 301330 BASES DE DATOS BSICOS

b. Creacin de una tabla CREATE TABLE PROVEEDORES (VNRO CHAR(4) NOT NULL, VNOMBRE CHAR(30) NOT NULL, SITUACION INT, CIUDAD CHAR(15), PRIMARY KEY (VNRO)); CREATE TABLE PARTES (PNRO CHAR(4) NOT NULL, PNOMBRE CHAR(30) NOT NULL, COLOR CHAR(15), PESO DECIMAL(4,1), PRIMARY KEY (PNRO)); CREATE TABLE SUMINISTROS (VNRO CHAR(4) NOT NULL, PNRO CHAR(4) NOT NULL, CANTIDAD INT, PRIMARY KEY (VNRO,PNRO), FOREIGN KEY VNRO REFERENCE PROVEEDORES(VNRO), FOREIGN KEY PNRO REFERENCE PARTES (PNRO)); Vase que la tabla de suministros tiene dos campos que heredan de las tablas proveedores y partes, por lo que son llaves forneas. c. Creacin de ndices CREATE INDEX PROV_CIUDAD ON PROVEEDORES(CIUDAD); d. Creacin de Vistas CREATE VIEW VISTA_PROVE ON (SELECT VNRO,VNOMBRE FROM PROVEEDORES);

Borrado de Elementos a. Borrado de una base de datos

DROP DATABASE COMPRAS;

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA GUA PRACTICA DE LABORATORIO DEL CURSO: 301330 BASES DE DATOS BSICOS

b. Borrado de una tabla DROP TABLE PROVEEDORES; c. Borrado de un ndice DROP INDEX PROV_CIUDAD; d. Borrado de una vista DROP VIEW VISTA_PROVE; Modificacin de Tablas

Aqu vamos a adicionarle el precio a las partes. ALTER TABLE PARTES ADD PRECIO DECIMAL(7,2); B. Lenguaje de Manipulacin de Datos DML Como se dijo, este lenguaje permite la creacin, modificacin, borrado y consultas de datos. Para ello cuenta con las siguientes instrucciones: INSERTE: sirve para insertar filas a las tablas UPDATE: sirve para modificar datos de una tabla DELETE: sirve para borrar datos de una tabla SELECT: sirve para consultar datos de una o varias tablas. Esta sentencia es la razn de ser de toda la filosofa de las bases de datos relacional, ya que con esto se creo un mtodo para consultar los datos en una forma no procedimental, es aqu donde mas aplica las operaciones algebraicas vistas en el captulo anterior. Insertar filas en una tabla

INSERT INTO PROVEEDORES (VNRO,VNOMBRE,CIUDAD,SITUACION) VALUES(P01,Arturo Seplveda,Cartagena); Aqu, cada vez que se necesite insertar una fila debe repetirse toda la instruccin, pues ella sirve solo para inserta UNA SOLA FILA, no varias.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA GUA PRACTICA DE LABORATORIO DEL CURSO: 301330 BASES DE DATOS BSICOS

Actualizar un dato en una o varias fila, segn la condicin.

Vamos a actualizar la ciudad de los proveedores que se encuentran en la ciudad de Venecia, lo colocamos Bogot. UPDATE PROVEEDORES SET CIUDAD = Bogota WHERE CIUDAD = Venecia: Aqu es conveniente hacer varias precisiones. La clusula WHERE, es opcional, si es as, entonces todas las ciudades de los proveedores quedan con Bogot, cosa que no es comn que ocurra. En cambio, con la clusula WHERE, solo quedan con Bogot, aquellos proveedores cuya ciudad es Venecia. Viendo as las cosas, podemos decir que la clusula WHERE en la prctica, no es tan opcional. Borrar Filas

Vamos a borrar todas las filas de la tabla de proveedores que se encuentran en la ciudad de Armenia. DELETE FROM PROVEEDORES WHERE CIUDAD = Armenia; Aqu vale la pena hacer la misma aclaracin que hicimos con UPDATE, y es que la clusula WHERE es opcional. De tal forma, que si no se coloca, entonces BORRA TODOS LOS DATOS DE LA TABLA, pero no la estructura. Consultas de datos

Para mirar toda la potencialidad de la sentencia SELECT, hemos organizado las consultas de menor a mayor grado de dificultad, por cuestiones pedaggicas. Comenzaremos con consultas sobre una sola tabla hasta finalizar con subconsultas, donde intervienen ms de una tabla. Miremos la sentencia general SELECT Campo1[,Campo 2, R..] FROM Tabla 1[,Tabla 2, RR] WHERE Condicin 1 [AND Condicin 2][OR Condicin 2][RR.] ORDER BY Campo 1 [,Campo 2, R.] GROUP BY Campo 1 [,Campo 2, R.] HAVING Condicin de Grupo [AND Condicin 2][OR Condicin 2][RR.] a. Consultas Simples a. Consulta de un determinado campo. Consultar el nombre del proveedor con su respectiva ciudad. SELECT PROVEEDORE,CIUDAD FROM PROVEEDORES;

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA GUA PRACTICA DE LABORATORIO DEL CURSO: 301330 BASES DE DATOS BSICOS

b. Consultas de todos los campos. Consultar todos los datos de las partes. SELECT * FROM PARTES; c. Consultas con DISTINCT. Consultar el nmero de proveedores que han suministrado partes en algn proyecto.

SELECT DISTINCT VNRO FROM SUMINISTROS; d. Consultas de valores calculado. Consultar el nombre de las partes con su respectivos pesos aumentados en un 10%. SELECT PARTES, Peso aumentado en 10%,PESO*1.1 FROM PARTES; e. Consultas con campos cualificados. Consultar el nmero y nombre del proyecto. SELECT PROYECTOS.YNRO,PROYECTOS.PROYECTO FROM PROYECTOS; f. Consultas con condicin. Consultar el nmero del proveedor que ha suministrado partes a los proyectos Y1 y `Y2.

SELECT DISTINCT VNRO FROM SUMINISTROS WHERE YNRO=Y1 OR YNRO= Y2; g. Consultas con ordenamiento. Consultar el nmero de proveedores y el nmero de proyectos que le han suministrado, organizado por proyectos. SELECT DISTINCT VNRO,YNRO FROM SUMINISTROS ORDER BY YNRO; b. Consultas de Reunin a. Reunin simple. Consultar el nombre de los proveedores que han suministrado partes a algn proyecto. SELECT DISTINCT PROVEEDORES FROM PROVEEDORES,SUMINISTROS WHERE PROVEEDORES.VNRO=SUMINISTROS.VNRO; Nota: Obsrvese que se utiliza el distinct para que no salgan repetidos el nombre del proveedor. Si desea qutele el distinct y observe el resultado.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA GUA PRACTICA DE LABORATORIO DEL CURSO: 301330 BASES DE DATOS BSICOS

b. Reunin con condicin. Consultar el nombre del proveedor, el nombre de las partes y el nombre del proyecto, con sus respectivas cantidas suministradas, solo para los proyectos de MONITOR y CONSOLA. SELECT PROVEEDOR,PARTE,PROYECTO FROM PROVEEDORES,PARTES,PROYECTOS,SUMINISTROS WHERE PROVEEDORES.VNRO=SUMINISTROS.VNRO AND PARTES.PNRO=SUMINISTROS.PNRO AND PROYECTOR.YNRO=SUMINISTROS.YNRO AND (PROYECTO=MONITOR OR PROYECTO=CONSOLA); c. Reunin de una tabla consigo misma. Consultar las parejas de nmeros de proveedor y la ciudad, que se encuentran en la misma ciudad. SELECT PRIMERA.VNRO,SEGUNDA.VNRO FROM PROVEEDORES PRIMERA,PROVEEDORES SEGUNDA WHERE PRIMERA.VNRO<SEGUNDA.VNRO AND PRIMERA.CIUDAD=SEGUNDA.CIUDAD; Nota: Obsrvese que el JOIN, es decir, la IGUALACIN, se esta realizando por el campo de CIUDAD y no por el campo llave VNRO. Adems, se utilizan alias en el nombre de las tablas, con el fin de poder combinar la tabla consigo misma. c. Consultas con Funciones Agregadas. COUNT(*): Cuenta los registros de una tabla COUNTO(Campo): Cuenta los registros por un campo determinado. Si el campo tiene un valor nulo, no lo cuenta. SUM(Campo): Suma todos los valores del campo. No suma nulos. el campo debe ser numrico. AVG(Campo): Promedia el campo. No tiene en cuenta los nulos y el campo debe ser numrico. MAX(Campo): Selecciona el valor mximo del campo. No cuenta el valor nulo. MIN(Campo): Selecciona el valor mnimo del campo. No cuenta el valor nulo. a. Consultas para contar filas. Consultar el nmero total de proyectos. SELECT COUNT(*) FROM PROYECTOS;

b. Consultas para contar final con condicin. Obtener la cantidad total de proveedores
que se encuentran en la ciudad de LONDRES. SELECT COUNT(VNRO) FROM PROVEEDORES WHERE CIUDAD=LONDRES ;

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA GUA PRACTICA DE LABORATORIO DEL CURSO: 301330 BASES DE DATOS BSICOS

c. Consultas con agrupacin. Obtener el nmero total de proyectos por proveedor SELECT VNRO,COUNT(YNRO) FROM SUMINISTROS GROUP BY VNRO; d. Consultas con agrupacin y reunin de tablas. Consultar el nombre del proveedor con su respectivo nmero total de proyectos. SELECT PROVEEDOR,COUNT(YNRO) FROM PROVEEDORES,SUMINISTROS WHERE PROVEEDORES.VNRO=SUMINISTROS.VNRO GROUP BY PROVEEDOR; e. Consultas con condicin de agrupacin. Consultar el nombre del proveedor, con su respectiva cantidad total suministrada; solo aquellos proveedores que han suministrado cantidades mayores a 800. SELECT PROVEEDOR,SUM(CANT) FROM PROVEEDORES,SUMINISTROS WHERE PROVEEDORES.VNRO=SUMINISTROS.VNRO GROUP BY PROVEEDOR HAVING SUM(CANT)>800; f. Consultas con condicin y agrupamiento varios. Consultar el nombre del proveedor, y el nombre de las partes, con su respectiva cantidad suministrada. Solo los proveedores de la ciudad de LONDRES Y PARIS, y que hayan suministrado mas de 500.

SELECT PROVEEDOR,PARTE,SUM(CANT) FROM PROVEEDORES,PARTES,SUMINISTROS WHERE PROVEEDORES.VNRO=SUMINISTROS.VNRO AND PARTES.PNRO=SUMINISTROS.PNRO AND (PROVEEDORES.CIUDAD=LONDRES OR PROVEEDORES.CIUDAD=PARIS) GROUP BY PROVEEDOR,PARTE HAVING SUM(CANT)>500; d. Consultas Avanzadas. a. Consultas con el operador LIKE. Consultar los proveedores cuyo nombre empiezan con la letra A. SELECT * FROM PROVEEDORES WHERE PROVEEDOR LIKE A% ;

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA GUA PRACTICA DE LABORATORIO DEL CURSO: 301330 BASES DE DATOS BSICOS

b. Consultar los proveedores cuya segunda letra sea l. SELECT * FROM PROVEEDORES WHERE PROVEEDOR LIKE _A% ; c. Consultar los proveedores cuya ltima letra sea igual a E. SELECT * FROM PROVEEDORES WHERE PROVEEDOR LIKE %E ; d. Consultar los proveedores que tengan en el nombre la letra S. SELECT * FROM PROVEEDORES WHERE PROVEEDOR LIKE %S% ; e. Subconsultas. Consultar los proveedores que no han suministrado partes. SELECT * FROM PROVEEDORES WHERE VNRO NOT IN (SELECT VNRO FROM SUMINISTROS) ; Nota: Esta consulta se puede realizar tambin utilizando el EXISTS SELECT * FROM PROVEEDORES WHERE NOT EXISTS (SELECT VNRO FROM SUMINISTROS WHERE SUMINISTROS.VNRO=PROVEEDORES.VNRO) e. Otras Operaciones a. Crear tablas temporales con INSERT INTO. Crear una tabla temporal llamada TEMP_PROV, que contenga el nombre del proveedor, la ciudad y la cantidad total suministrada por partes. SELECT PROVEEDOR,CIUDAD,SUM (CANT) AS TOT_CANT INTO TEMP_PROV FROM PROVEEDORES, SUMINISTROS WHERE PROVEEDORES.VNRO=SUMINISTROS.VNRO GROUP BY PROVEEDOR,CIUDAD;

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA GUA PRACTICA DE LABORATORIO DEL CURSO: 301330 BASES DE DATOS BSICOS

b. Crear una vista con CREATE VIEW. Crear una vista con todas las partes y su respectivo numero total de proyectos que han suministrado y cantidad total suministrada. CREATE VIEW VISTA_PARTES AS (SELECT PARTE,COUNT(YNRO),SUM(CANT) FROM PARTES,SUMINISTROS WHERE PARTES.PNRO=SUMINISTROS.PNRO GROUP BY PARTE); c. Consultar sobre una tabla temporal. Consultar la mayor cantidad suministrada SELECT MAX(TOT_CANT) FROM TEMP_PROV;

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA GUA PRACTICA DE LABORATORIO DEL CURSO: 301330 BASES DE DATOS BSICOS

ANEXO 1 Caso de estudio proyecto

Una empresa de construcciones civiles esta interesada en que se le disee una bases de datos relacional para el departamento de proyectos. Este departamento cuenta con una serie de dependencias, las cuales se encuentran codificadas y tienen un cdigo y un nombre. Cuando se realizan un contrato, se genera un proyecto, el cual es codificado tambin y pertenecen a una sola dependencia. De los proyectos se tiene un cdigo nico, el nombre y el presupuesto. A cada proyecto se le asigna un grupo de empleados y un gerente de proyecto, que a la vez es empleado. De los empleados se quiere tener el nmero de identificacin, tipo de identificacin, nombres, apellidos, direccin residencia, nmero telfono residencia y celular. Al finalizar el proyecto, se realiza las evaluaciones del desempeo de cada uno de los empleados que trabaj en este y de esto se tiene la fecha inicial y final real en que particip en el proyecto, adems de la calificacin obtenida entre 1 y 5, y una observacin dada por el gerente del proyecto. Adems se sabe que: Una dependencia puede tener varios proyectos. Un empleado puede haber trabajado en varios proyectos, pero en un momento dado, solo trabaja en un solo proyecto. Una dependencia, solo pertenece a un departamento. Un proyecto solo tiene un gerente de proyecto y un empleado puede haber gerenciado varios proyectos.