Documentos de Académico
Documentos de Profesional
Documentos de Cultura
UASD-RECINTO-SANTIAGO
FACULTAD DE CIENCIAS
Maestrantes:
Dharitza Mena
Jhordy Rosario
José Aníbal Rosa
Lourdes Fernández
Ylvin Pérez
Facilitador:
Franklin Inoa Bidó
18 de Octubre, 2017
Indice
Introducción 2
Modelo relacional 3
Dominios y atributos 3
Conceptos de relación 3
Nomenclatura 4
Ventajas 5
Desventajas 5
Normalización 5
Primera Forma Normal (1FN) 6
Segunda Forma Normal (2FN) 7
Tercera Forma Normal (3FN) 8
Forma normal de Boyce-Codd (FNBC) 9
Cuarta Forma Normal (4FN) 10
Quinta Forma Normal (5FN) 10
Diseño 10
Diseño conceptual 11
Diseño lógico 13
Diseño físico 14
Lenguajes Relacionales 16
Lenguajes teóricos de referencia 16
Álgebra Relacional 16
Operadores Relacionales 16
Unión 16
Intersección 17
Diferencia 17
Producto cartesiano 18
Renombrado 18
Proyección 19
Selección 20
División 20
Concatenación 21
Cálculo Relacional 22
Cálculo Relacional Orientado a Tuplas 22
1
Cálculo Relacional Orientado a Dominios 23
Lenguajes comerciales 24
Bibliografía 25
2
Introducción
Desde la implementación de la primera computadora electrónica la forma de almacenar los
datos digitales han ido cambiando a través de los tiempos, todo ha pasado por un arduo
proceso de evolución, desde la utilización de tarjetas perforadas hasta las modernas bases
de datos relacionales que son tan utilizadas hoy en día. Para poder crear e implementar
correctamente una Base de Datos Relacional debemos conocer profundamente que significa
el Modelo Relacional. En este texto presentamos el resultado de una ligera investigación que
nos muestra las informaciones más relevantes respecto a este fascinante tema,
presentamos también los detalles de a tomar en cuenta a la hora de utilizar esta robusta
forma de representar y tratar los datos.
3
Modelo relacional
El modelo relacional es una forma de representar objetos y/o estructuras de una base de
datos permitiendo definirla especificando diferentes reglas. Propone una representación de
la información representando la información de los objetos y las relaciones, y que además
sea fácilmente entendida por usuarios, siendo posible ampliar el esquema de la Base de
Datos sin modificar la estructura lógica.
● Estructura de datos
● Restricciones
● Operadores asociados
● Las columnas no tienen por qué estar ordenadas, es decir que no tienen que seguir
un orden específico.
● La tabla es plana, esto es, cada intersección de filas y columnas ofrece un dato
único, no un conjunto.
Dominios y atributos
El dominio es un conjunto de valores del mismo tipo e indivisibles. Los dominios se dividen
en:
Conceptos de relación
● Tabla o Entidad.
4
● Columna o Atributo: elemento susceptible de tomar valores (cada una de las
columnas de la tabla).
● Fila o Tupla: Cada uno de los elementos que contiene una instancia de la relación
(filas).
Imagen 1.1
Imagen 1.2
Nomenclatura
Ejemplos:
5
Ventajas
Desventajas
Normalización
Las tablas hay que verificarlas y revisar si aún se puede reducir u optimizar de alguna
manera.
Los problemas tales como la redundancia que ocurren cuando se abarrotan demasiados
datos en una sola relación son llamados anomalías. Los principales tipos son:
Las formas normales son aplicadas a las tablas de una base de datos. Decir que una base de
datos está en la forma normal N es decir que todas sus tablas están en la forma normal N.
6
Diagrama de inclusión de todas las formas normales.
En general, las primeras tres formas normales son suficientes para cubrir las necesidades de
la mayoría de las bases de datos. El creador de estas 3 primeras formas normales (o reglas)
fue Edgar F. Codd.
● Todos los atributos son atómicos. Un atributo es atómico si los elementos del
dominio son indivisibles.
● Debe Existir una independencia del orden tanto de las filas como de las columnas, es
decir, si los datos cambian de orden no deben cambiar sus significados.
La primera forma normal elimina los valores repetidos dentro de una BD. Ejemplo:
La tabla Cliente está conformada por los siguientes campos con sus respectivos registros.
Cliente
ID Cliente Nombre Apellido Teléfono 1 Teléfono 2 Teléfono 3
123 Rachel Ingram 555-861-2025
456 James Wright 555-403-1659 555-776-4100
789 Cesar Dure 555-808-9633
Esta representación hace uso de columnas que permiten valores nulos, y por lo tanto no se
conforman con la definición de la 1FN. Incluso si se contempla la posibilidad de columnas
con valores nulos, el diseño no está en armonía con la regla de 1NF. Teléfono 1, Teléfono 2,
y Teléfono 3, comparten exactamente el mismo dominio y exactamente el mismo
7
significado, dividir los números de teléfono en tres encabezados es artificial y causa
problemas lógicos.
Por lo que:
Dificulta la facilidad de realizar consultas a la tabla.
Imposibilita la manera de hacer cumplir la unicidad los enlaces Cliente-a-Teléfono por medio
del RDBMS. Al cliente 789 se le puede dar equivocadamente un valor para el Teléfono 2 que
es exactamente igual que el valor de su Teléfono 1.
La restricción de los números de teléfono por cliente a tres. Si viene un cliente con cuatro
números de teléfono, se estaría obligado a guardar solamente tres y dejar el cuarto sin
guardar.
Un diseño que está completamente basada en 1FN hace uso de dos tablas: una tabla de
cliente y una tabla de teléfonos por cliente.
Cliente
ID Cliente Nombre Apellido
123 Rachel Ingram
456 James Wright
789 Cesar Dure
Una relación está en 2FN si está en 1FN y si los atributos que no forman parte de ninguna
clave dependen de forma completa de la clave principal. Es decir que no existen
dependencias parciales. (Todos los atributos que no son clave principal deben depender
únicamente de la clave principal).
En otras palabras podríamos decir que la segunda forma normal está basada en el concepto
de dependencia completamente funcional. Una dependencia funcional es completamente
funcional si al eliminar los atributos A de X significa que la dependencia no es mantenida.
Ejemplo:
La tabla “habilidades de los empleados” tiene como objetivo describir las habilidades de los
empleados:
8
Habilidades de los empleados
Empleado Habilidad Lugar actual de trabajo
Jones Mecanografía 114 Main Street
Jones Taquigrafía 114 Main Street
Jones Tallado 114 Main Street
Bravo Limpieza ligera 73 Industrial Way
Ellis Alquimia 73 Industrial Way
Ellis Malabarismo 73 Industrial Way
Harrison Limpieza ligera 73 Industrial Way
Empleados
Empleado Lugar actual de trabajo
Jones 114 Main Street
Bravo 73 Industrial Way
Ellis 73 Industrial Way
Harrison 73 Industrial Way
9
La 3NF fue definida originalmente por E.F. Codd en 1971. La definición de Codd indica que
una tabla está en 3NF si y sólo si las tres condiciones siguientes se cumplen:
Para expresar los mismos hechos sin violar la 3NF, es necesario dividir la tabla en dos:
10
Tercera forma normal (3FN). La forma normal de Boyce-Codd requiere que no existan
dependencias funcionales no triviales de los atributos que no sean un conjunto de la clave
candidata.
(1) Si no existen claves candidatas compuestas (con varios atributos), está en FNBC.
(2) Si existen varias claves candidatas compuestas y éstas tienen un elemento común,
puede no estar en FNBC. Sólo si, para cada dependencia funcional en la relación, el
determinante es una clave candidata, estará en FNBC.
Una tabla está en 4NF si y sólo si está en Tercera forma normal o en BCNF (Cualquiera de
ambas) y no posee dependencias multivaluadas no triviales. La definición de la 4NF confía
en la noción de una dependencia multivaluada. Una tabla con una dependencia multivaluada
es una donde la existencia de dos o más relaciones independientes muchos a muchos causa
redundancia; y es esta redundancia la que es suprimida por la cuarta forma normal.
La Quinta Forma Normal también conocida como forma normal de proyección-unión (PJ/NF),
es un nivel de normalización de bases de datos diseñado para reducir redundancia en las
bases de datos relacionales que guardan hechos multi-valores aislando semánticamente
relaciones múltiples relacionadas.
Diseño
El diseño de una base de datos consiste en definir la estructura de los datos que debe tener
un sistema de información determinado. Para realizar este diseño se deben seguir por regla
general ciertas fases, definiendo para ello el modelo conceptual, el lógico y el físico.
11
información de la base de datos y no las estructuras de almacenamiento que se
necesitarán para manejar dicha información.
● El diseño lógico: parte del resultado del diseño conceptual y da como resultado una
descripción de la estructura de la base de datos en términos de las estructuras de
datos que puede procesar un tipo de SGBD. El diseño lógico depende del tipo de
SGBD que se vaya a utilizar, se adapta a la tecnología que se debe emplear, pero no
depende del producto concreto. En el caso de bases de datos convencionales
relacionales (basadas en SQL para entendernos), el diseño lógico consiste en definir
las tablas que existirán, las relaciones entre ellas, normalizarlas, etc…
● Las tablas están compuestas por filas (o registros) y columnas (o campos) que
almacenan cada uno de los registros(la información sobre una entidad concreta,
considerados una unidad).
● El orden de las columnas lo determina cada consulta (que se realizan usando SQL).
● Cada tabla debe poseer una clave primaria, esto es, un identificador único de cada
registro compuesto por una o más columnas.
● Para establecer una relación entre dos tablas es necesario incluir, en forma de
columna, en una de ellas la clave primaria de la otra. A esta columna se le llama
clave externa. Ambos conceptos de clave son extremadamente importantes en el
diseño de bases de datos.
12
diseño físico usando para ello el gestor de bases de datos de nuestra elección (por
ejemplo SQL Server).
Diseño conceptual
El diseño conceptual de la base de datos para manejar toda esta información se puede ver
en la siguiente figura, denominada diagrama Entidad/Relación o simplemente diagrama E-R:
Como vemos existen tablas para representar cada una de estas entidades del mundo real:
Además están relacionadas entre ellas de modo que, por ejemplo, un producto pertenece a
una determinada categoría (se relacionan por el campo CategoryID) y un proveedor
(SupplierID), y lo mismo con las demás tablas.
Cada tabla posee una serie de campos que representan valores que queremos almacenar
para cada entidad. Por ejemplo, un producto posee los siguientes atributos que se traducen
en los campos correspondientes para almacenar su información: Nombre (ProductName),
Proveedor (SupplierID, que identifica al proveedor), Categoría a la que pertenece
(CategoryID), Cantidad de producto por cada unidad a la venta (QuantityPerUnit), Precio
unitario (UnitPrice), Unidades que quedan en stock (UnitsInStock), Unidades de ese
producto que están actualmente en pedidos (UnitsOnOrder), qué cantidad debe haber para
13
que se vuelva a solicitar más producto al proveedor (ReorderLevel) y si está descatalogado
o no (Discontinued).
Los campos marcados con "PK" indican aquellos que son claves primarias, es decir, que
identifican de manera única a cada entidad. Por ejemplo, ProductID es el identificador único
del producto, que será por regla general un número entero que se va incrementando cada
vez que introducimos un nuevo producto (1, 2, 3, etc..).
Los campos marcados como "FK" son claves foráneas o claves externas. Indican campos
que van a almacenar claves primarias de otras tablas de modo que se puedan relacionar
con la tabla actual. Por ejemplo, en la tabla de productos el campo CategoryID está
marcado como "FK" porque en él se guardará el identificador único de la categoría asociada
al producto actual. En otras palabras: ese campo almacenará el valor de la clave primaria
(PK) de la tabla de categorías que identifica a la categoría en la que está ese producto.
Los campos marcados con indicadores que empiezan por "I" (ej: "I1") se refieren a índices.
Los índices generan información adicional para facilitar la localización más rápida de
registros basándose en esos campos. Por ejemplo, en la tabla de empleados (Employees)
existe un índice "I1" del que forman parte los campos Nombre y Apellidos (en negrita
además porque serán también valores únicos) y que indica que se va a facilitar la locación
de los clientes mediante esos datos. También tiene otro índice "I2" en el campo del código
postal para localizar más rápidamente a todos los clientes de una determinada zona.
Los campos marcados con indicadores que empiezan con "U" (por ejemplo U1) se refieren a
campo que deben ser únicos. Por ejemplo, en la tabla de categorías el nombre de ésta
(CategoryName) debe ser único, es decir, no puede haber -lógicamente- dos categorías con
el mismo nombre.
Como vemos, un diseño conceptual no es más que una representación formal y acotada de
entidades que existen en el mundo real, así como de sus restricciones, y que están
relacionadas con el dominio del problema que queremos resolver.
Diseño lógico
Una vez tenemos claro el modelo E-R debemos traducirlo a un modelo lógico directamente
en el propio sistema gestor de bases de datos (Oracle, MySQL, SQL Server...). Si hemos
utilizado alguna herramienta profesional para crear el diagrama E-R, seguramente
podremos generar automáticamente las instrucciones necesarias para crear la base de
datos.
La mayoría de los generadores de diagramas E-R (por ejemplo Microsoft Visio) ofrecen la
capacidad de exportar el modelo directamente a los SGBD más populares.
Entonces, todo este modelo conceptual se traduce en un modelo lógico que trasladaremos a
la base de datos concreta que estemos utilizando y que generalmente será muy parecido.
Por ejemplo, este es el mismo modelo anterior, mostrado ya como tablas en un diagrama
de SQL Server:
14
En este caso hemos creado cada tabla, una a una, siguiendo lo identificado en el diagrama
E-R y estableciendo índices y demás elementos según las indicaciones de cada uno de los
campos. Además hemos decidido el mejor tipo de datos que podemos aplicar a cada campo
(texto, números, fechas... que se almacenan para cada registro).
Su representación gráfica en la base de datos es muy similar, sin embargo el modelo físico
(cómo se almacena esto físicamente), puede variar mucho de un SGBD a otro y según la
configuración que le demos.
Diseño físico
15
La tarea de crear el diseño físico es un trabajo que realmente no acaba nunca. Es necesario
supervisar continuamente las características de rendimiento e integridad de los datos de la
base de datos a medida que pasa el tiempo. Muchos factores necesitan mejoras periódicas
en el diseño físico. Por ejemplo, suponga que diseña una tabla particionada de modo que
almacena datos para 36 meses. Más adelante descubre que necesita ampliar el diseño a
datos para 84 meses. Puede añadir o rotar particiones para los 36 meses actuales a fin de
acomodar el nuevo diseño.
Según Thomas H. Grayson, un buen diseño de base de datos debe poseer siempre las
siguientes cualidades, aunque algunas puede llegar a ser contradictorias entre sí:
Reflejar la estructura del problema en el mundo real.
● Ser capaz de representar todos los datos esperados, incluso con el paso del tiempo.
● Evitar el almacenamiento de información redundante.
● Proporcionar un acceso eficaz a los datos.
● Mantener la integridad de los datos a lo largo del tiempo.
● Ser claro, coherente y de fácil comprensión.
● Como hemos visto el diseño de una base de datos parte de un problema real que
queremos resolver y se traduce en una serie de modelos, conceptual, lógico y físico,
que debemos implementar.
El primero, el diseño conceptual, es el que más tiempo nos va a llevar pues debemos pensar
muy bien cómo vamos a representar las entidades del mundo real que queremos
representar, qué datos almacenaremos, cómo los relacionaremos entre sí, etc...
El diseño lógico es mucho más sencillo puesto que no es más que pasar el diseño anterior a
una base de datos concreta. De hecho muchas herramientas profesionales nos ofrecen la
generación automática del modelo, por lo que suele ser muy rápido.
El diseño físico por regla general recae en la propia base de datos, a partir del diseño lógico,
aunque si dominamos bien esa parte elegiremos cuidadosamente índices, restricciones o
particiones así como configuraciones para determinar cómo se almacenará físicamente esa
información, en qué orden, cómo se repartirá físicamente en el almacenamiento, etc...
Lenguajes Relacionales
Los lenguajes relacionales tienen como objetivo escribir consultas para modificar o
seleccionar datos de una base de datos. Los lenguajes relacionales más importantes son el
cálculo, el álgebra relacional y el SQL. Los dos primeros han precedido históricamente al
SQL. Una de las ventajas del álgebra y cálculo relacionales es que se basan en la lógica y
las matemáticas con lo cual cuando se obtiene una soltura sobre los mismos, la escritura de
consultas puede llegar a ser igual o incluso más rápido que en SQL. Otra de las
características de estos lenguajes relacionales es su equivalencia. Una consulta escrita con
un lenguaje se puede reescribir en otro obteniendo por tanto el mismo resultado.
16
Lenguajes Relacionales
Codd pretende dar respuesta a la especificación de consultas sobre una base de datos
relacional, proponiendo un salto cualitativo sobre los lenguajes de datos existentes en la
época, de carácter eminentemente procedural . Tanto el AR como el CR son lenguajes de
especificación que se apoyan en la base matemática formal del RM/B (una relación es un
conjunto) para definir consultas a la base de datos como la declaración de conjuntos
mediante su definición por intensión (la propiedad que cumplen los conjuntos). El álgebra
relacional se apoya en la teoría de conjuntos y en la aplicación de operadores tales que
transforman relaciones de la base de datos en relaciones derivadas. Sobre una relación
derivada puede, a su vez, aplicarse una transformación u operador algebraico cuyo
resultado es una nueva relación derivada.
Álgebra Relacional
1. Operadores conjuntistas
a. Unión
b. Intersección
c. Diferencia
d. Producto cartesiano
Operadores Relacionales
Unión
Ejecuta una unión binaria entre dos relaciones que agrupa dos tablas o relaciones en una nueva
relación.
● Operador: ∪
17
● Forma: R ∪ S = { t | t ∈ R ∨ t ∈ S}
El resultado será una nueva tabla con los datos de las dos anteriores.
Intersección
La intersección de dos relaciones da como resultado una nueva relación en la que
aparecerán solamente los elementos que estén en ambas relaciones
● Operador: ∩
● Forma: R ∩ S = { t | t ∈ R ∧ t ∈ S}
Diferencia
Genera como resultado todas las tuplas de la relación R que no estén en la relación S
● Operador: −¿
● Forma: R −¿ S
18
Producto cartesiano
El producto cartesiano es una operación binaria y consiste en todas las tuplas de la relación
R combinadas con todas y cada una de las tuplas de la relación S mostrándose los atributos
de R seguidos de los atributos de S.
● Operador: ×
● Forma: R × S = { q t | q ∈ R ∧ t ∈ S}
Renombrado
El resultado de la expresión E es salvado con el nombre de x.
19
● Operador: ρ
● Forma: ρ x (E)
Proyección
Una proyección de una relación consiste en seleccionar un número determinado de
columnas o atributos de la misma
● Operador: Π
20
Selección
La operación de selección permite seleccionar todas aquellas tuplas de una tabla o relación
(r) siempre y cuando cumplan una condición (p).
● Operador: σ
● Forma: σp(r)
División
Imaginemos que existen dos relaciones R(a,b) y S(b), donde a y b son columnas de dichas
relaciones. La división devolverá de la relación R todos los valores de a para los cuales
existe un valor de b que a su vez estará en la columna b de la relación S.
● Operador: /
● Forma: R / S
21
Concatenación
La operación de concatenación o unión natural es una de las más utilizadas cuando se va a
seleccionar datos de más de una tabla. La unión natural permite reconstruir los datos de las
tablas previos a la normalización. Equivale a realizar un producto cartesiano y una selección.
● Operador: θ
● Forma: R θS
22
Cálculo Relacional
El cálculo relacional facilita una notación destinada a definir una nueva relación a través de
las especificaciones de un predicado que deben cumplir las tuplas implicadas. A diferencia
del AR, indica cuál es el problema pero no cómo resolverlo. Está basado en la lógica o
cálculo de predicados de primer orden.
Existen dos tipos de cálculo relacional dependiendo del tipo de variables manejadas:
Forma: {t|F(t)}
Ejemplo de unión
Tenemos las dos relaciones anteriores y se quiere obtener la unión o el nombre y localidad
de los equipos registrados en cualquiera de las dos tablas (Equipos1 U Equipos2).
{ t | Equipos1(t) ∨ Equipos2(t) }
Ejemplo de selección
23
Si necesitamos conocer aquellos equipos madrileños registrados en la tabla Equipos1.
{ t | Equipos1(t) ∧ t.Localidad=’Madrid’ }
Ejemplo de unión
Tenemos las dos relaciones anteriores y se quiere obtener la unión o el nombre y localidad
de los equipos registrados en cualquiera de las dos tablas (Equipos1 U Equipos2).
Ejemplo selección
Si necesitamos conocer aquellos equipos madrileños registrados en la tabla Equipos1.
Lenguajes comerciales
24
nivel ISO SQL3 de 1999; los SGBDs comerciales utilizan generalmente el nivel SQL2 o SQL
ISO de 1992. SQL es un lenguaje con interface de comando, basado en el cálculo relacional
de tuplas.
25
Bibliografía
- http://www.roma1.infn.it/people/barone/metinf/relational-databases-
sandbox-handout.pdf
- http://www.alegsa.com.ar/Dic/dise
%C3%B1o_fisico_de_bases_de_datos.php
- https://www.campusmvp.es/recursos/post/Disenando-una-base-de-datos-
en-el-modelo-relacional.aspx
- http://www.lsi.us.es/docencia/get.php?id=839
- http://myfpschool.com/tema-6-lenguajes-relacionales/
- https://www.tutorialspoint.com/dbms/relational_algebra.htm
- https://en.wikipedia.org/wiki/Relational_algebra
- http://elvex.ugr.es/idbis/db/docs/intro/D%20Modelo%20relacional.pdf
- http://dryvalleycomputer.com/index.php/bases-de-datos/el-modelo-
relacional/62-resumen-del-modelo-relacional
- https://es.wikipedia.org/wiki/Modelo_relacional
26