Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Indholdsfortegnelse

Table of Contents

Anchor
_Toc90992674
_Toc90992674
Indledning

Formålet med dette slutprodukt er at beskrive de logiske data entiteter i løsningens domæne sammen med deres attributer og relationer.

Dokumentet henvender sig til:

  • Udviklere, som har behov for at forstå designet af datamodellen og forberede detaljeret design og senere implementere løsningen.

  • Deltagere fra STAR, som er ansvarlige for det funktionelle design.

Anchor
_Toc90992675
_Toc90992675
Afgrænsning

Dette er ikke en fysisk database model, men en logisk repræsentaton af relationer imellem forretningsobjekter. Der tages forbehold for eventuelle tilføjelser af nye entiteter.

Anchor
_Toc90992676
_Toc90992676
Logisk Metadatamodel

Figur 1: JI3_Datamodel logisk metadatamodel

Anchor
_Toc90992677
_Toc90992677
Beskrivelse af tabeller

Anchor
_Alle_tabeller
_Alle_tabeller
Anchor
_Toc90992678
_Toc90992678
Alle tabeller

Samtlige tabeller i databasen har følgende felter:

Felt

Beskrivelse

Type

created_dttm

Datoen for oprettelse af entiteten

Datetime

created_by

Initialer på den person, der har oprettet entiteten

Varchar(64)

changed_dttm

Seneste dato for ændringer af entiteten

Datetime

changed_by

Intitialer på den person, der senest har ændret entiteten

Varchar(64)

Anchor
_Toc90992679
_Toc90992679
Tabel: cube

Felt

Beskrivelse

Type

cube_id

Primær nøgle for cube

Varchar(32)

display_name

Visningsnavnet for cuben. Anvendes ikke i databanken

Varchar(128)

description

Beskrivelse af cuben. Anvendes internt af STAR

Varchar(256)

update_frequency_id

Fremmednøgle for den update_frequency som rækken er tilknyttet

Varchar(32)

responsible

Initialer på den person, der er ansvarlig for vedligeholdelse af cuben

Varchar(32)

update_allowed

Angiver om cuben må opdateres. Anvendes internt af STAR

Bit

Anchor
_Tabel:_update_frequency
_Tabel:_update_frequency
fact_table

Anvendes internt af STAR

Varchar(64)

Anchor
_Toc90992680
_Toc90992680
Tabel: data_source_info

Felt

Beskrivelse

Type

data_source_info_id

Primærnøgle for data_source_info

Varchar(32)

data_source_info_text

Tekst for data_source_info. Anvendes i databanken til at vise kilden ved resultatvisningen (anmærkning).

Varchar(2048)

Anchor
_Toc90992681
_Toc90992681
Tabel: cube_data_source_info

Felt

Beskrivelse

Type

cube_id

Fremmednøgle for den cube som rækken er tilknyttet

Varchar(32)

data_source_info_id

Fremmednøgle for den data_source_info som rækken er tilknyttet

Varchar(32)

Anchor
_Toc90992682
_Toc90992682
Tabel: dimension

Felt

Beskrivelse

Type

dimension_id

Primærnøgle for dimension

Varchar(32)

display_name

Visningsnavnet for dimension. Anvendes ikke i databanken

Varchar(64)

description

Beskrivelse af dimension. Anvendes internt af STAR

Varchar(256)

responsible

Initialer på den person, der er ansvarlig for vedligeholdelse af dimensionen

Varchar(32)

dimension_type

Typen af dimension. Anvendes internt af STAR

Varchar(64)

dim_table

Anvendes internt af STAR

Varchar(32)

dim_table_key_column

Anvendes internt af STAR

Varchar(16)

Anchor
_Toc90992683
_Toc90992683
Tabel: cube_dimension

Felt

Beskrivelse

Type

cube_id

Fremmednøgle for den cube som rækken er tilknyttet

Varchar(32)

dimension_id

Fremmednøgle for den dimension som rækken er tilknyttet

Varchar(32)

