Db2 express c 9 banco de dados relacional xml nativo
This presentation is the property of its rightful owner.
Sponsored Links
1 / 36

DB2 Express-C 9 Banco de Dados Relacional/XML Nativo PowerPoint PPT Presentation


  • 57 Views
  • Uploaded on
  • Presentation posted in: General

DB2 Express-C 9 Banco de Dados Relacional/XML Nativo. Marcelo Maruyama Diniz ([email protected]) DC – UFSCar 09/11/2006. Agenda. Introdução ao DB2 Express-C 9 Comandos relacionais XML XPath SQL/XML XQuery. Introdução.

Download Presentation

DB2 Express-C 9 Banco de Dados Relacional/XML Nativo

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Db2 express c 9 banco de dados relacional xml nativo

DB2 Express-C 9 Banco de Dados Relacional/XML Nativo

Marcelo Maruyama Diniz

([email protected])

DC – UFSCar

09/11/2006


Agenda

Agenda

  • Introdução ao DB2 Express-C 9

  • Comandos relacionais

  • XML

  • XPath

  • SQL/XML

  • XQuery


Introdu o

Introdução

DB2 Express-C 9: banco de dados relacional/XML nativo da IBM

Disponível para download em

www-306.ibm.com/software/data/db2/express/download.html

XML nativo: campos são dados XML, e não referências para arquivos XML.


Usu rios

Usuários

  • DB2 não gerencia usuários.

  • O sistema operacional é o responsável.

  • Ao instalar, fornecer um nome de usuário e senha existentes, caso contrário uma nova conta será criada.


Inst ncias

Instâncias

  • Podem ser executadas diversas instâncias do DB2 a partir de uma mesma instalação.

  • Como se vários DB2 executassem independentemente.

  • Cada instância tem suas configurações individuais.

  • Uma instância padrão é criada durante a instalação.


Centro de controle

Centro de Controle

  • Ferramenta gráfica para utilização do DB2.

  • Recomendada para criação de objetos no banco de dados.


Command line processor clp

Command Line Processor (CLP)

  • Ferramenta em linha de comando para utilização do DB2.

  • Deve ser invocado através do menu para correta inicialização das variáveis.


Scripts

Scripts

Para criação, edição e execução de scripts, utilize a ferramenta Editor de Comandos


Privil gios

Privilégios

GRANT [ALL | privilégio]

ON [TABLE | VIEW | INDEX, ...] [objeto]

TO [usuário, ... grupo,..., PUBLIC]

<WITH GRANT OPTION>

REVOKE [ALL | privilégio]

ON [TABLE | VIEW | INDEX, ...] [objeto]

FROM [usuário, ... grupo,..., PUBLIC ]

<BY ALL>


Cria o e exclus o de bancos de dados

Criação e exclusão de bancos de dados

  • Recomendável a utilização do Centro de Controle, clicando com botão direito em Todos os Bancos de Dados -> Criar Banco de Dados -> Padrão...

  • Para habilitar o uso de campos XML, marcar a opção ‘Ativar banco de dados para XML’

  • Sintaxe simplificada:

    CREATE DATABASE [banco de dados]

    DROP DATABASE [banco de dados]


Cria o e exclus o de tabelas

Criação e exclusão de tabelas

  • Recomendável a utilização do Centro de Controle, clicando com o botão direito em Tabelas -> Criar na sub-árvore do banco de dados.

  • Sintaxe resumida:

    CREATE TABLE [tabela] (

    [ [campo] [tipo do campo] <NOT NULL> <WITH DEFAULT> ...]

    <unique constraints>

    <check constraints>

    <referencial constraints>

    )

    DROP TABLE [tabela]


Db2 express c 9 banco de dados relacional xml nativo

DML

INSERT INTO [tabela] <(campos, ...)> values (valores, ...)

INSERT INTO [tabela] <(campos, ...)> [Select...]

UPDATE [tabela] SET [[campo1] = [valor1], ...] <WHERE [condição]>

UPDATE [tabela] SET (campos, ...) = ([Select...]) <WHERE [condição]>

DELETE FROM [tabela] <WHERE [condição]>

DELETE FROM [tabela] (Select...)


Select statement

Select Statement

SELECT <DISTINCT> (campos, funções, ...) FROM [tabelas, ...] <WHERE [condição]>

SELECT <DISTINCT> (campos, funções, ...) FROM [tabela 1] INNER JOIN [tabela2] ON <condição>

Condição pode utilizar os predicados relacionais (<, >, ...), BETWEEN, NOT, LIKE ,IN, EXISTS e NULL


Db2 express c 9 banco de dados relacional xml nativo

XML

  • EXtensible Markup Language

  • Linguagem de marcação para descrição de dados.

  • O usuário define suas próprias tags de acordo com a semântica desejada.

  • Pode ser validado segundo a forma com uma DTD ou um XML Schema.


Exemplo

Exemplo

<?xml version="1.0" encoding="ISO-8859-1"?>

<alunos>

<aluno ra="1">

<nome>Débora</nome>

<cidadeOrigem>Fortaleza</cidadeOrigem>

<curso>Ciência da Computação</curso>

<condicao status=“rico” />

</aluno>

<aluno ra="2">

<nome>Carla</nome>

<cidadeOrigem>Olinda</cidadeOrigem>

<curso>Biologia</curso>

<condicao status=“pobre” />

</aluno>

</alunos>


Regras

Regras

  • Toda tag aberta deve ser fechada

  • Uma tag pode ser vazia <tag/>

  • Cada tag pode conter subtags, formando uma estrutura em árvore

  • Cada tag pode conter atributos

  • Todo documento XML deve ter uma tag raiz


Cria o de tabelas com campos xml

Criação de tabelas com campos XML

  • Utilizando o Centro de Controle, escolher o tipo do campo como XML

  • Utilizando o CLP

    CREATE TABLE [tabela](

    campo1 xml,

    ... )


Inser o de dados xml

Inserção de dados XML

INSERT INTO tabelaEx (campoInt, campoXML) values (1, ‘<dado>algumDado</dado>’)

IMPORT FROM “arqDescricao.del” OF DEL XML from “pathParaArqsXML” INSERT INTO tabelaEx


Inser o de dados xml1

Inserção de dados XML

Onde:

  • arqDescricao.del tem os dados e referências para arquivos XML a serem incluídos, separados por vírgula.

  • pathParaArqsXML é o caminho onde os arquivos XML referenciados estão.

  • Descrever os caminhos completos!


Inser o de dados xml exemplo

Inserção de dados XML - Exemplo

Arquivo arqDescricao.del na pasta C:\

Arquivo aluno1.xml na pasta C:\temp

IMPORT FROM “C:\arqDescricao.del" OF DEL XML FROM “C:\temp" INSERT INTO tabelaEx

4,<XDS FIL='aluno1.xml'/>,

5,<XDS FIL='aluno2.xml'/>

  • <?xml version="1.0" encoding="ISO-8859-1"?>

  • <aluno ra="1">

    • <nome>Débora</nome>

    • <cidadeOrigem>Fortaleza</cidadeOrigem>

    • <curso>Ciência da Computação</curso>

    • <condicao status="rico" />

  • </aluno>


Xpath

XPath

  • Linguagem para navegar em documentos XML.

  • Contém funções pré-definidas para manipulação dos dados.

  • Há 7 tipos de nós: elemento, atributo, texto, namespace, instrução de processamento, comentário e nó root.


Xpath1

XPath

  • <dept bldg=“101”>

    • <employee id=“901”>

      • <name>John Doe</name>

      • <phone>408 555 1212</phone>

      • <office>344</office>

    • </employee>

    • <employee id=“902”>

      • <name>Peter Pan</name>

      • <phone>408 555 9918</phone>

      • <office>216</office>

    • </employee>

  • </dept>

  • Caminhos completos para especificar elementos ou atributos

  • @ é usado para especificar um atributo

  • text() é usado para especificar o texto dentro de um elemento nó


Xpath2

XPath

  • * é usado como caractere curinga.

  • // indica o próprio nó ou qualquer um de seus descendentes

  • <dept bldg=“101”>

    • <employee id=“901”>

      • <name>John Doe</name>

      • <phone>408 555 1212</phone>

      • <office>344</office>

    • </employee>

    • <employee id=“902”>

      • <name>Peter Pan</name>

      • <phone>408 555 9918</phone>

      • <office>216</office>

    • </employee>

  • </dept>


Xpath3

XPath

  • <dept bldg=“101”>

    • <employee id=“901”>

      • <name>John Doe</name>

      • <phone>408 555 1212</phone>

      • <office>344</office>

    • </employee>

    • <employee id=“902”>

      • <name>Peter Pan</name>

      • <phone>408 555 9918</phone>

      • <office>216</office>

    • </employee>

  • </dept>

  • Predicados são utilizados dentro de [...]

  • [n] seleciona o n-ésimo filho do nó


Xpath4

XPath

  • <dept bldg=“101”>

    • <employee id=“901”>

      • <name>John Doe</name>

      • <phone>408 555 1212</phone>

      • <office>344</office>

    • </employee>

    • <employee id=“902”>

      • <name>Peter Pan</name>

      • <phone>408 555 9918</phone>

      • <office>216</office>

    • </employee>

  • </dept>

  • . representa o nó atual

  • .. representa o nó pai


Sql xml

SQL/XML

  • SQL com extensão XML.

  • Permite consultar nós específicos de documentos XML armazenados em campos de uma tabela, ao invés de recuperar apenas o documento inteiro.

  • Utiliza sintaxe do XPath.

  • Funções básicas

    • xmlexists

    • xmlquery

    • xmltable


Sql xml1

SQL/XML

xmlexists: as linhas retornadas contém um documento XML com o valor especificado. Retorna verdadeiro ou falso.

select name from clients

where xmlexists(‘$c/Client/Address[zip = “95116”]’

passing clients.contact as “c”)

Seleciona o campo nome da tabela clients de todas as linhas que tem um documento XML no campo contact com nó pai Client, nó filho Address e nó neto zip com valor 95116


Sql xml2

SQL/XML

xmlquery: retorna elementos do documento XML

select xmlquery(‘$c/Client/email’ passing contact as “c”)

from clients

where status = ‘Gold’

Seleciona os nós email filhos do nó Client do documento XML no campo contact da tabela clients sendo o campo status igual a ‘Gold’.

Para selecionar o texto do nó email, utilizar text()


Sql xml3

SQL/XML

xmltable: retorna uma tabela relacional a partir de documentos XML.

select t.comment#, i.itemname, t.customerID, Message

from items i,

xmltable(‘$c/Comments/Comment’ passing i.comments as “c”

columns Comment# integer path ‘CommentID’,

CustomerID integer path ‘CustomerID’,

Message varchar(100) path ‘Message’) as t

Converte os nós Comment do documento XML no campo comments da tabela items numa tabela de nome t com colunas Comment# (para o nó CommentID), CustomerID (para o nó CustomerID) e Message (para o nó Message)


Xquery

XQuery

  • Linguagem para consultar documentos XML.

  • Utiliza sintaxe do XPath.

  • Retorna sequências de dados XML.

  • Expressão iniciada com ‘xquery’


Xquery1

XQuery

For: itera por uma sequência

Let: atribui uma variável a uma sequência

Where: estabelece condição

Order: reordena itens

Return: monta o resultado da xquery


Sql xml4

SQL/XML

Utilizando o FLWOR com SQL/XML

Select name, xmlquery(‘for $e in $c/Client/email[1] return $e’

Passing contact as “c”)

From clients

Where status = ‘Gold’

Retorna o nome e o resultado da xmlquery.

xmlquery checa o campo contact de cada linha da tabela clients cujo campo status seja igual a ‘Gold’ e, para cada um deles, retorna o primeiro nó email.


Xquery2

XQuery

XQuery para recuperar os contatos do cliente (campo contact é XML)

Xquery db2-fn:xmlcolumn(‘CLIENTS.CONTACT’) (argumento precisa ser maiúsculo!)

db2-fn:xmlcolumn: função com parâmetro que identifica a tabela e o campo XML

Equivalente à

Select contact from clients


Xquery exemplos

XQuery - Exemplos

xquery

For $y in db2-fn:xmlcolumn(‘CLIENTS.CONTACT’)/Client/fax

Return $y

Resultado:

<fax>4081112222</fax>

<fax>5559998888</fax>


Xquery exemplos1

XQuery - Exemplos

xquery

for $y in db2-fn:xmlcolumn(‘CLIENTS.CONTACT’)/Client/Address

order by $y/zip

return $y

xquery

db2-fn:xmlcolumn(‘CLIENTS.CONTACT’)/Client/Address[zip=“95116”]


Bibliografia

Bibliografia

  • XPath, SQL/XML e XQuery

    www.w3schools.com/xpath/default.asp

    www.w3schools.com/xquery/default.asp

    www-128.ibm.com/developerworks/db2/library/techarticle/dm-0511melnyk/

    www-128.ibm.com/developerworks/db2/library/techarticle/dm-0604saracco/

    www.redbooks.ibm.com/abstracts/SG247315.html


  • Login