Bases de Datos Con MYSQL PDF

Practica 3: Formas Normales para el Dise˜ no de Bases de Datos Esteban Javier Rios Cedillo Universidad de Cuenca, Cuenca

Views 47 Downloads 0 File size 710KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Practica 3: Formas Normales para el Dise˜ no de Bases de Datos Esteban Javier Rios Cedillo Universidad de Cuenca, Cuenca Azuay, Ecuador [email protected]

Resumen In this document, the process of creating databases in its first three normal forms was developed in detail. For this, tables were created from a database, their primary keys were defined, as well as the foreign keys, which are the ones that inherit the child tables. The relationship between the tables could be verified using the reverse engineering tool that has MySQL Workbench integrated, as well as the definition of the primary keys and the foreign keys. The objective of creating the tables in their normal forms was to simplify and reduce the tables to others that are easier to operate and maintain. Keywords: MySQL Workbench · Shell · Bases de Datos · Foreign Key · Constraint Key

1. 1.1.

Marco Te´ orico Foreign Keys

Previamente es necesario definir un Primary key, ya que este es un identificador de una o mas columnas en una tabla yq ue permite que cada entrada de datos en una fila, sea u ´nica. Ademas se puede definir un Primary Key como Constraint. Los valores que no sean Primary Key se pueden tambi´en definir como Unique Constraint, el cual es similar a un Primary Key, donde el valor para cada fila es u ´nico. Ahora una Foreign Key es un columna en una tabla hijo que hace referencia al Primary Key en la tabla padre, la sintaxis es como se muestra a continuaci´on. [1] CONSTRAINT EMP ID FK FOREIGN KEY ( ’ Campo ’ ) REFERENCES ’ Tabla Padre ’ ( ’ Campo ’ )

1.2.

NOT NULL Constraints

NOT NULL es un tipo de constraints o restriccion que se da a una columna de una tabla, la cual obliga a que la entrada tenga valores de tipo no nulos, ya que por defecto la columna esta con la restricci´on de tipo NULL. [1]

2

Esteban Javier Rios Cedillo

1.3.

Check Constraints

Esta restricci´ on sirve para verificar la validez del dato ingresado en la columna, la sintaxis de esta operaci´on es como es muestra a continuaci´on. [1] CONSTRAINT CHK PAY CHECK (PAY RATE < 2 0 )

1.4.

Dropping Constraints

Para eliminar una restricci´on definida, se puede usar el comando DROP CONSTRAINT ’Clave’, que por lo general se da por medio del comando ALTER TABLE, un ejemplo de esta sintaxis es como se muestra a continuaci´on. [1] ALTER TABLE ’ Tabla ’ DROP CONSTRAINT CHK PAY

1.5.

Normalizaci´ on

Las bases de datos qe no son normalizadas por lo general no est´an divididas de forma l´ ogica en unidades mas peque˜ nas, como sub-tablas. El dise˜ no es un proceso de clasificar o estructurar una base de datos en grupos l´ogicos y organizados, de tal manera que sea mas sencillo acceder a cierto grupo de datos o incluso dar mantenimiento. Hay que tener en cuenta que los usuarios finales son los que posteriormente acceder´ an a dicha base de datos, por lo que conviene analizar los siguientes puntos. [1] ¿Que tipo de informaci´ on debe ser almacenada en la base de datos? ¿C´ omo acceder´ a el cliente a la base de datos? ¿C´ omo se debe agrupar la informaci´on en la base de datos? ¿Qu´e tipo de informaci´ on es la solicitada con mayor frecuencia? ¿C´ omo se relaciona la informaci´on de la base de datos? ¿Qu´e acciones o estrategias deben considerarse para asegurar la fiabilidad de los datos? ¿Qu´e acciones o estrategias deben considerarse para evitar la redundancia de datos? Primera Forma Normal La primera forma normal tiene como objetivo dividir la base de datos en tablas, cada una con sus respectivas primary keys. [1] Segunda Forma Normal La segunda forma normal consiste en seleccionar los datos que son dependientes del primary key, a partir de esto, se forma otra tabla con dichos datos y asignando su respectiva primary key. [1] Tercera Forma Normal La tercera forma normal consiste en eliminar los datos de una tabla que no son dependientes del primary key de la segunda forma normal y crear otra tabla con estos nuevos datos. [1]

