Datalager och datautvinning



Relevanta dokument
Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

DIVISIONSEXEMPEL RELATIONSALGEBRA OCH SQL. r s använder vi för att uttrycka frågor där ordet alla figurerar:

Databaser. Vad du ska lära dig: Ordlista

08/12/14. Databasteknik och informationssystem DD1370. Behövs Föreläsning 8? Kursens (återstående) mål Dagens föreläsning

Tentamen för DD1370 Databasteknik och informationssystem

Tentamen för DD1370 Databasteknik och informationssystem

Tentamen för DD1370 Databasteknik och informationssystem

Databashantering och Beslutsstöd

Lösningar till tentamen i EDAF75

VAD GÖR DU / VEM ÄR DU?

Tentamen DATABASTEKNIK - 1DL116

Grunderna för relationsmodellen!

Vinjett 1: Relationsdatabas för effektivaste vägen

Exempel-Tentamen III

Introduktion till frågespråket SQL (v0.91)

Grunderna i SQL del 1

Databaser och Datamodellering Foreläsning IV

Konceptuella datamodeller

TER3. Försättsblad till skriftlig tentamen vid Linköpings universitet G28 TEN1 Webprogrammering och databaser Tentamen IDA 1 (7)

Frågor att lösa med SQL mot databasen kursdb_sql Sida 1 av 5

Databasens består av: Tabell Kolumner fält Rader poster (varje post är unik)

Relationsalgebra. Varför behöver jag lära mig relationsalgebra?!

Vad är en databas? Exempel på databaser: Databas = Organiserad samling och lagring av information.

Beslutstödssystem. Beslutstödssystem. DD1370 (Föreläsning 8) Databasteknik och informationssystem 7,5 hp Hösten / 26

SQLs delar. Idag. Att utplåna en databas. Skapa en databas

NORMALISERING. Mahmud Al Hakim

Tentamen för DD1370 Databasteknik och informationssystem

Webbprogrammering, grundkurs 725G54

DI Studio nyheter

Databaser design och programmering. Fö 2: Design processen, ER-modellering

Urval rader. Urval koumner. D i m e n si o n e r. Visa värden eller % Mätvärden. Korstabell. Grundflik. Flik för Sparade delmängder

Design och underhåll av databaser

Tentamen för DD1370 Databasteknik och informationssystem

Tentamen i Databasteknik

16/12/14. Databasteknik och informationssystem DD1370. Dagens föreläsning (den sista!) Motivera med kokbok! Idag: Inga knappar L. Dagens föreläsning

Idag. Databaskvalitet(??) Databaskvalitet... Databaskvalitet...

Databaser design och programmering. Design processen ER- modellering

Idag. Hur skapar vi och underhåller en databas? DD1370 (Föreläsning 4) Databasteknik och informationssystem 7,5 hp Hösten / 20

! Teori och praktik. ! Ändringar från förra året. ! Examination (tenta, projekt) LiU. ! Varför ni? ! Varför överhuvudtaget? LiU

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

Tentamen 4,5 hp Delkurs: Databaser och databasdesign 7,5hp Tentander: VIP2, MMD2, INF 31-60, ASP

INNEHÅLL SQL DEL 2. Funktioner inbyggda Aggregatfunktioner Skalärfunktioner. Chapter 11. Beginning SQL Server 2008 for Developers

TENTAMEN TDDB77 Databaser och Bioinformatik 12 juni 2007, kl 14-18

Beslutstödssystem. Data Warehouse OLTP OLAP. A :et i OLAP Analys av data

TENTAMEN TDDB77 Databaser och Bioinformatik 15 mars 2002, kl 14-18

Laboration SQL. Kom igång.

Databaser och databasdesign. Den relationella modellen, normalisering och modellering (2)

Tentamen. i Databasteknik. lördagen den 13 mars Tillåtna hjälpmedel: Allt upptänkligt material

Databaser Kapitel 1: Introduktion!

LEANalyser för användare

I denna laboration skriver jag inte ut resultatet på de flesta frågorna utan du kör dem själv i din miljö.

WCMS-15, Webbutvecklare CMS

VAD GÖR DU / VEM ÄR DU?

Varför ska man lära sig sånt? Välkomna. Vad är databaser bra till? Kursansvarig. till kursen. Databasteknik och informationssystem

Introduktion till databaskursen. Välkomna. till kursen. Databasteknik och informationssystem. DD1370 (kursomgång dbtinf12)

