Datab zov syst my ii
This presentation is the property of its rightful owner.
Sponsored Links
1 / 53

Databázové systémy II PowerPoint PPT Presentation


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

Databázové systémy II. Přednáška č. 10 RNDr. David Žák, Ph.D . Fakulta elektrotechniky a informatiky david.zak @ upce.cz. Obsah. Zálohování dat Export dat Import dat Práce s XML dokumenty. Rizika. Hodnotu dat si uvědomíme teprve v okamžiku, kdy o ně přijdeme.

Download Presentation

Databázové systémy II

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


Datab zov syst my ii

Databázové systémy II

Přednáška č. 10

RNDr. David Žák, Ph.D.

Fakulta elektrotechniky a [email protected]


Obsah

Obsah

  • Zálohování dat

  • Export dat

  • Import dat

  • Práce s XML dokumenty

Databázové systémy II - př.10


Rizika

Rizika

Hodnotu dat si uvědomíme teprve v okamžiku, kdy o ně přijdeme.

Database Oracle 10g má nástroje na zotavení při poškození disku (v poškozených blocích) nebo při poškození transakčního žurnálu.

Databázové systémy II - př.10


Fyzick z lo n datab ze

Fyzická záložní databáze

Fyzická záložní databáze umožňuje umístění 2 databází v různých geografických lokalitách.

Aktualizace dat v produkčním systému se na záložním systému realizují prostřednictvím souborů transakčního žurnálu (na záložním systému se aplikují nad tzv. záložní (standby) databází).

Přenos souborů je realizován prostřednictvím síťových protokolů.

Databázové systémy II - př.10


Logick z lo n datab ze

Logická záložní databáze

Aktualizace dat se realizuje na úrovni logického SQL.

Část uživatelů může aktivně pracovat na produkčním systému, zatímco jiní uživatelé mohou vykonávat různé operace na záložním systému.

Záložní server může sloužit například pro dolování dat nebo analýzy. Při analytických operacích nevadí malé zpoždění vůči hlavní databázi na produkčním systému – příklad: pokud zkoumáme chování zákazníka za poslední měsíc, poslední hodina, o kterou je databáze zpožděna, nám vůbec nevadí.

Databázové systémy II - př.10


Aktualizace dat v z lo n datab zi

Aktualizace dat v záložní databázi

Synchronní aktualizace dat

- proces, který zapisuje data do produkční databáze, ve stejném čase zapíše také data do záložní databáze

Asynchronní aktualizace dat

- data se do záložní databáze zapíší s určitým zpožděním. Asynchronní aktualizace může být výhodná v tom případě, pokud selžou nějaké operace. Tento systém může ošetřit chyby od samotného uživatele.

Databázové systémy II - př.10


Zp soby z lohov n

Způsoby zálohování

Kompletní zálohování

- zálohují se všechna data a databázové struktury, které databáze obsahuje. Zálohovat můžeme na pevný disk, optický disk, pásku či síťový disk.

  • Obnova je jednoduchá (při dostatečně aktuální záloze)

  • Nevýhodou je zálohování velkého objemu dat, proto se tento způsob zálohování používá obvykle v delších časových intervalech

Databázové systémy II - př.10


Zp soby z lohov n1

Způsoby zálohování

Rozdílové/přírůstkové zálohování

  • ukládají se jen ty datové stránky, které byly změněny od poslední kompletní zálohy

  • Při obnově nejprve využijeme kompletní zálohu a potom aktualizujeme data na základě přírůstkových (rozdílových) záloh

  • Výhodou je menší objem dat a proto se používá k kratších časových intervalech

Databázové systémy II - př.10


Zp soby z lohov n2

Způsoby zálohování

Záloha transakčního žurnálu (protokolu)

  • Zálohován jen transakční žurnál, to znamená transakce provedené od poslední kompletní zálohy

Databázové systémy II - př.10


Offline z lohov n

Offline zálohování

Konzistentní offline zálohování se provádí, když byla databáze zastavena normálním způsobem.