Practica 3: Formas Normales para el Dise˜ no de Bases de Datos

2.

3

Desarrollo

2.1.

Implementar la tercera forma normal a la siguiente Base de Datos

Figura 1. Base de Datos “COMPANY DATABASE”

Los comandos principales usados para la implementaci´on de la base de datos con su primera, segunda y tercera forma normal es como se muestra a continuaci´ on. − − − − − − − − − −

CREATE DATABASE COMPANY DATABASE USE COMPANY DATABASE CREATE TABLEEMPLOYEE TBL 0 CREATE TABLE CUSTOMER TBL 0 CREATE TABLE EMPLOYEE TBL CREATE TABLE EMPLOYEE PAY TBL CREATE TABLE CUSTOMER TBL CREATE TABLE ORDERS TBL CREATE TABLE POSITION TBL CREATE TABLE PRODUCTS TBL

Y el resultado de la compilacion de estos codigos en script es como se muestra en la figura 2.

4

Esteban Javier Rios Cedillo

Figura 2. Compilacion de codigo para creacion de Base de Datos

Ahora para revisar que las tablas con relaciones correspondientes a las tablas padre hijo se utiliza la herramienta “Reverse Engineer” y el resultado de la tabla EMPLOYEES TBL es como se muestra en la figura 3.

Figura 3. “Reverse Engineer” para la tabla EMPLOYEES TBL

Asi mismo se puede visualizar la estructura de la tabla CUSTOMER TBL con la herramienta “Reverse Engineer” y el resultado es como se muestra en la figura 4.

Practica 3: Formas Normales para el Dise˜ no de Bases de Datos

Figura 4. “Reverse Engineer” para la tabla CUSTOMER TBL

Y en conjunto el reultado es como es muestra en la figura 5.

Figura 5. “Reverse Engineer” para la Base de Datos

5

6

Esteban Javier Rios Cedillo

2.2.

