Switch to full style
Hier werden alle Data Warehouse-Themen im Microsoft-Umfeld behandelt...
Thema gesperrt

Datenmodellierung für ein Stern-Schema

Mi 16. Nov 2016, 16:44

Hi Rainer,

die Frage ist jetzt noch ein Extra Thread dafür? :)

Naja hier ist schon mal ein Anfang, so wie ich das mir ungefähr gedacht habe mit minimaler anzahl an Spalten( hab schon was mit mehr spalten usw sind aber alles Geschäftsdaten):

CREATE TABLE factAufträge(
f_id bigint identity(1,1) not null,
f_auftragsnummer int not null,
f_position int not null,
f_artikelnummer int not null,
f_auftragsmenge decimal(18,4) not null,
f_datekey bigint not null,
f_timekey bigint not null,
f_preis decimal(18,4) not null,
f_kunde bigint not null,
f_besteller_id bigint not null,
f_verarbeiter_id bigint not null)

CREATE TABLE dimBenutzer(
u_id bigint identity(1,1) not null,
u_vorname varchar(50) not null,
u_nachname varchar(100) not null,
u_istBesteller bit not null,
u_vonKunde bigint)

CREATE TABLE dimKunden(
k_id bigint identity(1,1) not null,
k_nummer bigint not null,
k_name varchar(150) not null,
k_plz int not null,
k_ort varchar(150) not null,
k_straße varchar(150) not null,
k_telefonnummer varchar(50) not null)

CREATE TABLE dimArtikel(
a_id bigint identity(1,1) not null,
a_artikelnummer varchar(50) not null,
a_preis decimal(18,4) not null,
a_artikeltext varchar(200) not null,
a_artikelbezeichnung varchar(8000) not null)

INSERT INTO dimArtikel(a_artikelnummer,a_preis,a_artikeltext,a_artikelbezeichnung)
VALUES(4711,13.37,'ein Artikel', 'das ist die Bezeichnung von ein Artikel...')

INSERT INTO dimKunden(k_nummer,k_name,k_plz,k_ort,k_straße,k_telefonnummer)
VALUES(1234,'der Kunde GmbH',14109,'Berlin','Berliner Straße 4','03012345678')

INSERT INTO dimBenutzer(u_vorname,u_nachname,u_istBesteller,u_vonKunde)
VALUES('Bob','Bobsen',0,NULL)

INSERT INTO dimBenutzer(u_vorname,u_nachname,u_istBesteller,u_vonKunde)
VALUES('Sarah','Lombardie',1,1234)


INSERT INTO factAufträge(f_auftragsnummer,f_position,f_artikelnummer,f_auftragsmenge, f_datekey,f_timekey,
f_preis,f_kunde,f_besteller_id,f_verarbeiter_id)
VALUES(1,1,4711,5,20161116,140523,13.37,1234,1,2)

Re: Datenmodellierung für ein Stern-Schema

Fr 18. Nov 2016, 16:11

Hi Chucky,

sieht ja nicht schlecht. Aber deine Faktentabelle verstehe ich nicht ganz.
Den Auftrag würde ich eine Dimension auslagern.

Menge und Umsatz sind klassische Kennzahlen, die in eine Faktentabelle gehören.

Gruß,
Rainer

Re: Datenmodellierung für ein Stern-Schema

Fr 18. Nov 2016, 16:15

Hi Rainer,

ok dann hab ich dazu eine Frage: Was genau gehört dann demzufolge in eine Faktentabelle?

Grüße

Re: Datenmodellierung für ein Stern-Schema

Fr 18. Nov 2016, 17:06

Hi Chucky,

eigentlich nur Fremdschlüssel und numerische Werte wie Menge, Preis, Umsatz.

Wird es ein Star-Schema oder Snowflake-Schema?

-
Rainer

Re: Datenmodellierung für ein Stern-Schema

Fr 18. Nov 2016, 21:21

Da ich noch am Anfang bin dürfte ein Star-Schema vermutlich das richtigere sein. :)

Ok das da "nur" fremdschlüssel / numerische Werte in einer Faktentabelle sind hab ich auch schon oft gelesen, versteh aber net ganz was an meiner Beispiel Faktentabelle falsch oder nicht ganz richtig is :?: :?

Re: Datenmodellierung für ein Stern-Schema

Do 24. Nov 2016, 15:14

Hallo Chucky,

ich hätte die Faktentabelle folgendermaßen aufgebaut:

Code:
CREATE TABLE FactAuftrag(
SID bigint identity(1,1) not null,
Datum_SID bigint not null,
Auftrag_SID bigint not null,
Artikel_SID bigint not null,
Kunde_SID bigint not null,
Besteller_SID bigint not null,
Verarbeiter_SID bigint not null,
EUR decimal(18,6) not null);

Eine reine Tabelle aus Fremdschlüsseln - SIDs und Measures...

Re: Datenmodellierung für ein Stern-Schema

Do 24. Nov 2016, 15:41

Hi Rainer,

ahh ok ich glaube jetzt langsam wird das Licht heller :)

Sprich also das die Auftrag_SID 345 verweist in der Auftragsdimension auf den Auftrag 4711 mit der SID 345?

Re: Datenmodellierung für ein Stern-Schema

Mo 28. Nov 2016, 14:25

Ja, genau so ist das.
Natürlich wirst Du noch weitere Attribute als Filter nehmen, z.B. Datum und Kunden.

-
Rainer

Re: Datenmodellierung für ein Stern-Schema

Fr 2. Dez 2016, 14:38

Hallo Rainer :)

ich habe mir nochmal die KundenDimension angeschaut und festgestellt das diese glaube ich suboptimal ist in meinen Szenario.

Wir haben einen Regulierer, dieser kann aber N-Stationen haben. Ich hab aus einer Kunden Dimension jetzt eine Regulierer DImension und Station gemacht. Beide sind über einen FK miteinander verbunden

Ist das so sinnvoll?

Hier die (vorläufigen)Scripte:

create table regulierer
(
reg_sid bigint identity(1,1) not null,
reg_matchcode varchar(200) not null,
reg_nummer bigint not null primary key,
region_sid bigint not null,
reg_ort varchar(500) not null,
reg_plz int not null,
reg_straße varchar(100) not null,
reg_hausnr int not null,
reg_adresszusatz varchar(100) not null,
reg_telefon varchar(100),
reg_fax varchar(100)
);

CREATE TABLE stationen
(
stat_sid bigint identity(1,1) not null,
reg_nummer bigint not null
references dbo.regulierer (reg_nummer)
on update cascade,
stat_nummer bigint not null,
stat_matchcode varchar(200) not null
);


Viele Grüße
Thema gesperrt