Normalización - script
From Ibbddunq
Line 1: | Line 1: | ||
- | == | + | ==Motivación== |
- | + | ||
- | + | En el curso vimos una forma de llegar al esquema de una BD relacional: arrancar por un MER y traducirlo. | |
- | + | Hay otras formas, p.ej. armar una bolsa con todos los atributos que quiero y después ir separándolos en tablas. | |
- | + | ||
- | + | P.ej. te dicen ... (o bien artista y trailer, o bien funcion / formaParte / acto). | |
- | Si armamos primero el MER y después lo traducimos a MR con las reglas que vimos, la BD que resulta cumple | + | ¿Es correcta esta base? Si les preguntan por qué no, ¿qué dirían, cómo lo justificarían? |
+ | A partir de estos atributos, ¿cómo armarían un esquema de BD que tenga la misma info y que esté bien? | ||
+ | |||
+ | Hoy vamos a hablar de | ||
+ | * criterios de calidad de esquemas de BD, que se suman a las anomalías y restricciones de integridad que vimos al estudiar MR. | ||
+ | * cómo transformar un esquema en otro que sí cumpla con las restricciones de calidad adicionales. | ||
+ | |||
+ | O sea, estas restricciones también las vamos a garantizar sin necesidad de programa. | ||
+ | |||
+ | Si armamos primero el MER y después lo traducimos a MR con las reglas que vimos, la BD que resulta cumple las restricciones que vamos a ver; o sea, una buena manera de armar un esquema de MR, es armarlo en MER y después pasarlo; o hacerlo directamente en MR, pero pensar en "cómo sería el MER de esta parte" ante dudas. | ||
+ | |||
+ | Un poco para verificar que una traducción MER -> MR quedó OK, | ||
Revision as of 20:41, 8 May 2009
Motivación
En el curso vimos una forma de llegar al esquema de una BD relacional: arrancar por un MER y traducirlo. Hay otras formas, p.ej. armar una bolsa con todos los atributos que quiero y después ir separándolos en tablas.
P.ej. te dicen ... (o bien artista y trailer, o bien funcion / formaParte / acto).
¿Es correcta esta base? Si les preguntan por qué no, ¿qué dirían, cómo lo justificarían? A partir de estos atributos, ¿cómo armarían un esquema de BD que tenga la misma info y que esté bien?
Hoy vamos a hablar de
- criterios de calidad de esquemas de BD, que se suman a las anomalías y restricciones de integridad que vimos al estudiar MR.
- cómo transformar un esquema en otro que sí cumpla con las restricciones de calidad adicionales.
O sea, estas restricciones también las vamos a garantizar sin necesidad de programa.
Si armamos primero el MER y después lo traducimos a MR con las reglas que vimos, la BD que resulta cumple las restricciones que vamos a ver; o sea, una buena manera de armar un esquema de MR, es armarlo en MER y después pasarlo; o hacerlo directamente en MR, pero pensar en "cómo sería el MER de esta parte" ante dudas.
Un poco para verificar que una traducción MER -> MR quedó OK,
Criterios
Se pueden ver de dos formas
1. evitar anomalías de actualización (pág 401-402). Ejemplo: meter ARTISTA y TRAILER en una misma tabla.
- de inserción: no sabés qué insertar (trailer no asignado) y/o tenés que meter algunos valores iguales que otra fila, (2do artista d un trailer).
- de eliminación: se va el que vivía en un trailer.
- de modificación: si cambio un dato de un trailer (ponele que tenía el modelo mal), lo tengo que cambiar en todos los artistas que vivan en el mismo trailer.
2. pautas, que vienen a atacar los mismos problemas
- no mezclar atributos de distintas entidades en la misma tabla.
- que no quede info repetida excepto FKs.
Otro menos importante: no abusar de los null
(acá ver si hablamos de tuplas espurias al joinear)
Dependencias funcionales
Definición:
X -> Y si t1(X) = t2(X) => t1(Y) = t2(Y)
¿A qué les suena? Claro que sí, a clave.
Las 6 reglitas.
Las 3 FNs + FNBC.
¡fin!