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;