BD Objeto-Relacional - Motivação



Documentos relacionados
Banco de Dados Objeto Relacional

BD Objeto-Relacional - Motivação

4. BD Objeto-Relacional (BDOR)

Bancos de Dados Objeto-Relacionais

BANCO DE DADOS GEOGRÁFICOS E WEBMAPPING -MODELAGEM DE BD GEOGRÁFICOS. Prof. Angelo Augusto Frozza, M.Sc.

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

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

Profa. Daniela Barreiro Claro

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

PROJETO DE BANCO DE DADOS -INTRODUÇÃO. Prof. Angelo Augusto Frozza, M.Sc.

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

Introdução a Sistemas de Bancos de Dados

Introdução ao SQL. Aécio Costa

A IMPLEMENTAÇÃO OBJETO-RELACIONAL ORACLE

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

Programação SQL. Introdução

SQL (Structured Query Language)

PROJETO DE BANCO DE DADOS -INTRODUÇÃO. Prof. Angelo Augusto Frozza, M.Sc.

Prof.: Clayton Maciel Costa

Á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:

SQL (Structured Query Language)

Banco de Dados. Maurício Edgar Stivanello

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

CICLO DE VIDA DE UM BD

SQL (Structured Query Language)

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

1) O QUE NÃO É BANCO DE DADOS?

Curso de Aprendizado Industrial Desenvolvedor WEB. Disciplina: Banco de Dados Professora: Cheli Mendes Costa Modelo de Dados

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

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

Modelo de Dados. Modelo para organização dos dados de um BD

Projeto de Banco de Dados

Banco de Dados Lista de Exercícios 01

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

Banco de Dados. Uma coleção de dados relacionados [ELMASRI/NAVATHE]

Linguagem SQL Sub-linguagem DDL

Prof.: Clayton Maciel Costa

MODELAGEM DE DADOS. Banco de Dados I. O uso da análise e do projeto Orientados a Objetos atenuou a separação! Unidade I

Metodologia para Representação da Estruturação de Dados Geoespacial Vetorial (EDGV) em Bancos de Dados Geográficos Relacionais

Modelo de Dados. Modelos Conceituais

BANCO DE DADOS E BUSINESS INTELIGENCE. C/H: 20 horas (20/02, 25/02, 27/02, 04/03, 06/03)

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

Projeto de Banco de Dados

Conceitos básicos. Aplicações de banco de dados. Conceitos básicos (cont.) Dado: Um fato, alguma coisa sobre a qual uma inferência é baseada.

Roteiro. Modelo de Dados Relacional. Processo de Projeto de Banco de Dados. BCC321 - Banco de Dados I. Ementa. Posicionamento.

Banco de Dados Avançados Banco de Dados Ativo

Processo de Projeto Bottom-Up. esquema conceitual do BD. engenharia reversa do esquema relacional. esquema relacional integrado do BD (esquema global)

Processo de Projeto Bottom-Up. esquema conceitual do BD. engenharia reversa do esquema relacional. esquema relacional integrado do BD (esquema global)

O que são Bancos de Dados?

Aula 02 Modelagem de Dados. Banco de Dados. Aula 02 Modelagem de Dados. Superior /2011 Redes Computadores - Disciplina: Banco de Dados -

Prof.: Clayton Maciel Costa

SQL Procedural. Josino Rodrigues Neto

Linguagem de Consulta - SQL

Integridade dos Dados

Linguagem SQL Parte I

Projeto de Banco de Dados Distribuído Proj o e j to t o de d B a B nc n o o d e d Da D do d s o D i D str t ibu b í u do d s

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

Modelo Entidade-Relacionamento

Curso PHP Aula 08. Bruno Falcão

Sistemas Gerenciadores de Bancos de Dados

Persistência e Banco de Dados em Jogos Digitais

Banco de Dados. Modelagem de Dados com MER. Prof. Walteno Martins Parreira Jr

SQL (STRUCTUREDQUERY LANGUAGE)

Revisão de Banco de Dados

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

O Modelo de Entidades e Relacionamentos (MER) é um modelo conceitual usado para projeto de aplicações de banco de dados.

SISTEMAS DE BANCO DE DADOS. Prof. Adriano Pereira Maranhão

SISTEMAS DE BANCO DE DADOS. Prof. Adriano Pereira Maranhão

Técnicas e Linguagens para Banco de Dados I

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

Banco de Dados. Aula 1 - Prof. Bruno Moreno 16/08/2011

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

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

Bancos de Dados não Convencionais

