Herramientas de usuario

Herramientas del sitio


bases_de_datos:diseno:modelo_relacional

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
bases_de_datos:diseno:modelo_relacional [2021/06/30 14:03] albertobases_de_datos:diseno:modelo_relacional [2021/07/01 13:19] (actual) – [Restricciones de usuario] alberto
Línea 14: Línea 14:
  
 ===== Estática del Modelo Relacional ===== ===== Estática del Modelo Relacional =====
 +Una relación se compone de un nombre, unos atributos (con sus correspondientes dominios) y un conjunto de tuplas, y se define de la siguiente manera:
 +{{ :bases_de_datos:diseno:definicionrelacion.png?direct |Definición de relación}}
 +
 +Los dominios son opcionales, pues los atributos pueden tomar valores en un conjunto acotado definido previamente, o bien y en principio, ser infinitas las posibilidades de un valor determinado.
 +
 +Dentro de las relaciones existen principalmente dos tipos: relaciones base y vistas. Las relaciones base son relaciones con existencia propia, las vistas son relaciones que provienen de otras relaciones base (por ejemplo, el resultado de una búsqueda).
 +
 +
 +==== Restricciones inherentes del modelo relacional ====
 +  * **Ningún atributo puede tomar más de un valor para cada tupla**: Es lo mismo que decir que en cada una de las celdas de una tabla que represente una relación no puede haber más de un valor.
 +  * **No importa el orden ni de las tuplas ni de los atributos**
 +  * **Todas las tuplas de una relación deben ser distintas**: Si no, se duplicaría información. Al menos debe haber un atributo que identifique inequívocamente esa tupla: **Clave primaria** o //**PRIMARY KEY**// en lenguaje SQL.
 +  * **Regla de integridad de la entidad**: Ningún atributo que forme parte de la clave primaria puede tomar un valor nulo.
 +
 +==== Restricciones de usuario ====
 +  * **Valores de uno o varios atributos que no pueden repetirse**
 +  * **Atributos que deben tener siempre valores para todas las tuplas de la relación**: En SQL se define como **NOT NULL**.
 +  * **Integridad referencial**: Forma en la que los datos de dos o más tablas se deben relacionar para no atentar contra la integridad de la base de datos (que no haya información repetida). Esto se hace a través de la **Clave Ajena** o //**FOREIGN KEY**// en SQL. Se representa mediante una flecha que sale de la clave ajena y apunta hacia la clave primaria de la tabla con la que se relaciona. Podemos ver un ejemplo: {{ :bases_de_datos:diseno:relaciontablas.png?direct |Relación entre tablas a través de la clave ajena}}
 +  * **Operación restringida**: El borrado (DR) o la modificación (UR) de las filas de la relación que contiene la clave ajena no se permite mientras existan tuplas en la relación a la que se referencia. En SQL es conocida como **NO ACTION** o **RESTRICT**.
 +  * **Operación en cascada**: Cuando se elimina (DC) o modifica (UC) una tupla de la relación que es referenciada, los cambios se transmiten en cascada a las tuplas de la relación que contiene la clave ajena cuyos valores se han modificado. Conocida en SQL como **CASCADE**.
 +
 +Se han expuesto las restricciones básicas que deben tener en cuenta los usuarios en el diseño de bases de datos relacionales, pero existen más (SET NULL, SET DEFAULT, etc).
 +
 +===== Reglas básicas para la transformación del modelo E/R al modelo relacional =====
 +En la segunda fase del diseño tenemos que transformar el esquema realizado en el modelo Entidad/Interrelación a un esquema lógico, ya que no existe ningún Sistema Gestor de Bases de Datos que soporte el modelo E/R.
 +
 +  * **Primera regla de transformación**: Toda entidad se transforma en una relación o tabla, y los atributos o características asociadas a ella pasan a ser atributos de la relación. En general, el nombre de la tabla suele ser el plural del nombre de la entidad.
 +  * **Segunda regla de transformación**: las interrelaciones cuyo tipo de correspondencia es N:M se transforman en una nueva relación cuyo nombre se corresponde con el nombre de la interrelación y donde la clave primaria se compone de los atributos identificadores de las dos entidades que relaciona.
 +  * **Tercera regla de transformación**: La transformación de interrelaciones cuyo tipo de correspondencia es 1:N se traduce en una propagación de clave o en una nueva relación si la interrelación posee atributos.
 +
 +EJEMPLO 1: \\
 +{{:bases_de_datos:diseno:transformacionejemplo11.png?direct|Interrelación de correspondencia N:M}}{{:bases_de_datos:diseno:transformacionejemplo12.png?direct|Transformación de una interrelación N:M}}{{:bases_de_datos:diseno:transformacionejemplo13.png?direct|Transformación de una interrelación N:M con las opciones de borrado (BC) y modificación (MC) en cascada}}\\
 +
 +\\
 +EJEMPLO 2: \\
 +{{:bases_de_datos:diseno:transformacionejemplo21.png?direct|Interrelación Trabajar con correspondencia 1:N}}{{:bases_de_datos:diseno:transformacionejemplo22.png?direct|Transformación de la Interrelación Trabajar}}
bases_de_datos/diseno/modelo_relacional.1625054600.txt.gz · Última modificación: por alberto

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki