Conceitos de SGBD Objeto-Relacional Oracle 10g [1]

Slides:



Advertisements
Apresentações semelhantes
01/08/2011 Professor Leomir J. Borba- –
Advertisements

O Comando DROP INDEX Para eliminar um índice definido sobre uma tabela, utilize: Drop Index on ; Ex: No Access: Drop Index X on.
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
Estudo de Caso, modelo Oracle 10g
VI- Implementação Objeto-Relacional
Banco de Dados Prof. Antonio.
Maurício Edgar Stivanello
Sistema Gerenciador de Banco de Dados SGBD
Orientação a Objetos: Encapsulamento e Classificação
Sistema Gerenciador de Banco de Dados SGBD
Hierarquia de Visões de Objeto
1 MODELAGEM COM A UML (UNIFIED MODELING LANGUAGE) BREVE HISTÓRICO CARACTERÍSTICAS CONCEITOS DE PROGRAMAÇÃO ORIENTADA A OBJETOS MODELAGEM DE ANÁLISE E DE.
UML NO PROJETO LÓGICO DE BANCO DE DADOS: 1ª PARTE
Introdução à Engenharia da Computação
Oficina sobre banco de dados
SCC Bancos de Dados e Suas Aplicações
Bancos de Dados Orientados a Objeto
Banco de Dados Objetos Relacionais
MySQL Gerdson de Araújo Silva Universidade Federal de Alagoas Maceió-AL, 21 de maio de 2009.
Bancos de Dados – SQL – parte 1
Classes e objetos Arrays e Sobrecarga
Classes e objetos Modelagem
Classes e objetos P. O. O. Prof. Grace.
Banco de dados Profª Kelly Medeiros.
Equipe de monitoria Aula prática 4.  Tipos  Tabela de Objetos  Herança  Métodos  Referências  Coleções  Composição de coleções  Conectividade.
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
Conceitos de SGBD Objeto-Relacional Oracle 10g [2]
Equipe de monitoria Aula prática 4
Equipe de monitoria Aula prática 4
Vânia Maria Ponte Vidal
Equipe de monitoria Aula prática 4
Especialização em Tecnologia da Informação
Análise e Projeto de Sistemas
1.
Projeto de Banco de Dados
1 2 Observa ilustração. Cria um texto. Observa ilustração.
III – Oracle10g Apontadores – Tipo de Dado (REF).
III – O Modelo OR Estudo de Caso, modelo Oracle 10g.
III – Oracle10g Funções que Manipulam Apontadores.
III – Oracle 10g Herança.
Desenvolvendo um script SQL
Banco de Dados Parte 04 Ceça. Ceça Moraes 2 Conteúdo  Os três níveis da arquitetura  Mapeamentos  Arquitetura cliente-servidor.
Banco de dados.
Criação de Tabelas. CREATE TABLE nome_da_tabela ( >>. >> ) Ex.: SQL SERVER 2008 CREATE TABLE pessoa ( CPF VARCHAR(11) NOT NULL, NOME VARCHAR(100) NOT.
Baseado no material do Professor Raul Paradeda
A abordagem de banco de dados para gerenciamento de dados
Comandos SQL.
PostGres: Um Banco de Dados Orientado a Objetos
Planilha Eletrônica - Excel
Campus de Caraguatatuba Aula 2: Introdução a Tecnologia de BD
Projeto de Sistemas de Informação Prof. Schneider Oracle Object-Relational.
SQLite Banco de Dados II.
Ricardo Ferreira Schiavo
©Silberschatz, Korth and Sudarshan (modificado)9.1.1Database System Concepts Capítulo 9: BDs Objecto-Relacional Relações imbricadas Tipos complexos e objectos.
Banco de Dados I I Comandos SQL
Banco de dados 1 Modelagem de Dados Utilizando MER
III - Oracle9i Apontadores – Tipo de Dado (REF). Identificador de Objeto A todo objeto de uma “object table” é associado um OID (“Object IDentifier”)
Conceitos de SGBD Objeto-Relacional Oracle 10g [2] Monitoria GDI André Braga, Daniel Penaforte, Domingos Ribeiro, João Pascoal, Maria Carolina.
Equipe de monitoria Aula prática 4.  Tipos  Tabela de Objetos  Herança  Métodos  Referências  Coleções  Composição de coleções  Conectividade.
Linguagem BD + capacidades OO qVariante da representação OO das encomendas EncomTipo = RECORDOF( e#: int, inclui: SETOF( IQTipo ), cliente: ClienteTipo.
Bancos de Dados Objeto Relacional Modelos e Linguagens
Banco de Dados Relacional Objeto-
III – O Modelo OR Estudo de Caso, modelo Oracle9i.
1 Introdução à Manipulação de Dados SQL – Structured Query Language  Tabela = Relação  DDL – Data Definition Language  Sub-conjunto do SQL que suporta.
Objetos em Bancos de Dados Relacionais Alcides Calsavara.
UCSal – Bacharelado em Informática
Linguagem de definição de dados - SQL
Programação para Internet Aula 11 SQL (Introdução a linguagem, comandos de modificação: Create, Drop, Alter, Insert, Delete, Update)
Aula Prática Objeto-Relacional Monitoria GDI
Transcrição da apresentação:

Conceitos de SGBD Objeto-Relacional Oracle 10g [1] Monitoria GDI André Braga, Daniel Penaforte, Domingos Ribeiro, João Pascoal, Maria Carolina

Método de análise Aula de hoje: Próxima aula: SGBD Objeto-relacional Operador REF Coleções Criação dos tipos e dos relacionamentos Próxima aula: INSERTS e SELECT Coleções de coleções Outros Operadores importantes Herança e Funções

SGBD Objeto-Relacional SGBD Objeto-Relacionais combinam os benefícios do sistema Relacional com a capacidade de modelagem do modelo OO Dão suporte a consultas complexas sobre dados complexos Atendem aos requisitos das novas aplicações e da nova geração de aplicações de negócios

Modelos e Linguagens O sistema de dados OR é uma extensão do sistema Relacional As extensões incluem mecanismos para permitir aos usuários estender o banco de dados com tipos e funções específicas da aplicação A linguagem de consulta OR é uma extensão da linguagem SQL para dar suporte ao sistema de objetos As extensões incluem consultas envolvendo objetos, atributos multivalorados, TAD, métodos e funções como predicados de busca em uma consulta

Modelo Objeto-Relacional Permite especificar e utilizar Tipos de Abstratos Dados (TAD) da mesma forma que os tipos de dados pré- definidos TAD são tipos de dados definidos pelo usuário que encapsulam comportamento e estrutura interna (atributos) A tabela convencional é estendida para permitir a referência de objetos (referência de tipos), TAD e valores alfanuméricos como domínio de colunas

Modelo Objeto-Relacional Utiliza referências para representar conexões entre os objetos tornando as consultas baseadas em caminhos de referência mais compactas do que as consultas feitas com junção Herança é implementada organizando os tipos em hierarquias Utiliza os construtores set, list, varray ou nested table para organizar as coleções de objetos

Linguagem de Consultas O resultado de uma consulta ainda consiste em tabelas Um SGBD Objeto-Relacional ainda é relacional pois dá suporte ao armazenamento de dados em tabelas formadas por linhas e colunas A linguagem de consultas para SGBDOR é uma extensão da linguagem SQL, utilizada para definição e manipulação de dados e consultas

Tipos de Objetos Tipos de Objetos (Object Types) Objetos são abstrações de entidades do mundo real, como por exemplo, uma ordem de compra, um cliente, um produto... Um tipo de objeto funciona como um molde para criação de objetos, através da atribuição de valores a essa estrutura de dados.

Tipos de Objetos Um Tipo de Objeto é um esquema de objeto com 3 componentes: Nome Atributos Métodos Um tipo de objeto pode ser usado para: Definir o domínio de atributos (“column object”) de tabelas Definir o tipo dos atributos de TAD ( “embedded object”) Criar uma tabela de objetos

Sintaxe (Tipos Objetos & Tabelas de Objetos) CREATE TYPE <NOME DO TIPO> AS OBJECT ( <LISTA DE ATRIBUTOS E MÉTODOS> ); CREATE TABLE <NOME DA TABELA> OF <NOME DO TIPO> ( <LISTA DE PROPRIEDADES DOS ATRIBUTOS> ); DROP TABLE <NOME DA TABELA>; DROP TYPE <NOME DO TIPO>;

Sintaxe (INSERT & DELETE) INSERT INTO <NOME DA TABELA> (<NOMES DE ATRIBUTOS> VALUES (<VALORES>): DELETE FROM <NOME DA TABELA> WHERE <CONDIÇÃO>;

Exemplo Tipos de Objetos & Tabelas de Objetos create type ENDERECO_TY as object (Rua VARCHAR2(50), Cidade VARCHAR2(25), Estado CHAR(2), Cep NUMBER); create table PESSOAS (Nome VARCHAR2(25), Endereço ENDERECO_TY); ENDERECO_TY é usado para definir o tipo (domínio) da coluna Endereço da tabela PESSOAS.

Exemplo Tipos de Objetos & Tabelas de Objetos 13 Exemplo Tipos de Objetos & Tabelas de Objetos Inserção na tabela pessoas Método construtor para o tipo ENDERECO_TY. INSERT INTO PESSOAS VALUES (Fernando Fonseca' , ENDERECO_TY(‘Rua Tal 57',‘Recife', ‘PE', 60160230))

Tabelas de Objetos Objetos são diferentes de tabelas Tipos de Objetos apenas definem uma estrutura lógica Tabelas armazenam espaço físico Cria-se tabelas de objetos previamente definidos Cada tabela recebe instâncias de objetos de apenas um tipo

Observações (Tabelas de Objetos) Cada linha na tabela de objetos é uma instância de um objeto. O tipo de objeto é o único atributo da tabela de objetos. Recuperação de várias informações com uma consulta simples

Observações (Tabelas de Objetos) É possível criar várias tabelas do mesmo tipo Tabelas diferentes com o mesmo tipo podem ter variações entre si. Ex: os atributos escolhidos para chave estrangeira de cada tabela podem ser diferentes.

Manipulando Tabelas de Objetos Existem diferenças significativas no modo de utilização de uma tabela de objetos. Cada linha dentro de uma tabela de objetos possuirá um OID, e essas linhas poderão ser referenciadas como objetos.

Identificadores de Objetos Uma tabela de objetos contém uma coluna gerada pelo SGBD contendo o OID do “row object”. O oid de um objeto é único e imutável. Sobre essa coluna de OID é também criado automaticamente um índice para prover acesso eficiente sobre o objeto através do OID. A coluna de OID é equivalente a se ter uma coluna extra de 16 bytes para chave primária. Um OID permite que um “row object” seja referenciado em atributos de outros objetos ou em colunas de tabelas relacionais.

Tipo REF REF - Retorna referência OID(object id) a uma instância da object table Um objeto do tipo REF encapsula uma referência para um “row object” de um tipo de objeto especificado; O valor de um objeto do tipo REF é um “ponteiro lógico” para um row object. SELECT REF(T) FROM <nome_tabela> T WHERE <condicao>

Abordagem Objeto-Relacional Relacional: quebra de endereços ou vários telefones em colunas não-relacionadas OR: Tipos para representar um endereço inteiro ou uma lista de telefones. Tabelas Aninhadas para manter atributos dentro do objeto, em vez de armazená-los separadamente

Objeto Linha x Objeto Coluna Objetos Linha: instâncias de objetos em uma tabela do seu tipo. Objetos Coluna: objetos incorporados em outro objeto, o qual é o tipo da tabela. Não ocupam uma linha da tabela de objetos

Coleções Coleções modelam: atributos multivalorados relacionamentos 1-m O ORACLE oferece dois tipos de coleções: VARRAYS NESTED TABLES.

Coleções - VARRAY Armazenam uma série de entradas de dados associadas a uma linha de um banco de dados Modelam relacionamento 1-para-muitos e atributos multivalorados CREATE TYPE <NOME DO CONJUNTO> AS VARRAY(<tamanho>) OF <TIPO DOS OBJETOS>;

Coleções – Nested Table É uma tabela que é representada como uma coluna dentro de outra tabela. É um conjunto não ordenado de elementos do mesmo tipo. Tem uma única coluna e o tipo da coluna é um tipo pré- definido ou um tipo de objeto. CREATE TYPE <TIPO DA NESTED TABLE> AS TABLE OF <TIPO DO OBJETO>;

Quando usar?! Varray Nested Table Ordem dos elementos é importante Número limitado de elementos: armazena mais eficientemente Ex: Telefones Fazer consultas SQL em elementos da NT (não é possível em Varrays) A ordem não é importante (SQL pode ordenar a saída se necessário) Não há limite de elementos Adicionar dados na NT (em Varrays não há como)

Observações (Coleções) Se é necessário eficiência na execução de consultas sobre coleções, então é recomendado o uso de nested tables. Tanto VARRAY quanto NESTED TABLE podem usar o tipo REF como atributo. CREATE TYPE <TIPO DA NESTED TABLE> AS TABLE OF REF <TIPO DOS OBJETOS>; CREATE TYPE <NOME DO CONJUNTO> AS VARRAY(<tamanho>) OF REF <TIPO DOS OBJETOS>;

Caso de estudo

Exercício 1 Criar os Objects Types necessários Criar as Objects Tables a partir dos tipos Obs: Para melhor compreensão, nomeiem os tipos criados como <nomeDoTipo_tipo> e tabelas como <nomeDaTabela_tabela>

Entendendo o esquema. . . id Cliente nome Cliente endereco_obj Tabela Cliente_tab (de Cliente_tipo) id Cliente nome Cliente endereco_obj telefones_var Number (NUMBER) Text (VARCHAR2(200)) Tipo Objeto (Endereco_tipo) Varray (Telefone_vartipo) P K VARRAY Telefone_vartipo (de VAR CHAR2) Telefone Number(VARCHAR2(20)) Objeto Coluna endereco_obj (de Endereco_tipo) Lo g radou u ro Cidade Estado CEP Text (VARCHAR2(200)) Text (CHAR(2)) Number (VARCHAR2(20)) P K

Resolução Criação dos Tipos Necessários CREATE TYPE ItemEstoque_tipo AS OBJECT( idEstoque NUMBER, preco NUMBER, taxa NUMBER ); CREATE TYPE Item_tipo AS OBJECT( idItem NUMBER, estoque_ref REF ItemEstoque_tipo, quant NUMBER, desconto NUMBER ); CREATE TYPE Item_ntabtipo AS TABLE OF Item_tipo;

CREATE TYPE Endereco_tipo AS OBJECT( logradouro VARCHAR2(200), cidade VARCHAR2(200), estado CHAR(2), cep VARCHAR2(20) ); CREATE TYPE Telefone_vartipo AS VARRAY(10) OF VARCHAR2(20); CREATE TYPE Cliente_tipo AS OBJECT( idCliente NUMBER, nomeCliente VARCHAR2(200), endereco_obj Endereco_tipo, telefones_var Telefone_vartipo, ORDER MEMBER FUNCTION compPedidosClientes(x IN Cliente_tipo) RETURN INTEGER );

CREATE TYPE Pedido_tipo AS OBJECT( idPedido NUMBER, Cliente_ref REF Cliente_tipo, dataPedido DATE, dataEntrega DATE, item_ntab Item_ntabtipo, entregarNoEndereco_obj Endereco_tipo, MAP MEMBER FUNCTION getIdPedido RETURN NUMBER, MEMBER FUNCTION somaItens RETURN NUMBER );

Resolução Criação das Tabelas Necessárias CREATE TABLE Cliente_tab OF Cliente_tipo (idCliente PRIMARY KEY); CREATE TABLE Pedido_tab OF Pedido_tipo ( PRIMARY KEY (idPedido), FOREIGN KEY (Cliente_ref) REFERENCES C liente_tab) NESTED TABLE item_ntab STORE AS PedidoItem_ntab; CREATE TABLE ItemEstoque_tab OF ItemEstoque_tipo (idEstoque PRIMARY KEY)

Referências www.cin.ufpe.br/~if685 http://disciplinas.lia.ufc.br/bdnc061/ http://download- east.oracle.com/docs/cd/B19306_01/appdev.10 2/b14260/adobjxmp.htm R. Elmasri & S. Navathe – Sistemas de Banco de Dados, Addison Wesley, 2005, 4ª edição.