Datamodellering för en bättre analysmiljö. Linus Hjorth

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

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

Logisk databasdesign

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

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

Exempel-Tentamen III

Modul DB1-1 Databasmodellering

Karlstads Universitet, Datavetenskap 1

Lite om databasdesign och modellering

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

Normalisering. Christer Stuxberg Institutionen för Informatik och Media

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

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

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

Databaser och Datamodellering Foreläsning IV

Modul DB1-2 Datamodellering

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

Föreläsning 3 Transformation från konceptuell datamodell till relationsschema ( Syntetisk databasdesign ) Vad är ett databashanteringssystem?

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

Disposition. 1. Kopplingen mellan Processanalys (DFDdiagram) 2. Treskikts Client-Server arkitektur (Fig 1.8) 3. Data layer

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

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

Inga hjälpmedel är tillåtna

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

Webprogrammering och 729G28 databaser Webprogrammering och databaser Kursöversikt Webprogrammering Designprocessen Lösningsförslag

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

Vad är. Domändriven design?

(Data)Modellering. nikos dimitrakas rum 2423

Databaser - Design och programmering

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

Normalisering. Varför? För att åstadkomma en så bra struktur i databasen som möjligt med minimalt med dubbellagrad info.

Viktigt! Glöm inte att skriva Tentamenskod på alla blad du lämnar in.

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

Riktlinjer för informationsutbyte av forskningsinformation

Informationssystem och databasteknik

Relationell databasdesign

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Databaser design och programmering. Design processen ER- modellering

Tentamen ISGB01 (delkurs i ISGB24) Databasdesign 7,5 Poäng

Konceptuella datamodeller

Logisk modell. Fysisk modell. Datamodeller Konceptuell modell

Tentamen NDA01G Öppen för alla. Tentamenskod: Inga hjälpmedel är tillåtna

Design och underhåll av databaser

Databasdesignspecifikation för Mätvärdeshanteringssystem

Relationsdatabasdesign

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

Uppstart Inloggning SSMS Skapa Databas Skapa Tabell Skapa Diagram, Fk, RI Hantering av Index, Pk, Fk, Ix Constraints Beräknande fält Några funktioner

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

1.Lär känna MS SQL Observera. Tips. Förberedelse

SKOLFS. beslutade den XXX 2017.

Ett arbetsexempel Faktureringsrutin

729G28 Webprogrammering och databaser. Föreläsning 1: Diverse praktiskt om kursen Webprogrammering Databaser, terminologi

Laboration 1, Datamodellering. Observera. Tips. Förberedelse. Genomförande

732G16: Databaser - Design och programmering

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

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

Lär känna MS SQL 2008 / Övning. Observera. Tips. Förberedelse

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

VAD GÖR DU / VEM ÄR DU?

02/12/14. Databasteknik och informationssystem DD1370. Behövs Föreläsning 8? Dagens föreläsning. Om Lab 1. De 11 Stegen (Kokbok)

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

Tillämpningsanvisningar

NKRR. Regelskrivning i praktiken

Objektorientering. Grunderna i OO

Starta MySQL Query Browser

Analytisk relationsdatabasdesign

CMMS ett sätt att öka återanvändning av och interoperabilitet mellan simuleringsmodeller

1 Modelleringsterminologi enligt IRM

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

Datalagringsmetodik och arkitektur i Java. Projektdefinition. Projektdefinition. Björn Brenander. 7 maj 2001

För att XCOPY i SQL Server Express ska fungera måste data och logg ligga i samma mapp, vilket naturligtvis inte är så bra.

Föreläsning 6: Normalisering & funktionella beroenden

Nationell informationsstruktur 2015:2. Bilaga 5: Tillämpningsanvisning

Tentamen DATABASTEKNIK - 1DL116

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

Se upp med Oracle och SAP

Information om Major release 3.1

Tentamenskod: Tentamensdatum: Tid: 14:00-19:00. Inga hjälpmedel är tillåtna

TENTAMEN TDDB77 Databaser och Bioinformatik 19 april 2002, kl 14-18

Erfarenheter av jobba med klassificering och Klassa

Hitta k största bland n element. Föreläsning 13 Innehåll. Histogramproblemet

Tentamen EIT:DB Databastmetodik 11/ kl Lösningsförslag

Databaskunskap 7,5 högskolepoäng Provmoment: Ladokkod: Tentamen ges för:

Informationsmodellering och e-infrastrukturer

Databasdesign. E-R-modellen

ADT Prioritetskö. Föreläsning 12 Innehåll. Prioritetskö. Interface för Prioritetskö. Prioritetsköer och heapar

Föreläsning 2. Objektorienterad analys och design. Analys: att modellera världen. Design: att strukturera program.

Ankarmodellering L A R S R Ö N N B Ä C K

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

DATALAGRING. Ämnets syfte

Välkomna. SAS Visual Analytics Nätverksträff SKL. Peter Nordwall Principle Consultant / Presale at SAS Institute

Visual Analytics från en SAS-programmerares perspektiv

Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik kl

Frågor och svar till tentamen i Kravhantering

NORMALISERING. Mahmud Al Hakim

Tabeller. Programkonstruktion. Moment 8 Om abstrakta datatyper och binära sökträd. Implementering av tabellen. Operationer på tabellen

Tentamen för DD1370 Databasteknik och informationssystem

Datamodellering 1 Hemsida : Hemsida släktforskning :

Databaser Design och programmering

Transkript:

Datamodellering för en bättre analysmiljö Linus Hjorth

Datamodellering för en bättre analysmiljö Affärsvärde Leverans ( IT ) så informationsmodellering också Vad Varför Var - Hur

Modeller olika sorters (vad) Informationsmodell beskriver information, hur saker hänger iop Logisk datamodell regler för information i ett system Fysisk datamodell specifikation av system, eller för utveckling

Informationsmodeller Kärt barn Subjektsmodell Logisk affärsmodell Konceptuell modell Beskriver hur något är, eller ska bli ut ett affärsperspektiv Inte nödvändigtvis med systemstöd Viktigt för leverans av affärsbehov Men varför/vilken är nyttan

Varför informationsmodellera? Ge samsyn Data från olika system Olika användare Olika tillämpningar Riskminimering Färre missförstånd Gör det lättare att prioritera Grund för mappning Rapportkrav Källdata

Att tänka på Homonymer Synonymer Klass och instans Ok att modellera, svårare vid verbal kommunikation: Produkt, Modell & enhet Aggregat/beräknade kolumner Total/summa Abstraktion vissa termer med likartad struktur kan bli klassificering ( kod ) Effektivare modell Slutanvändare får svårare att se vad modellen innehåller

Notation Kråkfötter (Crow s foot) Personlig favorit Överblick snabbare (jmf siffror/bokstäver) Logisk även affärsanvändare brukar förstå Samma som i datamodellering

Logisk datamodell Används för implementering Affärs- eller databasterm (klarspråk förkortningar) Logiska datatyper (text numeriskt belopp antal - datum) Beskriver regler för hur data förhåller sig (till annan data) Överlappar informationsmodellering (dock alltid tabeller och kolumner) Databas-oberoende Krav på IT/utveckling

Fysisk datamodell Används vid implementering Databas-specifik Databastermer Fysiska datatyper (INT VARCHAR DATETIME2) Index, partitionering, schema Kan avvika i struktur jmf logisk modell Prestanda Användar-/fråge-krav De-normalisering Vissa regler hanteras vid inmatning/etl

Sammanfattning modelltyper Om ditt behov är Kommunikation använd informationsmodell Säkerställa dataintegritet använd logisk datamodell Hantera prestanda använd fysisk datamodell (citat Ronald Damhof) Vad ha var? Info Logisk Fysisk Entitet X X Relation X X Attribut x X Kardinalitet x X X Primärnyckel x X X Främmande nyckel x X X Datatyp x X Tabell X Kolumn X

