Академический Документы
Профессиональный Документы
Культура Документы
Proyecto #2
I CUATRIMESTRE 2014
Contenido
Introduccin............................................................................................................ 3
Desarrollo.............................................................................................................. 4
Diagrama............................................................................................................... 4
Entidades............................................................................................................... 4
Atributos................................................................................................................ 6
Relaciones.............................................................................................................. 9
Normalizacin....................................................................................................... 13
Bases de Datos en SQL..................................................................................... 17
Conclusin........................................................................................................... 20
Bibliografa.......................................................................................................... 20
Introduccin
A continuacin se va a presentar la elaboracin de una base de datos, dicha base de datos
tiene como fin llevar la administracin de la informacin relevante de los distintos clientes
que tiene la empresa llamada ACME S.A.
Esta empresa tiene diferentes clientes y distintos requisitos, debido a esto se debe de
realizar un diagrama de entidad-relacin para poder identificar cada una de las entidades a
incluir en la base de datos as como tambin sus atributos y sus respectivas relaciones entre
las mismas.
Seguidamente se va a ver paso a paso como se realiz dicho diagrama. Posteriormente
vamos a ver un poco acerca del tema de normalizacin, ya que tenemos que normalizar
cada una de las tablas que se presenten en el diagrama de entidad-relacin, para as lograr la
veracidad de los datos y evitar cualquier tipo de error que se pueda presentar, cabe recalcar
que el diagrama se realizo con leguaje UML.
Continuando con el tema de normalizacin se va a presentar un ejemplo con 5 registros con
cada una de las tablas que contiene la base de datos as como sus divisiones respectivas
para poder normalizarla.
Adicionalmente en los archivos adjuntos a este trabajo escrito viene el script de la base de
datos creada en Microsoft SQL Server 2012 llamado Acme, para poder verlo nada ms se
tiene que proceder a abrir dicho archivo, se copia su contenido, y en una nueva Query se
pega el texto y se ejecuta, haciendo los anteriores pasos se crear nuestra base de datos para
la empresa ACME S.A.
Se espera cumplir con las expectativas de la empresa y que se ponga en funcionamiento
rpido dicha base de datos para as poder tener un mejor control de la informacin
importante que posee la empresa, este trabajo fue elaborado por Gastn Gonzlez Dahmen,
estudiante de la carrera Diplomado en Informtica de la Universidad Estatal a Distancia.
Desarrollo
Diagrama Entidad-Relacin
Entidades
Para iniciar la construccin de una base de datos, lo primero que se debe realizar es el
diagrama entidad-relacin el cual nos va a permitir establecer las diferentes entidades a
incluir en nuestro diagrama, atributos y relaciones. A continuacin vamos a citar el texto del
proyecto que aparece en la orientacin del curso:
Disee un modelo relacional correspondiente al siguiente supuesto:
Con base al anterior enunciado podemos ir identificando las diferentes entidades que vamos
a tener en el diagrama; vamos a iniciar mencionando la entidad CLIENTE la cual nos va
almacenar la informacin de los dos diferentes clientes que posee la empresa, cabe
mencionar que esta entidad es una entidad padre de la cual se derivan dos entidades
adicionales MAYORITARIO y PROVEEDOR que ms adelante vamos a examinarlas
detalladamente.
Luego de tener esta entidad vamos a tener una entidad necesaria la cual se llama
DIRECCION, ya que la entidad CLIENTE tiene entre sus atributos, mencionados ms
adelante, direccin la cual es compuesto, entonces se debe de tener una entidad la cual nos
divida la informacin de dicho atributo, para as poder tener un mejor rendimiento a la hora
de usar nuestra base de datos.
Seguidamente nos vamos a encontrar con la entidad PRODUCTO, la cual se nos va a
relacionar con la entidad PROVEEDOR; hay que recalcar que los productos se encuentran
aglomerados por categoras, debido a esto se debe de crear una entidad que se llama
CATEGORIA donde se van a almacenar las diferentes categoras que van a tener la
empresa.
Por ltimo vamos a tener la entidad PEDIDO la cual nos va a servir para poder almacenar
los datos importantes referentes al pedido que realiza un cliente, en este caso sera el cliente
mayorista. Para tener una mejor visin de las entidades vamos a proceder a listarlas y luego
mostraremos su respectiva implementacin en UML:
-
CLIENTE
DIRECCION
MAYORITARIO
PROVEEDOR
PRODUCTO
CATEGORIA
PEDIDO
CLIENTE
DIRECCION
PRODUCTO
MAYORITARIO
CATEGORIA
PROVEEDOR
PEDIDO
Atributos
Ya por haber establecido las diferentes entidades requeridas en nuestra base de datos, el
siguiente paso va a consistir en agregarle a cada entidad sus atributos que la caracterizan o
definen, dichos atributos nos van a servir para poder definir relaciones, entre otras cosas.
Vamos a empezar diciendo que la primera entidad que tenemos y para mi parecer una de las
ms importantes es la entidad CLIENTE, ya que en esta entidad se almacena los datos ms
relevantes de todos los clientes de la empresa, en esta caso tanto proveedores como clientes
mayoristas son clientes de la empresa, solamente que uno provee a la empresa de productos
y el otro compra los productos de la misma. Se ha decidido meterlos en una misma entidad
ya que los dos tienen los mismos atributos. Los atributos fueron considerados los ms
importantes que se de ben de tener para poder identificar un cliente y son: Identificacion,
Nombre, Direccion y Telefono.
CLIENTE
Identificacion
Nombre
Direccion
Telefono
En la anterior entidad tenemos un atributo que necesita de otra tabla para poder darle un
mejor rendimiento a la base de datos, y as poder tener en un mejor orden los datos
almacenados, dicha entidad se llama DIRECCION el cual nos va a establecer los atributos
Identificacion, Provincia, Distrito, Canton y OtrosDetalles. Esto nos va a servir para poder
tener en forma ms clara la informacin de la direccin del cliente. Usamos el atributo
Identificacion para as de esta manera poder relacionarlo con la entidad CLIENTE.
DIRECCION
Identificacion
Provincia
Distrito
Canton
OtrosDetalles
PROVEEDOR
Identificacion
IDMayoritario
Identificacion
IDProveedor
Seguidamente aparece la entidad PRODUCTO la cual tiene una relacin con la entidad
PROVEEDOR, debido a esto le tenemos que agregar un atributo a la entidad PRODCUTO
llamado IDProveedor aparte de este tambin tiene los atributos IDProducto, IDCategoria y
Precio.
PRODUCTO
IDProducto
IDProveedor
IDCategoria
Precio
Ya que el enunciado nos indica que los productos se encuentran aglomerados en categoras,
entonces tenemos que crear una entidad llamada CATEGORIA el cual va a contener
atributos como IDCategoria, Nombre, Caractersticas. El atributo Nombre se relaciona con
el atributo Nombre de la entidad Producto.
CATEGORIA
IDCategoria
Nombre
Caracteristicas
Para finalizar con nuestros atributos vamos a mencionar los de la entidad PEDIDO, los
cuales nos va a servir para poder almacenar la informacin de cada pedido que realice el
cliente mayoritario a la empresa. Los atributos con los que cuenta son: IDPedido,
IDMayoritario, IDProducto y Fecha; en esta entidad aparecen los atributos IDMayoritario y
IDProducto la cual nos van a servir paira poder relacionarnos con las entidades
MAYORITARIO y PRODUCTO respectivamente.
PEDIDO
IDPedido
IDMayoritario
IDCategoria
Fecha
Relaciones
11
Ya11
por tener establecidas las entidades y sus atributos correspondientes, es hora de poner
las relaciones de cada tabla, para iniciar este tema vamos a proceder a mencionar la primera
relacin de la base de datos, la cual tiene el nombre de CLIENTE-DIRECCION, dicha
relacin va a ser de 1 a 1 ya que un cliente tiene al menos una direccin. Para establecer
dicha relacin se usa el atributo Identificacion.
CLIENTE
Identificacion
Nombre
Direccion
Telefono
DIRECCION
Identificacion
Provincia
Distrito
Canton
OtrosDetalles
Luego de esto vamos a presentar la herencia de la entidad CLIENTE con las entidades
MAYORITARIO y PROVEEDOR para as tener una mejor comprensin a la hora de ver
las relaciones de dichas entidades.
CLIENTE
Identificacion
Nombre
Direccion
Telefono
MAYORITARIO
PROVEEDOR
Identificacion
IDMayoritario
Identificacion
IDProveedor
11
Identificacion
IDProveedor
PRODUCTO
0*
IDProducto
IDProveedor
IDCategoria
Precio
Luego como los productos se encuentran aglomerados por categora entonces aparece otra
relacin llamada PRODUCTO-CATEGORIA, la cual se va a establecer con el atributo
Nombre. Y dicha relacin va a ser de 1 a 1 ya que un producto pertenece a una nica
categora.
PRODUCTO
IDProducto
IDProveedor 11
IDCategoria
Precio
CATEGORIA
11
IDCategoria
Nombre
Caracteristicas
Para seguir con nuestras relaciones vamos a proceder a mencionar la relacin llamada
MAYORITARIO-PEDIDO, la cual se va realizar mediante el atributo IDMayoritario, la
cual va a ser de 1 a N ya que un solo cliente puede realizar muchos pedidos. Cabe
mencionar que al tener que hacer un archivo de pedidos tiene que relacionarse tambin con
la entidad PRODUCTO para as poder determinar qu tipo de producto es el que se est
llevando el cliente, ac es donde aparece nuestra ltima relacin llamada PEDIDOCATEGORIA, donde el atributo que nos va a servir para hacer dicha relacin es
IDCategoria y esta relacin va a ser de N a M ya que muchos productos pueden aparecer en
varios pedidos.
MAYORITARIO
Identificacion
IDMayoritario
11
0*
PEDIDO
IDPedido
IDMayoritario
0*
IDCategoria
Fecha
0*
CATEGORIA
IDCategoria
Nombre
Caracteristicas
Ya por haber finalizado con todas las relaciones ahora slo nos falta mostrar todo el
diagrama
11 entidad-relacin.
11
CLIENTE
CLIENTEDIRECCION
Identificacion
Provincia
Distrito
Canton
OtrosDetalles
Identificacion
Nombre
Direccion
Telefono
MAYORITARIO
PROVEEDOR
Identificacion
IDMayoritario
Identificacion
IDProveedor
IDProveedor
1
1
PROVEEDORPRODUCTO
MAYORITARIO-PEDIDO
IDProducto
IDProveedor
IDCategoria
Precio
PEDIDO
0
*
IDPedido
IDMayoritario
IDCategora
Fecha
0
*
PEDIDOCATEGORIA
CATEGORIA
0
*
IDCategoria
Nombre
Caracteristicas
0
*
1
PR
O
D
U
CT
OCA
TE
Normalizacin
Ahora por tener todas nuestras tablas de la base de datos tenemos que verificar que todo se
encuentre adecuado, para esto se va a inventar 5 registros de cada tabla en el diagrama y se
van a usar la normalizacin para poder verificar que todo est correctamente.
En esta base de datos se ha utilizado la normalizacin en las entidades CLIENTE y
PRODUCTO, dado que las otras entidades tales como DIRECCION y CATEGORIA son
pequeas y los datos siempre van a ser seguros, con lo que respecta a los datos de PEDIDO
considero que es una entidad dbil la cual slo existe si el cliente lo efecta aparte que es
una recoleccin de informacin de los atributos de las otras entidades. Sin embargo se
estaran mostrando algunos ejemplos de dichas tablas para ver su forma y consistencia.
Vamos a iniciar con la entidad CLIENTE:
CLIENTE (Identificacion, Nombre, Direccion, Telefono)
Identificacio
n
116548423
Nombre
Allan
267865637
674674563
487465325
356354324
Maria
Roberto
Allan
Roberto
Direccion
San Jose, Coronado, San Rafael
Heredia, Santa Barbara, San
Pedro
Puntarenas, Osa, Sierpes
Alajuela, San Mateo, Desmonte
Cartago, Alvarado, Pacayas
Telefono
22946578
22965743
25647384
26748936
27549835
Ac podemos notar que el atributo telfono no se encuentra en la primera forma normal por
lo que podemos acomodarlo en las dos siguientes tablas:
Identificacio
n
116548423
267865637
674674563
487465325
353635424
Identificacio
Nombre
n
Allan
116548423
267865637
Maria
674674563
Roberto
487465325
Allan
356354324
Roberto
Telefono
Direccion
San Jose, Coronado, San Rafael
22946578
Heredia, Santa Barbara, San
22965743
Pedro
25647384
Puntarenas, Osa, Sierpes
26748936
Alajuela, San Mateo, Desmonte
27549835
Cartago, Alvarado, Pacayas
As con esto podemos decir que ya estamos en la primera forma normal, luego de esto
podemos notar que gracias a la llave de identificacin podemos obtener tanto el nombre
como la direccin esto se refleja a continuacin:
Identificacio
n
116548423
267865637
674674563
487465325
356354324
Nombre
Allan
Maria
Roberto
Allan
Roberto
Identificacio
n
Direccion
116548423 San Jose, Coronado, San Rafael
Heredia, Santa Barbara, San
267865637
Pedro
674674563
Puntarenas, Osa, Sierpes
487465325 Alajuela, San Mateo, Desmonte
356354324
Cartago, Alvarado, Pacayas
Luego de haber visto las anteriores tablas vamos a proceder a poner un ejemplo de la tabla
de DIRECCION (Identificacion, Provincia, Distrito, Canton, OtrosDetalles):
Identificacio
n
Provincia
Distrito
116548423
San Jos
267865637
674674563
487465325
356354324
Heredia
Puntarenas
Alajuela
Cartago
Coronado
Santa
Barbara
Osa
Mateo
Alvarado
Canton OtrosDetalles
San
Rafael
Varios
San
Pedro
Varios
Sierpes
Varios
Desmonte
Varios
Pacaya
Varios
Ac lo que se podra realizar son tablas catlogo en las cuales se enumeren las provincias,
los distritos y los cantones para as tener un mejor control a continuacin se va a presentar
un ejemplo de una tabla catlogo respectiva a la Provincia:
IDProvincia Provincia
1
San Jos
2
Heredia
3
Cartago
4
Alajuela
5
Guanacaste
6
7
Puntarenas
Limn
Las otras tablas catlogo no se muestran por el espacio que ocuparan debido a la gran
variedad de distritos y a cantones, tambin es de suma importancia mencionar que se est
asumiendo que la empresa ACME slo va a comercializar sus productos dentro del pas.
Seguidamente vamos a mencionar la tabla Producto (IDProducto, IDProveedor,
IDCategoria, Precio):
IDProducto IDProveedor IDCategoria
621
456435
546
634
456435
256
453
456734
345
453
574768
345
643
366856
876
Precio
1300
1200
1600
1500
550
Como podemos notar hay datos que se encuentran repetidos, esto lo podemos solucionar de
la siguiente manera:
Ac podemos decir que gracias al ID de la categora podemos encontrar el ID del producto.
IDCategori
a
IDProducto
546
621
256
634
345
453
876
643
En la siguiente tabla el ID del proveedor nos relaciona al precio del producto que brinda.
IDProveedo
r
456435
456435
456734
574768
366856
Precio
1300
1200
1600
1500
550
En esta tabla el ID del proveedor nos pueda ayudar a encontrar el ID del producto.
IDProveedo
r
IDProducto
456435
621
456435
634
456734
453
574768
453
366856
643
Despus vamos a proceder a ver la entidad CATEGORIA, que al menos a mi pensamiento
la considero como una tabla catalogo, un ejemplo se muestra a continuacin:
IDCategori
a
256
546
474
345
876
Nombre Caracteristica
Huevo
Varias
Leche
Varias
Carne
Varias
Cigarrilos
Varias
Agua
Varias
Por ltimo tenemos la tabla del pedido, que es una recoleccin de todos los datos de las
anteriores tablas, considero que es un entidad dbil y que slo se efecta si el cliente llega
a realizar el pedido. Un ejemplo se muestra en la siguiente tabla:
IDPedido
2167342
7354698
7634569
8973587
3456743
IDMayoritari
o
IDProducto
Fecha
7234
546
15/01/2014
5446
546
15/01/2014
5446
256
15/01/2014
5446
256
09/12/2013
6543
876
09/12/2013
Sin embargo podemos indicar que gracias al IDMayoritario podemos obtener el ID del
producto, de esta manera evitamos un poco la repetitividad de datos, sin embargo es un
pedido en la cual se pueden repetir varios datos. La tabla es:
IDMayoritari
o
7234
IDProducto
546
5446
5446
6543
546
256
876
La tabla CATEGORIA:
La tabla CLIENTE
La tabla DIRECCION
La tabla MAYORITARIO
La tabla PEDIDO
La tabla PRODUCTO
La tabla PROVEEDOR
En los diseos anteriores se pueden verificar el nombre de los atributos y sus respectivos
tipos; adicionalmente a esto se han creado unos Stored Procedures para poder insertar
datos en las diferentes tablas dichos Stored Procedures son los siguientes:
Dichos Stored Procedures nos sirvieron para introducir los datos en las diferentes tablas.
Conclusin
Se espera que al haber finalizado dicho trabajo se tenga un mejor panorama acerca de lo
que contiene la base de datos y aparte de esto que se tenga un mejor conocimiento acerca
de los temas de diagramas de entidad-relacin y normalizacin y construccin de una base
de datos en Microsoft SQL Server 2012.
1
Con respecto al diseo de la base de datos en Microsoft SQL Server se han creado unos
Stored Procedures con el fin de poder introducir algunos datos en las diferentes tablas de la
base de datos acme, sin embargo al poner a ejecutar el script no se cargan los datos, y si se
ponen en una query por aparte los diferentes exec solamente se llenan las tablas
CLIENTE, DIRECCION, MAYORITARIO y PROVEEDOR, pero las tablas PRODUCTO,
CATEGORIA y PEDIDO, no se rellenan, cualquier retroalimentacin acerca de este
problema ser bien recibida..
Se espera haber cumplido con las expectativas con dicho proyecto, de igual forma cualquier
retroalimentacin es bien recibida para as ir mejorando la base de datos que ms adelante
se va a presentar completamente construida y en funcionamiento.
Bibliografa
-
http://cvva.wordpress.com/2007/12/04/normalizacion-de-bases-de-datos-las-3formas-normales/
http://es.wikipedia.org/wiki/Primera_forma_normal
http://es.wikipedia.org/wiki/Segunda_forma_normal
http://es.wikipedia.org/wiki/Tercera_forma_normal
http://es.wikipedia.org/wiki/Modelo_entidad-relaci%C3%B3n
Kroenke, David M. Procesamiento de Bases de Datos Fundamentos, diseos e
implementacin. Pearson Educacin, Mxico 2003. Pgs.: 688.