sistemas de gerência de bancos de dados - ufpa.br · pdf filesql - consultas com...

56
Módulo 0 - Modelos de Dados e Linguagens de Consulta Sistemas de Gerência de Bancos de Dados modulo0.PRZ 1 03/08/01

Upload: vanngoc

Post on 11-Mar-2018

218 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

Módulo 0 - Modelos de Dadose Linguagens de Consulta

Sistemas de Gerência de Bancos de Dados

modulo0.PRZ 1 03/08/01

Page 2: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

Tópicos

Introdução

Modelo Relacional

Modelo de Objetos

Modelo de Dados Semi-Estruturados

modulo0.PRZ 2 03/08/01

Page 3: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

Introdu ção

Revisão do conceito de modelo de dados:

modelo de dados = estrutura + consistência + operações

estrutura:tipos + construtoresinfluencia todos os componentes do SGBD

consistência:assertivas + triggersinfluenciam o controle de consistência

operações:consultas + atualizações influenciam o otimizador

modulo0.PRZ 3 03/08/01

Page 4: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

Introdu ção Linguagem de Definição de Dados (LDD):

comandos para definição do esquema lógico e físico do BD

Linguagem de Manipulação de Dados (LMD):comandos para especificação de consultas ao BDcomandos para manipulação dos dados no BD:

inserçãoatualizaçãodeleção

Classificação das linguagens:procedimentais: consultas especificam a ordem de execução

das operações necessárias para obter a respostadeclarativas: consultas especificam a resposta, sem indicar que operações devem ser realizadas para obtê-la

modulo0.PRZ 4 03/08/01

Page 5: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

Modelo Relacional estrutura:

tuplas relações1NF x NF2

operações:álgebra / cálculo relacional / SQL

consistência:dependências funcionais (incluindo chaves)dependências de inclusão (sinônimo de integridade referencial)outras dependênciasassertivas + triggers

modulo0.PRZ 5 03/08/01

Page 6: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

Modelo Relacional Cálculo Relacional

linguagem declarativaparadigma para as linguagens relacionais

Álgebra Relacional procedimentalmesmo poder de expressão que o Cálculo Relacionalvariantes da Álgebra Relacional são usadas internamente pelos SGBDs relacionais durante a otimização de consultas

SQL - Structured Query Languageoriginária do Cálculo Relacional“semi-declarativa”interface padrão dos SGBDs relacionais

modulo0.PRZ 6 03/08/01

Page 7: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

Álgebra Relacional Álgebra Relacional:

operações mapeiam uma ou mais relações em uma nova relaçãoalgumas operações impõem restrições nas relações de entrada

Operações: Básicas:

oriundas da teoria de conjuntos: Produto Cartesiano, União e Diferençaespecíficas para relações: Seleção, Projeção e Renomeção

Adicionaisoriundas da teoria de conjuntos: Interseção específicas para relações: Divisão e Junção

Notas: as operações básicas são suficientes para exprimir as mesmas consultas que o Cálculo Relacionalas operações adicionais ajudam a formular certas consultas que seriam muito complexas de exprimir usando apenas as operações básicas

modulo0.PRZ 7 03/08/01

Page 8: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

Álgebra Relacional Expressão Restri ções

E � F , E - F , E � F gr(E)=gr(F) e E e F têm atributos compatíveis

R := Eomite-se a lista de atributos de R quando for possível determiná-los a partir de E

selecione R onde P P é predicado de seleção para R, ou seja, os termos de P só envolvem atributos de R

projete R em A1, ... An A1,...,An são atributos de R

junte R e S onde P

P é predicado de junção para R e S, ou seja,os termos só envolvem expressões da forma R.A, onde A é um atributo de R, ou da forma S.A, onde A é um atributo de Se as comparações são sobre termos de relações diferentes

modulo0.PRZ 8 03/08/01

Page 9: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

Álgebra Relacional

Exemplos:

Esquema Relacional do Banco de Dados:

Disc[Cod, End, Matr, Nível] Prof[Matr, Nome, Idade]

Estado do Banco de Dados:

Matr Nome Idade

15315 Pedro 46

11239 Manuel 33

24217 José 66

ProfCod End Matr Nível

inf1731 L520 15315 GR

inf1732 L510 11239 GR

inf1732 L520 15315 GR

inf2324 L520 24217 PG

Disc

modulo0.PRZ 9 03/08/01

Page 10: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

Álgebra Relacional

Exemplos (cont.):

Qual o nome dos professores com mais de 45 anos que lecionam disciplinas na GR?

R1 := junte Disc e Prof onde DiscPG.Matr = Prof.Matr;R2 := selecione R1 onde Nível = GR e Idade > 45;R3 := projete R2 em Nome;

ou, equivalentemente:

R1 := selecione Disc onde Nível = GR;R2 := selecione Prof onde Idade > 45;R3 := junte R1 e R2 onde R1.Matr = R2.Matr;R4 := projete R3 em Nome;

modulo0.PRZ 10 03/08/01

Page 11: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

Álgebra Relacional

Representação de expressões por árvores:

R1 := junte Disc e Prof onde DiscPG.Matr = Prof.Matr;

R2 := selecione R1 onde Nível = GR e Idade > 45;R3 := projete R2 em Nome;

R1 := selecione Disc onde Nível = GR;R2 := selecione Prof onde Idade > 45;R3 := junte R1 e R2 onde R1.Matr = R2.Matr;R4 := projete R3 em Nome;

Disc Prof

_ Disc.Matr = Prof.Matr

" Nível = GR e Idade > 45

� Nome

Disc Prof

_ Disc.Matr = Prof.Matr

" Nível = GR

� Nome

" Idade > 45

modulo0.PRZ 11 03/08/01

Page 12: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

SQL

SQL

linguagem padrão para SGBDs relacionais

derivada do SEQUEL (Structured English QUEry Language)e do Cálculo Relacional

padronizada: um dos principais fatores de sucesso dos modelo relacional sucessão de padrões

modulo0.PRZ 12 03/08/01

Page 13: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

SQL

SQL-86 (SQL1)

padrão inicialmente desenvolvido no âmbito da ANSI esubsequentemente aprovado pela ISO

SQL-89

extensão do SQL-86 publicado em89

modulo0.PRZ 13 03/08/01

Page 14: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

SQL

SQL-92 (SQL2)

padrão aprovado pela ISO

dividido em:entry level:

define um conjunto mínimo de comandos para ser considerado SQL padrão

intermediate levelfull

SGBDs comerciais implementam:entry levelparte do intermediate level e parte do fulldefinições próprias

modulo0.PRZ 14 03/08/01

Page 15: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

SQL

SQL-99 (SQL3):

padrão aprovado no final de 1999 pela ISO

SGBDs comerciais já implementam parte do SQL-99:triggersstored proceduresqueries recursivas

modulo0.PRZ 15 03/08/01

Page 16: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

SQL

Consultas em SQL:

estrutura básica da forma select-from-where:

select <lista de resultados> from <lista de tabelas>

where <qualificação>

consultas simples:correspondem diretamente à Álgebra Relacional

consultas com aninhamento:envolvem outras consultas

consultas com agregação:envolvem operadores de agregaçãomodulo0.PRZ 16 03/08/01

Page 17: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

SQL - Consultas Simples

Consultas Simples:

consultas da forma select-from-where:

select <lista de resultados> from <lista de tabelas>

where <qualificação>

onde a lista de resultados e a qualificação envolvem apenas valores de atributos

ou combinação de consultas simples, das formas:

(Q1 union Q2) Q1 � Q2

(Q1 except Q2) Q1 - Q2

(Q1 intersect Q2) Q1 � Q2

Nota: divisão é expressa mais facilmente através de consultas aninhadas modulo0.PRZ 17 03/08/01

Page 18: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

SQL - Consultas Simples

Consultas Simples (cont.):

a qualificação é uma expressão booleana de comparações

comparações simples:

V � k comparação � entre o valor V de um atributo e uma constante k

V � W comparação � entre dos valores V e W de atributos outras formas de comparação (V é o valor de um atributo) :

V like P V é uma cadeia de caracteresque deve satisfazer o padrão P

(V between N and M) V é um valor numérico no intervalo [N,M]

V in (a, b,c, ...) V deve pertencer ao conjunto {a,b,c,...}

V is null V deve ser nulomodulo0.PRZ 18 03/08/01

Page 19: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

SQL - Consultas com Aninhamento

Consultas com Aninhamento:

a qualificação de uma consulta com aninhamento P é uma expressão booleana envolvendo:

termos da Teoria dos Conjuntos:

(Q1 union Q2)

(Q1 except Q2) (a diferença Q1 - Q2)

(Q1 intersect Q2)

(continua na próxima página)

modulo0.PRZ 19 03/08/01

Page 20: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

SQL - Consultas com Aninhamento

Consultas com Aninhamento (cont.):

comparações entre o valor V de um atributo e a resposta de Q

V in (Q) V deve pertencer ao resultado de Q

V = some (Q) V é igual a alguma tupla no resultado de QV = any (Q) V é igual a todas as tuplas no resultado de QV � some (Q) generalização para uma comparação �

V � any (Q)

quantificação existencial (ou a sua negação)

exists (Q) o resultado de Q não é vazio

not exists (Q) o resultado de Q é vazio

modulo0.PRZ 20 03/08/01

Page 21: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

SQL - Consultas com Agrega ção

Consultas com Agregação:

a lista de resultados ou a qualificação de uma consulta com agregação P contém uma ou mais operadores de agregação, ou seja, operadores que mapeiam conjuntos em valores

a consulta pode conter ainda uma cláusula de agrupamento e uma condição de agrupamento adicionais:

select <lista de resultados> from <lista de tabelas>

where <qualificação> group by <lista de atributos de agrupamento> having <condição de agrupamento>

modulo0.PRZ 21 03/08/01

Page 22: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

SQL - Consultas com Agrega ção

Consultas com Agregação (cont.):

operadores de agregação podem ser utilizados na lista de resultados ou na condição de agrupamento

operadores de agregação:

count retorna a cardinalidade do conjunto

sum retorna a soma dos valoresmax retorna o valor máximo (desde que o domínio seja ordenado)min retorna o valor mínimo (desde que o domínio seja ordenado)avg retorna a soma dos valores

o argumento pode conter a opção distinct para filtrar duplicatas

modulo0.PRZ 22 03/08/01

Page 23: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

Resumo

Modelo Relacional:tuplas + relaçõesdependências funcionais e outras

1NF x NF2

SQL3:triggersstored proceduresqueries recursivasconceitos de NF2

modulo0.PRZ 23 03/08/01

Page 24: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

Modelo de Objetos

Convencionais X OO:

Operações Fixas Operações Estendíveis

EstruturasFixas

Convencional ComportalmenteOrientado a Objetos

EstruturasEstendíveis

EstruturalmenteOrientado a Objetos

CompletamenteOrientado a Objetos

modulo0.PRZ 24 03/08/01

Page 25: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

Modelo de Objetos

ODMG - Object Database Management Group:Fundação: setembro de 1991Objetivo: definir um padrão para garantir a portabilidade

das aplicações escritas seguindo o modelo OOPresidente: R. G. G. CattellWeb site: www.odmg.orgVersões: ODMG 1.2 (1993)

ODMG 2.0 (março 1997)ODMG 3.0 (janeiro 2000)

Padrões definidos pelo ODMG:modelo de objetoslinguagem de definição de dados - ODLlinguagem de consulta - OQLacoplamento com C++ , Smalltalk e Java

modulo0.PRZ 25 03/08/01

Page 26: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

Modelo de Objetos

Literal = valor + comportamento

Classificação dos literais:

atomic corresponde aos tipos de dados simples

estrutured criado usando o construtor Struct

collection criado com os construtoresSet<t>, Bag<t>, List<t>, Array<t>, Dictionary<k,t> onde t é o tipo de objetos ou literais na coleção

e k é o tipo da chave, no caso de dicionários

(note que t pode ser um tipo de objeto ou literal)

modulo0.PRZ 26 03/08/01

Page 27: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

Modelo de Objetos

Objeto = OID + nome + estado + comportamento

OID = identificador internogerado pelo sistema, não sendo visível ao usuário

nome:é opcionaldeverá ser único no BD a que o objeto pertenceos objetos nomeados servirão de pontos de entrada para o BD

estado = valores das propriedades do objeto, incluindo:atributos do objetorelacionamentos (binários) entre o objeto e outros objetos

comportamento = operações permitidas sobre o objeto

modulo0.PRZ 27 03/08/01

Page 28: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

Modelo de Objetos

Interface = definição de estrutura + assinaturas de operações

as interfaces não podem ser instanciadas, ou seja, não podem gerar conjuntos de objetos

utilizadas essencialmente para organizar as operações

modulo0.PRZ 28 03/08/01

Page 29: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

Modelo de Objetos

Classes = definição de estrutura + assinaturas de operações