hierarchy_id

Fremmednøgle for det hierarchy som rækken er tilknyttet

Varchar(32)

is_helper_dimension

Angiver om hierarchy entiteter relateret til den givne cube_dimension skal vises i databanken

Bit

Anchor
_Toc90992684
_Toc90992684
Tabel: measure

Felt

Beskrivelse

Type

measure_id

Primær nøgle for measure

Varchar(32)

display_name

Visningsnavnet for measure. Anvendes ved resultatvisningen i databanken

Varchar(128)

description

Beskrivelse af measure. Anvendes internt af STAR

Varchar(256)

agg_statistic

Anvendes internt af STAR

Varchar(32)

column

Anvendes internt af STAR

Varchar(32)

format

Anvendes i databanken til at afgøre hvilket format data skal præsenteres i resultatvisningen

Varchar(32)

Anchor
_Toc90992685
_Toc90992685
Tabel: cube_measure

Felt

Beskrivelse

Type

cube_id

Fremmednøgle for den cube som rækken er tilknyttet

Varchar(32)

measure_id

Fremmednøgle for den measure som rækken er tilknyttet

Varchar(32)

Anchor
_Toc90992686
_Toc90992686
Tabel: member

Felt

Beskrivelse

Type

member_id

Primær nøgle for member

Varchar(32)

display_name

Visningsnavnet for member. Anvendes ved resultatvisningen i databanken

Varchar(128)

description

Beskrivelse af member. Anvendes internt af STAR

Varchar(256)

formula

Anvendes internt af STAR

Varchar(512)

format

Anvendes i databanken til at afgøre hvilket format data skal præsenteres i resultatvisningen

Varchar(32)

ji2_mdx

Anvendes internt af STAR

Varchar(512)

Anchor
_Toc90992687
_Toc90992687
Tabel: cube_member

Felt

Beskrivelse

Type

cube_id

Fremmednøgle for den cube som rækken er tilknyttet

Varchar(32)

member_id

Fremmednøgle for den member som rækken er tilknyttet

Varchar(32)

Anchor
_Toc90992688
_Toc90992688
Tabel: mgroup_rel

Felt

Beskrivelse

Type

mgroup_id

Fremmednøgle for den mgroup som rækken er tilknyttet

Varchar(32)

member_id

Fremmednøgle for den member som rækken er tilknyttet

Varchar(32)

measure_id

Fremmednøgle for den measure som rækken er tilknyttet

Varchar(32)

meas_memb_id

Beregnet værdi. Indeholder enten measure_id eller member_id afhængigt af hvilken af disse, der ikke er null

Varchar(32)

display_order

Anvendes i databanken til at afgøre rækkefølgen for visningen af mgroups

Int

Anchor
_Toc90992689
_Toc90992689
Tabel: mgroup

Felt

Beskrivelse

Type

mgroup_id

Primærnøgle for mgroup

Varchar(32)

display_name

Visningsnavnet for mgroup. Anvendes som visningsnavne for målingsvariable i databanken

Varchar(128)

description

Beskrivelse af mgroup. Anvendes internt af STAR

Varchar(256)

footnote

Fodnote for mgroup. Vises i databanken som en del af resultatvisningen

Varchar(2048)

display_order

Anvendes i databanken til at afgøre rækkefølgen for visningen af mgroups

Int

Anchor
_Toc90992690
_Toc90992690
Tabel: maaling

Felt

Beskrivelse

Type

maaling_id

Primærnøgle for maaling

Varchar(32)

cube_id

Fremmednøgle for den cube som rækken er tilknyttet

Varchar(32)

display_name

Visningsnavnet for maaling. Anvendes ikke i databanken

Varchar(128)

footnote

Fodnote for maaling. Vises i databanken som en del af resultatvisningen

Varchar(2048)

Anchor
_Toc90992691
_Toc90992691
Tabel: maaling_mgroup

Felt

Beskrivelse

Type

maaling_id

Fremmednøgle for den måling som rækken er tilknyttet

