Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Video de habilidades
Cierre
Referencias
Descargá la lectura
Lección 1 de 6
Video de inmersión
Verify to continue
We detected a high number of errors from your
connection. To continue, please confirm that
you’re a human (and not a spambot).
Modelo de datos
Los modelos de datos están integrados por una serie de conceptos para describir los datos, sus
relaciones y restricciones y son útiles para representar, de manera abstracta, el mundo real. Su propósito
es, además de facilitar la descripción de los datos y sus relaciones, permitir la representación de los
datos y hacerlos comprensibles. Por esta razón, los modelos de datos facilitan el diseño de bases de
datos. Para especificar la estructura y las restricciones, se usa un lenguaje de definición de datos (Data
Definition Language, DDL, por sus siglas en inglés) y para especificar la manipulación de los datos se
utiliza el lenguaje de manipulación de datos (Data Manipulation Language, DML, por sus siglas en
inglés). Un DML ofrece mecanismos para recuperar datos de la base de datos vigente y para actualizar
datos. Algunas de las utilidades que tiene un modelo de datos son facilitar la especificación de los tipos
y la forma en que los datos están organizados en una base de datos y servir de base para desarrollar
metodologías de diseño y lenguajes de alto nivel para consultar y manipular dichos datos.
Un modelo de datos debe tener (según [Codd80]) “… un conjunto de elementos atómicos y de relaciones
entre estos elementos, denominado espacio de datos, una especificación de restricciones aplicadas a
las relaciones en el espacio de datos, denominada restricciones de definición de tipo, un conjunto de
operaciones para crear y destruir elementos y modificar las relaciones entre estos, denominada
operaciones de manipulación, y un lenguaje de predicados para identificar de la base de datos
elementos individuales por medio de sus propiedades lógicas”.
Un sistema de gestión de bases de datos (SGBD) es una capa de software que necesitamos si
deseamos crear, manipular y recuperar datos desde una base de datos. Como herramienta, sirve para
realizar tareas generales, como estructurar, almacenar y controlar los datos, y provee interfaces de
acceso a esta. Dentro de las tareas fundamentales que este sistema realiza, podemos mencionar los
siguientes: mantenimiento de la integridad, seguridad de acceso, mecanismos de recuperación cuando
surgen fallos tanto físicos como lógicos, control de concurrencia al acceso de los datos y eficiencia del
sistema, que se evalúa, por lo general, según el tiempo que lleva responder preguntas de usuarios.
Mediante el DDL y el DML, respectivamente, un usuario define una base de datos (tipos, estructura y
restricciones) y puede recuperar, actualizar, insertar o borrar datos. Los usuarios no necesitan conocer
detalles de almacenamiento de la base de datos, solo deben tener una vista abstracta de los datos. Por
esta razón, la arquitectura de un SGBD, generalmente, se basa en la arquitectura de tres niveles
(externo, conceptual e interno) ANSI-SPARC de la figura 1, tomada de [AA93]. Se trata de separar la
forma en que los usuarios ven los datos de los detalles de almacenamiento físico de estos datos.
Este principio de INDEPENDENCIA DE DATOS hace posible que el administrador de la base de datos
(BD) cambie la estructura física (nivel interno) sin que cambie la manera en la cual los diferentes
usuarios ven los datos (nivel externo) se afecte. El nivel interno describe la forma como los datos se
almacenan en la base de datos (estructuras de datos, espacios de almacenamiento, índices, formato de
registros). El nivel más bajo, el físico, trata con los mecanismos de almacenamiento físico que el
sistema operativo utiliza (dispositivos físicos). Esto es lo que se conoce como “arquitectura funcional de
una base de datos”. Veamos entonces los diferentes niveles que puede tener una base de datos, según
su función.
Como programadores, es común que interactuemos con el administrador de la base de datos. Por eso es
necesario conocer cuál es el rol que este cumple, y veremos que en algunos casos podremos compartir
tareas en común. Sus tareas son las siguientes:
Definir estructuras. Esto es, la creación de la base de datos: tablas y sus relaciones.
Definir estructuras físicas, es decir, qué archivos se van a crear para cada esquema.
Monitorear rendimiento, con el objetivo de optimizar consultas y el acceso a los datos para
mejorar la experiencia del usuario final.
Las siglas SGI o MIS, en inglés se utilizan para denominar un sistema gerencial de información. Un SGI
es el resultado de la interacción colaborativa de varias partes, como por ejemplo personas, tecnologías y
procedimientos.
3 Cantidad: su presentación debe ser orientada al usuario y mostrará mayor nivel de detalle a
un operario y menor detalle a un gerente, para que pueda tomar decisiones oportunas.
4 Relevante: la información brindada debe estar relacionada con sus tareas y
responsabilidades.
Componentes de un DBMS
Componente Definición
Para comprender mejor cada uno de estos componentes y sus relaciones, podemos observar en la
siguiente gráfica cómo es su interacción.
Disponibilidad.
Confidencialidad: desde violar leyes de privacidad hasta seguridad
nacional.
Este último punto es muy importante. Si no contamos con un buen sistema de seguridad
a nivel de datos y hard, se puede producir pérdida o degradación de la información.
También es importante proteger la información almacenada en términos de integridad,
protegerla de modificaciones inadecuadas.
Medidas de control
2 Control de flujo: sirve para evitar que cierta información llegue a usuarios no autorizados.
Esto se realiza otorgándoles a los usuarios diferentes perfiles o privilegios, según la
información que estén autorizados a ver.
3 Cifrado de datos: se realiza con algoritmos de cifrado, con clave, para disfrazar un
mensaje.
Seguridad y DBA
Respaldo y recuperación
En todo sistema de base de datos, es vital contar con una copia de los datos originales, para poder
recuperarlos en caso de que ocurra una pérdida parcial o total de la información.
Las copias de seguridad pueden almacenarse en diferentes dispositivos, cada uno de los cuales posee
ventajas y desventajas. Al momento de seleccionar uno, hay que tener en cuenta diferentes aspectos,
como, por ejemplo, facilidad de traslado, duplicidad de información, seguridad de los datos.
Hay diferentes estrategias de backups o respaldos, pero a la hora de seleccionar una debemos tener en
cuenta la capacidad del almacenamiento disponible, si pensamos en duplicar datos. Lo usual es hacer
una copia inicial y luego hacer copia de las modificaciones que van ocurriendo. Este tipo de resguardo se
denomina “incremental”, ya que cada copia NO posee la totalidad de los datos, sino que contiene la
diferencia de aquellos datos modificados.
Tipos de respaldo
Control de cambios
–
Este tipo de respaldo consiste en copiar los archivos que solo han sido modificados. Varios sistemas de
archivos cuentan con un bit de archivo para cada archivo, que nos permite identificar si el archivo fue
modificado o no, luego de la copia anterior. Si ha sido modificado se resguarda, en caso contrario, no.
Otra forma de saber si el sistema de archivos ha sido modificado es mirando la fecha de creación o
modificación del archivo.
Si al momento de ejecutarse el backup la base de datos está siendo usada, corremos el riesgo de que
existan archivos abiertos y que se esté trabajando sobre esos archivos. Si esto sucede, posiblemente el
contenido del disco no refleje exactamente lo que el usuario ve. Nos resulta raro que esto pueda ocurrir,
pero es muy frecuente.
Sí debemos tener en cuenta que este tipo de copia de seguridad suele tardar más tiempo. A fin de copiar
un archivo en uso, es muy importante que la copia de seguridad entera represente un único paso, lo cual
es todo un desafío cuando se está copiando un archivo en continua modificación. En estos casos, el
archivo de base de datos está bloqueado para evitar cambios, pero debemos implementar un método
para asegurar que el snapshot original es preservado con tiempo de sobra para ser copiado, incluso
cuando se mantengan los cambios.
Verdadero.
Falso.
SUBMIT
Un modelo de datos permite describir la estructura de una base de datos, el tipo datos intervinientes y la
forma en que se relacionan. A su vez establece las restricciones de integridad y un conjunto de
condiciones sobre los datos, que deben cumplirse para reflejar la realidad deseada.
Por último, se plantean las operaciones de manipulación de los datos: típicamente, operaciones de
agregado, borrado, modificación y recuperación de los datos de la base. Presentaremos en esta unidad 3
modelos de datos de gran importancia. Si bien, los 2 primeros ya casi están en desuso, nos permiten
conocer la historia del modelo relacional que es el último en analizar.
Modelo de red
Los datos son representados como colección de registros, de estructura arbitraria. Las relaciones entre
estos son punteros o enlaces, y permiten relaciones uno a muchos y muchos a muchos. Como
desventaja, podemos mencionar que poseen una estructura compleja para problemas simples. Tienen
algunas restricciones al momento de las implementaciones, como por ejemplo no poder insertar el detalle
de una factura (hijo) si no hay una cabecera de factura (padre). Las órdenes implican acciones físicas:
Modelo jerárquico
El modelo jerárquico es una implementación particular del modelo de red. Los datos están representados
como colección de registros, pero con estructura padre/hijo. Las relaciones también son punteros o
enlaces y permiten las relaciones de uno a uno y uno a muchos. Como restricción, podemos mencionar
que todo hijo tiene un solo padre y que un padre puede tener uno o más hijos.
Se localiza a su registro
Insert
padre y luego inserta.
Modelo relacional
El modelo relacional tiene base en el concepto de relación matemática, más precisamente en la teoría
de conjuntos. Intuitivamente, las relaciones se asocian con tablas nombradas cuyas columnas
representan atributos que también tienen asociado un nombre. Las filas de las tablas se denominan
tuplas. Los valores que toman esas tuplas se extraen de conjuntos de constantes, llamados dominios.
Todas las tablas constituyen la estructura de la base de datos que se representa en un esquema de base
de datos (nivel intensional) y su contenido en una instancia de base de datos (nivel extensional). La
propuesta inicial del modelo de datos relacional caracteriza las relaciones como la estructura
fundamental para describir y organizar los datos y el álgebra relacional para manipularla.
2 reglas de inserción-actualización-eliminación, y
3 un álgebra relacional.
Para diseñar un modelo de datos relacional, se utilizan una serie de normas o reglas denominada formas
normales y son las que establecen el fundamento teórico de la normalización.
Modelo relacional
Las bases de datos recopilan datos. Estos pueden ser manipulados con facilidad, así como mostrados o
presentados de diversas maneras. El proceso de construir una base de datos se denomina “diseño de
base de datos”.
La definición del problema es el proceso por el cual se determina la organización de una base de datos,
incluidos su estructura, contenido y las aplicaciones que se han de desarrollar.
Durante mucho tiempo, el diseño de bases de datos fue considerado una tarea para expertos: más un
arte que una ciencia. Sin embargo, se ha progresado mucho en el diseño de bases de datos y este se
considera ahora una disciplina estable, con métodos y técnicas propios.
Captura de requerimientos
Para definir correctamente el problema, lo primero que debemos hacer es realizar un diseño conceptual
que parte de las especificaciones de los requisitos del usuario. El resultado será el esquema conceptual
de la base de datos que corresponderá a un modelo entidad-relación (E/R).Un esquema conceptual es
una descripción de alto nivel de la estructura de la base de datos, independientemente del DBMS que se
vaya a utilizar para manipularla.
Un modelo conceptual es un lenguaje que se utiliza para describir esquemas conceptuales. El objetivo
del diseño conceptual es describir el contenido de los datos de la base de datos (DB) y no las
estructuras de almacenamiento que se necesitarán para manejar esta información.
Podemos asemejar una relación a un archivo, una tupla a un registro y un atributo a un campo. Sin
embargo, estos parecidos son aproximados en el mejor de los casos. Una relación no debe pensarse
como un solo archivo sino como un archivo disciplinado, gracias a lo cual se simplifican
considerablemente las estructuras de datos con las que debe interactuar el usuario, que, asimismo,
facilita los operadores necesarios para manejar dichas estructuras.
El primer paso para la definición del problema, el diseño de una base de datos, es la producción del
esquema conceptual. Normalmente, se construyen varios esquemas conceptuales, cada uno para
representar las distintas visiones que los que los usuarios tienen de la información. Cada una de estas
visiones suele corresponder a las diferentes áreas funcionales de la empresa, como, por ejemplo,
producción, ventas, recursos humanos, etcétera. A los esquemas conceptuales correspondientes a cada
vista de usuario se los denomina “esquemas conceptuales locales”. Cada uno de estos esquemas se
compone de entidades, relaciones, atributos, dominios de atributos e identificadores. El esquema
conceptual también tendrá una documentación, que se irá produciendo durante su desarrollo. Las tareas
que se deben realizar en el diseño conceptual son las siguientes:
El modelo entidad-relación (E/R) tiene base en una representación del mundo real en que los datos se
describen como entidades, relaciones y atributos. El principal concepto del modelo E/R es la entidad,
que es una “cosa” en el mundo real con existencia independiente. Una entidad puede ser un objeto físico
(una persona, un auto, una casa o un empleado) o un objeto conceptual (una compañía, un puesto de
trabajo o un curso universitario). En nuestro ejemplo de la sección anterior, podemos definir dos
entidades: alumnos y cursos. Cada entidad tiene propiedades específicas, llamadas “atributos”, que la
describen. Por ejemplo, un curso tiene un nombre, un cupo máximo, un profesor.
Una entidad particular tiene un valor para cada uno de los atributos, y cada uno de ellos posee un
dominio, que corresponde al tipo del atributo. Por ejemplo, matrícula tiene como dominio al conjunto de
los enteros positivos, y nombre tiene como dominio al conjunto de caracteres. Para todo conjunto de
valores de una entidad, debe existir un atributo o combinación de atributos que identifique a cada entidad
en forma única. Este atributo o combinación de atributos se denomina “llave (primaria)”. Por ejemplo, el
número de matrícula es una buena llave para la entidad alumno, pero no así el nombre, porque pueden
existir dos personas con el mismo nombre.
Una relación se puede definir como una asociación entre entidades. Por ejemplo, la entidad libro puede
estar relacionada con la entidad persona por medio de la relación “está pedido”. La entidad curso puede
estar relacionada con la entidad alumno mediante la relación “tiene”. Siguiendo con la relación
mencionada “Curso-tiene-Alumno”, también surge la necesidad de indicar la cardinalidad de la relación.
En este caso, tenemos que un (1) curso puede tener muchos (N) alumnos. Según lo que venimos
detallando, podemos tener un modelo entidad-relación como el siguiente:
Figura 4. Modelo entidad-relación Curso-Alumno
Vemos entonces que, las entidades se indican con un rectángulo, la relación, con un rombo y
enumerando las diferentes cardinalidades, y por último, los atributos, con elipses o círculos. Siempre
debemos indicar el nombre para cada elemento (entidad, atributo, relación).
En el siguiente video podrás ver una explicación detallada del modelo entidad-relación, que
utiliza un ejemplo similar al de la figura anterior.
SUBMIT
SUBMIT
Reglas de Codd
En 1970 el modo en que se veían las bases de datos cambió por completo cuando E. F. Codd introdujo
el modelo relacional. En aquellos momentos, el enfoque existente para la estructura de las bases de
datos utilizaba punteros físicos (direcciones de disco) para relacionar registros de distintos ficheros. Si,
por ejemplo, se quería relacionar un registro con otro, se debía añadir al registro un campo que
contuviera la dirección en disco del registro. Este campo añadido, un puntero físico, siempre señalaría
desde el registro al registro. Codd demostró que estas bases de datos limitaban en gran medida los tipos
de operaciones que los usuarios podían realizar sobre los datos. Además, estas bases de datos eran
muy vulnerables a cambios en el entorno físico. Si se añadían los controladores de un nuevo disco al
sistema y los datos se movían de una localización física a otra, se requería una conversión de los
ficheros de datos. Estos sistemas tenían base en el modelo de red y el modelo jerárquico, los dos
modelos lógicos que constituyeron la primera generación de los DBMS.
El modelo relacional representa la segunda generación de los DBMS. En él, todos los datos están
estructurados a nivel lógico (como tablas formadas por filas y columnas) aunque a nivel físico pueden
tener una estructura completamente distinta. Un punto fuerte del modelo relacional es la sencillez de su
estructura lógica. Sin embargo, detrás de esa simple estructura hay un fundamento teórico importante del
que carecen los DBMS de la primera generación, lo que constituye otro punto a su favor.
Codd se dio cuenta de que existían bases de datos en el mercado que decían ser relacionales, pero vio
que esas bases de datos solo guardaban la información en las tablas, sin estar estas tablas realmente
normalizadas. Entonces, publicó las 12 reglas que un verdadero sistema relacional debería tener. Ya
sabemos que en la práctica es muy difícil que todas sean aplicadas. Mientras más reglas apliquen a un
sistema, más “relacional” podrá considerarse.
Toda la información en un RDBMS está explícitamente representada de una sola manera por valores
en una tabla. Cualquier cosa que no exista en una tabla no existe del todo. Toda la información,
incluyendo nombres de tablas, nombres de vistas, nombres de columnas, y los datos de las
columnas deben estar almacenados en tablas dentro de las bases de datos. Las tablas que contienen
tal información constituyen el Diccionario de Datos. Esto significa que todo tiene que estar
almacenado en las tablas. Toda la información en una base de datos relacional se representa
explícitamente en el nivel lógico exactamente de una manera: con valores en tablas. Por tanto, los
metadatos (diccionario, catálogo) se representan exactamente igual que los datos de usuario. Y
puede usarse el mismo lenguaje (ej. SQL) para acceder a los datos y a los metadatos (regla 4).
Cada ítem de datos debe ser lógicamente accesible al ejecutar una búsqueda que combine el nombre
de la tabla, su clave primaria, y el nombre de la columna. Esto significa que dado un nombre de tabla,
dado el valor de la clave primaria, y dado el nombre de la columna requerida, deberá encontrarse uno
y solamente un valor. Por esta razón la definición de claves primarias para todas las tablas es
prácticamente obligatoria.
La información inaplicable o faltante puede ser representada a través de valores nulos. Un RDBMS
(Sistema Gestor de Bases de Datos Relacionales) debe ser capaz de soportar el uso de valores nulos
en el lugar de columnas cuyos valores sean desconocidos o inaplicables.
La descripción de la base de datos es almacenada de la misma manera que los datos ordinarios, esto
es, en tablas y columnas, y debe ser accesible a los usuarios autorizados. La información de tablas,
vistas, permisos de acceso de usuarios autorizados, etc., debe ser almacenada exactamente de la
misma manera: En tablas. Estas tablas deben ser accesibles igual que todas las tablas, a través de
sentencias de SQL (o similar).
Debe haber al menos un lenguaje que sea integral para soportar la definición de datos, manipulación
de datos, definición de vistas, restricciones de integridad, y control de autorizaciones y
transacciones. Esto significa que debe haber por lo menos un lenguaje con una sintaxis bien definida
que pueda ser usado para administrar completamente la base de datos.
Todas las vistas que son teóricamente actualizables deben ser actualizables por el sistema mismo.
La mayoría de las RDBMS permite actualizar vistas simples, pero deshabilitan los intentos de
actualizar vistas complejas.
La capacidad de manejar una base de datos con operandos simples aplica no sólo para la
recuperación o consulta de datos, sino también para la inserción, actualización y borrado de datos.
Esto significa que las cláusulas para leer, escribir, eliminar y agregar registros (SELECT, UPDATE,
DELETE e INSERT en SQL) deben estar disponibles y operables, independientemente del tipo de
relaciones y restricciones que haya entre las tablas.
aplicación y de la actividad de usuarios vía terminales debería ser predecible basados en la definición
lógica de la base de datos, y este comportamiento debería permanecer inalterado,
independientemente de los cambios en la definición física de esta.
Los programas de aplicación y las actividades de acceso por terminal deben permanecer lógicamente
inalteradas cuando quiera que se hagan cambios (según los permisos asignados) en las tablas de la
base de datos. La independencia lógica de los datos especifica que los programas de aplicación y las
actividades de terminal deben ser independientes de la estructura lógica, por lo tanto, los cambios en
la estructura lógica no deben alterar o modificar estos programas de aplicación.
Todas las restricciones de integridad deben ser definidas a nivel de datos, y almacenadas a nivel de
catálogo, no en el programa de aplicación.
La clave primaria puede tener valores en blanco o nulos en ninguno de sus componentes.
(Norma básica de integridad).
Para cada valor de clave foránea es imprescindible que exista un valor de clave primaria
concordante. La combinación de estas reglas asegura la Integridad referencial. (Fabián, 16 de
febrero de 2012, recuperado de https://goo.gl/YURydK)
Regla N°11 - La regla de la distribución
El sistema debe poseer un lenguaje de datos que pueda soportar que la base de datos esté
distribuida físicamente en distintos lugares sin que esto afecte o altere a los programas de aplicación.
El soporte para bases de datos distribuidas significa que una colección arbitraria de relaciones, bases
de datos corriendo en una mezcla de distintas máquinas y distintos sistemas operativos y que esté
conectada por una variedad de redes, pueda funcionar como si estuviera disponible como en una
única base de datos en una sola máquina.
Si el sistema tiene lenguajes de bajo nivel, estos lenguajes de ninguna manera pueden ser usados
para violar la integridad de las reglas y restricciones expresadas en un lenguaje de alto nivel (como
SQL). Algunos productos solamente construyen una interfaz relacional para sus bases de datos No
relacionales, lo que hace posible la subversión (violación) de las restricciones de integridad. Esto no
debe ser permitido (Reglas de Codd, s.f, https://bit.ly/2VaHARB).
Dependencia funcional
Las formas normales son sobres que se deben utilizar en el diseño de una base de datos y el sustento
conceptual de la normalización. Actualmente, se encuentran definidas cinco formas normales
mencionadas por su orden, además de una especialización de la tercera forma normal denominada forma
normal Boyce-Codd. Las formas normales tienen base en los siguientes conceptos:
Dependencia funcional (DF) y dependencia funcional completa (DFC).
Dependencia de reunión.
Siendo a y b atributos de una misma relación T, se dice que b es funcionalmente dependiente de a si,
para el mismo valor de a, tiene asociado un único valor de b, o, lo que es lo mismo, en todas las tuplas
de T en las que el atributo a toma el mismo valor v1, el atributo b toma también un mismo valor v2.
Los atributos a y b pueden ser simples o compuestos (formados por la agregación de varios atributos).
Los atributos funcionalmente dependientes pueden o no formar parte de la clave primaria de la tabla, de
una clave candidata o de una clave foránea de otra tabla.
Claramente, a → b no implica b → a. Pueden repetirse los valores del atributo b para distintos valores de
a (Universidad Autónoma del Estado de Hidalgo, 2017, https://goo.gl/97SkxS).
Veamos un ejemplo.
Punto de
venta y Nombre
Fecha Id cliente Total
comproban cliente
te
A B
Consideremos el ejemplo de una tabla que contiene datos de comprobantes. Podemos observar
claramente que el atributo nombre cliente depende funcionalmente del Id cliente.
a →b.
Dada una relación T, siendo x y z atributos compuestos pertenecientes a T, se dice que z depende
funcionalmente de x de forma completa si z depende de x y no depende de ningún subconjunto de x. La
dependencia funcional se representa como z => x. Si z es un atributo simple y z → x, entonces la
dependencia funcional es, con seguridad, completa.
Dependencia multivaluada
En una relación T, con los atributos a, b y c existe una dependencia multivaludada de b con respecto a si
los posibles valores de b para un par de valores de a y c dependen únicamente del valor de a.
Características:
Debemos observar que, para cada atributo de la relación, haya una evidente repetición de
valores que nos haga pensar en redundancia de datos.
Debe observarse que dos de los atributos sean independientes entre sí funcionalmente.
El tercer atributo establece una dependencia funcional con los otros dos.
Dependencia de reunión
Características:
Normalización
Cuando se trabaja sobre la normalización de un modelo para resolver un problema, se está realizando un
análisis de la lógica funcional de este. Esta acción de entender un problema permite identificar datos con
características y propiedades que dan origen y establecen los atributos. Muchos de estos se encuentran
ligados entre sí con determinada dependencia de funcionamiento.
Los atributos (datos) responden a una mecánica interna de funcionalidad que podríamos definir como
procesos internos. Estos procesos dan el estado de asociación y dependencia de los atributos y generan
cierta definición de cómo se asocian estos entre sí. Las colecciones de atributos asociados
semánticamente con un fin común permiten individualizar las entidades que conforman la estructura
lógica. La aplicación de las formas normales permite que el entendimiento que se está realizando del
problema se represente en un modelo normalizado de solución.
Terminología
Entidad
Atributo
Instancia
Dominio
Entidad
Una entidad comparte los mismos principios de definición que una relación, pero solo en el diseño de la
estructura, sin hacer énfasis en sus características físicas y de almacenamiento.
Atributo
Se denomina atributo a cada componente de una entidad que califica y establece una propiedad dentro
de ella. En una entidad los atributos tienen un nombre único y no poseen un orden específico.
Instancia
Se denomina instancia a una ocurrencia de valores o al conjunto de valores que conforma un mismo
grupo. Una instancia dentro de una entidad encuentra correspondencia con una tupla dentro de la
relación. Las instancias son combinaciones ordenadas de valores irrepetibles. Una instancia de valores
tiene una única posibilidad de existir dentro de la entidad. Las instancias no tienen orden.
Dominio
Formas normales
La dependencia funcional brinda la base conceptual para las siguientes formas normales:
Una relación está en primera forma normal si y solo si todos los dominios simples subyacentes de los
atributos poseen valores atómicos y monovalentes.
Se refiere a que todos los atributos que componen una entidad tienen un único dominio y que, por ello,
este es simple. Los atributos se encuentran reducidos conceptualmente a la mínima definición de
dominio y por eso su expresión no resiste mayor división. Si el dominio es simple, como mencionamos,
sus valores serán atómicos. La expresión atómico no significa que el contenido no pueda ser
compuesto, por ejemplo, el nombre de una persona (María José), sino que el domino nombre no está
integrado a otro domino, como el apellido.
Atributos monovalentes
Hace referencia a que la información se representa una única vez dentro del modelo. Entonces, se deben
arbitrar proyecciones (descomposiciones) de entidades suficientes para que la información sea reflejada
una sola vez.
Observe la siguiente planilla de datos, que consta de un resumen de ventas de una librería que procesa
todos sus datos desde una planilla de cálculos del tipo Excel. Tomaremos esta tabla y la procesaremos
para que se transforme en N relaciones que cumplan con 1FN.
Tabla 3. Resumen de ventas
I
Pto. No
d
de Id mb T
c Nom For Prec
vent p Id re Ca o
Fec li bre ma io
ay a prod pr nti t
ha e clien pa unit
com g ucto od dad a
n te go ario
prob o uct l
t
ante o
e
01/ Marí
01- 0 Tarj Ma 5
03/ a 1 1 2,5 10
100 1 eta pa 5
17 Paz
01/ Marí
01- 0 Tarj Hoj 5
03/ a 1 2 1 30
100 1 eta a 5
17 Paz
21/ Juan Co
02- 0 So 4
03/ Casa 2 nta 3 4 10
101 2 bre 0
17 s do
03/ Ana
01- 1 Dé Ma 6
04/ Godo 3 1 4,5 10
102 0 bito pa 0
17 y
03/ Ana
01- 1 Dé Hoj 6
04/ Godo 3 2 1,5 10
102 0 bito a 0
17 y
01-100 01 100
01-100 01 100
02-101 02 101
01-102 01 102
01-102 01 102
Para logar que la columna Punto de venta y comprobante posea dominio simple, se debe dividir en dos
columnas: una para el punto de venta y otra para el número de comprobante.
M
arí Ta
01/0 0 Ma 2, 5
01 100 a 1 rje 1 10
3/17 1 pa 5 5
Pa ta
z
M
arí Ta
01/0 0 Hoj 5
01 100 a 1 rje 2 1 30
3/17 1 a 5
Pa ta
z
Ju
Co
an
21/0 0 nt So 4
02 101 Ca 2 3 4 10
3/17 2 ad bre 0
sa
o
s
An
a Dé
03/0 1 Ma 4, 6
01 102 G 3 bit 1 10
4/17 0 pa 5 0
od o
oy
An
a Dé
03/0 1 Hoj 1, 6
01 102 G 3 bit 2 10
4/17 0 a 5 0
od o
oy
Fuente: elaboración propia.
Atributos monovalentes
Ahora deberíamos fijar nuestra atención en el concepto de atributos monovalentes. Todavía no puede
ser denominada relación, pues sigue sin respetar algunas restricciones necesarias para serlo. Otra
forma de expresarlo sería evitar los grupos repetitivos, para que la información se encuentre expresada
una sola vez.
N Pr
No
N° o I ec
Id Fo Id mb T
Pto. de m d io Ca
cl rm pr re o
de co Fec br p u nti
ie a od pr t
vent mpr ha e a ni da
nt pa uct od a
a oba cli g ta d
e go o uct l
nte en o ri
o
te o
M
arí Ta
01/0 0 Ma 2, 5
01 100 a 1 rje 1 10
3/17 1 pa 5 5
Pa ta
z
M
arí Ta
01/0 0 Hoj 5
01 100 a 1 rje 2 1 30
3/17 1 a 5
Pa ta
z
N Pr
No
N° o I ec
Id Fo Id mb T
Pto. de m d io Ca
cl rm pr re o
de co Fec br p u nti
ie a od pr t
vent mpr ha e a ni da
nt pa uct od a
a oba cli g ta d
e go o uct l
nte en o ri
o
te o
Ju
Co
an
21/0 0 nt So 4
02 101 Ca 2 3 4 10
3/17 2 ad bre 0
sa
o
s
An
a Dé
03/0 1 Ma 4, 6
01 102 G 3 bit 1 10
4/17 0 pa 5 0
od o
oy
An
a Dé
03/0 1 Hoj 1, 6
01 102 G 3 bit 2 10
4/17 0 a 5 0
od o
oy
Observe que para los comprobantes 100 y 102 se repiten datos. Esto es porque en ambos casos hay
dos productos detallados. Estos valores repetidos no respetan la definición de monovalentes. Por lo
tanto, se debe operar algún cambio para que los valores se presenten una sola vez. Las columnas que
contienen valores repetidos son las resaltadas con fondo amarillo. La acción que se debe aplicar es la
separación de las columnas que contienen el grupo repetitivo en una tabla y las columnas que no
contienen el grupo repetitivo en otra tabla.
Tabla 7. Comprobantes con datos repetitivos
Pto.
N° de Id Nombr Id
de Forma Tota
comproban Fecha client e pag
vent pago l
te e cliente o
a
01/03/1 María
01 100 01 1 Tarjeta 55
7 Paz
01/03/1 María
01 100 01 1 Tarjeta 55
7 Paz
03/04/1 Ana
01 102 10 3 Débito 60
7 Godoy
03/04/1 Ana
01 102 10 3 Débito 60
7 Godoy
1 Mapa 2,5 10
2 Hoja 1 30
3 Sobre 4 10
Id producto Nombre producto Precio unitario Cantidad
1 Mapa 4,5 10
2 Hoja 1,5 10
Ahora que tenemos dos tablas, deberíamos nombrarlas para poder individualizarlas. Cuando las
mencionemos, simplemente diremos comprobantes o detalle comprobantes. Observe que tenemos
dos tablas, pero no queda establecido en detalle comprobantes.
También, siguen duplicadas las filas en la tabla comprobantes. La forma que tenemos para relacionar
detalle comprobantes con comprobantes es estableciendo una clave foránea en detalle
comprobantes que apunte a comprobantes. Para crear la FK en detalle de comprobantes, primero
debemos tener declarada una clave primaria en comprobantes. Para ello, en comprobantes no debe
haber filas duplicadas. Eliminemos las filas duplicadas de comprobantes para poder declarar la PK.
PK
PK
Pto.
N° de Id Nombr Id
de Forma Tota
comproban Fecha client e pag
vent pago l
te e cliente o
a
01/03/1 María
01 100 01 1 Tarjeta 55
7 Paz
03/04/1 Ana
01 102 10 3 Débito 60
7 Godoy
Aquí ya está la tabla comprobantes sin filas duplicadas. Para establecer la PK, se debe elegir la mínima
combinación irrepetible de valores que garanticen la unicidad. Los atributos de punto de venta y número
de número de comprobante proporcionan esa condición de unicidad; entonces, serán la PK de
comprobantes.
Pto.
N° de Id Nombre Precio
de Cantidad
comprobante producto producto unitario
venta
01 100 1 Mapa 2,5 10
01 100 2 Hoja 1 30
02 101 3 Sobre 4 10
FK
PK
Pto.
N° de Id Nombre Precio
de Cantidad
comprobante producto producto unitario
venta
01 100 2 Hoja 1 30
PK
02 101 3 Sobre 4 10
FK
Cuando hacemos referencia a que todos los atributos no claves dependen por completo de la clave
primaria, es importante entender que la expresión atributos no claves está expresada en su más amplio
espectro. Entonces, los atributos tienen que no pertenecer ni a la clave primaria ni a ninguna clave
candidata que pueda existir. Expresar atributos no claves equivale a decir atributos no primarios. Los
atributos no claves deben depender por completo de la PK. Esto no se cumple cuando hay atributos no
claves que dependen de una parte de la clave. Esta, entonces, indudablemente debe ser compuesta. Si
la clave fuese simple, no hay posibilidad de encontrar esta situación.
PK
Pto.
N° de Id Nombre Precio
de Cantidad
comprobante producto producto unitario
venta
01 100 2 Hoja 1 30
02 101 3 Sobre 4 10
FK
Se deben despejar los atributos que dependen funcionalmente de id producto a una nueva relación que
las contenga. Para ello, la nueva relación (que llamaremos productos) debe tener los mismos atributos
que se encuentran resaltados en la relación detalle comprobantes.
Ahora debemos retirar los atributos de la relación detalle comprobante que causan que la 2FN no se
cumpla y declarar la PK en la relación productos.
Observe que el precio sigue estando en detalle comprobantes. Esto es porque este atributo representa
el valor en el momento en que realizó la compra. Observe que la clave foránea que vincula detalle
comprobantes con productos ya se encuentra declarada. Esto hace que ambas tablas mantengan una
relación denominada integridad referencial.
PK
PK
Pto. de N° de Precio
Id producto Cantidad
venta comprobante unitario
01 100 1 2,5 10
01 100 2 1 30
02 101 3 4 10
01 102 1 4,5 10
01 102 2 1,5 10
FK FK
PK
3 Sobre 4
1 Mapa 4,5
2 Hoja 1,5
Fuente: elaboración propia.
Una relación está en tercera forma normal si y solo si está en 2FN, y si ningún subconjunto de atributos
no primarios tiene dependencia entre sí y como segunda medida dependen transitivamente de la clave
primaria.
Tenemos que observar dos o más atributos no claves (no primarios) que tengan una dependencia
funcional entre si más fuerte que la que posee con la PK de la relación. Esta situación solo se presenta
en la relación Comprobantes, entre los atributos Id cliente y Nombre cliente, por un lado, e Id pago y
Forma pago, por otro.
Ambos atributos dependen uno del otro y no forman parte de ninguna clave.
PK
For
Punto N° de Nombr Id
Id ma Tot
de comproban Fecha e pa
cliente pag al
venta te cliente go
o
Se deben desagregar de esta relación los atributos que causan que no se alcance la 3FN. Para ello se
deben crear dos relaciones en donde se colocan los juegos de atributos que tiene DF como sigue. Estos
dos atributos tienen DF entre sí y luego dependen en forma transitiva de la PK. Declare la PK de las
nuevas relaciones para poder establecer las FK desde la relación que estamos analizando. Entre estos
otros dos también existe la misma situación. Ahora debe eliminar las columnas nombre cliente y forma
pago y establecer las FK para que la información quede integrada.
PK
Id Id
Punto de Tot
N° de comprobante Fecha clie pag
venta al
nte o
01 100 01/03/17 01 1 55
02 101 21/03/17 02 2 40
01 102 03/04/17 10 3 60
FK FK
PK
01 María Paz
02 Juan Casas
10 Ana Godoy
PK
1 Tarjeta
2 Contado
3 Débito
Definición formal: cuando un determinante es una llave candidato, una relación R está en
FNBC. Una tabla se considera en esta forma si y solo si cada determinante o atributo es
una llave candidato.
Características
Una tabla se encuentra en 4NF si y solo si está en tercera forma normal y no presenta dependencias
multivaluadas no triviales.
Margaret S. Wu (1992) notó que, en la práctica, la normalización de base de datos generalmente solo
alcanza hasta la 3FN. Esto se debe a la creencia que las tablas violan la 4FN y que raramente las
vamos a encontrar en aplicaciones organizacionales. Pese a esto, esta creencia puede no ser exacta.
PK
Correo
Id cliente Nombre cliente Teléfono
electrónico
jcasas@hotmail.co
02 Juan Casas 153467367
m
PK
Correo
Id cliente Nombre cliente Teléfono
electrónico
156145579 -
01 María Paz mpaz@gmail.com
4895233
jcasas@hotmail.co
02 Juan Casas 153467367
m
anag@gmail.com -
10 Ana Godoy 155908786 ana.godoy@gmail.
com
PK
PK
Correo
Id cliente Nombre cliente Teléfono
electrónico
jcasas@hotmail.co
02 Juan Casas 153467367
m
ana.godoy@gmail.
10 Ana Godoy 155908786
com
Sin embargo, en este caso, si bien logramos la atomicidad de los campos, estamos rompiendo con otra
FN, ya que estamos repitiendo los datos de id cliente, nombre cliente y teléfono o correo electrónico,
según corresponda. Lo que podemos observar es que tanto el teléfono como el correo son de
dependencias multivaluadas con clientes, lo que nos lleva a una FN4 en la cual se eliminan las
dependencias multivaluadas.
PK
Correo
Id cliente Nombre cliente Teléfono
electrónico
jcasas@hotmail.co
02 Juan Casas 153467367
m
ana.godoy@gmail.
10 Ana Godoy 155908786
com
PK
Id cliente Teléfono
01 156145579
01 4895233
02 153467367
10 155908786
10 155908786
PK
01 mpaz@gmail.com
01 mpaz@gmail.com
02 jcasas@hotmail.com
10 anag@gmail.com
10 ana.godoy@gmail.com
SUBMIT
Lección 3 de 6
Video de habilidades
Es importante saber normalizar nuestros modelos de datos. En este módulo lo que buscamos es poder
saber cómo separar y organizar los datos en tablas con atributos y que este modelo que se plantea
cumpla al menos con la tercera forma normal, que es hasta donde llegan la mayoría de los diagramas
entidad relación.
En el video vemos con desde el ejemplo de pedido proveedor y producto llegamos a armar el DER.
EJEMPLO DE NORMALIZACION
La normalización permite obtener estructuras de datos ineficientes.
Verdadero.
Falso.
SUBMIT
¿Cuál de las formas normales dice que un registro no puede contener grupo de
datos repetitivos?
FN1.
FN2.
FN3.
FN4.
Forma normal de Boyce-Codd.
SUBMIT
Si una relación está en FN1 y no tiene claves compuestas quiere decir que
también está en…
FN1.
FN2.
FN3.
FN4.
SUBMIT
En la FN3 los atributos deben depender solo de la clave y de ningún otro atributo
de la relación.
Verdadero.
Falso.
SUBMIT
Cuando una entidad tiene clave compuesta indica que existe una relación de
muchos a muchos.
Verdadero.
Falso.
SUBMIT
Lección 4 de 6
Cierre
Modelo de datos
–
Los modelos de datos están integrados por una serie de conceptos para describir los datos, sus
relaciones y restricciones y son útiles para representar, de manera abstracta, el mundo real. Su
propósito es, además de facilitar la descripción de los datos y sus relaciones, permitir la representación
de los datos y hacerlos comprensibles. Por esta razón, los modelos de datos facilitan el diseño de
bases de datos. Para especificar la estructura y las restricciones se usa un lenguaje de definición de
datos (Data Definition Language - DDL, por sus siglas en inglés) y para especificar la manipulación de
los datos se utiliza el lenguaje de manipulación de datos (Data Manipulation Language - DML, por sus
siglas en inglés). Un DML ofrece mecanismos para recuperar datos de la base de datos vigente y para
actualizar datos. Algunas de las utilidades que tiene un modelo de datos son, facilitar la especificación
de los tipos y la forma en que los datos están organizados en una base de datos y servir de base para
desarrollar metodologías de diseño y lenguajes de alto nivel para consultar y manipular dichos datos.
Definir estructuras. Esto es, la creación de la base de datos. Tablas y sus relaciones.
Definir estructuras físicas, es decir, que archivos se van a crear para cada esquema.
Monitorear rendimiento, con el objetivo de optimizar consultas y el acceso a los datos, para
mejorar la experiencia del usuario final.
Modelos jerárquico, de red y relacional
–
Modelo de red: los datos son representados como colección de registros, de estructura arbitraria.
Las relaciones entre estos son punteros o enlaces y permiten relaciones uno a muchos y muchos
a muchos.
Modelo jerárquico: es una implementación particular del modelo de red. Los datos están
representados como colección de registros, pero con estructura padre/hijo. Las relaciones también
son punteros o enlaces y permiten las relaciones de uno a uno y uno a muchos.
FN1
–
Dice que una relación está en primera forma normal, si y solo si, todos los dominios simples
subyacentes de los atributos poseen valores atómicos y monovalentes.
FN2
–
Dice que debe estar en FN1 y además, todos los atributos no claves dependen por completo de la clave
primaria o está en FN1 y no tiene clave compuesta.
FN3
–
Dice que debe estar en FN2 y además si ningún subconjunto de atributos no primarios tiene
dependencia entre sí y como segunda medida dependen transitivamente de la clave primaria.
FN4
–
Dice que asegura de que las dependencias multivaluadas independientes estén efectivamente
correctas.
Lección 5 de 6
Referencias
Universidad Autónoma del Estado de Hidalgo. (2017). Diseño de base de datos. Recuperado de
http://cidecame.uaeh.edu.mx/lcc/mapa/PROYECTO/libro14/index.html