Dagens föreläsning Vad du skall komma ihåg från tidigare föreläsningar • Vad du skall komma ihåg från tidigare föreläsningar • Användning av relationsdatabaser • SQL • Normalisering • Modellering • Informationsintegration • Data Warehouse - översikt • OLAP (OnLine Analytical Process • Datakuber • Data Mining KTH & SU, CSC Databasteknik Föreläsning 12 sid 1 KTH & SU, CSC Data warehouse Databasteknik Föreläsning 12 sid 2 Integration av data Ett data warehouse är en integrerad samling data som används som stöd för beslutsfattande. Problem: • Olika gränssnitt Typiskt för ett data warehouse • Time-variant Data samlas över tiden • Integrerad Innehåller data från många källor • Non-updatable Uppdateras sällan • Olika datarepresentation • Redundans och inkonsistens • Stora informationsmängder (en organisations datamängd fördubblas på 5 år) data warehouse Uppdateras sällan Stor Komplicerade frågor KTH & SU, CSC produktionsdatabas uppdateras ofta liten enkla frågor Databasteknik Föreläsning 12 sid 3 KTH & SU, CSC Databasteknik Föreläsning 12 sid 4 1 Mål Vad är ett data warehouse En organisations data är ofta vertikalt fragmenterad. Försäljningsavdelning - Leverantörshantering - Lagerhållning - Löneavdelning … Dataintegrationen medför att man samlar in data från många källor och kombinerar informationen. Vi får en integrerad vy och ett uniformt gränssnitt. • Integrerad • Subjektorienterad (data relaterade till en viss händelse länkas ihop) • Samlar data (periodiskt hämtas nya data) • Skrivs aldrig över • Används för att fatta beslut • Optimerad annorlunda än en transaktionsdatabas • Stora datamängder Vi kan ställa frågor som använder, och analysera, hela (organisationens) datamängd. • Är inte ”up to date” • I huvudsak används den för läsning • Aggregering är vanlig och aggregat lagras ofta i databasen • Innehåller redundans och ”tvättade” data KTH & SU, CSC KTH & SU, CSC Databasteknik Föreläsning 12 sid 5 OLTP (OnLine Transaction Processing) OLTP Databasteknik Föreläsning 12 sid 6 On-Line Analytical Processing (OLAP) OLAP-frågor innehåller typiskt aggregeringar Traditionellt system för relationsdatabaser Effektivt för ett stort antal relativt enkla transaktioner select sum(volym) from sales; … För att kunna göra detta effektivt beräknar OLAP-system vissa aggregat i förväg och lagrar dessa i databasen. Svarar på vem/vilka Data warehouse Typisk fråga Hur var försäljningen under andra kvartalet i år jämfört med andra kvartalet tidigare år? Verktyg för mer avancerade frågor. I föregående fråga kan man beräkna summavolym per avdelning och lagra dessa värden i databasen. KTH & SU, CSC KTH & SU, CSC Databasteknik Föreläsning 12 sid 7 Dataanalys kan betraktas som en mängd fakta om händelser av intresse. Fakta kan associeras med ett eller flera mått som kan aggregeras. Ex: försäljningsvolym, pris, … Databasteknik Föreläsning 12 sid 8 2 OLAP, forts Representation av multidimensionella data • Hjälper användaren att få en djupare förståelse och vetskap om sina gemensamma data. Många möjliga vyer av data. OLAP-applikationer • Finansiering: budgetering • Försäljning: Försäljningsanalys, Prognos • Marknadsföring: Kundanalys, Marknadsanalys, Analys av reklam • Produktion: Planering, Felsatsanalys OLAP-databas server Multidimensionell Kan läsa 10000-tals tupler per sekund Kan räkna ut summor i förväg i alla dimensioner Kan klara av alla vanliga statistiska och analytiska operationer Huvudfunktioner: Multidimensionella vyer av data Support av komplexa beräkningar Tidsintelligens KTH & SU, CSC Traditionell RDBMS Kan läsa 100-tals tupler per sekund Kan bara presentera data i två dimensioner Databasteknik Föreläsning 12 sid 9 KTH & SU, CSC ROLAP Fördelar Inen speciell lagringsstruktur. Använd traditionellt tillvägagångssätt för relationssystem. Använder data från OLTP-server Nackdelar Ingen integration. Konvertering från flata relationer till datakub blir långsam och komplex. Låg prestanda om stora mängder data behövs från RDBMS. Databasteknik Föreläsning 12 sid 10 MOLAP Relational OLAP Översätt klientens fråga till en eller flera SQL-frågor Låt DBMS exekvera SQL-frågorna Konvertera svaret till en multidimensionell datakub KTH & SU, CSC Databasteknik Föreläsning 12 sid 11 Multidimensionell OLAP Extrahera data från många källor Lagra i data warehouse Runtime Accessa datakuber via speciella indexstrukturer Exekvera analys applikation och leverera resultat Fördelar Speciella multidimensionella indexstrukturer ger bra prestanda Warehouse integrerar ”tvättade” data från multipla källor Nackdelar Inflexibla, multidimensionella lagringsstrukturer fungerar bra endast för en applikation. Kräver mjukvara och personal för att underhålla data warehouse. KTH & SU, CSC Databasteknik Föreläsning 12 sid 12 3 Användning av ett data warehouse Dimensioner Klienter Klienter Report tool Data Mining Tool • Fråga Fakta innehåller oftast annan information än mått, som kan användas för att extrahera data av intresse. • Jämföra Ex Anställningsnummer avdelning, filial • Databrytning Då vi gör en dekomposition så erhålls en relation som överensstämmer med det funktionella beroendet. Denna kallas dimensionstabell och de refererade attributen för dimensionsattribut. Query tool Data warehouse • Rapportera Integrationssystem Extraktor Extraktor Extraktor Ex date-dimensionen innehåller information om dag, vecka, månad, kvartal, år • Presentera Av effektivitetsskäl väljer man ofta att inte normalisera dimensionstabellen detta kallas ”star schema” och den normaliserade ”snowflake schema” KTH & SU, CSC Databasteknik Föreläsning 12 sid 13 KTH & SU, CSC Star-schema KTH & SU, CSC Databasteknik Databasteknik Föreläsning 12 sid 14 Snow-flake schema Föreläsning 12 sid 15 KTH & SU, CSC Databasteknik Föreläsning 12 sid 16 4 Datakub OLAP, igen Ett sätt att presentera n-dimensionella data är i form av ett värde, en tabell eller en kub men för högre dimension blir det svårare. Pivoting: Ändra dimensionerna Slicing: Titta på kuben för ett visst värde på en dimension En d-dimensionell kub transformeras till en d-k dimensionell kub genom att fixera värdet för k dimensioner. Vi kan visa en kub med fixt värde på dimensionen. Dicing: Områdesselektion Rollup: Övergå till en grövre granularitet Flera celler slås samman Drill down: Övergå till en finare granularitet Dela en cell i flera celler. Se flera detaljer. KTH & SU, CSC Databasteknik Föreläsning 12 sid 17 KTH & SU, CSC Databasteknik Databrytning Föreläsning 12 sid 18 Typiska mönsterslag Handlar om att ur stora datamängder automatiskt få fram information. Beslutsträd: klassifikation med hjälp av egenskaper Hitta mönster, samvariation, grupperingar, associationer… Cluster: klassifikation med hjälp av likhet i egenskaper Användning av statistiska metoder och visualisering. Bayes, Markov och andra statistiska modeller Prediktion: baseras på tidigare data Klassifikation: givet en ny vara vilken typ är det? Regression: beräknas med en formel (t ex linjär regression) Association: relaterade objekt (t ex vilka varor köps ihop) Cluster: Hitta grupper av data som hör samman (t ex bildsökning) Exempel: Cluster KTH & SU, CSC Databasteknik x x xx x x x x x Föreläsning 12 sid 19 KTH & SU, CSC x x x x xx x Databasteknik Föreläsning 12 sid 20 5 Exempel Teoriområden Ett vanligt marknadsföringsproblem: Undersök vad folk köper tillsammans för att hitta mönster. Databaser: koncentrerade på snabb hantering av stora (som inte får plats i PM) datamängder. Vilka par av varor registreras ofta tillsammans i varuhusets kassa? Öl och chips AI (maskininlärning): fokuserade på komplexa metoder på små datamängder Statistik: koncentrerade på att hitta modeller Vilka böcker köps samtidigt av samma Amazonkund Databrytning: alla 3 fast applicerade på stora datamängder. • För en person med databasbakgrund: kraftfull form av analytisk bearbetning på stora datamängder. (Resultatet är data som besvarar en fråga.) • För en statistiker: hitta en modell. (Resultatet är modellens parametrar). Användning: Kunskapsinsamling Reklam Varuplacering KTH & SU, CSC Databasteknik Föreläsning 12 sid 21 KTH & SU, CSC Förenkling, Exempel Föreläsning 12 sid 22 Svarens signifikans Givet 100 millioner tal: En stor risk då man vill hitta mönster i data är att man hittar nonsensmönster. En person med databasinriktning kan vilja beräkna medelvärdet. En statistiker vill anpassa en gausskurva till punkterna och avläsa medelvärde och standardavvikelse. En person som sysslar med datorgrafik vill visualisera pukterna och tillåta användaren att se data ur olika synvinklar. KTH & SU, CSC Databasteknik Databasteknik Föreläsning 12 sid 23 Statistiker kallar det Bonferronis princip: Om man tittar efter mönster på flera platser än som understödjs av insamlade data så hittar man skräp. Rhines paradox David Rhine hade som hypotes att det existerar personer med Extra-Sensory Perception. Experiment med Röd-Blå kort, 1 av 1000 hade ESP och fick alla rätt. Då försöket upprepades hade alla förlorat sin ESP. Slutsats: Då man talar om för en person att han har ESP så förlorar han den. KTH & SU, CSC Databasteknik Föreläsning 12 sid 24 6 Clustering Clustering, forts Vi tänker oss en rymd med en dimension för varje kund. Värdena kan bara vara 0 eller 1 • Clustering i 2 dimensioner ser enkelt ut • Clustering med små datamängder ser enkelt ut • ”ser” är inte tillräckligt I många fall har vi många (>3) dimensioner. I fallet många dimensioner kan avståndet mellan par av punkter vara i stort sett lika. Clustra CD-skivor genom att representera en CD med den person som köpt den. Liknande CD-skivor har liknande kunder och liknande kunder har liknande CD-skivor. KTH & SU, CSC Databasteknik Föreläsning 12 sid 25 En skiva representeras av en punkt (x1, x2, …, xn)i den n-dimensionella rymden. Där xi = 1 endast om den i:te kunden köpt skivan. Jfr med korrelerade varor. Matris med rader = kunder, varor = kolumner. Distansmått: euklidiska t ex L2-norm (euklidiska avståndet), L1-norm summan av differenser i varje dimension eller icke-euklidiska t ex edit-distans (antal insättningar och borttagningar för att Ändra en sträng till en annan) KTH & SU, CSC Clustering Hierarkisk: Initialt är varje punkt ett cluster. Repetera: Slå ihop de två närmsta clustren till ett Punktvis: Upprätta en mängd initiala cluster Ta varje punkt och placera den i det närmsta clustret. Problem: Hur representerar vi clustrets position? Hur avgör vi vilka cluster som har kortaste avståndet från varandra? Databasteknik Föreläsning 12 sid 26 Latent Semantic Indexing Två strategier för att skapa cluster: Hopande eller delande. Cluster kan vara hårda eller luddiga (en punkt tillhör exakt ett cluster eller med viss sannolikhet ett cluster). KTH & SU, CSC Databasteknik Föreläsning 12 sid 27 LSI för text eller fraser. Ur varje dokument tar vi bort alla oviktiga ord. Gör en matris där varje rad representerar en term. Varje kolumn representerar ett dokument. Varje cell innehåller antal gånger termen förekommer i dokumentet. En fråga reduceras så att den bara innehåller viktiga termer. Beräkna avståndet mellan frågan och dokumenten i matrisen. De dokument som ligger tillräckligt ”nära” det sökta dokumentet utgör svar på frågan. KTH & SU, CSC Databasteknik Föreläsning 12 sid 28 7 Det viktigaste på denna föreläsning • Skillnaden mellan traditionella RDBMS och data warehouse • Olika strategier vid databrytning KTH & SU, CSC Databasteknik Föreläsning 12 sid 29 8