Traducción del Modelo Objeto al
Esquema Relacional
Prof. Marlene Goncalves
mgoncalves@usb.ve
UNIVERSIDAD SIMON BOLIVAR
DEPARTAMENTO DE COMPUTACION Y T.I.
Traducción de un Modelo de
Objetos a una Base de Datos
• Modelos de Objetos UML pueden ser traducidos a Base de Datos
relacionales:
– Alguna degradación ocurre debido a que todos los
constructores de UML debe ser traducidos a un sólo
constructor de Base de Datos relacional – la tabla
• Traducción de clases, atributos y asociaciones
– Cada clase es traducida a una tabla
– Cada atributo es traducido a una columna en la tabla
– Una instancia de una clase representa a una tupla en la tabla
– Una asociación muchos-a-muchos es traducida como una
tabla
– Una asociación uno-a-muchos es implementada a través de
claves foráneas
• Los Métodos no son traducidos.
Traducción de una Clase a una
Tabla
Usuario
+nombre:String
+login:String
+email:String
id:long nombre:text[25] login:text[8] email:text[32]
Tabla Usuario
Claves Primarias y Foráneas
• Cualquier conjunto de atributos que pueden ser usados
para identificar unívocamente cualquier tupla en una
tabla relacional es llamado una clave candidata
• La clave candidata actual que es usada en la aplicación
para identificar las tuplas es llamada la clave primaria
– La clave primaria de una tabla es un conjunto de
atributos cuyos valores identifican unívocamente las
tuplas de una tabla
• Una clave foránea es un atributo (o un conjunto de
atributos) que referencia la clave primaria de otra tabla.
Ejemplo de Claves Primarias y
Foráneas
Tabla Usuario
Clave Candidata
login email
“am384” “am384@mail.org”
“js289” “john@mail.de”
nombre
“Alicia”
“John”
“bd” “bobd@mail.ch”“Bob”
Clave Candidata
Clave Primaria
Tabla Liga login
“am384”
“bd”
nombre
“tictactoeNovice”
“tictactoeExpert”
“js289”“chessNovice”
Clave Foránea referenciando a Usuario
Traducción de Asociaciones
Transacción
TransaccionID
Portafolio
portafolioID
...
*
portafolioID ...
Tabla PortafolioTabla Transacción
transactionID portafolioID
• Asociaciones con multiplicidad “uno” pueden ser
implementadas usando una clave foránea
Para asociaciones uno-a-muchos, se añade la clave foránea a
la tabla que representa a la clase que tiene a “muchos”
1
Traducción de Asociaciones
Ciudad
nombre
Aeropuerto
codigo
nombre
* *tiene
nombre
Houston
Albany
Munich
Hamburg
Tabla Ciudad
codigo
IAH
HOU
ALB
MUC
HAM
Tabla Aeropuerto
nombre
Intercontinental
Hobby
Albany County
Munich Airport
Hamburg Airport
nombreCiu
Houston
Houston
Albany
Munich
Hamburg
Tabla Tiene
codigoAer
IAH
HOU
ALB
MUC
HAM
En este caso se necesita una tabla separada para la asociación
Tabla Separada para la
asociació n “tiene”
Clave Primaria
Correspondencia
• Uso del Patrón Representación de Objetos como
Tablas
– Definir una tabla en una Base de Datos
Relacional por cada clase de objeto
persistente.
– Los atributos cuyos tipos de datos son
primitivos (número, cadena de texto, booleano,
etc) se corresponden con las columnas. (1FN)
– Relaciones 1:1:
• Crear una clave foránea en una o ambas
tablas.
• Crear una tabla asociación con ambos OIDs
Correspondencia
• Uso del Patrón Representación de las
Relaciones de los Objetos en Tablas
– Relaciones 1:N:
• Crear una clave foránea (del lado N).
• Crear una tabla asociación con ambos OIDs
– Relaciones M:N
• Crear una tabla asociación con ambos OIDs
Correspondencia
• Uso del Patrón Representación de las
Relaciones de los Objetos en Tablas
– Relaciones 1:N:
• Crear una clave foránea (del lado N).
• Crear una tabla asociación con ambos OIDs
– Relaciones M:N
• Crear una tabla asociación con ambos OIDs