Je možné provést zálohování:

  • Datových souborů

  • Řídících souborů

  • Online souborů protokolu

  • Souboru init.ora nebo souboru s parametry serveru (spfile)

    Zálohování všech těchto souborů poskytne kompletní obraz databáze v okamžiku jejího zastavení.

    Není korektní provádět zálohu databázových souborů při spuštěné a otevřené databázi kromě online zálohování (databáze běží v režimu ARCHIEVELOG).

Databázové systémy II - př.10


Online transak n urn l

Online transakční žurnál

Všechny změny provedené v databázi se ukládají do transakčního žurnálu.

Transakčních žurnálů je obvykle více, například 3, při zaplnění prvního se přejde na druhý, potom na třetí a tento proces se neustále cyklicky opakuje.

Pomocí transakčních žurnálů je možné zrekonstruovat databázi do stavu odpovídajícího určitému okamžiku.

Děje se tak automaticky na pozadí nebo na pokyn uživatele.

Databázové systémy II - př.10


Soubory protokolu redo log

Soubory protokolu (redo log)

Databázové systémy II - př.10


Online transak n urn l1

Online transakční žurnál

K dispozici jsou 2 režimy:

  • ARCHIVELOG – všechny změny databáze jsou trvale uloženy v archivovaném transakčním žurnálu, tento režim umožňuje zotavení nejen po selhání instance databázového serveru, ale také po selhání diskového media – tedy při poškození datových souborů

  • NOARCHIVELOG – pouze zotavení při selhání instance, zotavení bude provedené jen z aktivního transakčního žurnálu

  • Stav zjistíme dotazem ARCHIVE LOG LIST;

  • Start archivace ARCHIVE LOG START;

Databázové systémy II - př.10


Zastaven b hu instance

Zastavení běhu instance

Aby se mohl režim změnit, je třeba instanci restartovat (to není pro databázový server a jeho administrátora obvykle moc žádoucí, ale v tomto případě nevyhnutelné).

Proces zastavení může proběhnout ve 4 režimech

  • Normal – se zastavením se čeká na odpojení všech aktuálně připojených uživatelů

  • Immediate – v tomto režimu jsou před zastavením odvolány všechny aktivní transakce a následně odpojeni všichni uživatelé

  • Abort – v tomto režimu bude zastavení provedeno okamžitě a „bezohledně“

  • Transactional – všichni aktivní uživatelé budou odpojeni po ukončení svých transakcí a až poté dojde k zastavení

    Samotný průběh restartu může trvat dlouhou dobu.

Databázové systémy II - př.10


Online transak n urn l2

Online transakční žurnál

Obnova dat z transakčního žurnálu se může provést například příkazem

RECOVER DATABASE UNTIL TIME ‘2007-04-27 5:00’

Databázové systémy II - př.10


Pl nov n pravideln ho z lohov n

Plánování pravidelného zálohování

Můžeme využít některou z předdefinovaných strategií nebo vytvořit vlastní strategii zálohování.

Předdefinované strategie obsahují:

  • Přírůstková záloha 1x týdně (vhodná pro nepříliš aktualizované databáze)

  • Kompletní záloha každý den (vhodná pro transakční nepříliš velké databáze)

  • Kompletní záloha 1x týdně (vhodná pro velké a často aktualizované databáze)

    Dále můžeme vybrat den v týdnu a hodinu.

    Vytvořená úloha bude v seznamu aktivních úloh.

Databázové systémy II - př.10


Import a export dat

Import a export dat

Import a export dat používáme zejména pro výměnu dat

s jinými aplikacemi.

Mezi často používané formáty patří:

  • SQL - textové soubory s jednotlivými SQL příkazy (skripty)

  • Textové soubory, např.

    • s oddělovači sloupců a řádků (např. CSV Comma-separated values)

    • s pevnou šířkou sloupců

  • XML soubory

  • Soubory tabulkových procesorů (např. Excel – XLS)

Databázové systémy II - př.10


Import a export dat1

Import a export dat

SQL developer nabízí export dat do souborů

