Diferencia entre revisiones de «Plantilla:Bases Datos/Modelo Logico»
(→Conceptos del nivel lógico: Elementos del modelo) |
|||
(No se muestran 30 ediciones intermedias de 2 usuarios) | |||
Línea 3: | Línea 3: | ||
*Es importante tener claro que lo que queremos realizar a este nivel es '''''aplicar una serie de reglas para transformar el modelo entidad/interrelación o modelo de Chen en un modelo relacional''''' | *Es importante tener claro que lo que queremos realizar a este nivel es '''''aplicar una serie de reglas para transformar el modelo entidad/interrelación o modelo de Chen en un modelo relacional''''' | ||
{{MRM_Clave|Title=Paso del modelo E/R a modelo Relacional| | {{MRM_Clave|Title=Paso del modelo E/R a modelo Relacional| | ||
− | [[ | + | [[Archivo:Transformacion_er_mr.png]] |
+ | }} | ||
+ | {{MRM_Clave|Title=Comparativa de términos| | ||
+ | ;Vamos a usar una serie de términos quizá nuevos, pero por todas conocidos | ||
+ | *Vemos la relación de ellos<br /> | ||
+ | [[Archivo:comparativa_terminos.png]] | ||
}} | }} | ||
*En este nivel hay que estudiar una serie de conceptos sencillos, que convienen dejar claros | *En este nivel hay que estudiar una serie de conceptos sencillos, que convienen dejar claros | ||
Línea 11: | Línea 16: | ||
;Restricciones | ;Restricciones | ||
}} | }} | ||
− | |||
====Conceptos del nivel lógico: Elementos del modelo==== | ====Conceptos del nivel lógico: Elementos del modelo==== | ||
<br /> | <br /> | ||
Línea 18: | Línea 22: | ||
que puede tomar un determinado atributo (campo). | que puede tomar un determinado atributo (campo). | ||
de un elemento concreto (tupla o fila) del objeto (relación o tabla). | de un elemento concreto (tupla o fila) del objeto (relación o tabla). | ||
− | [[Imagen: | + | [[Imagen:Valores_del_Dominio.png]] |
*Podemos ver un dominio como un tipo de datos con restricciones. | *Podemos ver un dominio como un tipo de datos con restricciones. | ||
{{MRM_Clave|Title=características de los valores de un dominio| | {{MRM_Clave|Title=características de los valores de un dominio| | ||
Línea 27: | Línea 31: | ||
:Si dividiéramos el valor, perdería su significado | :Si dividiéramos el valor, perdería su significado | ||
}} | }} | ||
+ | Dice que el valor que ha de tomar cada atributo (campo) <br /> | ||
+ | dentro de una tupla (fila) ha de ser atómico y pertenecer al dominio | ||
}} | }} | ||
{{MRM_Definicion|Title=Atributo| | {{MRM_Definicion|Title=Atributo| | ||
Línea 33: | Línea 39: | ||
Se define como el papel que desempeña un determinado | Se define como el papel que desempeña un determinado | ||
dominio en una relación (tabla) | dominio en una relación (tabla) | ||
− | [[Imagen: | + | [[Imagen:atributo_1.png]] |
*Podemos ver un dominio como un tipo de datos con restricciones. | *Podemos ver un dominio como un tipo de datos con restricciones. | ||
}} | }} | ||
Línea 39: | Línea 45: | ||
;Es cada una de las filas que vamos a tener en la tabla | ;Es cada una de las filas que vamos a tener en la tabla | ||
*Se define como (no hace falta aprenderlo) | *Se define como (no hace falta aprenderlo) | ||
− | Un conjunto de pares de la forma | + | Un conjunto de pares de la forma <br /> |
− | T <nowiki>={(A1,D1),(A2,D2),....,(An,Dn)}</nowiki> | + | T <nowiki>={(A1,D1),(A2,D2),....,(An,Dn)}</nowiki> <br /> |
− | donde | + | donde<br /> |
− | <nowiki> {A1,,A2,....,An} (n>0)</nowiki> es el conjunto de nombres de atributos del esquema necesariamente distintos. | + | <nowiki> {A1,,A2,....,An} (n>0)</nowiki> es el conjunto de nombres de atributos del esquema necesariamente distintos.<br /> |
− | <nowiki> {D1,,D2,....,Dn}</nowiki> son los dominios asociados a dichos atributos que no tienen que ser necesariamente distintos. | + | <nowiki> {D1,,D2,....,Dn}</nowiki> son los dominios asociados a dichos atributos<br /> |
+ | que no tienen que ser necesariamente distintos.<br /> | ||
+ | [[Archivo:Relacion_tuplas.png]] | ||
}} | }} | ||
{{MRM_Definicion|Title=Relación| | {{MRM_Definicion|Title=Relación| | ||
Línea 49: | Línea 57: | ||
;Es el conjunto de tuplas que constituyen el contenido de la información del mundo real | ;Es el conjunto de tuplas que constituyen el contenido de la información del mundo real | ||
*Una definición más formal | *Una definición más formal | ||
− | Una relación es un conjunto de tuplas del mismo esquema , y un esquema de relación es el esquema de las tuplas que lo | + | Una relación es un conjunto de tuplas del mismo esquema , |
− | forman. Notación : | + | y un esquema de relación es el esquema de las tuplas que lo |
− | <nowiki> R (A1:D1, A2:D2, ....., An:Dn)</nowiki> | + | forman. Notación : <br /> |
− | define una relación de esquema <nowiki> {(A1,D1),(A2,D2),....,(An,Dn)}.</nowiki> A partir de esta definición, diremos que dos | + | <nowiki> R (A1:D1, A2:D2, ....., An:Dn)</nowiki> <br /> |
+ | define una relación de esquema <nowiki> {(A1,D1),(A2,D2),....,(An,Dn)}.</nowiki><br /> | ||
+ | A partir de esta definición, diremos que dos <br /> | ||
relaciones R y S son compatibles si sus esquemas son idénticos. | relaciones R y S son compatibles si sus esquemas son idénticos. | ||
+ | [[Archivo:Relación.png]] | ||
}} | }} | ||
− | {{MRM_Definicion|Title=Restricciones}} | + | {{MRM_Definicion|Title=Restricciones| |
+ | Una '''''restricción''''' es una limitación que se va asociar <br /> | ||
+ | a los posibles valores que se pueden dar en un momento dado | ||
+ | {{MRM_Clave|Title=Tipos de restricciones| | ||
+ | ;De dominio | ||
+ | ;De clave | ||
+ | ;De valor no nulo | ||
+ | ;De integridad de entidades | ||
+ | ;De integridad referencial | ||
+ | }} | ||
+ | }} | ||
+ | {{MRM_Clave|Title=Restricción de dominio| | ||
+ | *Es un concepto básico | ||
+ | Dice que el valor que ha de tomar cada atributo (campo) <br /> | ||
+ | dentro de una tupla (fila) ha de ser atómico y pertenecer al dominio | ||
+ | }} | ||
+ | {{MRM_Clave|Title=Restricción de valores no nulos| | ||
+ | *En un momento dado, el valor de un atributo puede ser no conocido o que no se aplique. | ||
+ | *Dado ese caso se han de permitir valores nulos además de los valores del dominio. | ||
+ | *Dos valores nulos nunca se consideran iguales. (Se consideran difrentes entre si). | ||
+ | }} | ||
+ | {{MRM_Clave|Title=Restricción de clave| | ||
+ | *Una relación se define como un conjunto de tuplas. | ||
+ | *Por definición, todos los elementos de un conjunto son distintos; | ||
+ | *En consecuencia, todas las tuplas de una relación deben ser distintas. | ||
+ | *Esto implica que no puede haber dos tuplas que tengan los mismos valores para todos sus atributos. | ||
+ | Para cumplir esta restricción va a haber un conjunto de atributos (1 o más)<br /> | ||
+ | cuyos valores nunca se pueden repetir <br /> | ||
+ | para dadas dos tuplas cualesquiera de la relación | ||
+ | {{MRM_Clave|Title=Tipos de claves| | ||
+ | ;Clave candidata | ||
+ | Cada conjunto de atributos que satisfacen esta restricción se llaman '''''clave candidata''''' | ||
+ | ;Clave principal | ||
+ | Siempre hemos de elegir una de las claves candidatos como clave principal | ||
+ | ;Claves alternativas | ||
+ | Serán el resto de claves | ||
+ | [[Archivo:claves_candidatas.png]] | ||
+ | }} | ||
+ | {{MRM_Clave|Title=Valores de la clave| | ||
+ | ;Valor único | ||
+ | Los valores de la clave nunca se pueden repetir<br /> | ||
+ | Esto se aplica al conjunto de atributos que forman la clave | ||
+ | ;Valor no nulo (También llamada restricción de integridad de entidades) | ||
+ | Los valores de las claves nunca pueden ser nulo.<br /> | ||
+ | Esto se aplica para cada atributo que forme parte de alguna clave candidata | ||
+ | <br /> | ||
+ | [[Archivo:valores_unicos.png]]<br /> | ||
+ | }} | ||
+ | }} | ||
+ | ;Restricción de Integridad Referencial | ||
+ | <br /> | ||
+ | {{MRM_Conocimiento previo| | ||
+ | *Para explicar este concepto hay que tener claros los siguientes conceptos: | ||
+ | ;Propagación de clave | ||
+ | ;Clave extranjera o foránea | ||
+ | ;Integridad referencial | ||
+ | {{MRM_Clave|Title=Propagación de clave| | ||
+ | *Cuando creemos el modelo relacional solo vamos a tener relaciones (tablas) y atributos (campos) | ||
+ | *La forma de mantener la relación entre dos tablas o entidades va a ser propagando la clave | ||
+ | *Propagar la clave consiste en llevar la clave principal de una entidad a otra. | ||
+ | }} | ||
+ | {{MRM_Clave|Title=Clave extranjera o foránea| | ||
+ | *El atributo propagado en la relación o tabla no es una caracterísca del objeto o relación. | ||
+ | *Se conoce como elemento externo o extragero | ||
+ | *Como hace '''referencia''' a una clave principal se conoce como '''''clave extragera o foránea''''' | ||
+ | }} | ||
− | ==== | + | {{MRM_Clave|Title=Integridad referencial| |
− | ==== | + | *'''''Integridad''''' hace referencia a que algo sea bueno válido (integro) |
+ | *'''''Referencia''''' es que está señalando o haciendo alusión a otro elemento | ||
+ | La integridad referencial es que los valores de las claves extranjeras o foráneas<br /> | ||
+ | Han de ser valores que existan en la tabla donde el atributo referenciado es clave principal<br /> | ||
+ | o bien ser nulos si se permite que no haya referencia (el mínimo de las cardinalidades).<br /> | ||
+ | }} | ||
+ | <br /> | ||
+ | [[Archivo:propagacion_clave.png|700px]] <br /> | ||
+ | }} | ||
+ | ===Paso del modelo Entidad/Interrelación al modelo Relacional=== | ||
+ | <br /> | ||
+ | {{MRM_Definicion|Title=Modelo Relacional| | ||
+ | ;Es la representación gráfica de la futura base de datos | ||
+ | *En este modelo solo vamos a tener dos elementos | ||
+ | Relaciones o tablas | ||
+ | Atributos o campos | ||
+ | *Ademas vamos a incorporar una serie de las restricciones vistas anteriormente | ||
+ | *Lo que nos queda ahora es determinar qué hacemos con cada elementos del modelo entidad/interrelacion (entidades, atributos y interrelaciones) en el modelo relacional. | ||
+ | *Podemos volver a ver la imagen del principio del tema: | ||
+ | [[Archivo:Transformacion_er_mr.png]] | ||
+ | }} | ||
+ | ====Entidades==== | ||
+ | <br /> | ||
+ | {{MRM_Clave|Title=Transformación de entidades no débiles| | ||
+ | Cada entidad del modelo E-R genera una tabla. | ||
+ | [[Archivo:Entidades2relaciones.png]] | ||
+ | }} | ||
+ | |||
+ | ====Atributos==== | ||
+ | <br /> | ||
+ | <br /> | ||
+ | {{MRM_Clave|Title=Atributos| | ||
+ | ;Cada atributo pasa a ser un campo en el modelo relacional. | ||
+ | *Si el atributo es clave en la tabla será clave también | ||
+ | *Si no lo es lo especificaremos tal cual | ||
+ | [[Archivo:atributo2relaciones.png]] | ||
+ | |||
+ | }} | ||
+ | {{MRM_Clave|Title=Atributos multivaluados| | ||
+ | Los atributos multivaluados generarán una nueva tabla o relación. | ||
+ | #El la tabla propagamos la clave principal | ||
+ | #de la entidad donde el atributo está multivaluado. | ||
+ | #Este atributo será clave extranjera | ||
+ | #La clave principal será el conjunto de los dos atributos | ||
+ | [[Archivo:atributo_multivaluado2relaciones.png]] | ||
+ | }} | ||
+ | |||
+ | {{MRM_Clave|Title=Atributos derivados| | ||
+ | En principio los atributos derivados no se ponen | ||
+ | De ellos se debe de realizar un estudio y determinar qué hacer | ||
+ | {{MRM_Pregunta|Title=¿Almaceno los atributos derivados?| | ||
+ | *Almacenarlos implica dedicar espacio de almacenamiento <br /> y ahorrar tiempo en calcular su valor | ||
+ | *No almacenarlo es lo complementario | ||
+ | }} | ||
+ | }} | ||
+ | {{MRM_Clave|Title=Atributos compuestos| | ||
+ | *En este caso tenemos dos opciones | ||
+ | #Almacenar como campos de la tabla los componentes del atributo compuesto | ||
+ | #Crear una tabla donde propaguemos la clave principal que pasará a ser a la vez clave principal y foránea | ||
+ | {{MRM_Pregunta|Title=Genero tabla por los atributos compuestos| | ||
+ | *Analiza el tema de valores nulos | ||
+ | *Normalmetne son atributos semánticamente relacionados | ||
+ | ¿Habrá muchas tuplas que no tengan valor en esos atributos | ||
+ | *Si es si, hay un problema de nulos, mejor generar una tabla | ||
+ | *Si es no, sin duda es mejor agregarlo en la tabla acutal | ||
+ | }} | ||
+ | [[Archivo:Nulos.png]] | ||
+ | *El siguiente ejemplo muestra las dos opciones | ||
+ | [[Archivo:atributo_compuesto2relaciones.png]] | ||
+ | }} | ||
+ | ====Interrelaciones==== | ||
+ | *A continuación vamos a estudiar las relaciones | ||
+ | {{MRM_Clave|Title=Interrelaciones o vínculos| | ||
+ | *Estas pueden tener diferente cardinalidad (Luego analizaremos las ternarias): | ||
+ | ;1<nowiki>:</nowiki>N | ||
+ | ;1<nowiki>:</nowiki>1 | ||
+ | ;M<nowiki>:</nowiki>N | ||
+ | *Es importante recordar el concepto de propagar la clave | ||
+ | consiste en llevar la clave de una tabla (clave principal<br /> | ||
+ | a otra tabla donde se convierte en clave extranjera o foránea<br /> | ||
+ | queda establecida una '''''restricción de integridad referencial'''''<br /> | ||
+ | entre ambas tablas | ||
+ | }} | ||
+ | {{MRM_Clave|Title=Interrelaciones 1:N| | ||
+ | *En este caso se produce '''''la propagación de clave''''' | ||
+ | *Siempre propagaremos de la entidad de cardinalidad N a la entidad de cardinalidad 1 | ||
+ | *Pero si lo vemos en el sentido de la Interrelación el sentido es 1-N | ||
+ | *Si hubiera atributos en la interrelación irán la la tabla a la que se propaga | ||
+ | [[Archivo:relaciones_1N2relacional.png]] | ||
+ | {{MRM_Actividad|Title=Realiza el siguiente ejercicio| | ||
+ | Dado el siguiente esquema E/R, | ||
+ | obtén el modelo de tablas corresondiente | ||
+ | [[Archivo:Ejercicio_MR_1.png]] | ||
+ | }} | ||
+ | }} | ||
+ | {{MRM_Clave|Title=Interrelaciones M:N| | ||
+ | *En este caso se '''''generamos una nueva relación o tabla''''' | ||
+ | *La nueva tabla recibe propagada las claves de las entidades relacionadas | ||
+ | *Si la interrelacińo tuviera atributos, éstos formarían parte de la nueva relación o tabla | ||
+ | *Cada atributo propagado será una clave extrajera que referenciará a su tabla dónde es clave principal | ||
+ | *La clave de la nueva tabla será el conjunto de los dos atributos | ||
+ | *A veces hay que revisar si es suficiente o hay que añadir más información para la clave | ||
+ | [[Archivo:relaciones_MN2relacional.png]] | ||
+ | {{MRM_Actividad|Title=Realiza el siguiente ejercicio| | ||
+ | Dado el siguiente esquema E/R, | ||
+ | obtén el modelo de tablas corresondiente | ||
+ | [[Archivo:Ejercicio_MR_2.png]] | ||
+ | }} | ||
+ | }} | ||
+ | {{ | ||
+ | MRM_Clave|Title=Interrelaciones 1:1| | ||
+ | *Este es un caso poco frecuente que presenta diferentes opciones de resolución | ||
+ | *Para determinar qué hacer debemos de observar los mínimos, en cuyo caso tenemos tres opciones | ||
+ | #Los dos extremos opcionales | ||
+ | #un extremo opcional y otro obligatorio | ||
+ | #Los dos extremos obligatorios | ||
+ | {{MRM_Clave|Title=1:1 con opcionalidad en un extremo| | ||
+ | *Es este caso propagamos la clave de la entidad con opcionalidad a la entidad obligada | ||
+ | *Además la clave extranjera debe tener una restricción de valor único | ||
+ | [[Archivo:relaciones_112relacional.png]] | ||
+ | }} | ||
+ | {{MRM_Clave|Title=1:1 con opcionalidad en ambos extremos| | ||
+ | *En este caso,para mantener la información, debemos realizar una doble propagación de claves | ||
+ | *En ambos casos, la clave propagada, deberá de tener la restricción de valor único | ||
+ | [[Archivo:relaciones_11_opt2relacional.png]] | ||
+ | }} | ||
+ | {{MRM_Clave|Title=1:1 con obligatoriedad en ambos extremos| | ||
+ | *En este caso conviene jutar las dos entidades en una única tabla o relación juntando los atributos | ||
+ | *La clave será la unión de las dos claves de cada entidad | ||
+ | [[Archivo:realcion_11_obl2relacional.png]] | ||
+ | }} | ||
+ | }} |
Última revisión de 07:02 26 abr 2018
Contenido
Nivel Lógico
- A este nivel vamos a usar el modelo relacional
- Es importante tener claro que lo que queremos realizar a este nivel es aplicar una serie de reglas para transformar el modelo entidad/interrelación o modelo de Chen en un modelo relacional
|
- En este nivel hay que estudiar una serie de conceptos sencillos, que convienen dejar claros
Conceptos del nivel lógico: Elementos del modelo
Un dominio es el conjuntos de valores que puede tomar un determinado atributo (campo). de un elemento concreto (tupla o fila) del objeto (relación o tabla).
Dice que el valor que ha de tomar cada atributo (campo) |
Un atributo son cada una de las características o propiedades de los elementos de información (tablas) Se define como el papel que desempeña un determinado dominio en una relación (tabla)
|
Una relación es un conjunto de tuplas del mismo esquema , y un esquema de relación es el esquema de las tuplas que lo forman. Notación : R (A1:D1, A2:D2, ....., An:Dn) define una relación de esquema {(A1,D1),(A2,D2),....,(An,Dn)}. |
Una restricción es una limitación que se va asociar
|
Dice que el valor que ha de tomar cada atributo (campo)
|
|
Para cumplir esta restricción va a haber un conjunto de atributos (1 o más)
|
- Restricción de Integridad Referencial
|
Paso del modelo Entidad/Interrelación al modelo Relacional
Relaciones o tablas Atributos o campos
|
Entidades
Atributos
|
Los atributos multivaluados generarán una nueva tabla o relación.
|
En principio los atributos derivados no se ponen De ellos se debe de realizar un estudio y determinar qué hacer
|
|
Interrelaciones
- A continuación vamos a estudiar las relaciones
consiste en llevar la clave de una tabla (clave principal
|
|
|
|