<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Poznaj DB2 &#187; PureXML</title>
	<atom:link href="http://db2.com.pl/index.php/tag/purexml/feed/" rel="self" type="application/rss+xml" />
	<link>http://db2.com.pl</link>
	<description>DB2 Express-C</description>
	<lastBuildDate>Tue, 27 Jul 2010 13:45:10 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Wikipedia i DB2</title>
		<link>http://db2.com.pl/index.php/129/wikipedia-i-db2/</link>
		<comments>http://db2.com.pl/index.php/129/wikipedia-i-db2/#comments</comments>
		<pubDate>Wed, 05 Aug 2009 22:12:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[DB2]]></category>
		<category><![CDATA[PureXML]]></category>

		<guid isPermaLink="false">http://db2.com.pl/?p=129</guid>
		<description><![CDATA[Przeglądając zasoby Internetu trafiłem na zrzut bazy danych Wikipedii dostępny pod adresem http://download.wikimedia.org. Ponieważ archiwum jest w formacie XML doskonale nada się do przetestowania możliwości PureXML  
No to zaczynamy.

Najpierw utworzymy bazę danych
CREATE DATABASE wiki AUTOMATIC STORAGE YES  ON 'D:\db2' DBPATH ON 'D:\db2' ALIAS wikipedi USING CODESET UTF-8 TERRITORY PL COLLATE USING SYSTEM PAGESIZE [...]]]></description>
			<content:encoded><![CDATA[<p>Przeglądając zasoby Internetu trafiłem na zrzut bazy danych Wikipedii dostępny pod adresem <a href="http://download.wikimedia.org/plwiki/latest/plwiki-latest-pages-articles.xml.bz2">http://download.wikimedia.org</a>. Ponieważ archiwum jest w formacie XML doskonale nada się do przetestowania możliwości PureXML <img src='http://db2.com.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>No to zaczynamy.<br />
<span id="more-129"></span><br />
Najpierw utworzymy bazę danych
<pre class="brush: sql;">CREATE DATABASE wiki AUTOMATIC STORAGE YES  ON 'D:\db2' DBPATH ON 'D:\db2' ALIAS wikipedi USING CODESET UTF-8 TERRITORY PL COLLATE USING SYSTEM PAGESIZE 4096;</pre>
<p>i trzy tabele. Dwie na dane XML
<pre class="brush: sql;">
create table wiki (id int, doc xml)

create table wiki1 (id int, doc xml)
</pre>
<p> a drugą na dane w postaci relacyjnej</p>
<pre class="brush: sql;"> create table wikipedia (wiki_id int, wiki_title varchar(1000), wiki_text clob(2M))</pre>
<p>Po pobraniu pliku (ponad 500Mb) i rozpakowaniu mamy plik o wielkości prawie 2Gb.</p>
<p>Ponieważ próby zaimportowania całego pliku od razu kończyły się komunikatem o braku miejsca podzieliłem plik na kilka mniejszych części (uzupełniając ręcznie brakujące tagi) i zaimportowałem każdy po kolei.</p>
<pre class="brush: sql;">
IMPORT FROM d:\wiki\db2import\wiki.csv  OF DEL XML FROM d:\wiki\db2import\ MESSAGES d:\wiki\db2import\out.txt INSERT INTO wiki1
</pre>
<p>W ten sposób w tabeli wiki1 mamy całą wikipedię w kilku rekordach. Następny krok to wypełnić tabele wiki i wikipedia</p>
<pre class="brush: sql;">
insert into wiki (tresc)
SELECT X.* FROM wiki1,
  XMLTABLE (XMLNAMESPACES(DEFAULT 'http://www.mediawiki.org/xml/export-0.3/'),
'$d/mediawiki/page' passing cast(doc As XML) as &amp;quot;d&amp;quot;
    COLUMNS
      dok XML PATH 'document{.}') AS X
</pre>
<pre class="brush: sql;">
insert into wikipedia (wiki_id,wiki_title,wiki_text)
SELECT X.*
FROM wiki1,
XMLTABLE (XMLNAMESPACES(DEFAULT 'http://www.mediawiki.org/xml/export-0.3/'),
'$d/mediawiki/page' passing cast(doc As XML) as &amp;quot;d&amp;quot;
   COLUMNS
   ID        INTEGER         PATH 'id',
   title    VARCHAR(1000)     PATH 'title',
   tekst    varchar(2M)     PATH 'revision/text'
) AS X
</pre>
<p>Po wypełnieniu każda posiada ponad 700 000 wierszy.</p>
<p>Pora napisać jakieś proste zapytanie. Np: </p>
<pre class="brush: sql;">
select * from wikipedia where wiki_title = 'DB2'
</pre>
<p>Wykonuje się długo? Trzeba założyć indeks.</p>
<pre class="brush: sql;">
CREATE  INDEX ADMIN.WIKI_TITLE ON ADMIN.WIKIPEDIA (WIKI_TITLE ASC)  PCTFREE 10 MINPCTUSED 10 ALLOW REVERSE SCANS  PAGE SPLIT SYMMETRIC COLLECT  SAMPLED DETAILED  STATISTICS ;
</pre>
<p>A co z wyszukiwaniem po polu wiki_text? Ponieważ jest to pole typu CLOB nie można na nim założyć indeksu. Tu z pomocą przyjdzie nam FULL TEXT SEARCH.</p>
<pre class="brush: sql;">
db2ts START FOR TEXT;
</pre>
<blockquote><p>
CIE00001 Operacja zakończona pomyślnie.
</p></blockquote>
<pre class="brush: sql;">
db2ts ENABLE DATABASE FOR TEXT CONNECT TO WIKI;
</pre>
<blockquote><p>
SQL20427N  Podczas wykonywania procedury lub komendy administracyjnej wyszukiwan<br />
ia tekstowego wystąpił błąd. Komunikat o błędzie to: &#8220;CIE00442N Właściciel insta<br />
ncji nie ma uprawnień do wykonania komendy indeksu tekstowego dla bazy danych &#8220;W<br />
IKI&#8221;.&#8221;. SQLSTATE=38H14
</p></blockquote>
<p>Spróbujmy zrobić to samo na tabeli z danymi w formacie XML.</p>
<pre class="brush: sql;">
Select *
from WIKI
Where xmlexists('declare  default  element  namespace  &amp;quot;http://www.mediawiki.org/xml/export-0.3/&amp;quot;; $c/page[title=&amp;quot;DB2&amp;quot;]' passing tresc as &amp;quot;c&amp;quot;)
</pre>
<p>Zapytanie wykonuje się długo? Spróbujmy założyć indeks.</p>
<pre class="brush: sql;">
CREATE INDEX wiki_index on wiki(tresc) GENERATE KEY USING
XMLPATTERN '/page/title' as SQL VARCHAR(1000)
</pre>
<blockquote><p>DB21034E  Komenda nie była poprawną komendą procesora wiersza komend i została<br />
przetworzona jako instrukcja SQL.  Podczas przetwarzania SQL komenda zwróciła:<br />
SQL0614N  Nie można utworzyć lub zmienić indeksu lub rozszerzenia indeksu<br />
&#8220;WIKI_INDEX&#8221;, ponieważ łączna długość podanych kolumn jest za duża.<br />
SQLSTATE=54008</p>
<p>SQL0614N  Nie można utworzyć lub zmienić indeksu lub rozszerzenia indeksu &#8220;WIKI_INDEX                                                            &#8220;, ponieważ łączna długość podanych kolumn jest za duża.</p>
<p>Objaśnienie: </p>
<p>Nie można utworzyć lub zmodyfikować indeksu, ponieważ suma długości<br />
kolumn wewnętrznych klucza przekroczyłaby ograniczenie długości klucza<br />
indeksu. Nie można także utworzyć indeksu przy użyciu kolumn typu LONG<br />
VARCHAR, LONG VARGRAPHIC lub LOB. Jeśli indeks został zdefiniowany w<br />
tabeli o typie strukturalnym, został utworzony także dodatkowy nagłówek<br />
indeksu, który zmniejsza maksymalną długość o 4 bajty. Indeks można<br />
zmodyfikować przy użyciu instrukcji ALTER TABLE lub ALTER NICKNAME,<br />
umożliwiającej zmianę typu danych w jednej lub kilku kolumnach.</p>
<p>Nie można utworzyć rozszerzenia indeksu, ponieważ suma długości kolumn<br />
zwracanych przez funkcję GENERATE KEY przekroczyłaby ograniczenie<br />
długości klucza indeksu.</p>
<p>Ograniczenie długości klucza indeksowania jest określone na podstawie<br />
wielkości strony obszaru tabel używanego przez indeks:</p>
<p>Maks. dł. klucza   Wielkość strony<br />
&#8212;&#8212;&#8212;&#8212;&#8211;  &#8212;&#8212;&#8212;<br />
1 kB            4 kB<br />
2 kB            8 kB<br />
4 kB            16 kB<br />
8 kB            32 kB</p>
<p>Nie można wykonać instrukcji. Określony indeks lub rozszerzenie indeksu<br />
nie zostało utworzone albo nie można było zmienić tabeli lub pseudonimu.</p>
<p>Działanie użytkownika: </p>
<p>Aby zmodyfikować definicję indeksu lub zmienić kolumnę, usuń jedną lub<br />
kilka kolumn wchodzących w skład indeksu, tak aby długość indeksu nie<br />
przekroczyła dopuszczalnej wartości. W definicji rozszerzenia indeksu<br />
określ inną funkcję GENERATE KEY lub przedefiniuj ją, tak aby zwracała<br />
wiersz o mniejszej długości.</p>
<p> kod_sql: -614</p>
<p> stan_sql: 54008</p>
</blockquote>
<p>I na razie bez powodzenia. </p>
]]></content:encoded>
			<wfw:commentRss>http://db2.com.pl/index.php/129/wikipedia-i-db2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DB2 PureXML for Dummies</title>
		<link>http://db2.com.pl/index.php/121/db2-purexml-for-dummies/</link>
		<comments>http://db2.com.pl/index.php/121/db2-purexml-for-dummies/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 22:50:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[DB2]]></category>
		<category><![CDATA[PureXML]]></category>

		<guid isPermaLink="false">http://db2.com.pl/?p=121</guid>
		<description><![CDATA[IBM udostępnił za darmo (po uprzednim wypełnieniu ankiety) książke PureXML for Dummies. Ksiązka zawiera 75 stron. Jej autorem jest Conor O’Mahony który pracuje w IBM na stanowisku DB2 Product Marketing. Warto odwiedzić jego strone
www.nativeXMLdatabase.com
Spis treści:
Introduction
Rozdział 1: Solving a Storage Problem: DB2 pureXML
Rozdział 2: Getting Started with DB2 pureXML
Rozdział 3: Working with XML Data
Rozdział 4: Retrieving [...]]]></description>
			<content:encoded><![CDATA[<p>IBM udostępnił za darmo (po uprzednim wypełnieniu ankiety) książke <a href="https://www14.software.ibm.com/webapp/iwm/web/signup.do?lang=en_US&#038;source=sw-infomgt&#038;S_PKG=book-pureXML-dummies">PureXML for Dummies</a>. Ksiązka zawiera 75 stron. Jej autorem jest Conor O’Mahony który pracuje w IBM na stanowisku DB2 Product Marketing. Warto odwiedzić jego strone<br />
<a href="http://www.nativeXMLdatabase.com">www.nativeXMLdatabase.com</a></p>
<p>Spis treści:<br />
Introduction<br />
Rozdział 1: Solving a Storage Problem: DB2 pureXML<br />
Rozdział 2: Getting Started with DB2 pureXML<br />
Rozdział 3: Working with XML Data<br />
Rozdział 4: Retrieving XML Data from Your Database<br />
Rozdział 5: Working with XML Schemas<br />
Rozdział 6: Increasing Your Productivity and Application Performance<br />
Rozdział 7: Ten DB2 pureXML Resources You Won’t Want to Miss</p>
<p>Więcej o książce już wkrótce.</p>
<p>O PureXML można też poczytać w publikacja Redbooks <a href="http://www.redbooks.ibm.com/abstracts/sg247315.html">DB2 9 pureXML Guide</a> i <a href="http://www.redbooks.ibm.com/abstracts/sg247298.html?Open">DB2 9: pureXML Overview and Fast Start</a></p>
]]></content:encoded>
			<wfw:commentRss>http://db2.com.pl/index.php/121/db2-purexml-for-dummies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