Databázové systémy II - př.10


Export dat z sql developeru

Export dat z SQL Developeru

Můžeme exportovat:

  • data z tabulky,

  • výsledky dotazu nebo

  • výstup reportu

    buď

  • do souboru nebo

  • do schránky Windows.

    Při exportu je možné definovat

  • omezující podmínky či

  • vybrat sloupce

Databázové systémy II - př.10


Export dat z sql developeru1

Export dat z SQL Developeru

Formát INSERT (SQL),tabulka Trpaslici

-- INSERTING into TRPASLICI

Insert into TRPASLICI (ID,JMENO,VYSKA,NAROZEN) values (1,'Stistko',110,1980);

Insert into TRPASLICI (ID,JMENO,VYSKA,NAROZEN) values (2,'Kychal',115,1983);

Insert into TRPASLICI (ID,JMENO,VYSKA,NAROZEN) values (3,'Profa',120,1999);

Insert into TRPASLICI (ID,JMENO,VYSKA,NAROZEN) values (4,'Rypal',112,2001);

Insert into TRPASLICI (ID,JMENO,VYSKA,NAROZEN) values (5,'Brucoun',109,1976);

Insert into TRPASLICI (ID,JMENO,VYSKA,NAROZEN) values (6,'Stydlin',117,1984);

Insert into TRPASLICI (ID,JMENO,VYSKA,NAROZEN) values (7,'Smudla',108,1993);

Databázové systémy II - př.10


Export dat z sql developeru2

Export dat z SQL Developeru

Formát TEXT,tabulka Trpaslici

"ID" "JMENO""VYSKA""NAROZEN"

"1""Stistko""110""1980"

"2""Kychal""115""1983"

"3""Profa""120""1999"

"4""Rypal""112""2001"

"5""Brucoun„"109""1976"

"6""Stydlin""117""1984"

"7""Smudla""108""1993"

Databázové systémy II - př.10


Export dat z sql developeru3

Export dat z SQL Developeru

Formát CSV,tabulka Trpaslici

"ID","JMENO","VYSKA","NAROZEN"

"1","Stistko","110","1980"

"2","Kychal","115","1983"

"3","Profa","120","1999"

"4","Rypal","112","2001"

"5","Brucoun","109","1976"

"6","Stydlin","117","1984"

"7","Smudla","108","1993"

Databázové systémy II - př.10


Export dat z sql developeru4

Export dat z SQL Developeru

Formát XML,tabulka Trpaslici

<?xml version='1.0' encoding='null' ?>

<results>

<row>

<ID><![CDATA[1]]></ID>

<JMENO><![CDATA[Stistko]]></JMENO>

<VYSKA><![CDATA[110]]></VYSKA>

<NAROZEN><![CDATA[1980]]></NAROZEN>

</row>

<row>

<ID><![CDATA[2]]></ID>

<JMENO><![CDATA[Kychal]]></JMENO>

<VYSKA><![CDATA[115]]></VYSKA>

<NAROZEN><![CDATA[1983]]></NAROZEN>

</row>

</results>

Databázové systémy II - př.10


Export dat z sql developeru5

Export dat z SQL Developeru

Formát XLS,tabulka Trpaslici

Databázové systémy II - př.10


Export dat z sql developeru6

Export dat z SQL Developeru

Formát LOADER,tabulka Trpaslici

LOAD DATA

INFILE *

Truncate

INTO TABLE "TRPASLICI"

FIELDS TERMINATED BY ','

TRAILING NULLCOLS

(ID, JMENO, VYSKA, NAROZEN)

begindata

"1","Stistko","110","1980"

"2","Kychal","115","1983"

"3","Profa","120","1999"

"4","Rypal","112","2001"

"5","Brucoun","109","1976"

"6","Stydlin","117","1984"

"7","Smudla","108","1993"

Databázové systémy II - př.10


Export dat z sql developeru7

Export dat z SQL Developeru

Formát HTML,tabulka Trpaslici

<html>

<body>

<table>

<th>ID</th>

<th>JMENO</th>

