lab 12 - normalización - base de datos
DESCRIPTION
Normalización - Base de DatosTRANSCRIPT
Laboratorio de Base de Datos12 – Normalización
Nro. DD-106Página 1 de 11
I. OBJETIVOS Identificar un modelo en primera forma normal Identificar un modelo en segunda forma normal
II. SEGURIDADAdvertencia:En este laboratorio está prohibida la manipulación del hardware, conexiones eléctricas o de red; así como la ingestión de alimentos o bebidas.
III. RECURSOS Equipo con sistema operativo Windows XP Professional. Oracle Express Universal 10g. Oracle SQL Developer Modeler.
IV. DESARROLLO DE LA TAREA El desarrollo del laboratorio es de manera individual.
V. PROCEDIMIENTO1. Instalación de la herramienta de modelado Oracle SQL Developer Data Modeler
El instructor le indicará el instalador que utilizará. Copie el instalador anterior al equipo virtual. Desempaquetar el archivo anterior en la carpeta C:\ Se creará en la unidad C:\ una carpeta denominada datamodeler Crear un acceso directo al programa datamodeler.exe ubicada en la carpeta anterior Ejecute el acceso directo anterior para acceder a la herramienta
2. Creación de esquemas de bases de datos empleando la herramienta Oracle SQL Developer Data Modeler Implementaremos el modelo de base de datos representado en la siguiente figura:
Creación de la tabla amistades En la herramienta Oracle SQL Developer DataModeler. Seleccione el panel denominado
Relational_1
De la barra de herramientas seleccione la herramienta Table y luego presione click sobre el botón izquierdo del mouse sobre el área de trabajo para insertar el nuevo elemento:
Amistades PelículasSe prestan
N : M
codigonombrefecha de nacimientosexoapodocelularemailestadodirección
codigotitulotipo de peliculafecha de adquisicionactor principaltipo de dvdorigencostoestado
identificador de prestamofecha de préstamofecha de devoluciónestado
código de amistad (FK)código de película (FK)
Laboratorio de Base de Datos12 – Normalización
Nro. DD-106Página 2 de 11
Se mostrará una nueva ventana donde se debe definir la estructura de la nueva tabla.
Del panel izquierdo, seleccione la opción General. Aquí complete los siguientes datos:
o Name: amistades
Del panel izquierdo, seleccione la opción Columns. Para cada Columna. Clic en el botón en forma de signo “+” para adicionar una nueva columna. Complete los datos de cada campo según se indica en la siguiente tabla empleando el panel Column Properties:
Name Datatype Type Precision Scale Mandatorycodigo Logical NUMERIC 5 0 Checknombre Logical VARCHAR 45 Checkfecha_nac Logical DATEsexo Logical VARCHAR 1 Checkapodo Logical VARCHAR 30celular Logical VARCHAR 20email Logical VARCHAR 40estado Logical VARCHAR 1 Checkdireccion Logical VARCHAR 60En la siguiente figura se muestra la forma que se verá dicha ventana:
Del panel izquierdo, seleccione la opción Primary Key. Aquí complete los siguientes datos:
o Name: amistades_PK
o Del panel Columns Seleccione el campo código y adiciónelo al panel derecho
Laboratorio de Base de Datos12 – Normalización
Nro. DD-106Página 3 de 11
Del panel izquierdo, seleccione la opción Table Level Constraints. Clic en el botón “+” para adicionar una nueva restricción de tipo CHECK:
o Repita el procedimiento anterior para definir la siguiente restricción
Name: amistades_CK_estado
Validation Rule: estado in (‘A’,’X’)
Clic en el botón OK para finalizar la creación de la tabla
Creación de la tabla películas De la barra de herramientas inserte un nuevo elemento de tipo Table
Desde la ventana de propiedades, en la opción General, asigne el nombre a la tabla peliculas
Del panel izquierdo, seleccione la opción Columns. Defina las columnas de la tabla según se indica en la siguiente lista:
Laboratorio de Base de Datos12 – Normalización
Nro. DD-106Página 4 de 11
Name Datatype Type Precision Scale Mandatorycodigo Logical NUMERIC 5 0 Checktitulo Logical VARCHAR 45 Checktipo_pelicula Logical VARCHAR 25 Checkfecha_adq Logical DATEactor_principal Logical VARCHAR 60 Checktipo_dvd Logical VARCHAR 10 Checkorigen Logical VARCHAR 10 Checkcosto Logical NUMERIC 12 2estado Logical VARCHAR 1 Check
Del panel izquierdo, seleccione la opción Primary Key. Aquí complete los siguientes datos:
o Name: peliculas_PK
o Del panel Columns Seleccione el campo código y adiciónelo al panel derecho
Del panel izquierdo, seleccione la opción Table Level Constraints. Crear las siguientes restricciones:
o Name: peliculas_CK_tipo_dvd, Validation Rule: tipo_dvd in (‘original’,’copia’)
o Name: peliculas_CK_origen, Validation Rule: origen in (‘nacional’,’extranjero’)
o Name: peliculas_CK_estado, Validation Rule: estado in (‘A’,’X’)
Clic en el botón OK para finalizar la creación de la tabla
Creación de la tabla prestamos (relación N:M) De la barra de herramientas inserte un nuevo elemento de tipo Table
Desde la ventana de propiedades, en la opción General, asigne el nombre a la tabla prestamos
Del panel izquierdo, seleccione la opción Columns. Defina las columnas de la tabla según se indica en la siguiente lista:
Name Datatype Type Precision Scale Mandatoryid_prestamo Logical NUMERIC 8 0 Checkfecha_prestamo Logical DATEfecha_devolucion Logical DATEcodigo_amistad Logical NUMERIC 5 0 Checkcodigo_pelicula Logical NUMERIC 5 0 Checkestado Logical VARCHAR 1 Check
Del panel izquierdo, seleccione la opción Primary Key. Aquí complete los siguientes datos:
o Name: prestamos_PK
o Del panel Columns Seleccione el campo id_prestamo y adiciónelo al panel derecho
Laboratorio de Base de Datos12 – Normalización
Nro. DD-106Página 5 de 11
Del panel izquierdo, seleccione la opción Table Level Constraints. Crear las siguientes restricciones:
o Name: prestamos_CK_estado, Validation Rule: estado in (‘A’,’X’)
Del panel izquierdo, seleccione la opción Foreign Keys. Crear las siguientes restricciones:
Clic en el botón OK para finalizar la creación de la tabla
A continuación se muestra el esquema de la base de datos resultante:
Laboratorio de Base de Datos12 – Normalización
Nro. DD-106Página 6 de 11
3. Creación del script DDL conteniendo los comandos necesarios para crear la base de datos De la barra de herramientas clic en la última herramienta denominada Generate DDL De la ventana DDL File Editor. Clic en el botón Generate
Clic en el botón OK Se muestra una ventana conteniendo los comandos SQL para crear todas las tablas Click en el botón Save para generar un archivo *.sql con los comandos anteriores. Nombrarlo como
tablas.sql. Click en el botón Close para cerrar la ventana Desde el Explorador de Windows verifique la existencia del archivo anterior
TAREA1. Empleando la herramienta Oracle SQL Developer Data Modeler implemente el diseño de la base de
datos mostrado en la figura 12. Empleando la herramienta Oracle SQL Developer Data Modeler implemente el diseño de la base de
datos mostrado en la figura 2
Laboratorio de Base de Datos12 – Normalización
Nro. DD-106Página 7 de 11
Figura 1
Distribuyen
Camioneros Camiones
Paquetes Provincias
Conducen
Destinados
codigonombrednitelefonodireccionsalarioestado
placamodelotipopotenciaestado
N : M
1 : N
N : 1
Fecha de partidaHora de partidaFecha de llegadaHora de llegadaestado
Codigo de camionero(FK)Placa (FK)
codigodescripcionnombre del destinatariodirección del destinatarioestado
código del camionero (FK)código de provincia (FK)
codigonombre
Laboratorio de Base de Datos12 – Normalización
Nro. DD-106Página 8 de 11
CREATE TABLE CAMIONEROS( CODIGO_CAM NUMBER (5) NOT NULL, NOMBRE VARCHAR2 (40) NOT NULL, DNI VARCHAR2 (8) NOT NULL, TELEFONO VARCHAR2 (20) NOT NULL, DIRECCION VARCHAR2 (40) NOT NULL, SALARIO NUMBER (5,2) NOT NULL, ESTADO VARCHAR2 (1));
ALTER TABLE COMIONEROS ADD CONSTRAINT CAMIONEROS_CK_ESTADO CHECK (ESTADO IN ('A','X'));ALTER TABLE COMIONEROS ADD CONSTRAINT CAMIONEROS_PK PRIMARY KEY (CODIGO_CAM);
CREATE TABLE CAMIONES( PLACA VARCHAR2 (8) NOT NULL, MODELO VARCHAR2 (20) NOT NULL, TIPO VARCHAR2 (20) NOT NULL, ESTADO VARCHAR2 (1));
ALTER TABLE CAMIONES ADD CONSTRAINT CAMIONEROS_CK_ESTADO CHECK (ESTADO IN ('A','X'));ALTER TABLE CAMIONES ADD CONSTRAINT CAMIONES_PK PRIMARY KEY (PLACA);
CREATE TABLE PAQUETES( COD_PAQ VARCHAR2 (5) NOT NULL, DESCRIPCION VARCHAR2 (40) NOT NULL, NOM_DESTINATARIO VARCHAR2 (40) NOT NULL, DIRECC_DESTINATARIO VARCHAR2 (40) NOT NULL, ESTADO VARCHAR2(1) , COD_CAMIONERO NUMBER (5) NOT NULL COD_PROVINCIA NUMBER (5) NOT NULL);
ALTER TABLE PAQUETES ADD CONSTRAINT PAQUETES_PK PRIMARY KEY (COD_PAQ);
CREATE TABLE PROVINCIAS( COD_PROVINCIA NUMBER (5) NOT NULL, NOMBRE VARCHAR2 (20) NOT NULL);
ALTER TABLE PROVINCIAS ADD CONSTRAINT PROVINCIAS_PK PRIMARY KEY (COD_PROV);
CREATE TABLE REGIST_CONDUCCION( COD_REGIST_COND NUMBER (5) NOT NULL, FEC_PARTIDA DATE NOT NULL, HORA_PARTIDA DATE NOT NULL, FEC_LLEGADA DATE NOT NULL, HORA_LLEGADA DATE NOT NULL, ESTADO VARCHAR2(1) NOT NULL, COD_CAMIONERO NUMBER (5) NOT NULL, PLACA VARCHAR2 (5) NOT NULL);
ALTER TABLE REGIST_CONDUCCION ADD CONSTRAINT REGIST_CONDUCCION_CK CHECK (ESTADO IN ('A','X'));ALTER TABLE REGIST_CONDUCCION ADD CONSTRAINT REGIST_CONDUCCION_PK PRIMARY KEY (COD_REGIST_COND);
Laboratorio de Base de Datos12 – Normalización
Nro. DD-106Página 9 de 11
Laboratorio de Base de Datos12 – Normalización
Nro. DD-106Página 10 de 11
Figura 2
Laboratorio de Base de Datos12 – Normalización
Nro. DD-106Página 11 de 11
VI. OBSERVACIONES
La herramienta que se utilizó en este laboratorio fue el MySQLWorkbench el cual permitió generar y gestionar los datos extraídos.
Los CONSTRAINT permiten colocar restricciones a nuestra base de datos, estos no siempre se agregan al momento de generar el script de la tabla, por eso usamos un ALTER TABLE para alterar los datos y colocar estas restricciones sin problemas.
Observar las tablas así como los modelos de entidad ayuda mucha ala solución de un buen script, esto es una práctica que debe ser detallada para poder obtener un resultado estable.
Debemos identificar muy bien las llaves primarias, y así poder relacionarlas a las demás tablas siendo estas sus llaves foráneas en otras tablas, esto permite una relación directa entre tablas.
También se usó el programa DATA MODELER para migrar un esquema a este y ver de un modelo de entidad de otra manera.
VII. CONCLUSIONES
Identificar y realizar un modelo en la primera, segunda forma normal.
Usar una herramienta externa para la generación de tablas, así como un modelo de entidad relación entre tablas.
El DATA MODELER permitió la migración del esquema.
Los CONSTRAINT permiten reducir el tiempo en cuanto a ingresar ciertos datos, los cuales los podemos resumir en letras.