as classes podem ser instanciadas, ou seja, podem gerar extensões - conjuntos de objetos - e definir chaves para estas extensões

a definição da estrutura inclui a especificação de:atributos:

simples e complexos de referência, utilizados para representar relacionamentos 1-nentre os objetos da classe e objetos de outra classe

relacionamentos:utilizados para representar relacionamentos binários 1-n ou n-mentre os objetos da classe e objetos de outra classe:permitem especificar o relacionamento inversonão devem ser utilizados quando o relacionamento n-m possui atributos

modulo0.PRZ 29 03/08/01

Page 30: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

Modelo de Objetos

Herança Comportamental (via ":")

uma interface pode ser uma especialização de outras interfaces,das quais herda as operações

uma classe pode ser uma especialização de outras interfaces,das quais herda as operações

Herança Comportamental e Estrutural (via Extends )

uma classe pode ser uma especialização de apenas outra classe,da qual herda a estrutura e as operações

modulo0.PRZ 30 03/08/01

Page 31: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

Modelo de Objetos

Extensão = conjunto de objetos seguindo a definição de uma classe

uma extensão possui um nome

uma extensão pode ter uma ou mais chaves, definidas por listas de atributos ou relacionamentos da classe

se C é uma especialização de D,então a extensão de C deve ser um subconjunto de D

modulo0.PRZ 31 03/08/01

Page 32: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

ODL - Object Definition Language

ODL:

segue o modelo OO definido pelo ODMG, permitindo definir:

interfaces

classes

especializações estruturais e comportamentais

modulo0.PRZ 32 03/08/01

Page 33: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

ODL - Object Definition Language

Leilão

Escultura

Lote Obra

Artista

composto-por

OutraPinturaCliente

arremado-por

arremata

inclui incluida-em

compõe

cria

criada-por

(extends)

modulo0.PRZ 33 03/08/01

Page 34: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

ODL - Object Definition Language

L1 L2

t1 t2 t3 t4

o1 o2 o3 o4

1-n

n-m

o1 o2 o3 o4

t1 t2 t4t3

incluida-em

o1 o2 o3 o4

t1 t2 t4t3

inclui

Obra

Leilão

Lote

L1 L2 L1 L2

composto-por compõe

modulo0.PRZ 34 03/08/01

Page 35: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

ODL - Object Definition Language

class Artista ( extent artistas key nome)(

attribute string nome;attribute date DN;attribute date DN;attribute string bio;relationship set <Obra> cria inverse Obra::criada-por;void cadastra ( in integer nome; in date dn; in date df)

raises (nome_duplicado))

modulo0.PRZ 35 03/08/01

Page 36: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

OQL - Object Query Language

Consulta em OQL:

parte dos pontos de entrada do BD (objetos persistentes nomeados)

constrói, como resposta, um objeto (tipicamente uma coleção)

utiliza variáveis de iteração para varrer coleções

utiliza expressões de caminho para chegar aos objetos não nomeados

modulo0.PRZ 36 03/08/01

Page 37: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

OQL - Object Query Language

Expressão de caminho:

nome de objeto persistente, ou de variável de iteração,seguido por zero ou mais nomes de atributos ou de relacionamentos,separados por "."

exemplos: seja L uma variável de iteração varrendo leilões

L.data retorna a data do leilão apontado por LL.composto-por retorna o conjunto dos lotes do leilão apontado por L,

ou seja, um objeto do tipo Set<Lote>L.composto-por.inclui retorna o conjunto das obras dos lotes do leilão

apontado por L, ou seja, um objeto do tipo Set<Obra>

L.composto-por.valor não é uma expressão de caminho válida pois o resultado pode ser um objeto do tipo Set<float> ou do tipo Bag<float>

modulo0.PRZ 37 03/08/01

Page 38: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

OQL - Object Query Language

Consulta simples:

formulada apenas como uma expressão de caminho,começando pelo nome de um objeto persistente

Consulta associativa:

segue a sintaxe básica do SQL - select-from-where

modulo0.PRZ 38 03/08/01

Page 39: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

OQL - Object Query Language

Exemplos de consultas simples:

"Retorne uma referência à coleção de leilões"

leilões;

Suponha que L20000829 seja o nome de um objeto do tipo Leilão

"Retorne uma referência a todos os lotes do leilão L20000829"

L20000829.composto-por;

modulo0.PRZ 39 03/08/01