<th>VYSKA</th>

<th>NAROZEN</th>

<tr>

<td>1</td>

<td>Stistko</td>

<td>110</td>

<td>1980</td>

</tr>

<tr>

<td>2</td>

<td>Kychal</td>

<td>115</td>

<td>1983</td>

</tr>

</table>

</body>

</html>

Databázové systémy II - př.10


Import a export ddl

Import a export DDL

SQL Developer nabízí export SQL příkazů pro vytváření databázových objektů, v rámci jednoho typu objektů je možné označit více objektů (tabulek, procedur, …) a uložit DDL příkazy, které se vztahují k vytváření těchto objektů.

Databázové systémy II - př.10


Kompletn export sch matu v sql developeru

Kompletní export schématuv SQL Developeru

Volba Tools – Export DDL (and Data)

Umožňuje uložit DDL příkazy všech (nebo vybraných) databázových objektů v rámci schématu včetně uložených dat (pokud nebude nastaveno filtrování)

Výsledný soubor je typu sql (text s SQL příkazy).

Databázové systémy II - př.10


Export a import dat v oracle xe

Export a import dat v Oracle XE

Databázové systémy II - př.10


Export a import dat v oracle xe1

Export a import dat v Oracle XE

Databázové systémy II - př.10


Import dat v oracle xe

Import dat v Oracle XE

Databázové systémy II - př.10


Import dat v oracle xe1

Import dat v Oracle XE

Databázové systémy II - př.10


Migrace v sql developeru

Migrace v SQL Developeru

Migrace je proces převodu dat

  • z jiné platformy (SQL Developer nabízí kromě Oracle např. MySQL, MS SQL server či Access), využívá se tool Oracle Migration Workbench

    Migrace se může skládat

  • pouze z DDL příkazů

  • vlastních dat v tabulkách, …

    Migrace může být

  • Online (provede se právě teď)

  • Offline (prostřednictvím zálohy objektů a dat do souboru)

Databázové systémy II - př.10


Kop rov n objekt mezi sch maty i datab zemi oracle v sql developeru

Kopírování objektů mezi schématy či databázemi Oracle v SQL Developeru

Příklad migrace dat

  • ze schématu trpaslik na serveru asuei01.upceucebny.cz

  • do schématu pokus na notebooku (localhost)

    Tj. export vybraných tabulek a spuštění skriptu na localhostu, viz praktická ukázka.

    Ukázka nástroje Schema Diff (hledá odlišnosti v DDL).

Databázové systémy II - př.10


Export dat klasick formy

Export dat – klasické formy

Před prvním exportem nebo importem je nutné spustit skript CATALOG.SQL

Pro tento krok je nutné přihlásit se jako uživatel SYS.

Pro export je možné spustit utilitu exp z příkazové řádky operačního systému.

Další možností je využitím Enterprise Manager Console nebo WWW EM stránek.

Exportovat je možné

  • Databázi

  • Schéma daného uživatele

  • Vybrané tabulky a na ně navázané struktury

    Pro export je nezbytné mít práva (pověření pro příslušný uzel).

Databázové systémy II - př.10


Export dat

Export dat

Export může být

  • Jednorázový (nyní)

  • Jednorázový (odložený - plánovaný)

  • Opakovaný

Databázové systémy II - př.10


Export dat do flat soubor

Export dat do flat-souborů

Flat soubor - prostý textový soubor, kde data mohou (ale nemusí) být oddělena nějakým oddělovačem (čárka, mezera, tabulátor, …).

Například data načítaná do datových skladů pochází často z různých – nehomogenních zdrojů, například ze souborových či desktopových databází (MS Access, dBase) nebo data z databází libovolného databázového serveru (firem Oracle, IBM, Microsoft, Sybase, Interbase, Ingres, …)

Prosté soubory jsou tedy častým prostředkem pro přenos dat mezi těmito systémy, terminologicky často označované jako:

ETT (Extraction, Transformation & Transport) nebo

ETL (Extraction, Transformation & Loading)

Databázové systémy II - př.10


