Home Bases de Datos El Modelo Relacional Relaciones

PostHeaderIcon Relaciones

Usar puntuación: / 1
MaloBueno 

El modelo relacional se basa en la existencia de tablas que facilitan la compresión y la definición de los datos que almacena la base de datos. Estas tablas son conocidas como relaciones, y su definición varía con respecto a la definición de las relaciones que hicimos en el modelo entidad relación. En el modelo E/R definimos una relación como la interacción entre dos entidades. Ahora en el modelo relacional este concepto cambia y pasamos a establecer una correspondencia directa entre tabla y relación. Así, lo que en el modelo E/R referenciábamos como entidades y relaciones, ahora en el modelo relacional se simplifica en un único concepto: la relación.

Una relación se representa mediante una tabla con filas y columnas. EL SGBD sólo necesita que el usuario pueda percibir la base de datos como un conjunto de tablas. Esto sólo se aplica a la estructura lógica de la base de datos (nivel conceptual y externo de la arquitectura). Estas relaciones se usan para almacenar información sobre los objetos que se encuentran en la base de datos. Se representa como una tabla bidimensional en la que las filas se representan como registro o tuplas y las columnas como atributos o campos.

Una relación está formada por:

  • Atributos: tienen un nombre y pueden guardar un conjunto de valores. El orden es irrelevante, ya que toda información se identifica por el nombre.
  • Tuplas: son los valores que se le da a los atributos.

Todas las tablas tienen:

  • Cardinalidad: Se define como el número de filas que hay en una tabla.
  • Grado: Se define como el número de columnas que hay en una tabla.
  • Valor: Se define como la intersección entre una fila y una columna, y hace referencia al dato que ahí se encuentra.
  • Valor NULL: Se define como la ausencia de la información, o dicho de otra manera, cuando no hay valor ninguno para un atributo concreto.

Definiciones formales: Una relación está definida por un conjunto de dominios. Toda relación consta de:

  • Cabecera: donde cada atributo corresponde a un determinado dominio y todos los atributos son distintos. Se representa como Tupla (Atributo: Dominio).
  • Cuerpo: conjunto variable de tuplas. En cada par se tiene que el valor pertenece a un dominio. 

Ejemplo: Tabla alumno

Cabecera: {(N_ALUM: numérico), (NOM_ALUM: texto), (CLASE: texto)}o

Tupla1: {(N_ALUM: 3051), (NOM_ALUM: Néstor), (CLASE: 4ºB)}

Tupla2: {(N_ALUM: 2070), (NOM_ALUM: Juan), (CLASE: 5ºA)}

Propiedades de las Relaciones:

  • Cada relación y cada atributo tienen un nombre único, y éste es distinto a los demás.
  • Los valores de los atributos son atómicos, es decir solo hay un único valor.
  • Los atributos no están ordenados puesto que en este caso, el orden es irrelevante.
  • Las tuplas no están repetidas, ya que sus valores son diferentes y éstos son únicos, en especial un valor concreto que veremos más adelante: la clave
  • El orden de las tuplas es irrelevante.

Tipos de Relaciones: 

  • Relaciones base: relaciones con nombre que forman parte directa de la BD almacenada, es decir que son entidades. Se encuentra en el nivel conceptual ANSI.
  • Vistas: son relaciones que encontramos a partir de una consulta. No tienen datos almacenado, lo que se almacena es la definición de la consulta. Se encuentra en el nivel externo ANSI.
  • Instantáneas: relaciones con nombre derivadas de otras. Son sólo de lectura y el sistema las refresca periódicamente. Se pueden encontrar en el nivel interno de ANSI.
  • Resultados de consultas:Son tablas que se obtienen como resultado de una consulta a la base de datos. No permanecen en la BD.
  • Resultados intermedios: Son relaciones que contienen los resultados de las subconsultas. No perduran en la BD. Cuando se realiza una consulta puede, a veces, que se tenga que realizar alguna pregunta temporal para saber el resultado de la principal consulta. Al resultado de esta consulta temporal es a lo que se denomina consulta intermedia.
  • Resultados temporales: son similares a las relaciones base pero en un momento dado se destruye.

Claves 

Ya hemos visto que en una relación o tabla no puede haber tuplas repetidas. Para ello, si es necesario, se crea un campo especial que será clave y, por tanto, único. A veces la fila se puede identificar con un atributo, pero  otras veces se necesita una combinación de atributos (dos o más atributos). Para que uno o varios atributos puedan ser considerados clave debe cumplir dos requisitos:

Debe ofrecer una identificación unívoca, es decir, cada tupla debe tener una clave principal que la identifica a ella y solo a ella.

Debe ser no redundante, esto es, que la información que ofrece la tupla no debe estar repetida, o por lo menos no debe ofrecer la misma información que otra tupla. Hay que tener claro que no se trata de que dos tuplas no sean iguales en cuestión de datos, puesto que podría darse el caso de dos objetos con los mismos datos. El concepto de la no redundancia hace referencia precisamente a que  deben ser dos objetos diferentes, aunque tengan las mismas características.

