You are on page 1of 9

Practica la creacin de una buena estructura de datos

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.

Diseo de datos 1 - diccionario de datos


La primera etapa en la creacin de una base de datos Web es decidir qu datos van a estar en
ella. Esto puede sonar obvio, pero muchas bases de datos se crean sin comprobar esto
correctamente y terminan no siendo tiles para el usuario.

Entidades
Primero preguntan qu podran ser necesarios grupos de datos. Por ejemplo puede ser que
necesite una base de datos para una clnica mdica:

informacin sobre los mdicos


informacin sobre los pacientes
informacin sobre los nombramientos

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:

el nombre del mdico


nmero telefnico
nmero de habitacin

y ms. Exactamente lo que necesita depende del cliente.

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.

Los tipos de datos

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 - texto, longitud mxima de 50 caracteres, la informacin


requerida
nmero de telfono - texto, la longitud mxima de 20 caracteres
nmero de habitacin - numrica, mnimo 1, mximo 10

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.

Piense en la base de datos de CD. Qu tipos de datos estn ah (grabar)

Diseo de datos 2 - claves primarias


Usted debe tener algo como esto para su CD database:

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.

Las claves primarias

Cul debe ser la clave principal para la tabla de un grupo?


Eso debera ser bastante fcil, pero lo que si hay ms de un grupo con el mismo nombre?
Aqu est la primera incertidumbre, ya que hay al menos tres respuestas posibles:
esperan que no hay
crear un nuevo campo sea clave primaria
utilizar una clave principal compuesta

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

Echa un vistazo a la segunda tabla y decidir sobre una clave principal.

Considerar alternativas ya que no hay una respuesta absoluta derecha.

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

automtico (marque la casilla IA despus el ndice desplegable). Incremento automtico significa


que cada vez que se inserta un nuevo registro de un nuevo valor nico se insertar de forma
automtica. Debera ver algo como esto cuando termine de crear la tabla Grupo:

Haga clic en el nombre de la base de la izquierda para crear la segunda tabla.

Diseo de datos 3 - relaciones


Asegrese de recordar las relaciones. Aqu estn las dos tablas de la ltima pgina:

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:

Group.GroupID ---> CD.GroupID

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)

Si no ve la ficha Diseador clic sobre el nombre de la base de la izquierda. Al crear la relacin


que usted debe ver esto:

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.

Explorando las implicaciones

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.

Introduzca un registro de grupo (el ID se introduce automticamente por usted)


Introduzca un registro de CD y poner el GroupID como 1 (esto debera funcionar)
Introduzca un CD con un rcord GroupID de 2 (esto no debera funcionar ya que no
hay grupo con un ID de 2)
Introduzca un segundo grupo
Trate de entrar en el segundo CD de nuevo (2 GroupID ahora existe)
Trate de eliminar el grupo 1 (no debe trabajar como existe un CD de este grupo)
Trate de eliminar el primer CD (que debera funcionar)
Intntalo de nuevo para eliminar el primer grupo (ahora debera funcionar ya que no
hay CDs)

Trate cualquier otra cosa que usted puede pensar en, as como la comprensin de las bases
de datos relacionales es vital.

Diseo de datos 4 - 1NF


Primera forma normal (1NF) es un conjunto de tres directrices utilizadas cuando la
normalizacin de una base de datos. Normalizacin puede ser y debe ser ignorado a veces
pero es reglas / formas son en realidad bastante sensata.

instructorandrescantero@gmail.com
Valores atmicos
Recurdese lo 1NF dice sobre valores atmicos

Hasta el momento la base de datos es la siguiente:

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.

Los campos calculados


Uno de los campos en la nueva tabla podra calcularse a partir de otros dos. La celebracin
de los datos utiliza ms espacio y si alguna vez quera saber la respuesta podra ser calculado
y que sera ms exacto de todos modos. Retire el campo.

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.

Diseo de datos 5 - 3NF


2NF hay ningn problema en este ejercicio ya que no hay claves primarias compuestas.

3NF dice para asegurarse de que todos los datos en una tabla depende de la clave principal
y no en cualquier otra esfera.

Echa un vistazo a la tabla CD y detectar el campo, que no depende de la clave principal.

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.

Si no puede averiguar qu campo es el vuelo estacionario clave principal aqu.

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

You might also like