Export dat do flat soubor1

Export dat do flat-souborů

Pro správný zápis je třeba

SET heading off

SET feedback off

SET echo off

SET pagesize 0

SPOOL C:\pokus.dat

SELECT id || ‘,’ || ‘”’||jmeno||‘”’ FROM trpaslici;

SPOOL off

Taktouložené soubory jsou snadno stravitelné prakticky libovolnou databázovou platformou.

Databázové systémy II - př.10


Import dat z flat soubor

Import dat z flat-souborů

Pro import dat z externích datových zdrojů se používá utilita SQL*Loader.

Spouští se z operačního systému příkazem sqlldr

Je možné, aby řídící soubor obsahoval jak parametry importu, tak samotná data:

LOAD FILE INFILE *INTO TABLE trpaslici

FIELDS TERMINATED BY ‘,’

OPTIONALLY ENCLOSED BY ‘”’

(id, jmeno)

BEGINDATA

1, „Smudla“

2, …

Databázové systémy II - př.10


Import dat z flat soubor1

Import dat z flat-souborů

Poznámky:

  • tabulka, do níž importujeme, musí být předem vytvořena

  • Příklad volání utility

    Sqlldr USERID=scott/tiger

    CONTROL=c:\filename.ctl

    LOG=c:\filename.log

Databázové systémy II - př.10


Extern tabulky

Externí tabulky

  • Umožňují použít příkaz SELECT na soubory s daty

  • oddělenými čárkami,

  • poziční soubory s pevnou šířkou

  • Nelze upravovat, je jen možné se na ně dotazovat.

  • Nemohou být indexovány, neboť pro řádky neexistují žádné hodnoty ROWID.

  • Vhodné pro načítání a slučování dat – tedy nikoli jako náhrada tabulek.

Databázové systémy II - př.10


Extern tabulky1

Externí tabulky

Závisí na nastavení objektu DIRECTORY databáze Oracle

CREATE OR REPLACE DIRECTORY ext_dir as ‘/tmp/’;

A práv uživatele k tomuto adresáři

GRANT read, write on directory ext_dir to username;

Soubory musí být na databázovém serveru, vlastní databázové procesy musí být schopny soubor zjistit, otevřít a přečíst. To lze řešit i připojením/mapováním disků.

Databázové systémy II - př.10


Extern tabulky s odd lova em

Externí tabulky s oddělovačem

  • Vytvoření tabulky

    • create table ext_table_csv

    • ( i Number,

    • n Varchar2(20),

    • m Varchar2(20))

    • organization external (

    • type oracle_loader

    • default directory ext_dir

    • access parameters (

    • records delimited by newline

    • fields terminated by ','

    • missing field values are null)

    • location ('file.csv') )

    • reject limit unlimited;

Databázové systémy II - př.10


Extern tabulky s pevnou kou sloupc

Externí tabulky s pevnou šířkou sloupců

  • Vytvoření tabulky

    • create table ext_table_fixed

    • ( field_1 char(4),

    • field_2 char(30))

    • organization external

    • ( type oracle_loader

    • default directory ext_dir

    • access parameters (

    • records delimited by newline

    • fields (

    • field_1 position(1: 4) char( 4),

    • field_2 position(5:30) char(30)))

    • location ('file')

    • )

    • reject limit unlimited;

Databázové systémy II - př.10


Oracle a xml

Oracle a XML

Současné IT prostředí je heterogenní, stále více se prosazuje XML jako univerzální formát pro výměnu dat, proto je i Oraclem masivně podporován.

Oracle sází na kombinaci SQL + XML + Java

Oracle umožňuje:

  • vygenerovat výstup z dtb. tabulky či dotazu do XML

  • definovat datový typ XML

  • provádět XML operace nad daty v relačních databázích

  • provádět SQL operace nad daty v XML dokumentech

Databázové systémy II - př.10


Xml reposit

XML repositář

XML dokumenty jsou uloženy v XML repositářích, které umožňují přístup k těmto dokumentům prostřednictvím protokolů HTTP, FPT a WebDAV (standard umožňující číst a měnit datové elementy databáze podobně jako složky a soubory souborového systému)

