Академический Документы
Профессиональный Документы
Культура Документы
3.1 Introducción
En el capítulo anterior se mencionaron 3 tipos de modelado: conceptual, lógico y
físico.
Relación Películas
3.3.2 Atributos
3.3.3 Esquemas
Es el nombre que se le da a una relación y el conjunto de atributos en ella.
3.3.4 Tuplas
Cada uno de los renglones en una relación conteniendo valores para cada uno de
los atributos.
3.3.5 Dominios
Se debe considerar que cada atributo (columna) debe ser atómico, es decir, que
no sea divisible, no se puede pensar en un atributo como un "registro" o
"estructura" de datos.
Las relaciones son un conjunto de tuplas, no una lista de tuplas. El orden en que
aparecen las tuplas es irrelevante.
Las tablas siguientes muestran las reglas que se deben seguir para poder crear
dicho esquema.
Debil
A
LLP_A atribs_A
B1
LLP_B1 atribs_B1
B2
B3
A_B1
donde:
Ejemplo:
Para el ejemplo de la figura tendríamos el esquema:
escuela
id url nombre
departamento
curso
profesor
id nombre extension
estudiante
id nombre carrera
profesor_curso
estudiante_curso
modelo e-r
de generalización a tablas
dos posibilidades:
1.
o crear una tabla para el conjunto de entidades A de
mayor nivel
columnas (A) = atributos(A)
2.
1)
LLP_A atribs_A
B1
atribs_B1 LLP_A
B2
atribs_B2 LLP_A
B3
atribs_B3 LLP_A
donde:
2)
B1
B2
B3
1) Cada tabla que provenga de una entidad contiene por si misma una llave
2) Para las tablas resultado de una relación se toman las llaves primarias de
ambas entidades y éstas conforman la nueva llave primaria, excepto en un caso
como el que sigue:
Podemos observar que existe una relación m-m entre "actor" y "serie",
demostrando que un actor puede actuar en muchas series y que muchas
series tendrán a los mismos actores.
actor_serie
3.5 Normalización
Una vez creadas las tablas hay que verificarlas y revisar si aún se puede reducir u
optimizar de alguna manera.
3.5.1.1 Definición
entonces podemos simplemente escribir este conjunto de FDs como: A1, A2, ...An
---> B1,B2,...Bm
podemos entonces afirmar que: title, year --> length, filmType, studioName
*Nota:
teniendo R(A,B,C,D,E)
si A+=(A,B,C,D,E), entonces A--> R entonces A es superllave
entrada: ,F
salida: +
result= =
while changes to result do
=result
for each ( --> F )
do
begin
result -->
if result then (reflexividad)
(transitividad)
end
end
Una tabla se encuentra en 1a NF, si todos sus atributos son atómicos (indivisibles)
El ejemplo clásico:
En 1a. NF
Si tenemos la tabla:
calificaciones_cursos
NO se encuentra en 2a NF ya que
curso
estud_curso
La intuición
Las dependencias funcionales
{ R1 R2 --> R1 } F+
o bien si
{ R1 R2 --> R2 } F+
F' = F1 F2
depto,clave_curso--> descripción
3.5.6.1 Características
result= {R}
done=false
calcular F+
while (! done) do
if(existe un esquema Ri en result que no está
en BCNF) then
está en F+ y =0
result= ( result - Ri ) ( Ri - ) ( , )
else
done=true
end
Ejemplo:
R(A,B,C,D)
(A,B) (B,C,D)
3.5.7.1 Características
Un esquema relacional se encuentra en 3NF si para toda dependencia funcional X
--> A:
Se puede observar que las 2 primeras restricciones son las mismas que para BCNF
pero existe una tercera que da flexibilidad a las relaciones.
Podemos afirmar entonces que: "Si una relación está en BCNF, está también 3NF;
pero si una relación está en 3NF no necesariamente está en BCNF".
se descompondría en:
Se puede observar que al no cumplir con las 2 primeras no está en BCNF pero
gracias al relajamiento si está en 3NF
Otro ejemplo:
deptos
empleados
Aplicando la descomposición:
deptos
empleados
id_empleado nombre_depto
Se observa como la relación no solo está en 3NF sino también en BCNF por
cumplir con la segunda regla.
El atributo A es extraño en si A y
F lógicamente implica (F - { --> }) {( - A ) --> }
Ejemplo:
F = { A --> C , AB --> C }
El atributo A es extraño en si A y
el conjunto de dependencias (F - { --> }) { --> ( - A ) } implica
lógicamente a F
Ejemplo:
F = { A --> C , AB --> CD}
*El algoritmo anterior garantiza que en una descomposición no haya pérdida (al
incluir por lo menos en una relación una de las superllaves) y que se preserven
las dependencias funcionales (al incluir cada una de ellas).
Ejemplo:
student
Fc:
sid -->name,street,city
street, city-->zip
zip --> city
Descomponer en 3NF
R1
sid -->name,street,city
R2
street, city-->zip
zip --> city
Como se mencionó anteriormente: "Si una relación está en BCNF, está también
3NF; pero si una relación está en 3NF no necesariamente está en BCNF".
3.6 Conclusiones
De manera que las metas del diseño de bases de datos con dependencias
funcionales son:
BCNF*
Descomposición sin pérdida
Preservación de dependencias
* Llegar a una forma BCNF puede llegar a ser complicado, debido a esto en
muchas ocasiones es suficiente con alcanzar la 3NF para lograr un buen diseño.