Cap­tulo 3: Modelo de Dados Objeto-Relacional Banco de Dados II Prof. Carlos Eduardo Pires cesp@dsc.ufcg.edu.br

  • View
    106

  • Download
    2

Embed Size (px)

Text of Cap­tulo 3: Modelo de Dados Objeto-Relacional Banco de Dados II Prof. Carlos Eduardo Pires...

  • Slide 1
  • Captulo 3: Modelo de Dados Objeto-Relacional Banco de Dados II Prof. Carlos Eduardo Pires cesp@dsc.ufcg.edu.br
  • Slide 2
  • Captulo 3: Modelo de Dados Objeto-Relacional2 Contedo Bancos de Dados Objeto-Relacional Modelo de Dados Objeto-Relacional Linguagem de Consultas Objeto-Relacional Viso geral dos conceitos de OO disponveis no SGBD Oracle 11g Extenses para criar objetos complexos O impacto da OO em consultas SQL Integrao OO-Relacional atravs de Vises de Objeto
  • Slide 3
  • Captulo 3: Modelo de Dados Objeto-Relacional3 Banco de Dados Objeto-Relacional SGBDs Objeto-Relacional combinam os benefcios do modelo relacional com a capacidade de modelagem do modelo OO Fornecem suporte para consultas complexas sobre dados complexos Atendem aos requisitos das novas aplicaes e da nova gerao de aplicaes de negcios
  • Slide 4
  • Captulo 3: Modelo de Dados Objeto-Relacional4 Banco de Dados Objeto-Relacional Modelos e Linguagens O Modelo de Dados OR uma extenso do modelo Relacional Extenses incluem mecanismos para permitir aos usurios estender o banco de dados com tipos e funes especficas da aplicao A Linguagem de Consulta OR uma extenso da linguagem SQL para suportar o modelo de objetos As extenses incluem consultas envolvendo objetos, atributos multivalorados, Tipos Abstratos de Dados (TADs), mtodos e funes como predicados de busca em uma consulta
  • Slide 5
  • Captulo 3: Modelo de Dados Objeto-Relacional5 Modelo de Dados Objeto-Relacional Permite especificar e utilizar TADs da mesma forma que os tipos de dados pr-definidos TADs so tipos de dados definidos pelo usurio que encapsulam comportamento e estrutura interna (atributos) A tabela convencional estendida para permitir a referncia de objetos (referncia de tipos), TADs e valores alfanumricos como domnio de colunas
  • Slide 6
  • Captulo 3: Modelo de Dados Objeto-Relacional6 Modelo de Dados Objeto-Relacional Utiliza referncias para representar conexes inter-objetos tornando as consultas baseadas em caminhos de referncia mais compactas e eficientes do que as consultas feitas com juno Herana implementada organizando todos os tipos em hierarquias Utiliza construtores set, list, multiset ou array para organizar colees de objetos
  • Slide 7
  • Captulo 3: Modelo de Dados Objeto-Relacional7 Benefcios do Modelo de Dados Objeto-Relacional Nova Funcionalidade Aumenta indefinidamente o conjunto de tipos e funes fornecidas pelo SGBD Desenvolvimento de aplicaes simplificado Reuso de cdigo por todas as aplicaes
  • Slide 8
  • Captulo 3: Modelo de Dados Objeto-Relacional8 Linguagem de Consultas para Bancos de Dados Objeto-Relacional O resultado de uma consulta ainda consiste de dados em formato tabular Um SGBDOR ainda relacional pois suporta dados armazenados em tabelas formadas por linhas e colunas A linguagem de consultas para BDOR uma extenso da linguagem SQL, utilizada para definio e manipulao de dados e consultas
  • Slide 9
  • Captulo 3: Modelo de Dados Objeto-Relacional9 Padro SQL:1999 (SQL-3) a base para muitos SGBDs OR Oracle, Informix Universal Server, IBM DB2 Universal Database, entre outros Caracterizada como SQL Orientada a Objetos Envolve caractersticas adicionais classificadas em: Relacionais Novos tipos de dados e novas clusulas Orientadas a Objetos Tipos de dados definidos pelo usurio, definio de mtodos e uso de referncias
  • Slide 10
  • Captulo 3: Modelo de Dados Objeto-Relacional10 Contedo do Padro SQL:1999 Multi-part standard ISO/IEC 9075-n:1999 Parte 1: SQL/Framework Parte 2: SQL/Foundation Parte 3: SQL/CLI Parte 4: SQL/PSM Parte 5: SQL/Bindings Parte 7: SQL/Temporal Parte 9: SQL/MED (Management of External Data) Parte 10: SQL/OLB (Object Linking Binding: JDBC e SQLJ) SQL/OLAP SQL/MM: Spatial, Text, Image
  • Slide 11
  • Captulo 3: Modelo de Dados Objeto-Relacional11 Part 2: SQL/Foundation Estamos interessados neste curso na parte do padro que trata de Orientao a Objetos: Tipos de dados definidos pelo usurio Atributos e comportamento Encapsulamento: funes e mtodos Hierarquias de tipos (herana simples) User-defined CAST, ordenao Tabelas tipadas e tipos referncia
  • Slide 12
  • Captulo 3: Modelo de Dados Objeto-Relacional12 Tipos de Dados Definidos pelo Usurio UDT User Defined Types Evoluo dos tipos em SQL: Sempre houve os tipos embutidos (built-in) INTEGER, SMALLINT, CHAR, VARCHAR, DATE, TIME e TIMESTAMP Alguns tipos proprietrios Oracle NUMBER e RAW; Sybase SMALLMONEY e IMAGE Aps alguns anos, surgiram BLOB e CLOB Houve algumas tentativas de DBMS vendors de propor solues para certos tipos de dados especficos: texto, GIS, imagens e time series
  • Slide 13
  • Captulo 3: Modelo de Dados Objeto-Relacional13 Tipos de Dados Definidos pelo Usurio Entretanto, o que se queria era uma soluo mais genrica que pudesse estender o SGBD com tipos especficos: Soluo UDT Observao O termo User em UDT no quer dizer usurio final! E sim, desenvolvedor da aplicao
  • Slide 14
  • Captulo 3: Modelo de Dados Objeto-Relacional14 UDT Definio Um UDT um tipo que no embutido em um SGBD ou linguagem de programao, mas que pode ser definido como parte do desenvolvimento de uma ou mais aplicaes, com possvel comportamento definido em sua criao (adaptada de Jim Melton: Advanced SQL:1999, Morgan Kauffman, 2003)
  • Slide 15
  • Captulo 3: Modelo de Dados Objeto-Relacional15 Tipos Definidos pelo Usurio Tipos de UDT: Structured types Reference types
  • Slide 16
  • Captulo 3: Modelo de Dados Objeto-Relacional16 Structured Types Tambm conhecidos como Abstract Data Types (Tipos Abstratos de Dados) Pode conter uma estrutura complexa Anlogo a struct na linguagem C Estado Atributos Comportamento Mtodos, funes e procedures
  • Slide 17
  • Captulo 3: Modelo de Dados Objeto-Relacional17 Atributos Cada atributo pode ser: Tipo built-in, incluindo coleo Tipo definido pelo usurio O sistema gera uma funo get (observer) e uma funo set (mutator) para cada atributo
  • Slide 18
  • Captulo 3: Modelo de Dados Objeto-Relacional18 Encapsulamento Esconde implementao dos usurios Permite que a implementao mude sem afetar as aplicaes desde que a interface provida permanea constante Aplicaes acessam tudo atravs da interface funcional, incluindo os atributos usando as funes observer e mutator
  • Slide 19
  • Captulo 3: Modelo de Dados Objeto-Relacional19 Procedures, Funes e Mtodos Conceito genrico Rotina procedure, function, method (normalmente stored) Procedure Parmetros IN/OUT Funo Apenas parmetro IN (output retornado como valor da funo) Mtodos Caso especial de funes
  • Slide 20
  • Captulo 3: Modelo de Dados Objeto-Relacional20 Procedures, Funes e Mtodos Procedures Podem ser overloaded (sobrecarregadas) Mesmo nome, com quantidade diferente de parmetros Tipos de dados dos argumentos no so utilizados para overloading Existem em qualquer esquema (usurio) No esto ligados a um tipo estruturado
  • Slide 21
  • Captulo 3: Modelo de Dados Objeto-Relacional21 Procedures, Funes e Mtodos Funes Podem ser overloaded (sobrecarregadas) Vrias funes com o mesmo nome, mas com o mesmo nmero de parmetros Distintos pelos tipos de dados dos argumentos Existem em qualquer esquema (usurio) No esto ligados a um tipo estruturado
  • Slide 22
  • Captulo 3: Modelo de Dados Objeto-Relacional22 Procedures, Funes e Mtodos Mtodos Podem ser overloaded (sobrecarregados) Fortemente acoplado a um nico tipo estruturado Deve estar no mesmo esquema (usurio) da definio do tipo Tipo do argumento associado ao tipo estruturado
  • Slide 23
  • Captulo 3: Modelo de Dados Objeto-Relacional23 Notao: ponto (.) vs. funcional Notao funcional c(b(a)) Exemplo: TRIM(TO_CHAR(v_age)) Notao de ponto a.b.c Funes DEVEM usar a notao funcional Mtodos DEVEM usar a notao de ponto Observer: SELECT EMP.AGE(dt_nasc) IDADE FROM EMPREGADO EMP Mutator: SET EMP.AGE = 10, onde, EMP = TAD e AGE = Atributo
  • Slide 24
  • Captulo 3: Modelo de Dados Objeto-Relacional24 Diferenas entre Funes e Mtodos CaractersticaFunoMtodo Ligado a um tipo especfico? NoSim Sintaxe de chamadaNotao funcionalNotao de ponto Esquema (usurio) de residncia Qualquer esquemaEsquema do tipo associado
  • Slide 25
  • Captulo 3: Modelo de Dados Objeto-Relacional25 Tipos de Mtodo H dois tipos de mtodos: Static methods: opera no tipo de dados propriamente dito Instance methods: opera na instncia de um tipo
  • Slide 26
  • Captulo 3: Modelo de Dados Objeto-Relacional26 Declarao de Mtodos H dois lugares para definio de mtodos Declarao do Tipo Os mtodos so declarados (suas assinaturas) na definio do tipo de dados Implementao do Tipo A implementao dos mtodos fica em outro lugar, utilizando-se de um comando SQL especfico para tal fim O cdigo pode ser escrito em SQL ou em outra linguagem de programao (Java e C++)
  • Slide 27
  • Captulo 3: Modelo de Dados Objeto-Relacional27 Exemplo de Mtodo (Declarao) CREATE TYPE Filme AS ( ttulo VARCHAR (100), descricao VARCHAR (500), duracaoMinutos INT) NOT FINAL METHOD duracaoEmHoras() RETURNS INTERVAL HOUR(2) TO MINUTE; TAD TIPO DE DADOS ATRIBUTOS ESPECIFICAO DO MTODO Permite HERANA
  • Slide 28
  • Captulo 3: Modelo de Dados Objeto-Relacional28 Exemplo de Mtodo (Implementao) CREATE INSTANCE METHOD duracaoEmHoras() RETURNS INTERVAL HOUR(2) TO MINUTE FOR Filme RETURN CAST (SELF.duracaoMinutos AS INT