Varchar(32)

mgroup_id

Fremmednøgle for den mgroup som rækken er tilknyttet

Varchar(32)

is_active

Angiver om mgroup entiteter relateret til den givne maaling_mgroup skal vises i databanken

Bit

Anchor
_Toc90992692
_Toc90992692
Tabel: maaling_hierarchy

Felt

Beskrivelse

Type

maaling_id

Fremmednøgle for den måling som rækken er tilknyttet

Varchar(32)

hierarchy_id

Fremmednøgle for det hierarchy som rækken er tilknyttet

Varchar(32)

is_selectable

Angiver om hierarchy entiteter relateret til denne maaling_hierarchy skal vises og kunne vælges i databanken

Bit

is_all_member_selectable

Angiver om “I alt”-valgmulighed skal vises for den bestemte måling. Hvis False, vises ”I alt” felter fra valueset_hrchy ikke i databanken

Bit

is_required

Angiver om hierarchy entiteter relateret til denne maaling_hierarchy er obligatoriske og påkrævede at udfylde i databanken. Værdien er også afgørende for sorteringen af hierarchy i databanken. Rækker med True vises før rækker med False.

Bit

is_active

Angiver om hierarchy entiteter relateret til denne maaling_hierarchy er aktive. Hvis False, vises hierarchy ikke, uanset om is_selectable er True.

Bit

Anchor
_Toc90992693
_Toc90992693
Tabel: hierarchy

Felt

Beskrivelse

Type

hierarchy_id

Primærnøgle for hierarchy

Varchar(32)

dimension_id

Fremmednøgle for den dimension som rækken er tilknyttet

Varchar(32)

display_name

Visningsnavnet for hierarchy. Anvendes visningsnaven for fordelingsvariable i databanken.

Varchar(128)

description

Beskrivelse af hierarchy. Anvendes internt af STAR

Varchar(256)

all_member_display_name

Anvendes internt af STAR. display_name for “all member” hentes fra valueset_hrchy til databanken.

Varchar(2048)

footnote

Fodnote for maaling. Vises i databanken som en del af resultatvisningen.

Varchar(2048)

display_order

Bestemmer rækkefølgen af visning af fordelingsvariable i databanken efter de faste; ”Målingsvariable”, ”Område”, ”Periode” og de hierarchy hvor is_active er True.

Int

sequence

Anvendes internt af STAR

Int

Anchor
_Toc90992694
_Toc90992694
Tabel: level

Felt

Beskrivelse

Type

hierarchy_id

Fremmednøgle for det hierarchy som rækken er tilknyttet

Varchar(32)

level_id

Primærnøgle for level

Varchar(32)

hierarchy_level_sequence

Anvendes internt af STAR

Int

display_name

Visningsnavn af level. Anvendes internt af STAR

Varchar(64)

description

Beskrivelse af level. Anvendes internt af STAR

Varchar(256)

level_value_sort_order

Anvendes internt af STAR

Varchar(32)

Anchor
_Toc90992695
_Toc90992695
Tabel: update_frequency

Felt

Beskrivelse

Type

update_frequency_id

Primærnøgle for update_frequency

Varchar(32)

display_name

Visningsnavn for update_frequency. Anvendes i databanken til at vise opdateringsfrekvensen for en måling.

Varchar(128)

Anchor
_Toc90992696
_Toc90992696
Beskrivelse af views

Anchor
_Toc90992697
_Toc90992697
View: valueset_hrchy

Valueset_hrchy (udtales valueset heirarchy) indeholder de mulige værdier, som det er muligt at forespørge på, for en måling i Datamarten. Viewet viser data fra JI3_Valuesets databasen. Dette er en essentiel tabel, der indeholder de data, som præsenteres for brugeren af databanken på jobindsats.dk og alle fordelingsvariable undtagen periode (disse værdier er at finde i en valueset_periode som beskrives i afsnit View: valueset_period).

Felt

Beskrivelse

Type

cube_id