Page 40: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

OQL - Object Query Language

Exemplos de consultas associativas:

"Liste a data dos leilões, com seus lotes e valores arrematados, para os leilões realizados em 2000"

L1

t1

t2

'100'

'101'

'2000829'

leilõescomposto-por

composto-por

numeroL

Nota: leilões = objeto nomeado do BD L = variável de iteração sobre leilões

numero

valor

data

valor

'22K'

'10K'

modulo0.PRZ 40 03/08/01

Page 41: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

OQL - Object Query Language

Exemplos de consultas associativas (cont.):

"Liste a data dos leilões, com seus lotes e valores arrematados, para os leilões realizados em 2000"

select struct ( dleilão: L.data, lotes: ( select struct ( num: T.numero, val: T.valor )

from T in L.composto-por ) ) from L in leilõeswhere L.data.year = '2000' ;

modulo0.PRZ 41 03/08/01

Page 42: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

OQL - Object Query Language

Exemplos de consultas associativas (cont.):

"Liste a data dos leilões com a média dos valores arrematados, para os leilões realizados em 2000"

select struct ( dleilão: L.data, mleilão:avg (select T.valor

from T in L.composto-por ) ) from L in leilões

where L.data.year = '2000' )

modulo0.PRZ 42 03/08/01

Page 43: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

Resumo

Modelo OO:Literal = valor + comportamentoObjeto = OID + nome + estado + comportamentoFábrica = objeto utilizado para gerar ou criar outros objetosInterface = definição de estrutura + assinaturas de operações

não podem gerar conjuntos de objetosClasses = definição de estrutura + assinaturas de operações

as classes podem gerar extensões e definir chavesHerança Comportamental (via ":")Herança Comportamental e Estrutural (via Extends )

ODL - segue o modelo OO definido pelo ODMG

OQL - semelhante a SQL, mas incluindo:objetos arbitrários como respostasvariáveis de iteração para varrer coleçõesexpressões de caminho para chegar aos objetos não nomeadosvisões, pertinência e quantificação

modulo0.PRZ 43 03/08/01

Page 44: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

Modelo de Dados Semi-estruturados

Características principais dos dados semi-estruturados:

sem imposição de tipos

auto-descritivos:a descrição da estrutura está implícita nos dados, oua descrição da estrutura acompanha os dados

esquema conceitual:opcionaldescritivo, não prescritivo:

dados podem divergir da descrição do esquema

modulo0.PRZ 44 03/08/01

Page 45: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

Modelo de Dados Semi-estruturados

Características principais... (cont.):

dados semi-estruturados:estrutura é interpretada

(a partir da descri ção nos próprios dados)

dados estruturados:estrutura é compilada

(no esquema conceitual)

X

modulo0.PRZ 45 03/08/01

Page 46: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

Modelo de Dados Semi-estruturados

Exemplos de modelos para dados semi-estruturados:

listas (como em LISP!)grafos rotulados

exemplo:

�OHLODR��GDWD�������������

�ORWH��QR�������YDORU�����������REUD�HP�

��REUD��&KDOXSD����REUD��9DUDQGD������

Chalupa

20000829

20.0001

Varanda

leilão

data lote

obra-emvalorno

obra obra

modulo0.PRZ 46 03/08/01

Page 47: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

Modelo de Dados Semi-estruturados

Aplicações:

dados semi--estruturados facilitam:

integração de fontes de dados:

sintaticamente heterogêneas, mas semanticamente próximasautônomas na organização e na disseminação dos dados:

organização pode mudardisponibilidade da fonte pode mudar

intercâmbio de dados entre aplicações da mesma área:

definição de uma sintaxe comumdefinição de uma semântica comum (ontologia ou modelo de dados)

modulo0.PRZ 47 03/08/01

Page 48: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

XML

XML Working Group do World Wide Web Consortium (W3C): Fundação: 1996Presidente: Jon Bosak (Sun Microsystems)Objetivo: definir um subconjunto de SGML com o objetivo de

permitir intercâmbio de documentos na WebWeb site: www.w3.org/XMLVersões: XML 1.0 (February 1998)

XML 1.0 - Second Edition (October 2000)

Padrões definidos pelo XML Working Group:XML - Extensible Markup LanguageXLL - Extensible Linking LanguageXSL - Extensible Style Language SAX - Simple API for XML DOM - Document Object Model

modulo0.PRZ 48 03/08/01

