Modelo relacional - script
From Ibbddunq
m |
|||
Line 30: | Line 30: | ||
clave: los tres | clave: los tres | ||
+ | trailer <patente, marca, modelo, maxOcupantes> | ||
+ | clave: patente | ||
+ | |||
+ | delineadorDeOjos <delin_nro, color, precio, fechaCompra, | ||
+ | art_fnac, art_nombreArt % relación 1-1 con artista | ||
+ | > | ||
+ | clave: delin_nro | ||
+ | |||
=Desarrollo= | =Desarrollo= | ||
Line 55: | Line 63: | ||
Una misma instancia de relación va a tener lo que vamos a llamar muchas '''filas''' o '''tuplas''', cada fila/tupla va a tener un valor para cada atributo. | Una misma instancia de relación va a tener lo que vamos a llamar muchas '''filas''' o '''tuplas''', cada fila/tupla va a tener un valor para cada atributo. | ||
- | Lo vemos sobre el ejemplo. | + | Lo vemos sobre el ejemplo. Marcamos en el dibujo de la tabla qué parte es el esquema y qué parte es la instancia. Introducimos la notación |
+ | artista <fnac, nombreReal, nombreArt, cachet> | ||
+ | para el esquema. | ||
Line 64: | Line 74: | ||
Lo que es una relación en el MER se traduce como una o varias relaciones, y/o atributos adicionales en alguna de las entidades relacionadas. | Lo que es una relación en el MER se traduce como una o varias relaciones, y/o atributos adicionales en alguna de las entidades relacionadas. | ||
+ | |||
+ | Ahora vamos a ver en detalle algunas características del MR, viendo cómo las usamos para armar, a partir de un MER, un MR que sirva para representar la misma info. | ||
+ | |||
+ | |||
+ | ==modelemos un par más de entidades MER== | ||
+ | '''acto''' y '''trailer''' | ||
+ | |||
+ | |||
+ | ==clave primaria== | ||
+ | para cada esquema de relación tengo que definir su clave primaria, que es un conjunto de atributos. El concepto es el mismo que en el MER: que el conjunto de atributos identifique, de forma tal que no pueda haber dos filas en la misma instancia de tabla con el mismo valor en '''todos''' los atributos de la clave. | ||
+ | |||
+ | Para cada una de estas, llegar a determinar la clave, indicando los supuestos semánticos que nos llevan a elegirla, y apoyándose en ejemplos. | ||
+ | * artista: empezar con nombre artístico, agregar después fecha de nacimiento | ||
+ | * acto | ||
+ | * trailer | ||
+ | |||
+ | |||
+ | ==modelado de relaciones MER== | ||
+ | Para incluir una relación MER en un esquema de BD que estamos armando con el modelo relacional, pueden pasar en principio dos cosas (las excepciones van a venir en un rato) | ||
+ | # agregamos la información que nos da la relación en atributos que agregamos a tablas que ya tenemos. | ||
+ | # tenemos que agregar una tabla nueva para modelar específicamente la relación. | ||
+ | Mientras podemos elegir, hacemos lo primero; no creamos tablas sin necesidad. | ||
+ | |||
+ | ¿cómo modelamos la relación viveEn? |
Revision as of 22:26, 21 August 2008
Contents |
Contexto
Es la tercer clase. En la primera se ve la introducción, en la segunda MER. Si quedó algo por ver de MER, se roba un cachito de la práctica del lunes siguiente.
Como ejemplo para apoyarnos al dar MER vemos el ejemplo del circo, y nos paramos en este ejemplo también para ir contando modelo relacional. Sería bueno arrancar la clase con el dibujo del MER en el pizarrón, al menos la parte que vamos a traducir.
En una clase debería entrar la descripción del modelo relacional, si quedó algo por decir se le puede robar un ratito a la siguiente clase, que es la primera de dos de álgebra relacional.
Ejemplo del circo
Tenemos estas tablas
artista <fnac, nombreReal, nombreArt, cachet, % fnac: fecha de nacimiento viveEn_patente, % relación viveEn 1-N con trailer art_numero, art_nombreArt, art_fechaInscripcion, art_valorCuota, % atributo compuesto inscripción ART maestro_fnac, maestro_nombreArt % relación esElMaestro 0..3 (maestro) - 1 (alumno) % (o sea, cada maestro hasta 3 alumnos, cada % alumno un maestro) artista con artista > clave fnac + nombreArt
acto <nombre, gradoPeligrosidad> clave nombre
puedeParticipar <artista_fnac, artista_nombreArt, acto_nombre> es una relación N-M entre artista y acto clave: los tres
trailer <patente, marca, modelo, maxOcupantes> clave: patente
delineadorDeOjos <delin_nro, color, precio, fechaCompra, art_fnac, art_nombreArt % relación 1-1 con artista > clave: delin_nro
Desarrollo
puntapié inicial
vamos a ver un nuevo modelo de datos, que es distinto al anterior. Como dijimos al principio (de verdad lo dije la 1er clase) es un modelo lógico, que va a servirnos para poder implementarlo en un DBMS.
tabla
En este modelo hay un solo concepto central, el de relación o tabla. Para complicarnos la vida, en este modelo hay un concepto llamado "relación", en el MER también, y no son lo mismo.
En el MER partimos de los conceptos separados de entidad y relación, acá tenemos uno solo, relación o tabla. Una BD es un conjunto de relaciones, en detalle
- un esquema de BD va a ser un conjunto de esquemas de relación.
- una instancia de BD va a ser un conjunto de instancias de relación.
P.ej. en el MER tengo la entidad Artista, acá vamos a tener la tabla artista.
Una relación es
- a nivel esquema, un conjunto de atributos, cada uno con su dominio. Definimos el esquema de la relación artista, con solamente fecha de nacimiento, nombre real, nombre artístico, cachet, aclaramos que después le vamos agregando el resto.
- a nivel instancia, una instancia de relación va a tener toda la información que uno quiere representar en la relación; en el ejemplo, una instancia de artista va a contener toda la información acerca de los artistas en una instancia de BD.
En una misma instancia va a haber info de distintos artistas ... Anotamos un par de filas de artista.
Una misma instancia de relación va a tener lo que vamos a llamar muchas filas o tuplas, cada fila/tupla va a tener un valor para cada atributo.
Lo vemos sobre el ejemplo. Marcamos en el dibujo de la tabla qué parte es el esquema y qué parte es la instancia. Introducimos la notación
artista <fnac, nombreReal, nombreArt, cachet>
para el esquema.
primer comparación entre los dos modelos
lo que modelábamos por separado como entidades o relaciones en el MER, acá lo vamos a modelar siempre como relaciones, de estas relaciones (que son otra cosa que lo que se llama "relación" en el MER).
Lo que es una entidad en el MER se traduce como una, o varias, relaciones del MR.
Lo que es una relación en el MER se traduce como una o varias relaciones, y/o atributos adicionales en alguna de las entidades relacionadas.
Ahora vamos a ver en detalle algunas características del MR, viendo cómo las usamos para armar, a partir de un MER, un MR que sirva para representar la misma info.
modelemos un par más de entidades MER
acto y trailer
clave primaria
para cada esquema de relación tengo que definir su clave primaria, que es un conjunto de atributos. El concepto es el mismo que en el MER: que el conjunto de atributos identifique, de forma tal que no pueda haber dos filas en la misma instancia de tabla con el mismo valor en todos los atributos de la clave.
Para cada una de estas, llegar a determinar la clave, indicando los supuestos semánticos que nos llevan a elegirla, y apoyándose en ejemplos.
- artista: empezar con nombre artístico, agregar después fecha de nacimiento
- acto
- trailer
modelado de relaciones MER
Para incluir una relación MER en un esquema de BD que estamos armando con el modelo relacional, pueden pasar en principio dos cosas (las excepciones van a venir en un rato)
- agregamos la información que nos da la relación en atributos que agregamos a tablas que ya tenemos.
- tenemos que agregar una tabla nueva para modelar específicamente la relación.
Mientras podemos elegir, hacemos lo primero; no creamos tablas sin necesidad.
¿cómo modelamos la relación viveEn?