Lösningsförslag till Exempel tentamen

04/11/14. Välkomna till kursen: Databasteknik och informationssystem DD1370. Kursanvarig. Dagens föreläsning. Vad är en Databas?

Prova på-laboration i SQL

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

Tentamen Databasmetodik DB:DSK/FK/DVK/ATD/SP/EIT mfl. äldre kurstillfällen 8 augusti 2013 kl. 9-13

Karlstads Universitet, Datavetenskap 1

Databaser - Design och programmering. Kursöversikt. Exempel: telefonbok. Varför databaser?

Varför ska man lära sig sånt? Välkomna. Vad är databaser bra till? Kursansvarig. till kursen. Databasteknik och informationssystem

Idag. 1. Från modell till databasstruktur. 2. Prata med databaser (frågepsråket SQL)

Från verklighet via modell till databas. Idag. Testa reglerna på varuhusmodellen. Från verklighet via modell till databas

Fiktiv tentamen för DD1370 Databasteknik och informationssystem

Introduktion till MySQL

TDDD52 Databas. Databas. Databas 1/3/13

Tentamen i Databasteknik

MÖJLIGHETERNA MED CLUSTERED COLUMNSTORE INDEXES & IN-MEMORY OLTP

Databaser - Design och programmering. Relationsmodellen. Relationer - som tabeller. Relationer som tabeller. Alternativa notationer: Relationsschema

! Webprogrammering. ! Databasteori och praktik. ! Fö, le, la + projekt. ! Examination (tenta, dugga + labb, ! Studera användarna och deras problem

07/11/14. Databasteknik och informationssystem DD1370 F2. Allmänna frågor. Är Lab0 svårbegriplig? Nu: Clickers. Är Kurswebben svårbegriplig?

Tentamen 2I1033, IT i Organisationer och Databasteknik lördag 17/4 2004, kl LÖSNINGSFÖRSLAG

Johan Elfman Konsult SAS Institute AB Copyright 2003, SAS Institute Inc. All rights reserved.

Databaser design och programmering. Transaktionshantering och säkerhet säkerhetsproblem fleranvändarproblem transaktioner låsning

Övningar i SQL. SQLAccess.doc Ove Lundgren

Programdesign, databasdesign. Databaser - Design och programmering. Funktioner. Relationsmodellen. Relation = generaliserad funktion.

Vad är en databas? Databasutveckling Med MySQL/MariaDB

Databasutveckling Tabeller. tinyint 1 byte (0-255) Upp till 8 bytes

Ny skalbar och öppen OLAP-teknologi, SAS OLAP server

Databasföreläsning. Del 2 lagrade procedurer, vyer och transaktioner

TENTAMEN TDDD12 Databasteknik 7 januari 2010, kl 14-18

Föreläsning 4 Dagens föreläsning går igenom

Structured query language (SQL)

TENTAMEN För kursen. Databasteknik. Ansvarig för tentamen: Anna Palmquist. Förfrågningar: Anslås inom 3 veckor

Sample exam questions. Database exam TIG058

Innehåll MySQL Intro. Allmänt om Lagrade Procedurer Enkel utformning Skapa en lagrad procedur Använda parameter som indata

Webprogrammering och databaser. 729G28 Webprogrammering och databaser. Kursöversikt. Praktisk info. Webprogrammering. Ändringar mot förra året

Databasutveckling Microsoft T-SQL - Fortsättning. Funktioner GROUP BY HAVING Skapa databaser Skapa tabeller Lite om transaktioshantering

Starta MySQL Query Browser

Tentamen för 1E1601. Måndag 10 mars 2003, kl Alla hjälpmedel tillåtna

Transkript:

Datalager och datautvinning 1

Datalager och datautvinning! Databaser kan innehålla stora mängder information om ett företags eller en organisations verksamhet" Data kan också användas för att analysera verksamheten och härleda ny kunskap som kan användas för att stöda och effektivera verksamheten." Används i beslutsstödande system (decision-support systems)." Ett datalager (data warehouse) lagrar information i ett format som är lämpat för analys av stora mängder data." Data samlas in och lagras på ett ställe, ofta från flera olika källor." Lagras med ett enhetligt schema (vanligtvis ett speciellt schema som är gjort för att stöda analys)." Med datautvinning (data mining) avses data-analys som man gör för att hitta ny kunskap om verksamheten, i form av mönster eller statistiska regler." Den nya kunskapen kan användas för att styra och effektivera verksamheten." 2

Datalager! Ett datalager (data warehouse) är en samling av data med ett enhetligt schema." Data samlas in från flera olika källor och lagras på ett ställe." Lagras vanligtvis som en specialiserad databas med ett stjärnschema." Används enbart för analytisk processering (OLAP), inte för dagliga transaktioner (OLTP)." Lagrar historisk data över en lång tidsperiod." DBMS SQL Datakällor data loaders SAS... Datalager SQL frågor och analysverktyg 3

Datautvinning! Datautvinning (data mining) innebär att man analyserar stora mängder av historisk data för att hitta ny kunskap om någon verksamhet." Mönster, regler, samband och trender." Man använder olika statistiska metoder för att analysera data." Olika användningssätt:" Förutsägelse (prediction)."! Ex: avgör om en person som ansöker om ett kreditkort kommer att utgöra en kreditrisk i framtiden." Identifiera samband."! Ex: undersök om det finns produkter (eller produktkategorier) som kunderna ofta köper tillsammans i ett varuhus." Gruppering och klassificering"! Ex: undersöker hurudana kategorier av kunder köper de dyraste smart-telefonerna" 4

Driftsdatabaser! De databaser som används för att stöda den dagliga verksamheten kallas för driftsdatabaser eller operativa databaser." Exempel:" Bankers databaser över kunder, konton, lån, placeringar, etc." Universitetens databaser över studerande, kurser, utbildningsprogram, kursanmälningar, studieprestationer, etc." Driftsdatabaser är planerade för transaktionshantering." Man gör transaktioner där man tittar på eller uppdaterar en relativt liten mängd data." Exempel: betalar en räkning, anmäler sig till en kurs, bokar en resa,... " Driftsdatabaser är designade för On-Line Transaction Processing (OLTP)" Databaserna har en enkel struktur i form av normaliserade tabeller." Stora mängder data finns lagrad i tabellerna." Uppdateringar berör små mängder data åt gången, som t.ex. en överföring av ett belopp från ett konto till ett annat." Sökningarna är relativt enkla, t.ex. när man tittar på transaktionerna för ett konto under en månads tid." 5

Beslutsstödande system! Beslutsstödande system (decision support systems) är informationssystem som används för att stöda beslutsfattande i företag och organisationer." Besluten kan baseras på kunskap om verksamheten som man t.ex. kan få fram genom att analysera information i databaser." Kan ge kunskap på en högre nivå än den detaljerade information som finns i databaserna: trender i verksamheten, prognoser för framtiden." Exempel:"! Vilka varor förväntas sälja bra under den kommande säsongen."! Till vilket kundsegment lönar det sig att marknadsföra avancerade och dyra mobiltelefoner." Man kan få fram den här typen av information genom att analysera historisk data i databaserna." Man aggregerar data över olika tidsperioder, över olika produktkategorier eller för olika kundtyper." 6

OLAP! On-line Analytical Processing (OLAP) stöder interaktiv analys av stora datamängder i ett datalager genom att summera data på olika sätt och beräkna statistiska mått på data." OLAP skiljer sig från vanlig transaktionsprocessering (OLTP)" Mycket stora datamängder"! Datalager innehåller historisk data som kan sträcka sig över en lång tidsperiod." Data lagras inte i normaliserade tabeller, utan i en form som bättre stöder aggregering på olika sätt." Frågorna som görs är ofta komplexa med många aggregatfunktioner och de hanterar mycket stora mängder data som man får genom att kombinera information från många tabeller." Datalager används främst för läsning, det uppdateras bara genom att sätta till ny data från driftsdatabaserna"! T.ex. en gång per dygn eller en gång i veckan." Man gör främst interaktiva ad-hoc frågor som användaren formulerar efter behov för att få reda på en viss sak." 7

Skillnader mellan OLTP och OLAP! De viktigaste skillnaderna mellan driftsdatabaser och databaser för analys sammanfattas i tabellen." OLTP" OLAP" Innehåller aktuell data" Innehåller detaljerad data" Data är dynamiskt, uppdateras kontinuerligt" Repetitiv processering, samma sorts transaktioner upprepas ofta" Hög genomströmning av transaktioner" Lätt att förutsäga databasens användning och belastning" Transaktionsdriven användning" Stöder den dagliga verksamheten" Stort antal dagliga användare" Innehåller historisk data" Innehåller både detaljerad data och summerad data" Data är statiskt, uppdateras bara genom att då och då sätta till ny data" Ad hoc processering, man gör unika frågor mot databasen" Medium eller låg genomströmning av transaktioner" Svårt att förutsäga användningen och belastningen" Analysdriven användning" Stöder strategiskt beslutsfattande" Litet antal användare" 8

Operationer på data! När man gör analys av data i ett datalager behöver man effektivt kunna göra följande typer av operationer:" Borra sig ner i datamängden (drill down)." Utgående från en sammanställning av data går man ner till en finare nivå av detaljer." Exempel: utgående från försäljning per månad undersöker man försäljningen per vecka eller dag." Rulla upp (roll up) eller konsolidera." Aggregerar från en finare indelning till en mera sammanfattande indelning av data." Exempel: utgående från data om försäljning av kavajer, byxor, skjortor och strumpor så summeras den här informationen till försäljning av herrkläder." Vrida och vända på data, också kallat pivotering (slicing, dicing eller pivoting)." Aggregera data på olika sätt för att undersöka kombinationer av olika faktorer." 9

Multidimensionell data! När man gör dataanalys i OLAP-tillämpningar lagrar man data i multidimensionell form i stället för i normaliserade tabeller." Gör det enklare att gruppera och aggregera värden över flera attribut." Det finns två typer av attribut:" Måttattribut, som mäter något värde och som man kan aggregera." Dimensionsattribut, som bestämmer hur man kan gruppera ihop data." Exempel: " Vi har data om försäljning av kläder i en butik i en tabell med schemat Försäljning (produkt, storlek, färg, antal) " Attributen produkt, storlek och färg är dimensionsattribut som man kan gruppera data enligt." Attributet antal är ett måttattribut som man kan aggregera." Multidimensionell data lagras i en relationsdatabas med ett schema som gör det bättre lämpat för analytisk processering." 10

Exempel! Man kan jämföra multidimensionell data med data i ett tabellkalkylprogram som t.ex. Excel." Tabellkalkylprogram är begränsade till två dimensioner, multidimensionell data kan ha flera dimensioner." Man analyserar multidimensionell data genom att gruppera och aggregera data för olika kombinationer av dimensionsattributen" Exempel: en korstabell av data från tabellen Försäljning för alla kombinationer av produkt och storlek." Värdena i tabellen har summerats ihop över alla färger (dvs. den summerat måttattributet antal över dimensionen färg). " Small Medium Large Totalt Kavaj 8 15 12 35 Byxor 6 10 18 34 Skjorta 9 21 15 45 Strumpor 22 25 18 65 Totalt 45 71 63 179 Tabellen innehåller också en summa över raderna, som ger antalet sålda produkter av varje typ, och en kolumnsumma som ger antalet sålda produkter för varje storlek, samt totala antalet sålda produkter." 11

Datakuber! Vi kan också ha multidimensionell data av tre eller flera dimensioner." En datakub är en generalisering av en korstabell till flera (3 eller flera) dimensioner." En korstabell kan fås som en vy av en datakuber genom att aggregera över någon dimension." Om vi summerar över alla färger får vi en liknande två-dimensionell tabell som på förra sidan. " 12

Datakuber i relationsdatabaser! En datakub lagras i en relationsdatabas så att varje cell i kuben blir en tuppel i en relationstabell." Kallas en faktatabell" Värdet all på ett attribut betecknar att vi har summerat på det attributet." Skapar också egna tabeller för att beskriva varje dimension." Kallas dimensionstabeller." Innehåller en rad för varje värde som kan förekomma." Varje värde ges en numerisk nyckel, en surrogatnyckel, som används i värdetabellen (t.ex. Kavaj=1, Skjorta=2, Byxor=3)." Kan också lagra andra attribut som beskriver dimensionerna (t.ex. tillverkare, material,...)." produkt! storlek! färg! antal! Kavaj" S" Svart" 3" Kavaj" M" Svart" 2" Kavaj" L" Grå" 1" Kavaj" all" all" 6" Skjorta" S" Svart" 4" Skjorta" L" Vit" 2" Skjorta" M" Blå" 1" Skjorta" M" Vit" 3" Skjorta" all" all" 10" Byxor" L" Svart" 2" Byxor" M" Blå" 1" Byxor" S" Grå" 2" Byxor" all" all" 5" 13

Stjärnschema för en datakub! En datakub beskrivs av ett schema för faktatabellen, samt ett schema för varje dimensionstabell." Faktatabellen refererar till dimensionstabellerna med en främmande nyckel." Lagrar ett enkelt numeriskt värde istället för ett långt produktnamn." Kallas en surrogatnyckel, och består av ett unikt numeriskt värde istället för en benämning." Ger ett stjärnformat diagram, med faktatabellen i centrum, omgiven av dimensionstabellerna." Scheman behöver inte vara normaliserade." Produkt id produktnamn tillverkare material Försäljning produkt_id storlek_id färg_id antal Storlek id kod Färg id färgnamn RGB-kod 14

Exempel! Vårt exempel i form av ett stjärnschema:" Produkt id! produktnamn! tillverkare! material! 1" Kavaj" Gant" Bomull" 2" Skjorta" Prada" Silke" 3" Byxor" Levis" Bomull" 4" Strumpor" Nike" Ylle" 5" Slips" Centertex" Silke" Färg Storlek id! färgnamn! RGB-kod! 1" vit" FFFFFF" id! kod! 2" gul" FFFF00" 1" S" 3" grå" B4B4B4" 2" M" 4" blå" 0000FF" 3" L" 5" röd" FF0000" 4" XL" 6" svart" 000000" Försäljning produkt_id! storlek_id! färg_id! antal! 1" 1" 6" 3" 1" 2" 6" 2" 1" 3" 3" 1" 2" 1" 6" 4" 2" 3" 1" 2" 2" 2" 4" 1" 2" 2" 1" 3" 3" 3" 6" 2" 3" 2" 4" 1" 3" 1" 3" 2" 15

Denormalisering! Faktatabellen lagras vanligtvis i normaliserad form (3NF eller BCNF)" Man tillåter dimensionstabellerna att vara onormaliserade, ofta i 2NF." Sökningar blir effektivare om man har all information om en dimension i en enda tabell." Behöver inte göra en join på flera tabeller för att få fram uppgifter om produkterna." Datalager används inte för transaktioner i den dagliga verksamheten, utan för dataanalys." Man gör främst sökningar i data, inte uppdateringar, så problemen med redundans och risk för inkonsistens vid uppdatering är mindre." Om man gör dimensionstabellerna normaliserade får man ett snöflingeschema." En dimension beskrivs inte av en en enda tabell, utan av flera tabeller." 16

SQL frågor på stjärnscheman! Vi kan formulera frågor mot stjärnschemat genom att gruppera och aggregera värden över de olika dimensionerna. " T.ex. en korstabell över antal sålda produkter indelad enligt storlek." select produkt.produktnamn, storlek.kod, sum(antal) as antal! from forsaljning, produkt, storlek! where forsaljning.produkt_id=produkt.id and! forsaljning.storlek_id=storlek.id! group by produkt_id, storlek_id;! +-------------+-----+-------+! produktnamn kod antal! +-------------+-----+-------+! Kavaj S 3! Kavaj M 2! Kavaj L 1! Skjorta S 4! Skjorta M 4! Skjorta L 2! Byxor S 2! Byxor M 1! Byxor L 2! +-------------+-----+-------+! 9 rows in set (0.00 sec)! 17

En annan exempelfråga! En korstabell över antal sålda produkter indelad enligt färg." Summerar värdena för olika storlekar." select produkt.produktnamn, farg.fargnamn, sum(antal) as antal! from forsaljning, produkt, farg! where forsaljning.produkt_id=produkt.id and! forsaljning.farg_id=farg.id! group by produkt_id, farg_id;! +-------------+----------+-------+! produktnamn fargnamn antal! +-------------+----------+-------+! Kavaj gra 1! Kavaj svart 5! Skjorta vit 5! Skjorta bla 1! Skjorta svart 4! Byxor gra 2! Byxor bla 1! Byxor svart 2! +-------------+----------+-------+! 8 rows in set (0.00 sec)! 18

Kub-operator! Operator cube genererar en datakub utgående från ett stjärnschema." Aggregerar måttattribut på alla kombinationer av de angivna dimensionerna." select produkt.produktnamn, storlek.kod, sum(antal) as antal! from forsaljning, produkt, storlek! where forsaljning.produkt_id=produkt.id and forsaljning.storlek_id=storlek.id! group by produkt_id, storlek_id with cube;! +-------------+-----+-------+! produktnamn kod antal! +-------------+------+-------+! Kavaj S 3! Kavaj M 2! Kavaj L 1! Kavaj null 6! Skjorta S 4! Skjorta M 4! Skjorta L 2! Skjorta null 10! Byxor S 2! Byxor M 1! Byxor L 2! Byxor null 5! null S 9! null M 7! null L 5! null null 21! 19

Kub-operator (forts)! Kub-operatorn gör gruppering på alla möjliga kombinationer av de angivna dimensionerna." Exempel: "select produkt, färg, storlek, sum(antal) "from försäljning "group by produkt, färg, storlek with cube;" Gör grupperingar och summering av attributet antal inom grupperna för alla kombinationer av de här tre dimensionerna:" (produkt, färg, storlek)" (produkt, färg, all)" (produkt, all, storlek)" (all, färg, storlek)" (produkt, all, all)" (all, färg, all)" (all, all, storlek)" (all, all, all)" Resultatet är en tabell som innehåller unionen av alla dessa grupperingar." 20

Rollup-operator! Rollup-operatorn gör aggregering över alla kombinationer av de dimensioner som används för gruppering." Inte över alla möjliga kombinationer av dimensioner, som cube-operatorn." MySQL stöder rollup men inte cube" mysql> select produkt.produktnamn, storlek.kod, sum(antal) as antal! from forsaljning, produkt, storlek! where forsaljning.produkt_id=produkt.id and forsaljning.storlek_id=storlek.id! group by produkt.produktnamn, storlek.kod with rollup;! +-------------+------+-------+! produktnamn kod antal! +-------------+------+-------+! Byxor L 2! Byxor M 1! Byxor S 2! Byxor NULL 5! Kavaj L 1! Kavaj M 2! Kavaj S 3! Kavaj NULL 6! Skjorta L 2! Skjorta M 4! Skjorta S 4! Skjorta NULL 10! NULL NULL 21! +-------------+------+-------+! 21

Kolumn-orienterade databaser! En alternativ lösning för effektiv data-analys i ett relationsdatabassystem är att använda en kolumn-orienterad databashanterare." Relationsdatabaser lagrar vanligtvis innehållet i tabeller radvis." Värden som hör till en rad i en tabell (dvs. en tupel) lagras fysiskt (på skivminne) som ett kontinuerligt block av data." För att aggregera över ett visst attribut måste man läsa ett värde från alla tabellrader." Det betyder att man måste läsa alla block." I en kolumn-orienterad databas lagras istället värdena i en kolumn som ett kontinuerligt block." För att aggregera över ett attribut räcker det att läsa ett enda block av data." Mycket mera effektivt för att göra aggregering av attributvärden." Lämpar sig därför mycket bättre för analytisk processering." Värdena i ett block är alla av samma typ, och samma värden kan förekomma ofta, så data kan också komprimeras effektivt." 22

Illustration! Tabell produkt! storlek! färg! antal! Kavaj" S" Svart" 3" Kavaj" M" Svart" 2" Skjorta" S" Svart" 4" Skjorta" L" Vit" 2" Byxor" M" Blå" 1" Byxor" S" Grå" 2" Rad-orienterad lagring Kavaj S Svart 3 Kavaj M Svart 2 Skjorta S Svart 4 Skjorta L Vit 2 Byxor M Blå 1 Byxor S Grå 2 Konsekutiva adresser Kolumn-orienterad lagring Kavaj Kavaj Skjorta Skjorta Byxor Byxor S M S L M S Svart Svart Svart Vit Blå Grå 3 2 4 2 1 2 23

Användning av kolumnorienterade databaser! Man kan formulera SQL-frågor på exakt samma sätt i rad- och kolumnorienterade databaser." Främsta skillnaden är att aggregering över alla värden i en kolumn är mycket effektiv i en kolumnorienterad databas." På motsvarande sätt är access till hela tabellrader mindre effektiv." Enda skillnaden är hur data fysiskt lagras." Den fysiska lagringen på skivminne sköts av lagringshanteraren." Användaren behöver inte vara medveten om hur data lagras fysiskt för att använda databasen. " Ett exempel på en kolumnorienterad databashanterare är InfiniDB" Kompatibel med MySQL" Fungerar också tillsammans med Amazon Web Service och Hadoop" 24