Modelagem de Dados Usando o Modelo Entidade-Relacionamento

4.6. SQL - Structured Query Language

Disciplina de Banco de Dados Parte V

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

Linguagem SQL (Parte I)

SQL Structured Query Language

NOME SEXO CPF NASCIMENTO SALARIO

PROGRAMAÇÃO EM BANCO DADOS Store Procedure e Trigger

MODELAGEM DE DADOS MODELAGEM DE DADOS. rafaeldiasribeiro.com.br 04/08/2012. Aula 7. Prof. Rafael Dias Ribeiro.

BANCO DE DADOS CONCEITOS BÁSICOS

PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

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

SISTEMA GERENCIADOR DE BANCO DE DADOS

Fundamentos do Sistema Gerenciador de Banco de Dados

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

Banco de Dados. Conceitos e Arquitetura de Sistemas de Banco de Dados. Profa. Flávia Cristina Bernardini

Aula 3 SBD Modelo Entidade Relacionamento Parte 1. Profa. Elaine Faria UFU

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

Núcleo de Pós Graduação Pitágoras

Principal: construir uma base de dados para produção de informações sobre internações hospitalares;

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

Gestão de Tecnologia da Informação

Comandos DDL. id_modulo = id_m odulo

Transcrição:

BD Objeto-Relacional - Motivação SGBDs Relacionais (SGBDRs) sistemas já consolidados no mercado boa performance muitos anos de pesquisa e aprimoramento eficiência: otimização de consultas, gerenciamento de transações não atendem adequadamente os requisitos de dados de novas categorias de aplicações BD Objeto-Relacional - Motivação SGBDs Orientado a Objetos (SGBDOO) modelo de dados mais rico adequado ao mercado de aplicações nãoconvencionais pior desempenho, se comparado com SGBDR heterogeneidade a nível de modelo e de capacidades de consulta e atualização SGBDs Objeto-Relacional (SGBDOR) combina as melhores características do modelo de objetos no modelo relacional modelo rico + eficiência no gerenciamento de dados tecnologia relativamente nova exemplos: Oracle, Informix, DB2, Postgres 1

Classificação de Stonebreaker Pai da tecnologia OR (1997) Classifica os principais sistemas gerenciadores de dados em 4 quadrantes Dados Sistemas de Arquivos BD Relacionais Complexos BDOO BDOR Consultas Complexas Classificação de Stonebreaker Quadrantes de tipos de gerenciadores de dados Dados Sistemas de Arquivos BD Relacionais Complexos BDOO BDOR dados são registros de tamanho fixo poucas consultas predefinidas, em geral buscas por igualdade de campos dos registros Consultas Complexas 2

Classificação de Stonebreaker Quadrantes de tipos de gerenciadores de dados Dados Sistemas de Arquivos BD Relacionais Complexos BDOO BDOR dados são linhas de tabelas cujos atributos possuem domínios simples flexibilidade de consultas com SQL Consultas Complexas Classificação de Stonebreaker Quadrantes de tipos de gerenciadores de dados Dados Sistemas de Arquivos BD Relacionais Complexos BDOO BDOR Consultas dados são objetos com estrutura complexa capacidade de consulta limitada, baseada em navegação por objetos (poucos usam todos os recursos da OQL) Complexas 3

Classificação de Stonebreaker Quadrantes de tipos de gerenciadores de dados Dados Sistemas de Arquivos BD Relacionais Complexos BDOO BDOR dados são tabelas com estrutura complexa uso do padrão SQL estendido (SQL-3) para garantir flexibilidade nas consultas Consultas Complexas Classificação de Stonebreaker Tendência migração para tecnologia OR Dados Sistemas de Arquivos BD Relacionais Complexos BDOO BDOR Complexas Consultas 4

BDR x BDOO x BDOR Critério BDR BDOO BDOR padrão SQL-2 ODMG 3.0 SQL-3 suporte a dados complexos não sim sim performance alta baixa espera-se que seja alta maturidade maduro razoavelmente maduro razoavelmente novo uso de SQL SQL full OQL (em geral, não é full) SQL estendido para objetos vantagem eficiência de acesso modelo de dados rico modelo rico + eficiência de acesso uso comercial larga escala pequena escala tendência: alcançar larga escala SQL-3 (SQL 99) Versão mais atual da SQL Extensão da SQL-2 (SQL 92) tratamento de objetos consultas recursivas instruções de programação... 5