Fremmednøgle for den cube som rækken er tilknyttet

char(16)

dimension_id

Fremmednøgle for den dimension som rækken er tilknyttet

varchar(32)

hierarchy_id

Fremmednøgle for det hierarchy som rækken er tilknyttet

varchar(32)

hrchy_txt

Visningsnavn for valgmuligheden under en fordelingsvariable i databanken. Feltet vises i databanken og benyttes som parameter ved query mod Datamarten, der returnerer målingsresultatet gennem den integrerede stored procedure.

varchar(128)

hrchy_id

ID kolonne, der muliggøre angivelse af et hierarchy datastruktur. Benyttes til angivelse af parant/child forhold og til sortering.

hierarchyid

lev1_txt

Teksten for level 1. Benyttes ikke i databanken. NULL hvis der ikke er et level

varchar(64)

lev2_txt

Teksten for level 2. Benyttes ikke i databanken. NULL hvis der ikke er et level

varchar(64)

Lev3_txt

Teksten for level 3. Benyttes ikke i databanken. NULL hvis der ikke er et level

varchar(64)

lev4_txt

Teksten for level 4. Benyttes ikke i databanken. NULL hvis der ikke er et level

varchar(64)

lev5_txt

Teksten for level 5. Benyttes ikke i databanken. NULL hvis der ikke er et level

varchar(64)

lev6_txt

Teksten for level 6. Benyttes ikke i databanken. NULL hvis der ikke er et level

varchar(64)

hrchy_levels

Referencer til de levels, der benyttes i hierarkiet. Separeret med ”. ” (punktum og mellemrum). Benyttes ikke i databanken.

varchar(160)

Anchor
_Toc90992698
_Toc90992698
Vigtige forhold

  1. Valueset_hrchy er et view af tabellen af samme navn i Datamarten.

  2. Kolonnen hrchy_id kan indeholde huller i strukturen som det f.eks. er tilfældet for tilbud_ptv (nytteindsats) for cube_id=y11c02. Ift. præsentation af værdierne i databankens, fortolkes child-elementer uden en parent som childs til den parents-parent.

Eksempel på hvordan et manglende level (parant) håndteres.

/5/ Nytteindsats i alt

/5/10/1/ Nytteindsats, stat

/5/10/2/ Nytteindsats, region

/5/10/3/ Nytteindsats, kommune

/5/10/4/ Nytteindsats, selvej. inst.

Fortolkes som var det:

/5/ Nytteindsats i alt

/5/1/ Nytteindsats, stat

/5/2/ Nytteindsats, region

/5/3/ Nytteindsats, kommune

/5/4/ Nytteindsats, selvej. inst.

  1. Sorting og bestemmelse af parent-child forhold fra valuesets_hrchy, bestemmes af hrchy_id, der sorteres ascending.

  2. ”X i alt” felter er specielle og vises som det første elementer med en afstand fra de andre valgmuligheder. Dette felt afgøres ud fra følgende: hrchy_id == ”/”

Anchor
_View:_valueset_period
_View:_valueset_period
Anchor
_Toc90992699
_Toc90992699
View: valueset_period

Valueset_period indeholder de mulige perioder, som er mulige at forespørge på, for en måling i Datamarten. Viewet viser data fra JI3_Valuesets databasen. Dette er en essentiel tabel, der indeholder de periodedata, som brugeren af databanken på jobindsats.dk præsenteres for.

Felt

Beskrivelse

Type

cube_id

Fremmednøgle for den cube som rækken er tilknyttet

char(32)

periode

Sammensætning af aar, periodetype2 og taller. Benyttes som parameter ved query mod Datamarten, der returnerer målingsresultatet gennem den integrerede stored procedure

char(10)

display_name

Visningsnavn

char(48)

aar

Året på integer form

char(4)

periodetype2

Bestemmer hvordan en periode skal vises i frontend, fx måned eller år

char(4)

taller

Holder styr på periode rækkefølgen, fx er januar 01 mens december er 12

char(2)

