jueves, 7 de marzo de 2013

Video Access

Creación de una Base de Datos enAccess






Modelo Relacional

Foro

Foro


¿Qué tan eficiente es hacer primero el análisis de una base de datos en el Modelo Entidad Relación y no realizar el modelo relacional desde el inicio del proyecto?


Participa con tus comentarios!!!!!






 Modelo relacional

Introducción

En el capítulo anterior se mencionaron 3 tipos de modelado: conceptual, lógico y físico.
El modelo e-r se considera un modelo conceptual ya que permite a un nivel alto el ver con claridad la información utilizada en algun problema o negocio.
En este capítulo nos concentraremos en desarrollar un buen modelo "lógico" que se conoce como "esquema de la base de datos" (database schema) a partir del cual se podrá realizar el modelado físico en el DBMS, es importante mencionar que es un paso necesario, no se puede partir de un modelo conceptual para realizar un físico.

Por qué "modelo relacional" ?

Puede resultar confuso el concepto de modelo entidad-relación vs modelo relacional, quizás porque ambos comparten casi las mismas palabras. Como se mencionó en la sección anterior, el objetivo del modelo relacional es crear un "esquema" (schema), lo cual como se mencionará posteriormente consiste de un conjunto de "tablas" que representan "relaciones", relaciones entre los datos.
Estas tablas, pueden ser construídas de diversas maneras:
  • Creando un conjunto de tablas iniciales y aplicar operaciones de normalización hasta conseguir el esquema más óptimo. Las técnicas de nomalización se explican más adelante en este capítulo.
  • Convertir el diagrama e-r a tablas y posteriormente aplicar también operaciones de normalización hasta conseguir el esquema óptimo.
La primer técnica fue de las primeras en existir y, como es de suponerse, la segunda al ser más reciente es mucho más conveniente en varios aspectos:
  • El partir de un diagrama visual es muy útil para apreciar los detalles, de ahí que se llame modelo conceptual.
  • El crear las tablas iniciales es mucho más simple a través de las reglas de conversión.
  • Se podría pensar que es lo mismo porque finalmente hay que "normalizar" las tablas de todas formas, pero la ventaja de partir del modelo e-r es que la "normalización" es mínima por lo general.
  • Lo anterior tiene otra ventaja, aún cuando se normalice de manera deficiente, se garantiza un esquema aceptable, en la primer técnica no es así.

 

Conceptos básicos

Tablas

El modelo relacional proporciona un manera simple de representar los datos: una tabla bidimensional llamada relación.
título
año
duración
tipo
Star Wars1977124color
Mighty Ducks1991104color
Wayne's World199295color
Relación Películas
La relación Películas tiene la intención de manejar la información de las instancias en la entidad Películas, cada renglón corresponde a una entidad película y cada columna corresponde a uno de los atributos de la entidad. Sin embargo las relaciones pueden representar más que entidades, como se explicará más adelante.

Atributos

Los atributos son las columnas de un relación y describen características particulares de ella.

Esquemas

Es el nombre que se le da a una relación y el conjunto de atributos en ella.
Películas (título, año, duración, tipo)
En un modelo relación, un diseño consiste de uno o más esquemas, a este conjunto se le conoce como "esquema relacional de base de datos" (relational database schema) o simplemente "esquema de base de datos" (database schema)

Tuplas

Cada uno de los renglones en una relación conteniendo valores para cada uno de los atributos.
(Star Wars, 1977, 124, color)

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.

Representaciones equivalentes de una relación

Las relaciones son un conjunto de tuplas, no una lista de tuplas. El orden en que aparecen las tuplas es irrelevante.
Así mismo el orden de los atributos tampoco es relevante
año
título
tipo
duración
1991Mighty Duckscolor104
1992Wayne's Worldcolor95
1977Star Warscolor124
Otra representación de la relación Películas

Del E/R al Relacional


Conversión del modelo e-r a un esquema de base de datos (Conversión a tablas) Introducción
Conversión a tablas desde un modelo con relaciones (1-1,1-m,m-m)
modelo e-r conversión a tablas
  • una tabla por cada conjunto de entidades
    • nombre de tabla = nombre de conjunto de entidades
  • una tabla por cada conjunto de relaciones m-m
    • nombre de tabla = nombre de conjunto de relaciones
  • definición de columnas para cada tabla
    • conjuntos fuertes de entidades
      • columnas = nombre de atributos
    • conjuntos débiles de entidades
      • columnas = llave_primaria (dominante) U atributos(subordinado)
    • conjunto de relaciones R (m-m) entre A, B
      • columnas (R) = llave_primaria (A) U llave_primaria (B) U atributos(R)
    • conjunto de relaciones R (1-1) entre A y B
      • columnas (A) = atribs(A) U llave primaria(B) U atributos(R)
    • conjunto de relaciones R (1-m) entre A y B
      • columnas (B) = atribs(B) U llave primaria(A) U atributos(R)