SQL-3 Suporte ao tratamento de objetos tabelas aninhadas (objetos linha) tipos abstratos de dados (TADs) referências e OIDs objetos complexos definição de comportamento herança Duas formas Definição de Objetos tipo objeto linha (row object) define uma estrutura de tupla (registro) atributos podem conter outras tuplas permite a definição de uma estrutura aninhada tipo abstrato de dado (TAD) define uma estrutura complexa define comportamento e herança 6

Objeto Linha Definição CREATE ROW TYPE (<declaração_componentes>) Exemplos CREATE ROW TYPE TFornec( codfornec CHAR(4), nomefornec VARCHAR(40), endfornec TEnd ); CREATE ROW TYPE TEnd( ruanro VARCHAR(60), cidade VARCHAR(40), CEP INTEGER ); Modelagem OR Tipo Objeto Linha TFornec codfornec nomefornec endfornec domínio do atributo é um tipo (noção de agregação) TEnd ruanro cidade CEP 7

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; Modelagem OR Tabela Baseada em Tipo TFornec codfornec nomefornec endfornec Fornecedores FornAntigos 8

Acesso a Atributos Aninhados Notação de ponto ( dois pontos ) para navegação em atributos que fazem parte de uma estrutura aninhada Exemplo SELECT codfornec, endfornec..ruanro FROM Fornecedores WHERE endfornec..cidade = Florianopolis Criação de Objetos Linha Indicação de valores para todos os níveis de aninhamento Exemplo INSERT INTO Fornecedores VALUES ( F102, João Silva, TEnd( rua A, 120, Florianópolis, 88000)); 9

Referência 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 Exemplo CREATE ROW TYPE TCompra( fornecedor REF(TFornec), produto REF(TProd), data DATE, qtde INTEGER); CREATE TABLE Compras OF TYPE TCompra; Modelagem OR Referências TCompra fornecedor produto data qtde TFornec codfornec nomefornec endfornec TProd codprod descrprod preçoprod Compras 10

Acesso a Objetos Relacionados Exemplo 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 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> Exemplo CREATE TABLE Compras OF TYPE TCompra SCOPE FOR fornecedor IS Fornecedores; 11

Modelagem OR Escopo de Referência TCompra fornecedor produto data qtde Compras fornecedor TProd codprod descrprod preçoprod TFornec codfornec nomefornec endfornec Fornecedores Em BDOR, um OID OID é o valor indicado por atributos de referência pode ser uma chave primária pode ser definido pelo usuário ou pelo sistema Exemplos CREATE TABLE Fornecedores OF TYPE TFornec REF IS codfornec PRIMARY KEY; CREATE TABLE Produtos OF TYPE TProd REF IS codprod USER GENERATED; atributo definido pelo usuário, mas seu valor é controlado pelo sistema (OID)... REF IS SYSTEM GENERATED; OID gerado e controlado pelo sistema 12

Modelagem OR Identificadores Fornecedores codfornec Produtos codprod (OID) X (OID) Comparações de OIDs Comparações idênticas às comparações de valores de outros tipos de atributos Exemplo SELECT Fornecedores.nomeFornec FROM Fornecedores, Compras, Produtos WHERE Produtos.tipo = Parafuso AND Compras.qtde > 1000 AND Produtos.codProd = Compras.produto AND Fornecedores.codFornec = Compras.fornecedor; 13

Criação de Objetos com Referência Indicação dos valores de OIDs Exemplo INSERT INTO Compras VALUES (REF( F102 ), REF(1002), 10/12/03, 1300); Definição de Objetos Complexos Novos tipos de dados Row (tupla) Array (coleção ordenada) arrays n-dimensionais não são permitidos Exemplo CREATE TABLE Livros ( ISBN CHAR(10), título VARCHAR(60) NOT NULL, editora REF(TEdit), autor ROW (nome VARCHAR(50), nacionalidade VARCHAR(15)), capítulo VARCHAR(20) ARRAY[20] ); 14

Modelagem OR Objetos Complexos Livros ISBN título editora autor: ROW ( nome nacionalidade) capítulo: ARRAY(20) TEdit... Acesso a Objetos Complexos insert into Livros values ( 65893/186-9, Banco de Dados Objeto- Relacional, REF( Campus ), ( João Souza, brasileira ), ARRAY[ Introdução, OO, BD Objeto-Relacional, Conclusão ]); select capitulos[1] from Livros where autor..nome = João Souza 15

