Professional Documents
Culture Documents
Diseo de datos
Aqu es donde realmente debera leer un buen libro sobre el diseo de bases de datos y la
normalizacin. No todo el mundo puede hacer frente a eso as que aqu hay una alternativa ms
prctica. Normalizacin no es tan esencial como dicen la mayora de los libros acadmicos pero
es vital entender que si usted quiere que sus bases de datos para trabajar. De lo contrario,
cmo va a entender cundo es seguro para romper las reglas?
Estas pginas enlazadas son un ejercicio prctico que utiliza claves primaria, la normalizacin y
la cascada.
Entidades
Primero preguntan qu podran ser necesarios grupos de datos. Por ejemplo puede ser que
necesite una base de datos para una clnica mdica:
y ms.
Estos son conocidos como entidades en el mundo base de datos. Tambin terminan siendo las
tablas de la base de datos.
Imagine que un DJ local que ha pedido una base de datos para registrar todos sus CDs. Quiere
grabar los CDs y los grupos que los registrados. Mantenga las cosas muy simples por ahora y
decidir cules son las entidades que son.
instructorandrescantero@gmail.com
Campos
En la mesa de mdico es posible que desee:
Para la base de datos de CD de la lista de los campos necesarios (mantenerlo simple). Sintase
libre para asumir todo lo que mantiene las cosas fciles.
Cada uno de los campos ser de un cierto tipo de datos - que tendr ciertos atributos. En la base
de datos de la clnica:
El nombre del mdico es realmente malo, pero que est cubierto pronto. Tambin puede ser
que piense nmero de telfono debe ser un campo de nmero (numrico), pero qu hay de los
siguientes:
03456 234567
03456 234567/8
03456 234567 ext 23
La primera tiene un espacio en ella. El segundo una barra para separar dos posibles finales al
nmero. El tercero tiene un nmero de extensin. No todo son nmeros. La forma correcta de
manejar esto es crear un campo separado para la primera y segunda parte del nmero
(marcacin / cdigo de rea y el nmero en s mismo) y otra para extensiones. Luego dir a los
usuarios no incluir espacios o texto. Sin embargo, es mucho ms complicado y tambin restringe
a los usuarios una gran cantidad. Qu pasa si un usuario conoca el cdigo de prefijo / rea fue
para Londres, pero no saba el cdigo real. Ellos querran entrar en "London 444 5555", pero no
pudieron. La forma "adecuada" a menudo no es muy fcil de usar. Recuerde que es el cliente
instructorandrescantero@gmail.com
quien te paga por lo que mantenerlos contentos, siempre y cuando no cause mayores
problemas.
No se preocupe si algunos campos son diferentes. Tambin es posible que no haya grabado de
esta manera, pero esto es una forma bastante estndar tan probarlo.
Cmo se hace referencia a los campos numricos, probablemente depende de la base de datos
que est utilizando. La longitud de estos tambin se establecer de forma diferente (por
ejemplo, Microsoft Access utiliza el tipo de datos de individuales, dobles, la moneda etc. MySQL
tiene muchos incluyendo SMALLINT, INT and DATE por ahora simplemente describir de una
manera que usted entienda.
instructorandrescantero@gmail.com
El primero se utiliza muy a menudo, pero conduce a bases de datos que los usuarios gritan a
ms adelante. El segundo significa que los datos adicionales que se almacenan (y tal vez
recordados por los usuarios), pero es seguro y sencillo. El resultado es una tabla como sta
(claves primarias son normalmente representados en negrita y / o subrayados):
El tercero slo significa usar ms de un campo para formar un identificador nico para cada
registro. En este caso, es muy poco probable que dos grupos tendran el mismo nombre y la
fecha de inicio. Podra suceder, aunque por lo que los nmeros de identificacin son tan
comunes en las bases de datos.
Cada grupo puede ser identificada por su nombre y la fecha en que se formaron.
Campo ID de usar ms espacio pero permite flexibilidad. Por ejemplo, y si el grupo cambia su
nombre?
Claves primarias compuestas utilizan los datos existentes, pero pueden dar lugar a confusin
instructorandrescantero@gmail.com
PHPMyAdmin
Utilice phpMyAdmin para crear una base de datos llamada datadesignexercise (o algo similar).
Asegrese de que utiliza InnoDB como el motor de base de datos (permite bases de datos
relacionales). Crear tablas (CD y Grupo) completas con campos con tipos de datos apropiados.
Utilice el modelo de datos anterior en lugar de la suya (o crear ambos). Incluya las claves
principales del tipo de nmero de identificacin.
En MySQL utilizar tipos de datos VARCHAR para el texto y establecer la longitud mxima que se
permitir. Para los campos de fecha utilizan FECHA y para los campos numricos utilizar INT en
este ejercicio. Para el uso de moneda decimal. Hacer que el dos claves principales de incremento
instructorandrescantero@gmail.com
Hay una conexin entre las dos tablas. Grupos grabar CDs. Que se conoce como una relacin.
Una relacin se une a un campo de una tabla con el mismo int campo que s. Es posible que
desee crear la relacin entre el nombre del grupo en ambas tablas, pero hay problemas con
esto. Para evitar problemas de relaciones estarn entre los campos de clave principal en una
tabla y un campo similar en la otra. As que un cambio debe hacerse:
Ahora es posible conectar los dos ya que hay un campo coincidente. La relacin es la siguiente:
El operador punto (el perodo o punto) separa el nombre de tabla y el nombre del campo. La
flecha muestra la direccin de la relacin. Las relaciones deben ser siempre uno-a-muchos. Aqu
hay un grupo con muchos CDs (en bases de datos "muchos" puede significar uno o incluso
ninguno). Poner esa relacin en Ingls se podra afirmar que "cada grupo puede grabar muchos
discos compactos".
PHPMyAdmin
El uso de phpMyAdmin y las tablas que ha creado en la ltima pgina (recuerde cambiar
GroupName para GroupID incluyendo los atributos) elaborar la relacin con la herramienta
Diseador. Para que esto funcione correctamente:
debe tener el mismo tipo de datos para ambos campos (aqu que ser INT)
debe tener teh mismos atributos (aqu UNSIGNED como el nmero no puede ser
negativo)
el motor de base de datos debe ser InnoDB
todos los datos en las tablas deben tener datos coincidentes en la otra tabla (si hay un
CD con GroupID de 5 debe haber un grupo con ese ID)
ambos campos deben ser indexados (la clave principal ya est pero hay que crear
manualmente el otro (el campo GroupID en la tabla CD deben ser indexados)
instructorandrescantero@gmail.com
Si no ve inmediatamente este comprobar la lista anterior y cuando usted tiene un problema.
En la captura de pantalla de arriba PHPMyAdmin est pidiendo lo que debe hacer sobre los
cambios en la tabla de grupo. Usted debe elegir RESTRICT para borrar y CASCADE para la
actualizacin. As lo explic en la pgina de introduccin de bases de datos relacionales.
Ahora debe tratar de entrar en algunos datos y ver lo que sucede cuando se intenta varias cosas.
Usted puede hacer esto en phpMyAdmin con la ficha Insertar (ir a la mesa primero) o usted
podra escribir pginas PHP para insertar datos de un formulario.
Trate cualquier otra cosa que usted puede pensar en, as como la comprensin de las bases
de datos relacionales es vital.
instructorandrescantero@gmail.com
Valores atmicos
Recurdese lo 1NF dice sobre valores atmicos
Ahora agregue una tabla para registrar los miembros de cada grupo:
Cul de los campos en la nueva tabla rompe la regla valores atmica 1NF? Para ver la
respuesta (despus de trabajar por ti mismo) ciernen aqu.
Campos de repeticin
Tal vez el cliente quiere una lista de todas las pistas de cada CD. Una forma sera la de aadir
que a la tabla CD existente:
CDnumber
CDtitle
GroupID
fecha de expedicin
precio
Track1
Track2
etc
instructorandrescantero@gmail.com
Cuntas pistas no le permitir? Qu pasa con dos CDs de disco? O tres o cuatro? Si usted
permite que para 1000 pistas slo para estar seguro, entonces la mayora se nromally estar
vaco. Es por eso que 1NF dice que no debe haber campos repetidos.
En lugar de crear una nueva tabla llamada Tracks. En ella se puede tener un campo de clave
primaria de identificacin, el nmero de CD las pistas estn en el lugar que tiene un
seguimiento de ese CD, el ttulo y la duracin. Esa mesa est entonces relacionado con la
tabla CD con una relacin uno-a-muchos. Disee esta tabla a continuacin, cree en
phpMyAdmin. Crear la relacin.
3NF dice para asegurarse de que todos los datos en una tabla depende de la clave principal
y no en cualquier otra esfera.
Una vez que tenga una teora asomar aqu para obtener la respuesta.
Cree la tabla extra para mantener la descripcin. Usted necesitar una clave principal que
se convertir en una parte de la relacin y que coincide con un campo en la tabla CD.
Descripcin Plus Gnero.
Hay algunas otras mejoras posibles que usted podra hacer. Encuentra algunos (por ejemplo,
qu pasara si un grupo se ajusta en ms de un gnero (recuerde - campos no se repiten y
no hay datos que no son atmicas).
instructorandrescantero@gmail.com