Användningsområden (var) IM LDM FDM FDM IM LDM FDM IM LDM FDM Data Mart Källor Filer Databas Stage Detaljdata ABT Export

Komma igång (hur) Intervjuer Dokumentation Affärsdokument (avtal, produktbeskrivningar, reglemente, reklam) Workshopar Specifikt krav (top-down) Allmän sondering innan prioritering (top-down & buttom-up) Processmodeller Jobba aldrig själv

Komma igång (hur) Exempel på några metoder SAS Analytics Life Cycle BEAM - Business Event Analysis & Modeling ELM Ensamble Logical Model BIP: Behov Information - Prototyp Likartade, men lite olika resultat

SAS Analytics Life Cycle Ask scope, behov Prepare kartlägg behov (informationsmodell) och data Explore analysera data med behov i åtanke Model anpassa data och utveckla statistiska modeller Implement koppla samman modeller med levande data Act gör något åt det som upptäcks Evaluate Följ upp och förfina

Business Event Analysis & Modeling - BEAM Fokus dimensionsmodellering Kartläggning av processer och händelser 7W s : Who, What, When, Where, how (many/much), Why, how (did it happen) Fakta: how (many/much) Dimensioner: resten Agile Data Warehouse Design Collaborative Dimensional Modeling, from Whteboard to Star Schema : Lawrence Corr och Jim Stagnitto

Ensamble Logical Model - ELM Bygger på BEAM Sprunget ur data vault Genesee Academy Ej public domain Strukturera din information baserat på affärsobjekt, relationer och attribut Affärsobjekt (Core Business Concepts) Plats, person, produkt, sak, händelse Relation naturliga mellan affärsobjekt Attribut: beskriver affärsobjekt

BIP Behov Information Prototyp Framtaget av Infotrek presentation SAS Forum SE 2017 Intervjuer och workshop för att dokumentera verksamhet och viktigaste behoven Från detta skapas informationsmodell Viktigaste kraven mappas mot källdata, och prototyp byggs Ska kunna rymmas i en sprint Snabb verifiering av krav, och möjligheterna att uppfylla dem

Paradigmer inom (fysisk) datamodellering inom analys/bi Tredje normalformen - 3NF Data Vault & andra ensamble-metoder Dimensionsmodellering Data för analys Big Data

POSITION EMPLOYEE PK Position_Id Tredje normalformen -3NF PK Employee_Id Employee_Name Date_Hired FK Employee_Id Position_Start_Date Position_End_Date Job_Code Grunden för modellering i relationsdatabaser sedan urminnes tider Togs in till analys/bi/dw-världen av Bill Inmon Huvudsakligt tillägg är historisering (nya raden när värden förändras) Svårt/går ej att implementera fysisk modell enligt relationsteori Fördel: många känner till teknik Nackdel: inte så flexibel vid förändringar, svårt att få ut data PK PK PK PK EMPLOYEE Employee_Id Emp_Valid_From_Date Emp_Valid_To_Date Employee_Name Date_Hired EMPLOYEE Employee_Id Valid_From_Date Valid_To_Date Employee_No PK PK PK PK FK FK FK POSITION Position_Id Pos_Valid_From_Date Pos_Valid_To_Date Employee_Id Emp_Valid_From_Date Position_Start_Date Position_End_Date Job_Code POSITION Position_Id Valid_From_Date Valid_To_Date Employee_Id Position_No Employee_Name Position_Start_Date Date_Hired Position_End_Date Job_Code