Clases a relacional

  • 1.
    Traducción del ModeloObjeto al Esquema Relacional Prof. Marlene Goncalves mgoncalves@usb.ve UNIVERSIDAD SIMON BOLIVAR DEPARTAMENTO DE COMPUTACION Y T.I.
  • 2.
    Traducción de unModelo de Objetos a una Base de Datos • Modelos de Objetos UML pueden ser traducidos a Base de Datos relacionales: – Alguna degradación ocurre debido a que todos los constructores de UML debe ser traducidos a un sólo constructor de Base de Datos relacional – la tabla • Traducción de clases, atributos y asociaciones – Cada clase es traducida a una tabla – Cada atributo es traducido a una columna en la tabla – Una instancia de una clase representa a una tupla en la tabla – Una asociación muchos-a-muchos es traducida como una tabla – Una asociación uno-a-muchos es implementada a través de claves foráneas • Los Métodos no son traducidos.
  • 3.
    Traducción de unaClase a una Tabla Usuario +nombre:String +login:String +email:String id:long nombre:text[25] login:text[8] email:text[32] Tabla Usuario
  • 4.
    Claves Primarias yForáneas • Cualquier conjunto de atributos que pueden ser usados para identificar unívocamente cualquier tupla en una tabla relacional es llamado una clave candidata • La clave candidata actual que es usada en la aplicación para identificar las tuplas es llamada la clave primaria – La clave primaria de una tabla es un conjunto de atributos cuyos valores identifican unívocamente las tuplas de una tabla • Una clave foránea es un atributo (o un conjunto de atributos) que referencia la clave primaria de otra tabla.
  • 5.
    Ejemplo de ClavesPrimarias y Foráneas Tabla Usuario Clave Candidata login email “am384” “am384@mail.org” “js289” “john@mail.de” nombre “Alicia” “John” “bd” “bobd@mail.ch”“Bob” Clave Candidata Clave Primaria Tabla Liga login “am384” “bd” nombre “tictactoeNovice” “tictactoeExpert” “js289”“chessNovice” Clave Foránea referenciando a Usuario
  • 6.
    Traducción de Asociaciones Transacción TransaccionID Portafolio portafolioID ... * portafolioID... Tabla PortafolioTabla Transacción transactionID portafolioID • Asociaciones con multiplicidad “uno” pueden ser implementadas usando una clave foránea Para asociaciones uno-a-muchos, se añade la clave foránea a la tabla que representa a la clase que tiene a “muchos” 1
  • 7.
    Traducción de Asociaciones Ciudad nombre Aeropuerto codigo nombre **tiene nombre Houston Albany Munich Hamburg Tabla Ciudad codigo IAH HOU ALB MUC HAM Tabla Aeropuerto nombre Intercontinental Hobby Albany County Munich Airport Hamburg Airport nombreCiu Houston Houston Albany Munich Hamburg Tabla Tiene codigoAer IAH HOU ALB MUC HAM En este caso se necesita una tabla separada para la asociación Tabla Separada para la asociació n “tiene” Clave Primaria
  • 8.
    Correspondencia • Uso delPatrón Representación de Objetos como Tablas – Definir una tabla en una Base de Datos Relacional por cada clase de objeto persistente. – Los atributos cuyos tipos de datos son primitivos (número, cadena de texto, booleano, etc) se corresponden con las columnas. (1FN) – Relaciones 1:1: • Crear una clave foránea en una o ambas tablas. • Crear una tabla asociación con ambos OIDs
  • 9.
    Correspondencia • Uso delPatrón Representación de las Relaciones de los Objetos en Tablas – Relaciones 1:N: • Crear una clave foránea (del lado N). • Crear una tabla asociación con ambos OIDs – Relaciones M:N • Crear una tabla asociación con ambos OIDs
  • 10.
    Correspondencia • Uso delPatrón Representación de las Relaciones de los Objetos en Tablas – Relaciones 1:N: • Crear una clave foránea (del lado N). • Crear una tabla asociación con ambos OIDs – Relaciones M:N • Crear una tabla asociación con ambos OIDs

Notas del editor

  • #5 Litte Primer on Database concepts, a repeat for those of you that have already taken databases.