La clave candidata es un conjunto de atributos que identifican unívoca y mínimamente cada tupla. En una tabla puede haber más de una clave candidata (supongamos una empresa dónde se almacena el NIF del trabajador, su número de Seguridad Social y además se le asigna un número de empleado: estamos ante tres claves candidatas). En casos como éste se distinguen:

Clave primaria: Es la clave candidata que elige el usuario. No puede tener valor nulo y en el caso de que se tenga una única clave candidata ésta será la clave primaria.

Clave/s alternativa/s: aquellas que no son escogidas como clave primaria.

La clave ajena (que ya veremos más adelante con más detalle) son atributos cuyos valores han de coincidir con los valores de la clave primaria de otra relación.

Ejemplo 1: Disponemos de las tablas TDEPART (tabla de departamentos) y TEMPLE (Tabla de empleados). Los campos de TDEPART son:

Nº de departamento (NUMDEPT)

Nombre de departamento (NOMDEPT)

Presupuesto (PRESUPUESTO)

Las columnas de la tabla TEMPLE son

Nº de empleado (NEMPLE)

Nombre (NOMBRE)

Departamento (DPTO)

Salario (SALARIO)

Se pide: Identificar las claves candidatas, elegir la primaria y si es necesario las ajenas de ambas tablas

Definición formal de TDEPART.

Cabecera: {(NUMDEPT: numérico), (NOMDEPT: texto), (PRESUPUESTO: numérico)}

Tupla1: {(NUMDEPT: 20), (NOMDEPT: diseño), (PRESUPUESTO: 1.500)}

Tupla2: {(NUMDEPT: 10), (NOMDEPT: publicidad), (PRESUPUESTP: 3.000)}

Definición formal de TEMPLE

Cabecera: {(NEMPLE: numérico), (NOMBRE: texto), (DPTO: numérico), (SALARIO: numérico)}

Tupla1: {(NEMPLE: 2356), (NOMBRE: Pepe), (DPTO: 10), (SALARIO: 2.500)}

Tupla2: {(NEMPLE: 4760), (NOMBRE: María), (DPTO: 20), (SALARIO: 1.800)} 

Ejemplo 2: En un concesionario de coches tenemos la tabla VENDEDOR y la tabla COCHE. 

Se pide: definir los atributos necesarios de ambas tablas, identificar las claves candidatas y elegir la clave primaria de ambas tablas. Además crear la relación VENTA que contiene qué vendedor ha vendido qué coche. ¿Cuáles es/son la/s clave/s de esta relación?

Definición formal de VENDEDOR

Cabecera: {(NUM_VEND: numérico), (NOM_VEND: texto), (APEL_VEND: texto), (TLF_VEND: numérico), (NUM_VENTAS: numérico), (SALARIO: numérico)}

Tupla1: {(NUM_VEND: 2030), (NOM_VEND: Paco), (APEL_VEND: Jímenez Rodríguez), (TLF_VEND: 654879231), (NUM_VENTAS: 25), (SALARIO: 1.200)}

Tupla2: {(NUM_VEND: 1540), (NOM_VEND: Laura), (APEL_VEND: Sánchez Sánchez), (TLF_VEND: 630215489), (NUM_VENTAS: 30), (SALARIO: 1.200)}

Definición formal de COCHE

Cabecera: {(MATRÍCULA: texto), (MARCA: texto), (MODELO: texto), (PRECIO: numérico)}

Tupla1: {(MATRÍCULA: 3026 GCS), (MARCA: Volkswagen), (MODELO: Cross Polo), (PRECIO: 19.370)}

Tupla2: {(MATRÍCULA: 4285 LFG), (MARCA: Honda), (MODELO: Civic), (PRECIO: 18.900)}

Definición formal de VENTA

Cabecera: {(COD_VENTA: numérico), (NOM_CLIENTE: texto), (COCHE: texto), (NUM_VEND: numérico), (COMPRA: numérico)}

Tupla1: {(COD_VENTA: 3160), (NOM_CLIENTE: Juana), (COCHE: 3026 GCS), (NUM_VEND: 2030), (COMPRA: 19.370)}

Tupla2: {(COD_VENTA: 2980), (NOM_CLIENTE: Clara), (COCHE: 4285 LFG), (NUM_VEND: 1540), (COMPRA: 18.900)}

 

Escribir un comentario


Código de seguridad
Refescar

PostHeaderIcon Más Comentado

PostHeaderIcon Últimos Comentarios

mod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_counter
mod_vvisit_counterHoy267
mod_vvisit_counterAyer427
mod_vvisit_counterEsta semana267
mod_vvisit_counterLa semana pasada5382
mod_vvisit_counterEste mes15551
mod_vvisit_counterEl mes pasado29418
mod_vvisit_counterTodos los días1623187

We have: 35 guests, 2 bots online
Hoy es: Jun 18, 2018