dm Bridge Snowflake Model Dimensionsmodellering Dim Syndrom *PK SyndromId: int Syndromnamn: varchar(50) Dim Tid *PK Datum: date Månad: int År: int Kvartal: varchar(6) Dim Klinik *PK KlinikId: int Kliniknamn: varchar(50) Bridge_Diagnos_Syndrom Gjordes populär av Ralph Kimball *pfk DiagnosId: int FK SyndromId: int PrioNr: int Fysiskt implementerad Star Schema Ungefär samma användningsfall som kuber strukturerade ad-hocfrågor Logisk modell Snowflake nivåer i hierarkier normaliseras Dim_Diagnos *PK DiagnosId: int Diagnoskod: varchar(50) Diagnos: varchar(50) FK DiagnosgruppId: int Fakt_Besök Besökstid: time(7) Besökslängd: time(7) Avgift: money FK PatientId: int FK DiagnosId: int FK Datum: date FK MotagningId: int Dim_Mottagning *PK MotagningId: int Mottagningskod: varchar(10) Mottagningsnamn: varchar(50) FK KlinikId: int Relativt enkel att förstå även för användare Brygg-tabeller och andra konstruktioner för att täcka in fler användningsfall lika komplicerat som 3NF Dim_Diagnosgrupp *PK DiagnosgruppId: int Dignosgruppkod: varchar(10) Diagnosgruppnamn: varchar(50) Dim_Patient *PK PatientId: int Namn: varchar(50) Adress: varchar(50) FK PostNr: varchar(0) Dim Postnr *PK PostNr: varchar(5) Postort: varchar(50)

dm Data Vault Data Vault & ensembler Employee_Detail *pfk Employee_RK Employee_Nm Position_Cd Manager_Flg *PK Valid_from_Dt * Valid_to_Dt * Processed_DtTm Employee_X_Internal_Org *pfk Employee_RK *FK Internal_Org_RK *PK Valid_from_Dt * Valid_to_Dt * Source_System_Cd * Processed_DtTm Internal_Org_Detail *pfk Internal_Org_RK Internal_Org_Nm *PK Valid_from_Dt * Valid_to_Dt * Processed_DtTm Employee Internal_Org Nästan de-facto standard för data warehouse (detaljdatalager) Uppdelning av information i tre kategorier Affärskoncept (med unik nyckel) Hub Relationer mellan affärskoncept Link Beskrivning av koncept (och ev relation) Satellite Anses flexiblare Separation av nycklar, relation & attribut Relationer alltid M-M Uppdelning av attribut som man behagar Employment *pfk Employee_RK Job_Cd Employee_Nm Position_Cd *PK Valid_from_Dt * Valid_to_Dt * Source_System_Cd * Processed_DtTm *PK Employee_RK Employee_Id * First_Seen_Dt * Last_Seen_Dt * Source_System_Cd * Processed_DtTm Agent *PK Agent_RK FK Employee_RK Agent_Id Agent_Nm *pfk Valid_from_Dt * Valid_to_Dt * Source_System_Cd * Processed_DtTm *PK Internal_Org_RK Internal_Org_Id * First_Seen_Dt * Last_Seen_Dt * Processed_DtTm Internal_Org_Assoc *FK Parent_Internal_Org_RK *pfk Child_Internal_Org_RK *PK Valid_from_Dt * Valid_to_Dt * Source_System_Cd * Processed_DtTm Finns do s och dont s, men fortfarande hantverk

Modellera för analys Många olika typer av analyser och statistiska modeller olika krav på design Några vanliga behov: Svårt med kontinuerligas värden. Skapa grupper med intervaller, eller rank Gärna en rad per individ transponering av data (lång till bred) Historik/trend fångas i fler variabler (Amount_Jan, Amount_Feb etc) Flaggor (ny kund 3 mån, är företag, har mer än ett abonnemang) Informationsmodell vid kravställning Fysisk modell för analystabell avancerade användare

Big Data/Data Science Rå data Schema on read Blandning av verktyg Strukturerad/semi-struktureradostrukturerad data Fortsatt behov av förstå och koppla samman data Är vad man gör den till GDPR driver på ordning & reda Fokus på dokumentation

Nu har du modeller och sen då? Ska alla göra allt? Mognad Fas Komplexitet Hur använder jag mina modeller Bild Skapa upp databas (initialt/nytt forward engineer) Skapa modell från databas (dokumentation - reverse engineer) Skapa/underhålla metadata. I SAS 9.4 via Metadata Bridges Importera Jämföra uppdateringar Vissa begräsningar inte säkert att allt kan importeras

linus.hjorth@infotrek.se +46 70 5651833