Objetos Complexos Alguns SGBDORs suportam outros tipos coleção Informix List, Set e Multiset (coleção) Oracle VARRAY (array variável cujos elementos podem ser objetos) NESTED TABLE (atributo cujo domínio é uma tabela aninhada) Objetos Complexos - LOBs LOB - Large OBject objeto de tamanho grande podem ser armazenados diretamente no BDOR como atributos de tabelas são agora considerados parte do esquema do BD e não precisam ser mantidos e tratados em arquivos separados Tipos de LOBs CLOB (Character LOB texto longo) BLOB (Binary LOB imagem) Definidos em termos de KB, MB e GB CREATE TABLE empregados (......) currículo fotografia CLOB(500K), BLOB(12M), 16

Operações LOBs CONCATENATION, SUBSTRING, POSITION, OVERLAY, predicados LIKE,..., funções definidas pelo usuário Exemplo SELECT nome FROM empregados WHERE currículo LIKE *UFSC* Modelagem OR LOBs Empregados... currículo: CLOB (500K) fotografia: BLOB (12M)... 17

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 <nometad> ( <listaatributos> [<declaraçãoassinmétodos>] ) [INSTANTIABLE] [[NOT] FINAL] pode gerar classes pode ou não ser especializado TAD - 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; 18

Modelagem OR TAD TEmpregado RG nome endereço gerente saláriobase comissão salário() TEnd ruanro cidade CEP Empregados TAD - Comportamento SQL-3 permite a definição de métodos, funções e procedimentos Implementação de método CREATE METHOD salário() FOR Tempregado RETURN REAL BEGIN RETURN salariobase + comissão*0.8; END 19

Métodos Métodos x Funções/Proc 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 Funções/Procedimentos podem ser definidos fora de um TAD CREATE FUNCTION / CREATE PROCEDURE identificação da função/procedimento a ser executado é determinado em tempo de compilação (early binding) Métodos Consultas SQL podem invocar métodos ou funções select RG,nome from empregados where salário() > 1000.00; 20

Herança Definição CREATE TYPE <nometad> UNDER <nometad>(...) CREATE TABLE <nometab> UNDER <nometab> (...) Herança múltipla não é permitida Exemplo CREATE TYPE Tprofessor UNDER Tempregado ( titulação VARCHAR(15), gratificação DECIMAL (7,2), OVERRIDING METHOD salário() RETURNS DECIMAL (7,2);... ) INSTANTIABLE NOT FINAL Modelagem OR Herança TEmpregado RG nome endereço gerente saláriobase comissão salário() TProfessor titulação gratificação salário() herança de tipo herança de tabela Produtos codprod (OID)... Produtos Perecíveis validade... Herança de tabelas implica redundância de dados: I na sub-tabela? I na super-tabela E na sub-tabela? E na super-tabela A(a i ) na sub-tabela? A(a i ) na super-tabela A(a i ) na super-tabela? A(a i ) na sub-tabela 21

Projeto Lógico de BDOR Combina diretrizes de projeto de BDR e BDOO Esquema ER entidade entidade fraca relacionamento 1:1 relacionamento 1:N Esquema OR tabela (pode-se definir adicionalmente um TAD ou um objeto linha para uma entidade, caso haja necessidade ou não de comportamento e/ou reuso de definição) atributo com domínio tupla (ROW) OU atributo de referência fraca -> forte fusão de entidades em uma tabela OU referências entre tabelas atributo de referência na tabela correspondente à entidade do lado N Projeto Lógico de BDOR Esquema ER Esquema OR relacionamento M:N atributo monovalorado atributo composto atributo multivalorado especialização tabela de relacionamento OU atributo(s) com domínio(s) ARRAY * atributo atômico atributo com domínio tupla (ROW) atributo com domínio ARRAY hierarquia de herança entre tipos ou tabelas entidade mesmas recomendações para mapeamento associativa de relacionamentos binários * Só vale para BDORs que suportam ARRAY de referências 22

Exercício em Aula Apresentar a modelagem lógica objetorelacional para o domínio da clínica (item 1 dos exercícios de modelagem) código Especialidades (1,1) nome atuação (0,N) andar (1,N) Leitos formação (0,N) Médicos número CRM nome salário internação horáriovisita nome (1,1) (0,1) (1,1) (0,N) responsabilidade (0,N) RG DN Pacientes (0,N) tratamento fone (0, N) CPF endereço Apresentar Exercício 2 a modelagem conceitual (ER) a modelagem lógica objeto-relacional para o domínio da biblioteca (item 2 dos exercícios de modelagem) Grupos de até 4 pessoas Entrega na próxima aula (15/04) 23