Padr - PowerPoint PPT Presentation

About This Presentation
Title:

Padr

Description:

Padr es em BDOO e Projeto L gico – PowerPoint PPT presentation

Number of Views:114
Avg rating:3.0/5.0
Slides: 29
Provided by: ufs50
Category:
Tags: padr

less

Transcript and Presenter's Notes

Title: Padr


1
Padrões em BDOO e Projeto Lógico
2
Padronização
  • ODMG Object Database Management Group
  • Consórcio formado por fabricantes de SGBD OO
  • Integrar de forma transparente as funcionalidades
    de BD e LP OO.
  • Interoperabilidade

3
O Padrão ODMG
  • Modelo de Dados
  • Linguagem de Definição de objetos
  • ODL Object Definition Language
  • Linguagem de Consulta
  • OQL Object Query Language
  • Acoplamentos
  • Ligações com LP OO
  • Não tem linguagem de manipulação (atualização)
  • Isto é feito pela linguagem de programação OO

4
Definição de Classes, atributos e métodos
Funcionario
nome endereco sexo salario
Departamento
Alocado possui
nome
1..n 1..1

calculaSalario()
class Funcionario (extent funcionarios)?
attribute string nome attribute string
endereco attribute string sexo
attribute float salario void
calculaSalario()
class Departamento (extent departamentos)?
attribute string nome
5
Chaves
  • OID
  • identificador do objeto
  • Chave
  • uma ou mais propriedades cujos valores devem ser
    únicos

class Departamento (extent departamentos KEY
nome)? attribute string nome
6
Definição de Relacionamentos (Associação)
Funcionario
nome endereco sexo salario
Departamento
Alocado possui
nome
1..n 1..1

calculaSalario()
  • class Departamento
  • (extent departamentos)?
  • attribute string nome
  • relationship set Funcionario possui
  • inverse Funcionario alocado

class Funcionario (extent funcionarios)?
attribute string nome attribute string
endereco attribute string sexo
attribute float salario relationship
Departamento alocado inverse
Departamento possui void
calculaSalario()
Vários funcionários em um Departamento
Relacionamento 1..n
7
Herança
class Funcionario (extent funcionarios)?
attribute string nome attribute string
endereco attribute string sexo
attribute float salario void
calculaSalario()
Funcionario
nome endereco sexo salario
calculaSalario()
Gerente
Vendedor
class Gerente extends Funcionario (extent
gerentes)? attribute float bonus attribute
Date dataInicio void calculaSalario()
bonus dataInicio
percentualComissao
calculaSalario()
calculaSalario()
8
OQL Object Query Language
  • Linguagem de consulta declarativa
  • Extensão da linguagem SQL com suporte p/
  • objetos complexos
  • invocação de métodos
  • buscas em hierarquias de herança
  • Oferece primitivas para manipular coleções

9
OQL Object Query Language
SELECT resultado FROM operando WHERE predicado
resultado objetos operando coleções predicado
expressões de caminho.
10
Consultas
  • Ponto de partida de uma consulta
  • select e.
  • from e in Empregados
  • Uma consulta não precisa seguir a estrutura
    selectfromwhere
  • A referência a um objeto persistente já é uma
    consulta
  • Q1 empregados

11
Consultas Expressões de caminho
Funcionario
nome endereco sexo salario
Departamento
Alocado possui
nome
1..n 1..1

calculaSalario()
Retorna vários objetos
Departamento d d.departamento.possui Funcionario
f f.departamento.alocado.nome
Todos os func dos deptos Nome do depto onde
o Funcionario esta alocado
12
Consultas Expressões de caminho
  • Permitem a navegação em estruturas complexas e
    objetos associados
  • atributos de referência e relacionamentos
  • utiliza-se a notação de ponto (.)?
  • Exemplo
  • select p.nome, p.titulacao
  • from p in Professores
  • where p.departamento.codigo DCT

Atributo de professor
13
Consultas novas estruturas
  • novas estruturas (struct)
  • select struct (
  • nome d.nome,
  • altoEscalao (select f.
  • from f in Funcionario
  • where f.salário gt 15.000))
  • FROM d in Departamento

14
BDOO
  • Muita teoria e poucos BD comerciais
  • Por isso surgiram os BD objeto-relacionais