Aplicando el procedimiento de las formas normales, dise˜ ne una base de datos de una compa˜ n´ıa, a partir de las siguiente informaci´ on proporcionada. (No olvide detallar cada uno de los pasos realizados, iniciando por la convenci´ on de los nombres asignado a cada atributo

Empleados: Angela L´ opez, marketing, telf. 317-545-6789, Avenida La Merced, Quito, Pichincha, C´ odigo postal 00123, salario $1000 al mes, fecha de inicio, Enero 22, 2006, C´edula 0105636774 Juan P´erez, ventas, Avenida Tumbaco, Quito, Pichincha, C´odigo Postal 00101, salario $10 por hora, c´edula 0107352245, fecha de inicio 10/20/2010 Clientes: Max Technology, Calle San Felipe, Guayaquil, Guayas, C´odigo Postal 01105, telf. 317-271-9823, Identificador del Cliente 432A AV Eletronics, Ave. 10 de Agosto, Cuenca, Azuay, C´odigo P´ostal, 01011, telf. 317-271-7888, Identificador del Cliente 117A Orden del Cliente Indentificador del Cliente 117A, fecha de la u ´ltima orden Diciembre 20, 2018, Producto ordenado: disco duro externo 1TB, Identificador del Producto HD123A Una vez identificados los campos a crear se crea una tabla EMPLEADOS TBL con los distintos campos y tipos de datos. Asi la primera forma normal queda de la siguiente manera. EMPLEADOS TBL Nombre Carrera Telefono Direccion Ciudad Provincia Codigo Postal Salario Mensual

EMPLEADOS TBL Salario Hora Fecha Inicio Cedula

CLIENTES TBL Nombre Cliente Direccion Ciudad Provincia Codigo Postal Telefono Cliente ID

Practica 3: Formas Normales para el Dise˜ no de Bases de Datos

7

ORDEN TBL Cliente ID Fecha Ultima Orden Producto Prod ID

Las tablas fueron creadas en MySQL Workbench y el resultado de la compilacion de las tablas y aplicar ingenieria inversa es como se muestra en la figura 6.

Figura 6. “Reverse Engineer” para la Base de Datos en la primera forma normal

Para la segunda forma normal se han extraido los datos concernientes a las primary key de las tablas EMPLEADO TBL, CLIENTES TBL y ORDEN TBL, para definir las nuevas tablas a crearse, las nuevas tablas son como se muestran a continuacion.

Segunda Forma normal EMPLEADO TBL EMPLEADO DATOS TBL NOMBRE NOMBRE CARRERA TELEFONO TELEFONO DIRECCION DIRECCION CODIGO POSTAL CIUDAD CEDULA (PK) PROVINCIA SALARIO EMP TBL CODIGO POSTAL SALARIO MES SALARIO MES SALARIO HORA SALARIO HORA FECHA INICIO FECHA INICIO CEDULA (PK) CEDULA (PK) Cuadro 1. Segunda Forma Normal para la tabla EMPLEADOS TBL

8

Esteban Javier Rios Cedillo

Y el resultado de aplicar ingenieria inversa para esta tabla es como se muestra en la figura 7.

Figura 7. “Reverse Engineer” para la Base de Datos en la segunda forma normal

Para la tabla clientes se ha definido la tabla principal ORDEN TBL como una tabla hijo, ya que esta posee en uno de sus campos, el dato CLIENTE ID, la cual es comun para la tabla CLIENTES TBL, y el resultado de esta relacion es como se muestra en la tabla a continuacion. Segunda Forma normal CLIENTES TBL CLIENTES DIRECCION TBL NOMBRE CLIENTE DIRECCION TELEFONO CIUDAD DIRECCION PROVINCIA CIUDAD CODIGO POSTAL PROVINCIA CLIENTE ID (PK) CODIGO POSTAL ORDEN TBL CLIENTE ID (PK) CLIENTE ID (PK) FECHA ULT ORDEN NOMBRE PRODUCTO PRODUCTO ID (PK) CLIENTES DATOS TBL NOMBRE CLIENTE TELEFONO DIRECCION CLIENTE ID (PK) Cuadro 2. Segunda Forma Normal para la tabla CLIENTES TBL

Practica 3: Formas Normales para el Dise˜ no de Bases de Datos

9

Y el resultado de aplicar ingenieria inversa para esta tabla es como se muestra en la figura 8.

Figura 8. “Reverse Engineer” para la Base de Datos en la segunda forma normal

Se ha creado una tercera forma normal para las tablas EMPLEADO DATOS TBL y SALARIO TBL, el resultado de esta tercera formal normal es como se muestra en la figura 9.

Figura 9. “Reverse Engineer” para la Base de Datos en la tercera forma normal

10

Esteban Javier Rios Cedillo

Asi mismo la tercera forma normal de las tablas ORDEN TBL, CLIENTES DIRECCION TBL Y CLIENTES DATOS TBL fueron definidas a partir de las dos primeras tablas mencionadas anteriormente y el resultado de aplicar ingenieria inversa es como es muestra en la figura 10.

Figura 10. “Reverse Engineer” para la Base de Datos en la tercera forma normal

3.

Conclusi´ on

Se pudo comprobar que las foreign keys son de utilidad al momento de definir tablas hijo, ya que estas relacionan campos entre tablas y asi hacer mas simple su uso y manejo. Se pudieron implementar las primeras tres formas normales para las tablas en bases de datos siguiendo parametros mencionados anteriormente y asi simplificar la complejidad de una base de datos sin dividir en unidades mas sencillas. Se pudo verificar que la herramineta de ingenieria inversa, muestra las tablas y sus relaciones de forma grafica, haciendo mas facil de comprender los datos y tipos de datos de cada una, asi como las foreign key y las primary key de cada tabla.

Referencias 1. Silberschatz Abraham, Korth Henry F., Sudarshan S., Fundamentos de Bases de Datos, 5ta edici´ on, McGrawHill, 2007