Organizace dat Historie skladování dat V minulosti byla data ukládána v jednom velkém souboru, ke kterému se přistupovalo indexovanými sekvenčními metodami. Soubor byl indexován na základě předpokládaných způsobů dotazování. Velkou nevýhodou bylo to, že se informace v záznamech opakovaly a typy dotazů byly předurčeny. 2 datum jmeno prijmeni adresa_ulice adresa_mesto cislo_uctu platba zustatek 980103 Jan Novak Dlouha 5 Praha 1 9945371 100,00 100,00 980105 Jan Novak Dlouha 5 Praha 1 9945371 1500,00 1600,00 980106 Jan Novak Dlouha 5 Praha 1 9945371 -1500,00 50,00 980106 Karel Nemec Lucni 4 Praha 2 24867134 3000,00 6000,00 980107 Karel Nemec Lucni 4 Praha 2 24867134 -4000,00 2000,00 980108 Jan Novak Dlouha 5 Praha 1 9945371 -150,00 -100,00 980111 Karel Nemec Lucni 4 Praha 2 24867134 5000,00 7000,00 3 Historie skladování dat 4 id_klient jmeno prijmeni adresa_ulice adresa_mesto ... id_transakce id_ucet datum platba zustatek ... klient transakce id_ucet id_klient ... ucet SELECT klient.jmeno, klient.prijmeni, klient.adresa_ulice, klient.adresa_mesto, ucet.cislo_uctu, transakce.zustatek FROM klient, ucet, transakce WHERE klient.id_klient = ucet.id_klient; AND transakce.id_ucet = ucet.id_ucet; AND transakce.zustatek < 100; GROUP BY klient.adresa_mesto; Relační databáze Relační databáze z Relační databáze je databáze založená na relačním modelu. Často se tímto pojmem označuje nejen databáze samotná, ale i její konkrétní softwarové řešení. z Relační databáze je založena na tabulkách, jejichž řádky obvykle chápeme jako záznamy a eventuelně některé sloupce v nich (tzv. cizí klíče) chápeme tak, že uchovávají informace o relacích mezi jednotlivými záznamy v matematickém slova smyslu. z Termín relační databáze definoval Edgar F. Codd v roce 1970. z způsoby kladení dotazů: QBE (query by example) SQL (structured query language) 5 Relační databáze z Dle relační teorie lze pomocí základních operací (sjednocení, kartézský součin, rozdíl, selekce, projekce a spojení) uskutečnit veškeré operace s daty a ostatní operace jsou již jen kombinacemi těchto pěti. 6 Relační databáze z Základem relačních databází jsou databázové tabulky. Jejich sloupce se nazývají atributy nebo pole, řádky tabulky jsou pak záznamy. Atributy mají určen svůj konkrétní datový typ - doménu. Řádek je řezem přes sloupce tabulky a slouží k vlastnímu uložení dat. Konkrétní tabulka pak realizuje podmnožinu kartézského součinu možných dat všech sloupců - relaci. z Primární klíč y Primární klíč je jednoznačný identifikátor záznamu, řádku tabulky. Primárním klíčem může být jediný sloupec či kombinace více sloupců tak, aby byla zaručena jeho jednoznačnost. Pole klíče musí obsahovat hodnotu, tzn. nesmí se zde vyskytovat nedefinovaná prázdná hodnota NULL. V praxi se dnes často používají umělé klíče, což jsou číselné či písmenné identifikátory - každý nový záznam dostává identifikátor odlišný od identifikátorů všech předchozích záznamů (požadavek na unikátnost klíče), obvykle se jedná o celočíselné řady a každý nový záznam dostává číslo vždy o jednotku vyšší (zpravidla zcela automatizovaně) než je číslo u posledního vloženého záznamu (číselné označení záznamů s časem stoupá). z Cizí klíč y Dalším důležitým pojmem jsou nevlastní/cizí klíče. Slouží pro vyjádření vztahů, relací, mezi databázovými tabulkami. Jedná se o pole či skupinu polí, která nám umožní identifikovat, které záznamy z různých tabulek spolu navzájem souvisí. 7 Relační databáze ­ vztahy mezi tabulkami z Vztahy, neboli relace, slouží ke svázání dat, která spolu souvisejí a jsou umístěny v různých databázových tabulkách. V zásadě rozlišujeme čtyři typy vztahů. mezi daty v tabulkách není žádná spojitost, proto nedefinujeme žádný vztah. 1:1 používáme, pokud záznamu odpovídá právě jeden záznam v jiné databázové tabulce a naopak. Takovýto vztah je používán pouze ojediněle, protože většinou není pádný důvod, proč takovéto záznamy neumístit do jedné databázové tabulky. Jedno z mála využití je zpřehlednění rozsáhlých tabulek. Jako ilustraci je možné použít vztah řidič - automobil. V jednu chvíli (diskrétní časový okamžik) řídí jedno auto právě jeden řidič a zároveň jedno auto je řízeno právě jedním řidičem. 8 Relační databáze ­ vztahy mezi tabulkami 1:N přiřazuje jednomu záznamu více záznamů z jiné tabulky. Jedná se o nejpoužívanější typ relace, jelikož odpovídá mnoha situacím v reálném životě. Jako reálný příklad může posloužit vztah autobus - cestující. V jednu chvíli cestující jede právě jedním autobusem a v jednom autobuse může zároveň cestovat více cestujících. M:N je méně častým. Umožňuje několika záznamům z jedné tabulky přiřadit několik záznamů z tabulky druhé. V databázové praxi bývá tento vztah z praktických důvodů nejčastěji realizován kombinací dvou vztahů 1:N a 1:M, které ukazují do pomocné tabulky složené z kombinace obou použitých klíčů (třetí resp. tzv. vazební tabulka). Příkladem z reálného života by mohl být vztah výrobek - vlastnost. Výrobek může mít více vlastností a jednu vlastnost může mít více výrobků. V reálném životě nicméně existuje velké množství vztahů M : N, mimo jiné také proto, že často existuje praktická potřeba zachovávat i údaje o historii těchto vztahů z časového hlediska (jeden řidič v delším časovém období řídí více rozličných aut a jedno auto v delším časovém období může mít více různých řidičů). 9 SlovnSlovníík pojmk pojmůů q ODS Operational Data Store q DWH DataWareHouse q DataMart q Meta Data q BI Business Intelligence q OLAP On Line Analytical Processing q OLTP On Line Transaction Processing q ETL Extract, Transform, Load q ELT Extract, Load, Transform q EAI Enterprise Application Integration q ERP Enterprise Resource Planning SlovnSlovníík pojmk pojmůů ODS: Short for operational data store, a type of database that serves as an interim area for a data warehouse in order to store time-sensitive operational data that can be accessed quickly and efficiently. In contrast to a data warehouse, which contains large amounts of static data, an ODS contains small amounts of information that is updated through the course of business transactions. An ODS will perform numerous quick and simple queries on small amounts of data, such as acquiring an account balance or finding the status of a customer order, whereas a data warehouse will perform complex queries on large amounts of data. An ODS contains only current operational data while a data warehouse contains both current and historical data. DWH: Abbreviated DW, a collection of data designed to support management decision making. Data warehouses contain a wide variety of data that present a coherent picture of business conditions at a single point in time. Development of a data warehouse includes development of systems to extract data from operating systems plus installation of a warehouse database system that provides managers flexible access to the data. The term data warehousing generally refers to the combination of many different databases across an entire enterprise. Contrast with data mart. DataMart: A database, or collection of databases, designed to help managers make strategic decisions about their business. Whereas a data warehouse combines databases across an entire enterprise, data marts are usually smaller and focus on a particular subject or department. Some data marts, called dependent data marts, are subsets of larger data warehouses. BI: Most companies collect a large amount of data from their business operations. To keep track of that information, a business and would need to use a wide range of software programs , such as Excel, Access and different database applications for various departments throughout their organization. Using multiple software programs makes it difficult to retrieve information in a timely manner and to perform analysis of the data. The term Business Intelligence (BI) represents the tools and systems that play a key role in the strategic planning process of the corporation. These systems allow a company to gather, store, access and analyze corporate data to aid in decision-making. Generally these systems will illustrate business intelligence in the areas of customer profiling, customer support, market research, market segmentation, product profitability, statistical analysis, and inventory and distribution analysis to name a few. Meta Data: Data about data. Metadata describes how and when and by whom a particular set of data was collected, and how the data is formatted. Metadata is essential for understanding information stored in data warehouses and has become increasingly important in XML-based Web applications. SlovnSlovníík pojmk pojmůů ETL: Short for extract, transform, load, three database functions that are combined into one tool to pull data out of one database and place it into another database. Extract -- the process of reading data from a database. Transform -- the process of converting the extracted data from its previous form into the form it needs to be in so that it can be placed into another database. Transformation occurs by using rules or lookup tables or by combining the data with other data. Load -- the process of writing the data into the target database. ETL is used to migrate data from one database to another, to form data marts and data warehouses and also to convert databases from one format or type to another. EAI: Acronym for enterprise application integration. EAI is the unrestricted sharing of data and business processes throughout the networked applications or data sources in an organization. Early software programs in areas such as inventory control, human resources, sales automation and database management were designed to run independently, with no interaction between the systems. They were custom built in the technology of the day for a specific need being addressed and were often proprietary systems. As enterprises grow and recognize the need for their information and applications to have the ability to be transferred across and shared between systems, companies are investing in EAI in order to streamline processes and keep all the elements of the enterprise interconnected. OLAP: Short for Online Analytical Processing, a category of software tools that provides analysis of data stored in a database. OLAP tools enable users to analyze different dimensions of multidimensional data. For example, it provides time series and trend analysis views. OLAP often is used in data mining. The chief component of OLAP is the OLAP server, which sits between a client and a database management systems (DBMS). The OLAP server understands how data is organized in the database and has special functions for analyzing the data. There are OLAP servers available for nearly all the major database systems. OLTP: Short for On-Line Transaction Processing. Same as transaction processing. Transaction processing: A type of computer processing in which the computer responds immediately to user requests. Each request is considered to be a transaction. Automatic teller machines for banks are an example of transaction processing. The opposite of transaction processing is batch processing, in which a batch of requests is stored and then executed all at one time. Transaction processing requires interaction with a user, whereas batch processing can take place without a user being present. ERP: Short for enterprise resource planning, a business management system that integrates all facets of the business, including planning, manufacturing, sales, and marketing. As the ERP methodology has become more popular, software applications have emerged to help business managers implement ERP in business activities such as inventory control, order tracking, customer service, finance and human resources. Datový sklad (Data Warehouse) zDefinice (W.H. Inmon 1996): Datový sklad je subjektově orientovaný integrovaný časově proměnný stálý soubor dat, který slouží pro podporu rozhodování. Datový sklad zprvotní koncepce datována počátkem 80.let zvznik z potřeby jednoduchého přístupu ke strukturovanému úložišti kvalitních dat zpomáhá získat odpovědi pro lepší rozhodování zumožňuje použití dat pro dotazování, reportování a analýzu Struktura datového skladu z třívrstvá architektura: datový sklad aplikační vrstva prezentační vrstva z fyzicky centralizovaný nebo distribuovaný DataData WarehauseWarehause DataData WarehauseWarehause Data Warehouse Extract Transform Load Refresh OLAP Engine Analysis Query Reports Data mining Monitor & Integrator Metadata Data Sources Front-End Tools Serve Data Marts Operational DBs other sources Data Storage OLAP Server DataData WarehauseWarehause DataData WarehauseWarehause SOHO: Short for small office/home office, a term that refers to the small or home office environment and the business culture that surrounds it. A SOHO is also called a virtual office. Data Models q Star (hvězda) q Snowflake (vločka) q Starflake q Constellation (souhvězdí) Example of Star Schema time_key day day_of_the_week month quarter year time location_key street city province_or_street country location Sales Fact Table time_key item_key branch_key location_key units_sold dollars_sold avg_sales Measures item_key item_name brand type supplier_type item branch_key branch_name branch_type branch Example of Snowflake Schema time_key day day_of_the_week month quarter year time location_key street city_key location Sales Fact Table time_key item_key branch_key location_key units_sold dollars_sold avg_sales Measures item_key item_name brand type supplier_key item branch_key branch_name branch_type branch supplier_key supplier_type supplier city_key city province_or_street country city Example of Fact Constellation time_key day day_of_the_week month quarter year time location_key street city province_or_street country location Sales Fact Table time_key item_key branch_key location_key units_sold dollars_sold avg_sales Measures item_key item_name brand type supplier_type item branch_key branch_name branch_type branch Shipping Fact Table time_key item_key shipper_key from_location to_location dollars_cost units_shipped shipper_key shipper_name location_key shipper_type shipper A Sample Data Cube Total annual sales of TV in U.S.A. Date Product Country sum sum TV VCR PC 1Qtr 2Qtr 3Qtr 4Qtr U.S.A Canada Mexico sum Cuboids Corresponding to the Cube all product date country product,date product,country date, country product, date, country 0-D(apex) cuboid 1-D cuboids 2-D cuboids 3-D(base) cuboid Typical OLAP Operations q Roll up (drill-up): summarize data yby climbing up hierarchy or by dimension reduction q Drill down (roll down): reverse of roll-up yfrom higher level summary to lower level summary or detailed data, or introducing new dimensions q Slice and dice (krájet a kostkovat): yproject and select q Other operations ydrill across: involving (across) more than one fact table ydrill through: through the bottom level of the cube to its backend relational tables (using SQL) OLAP Server Architectures z Relational OLAP (ROLAP) yUse relational or extended-relational DBMS to store and manage warehouse data and OLAP middle ware to support missing pieces yInclude optimization of DBMS backend, implementation of aggregation navigation logic, and additional tools and services z Multidimensional OLAP (MOLAP) yArray-based multidimensional storage engine (sparse matrix techniques) yfast indexing to pre-computed summarized data z Hybrid OLAP (HOLAP) yUser flexibility, e.g., low level: relational, high-level: array z Specialized SQL servers yspecialized support for SQL queries over star/snowflake schemas ROLAP zData uložená v relační databázi ­ nejsou duplikována, ovšem není k nim možný přístup bez připojení k zdrojové databázi. zdotazy OLAP se převádějí do klasických dotazů SQL ­ může být nevýhodou (limitované možnosti SQL, pomalejší odezva). zVhodný jen pro omezené množství dat. MOLAP z,,tradiční" OLAP. zData uložena v multidimenzionálních kostkách mimo relační databázi. Jsou tudíž duplikována a je možný přístup i bez spojení s původním zdrojem dat. zHlavní výhodou je rychlá odezva na dotazy. Vše je předpočítáno a uloženo při tvorbě kostek. HOLAP zponechává původní data v relačních tabulkách, agregace ukládá v multidimenzionálním formátu z poskytuje propojení mezi rozsáhlými objemy dat v relačních tabulkách zvýhoda rychlejšího výkonu multidimenzionálně uložených agregací Budování datového skladu zmetoda ,,velkého třesku": analýza požadavků podniku vytvoření podnikového datového skladu vytvoření datových tržišť zpřírůstková (evoluční) metoda Plnění datového skladu zpočáteční plnění + pravidelná aktualizace zplnění pomocí datových pump zpostupy ETL: extrakce transformace loading Klasifikace dat q Kvalitativní (kategoriální) y nominální rodinný stav, region Alternativní pohlaví y ordinální vzdělání q Kvantitativní (numerické) y diskrétní počet dětí y binární (dichotomické) indikátor dobrého klienta y spojité věk, příjem, výše úvěru Klasifikace dat Klasifikace dat II Demografické znaky: Behaviourální znaky: Produktové znaky: Klienta (věk, pohlaví, rodinný stav, počet dětí, druh bydlení, kraj/okres trvalého bydliště...) Prodejního místa (kraj/okres, typ, prodejní plocha,...) Prodejce (věk, pohlaví, kraj/okres trvalého bydliště...) Klienta (,,stáří" klienta, doposud splacená jistina, dlužná jistina, počet dní po splatnosti,...) Prodejního místa (,,stáří" prodejny, počet uzavřených smluv, objem uzavřených smluv, podíl nesplácených úvěrů,...) Prodejce (počet uzavřených smluv, objem uzavřených smluv, podíl nesplácených úvěrů ...) Výše úvěru, délka smlouvy, akontace, RPSN,... Datová matice q Nutný formát dat pro modelování. q 2-rozměrná matice n x p. q Řádky reprezentují n statistických jednotek (klientů) q Sloupce reprezentují p statistických proměnných. Zásady tvorby datové matice q Replikovatelnost tvorby dat. matice žádné manuální úpravy dat q Srozumitelnost tvorby dat. matice podrobné komentáře q Zpětná konektivita dat. matice primární klíče (id) všech podkladových datových tabulek