15
Banco de Dados Objeto-Relacional
16
O Modelo Objeto Relacional
  • Os SGBDOR
  • são desenvolvidos com base no SGBDR e
  • são capazes de suportar grande parte dos
    conceitos de orientação a objetos (pertencentes
    ao SGBDOO).

17
O Modelo Objeto Relacional
  • Estende o modelo relacional
  • Sistema de tipos mais rico (característica OO)
  • Novas construções de linguagem (SQL) para
    manipular os novos tipos de dados

18
SGBD Objeto Relacional (OR)?
  • Combina as melhores características do modelo de
    objetos no modelo relacional
  • Modelo rico eficiência no gerenciamento de
    dados
  • Tecnologia relativamente nova - SQL3

Exemplos comerciais Oracle DB2 PostgreSQL SQL
Server
19
Modelo de dados Objeto Relacional
  • Extensões do modelo Relacional
  • Definição de novos tipos de dados
  • Tipos de dados complexos
  • Incorporação de novas funcionalidades ao SGBD
  • Manipulação dos novos tipos de dados
  • Suporte a herança
  • Extensões ao SQL para manipular e consultar
    objetos

20
Padrão SQL3 (SQL 99)?
  • Suporte ao tratamento de objetos
  • Tabelas aninhadas (objetos linha)?
  • Tipos abstratos de dados (TAD)? (estruturas
    especificamente construídas para armazenar
    determinados tipos de dados)
  • Referências e OIDs
  • Objetos complexos
  • Definição de comportamento
  • Herança

21
Definição de Objetos Abstratos
  • Tipo de Objeto Linha (row type)?
  • Define uma estrutura de tupla
  • Atributos podem conter outras tuplas
  • Tipo Abstrato de dado (TAD)?
  • Define uma estrutura complexa
  • Define comportamento e herança

22
Tipo de Objeto Linha
  • Definição
  • CREATE ROW TYPE (ltdeclaração componentesgt)?
  • Exemplos

CREATE ROW TYPE TEndereco( ruaNro
VARCHAR(60), cidade VARCHAR(40), CEP INTEGER
) CREATE ROW TYPE TFornec( codFornec
CHAR(4), nomeFornec VARCHAR(40), endFornec
TEndereco )
23
Criação de Tabelas
  • Indicação do tipo a que pertence
  • Várias tabelas podem ser de um mesmo tipo
  • Exemplos
  • CREATE TABLE Fornecedores OF TYPE TFornec
  • CREATE TABLE FornAntigos OF TYPE TFornec

24
Tipo Abstrato de Dados (TAD)?
  • Define comportamento para os objetos
  • Encapsulamento de atributos e métodos
  • Permite herança de um tipo para um subtipo
  • Definição

CREATE TYPE ltnomeTADgt ( ltlistaAtributosgt ltdeclara
çãoAssinMétodosgt )? INSTANTIABLE NOT FINAL
pode gerar tabela pode ou não ser especializado
25
Exemplo
  • CREATE TYPE TEmpregado (
  • RG INTEGER,
  • nome VARCHAR(40),
  • endereço Tend,
  • gerente REF(TEmpregado),
  • salárioBase DECIMAL (7,2),
  • comissão DECIMAL (7,2),
  • METHOD salário() RETURNS DECIMAL (7,2)
  • ... )?
  • INSTANTIABLE
  • NOT FINAL
  • CREATE TABLE Empregados OF TYPE TEmpregado

26
Herança
  • Só permite herança simples
  • Definição
  • CREATE TYPE ltnomeTADgt UNDER ltnomeTADgt(...)?
  • CREATE TABLE ltnomeTabgt UNDER ltnomeTabgt (...)?

CREATE TYPE Tprofessor UNDER Tempregado
( titulação VARCHAR(15), gratificação DECIMAL
(7,2)? ...)? INSTANTIABLE NOT FINAL
27
Consultas (SQL3)
SEÇÕES
FUNCIONÁRIOS
Expressão de caminho em SQL3 utiliza 2 pontos
para referência de componentes de tuplas
SELECT data..dia FROM funcionarios
28
Consultas (SQL3)
  • Permite fazer laços
  • Suporta comandos como begin/end, loop/end-loop,
    while/end_while, etc
Write a Comment
User Comments (0)
About PowerShow.com