Součástí repositáře je i správa přístupových oprávnění, správa složek, SQL vyhledávání v XML repositáři, API pro práci s XML repositářem a manipulace s objekty pomocí Java servletu.

Databázové systémy II - př.10


V pis tabulky ve form tu xml

Výpis tabulky ve formátu XML

Funkce

SYS_XMLGEN – vygeneruje několik XML dokumentů dle počtu řádků ve výsledku dotazu

SYS_XMLAGG – vygeneruje jediný dokument

Příklad:

select SYS_XMLGEN(JMENO) from TRPASLICI;

<?xml version="1.0"?>

<JMENO>Stistko</JMENO>

Databázové systémy II - př.10


V pis tabulky ve form tu xml1

Výpis tabulky ve formátu XML

Funkce

XMLelement – výpis pomocí elemetů

XMLatributes – výpis jednotlivých atributů

XMLforest – výpis atributů pomocí samostatných elementů

Příklady:

select xmlelement("trpaslik",xmlattributes(jmeno, narozen as "rok"))

from TRPASLICI;

<trpaslik JMENO="Stistko" rok="1980"></trpaslik>

select xmlelement("trpaslik",xmlforest (jmeno, narozen as "rok"))

from TRPASLICI;

<trpaslik><JMENO>Stistko</JMENO><rok>1980</rok></trpaslik>

Databázové systémy II - př.10


Datov typ sys xmltype

Datový typ SYS.XMLType

Příklad

CREATE TABLE XML_table

(zaznam SYS.XMLType);

Pomocí funkce SYS.XMLType.createxml(řetězec) můžeme konvertovat textový řetězec na typ SYS.XMLType

Příklad použití

INSERT INTO XML_table VALUES

(SYS.XMLType.createxml(řetězec obsahující XML dokument));

Databázové systémy II - př.10


Technologie xquery

Technologie XQuery

Jazyk XQuery je nově přijatý standard standardizační organizací W3C.

Jazyk XQuery používá množinu příkazů FLOWR (akronym složený z hlavních příkazů FOR, LET, WHERE, ORDER BY, RETURN)

FOR – umožňuje iteraci přes sourozenecké uzly (analogie FROM v SQL)

LET – znamená přiřazení

WHERE – filtrovací kritérium

ORDER BY – řazení

RETURN - určuje návratový dokument formátovaný dle našich požadavků

Technologie XQuery může být použita jak nad XML dokumenty, tak i pro relační tabulky. Tato technologie je také vhodná i pro vytváření XML dokumentů v repositáři.

Databázové systémy II - př.10


Bal ek dbms xmlgen

Balíček DBMS_XMLGEN

Příklad použití v SQL dotazu:

SELECT DBMS_XMLGEN.getXML('SELECT * FROM emp') FROM dual;

Výsledek dotazu:

<?xml version="1.0"?>

<ROWSET>

<ROW>

<EMPNO>7369</EMPNO>

<ENAME>SMITH</ENAME>

<JOB>CLERK</JOB>

<MGR>7902</MGR>

<HIREDATE>17-DEC-1980 00:00:00</HIREDATE>

<SAL>800</SAL>

<DEPTNO>20</DEPTNO>

</ROW>

...

</ROWSET>

Databázové systémy II - př.10


Bal ek dbms xmlgen1

Balíček DBMS_XMLGEN

Příklad použití v kodu PL/SQL:

DECLARE

ctx DBMS_XMLGEN.ctxHandle;

xml CLOB;

BEGIN

ctx := dbms_xmlgen.newcontext('select * from emp');

dbms_xmlgen.setrowtag(ctx, 'MY-ROW-START-HERE');

xml := dbms_xmlgen.getxml(ctx);

dbms_output.put_line(substr(xml,1,255));

END;

/

Databázové systémy II - př.10


Ot zky

Otázky

Děkuji za pozornost.

Databázové systémy II - př.10


  • Login