1 / 33

Gerando Esquemas Objeto Relacionais (Oracle 9i) a partir do Diagrama de Classes da UML

Gerando Esquemas Objeto Relacionais (Oracle 9i) a partir do Diagrama de Classes da UML. Vânia Maria Ponte Vidal. ROTEIRO. IDENTIFICANDO COLEÇÕES GLOBAIS CRIAÇÃO DOS TIPOS CRIAÇÃO DAS TABELAS CRIAÇÃO DAS VISÕES CRIAÇÃO DOS TRIGGERS. IDENTIFICANDO COLEÇÕES GLOBAIS.

dino
Download Presentation

Gerando Esquemas Objeto Relacionais (Oracle 9i) a partir do Diagrama de Classes da UML

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Gerando Esquemas Objeto Relacionais (Oracle 9i) a partir do Diagrama de Classes da UML Vânia Maria Ponte Vidal

  2. ROTEIRO • IDENTIFICANDO COLEÇÕES GLOBAIS • CRIAÇÃO DOS TIPOS • CRIAÇÃO DAS TABELAS • CRIAÇÃO DAS VISÕES • CRIAÇÃO DOS TRIGGERS

  3. IDENTIFICANDO COLEÇÕES GLOBAIS Devem ser criadas coleções Globais para : • Classes que são pontos de entrada do Banco • Classes cujas instâncias são compartilhadas, i.e., podem ser referenciadas por mais de um objeto.

  4. CRIAÇÃO DOS TIPOS • Para cada classe do diagrama cria-se um tipo de objeto (inicialmente incompleto). • Classes Plenas • Mapeamento de Atributos • Mapeamento de Relacionamentos (Ligações) • Classes de Associação

  5. Mapeamento de Atributos • Monovalorado : • Gera um atributo monovalorado (o tipo do atributo é mapeado no tipo do Oracle 9i correspondente; caso este não exista deve ser criado)

  6. Mapeamento de Atributos • Multivalorado : • cria um tipo Ta Nested Table ou Varray C. O tipo dos “objetos membros” é mapeado no tipo do Oracle 9i correspondente; caso este não exista deve ser criado. • Cria o atributo a cujo tipo é Ta

  7. Mapeamento de Atributos CREATE TYPE Varfone AS VARRAY(40) OF VARCHAR(13) / CREATE OR REPLACE TYPE CONSUMIDOR_TY AS OBJECT( CPF INTEGER, Name VARCHAR2 Fone Varfone ) /

  8. Mapeamento de Relacionamentos Para cada direção de navegação em um relacionamento (Associação, Agregação ou Composição) é associada uma ligação ou papel (l : AB) • Ligação de Valor: A classe destino (B) não tem associada uma coleção Global (Objetos não têm Oid, logo não podem ser referenciados) • Ligação de Referência : A classe destino (B) tem associada uma coleção Global (Objetos têm Oid, logo podem ser referenciados)

  9. Mapeamento de Relacionamentos • Ligação De Valor (l : AB): • Monovalorada : cria um atributo cujo Tipo é B. Endereço: Consumidor_Ty  Endereço_Ty

  10. Mapeamento de Relacionamentos CREATE OR REPLACE TYPE CONSUMIDOR_TY AS OBJECT( CPF INTEGER, Name VARCHAR2(30), Endereço Endereço_TY ) /

  11. Mapeamento de Relacionamentos • Ligação De Valor (l : AB): • Multivalorada : • Cria um tipo Tl (Nested Table ou Varray C) com “objetos membros” do tipo B. • Cria um atributo l de tipo Tl

  12. Mapeamento de Relacionamentos CREATE TYPE Fone_NT AS TABLE OF Fone_TY / CREATE OR REPLACE TYPE Funcionario_TY AS OBJECT ( CPF INTEGER, Name VARCHAR2(30), foneDe Fone_NT )

  13. Mapeamento de Relacionamentos • Ligação De Referência (l : AB): • Monovalorada : • Cria um atributo l em A cujo tipo é REF B. depto: FUNCIONÁRIO_TYDEPARTAMENTO_Ty

  14. Mapeamento de Relacionamentos CREATE OR REPLACE TYPE Funcionario_TY AS OBJECT ( CPF INTEGER, Name VARCHAR2(30), depto REF Departamento_TY )

  15. Mapeamento de Relacionamentos • Ligação De Referência (l : AB): • Multivalorada : • Cria um tipo Tl Nested Table ou Varray C. O tipo dos “objetos membros” de Tl é REFB. • Cria um atributo l em A cujo tipo é Tl

  16. Mapeamento de Relacionamentos Multivalorada Member_of: PERSON_TYCAMPUSCLUB_Ty

  17. Mapeamento de Relacionamentos CREATE TYPE Clubs_Member_NT AS TABLE OF REF CampusClub_TY / CREATE OR REPLACE TYPE Person_TY AS OBJECT ( PID INTEGER, FirstName VARCHAR2(30), Member_of Clubs_Member_NT, ... )

  18. Mapeamento de Classes de Associação • Uma classe de Associação tem uma ligação de Referência monovalorada para cada uma das classes participantes. • Cada ligação deve ser mapeadas em atributos da classe de associação seguindo as regras de mapeamento descritas anteriormente.

  19. Mapeamento de Classes de Associação

  20. TABELAS DE OBJETOSS • Deve ser criada uma tabela de Objetos para cada coleção Global Identificada e que não estejam associadas a subtipos (estas coleções são tratadas em seguida) CREATE TABLE collection OF Object_Type ( ... Restrições ... );

  21. TABELAS DE OBJETOSS Restrições • Restrição de Chave • Restrição de Nulidade • Restrição Referencial

  22. TABELAS DE OBJETOSRestrição de Chave • Classe Plena : Chave Primária • Classe de Associação : Todas as ligações às classes participantes formam uma chave concatenada

  23. TABELAS DE OBJETOSRestrição NOT NULL • Se a ligação tem multiplicidade maior ou igual a 1, o atributo que representa tal ligação deve possuir a restrição NOT NULL Create Table Pessoas of Pessoa_TY ( Endereço NOT NULL )

  24. TABELAS DE OBJETOSRestrição Referencial • Ligação de Referência Monovalorada : o atributo que representa essa ligação deve possuir a restrição REFERENCES Collection_Alvo CREATE TABLE Pessoas OF Pessoa_TY( Depart REFERENCES Departamentos )

  25. TABELAS DE OBJETOSRestrição Referencial • Ligação de Referência Multivalorada com Nested Table: • para cada atributo que representa esse tipo de ligação devemos definir onde se deve armazenar a Nested Table. • Após a criação da tabela de objeto, deve-se executar um Alter Table na Nested Table para informar a coleção referenciada pelos elementos da Nested Table (ADD SCOPE). • Essa restrição de escopo só funciona na adição de elementos. 

  26. TABELAS DE OBJETOSRestrição Referencial CREATE TABLE Persons OF Person_TY NESTED TABLE Member_of STORE AS Member_of_TAB \ ALTER TABLE Member_of_TAB ADD SCOPE FOR (COLUMN_VALUE) IS CampusClubs \

  27. Diagrama de Classes Estendido

  28. CRIAÇÃO DAS VISÕES • Criar uma Visão de Objeto para cada Tabela de Objetos • Criar um Tipo para cada coleção derivada e depois uma visão

  29. CRIAÇÃO DAS VISÕES

  30. CRIAÇÃO DAS VISÕES CREATE TYPE Faculty_TY AS OBJECT ( Pid INTEGER, DOB DATE, FirstName VARCHAR2(10), LastName VARCHAR2(10), Rank VARCHAR2(10), AdvisorOf ClubsAdvisor_NT, WorksIn REF Department_TY ) / CREATE VIEW VFACULTY OF Faculty_TY AS SELECT P.Pid, P.DOB, P.FirstName, P.LastName, P.Rank, P.AdivisorOf, p.WorksIn FROM PERSONS P WHERE P.IsPerson = 1 AND P.Isfaculty=1 ; /

  31. CRIAÇÃO DOS TRIGGERS • Para cada visão, criar instead of triggers. • Deve-se considerar os seguintes aspectos: • Manutenção de Ligações Inversas • Multiplicidade das ligações • Restrição referencial em atributos multivalorados de referência • Manutenção das restrições existenciais de coleção

More Related