El diagrama anterior se convertiría al siguiente esquema:
Debil
atribs_DebilLLP_Aatribs_rel_0
A
LLP_Aatribs_A
B1
LLP_B1atribs_B1
B2
LLP_B2atribs_B2LLP_Aattribs_rel_2
B3
LLP_B3atribs_B3LLP_Aatribs_rel_3
A_B1
LLP_ALLP_B1atribs_rel_1
donde:
LLP_X es la llave primaria de la entidad X (un subconjunto de atribs_X)
escuela
idurlnombre
departamento
claveurlnombreid_escuela
curso
claveseccionnombreclave_depto
profesor
idnombreextension
estudiante
idnombrecarrera
profesor_curso
id_profclave_cursoseccion_curso
estudiante_curso
id_estudclave_cursoseccion_curso

El modelo es una representación visual que gráficamente nos da una perspectiva de como se encuentran los datos involucrados en un proyecto u organización.
Pero el modelo no nos presenta propiamente una instancia de los datos, un ejemplo que muestre con claridad algunas datos de muestra y como se relacionan en realidad. Por eso es conveniente crear un "esquema", el cual consiste de tablas las cuales en sus renglones (tuplas) contienen instancias de los datos.
Las tablas siguientes muestran las reglas que se deben seguir para poder crear dicho esquema.


Ejemplo:


Para el ejemplo de la figura tendríamos el esquema:

Modelo Relacional

El Modelo Relacional, es una modelo de datos que permite describir la definición o disposición  de una base de datos.
Entre los modelos lógicos, el modelo relacional está considerado como el más simple.


Relación

Es el concepto básico del modelo relacional. En el modelo relacional este término se refiere a una tabla, y es el paralelo al concepto conjunto de entidades del modelo E-R.

Relación: es un conjunto de datos referentes a un conjunto de entidades y organizados en forma tabular, que se compone de filas y columnas, (tuplas y atributos), en la que cada intersección de fila y columna contiene un valor.

Tupla

A menudo se le llama también registro o fila, físicamente es cada una de las líneas de la relación. Equivale al concepto de entidad del modelo E-R, y define un objeto real, ya sea abstracto, concretos o imaginario.
Tupla: cada una de las filas de una relación. Contiene la información relativa a una única entidad.
De esta definición se deduce que no pueden existir dos tuplas iguales en la misma relación.

Atributo

También denominado campo o columna, corresponde con las divisiones verticales de la relación. Corresponde al concepto de atributo del modelo E-R y contiene cada una de las características que definen una entidad u objeto.
Atributo: cada una de las características que posee una entidad, y que agrupadas permiten distinguirla de otras entidades del mismo conjunto.
Al igual que en el modelo E-R, cada atributo tiene asignado un nombre y un dominio. El conjunto de todos los atributos es lo que define a una entidad completa, y es lo que compone una tupla.

Nulo (NULL)

Hay ciertos atributos, para determinadas entidades, que carecen de valor. El modelo relacional distingue entre valores vacíos y valores nulos. Un valor vacío se considera un valor tanto como cualquiera no vacío, sin embargo, un nulo NULL indica la ausencia de valor.
Nulo: (NULL) valor asignado a un atributo que indica que no contiene ninguno de los valores del dominio de dicho atributo.
El nulo es muy importante en el modelo relacional, ya que nos permite trabajar con datos desconocidos o ausentes.
Por ejemplo, si tenemos una relación de vehículos en la que podemos guardar tanto motocicletas como automóviles, un atributo que indique a qué lado está el volante (para distinguir vehículos con el volante a la izquierda de los que lo tienen a la derecha), carece de sentido en motocicletas. En ese caso, ese atributo para entidades de tipo motocicleta será NULL.
Esto es muy interesante, ya que el dominio de este atributo es (derecha,izquierda), de modo que si queremos asignar un valor del dominio no hay otra opción. El valor nulo nos dice que ese atributo no tiene ninguno de los valores posibles del dominio. Así que, en cierto modo amplia la información.
Otro ejemplo, en una relación de personas tenemos un atributo para la fecha de nacimiento. Todas las personas de la relación han nacido, pero en un determinado momento puede ser necesario insertar una para la que desconocemos ese dato. Cualquier valor del dominio será, en principio, incorrecto. Pero tampoco será posible distinguirlo de los valores correctos, ya que será una fecha. Podemos usar el valor NULL para indicar que la fecha de nacimiento es desconocida.

