Förra veckan DD1368 Databasteknik Föreläsning 9: Utblickar • E/R-diagram (avsnitt 4.1-4.3) - Objekt (entity) - Samband (relationship) • Svaga objektmängder (weak entity sets) (avsnitt 4.4) Hedvig Kjellström [email protected] www.csc.kth.se/DD1368 • E/R-diagram ! databasschema (avsnitt 4.5, 4.6) - Sen normalisering av varje relationsschema DD1368 Föreläsning 9, 6 mars 2012 Idag • On-line analytic processing, OLAP - Hitta trender, mönster i databasen - Datavaruhus (data warehouses) - Datakuber (data cubes) - Databrytning (data mining) • “Ostrukturerad” data - Data har osäkerhet - Informationssökning (information retrieval) - Maskininlärning (machine learning) - Probabilistisk databrytning DD1368 Föreläsning 9, 6 mars 2012 On-line analytic processing, OLAP On-line analytic processing, OLAP Datavaruhus (data warehouse) • Traditionella databassystem trimmade (index mm) för att processa små frågor snabbt • Vanligaste sättet att integrera data - Sökning efter tupler eller attribut enligt villkor - Uppdatering av attributvärden • Vissa nya tillämpningar använder sig av beräkningstunga, analytiska (analytic) frågor - Kopiera databas(er) till en enda databaskopia (datavaruhus) och håll det uppdaterat – Jfr materialiserade vyer, men här hela databasen - Vanligtvis: regelbunden rekonstruktion av varuhuset, tex över natten • Nya arkitekturer utvecklade för att hantera analytiska frågor effektivt DD1368 Föreläsning 9, 6 mars 2012 DD1368 Föreläsning 9, 6 mars 2012 On-line transaction processing, OLTP On-line analytic processing, OLAP • Korta, enkla frågor som utförs ofta och måste gå snabbt • OLAP-frågor är istället: - Involverar ett litet antal tupler • Exempel: - Svara på SQL-frågor från ett webbgränssnitt - Pengahantering i kassasystem - Flygbiljettsförsäljning - Få, men komplexa --- kan ta timmar att utföra - Inte beroende av en uppdaterad databas • Alltså, kör dem på ett datavaruhus, inte på original-DB - Undviker schemakrockar med OLTP-transaktioner som måste gå fort • Exempel: - Amazon analyserar köpmönster för att kunna presentera individuella köpförslag på inloggningssidan - ICA optimerar sina lager genom att studera varuåtgång i affärerna, väger in detta i logistikberäkningar DD1368 Föreläsning 9, 6 mars 2012 DD1368 Föreläsning 9, 6 mars 2012 Vanlig arkitektur Diskutera (5 min) Beers(name, manf) Bars(name, addr, license) Drinkers(name, addr, phone) Likes(drinker, beer) Sells(bar, beer, price) Frequents(drinker, bar) • Lokala databaser hanterar OLTP - Tex databasen i en viss ICA Maxi • Lokala databaser kopieras till ett centralt datavaruhus på natten • Analytiker använder datavaruhuset för OLAP • Ge 5 exempel på OLTP-frågor (på svenska, ej SQL) till databasen • Ge 5 exempel på OLAP-frågor (på svenska, ej SQL) till databasen DD1368 Föreläsning 9, 6 mars 2012 DD1368 Föreläsning 9, 6 mars 2012 Två alternativ för datavaruhus ROLAP – stjärnschema 1. • Vanligt sätt att organisera data i varuhus, består av: ROLAP = relational OLAP : Datavaruhuset är ett vanligt relations-DBMS, med databasschema som är ett stjärnschema (star schema) 1. 2. 2. MOLAP = multidimensional OLAP : Datavaruhuset är ett specialiserat DBMS med tex en datakub (data cube) DD1368 Föreläsning 9, 6 mars 2012 Faktatabell (fact table): Mycket stor mängd fakta om tex försäljning Dimensionstabeller (dimension tables): Mindre, konstant info om de olika attributvärdena i faktatabellen DD1368 Föreläsning 9, 6 mars 2012 Stjärnschema: Exempel Stjärnschema: Exempel Dimensionstabell (Bars) Dimensionstabell (Drinkers) • Anta att vi vill ha ett datavaruhus med information om ölförsäljning - För varje försäljning, spara baren, ölmärket, köparen, datumet, tiden, priset • Faktatabell: Sales(bar, beer, drinker, day, time, price) • Dimensionstabeller: Bars(bar, addr, license) Beers(beer, manf) Drinkers(drinker, addr, phone) DD1368 Föreläsning 9, 6 mars 2012 Dimensionsattribut Faktatabell (Sales) Dimensionstabell (Beers) MOLAP – Datakub • Två sorters faktatabellsattribut: • Inte relationsstruktur! 2. Dimensionsattribut (dimension attributes): Nyckeln för en dimensionstabell Beroende attribut (dependent attributes): Värden som bestäms av nyckeln • Exempel: - price är det enda beroende attributet i Sales-relationen - Det bestäms av kombinationen (nyckeln) bar, beer, drinker och time (som är en kombination av dag och tid) DD1368 Föreläsning 9, 6 mars 2012 Dimensionstabell (etc.) DD1368 Föreläsning 9, 6 mars 2012 Dimensions and Dependent Attributes 1. Beroende attribut • Dimensionsattribut är frihetsgrader/dimensioner i en hyperkub - Exempel: Sales-datan har fyra dimensioner, bar, beer, drinker och time • Beroende attribut (Exempel: price) lagras vid datapunkter i kuben DD1368 Föreläsning 9, 6 mars 2012 Datakub: Exempel Marginaler = aggregering • Aggregering (vanligtvis SUM) kan göras över kubens marginaler beer price • Kan göra aggregering över flera dimensioner bar drinker DD1368 Föreläsning 9, 6 mars 2012 Datakub med aggregering: Exempel DD1368 Föreläsning 9, 6 mars 2012 Marginaler: Exempel • Vår 4D Sales-kub lagrar det sammanlagda price för varje bar, varje beer, varje drinker och varje tidsenhet time (tex varje dag) beer price • Med aggregering över kuben kan man också beräkna marginalerna: det sammanlagda price för varje bardrinker, varje bar-beer-time, osv bar drinker DD1368 Föreläsning 9, 6 mars 2012 DD1368 Föreläsning 9, 6 mars 2012 Kubstruktur Drill-Down • Tänk det som att varje dimension har ett extra värde * som betyder “alla” • Drill-down = av-aggregera = dela upp ett aggregat i sina beståndsdelar - Aggregera över dimensioner med * • Exempel: • Exempel: Marginalfördelningen Sales( Joe s Bar , Bud , *, *) innehåller summan av all Bud som konsumerats på Joe s Bar (för alla personer, dagar) - Det visar sig att Joe s Bar säljer väldigt få AnheuserBusch-öl - Dela upp A.-B.-delen av Joes försäljning enligt ölsort (försäljning av Bud, försäljning av Miller, osv) DD1368 Föreläsning 9, 6 mars 2012 DD1368 Föreläsning 9, 6 mars 2012 Roll-Up Roll-Up och Drill-Down $ of A-B / drinker $ of Anheuser-Busch / drinker/bar • Roll-up = aggregera längs en eller flera dimensioner • Exempel: - Har en tabell (2D) över hur mycket Bud varje person dricker på varje bar - Aggregera till en tabell (1D) över hur mycket Bud varje person dricker totalt sett Joe s Bar Jim Bob Mary 45 33 30 Nut50 House 36 42 Blue Chalk 31 40 38 Bob Mary 133 100 112 Roll up by Bar Drill down by Beer $ of A-B Beers / drinker Jim Bob Mary 40 29 40 M lob 45 31 37 Bud Light 40 35 Bud DD1368 Föreläsning 9, 6 mars 2012 Jim DD1368 Föreläsning 9, 6 mars 2012 48 Databrytning (data mining) Databrytningstillämpning ni alla sett • Frågor som summerar stora datamängder • Varukorgsanalys (market basket analysis) – vilka varor som köps av samma kunder - Hittar mönster • Använder sig ofta av datakuber • Exempel: - Klustra webbsidor efter ämne - Hitta typiska mönster för kreditkortsbedrägerier DD1368 Föreläsning 9, 6 mars 2012 • Exempel: - Hemskick från ICA, extraerbjudanden på de varor du brukar köpa - Varor som ofta köps tillsammans (chips och dip) står nära varandra i affären - Förslag på Amazon, “customers that bought this book also bought…” DD1368 Föreläsning 9, 6 mars 2012 Intresserad av databasutveckling? • DD2471 Moderna databassystem och databastillämpningar • DD2483 Utveckling av Webbtillämpningar med Enterprise Java DD1368 Föreläsning 9, 6 mars 2012 ”Ostrukturerad” data Dataenhet i relationsdatabas: Tupel Dataenhet i fritextdatabas: Artikel • ”Hitta alla anställda med lön högre än $70000/år” • ”Hitta alla artiklar som är kritiska till regimen i Syrien” select * from Instructor where salary > 70000! DD1368 Föreläsning 9, 6 mars 2012 Dataenhet i bilddatabas: Bild ??? DD1368 Föreläsning 9, 6 mars 2012 Information 1996 • ”Hitta alla bilder av hästar som galopperar” ?????? DD1368 Föreläsning 9, 6 mars 2012 DD1368 Föreläsning 9, 6 mars 2012 Information 2009 Att söka bland ”ostrukturerad” data • Beskriv data med ett antal särdrag (features) Särdrag 2! …! Datainstans! Realistiska fall: Antal dim >> 2 Datainstans! Datainstans! Särdrag 1! DD1368 Föreläsning 9, 6 mars 2012 DD1368 Föreläsning 9, 6 mars 2012 Att söka bland ”ostrukturerad” data Att söka bland ”ostrukturerad” data • Kan hitta den datapunkt som är mest lik en ny – närmaste granne (nearest neighbor)… • …eller gränser mellan olika klasser (classes) Träna modeller med dataexempel: Maskininlärning (Machine Learning) DD1368 Föreläsning 9, 6 mars 2012 DD1368 Föreläsning 9, 6 mars 2012 Tupler (= punkter i en rådatakub) = punkter i ett särdragsrum Ett särdragsrum för dokument • Förslag på särdrag för en text? Salary! Antal av ett annat ord! 70000! ID! ”Hitta alla anställda med lön högre än $70000/år” DD1368 Föreläsning 9, 6 mars 2012 Ett särdragsrum för dokument • Kan också hitta särdrag som beskriver bilder Antal av ett ord! ”Hitta alla artiklar som är kritiska till regimen i Syrien” DD1368 Föreläsning 9, 6 mars 2012 Sökning i särdragsrum kan alltså ses som en generalisering av SQL-frågor! • Det insåg Google-grundarna Sergey Brin och Larry Page, och lanserade… ”Hitta alla bilder av hästar som galopperar” DD1368 Föreläsning 9, 6 mars 2012 DD1368 Föreläsning 9, 6 mars 2012 paradigmet ”Search, don’t sort” • Organisera inte databasen • Bra söktekniker istället (indexera data kontinuerligt) • Första informationssystemet byggt på detta paradigm: Gmail - Istället för att manuellt sortera dina mail i foldrar, spara dem i en stor folder, som sedan söks med websökningslika frågor DD1368 Föreläsning 9, 6 mars 2012 Stora talens lag, används av tex • Med enormt stora mängder data kommer alltid majoriteten av data vara rätt – probabilistisk databrytning • ”Distribuerat beslutsfattande” - I en tillräckligt stor grupp människor kommer alltid majoriteten vara vettiga - Wikipediaartiklar är pålitliga eftersom många besöker dem och kan ändra inlägg de inte håller med om • Används även för maskininlärning - Med tillräckligt mycket träningsdata behövs nästan inga modeller alls, kan bara göra närmaste-grannesökning DD1368 Föreläsning 9, 6 mars 2012 paradigmet ”Search, don’t sort” • Internet = enorm oordnad databas - Kan använda samma typ av metoder för att ställa frågor till internet som till annan databas - Funkar också för ickebeständigt data – strömmar, signaler • Finns SQL-lika gränssnitt till oordnade datamängder - GQL, Google App Engine - SQLstream DD1368 Föreläsning 9, 6 mars 2012 Intresserad av ”ostrukturerad data”, stora datamängder och inlärning från exempel? • DD2476 Search Engines and Information Retrieval Systems • DD2431 Machine Learning • DD2447 Statistical Methods in Applied Computer Science Och mer: • Masterprogrammet för Maskininlärning (valbart i åk 4) DD1368 Föreläsning 9, 6 mars 2012 Härnäst • Idag, imorgon: Övning 7 - Repetition (relationsalgebra, beroenden) • 12/3: Skriftlig tenta med kamraträttning - Betyg C-E - Möjlighet till munta till A, B för de med C på tentan, jag kontaktar de som ska munta • Kurshemsida: www.csc.kth.se/DD1368 - Kolla sidan regelbundet! - Redovisning av lab 2 och 3 DD1368 Föreläsning 9, 6 mars 2012