Page 49: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

XML

Características principais de XML:

projetada para definir documentos estruturados

conteúdo do documento = descrição da estrutura + dados

não indica forma de apresentação de documentos

descrição da forma de apresentação separada do conteúdo do documento(contrastando com HTML)

modulo0.PRZ 49 03/08/01

Page 50: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

XML

Estrutura lógica de um documento XML

Prólogo

Declaração XMLindica a versão do XML e outras informaçõespara a aplicação que processará o documento

DTD - Document type definition:regras estruturais para o documento edeclarações de recursos externos e internos

Corpo do documentolista de elementos aninhados e outros componentes

modulo0.PRZ 50 03/08/01

Page 51: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

XML Básico

Elemento:

texto delimitado por uma tag de início e uma tag de fimelementos podem ser aninhadostags não são pré-definidas

exemplo:

�EG!

�OHLODR!

�GDWD!����������GDWD!

�ORWH!

�QR!���QR!

�YDORU!�������YDORU!

�REUD!&KDOXSD $GHUQDGD��REUD!

��ORWH!

��OHLODR!

��EG!

modulo0.PRZ 51 03/08/01

Page 52: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

DTD - Document Type Definition

DTD - Document Type Definition::

��'2&7<3( QRPH > ��� @!

tag opcional que, se presente, deverá ocorre imediatamente após à PI �"[PO���!

especifica uma gramática livre de contexto à qual o documento deverá aderir

faz o papel do esquema conceitual para uma coleção de documentos XML

modulo0.PRZ 52 03/08/01

Page 53: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

�"[PO YHUVLRQ �����"!

��'2&7<3( EG >

��(/(0(17 EG �OHLODR � !

��(/(0(17 OHLODR �GDWD�ORWH�� !

��(/(0(17 GDWD ��3&'$7$� !

��(/(0(17 ORWH �QR�YDORU�REUD��!

��(/(0(17 QR ��3&'$7$� !

��(/(0(17 YDORU ��3&'$7$� !

��(/(0(17 REUD ��3&'$7$� !

@!

�EG!

�OHLODR!

�GDWD!����������GDWD!

�ORWH!

�QR!���QR!

�YDORU!�������YDORU!

�REUD!&KDOXSD $GHUQDGD��REUD!

��ORWH!

��OHLODR!

��EG!

modulo0.PRZ 53 03/08/01

Page 54: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

DTD - Document Type Definition

ELEMENT:

��(/(0(17 QRPH �H[SUHVVmR UHJXODU�!

expressões regulares:

( zero ou mais repetições de E(� uma ou mais repetições de E(" zero ou uma ocorrência de E( _ ) RX ( RX ) RFRUUHP

(�) ( FRQFDWHQDGD FRP )

�(� parentetização de E

a definição de ELEMENTs pode ser recursiva

��(/(0(17 QR �IROKD _ �QR�QR�� !

��(/(0(17 IROKD ��3&'$7$� !

modulo0.PRZ 54 03/08/01

Page 55: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

DTD - Document Type Definition

Limitações de DTDs:

DTDs impõe ordem na ocorrência de elementos:limitação decorrente do uso de expressões regulares

DTDs possuem tipos de dados limitados:ID, IDREF, IDREF referências#PCDATA cadeias de caracteres

definição das tags é global à DTD:duas tags que ocorram apenas aninhadas em tags distintasnão podem ter o mesmo nomeproblema contornado através da noção de namespace

não há restrições fortes sobre IDs e IDREFs:os valores dos atributos dos tipos IDREF ou IDREFSnão estão restritos aos elementos do tipo desejado

modulo0.PRZ 55 03/08/01

Page 56: Sistemas de Gerência de Bancos de Dados - ufpa.br · PDF fileSQL - Consultas com Agregação Consultas com Agregação (cont.): operadores de agregação podem ser utilizados na lista

Resumo

XML:projetada para descrever conteúdo de documentos, e não apresentaçãotags indicam estrutura de documentos

DTD - Document Type Definitiongramática especificando o formato de um conjunto de documentos

Entidades:compõem a estrutura física de um documento XML

XLink e XPointer:permite a declaração de elos entre documentos

Propostas para especificação de tipos em XML:DCD - Document Content Description, XML-schema e XML-data

APIs para XML:SAX - Simple API for XMLDOM - Document Object Model

modulo0.PRZ 56 03/08/01