maquetación de bases de datos relacionales. ➔ Conocer la terminología usada en la esquematización de datos. ➔ Conocer las redundancias y discordancias que pueden existir en bases de datos relacionales sin normalización
de una esquema relacional a inconsistencias lógicas. Seguir las normas formales sirve para: ➔ Evitar la redundancia de los datos. ➔ Disminuir problemas de actualización de los datos en las tablas. ➔ Proteger la integridad de los datos.
para que cumpla normas formales. Este proceso inicia capturando los requerimientos funcionales del sistema y decidiendo una forma normal a la cual normalizar el esquema.
registros. Por lo general las tablas se catalogan en Entidades y Pivotes las segundas siendo asignaciones de 2 o más entidades. Columna También definido como atributo o campo. Es un conjunto de datos del mismo tipo. Sirven para organizar y garantizar la estructura de un registro en una tabla. Registro También definido como fila o tupla. Representa un elemento único que sigue la estructura de columnas de la tabla.
o tuplas de columnas que sirven para identificar un registro dentro de una tabla o identificar un registro en una tabla externa. Llave Compuesta También conocida como superclave o super llave es una llave que se compone de 2 o más columnas sin ordenamiento diferenciadas por la unicidad de las columnas. Toda llave compuesta es una llave.
tabla de forma única. Ejemplo ➔ El nombre de usuario al ser único puede ser usado para diferenciar un registro de usuarios. ➔ El nombre y apellido también pueden actuar como llave candidata compuesta.
Comúnmente se elige la llave candidata con la menor cantidad de columnas que no se espera se actualicen de forma regular. Ejemplo El nombre de usuario puede ser actualizado y esto implica actualizar todos los registros externos relacionados. Nombre y apellido no se espera que varíen pero al ser dos columnas alfanuméricas es preferible crear una columna numérica id.
registros externos mediante una llave primaria externa. Las llaves foráneas no necesitan ser únicas en la tabla referencial pero deben serlo en la tabla referenciada. Las llaves foranes compuestas también se conocen como dependencias multivaluadas.
que se puede derivar a partir de otros datos Ejemplo Si se sabe la fecha de nacimiento de un usuario se puede deducir la edad. Las redundancias pueden traducirse fallos lógicos al tener más de una forma de obtener la información.
indivisibles y simples. ➔ Cada tabla requiere tener una llave primaria. Existen otros criterios como el no poder guardar un registro con llave primaria nula los cuales son obligatorias en las RMDB comerciales. Atomicidad de Columnas
pasa si quieres guardar un cuarto teléfono? ¿Cómo evitas que se guarden valores nulos? ¿Cómo editar/borrar un sólo teléfono sin editar los demás? ¿Cómo evitas que se repitan los teléfonos? ¿Qué tamaño necesita tener la columan telefono?
un registro este no afecte a otros datos dentro del mismo registro. La 1FN es la regla más fácil de aprender e implementar, también es un buen masomenometro sobre qué tantas modificaciones se deben realizar a un esquema para ser normalizado.
depende única y completamente de la clave primaria. Es decir ➔ No existen redundancias de columnas en la misma tabla ➔ Las columnas dependen de la totalidad de la clave primaria y no sólo de una parte. Definición por Llave Primaria
un registro sin que esto afecte registros dentro de esa misma tabla. La 2FN necesita un buen entendimiento de lo que son las llaves candidatas y primarias ya que crear columnas auto incrementales en tablas aunque no se requieren dificulta el poder reconocer una dependencia parcial.
tabla este cambio no afecte la información existente en otras tablas evitando que la misma información diverga dependiendo de que tabla se está observando. Con esta regla se puede identificar en la tabla correcta en la cual guardar información.
común detener el estudio de formas normales en este punto. Ya que las reglas 3.5FN, 4FN y 5FN cubren casos muy particulares difíciles de encontrar y la regla 6FN puede ser demasiado costosa de alcanzar.
primaria son las mínimas para determinar la llave. Es decir no existen redundancias de columnas o transitivas en las llaves primarias. ~90% de los esquemas que cumplen 3FN cumplen también 3.5FN
si se borra el registro de estudiante 456? ¿Cómo se va a saber que Darwin imparte Biology? ¿Cómo se valida que Shakespeare de clase de Literature si no tiene alumnos asignados?
¿Cómo se asocia un Advisor a un Major sin que tenga asignado un estudiante? ¿Cómo evitas que un Student ingrese 2 veces el mismo Major? Por ejemplo enlistandose con EINSTEN y BOHR siendo que ambos imparten física.
3.5FN. Sin embargo esto no siempre es práctico ya que no existe una forma esquematizada que responda correctamente la última pregunta de la diapositiva anterior. Por lo tanto sólo es práctico llegar a la 3.5FN si se pueden usar otras restricciones externas como triggers sql o validaciones en un lenguaje de programación que use el sql.
un tiempo estimado de envío? ¿Dónde agregaría un costo por pizza y costo por envío? Escribe una query que te diga que variedades de pizza se pueden pedir en shelbyville
lista de reparto de pizzas de restaurantes por áreas implica utilizar una sentencia SQL la cual podría resultar en una carga de tiempo de ejecución para las consultas en la base de datos y añadir complejidad a toda consulta relacionada. Es conveniente crear tablas `view` con estas sentencias cuando lo permite la base de datos.
tanto el psiquiatra y la aseguradora estan capacitados para tratar condición. ¿Qué pasa si entra un nuevo doctor que no tenga asociada aún ninguna aseguradora? ¿Qué pasa si se descubre una nueva condición? ¿Qué pasa si un doctor aprende a tratar una nueva condición? ¿Como sabes que aseguradora ofrece más cobertura de condiciones?
doctor tratando determinada condición? ¿Dónde se agregarían la cantidad de visitas que tiene derecho un cliente de una aseguradora por condición? ¿Cómo sería la consulta SQL que re creé la tabla no normalizada?
tabla por 3 y para poder generar la lista de condiciones que atiende cada doctor y aseguradora se requiere una sentencia SQL compleja que relacione las 3 tablas con `join` simultáneamente. Al igual que la 4FN esto puede impactar en el tiempo de ejecución y se recomienda crear `view` cuando sea posible.
donde cada valor apunta a un registro único en una tabla, las restricciones de dominio especifica un rango permitido para valores de una columna el cual se asocia a un registro de una tabla. Ejemplo catalogar personas en ‘alta’, ‘promedio’ y ‘baja’ dependiendo de su estatura.
en la práctica incluso para programadores experimentados. Mientras que 6FN elimina todas las redundancias en la mayoría de las bases de datos, es la FN más costosa de alcanzar. El uso más común es en bases de datos que manejan un alto flujo de información como data warehouses y big data donde las anomalías generan un impacto acumulativo por lo que el costo de implementar 6FN resulta menor. Algunos sistemas 6FN son demasiado complejos para ser analizados por un humano y se recurre a inteligencia artificial.
ya bastante difícil de alcanzar y resuelve casi todas las redundancias imaginables por un humano no se ha visto la necesidad de explorar más allá de esta forma normal. Además como ya se dijo los sistemas que más usan esta forma normal son basados en inteligencia artificial La opinión de este autor que si alguna vez se llega a encontrar una 7FN o superior esta no será escrita por un humano si no por una inteligencia artificial para el uso exclusivo de otras inteligencias artificiales