Dominio

Dominio: Rango o conjunto de posibles valores de un atributo.
El concepto de dominio es el mismo en el modelo E-R y en el modelo relacional. Pero en este modelo tiene mayor importancia, ya que será un dato importante a la hora de dimensionar la relación.
De nuevo estamos ante un concepto muy flexible. Por ejemplo, si definimos un atributo del tipo entero, el dominio más amplio sería, lógicamente, el de los números enteros. Pero este dominio es infinito, y sabemos que los ordenadores no pueden manejar infinitos números enteros. Al definir un atributo de una relación dispondremos de distintas opciones para guardar datos enteros. Si en nuestro caso usamos la variante de "entero pequeño", el dominio estará entre -128 y 127. Pero además, el atributo corresponderá a una característica concreta de una entidad; si se tratase, por ejemplo, de una calificación sobre 100, el dominio estaría restringido a los valores entre 0 y 100.

Modelo relacional

Ahora ya disponemos de los conceptos básicos para definir en qué consiste el modelo relacional. Es un modelo basado en relaciones, en la que cada una de ellas cumple determinadas condiciones mínimas de diseño:
  • No deben existir dos tuplas iguales.
  • Cada atributo sólo puede tomar un único valor del dominio, es decir, no puden contener listas de valores.
  • El orden de las tuplas dentro de la relación y el de los atributos, dentro de cada tupla, no es importante.

Cardinalidad

Cardinalidad: número de tuplas que contiene una relación.
La cadinalidad puede cambiar, y de hecho lo hace frecuentemente, a lo largo del tiempo: siempre se pueden añadir y eliminar tuplas.

Grado

Grado: número de atributos de cada tupla.
El grado de una relación es un valor constante. Esto no quiere decir que no se puedan agregar o eliminar atributos de una relación; lo que significa es que si se hace, la relación cambia. Cambiar el grado, generalmente, implicará modificaciones en las aplicaciones que hagan uso de la base de datos, ya que cambiarán conceptos como claves e interrelaciones, de hecho, puede cambiar toda la estructura de la base de datos.

Esquema

Esquema: es la parte constante de una relación, es decir, su estructura.
Esto es, el esquema es una lista de los atributos que definen una relación y sus dominios.

Instancia

Instancia: es el conjunto de las tuplas que contiene una relación en un momento determinado.
Es como una fotografía de la relación, que sólo es válida durante un periodo de tiempo concreto.

Clave

Clave: es un conjunto de atributos que identifica de forma unívoca a una tupla. Puede estar compuesto por un único atributo o una combinación de varios.
Dentro del modelo relacional no existe el concepto de clave múltiple. Cada clave sólo puede hacer referencia a una tupla de una tabla. Por lo tanto, todas las claves de una relación son únicas.
Podemos clasificar las claves en distintos tipos:
  • Candidata: cada una de las posibles claves de una relación, en toda relación existirá al menos una clave candidata. Esto implica que ninguna relación puede contener tuplas repetidas.
  • Primaria: (o principal) es la clave candidata elegida por por el usuario para identificar las tuplas. No existe la necesidad, desde el punto de vista de la teoría de bases de datos relacionales, de elegir una clave primaria. Además, las claves primarias no pueden tomar valores nulos.
    Es preferible, por motivos de optimización de MySQL, que estos valores sean enteros, aunque no es obligatorio. MySQL sólo admite una clave primaria por tabla, lo cual es lógico, ya que la definición implica que sólo puede existir una.
  • Alternativa: cada una de las claves candidatas que no son clave primaria, si es que existen.
  • Foránea: (o externa) es el atributo (o conjunto de atributos) dentro de una relación que contienen claves primarias de otra relación. No hay nada que impida que ambas relaciones sean la misma.

Interrelación

Decimos que dos relaciones están interrelacionadas cuando una posee una clave foránea de la otra. Cada una de las claves foráneas de una relación establece una interrelación con la relación donde esa clave es la principal.
Según esto, existen dos tipos de interrelación:
  • La interrelación entre entidades fuertes y débiles.
  • La interreación pura, entre entidades fuertes.
Extrictamente hablando, sólo la segunda es una interrelación, pero como veremos más tarde, en el modelo relacional ambas tienen la forma de relaciones, al igual que las entidades compuestas, que son interrelaciones con atributos añadidos.
Al igual que en el modelo E-R, existen varios tipos de interrelación:
  • Uno a uno: a cada tupla de una relación le corresponde una y sólo una tupla de otra.
  • Uno a varios: a cada tupla una relación le corresponden varias en otra.
  • Varios a varios: cuando varias tuplas de una relación se pueden corresponder con varias tuplas en otra.