Zborník vedeckých prác doktorandov a mladých vedeckých pracovníkov “Mladí vedci 2010“
MIGRACE A OPTIMALIZACE DAT RELAČNÍCH DATABÁZÍ ZA NEURČITOSTI DATA MIGRATION AND OPTIMIZATION OF RELATIONAL DATABASES WITH UNCERTAINTY Bogdan Walek Katedra informatiky a počítačů, Přírodovědecká fakulta Ostravské univerzity v Ostravě, 30. dubna 22, 701 03 Ostrava, Česká republika,
[email protected] Abstract The content of this article is to analyze the current state of data migration between different types of database management systems and data optimization during migration. Article focuses on the migration of database tables and their data, and to identify possible indefinite informations, which may occur during the migration of data between different types of database management systems. Article contains proposed model for described area and experimental results from tests on sample data executed in LFLC. Keywords: data migration, relational database, fuzzy, database optimization, database management system, LFLC 1 Úvod Migrace dat obecně je proces přenosu dat mezi různými typy médií pro ukládání dat, formáty nebo počítačovými systémy. Migrace dat se obvykle provádí co nejvíce automatizovaně tak, aby v ní bylo zapojeno co nejméně lidských zdrojů. Toto je nutné v případě, kdy organizace mění počítačové systémy nebo provádí upgrade na nové systémy, případně jejich sloučení. Obecný postup pro účinnou migraci dat je následující (Anderson, 2008): 1. Analýza struktury dat ve zdrojovém (stávajícím) systému – v tomto kroku je důležité pochopit, jak stávající systém funguje, pro co je používán, kdo ho používá a jak jsou v něm data uložena, pomocí pro tuto činnost může být dokumentace systému 2. Analýza struktury dat v cílovém (novém) systému – podobně jako v prvním kroku 3. Mapování mezi zdrojovou a cílovou strukturou – jedná se jasné vymezení a identifikaci vztahů mezi strukturami systémů, tak aby jejich data bylo možné migrovat, tento krok může zahrnovat také konverzi nebo transformaci dat 4. Definice procesu migrace dat – je potřeba definovat celý proces migrace dat a jeho jednotlivé kroky, proces migrace dat může být automatizovaný nebo manuální, proces může vypadat například takto: • Extrahuj data ze zdrojového systému • Uprav nebo transformuj extrahovaná data podle pokynů mapování • Importuj data do cílového systému
829
Zborník vedeckých prác doktorandov a mladých vedeckých pracovníkov “Mladí vedci 2010“
• Ověř, zda data cílového systému se shodují s daty zdrojového systému, případně popiš jejich rozdíly 5. Provedení samotné migrace 2 Analýza současného stavu Základní motivací migrace dat mezi různými druhy databází je nutnost řešit problém přechodu z jednoho systému řízení báze dat (dále SŘBD) do jiného. Data v různých SŘBD jsou navzájem heterogenní, tzn. že se navzájem liší především množinou datových typů, které podporují, podporou uživatelských typů, syntaxí jednotlivých SQL příkazů pro manipulaci se schématem a daty dané databáze. Proto je potřeba data mezi různými SŘBD, které se navzájem liší převádět (migrovat) pomoci speciálních nástrojů. V současné době existuje celá řada nástrojů, které slouží k migraci dat mezi různými druhy systému řízení báze dat (dále SŘBD). Tyto nástroje jsou omezené na okruh několika SŘBD, které podporují a umožňují migraci dat v rámci okruhu podporovaných SŘBD. Většina těchto nástrojů umožňuje migraci databázových tabulek, což je oblast, která bude hlavní pro navrhovaný nástroj pro migraci dat. V samotné migraci databázových tabulek jsou nejproblémovější oblastí sloupce tabulky, respektive jejich datové typy, protože různé SŘBD mají různé pojmenování a vlastnosti pro datové typy daného typu dat. Příkladem může být datový typ pro uložení dlouhého textu v databázové tabulce – existuje hned několik různých názvů pro tento datový typ a každý SŘBD používá pro označení takového sloupce jiné pojmenování a velikost datového typu. Migrace těchto datových typů je v již vytvořených nástrojích řešena na základě zpracování znalostní báze o příslušných relačních databázích, které vstupují do migrace a jejich výstupem jsou jasně a jednoznačně definované databázové tabulky, které obsahují sloupce s datovými typy podporovanými konkrétním druhem relační databáze, do které jsou data migrovány (Walek, 2010). Takovéto databázové tabulky jsou vždy vytvořeny jednoznačně a nezohledňují skutečnou velikost dat, které se těchto migrovaných tabulkách vyskytují. Například pokud jsou v daném sloupci tabulky, jehož datový typ je definován jako dlouhý text pouze data, jejichž délka nepřesahuje 20 znaků, pak nástroje toto nezohlední, ale výsledný datový typ sloupce tabulky, která je migrována bude znovu dlouhý text. Dalším problémem je exaktnost migrace, která jasně a jednoznačně migruje sloupce a jejich datové typy z jednoho SŘBD do druhého bez možnosti ovlivnění nebo výběru jaký datový typ bude sloupci přiřazen (Walek, 2010). 3 Problémová doména Navrhovaný nástroj bude zpracovávat znalostní bázi daných relačních databází za neurčitosti a výstupem pro každý sloupec bude vždy soubor několika vhodných kandidátů na výsledný datový typ. Tento výstup bude zohledňovat skutečnou velikost dat v daném sloupci a soubor vhodných kandidátů zvolí na základě znalostní báze a optimalizace těchto dat, taky aby v SŘBD, do kterého jsou data migrovány byl vytvořen sloupec, který bude optimální a co nejvhodnější pro tyto data ve sloupci (Walek, 2010). Optimalizací dat je v tomto případě míněno zjištění skutečné velikosti dat v daném sloupci databázové tabulky pomoci dolování dat a na základě těchto informací navržení nového, vhodnějšího datového typu (např. datový typ reprezentující krátký text místo datového typu dlouhý text nebo změna datového typu z krátkého textu na celé číslo, pokud daný sloupec obsahuje jako data pouze celá čísla), pokud to má pro daný sloupec význam. Takovýto výstup také umožní uživateli vybrat vhodný datový typ sloupce na základě této optimalizace, skutečné velikosti dat a expertní znalosti uživatele, který data migruje. Neurčitostí v tomto nástroji je právě skutečnost souboru vhodných kandidátů na výsledný datový typ, protože výsledný datový typ není určen jednoznačně, ale právě souborem 830
Zborník vedeckých prác doktorandov a mladých vedeckých pracovníkov “Mladí vedci 2010“
možných vhodných datových typů, přičemž až uživatel zvolí jeden konkrétní výsledný datový typ (Walek, 2010). Příkladem může být migrace dat ze sloupce popis, jehož datový typ je textový MEDIUMTEXT. Skutečná délka dat v tomto sloupci nikdy nepřekročí 50 znaků. To znamená, že výsledný datový typ nového sloupce nemusí být typu dlouhý text, ale pouze např. krátký text. Po této optimalizaci nástroj uživateli nabídne tyto datové typy na výběr: VARCHAR(50), SMALLTEXT, LONGTEXT, přičemž preferovaná je první varianta. 4 Model pro fuzzy systém Pro fuzzy systém, který bude řešit migraci dat (především databázových tabulek a jejich dat) mezi různými SŘBD je potřeba objasnit následující pojmy (Walek, 2010): 1
zdrojový SŘBD – SŘBD, ze kterého jsou data migrovány
2
cílový SŘBD – SŘBD, do kterého jsou data migrovány
3
zdrojový datový typ – datový typ sloupce databázové tabulky zdrojového SŘBD
4
cílový datový typ - datový typ daného sloupce databázové tabulky cílového SŘBD
5
délka datového typu – např. pro datový typ VARCHAR to může být 255 – znamená, že do sloupce databázové tabulky určeného tímto datovým typem je možné vložit řetězec o maximální délce 255 znaků
Pro migraci dat je možné použít fuzzy systém navržený na základě obecného modelu (Klimeš, 2008):
Obr. 1 Model pro fuzzy systém (Vlastní, 2010) Vstupy do procesu (datový typ daného sloupce konkrétní databázové tabulky zdrojového SŘBD) Výstupy procesu (seznam vhodných kandidátů na datový typ daného sloupce konkrétní databázové tabulky cílového SŘBD)
831
Zborník vedeckých prác doktorandov a mladých vedeckých pracovníkov “Mladí vedci 2010“
M1 – proces zúplnění a výběru relevantních dat (zahrnuje dolování dat z daného sloupce ve zdrojovém SŘBD a získání skutečné velikosti a typu dat, které se ve sloupci nacházejí) Dále následuje vytvoření množiny přípustných řešení (v tomto případě výběr všech přípustných kandidátů na cílový datový typ) na základě aplikace vhodných pravidel P (v tomto případě pravidel, které na základě zdrojového datového typu, jeho délky a typu cílového SŘBD, které ohodnotí vhodnost nebo nevhodnost daného cílového datového typu pro jeho zařazení do dalšího kroku v modelu.) M2 – vytvoření množiny přípustných řešení na základě pravidel a významných informací potřebných k řešení (tj. obohacení vstupní informace o výsledek interference, vyřazení nepřípustných dat) V dalším kroku následuje ohodnocení relevantnosti a míry vhodnosti navržených kandidátů na cílový datový typ na základě informací o zdrojovém datovém typu. M3 – proces modelace efektů dostupných řešení Výběr konkrétního cílového datového typu ze seznamu ohodnocených vhodných kandidátů je pak již úkolem správce databáze nebo uživatele, který data migruje. M4 – výběr nejvhodnějšího řešení Proces M1 je již součástí pořizování vstupních dat (tj. ohodnocení kvality a relevantnosti dat), výstupem celého systému je poté množina všech možných řešení. Pravidla pro fuzzy systém budou zapsány ve formě převedení zdrojového datového typu do cílového datového typu. Problémem je zvolit vhodný cílový datový typ, který funkčně a typově odpovídá zdrojovému datovému typu a je hlavně podporován cílovým SŘBD. Tento problém bude řešen pravidly, jejichž aplikace bude vytvářet soubor vhodných kandidátů pro cílový datový typ. Rozhodování bude probíhat na základě pojmenování zdrojového datového typu, jeho délky a typu cílového SŘBD (Walek, 2010). 1. Varianty výsledků – datový typ daného SŘBD: •
INT
•
NUMBER
•
VARCHAR
•
TEXT
2. Rozhodování podle: • zdrojový datový typ (INTEGER, FLOAT, VARCHAR) • délky zdrojového datového typu (např. VARCHAR(255), INT(8)) – rozhodování podle množiny datových typů, např. pro alias STR, kde patří např. VARCHAR, CHAR, TEXT, LONGTEXT atd. nabývá DELKA1[STR] hodnot 0-64000, pro množinu čísel NUM (INT, INTEGER, TINYINT, NUMBER) nabývá DELKA1[NUM] hodnot – 0-20 • typu cílového SŘBD(ORACLE, MSSQL, MYSQL, POSTGRESQL) 3. Vstupní jazykové proměnné • Zdrojový datový typ TYP1 • Délka zdrojového datového typu DELKA1 • Typ cílového SŘBD DB_M 4. Výstupní jazykové proměnné a jejich jazykové hodnoty 832
Zborník vedeckých prác doktorandov a mladých vedeckých pracovníkov “Mladí vedci 2010“
Cílový datový typ v cílové SŘBD TYP2 • INTEGER • FLOAT • VARCHAR 5. Stanovení pravidel báze znalostí R1: IF (TYP1 is INTEGER) and (DELKA1 is MALA[NUM]) and (DB_M is MYSQL) THEN (TYP2 is TINYINT) R2: IF (TYP1 is INTEGER) and (DELKA1 is STREDNI[NUM]) and (DB_M is MYSQL) THEN (TYP2 is INTEGER) R3: IF (TYP1 is LONG) and (DELKA1 is STREDNI[STR]) and (DB_M is MYSQL) THEN (TYP2 is MEDIUMTEXT) R4: IF (TYP1 is LONG) and (DELKA1 is VELKA[STR]) and (DB_M is MYSQL) THEN (TYP2 is LONGTEXT) 5 SW nástroj pro pilotní ověření modelu Linguistic Fuzzy Logic Controller (LFLC) 2000 je specializovaný software, jenž je založen na teorii fuzzy množin a fuzzy logice a umožňuje odvozovat závěry na základě nepřesného popisu určité situace pomocí jazykově formulovaných IF- THEN pravidel. Hlavním úkolem tohoto nástroje je návrh a testování znalostní báze složené z množiny IF-THEN pravidel (Habiballa, 2003). Našim cílem je použít tento nástroj pro tvorbu tzv. hierarchické znalostní báze, která se skládá z několika znalostních bází, z nichž každá vstupuje do interferenčního mechanismu a dohromady výsledky z těchto bází tvoří konečný výstup. Princip hierarchické báze je zobrazen na tomto obrázku:
Obr. 2 Hierarchická znalostní báze nástroje LFLC (Vlastní, 2010) 833
Zborník vedeckých prác doktorandov a mladých vedeckých pracovníkov “Mladí vedci 2010“
Hierarchická znalostní báze nástroje LFLC je plně využitelná pro ověření modelu implementovaného v naší oblasti. 5.1 Výstupy pilotního ověření modelu Vstupní jazykové proměnné: • Datový typ (zdrojový a cílový – TYP1 and TYP2) Prvek z množiny {INTEGER, FLOAT, VARCHAR, …} • Delká zdrojového datového typu (DELKA1) Např. pro číselné datové typy{INT, INTEGER, TINYINT, NUMBER} může délka zdrojového datového typu nabývat hodnot z intervalu (0-20> • Typ cílového SŘBD DB_M Prvek z množiny SŘBD {ORACLE, MSSQL, MYSQL, POSTGRESQL} Výstupní jazykové proměnné: • Cílový datový typ v cílové SŘBD {INTEGER, FLOAT, VARCHAR, …} Příklad několika pravidel ze znalostní báze: IF (TYP1 is INTEGER) and (DELKA1 is SMALL) and (DB_M is MYSQL) THEN (TYP2 is TINYINT) IF (TYP1 is INTEGER) and (DELKA1 is MEDIUM) and (DB_M is MYSQL) THEN (TYP2 is INTEGER) IF (TYP1 is LONG) and (DELKA1 is MEDIUM) and (DB_M is MYSQL) THEN (TYP2 is MEDIUMTEXT) IF (TYP1 is LONG) and (DELKA1 is BIG) and (DB_M is MYSQL) THEN (TYP2 is LONGTEXT) Příklad: V následujícím příkladě migrace textových datových typů sloupců konkrétních databázových tabulek máme zdrojový SŘBD Oracle, zdrojové datové typy jsou VARCHAR2, BLOB a NCLOB. Cílový SŘBD je MySQL, délka datových typů je proměnná a je uložená ve vstupním souboru a množina vhodných kandidátů na cílový datový typ je: CHAR, VARCHAR, TINYTEXT, TEXT (Bartoš, 2010). Tab. 1 Vstupní a výstupní soubor (Vlastní, 2010)
Vstupní soubor
Výstupní soubor
834
Zborník vedeckých prác doktorandov a mladých vedeckých pracovníkov “Mladí vedci 2010“
Poté aplikujeme pravidla znalostních bází pomocí hierarchické znalostní báze a výsledkem je takovýto výstup: Tab. 2 Výstupy pilotního ověření modelu (Vlastní, 2010)
TYP1
DELKA1
CHAR
VARCHAR
TINYTEXT
TEXT
VARCHAR2 100
0,93
0,98
0,93
0,02
VARCHAR2 200
0,87
0,79
0,87
0,05
VARCHAR2 255
0,93
0,89
0,93
0,06
BLOB
2000
0,01
0,01
0,01
0,31
NCLOB
1500
0,07
0,07
0,07
0,42
Z výstupu Tab. 2 můžeme vyvodit, že pokud zdrojový datový typ je VARCHAR2 a délka tohoto datového typu je malá, pak nabídneme cílové datové typy v takovém pořadí: VARCHAR, TINYTEXT, CHAR, TEXT, přičemž nejvíce preferovaný datový typ je VARCHAR, protože datový typ VARCHAR v SŘBD MySQL je používán pro uložení řetězců o male délce a je velmi podobný datovému typu VARCHAR2. Na druhé straně pokud zdrojový datový typ je BLOB a délka tohoto datového typu je malá, pak nabídneme cílové datové typy v takovém pořadí: TEXT, CHAR, VARCHAR, TINYTEXT, přičemž nejvíce preferovaný datový typ je TEXT, protože datový typ TEXT je v SŘBD MySQL používán pro uložení řetězců o střední délce (Bartoš, 2010). 6 Závěr Obecný model pro zpracování informací zatížených neurčitostí, který je použit v tomto článku se jeví jako použitelný v různých oblastech, tedy i v oblasti migrace a optimalizace dat mezi různými druhy relačních databázi. Tento model byl ověřen v praxi pomocí nástroje LFLC a výstupy z pilotního ověření modelu jsou v tomto příspěvku popsány. 7 Literatura ANDERSON, E.; HALL, J.; HARTLINE, J.; HOBBES, M.; KARLIN, A.; SAIA, J.; SWAMINATHAN R.; WILKES, J. Algorithms for data migration. Springer Science+Business Media, LLC 2008, s. 2-3. BARTOŠ, J.; PROCHÁZKA, J.; KLIMEŠ, C.; WALEK, B.; PEŠL, M. Fuzzy reasoning model for decision making under uncertainty. 16th International Conference on Soft Computing Mendel 2010, Brno, 2010, s 203-209. HABIBALLA, H.; NOVÁK V.; DVOŘÁK, A.; PAVLISKA, V. Using software pockage LFLC 2000. Proc. 2nd International Conference Aplimat 2003, Bratislava, 2003, s. 355358. KLIMEŠ, C. Model systému na podporu rozhodování za neurčitostí. ISKI 2008 – Vedeckovýskumná činnosť v oblasti využívania IKT. Nitra: Katedra Informatiky FPV UKF Nitra 2008, Dostupné na: http://www.ki.fpv.ukf.sk/projekty/kega_3_4029_06/iski2008/page/papers.htm WALEK, B. Migrace dat a optimalizace databází za neurčitosti. Studentská vědecká konference 2010, Ostrava, 2010, s. 234-237. Recenzent: doc. Ing. Cyril e-mail:
[email protected]
Klimeš,
CSc.,
835
Ostravská
univerzita
v
Ostravě,