VI- Implementação ObjetoRelacional
Esquema Objeto 
Esquema ObjetoRelacional
Implementação Objeto-Relacional de BDs
OO
• Metodologia de Projeto de Banco de
Dados Objeto-Relacional
• Transformação Esquema Objeto 
Esquema Objeto-Relacional
–
–
–
–
Transformação de Classes
Tranformação de Herança
Transformação de Associação
Transformação de Agregação
Metodologia de Projeto de Banco de Dados
Objeto-Relacional
Análise
Projeto
Projeto Lógico Padrão
Diagrama de
Classes UML/
ODMG
UML
+
SQL1999
Especificação
SQL1999
Implementação
Projeto Lógico Espec.
UML
+
Produto
Especificação
Produto
Implementação
Transformação Esquema Objeto  Esquema
Objeto-Relacional
UML
Class
Class Extension
Attribute
Multivalued
Composed
Calculated
SQL1999
Oracle8i
Structured Type
Object Type
Typed Table
Attribute
ARRAY
ROW /
Structured Type
in column
Trigger/Method
Object Table
Attribute
VARRAY
Nested Table
Object Type in
column
Trigger/Method
Transformação Esquema Objeto  Esquema
Objeto-Relacional
UML
SQL1999
Oracle8i
Association
One-To-One
REF/REF
One-To-Many
REF/ARRAY
Many-To-Many
ARRAY/ARRAY
REF/REF
REF/ARRAY
(NESTED
TABLE)
ARRAY (NESTED
TABEL)
/ ARRAY (NESTED
TABLE)
Transformação Esquema Objeto  Esquema
Objeto-Relacional
UML
SQL1999
Aggregation
ARRAY
Inheritance
Under Type
Under Table
Oracle8i
ARRAY /
NESTED TABLE
---
Transformação Esquema Objeto  Esquema ObjetoRelacional
SQL1999
Figura
<<persistent>>
CREATE TYPE Figura AS
(Figura_ID INTEGER,
Nome VARCHAR(30),
Cor VARCHAR(15)),
<<Methods>>;
CREATE TABLE Tab_Figura
OF Figura
(PRIMARY KEY (Figure_Id),
UNIQUE (Nome));
<<PK>> Figura_Id
<<AK>> Nome
Cor
CREATE TYPE Figura AS
(Figura_ID INTEGER,
Nome VARCHAR(30),
Cor VARCHAR(15)),
<<Methods>>;
Perimetro()
Area()
Oracle8i
CREATE TABLE Tab_Figura
OF Figura
(PRIMARY KEY (Figure_Id),
UNIQUE (Nome));
Transformação Esquema Objeto  Esquema ObjetoRelacional
CREATE TYPE Planta AS OBJECT
(Planta_Id NUMBER,
Data_Final DATE,
Arquiteto VARCHASR(30),
No-Figuras NUMBER);
Projeto
<<PK>> Projeto_Id
Nome
CREATE TABLE Tab_Planta OF Planta
(PRIMARY KEY (Planta_Id));
Oracle8i
Planta
<<PK>> Planta_Id
Data_Final
Arquiteto
No_Figuras
CREATE TYPE Lista_Plantas
AS TABLE OF REF Planta;
CREATE TYPE Projeto AS OBJECT
( Projeto_Id NUMBER,
Nome VARCHAR(30),
Tem_Plantas Lista_Plantas);
CREATE TABLE Tab_Projeto OF Projeto
(PRIMARY KEY (Projeto_Id) )
Nested Table Tem_Plantas STORE AS Ntab_Plantas;
Transformação Esquema Objeto  Esquema ObjetoRelacional
Poligono
CREATE TYPE Linha AS OBJECT
(Linha_Id NUMBER,
Ponto_Inicio Ponto,
Ponto_Fim Ponto);
<<PK>>Poligono_Id
No_Linhas
CREATE TYPE Lista_Linhas
AS TABLE OF Linha;
Oracle8i
Linha
<<PK>> Linha_Id
Ponto_Inicio
Ponto_Fim
CREATE TYPE Poligono AS OBJECT
(Poligono_Id NUMBER,
No_Linhas NUMBER,
Tem_Linhas Lista_Linhas);
CREATE TABLE Tab_Poligono OF Poligono
(PRIMARY KEY (Poligono_Id));
Nested Table Tem_Linhas STORE AS Ntab_Linhas;
Download

UML-OR