Anchor
_Toc90992700
_Toc90992700
View: cube_update

Et simpelt view som indeholder data om sidste og næste opdateringstidspunkt for en cube. Viewet viser data fra JI3_Valuesets databasen.

Felt

Beskrivelse

Type

cube_id

Fremmednøgle for den cube som rækken er tilknyttet

varchar(32)

latest_update_dttm

Sidste opdateringstidspunkt for kuben

datetime

next_update_dttm

Næste opdateringstidspunkt for kuben

datetime

Anchor
_Toc90992701
_Toc90992701
Detaljeret design

Anchor
_Toc90992702
_Toc90992702
Created og Changed felter for alle tabeller

Felterne created_dttm, created_by, changed_dttm, changed_by placeres til sidst i tabellerne og oprettes for alle tabeller.

De to create-felter; created_dttm, created_by er påkrævede og sættes hhv. af MSSQL database funktionerne getdate() og system_user.

Felterne changed_dttm, changed_by skal udfyldes vha. triggers og konfigureres af STAR.

Anchor
_Toc90992703
_Toc90992703
Fodnoter

Der skelnes mellem kilder og anmærkninger. Anmærkninger relaterer sig til den cube data trækkes fra, mens fodnoter findes på tabellerne: mgroup, hierarchy og maaling.

Anmærkninger trækkes ud og skrives øverst for sig selv, fodnoter trækkes ud og sammensættes i rækkefølgen: maaling, mgroup, hierarchy.

Anchor
_Toc90992704
_Toc90992704
Model for udtræk af målingsdata

Dette afsnit beskriver hvordan data trækkes ud af metadatamodellen til brug for temasiderne samt databanksiderne. Data trækkes med udgangspunkt i en måling hvilket fungerer som foreign keys til cube og relationstabellerne maaling_x findes de andre værdier der skal vises i UI.

Nedenstående illustrerer hvordan data udtrækkes. Hver boks er en tabel med tabelnavn i toppen og de felter der benyttes. Data felter fra relationstabeller er tilknyttet den tabel de er relevante for. Er en række markeret med fed betyder det at det er en tabel. Pilene indikerer fra hvilken tabel, der er muligt at komme fra og til, via foreign keys.

De relevante foreign keys er: cube_id, dimension_id, hierarchy_id

Figur 2 viser entiteter nødvendige for at vise data om en måling ifm. selve målingssiden i databasen samt resultatvisningen.

Drawio
zoom1
simple0
inComment0
pageId3675881487
custContentId3676045317
lbox1
diagramDisplayNameFigur 2
contentVer1
revision1
baseUrlhttps://starwiki.atlassian.net/wiki
diagramNameFigur 2
pCenter0
width589
links
tbstyle
height505

Anchor
_Ref77076299
_Ref77076299
Anchor
_Ref77076293
_Ref77076293
Figur 2: Logisk relation mellem data til udtræk af metadata til en databank Element side

Figur 3 viser data der skal trækkes ud for alle målinger, tilhørende en undersektion, for at vise relevant data på temasiderne.

Drawio
zoom1
simple0
inComment0
pageId3675881487
custContentId3676241928
lbox1
diagramDisplayNameFig3
contentVer1
revision1
baseUrlhttps://starwiki.atlassian.net/wiki
diagramNameFig3
pCenter0
width589
links
tbstyle
height383

Anchor
_Ref80172259
_Ref80172259
Anchor
_Ref80172254
_Ref80172254
Figur 3: Logisk relation mellem data til udtræk af metadata til en databank Tema side

Anchor
_Toc90992705
_Toc90992705
Forhold der afgør om et hierarki skal vises i databanken

Følgende felter afgør om et hierarki skal vises i databanken:

  • cube_dimensions.is_helper_dimension (ud fra den dimension der er angivet i hierarki-tabellen)

  • maaling_hierarchy.is_selectable

  • maaling_hierarchy.is_active

For at et hierarki skal vises og være muligt at vælge fra igennem databanken, skal følgende gælde:

”cube_dimensions.Is_helper_dimension = False” AND” maaling_hierarchy.is_selectable = True” AND ”maaling_hierarchy.is_active = True”

Et hierarki kan dog godt have ”is_selectable = False” AND ”is_active = True”, dette vil medføre at hierakiet ikke bliver vist til brugeren men det sendes allivel med til stored procedure og vises i resultatviseren.

Anchor
_Toc90992706
_Toc90992706
Indbyggertal

Indbyggertal fandtes i Jobindsats 2.0 som en sorteringsmulighed for område-vælgeren. Denne funktionalitet er ikke blevet prioriteret i Jobindsats 3.0 leverancen. Se historik her: udestående 104.

Anchor
_Toc90992707
_Toc90992707
Data fra Stored procedure

Der bruges sp_ji3_GetDataV1_JSON i databasen JI3_Aggregates, denne stored procedure leverer data formateret som JSON. Dataværdier er formateret med det korrekte antal decimaler når det sendes op fra datamarten, dog vil alle deciamler som slutter på ”0” få fjernet denne præcision. Dette forhindres i frontenden ved at tjekke alle hver enkelt data søjle igennem og finde det tal som har højest præcision og benytte denne til visning, fx: ”1.08” vil medføre at ”1.1” bliver til ”1.10”.

Det eneste data som trækkes fra metadata til resultatvisningen er fodnoter/anmærkninger. Disse bliver trukket sammen med det objekt som bygger vælgersiden, se Figur 2.

Responseobjektet består af et headerobjekt og et dataobjekt, eksempel:

Image RemovedImage Added

Figur 4 Eksempel på responseobjektet fra SP

Headeren består af en blanding af lister og objekter:

  1. Liste indeholdende keys, disse korresponderer en til en med de display name der står er på næste liste. Denne liste bliver længere alt efter hvor mange dimension/measures/members der er valgt af brugeren.

  2. Liste med displaynames som bruges til visning i tabellen.

  3. Dimension: objekt som indeholder alle dimensioner, disse er vist med tilhørende visningsnavn samt underliggende hierarki.

  4. Mgroup: objekt som indeholder alle mgroups med tilhørende visningsnavne. Under en mgroup er de tilhørende measures, såfremt at der kun er tale om enkelt measure/member vil dennes display name være det samme som for Mgruppen, hvis Der er flere vil de have unikke navne.

  5. Valuesets: Primært brugt til at sortere displaynames korrekt i fronten ud fra hierarki ID.

  6. Period: relevante periode data.

  7. Data: liste af lister som hver korresponderer til liste 1 og 2

Når frontenden modtager responseobjektet skal det omstruktureres således at det kan benyttes af PivotTable.js. Dette gøres ved at splitte hver række i dataobjektet op så der kun er 1 talværdi pr. række, samtidigt tilføjes det korresponderende navn fra headeren, eksempel:

Image RemovedImage Added

Anchor
_Ref83375099
_Ref83375099
Figur 5 Transformeret responseobjekt

Som det ses i Figur 5 er de fleste af header navnene bevaret efter transformeringen, der er dog tilføjet ”Målingsværdier” og ”Målinger”. Dette er påkrævet for korrekt visualisering i PivotTable.js. Alle tal er også transformeret til strings som har dansk formatering (fx punktum som tusindtals seperator).

For at kunne vise brugeren de korrekte række- og søjle-displaynavne når der pivoteres indsættes de rigtige visningnavne på de lister som benyttes af PivotTable.js:

Figur 6 Mock objekt med displaynavne og interne navne

Her benyttes det faktum at der er indsat et displaynavn (fx Herkomst) før dets tilhørende interne navn/navne (fx 'oprinda_txt) således at de interne navne kan filtreres væk fra visningen når der pivoteres:

Figur 7 Pivotering UI uden interne navne

Når der så pivoteres flyttes både displayname og interne navne:

Image RemovedImage Added

Figur 8 Mock objekt efter pivotering