Banco de Dados Objeto Relacional



Documentos relacionados
BD Objeto-Relacional - Motivação

4. BD Objeto-Relacional (BDOR)

BD Objeto-Relacional - Motivação

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Tipos de dados complexos e objectos Tipos de dados estruturados e herança em SQL Herança de tabelas Matrizes e multi-conjuntos em SQL Identidade de

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

Linguagem SQL. Comandos Básicos

Linguagem SQL Sub-linguagem DDL

Tipos de dados complexos e objectos Tipos de dados estruturados e herança em SQL Herança de tabelas Matrizes e multi-conjuntos em SQL Identidade de

Bancos de Dados Objeto-Relacionais

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

SQL Structured Query Language

PostgreSQL. André Luiz Fortunato da Silva Analista de Sistemas CIRP / USP alf@cirp.usp.br

Banco de Dados. Maurício Edgar Stivanello

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

Comandos de Manipulação

Introdução ao SQL. Aécio Costa

Programação SQL. Introdução

Linguagem SQL Parte I

Fundamentos do Sistema Gerenciador de Banco de Dados

A IMPLEMENTAÇÃO OBJETO-RELACIONAL ORACLE

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011

Triggers em PostgreSQL. Linguagem de Programação de Banco de Dados. Triggers em PostgreSQL. Triggers em PostgreSQL

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

SQL (Structured Query Language)

Linguagem de Consulta - SQL

SQL (Structured Query Language)

O que são Bancos de Dados?

SQL (Structured Query Language)

Projeto de Banco de Dados

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

BANCO DE DADOS BANCO DE DADOS. Prof. Patrícia Lucas 3º Trimestre

Gerenciamento de Dados e Informação Fernando Fonseca. Graduação

4.6. SQL - Structured Query Language

SQL - Criação de Tabelas

Bases de Dados 2012/2013 Restrições de Integridade em SQL. Helena Galhardas 2012 IST. Bibliografia

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language)

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho

Introdução à Engenharia da Computação. Banco de Dados Professor Machado

Comandos DDL. id_modulo = id_m odulo

Banco de dados. Linguagens de Banco de Dados II. Wedson Quintanilha da Silva -

PROGRAMAÇÃO EM BANCO DADOS Store Procedure e Trigger

Banco de dados 1. Linguagem SQL DDL e DML. Professor: Victor Hugo L. Lopes

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

Banco de Dados. Prof. Antonio

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS

SQL (Structured Query Language)

SQL DDL. Frederico D. Bortoloti

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

Curso PHP Aula 08. Bruno Falcão

SQL Procedural. Josino Rodrigues Neto

