Diferencia entre revisiones de «Plantilla:Bases Datos/Modelo Logico»
(→Conceptos del nivel lógico: Elementos del modelo) |
|||
| (No se muestran 31 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 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 18:02 25 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
|
|
|
|



















