DD1368 Databasteknik Föreläsning 9: Utblickar On-line

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