Exemplo Clínica. Exemplo Clínica. Exemplo Clínica. Exemplo Clínica. (


Disciplina de Banco de Dados Parte V

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos

A linguagem SQL

CREATE TABLE AUTOR ( cod_autor int not null primary key, nome_autor varchar (60) )

PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger

Logado no OracleXE vamos acessar a opção:

Exercícios com o intuito de cobrar todos os assuntos vistos em sala, relativos à Modelagem Conceitual, SQL, PL e XML. 1ª ETAPA

EXEMPLOS DE COMANDOS NO SQL SERVER

Banco de Dados Avançados Banco de Dados Ativo

SQL: Definição de tabelas, Modificações à Base de Dados

Exercícios de Lógica Exercícios de Fixação 08

SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL

Regras de Integridade. Profa. Késsia Marchi

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Tarefa Orientada 16 Vistas

Laboratório de Banco de Dados Prof. Luiz Vivacqua. PL/pgSQL A Linguagem de programação do PostgreSQL

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável.

(1,n) venda. (1,1) realizacao. cliente. (0,n) (1,1) contem. produto. Laboratório de Banco de Dados Exercicios

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

BANCO DE DADOS: SQL. Edson Anibal de Macedo Reis Batista. 27 de janeiro de 2010

MySQL. Prof. César Melo. com a ajuda de vários

Triggers e Regras. Fernando Lobo. Base de Dados, Universidade do Algarve

Banco de Dados. Arquitetura e Terminologia. Prof. Walteno Martins Parreira Jr waltenomartins@yahoo.

Introdução às funções e procedimentos. SQL suporta funções e procedimentos úteis com tipos de dados específicos

Modelo de Dados Relacional Restrições de um Banco de Dados Relacional

SQL. Prof. Márcio Bueno.

AULA 8 CRIANDO UMA CLASSE EM PHP INTERAGINDO COM BANCO DE DADOS - COM RELACIONAMENTO ENTRE TABELAS

BDII SQL Junção Revisão 8

Triggers. um trigger permite que uma determinada sequência de comandos SQL seja accionada quando um determinado evento ocorre.

Integridade dos Dados

Projeto de Banco de Dados: Empresa X

Programação WEB II. PHP e Banco de Dados. progweb2@thiagomiranda.net. Thiago Miranda dos Santos Souza

Structured Query Language (SQL) Aula Prática

Triggers no PostgreSQL

Bancos de Dados I. Integridade semântica

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

Tarefa Orientada 19 Triggers

SQL (STRUCTUREDQUERY LANGUAGE)

Linguagem SQL (Parte I)

Linguagem de Consulta Estruturada (SQL)

SQL. Banco de Dados I. Componentes de SQL

AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES

Transcrição:

Banco de Dados Objeto Relacional características Banco de Dados Objeto- Relacional (BDOR) Banco de dados relacional com extensões para manipulação de objetos e outras fatores de banco de dados orientado a objetos. Classes, Herança, Agregação, Tipos definidos pelo usuário,... Uso da SQL para acesso aos objetos Solange N. Alves de Souza 2 1

Banco de Dados Objeto- Relacional (BDOR) Permite especificar e utilizar Tipos Definidos pelo Usuário (TDU ou UDT User-Defined Type) da mesma forma que os tipos de dados pré-definidos. Tipos Definidos pelo Usuário que encapsulam estrutura interna (atributos). comportamento e A tabela convencional é estendida para permitir a referência de objetos (referência de tipos), UDTs e estruturas como domínio de colunas (Row type). uso de referências para representar conexões inter-objetos, isso torna consultas mais compactas que quando feitas com junção; Herança é implementada organizando todos os tipos em hierarquias; Utiliza os construtores set, list, multiset ou array para organizar coleções de objetos; Solange N. Alves de Souza 3 Estruturas de BDOR Tipo de objetos: 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. Um tipo de objeto pode ser usado para: Criar um UDT Criar uma estrutura (row type) Criar tipos coleção (collection type) Criar uma tabela de objetos Solange N. Alves de Souza 4 2

Tipos de objetos Row Type 1. permite definir atributos multivalorados estrutura aninhada 2. define uma estrutura de tupla (registro) Fornecedores codfornec nomefornec endfornec Criando um tipo e uma tabela com atributos, cujo domínio é do tipo definido Row type TEnd rua nro cidade CEP Domínio do atributo é um tipo * Noção de agregação* Solange N. Alves de Souza 5 TEnd rua nro cidade CEP create type TEnd as object (rua varchar (20), nro numeric (4), cidade varchar(20), CEP numeric(9)); Solange N. Alves de Souza 6 3

PostGreSQL create type TEnd as ( rua varchar (20), nro numeric (4), cidade varchar(20), CEP numeric(9)); Create table Fornecedores( codfornec numeric (3), nomefornec varchar (30), endfornec TEnd); Solange N. Alves de Souza 7 Usando o tipo definido no PostgreSQL Fornecedores insert into fornecedores values (nextval('s_fornec'), 'estrela', row ('Dr. Camisão', 3,'SãoPaulo',21360055)); insert into fornecedores values (nextval('s_fornec'), 'estrela', ('Dr. Camisão', 3,'SãoPaulo',21360000)); update fornecedores set endfornec=('camisão', 3,'SãoPaulo',21360055) where codfornec=3 Solange N. Alves de Souza 8 4

Consultando a estrutura aninhada select * from fornecedores where (endfornec).cidade='osasco'; codfornec nomefornec 4 lua endfornec ("Dr Aragão",12,Osasco,550776210) 5 lua ("Dr Aragão",12,Osasco,550776210) select (endfornec).rua from fornecedores where (endfornec).cidade='osasco'; rua Dr Aragão Dr Aragão Solange N. Alves de Souza 9 Consultando atributos aninhados - mais Notação de ponto para navegação nos atributos que fazem parte da estrutura aninhada: select endfornec..rua from fornecedores where endfornec..cidade='osasco'; Não no PostgreSQL Solange N. Alves de Souza 10 5

Consultando... mais Removendo um tipo Drop type tend Podem haver campos cujo tipo seja TEnd Drop type tend cascade campos aninhados são removidos da tabela Solange N. Alves de Souza 11 Tipos de Objetos tipo coleção 1. Uma coleção é composta por elementos que podem ser de um tipo simples, ou uma UDT, ou row type. 2. Tipos coleção: sets, lists, arrays (coleção ordenada). Solange N. Alves de Souza 12 6

Exemplo - Array Coleção ordenada Sintaxe SQL99 (arrays de uma dimensão) NotaVenda número cliente data item: ARRAY (10) Qtd: ARRAY (10) Solange N. Alves de Souza 13 Usando o tipo ARRAY - exemplo create table notavenda ( numero numeric, cliente varchar(30), data date, item integer array[10], qtd_item integer array [10]); Tipo de dado simples Solange N. Alves de Souza 14 7

Inserindo dados insert into notavenda values (1, 'João Antônio', '10-10-2007', ARRAY[1,2,3], ARRAY[1,20,4]); numero data item qtd_item cliente 1 10/10/2007 {1,2,3} {1,20,4} João Antônio E se o elemento do array fosse do tipo row type ou UDT row type atributo e tipo de dado UDT atributos simpes e complexos e métodos Solange N. Alves de Souza 15 mais No PostgreSQL é possível criar arrays bi-dimensionais. create table notavenda2 ( numero numeric, cliente varchar(30), data date, item_e_qtd integer [10][10]); numero cliente data Item_e_qtd 1 João Antônio 10/10/2007 {{1,2,3}, {1,20,4}} Solange N. Alves de Souza 16 8

Outros tipos de coleções Alguns SGBDOR s suportam outros tipos de coleção: Informix List, Set e Multiset Oracle VARRAY (array variável cujos elementos podem ser objetos) NESTED TABLE (atributo cujo domínio é uma tabela aninhada) PostGreSQL Pode-se definir um atributo cujo domínio é uma tabela Solange N. Alves de Souza 17 Tipos de Objetos Criação de Tabelas de objetos Indicação do tipo a que pertence Várias tabelas podem ser do mesmo tipo create type TFornec as ( codfornec numeric (3), nomefornec varchar (30)) create table fornecedores of type TFornec; PostgreSQl não permite a criação de tabelas de tipos TFornec codfornec nomefornec endfornec Solange N. Alves de Souza 18 9

OID (Identificadores de Objetos) é o valor indicado por atributos de referência pode ser uma chave primária CREATE TABLE Fornecedores OF TYPE TFornec REF IS codfornec PRIMARY KEY; Solange N. Alves de Souza 19 OID - continua pode ser definido pelo usuário ou pelo sistema CREATE TABLE Produtos OF TYPE TProd REF IS codprod USER GENERATED; atributo definido pelo usuário, mas seu valor é controlado pelo sistema (OID) CREATE TABLE Produtos OF TYPE TProd REF IS SYSTEM GENERATED; OID gerado e controlado pelo sistema Solange N. Alves de Souza 20 10

Relacionamento entre Objetos Esquema Modelo Relacional relacionamento Solange N. Alves de Souza 21 Esquema de Objetos Referencias são usadas para representar relacionamentos Fornecedores Compras Produto TFornec codfornec nomefornec endfornec TCompra fornecedor produto data qtd TProd codprod descrprod precoprod Solange N. Alves de Souza 22 11

Referência de objetos Definição de relacionamento entre objetos Não é semelhante a uma chave estrangeira (chave estrangeira pode ser composta) só referencia uma tabela que tenha definido um OID Solange N. Alves de Souza 23 Referência de objetos - exemplo create type TCompras as ( fornecedor REF (tfornec), Produto REF (tprod), data date, Qtd integer); Postgre não oferece suporte a referência de objetos CREATE TABLE Compras OF TYPE TCompra; Acesso a objetos relacionados SELECT fornecedor -> nomefornec FROM Compras WHERE qtde > 1000 AND produto -> codprod = 45; indica uma referência a um OID e não a um atributo de um componente agregado Solange N. Alves de Souza 24 12

Em BDR SELECT f.nomefornec FROM Compras c join Fornecedor f on c.codfornec = f.codfornec WHERE qtde > 1000 AND codprod = 45; Solange N. Alves de Souza 25 Criando objetos de referência Indicação dos valores de OIDs INSERT INTO Compras VALUES (REF( F102 ), REF(1002), 10/12/03,1300); Solange N. Alves de Souza 26 13

Escopo de Referência Uma referência indica um tipo Deve-se definir o escopo da referência quando mais de uma tabela pertence ao tipo SCOPE FOR <nome_atributo> IS <nome_tabela> Solange N. Alves de Souza 27 Fornecedores Compras fornecedor Produto TFornec codfornec nomefornec endfornec TCompra fornecedor produto data qtd TProd codprod descrprod precoprod CREATE TABLE Compras OF TYPE TCompra SCOPE FOR fornecedor IS Fornecedores; Solange N. Alves de Souza 28 14

Tipos de Objetos UDT Define comportamento para os objetos Encapsulamento de atributos e métodos Permite herança de um tipo para um subtipo CREATE TYPE <nometipo> ( <lista de atributos>, [<declaraçãoassinmétodos>]) [INSTANTIABLE] [ [NOT] FINAL] Pode gerar tabelas Pode ou não ser especializado Solange N. Alves de Souza 29 CREATE TYPE <nomeobjeto> AS OBJECT (atributo1 tipo_dado,..., atributon tipo_dado, MEMBER PROCEDURE <nomeprocedimeto> [(parâmetro1 [IN OUT IN OUT] tipo_dado,..., parâmetron [IN OUT IN OUT] tipo_dado)], BEGIN <corpo do procedimento> END <member nomeprocedimento> ) Solange N. Alves de Souza 30 15

Modelagem OR Tipo definido pelo usuário (UDT) TEmpregado RG nome_emp end_emp gerente salário_base comissão salário() TEnd rua nro cidade CEP Empregados Solange N. Alves de Souza 31 UDT para o modelo create type TEmpregado ( RG integer, nome_emp varchar (40), end_emp TEnd, gerente REF (TEmpregado), salario_base decimal (7,2), comissão decimal (7,2), METHOD salário () RETURNS decimal (7,2);...) INSTANTIABLE NOT FINAL; Pode gerar tabelas Pode ou não ser especializado create table Empregados of type TEmpregado; Lista de atributos Declaração de assinatura de métodos Solange N. Alves de Souza 32 16

Métodos Só podem ser definidos dentro de um TAD Identificação do método a ser executado é determinado em tempo de execução ( late binding ) Depende do objeto que o invoca ou de parâmetros Solange N. Alves de Souza 33 Acesso a Métodos ou Funções Métodos ou funções podem ser usados em consultas: Select RG, nome_emp From empregados Where salario() > 10000.00; Solange N. Alves de Souza 34 17

Herança Herança múltipla em geral não é permitida CREATE TYPE <nometad> UNDER <nometad> (...) CREATE TYPE TProfessor UNDER TEmpregado ( titulação varchar(15), gratificação decimal (7,2), OVERRRIDING METHOD salário() RETURNS decimal (7,2);...) Instantiable Not final Solange N. Alves de Souza 35 LOBs (Large OBjects) Objetos de tamanho grande Podem ser definidos como domínios de atributos de tabelas em BDOR. são agora considerados parte do esquema do BD e não precisam ser mantidos e tratados em arquivos separados. Solange N. Alves de Souza 36 18

Tipos de LOBs CLOB (Character LOB texto longo) BLOB (Binary LOB imagem) São definidos em termos de KB, MB e GB CREATE TABLE empregados (... currículo CLOB(500K), fotografia BLOB(12M),...) Solange N. Alves de Souza 37 LOBs - Operações CONCATENATION, SUBSTRING, POSITION, OVERLAY, predicados LIKE,..., funções definidas pelo usuário. Empregados... curriculo: CLOB(500K) fotografia:blob(12m)... SELECT nome FROM empregados WHERE currículo LIKE *UFSC* PostGreSQL não suporta tipos de dados LOBs e suas operações Solange N. Alves de Souza 38 19