605
Kapitel 26
Administration von Data
Warehouse-Datenbanken
Das vorliegende Kapitel beschäftigt sich mit der Administration von Data
Warehouse-Datenbanken. Wie Sie bereits festgestellt haben, gibt es im Data
Warehouse eine Reihe von Besonderheiten, die es von anderen Datenbankanwen-
dungen unterscheidet. Ein bedeutender Unterschied ist die Menge an Daten in
der Datenbank. Nicht selten erreichen DWH-Datenbanken eine Größe von mehre-
ren Terabyte.
Die Aufnahme der Daten stellt technisch kein Problem dar, so kann in Oracle 12c
ein Bigfile Tablespace bis zu 8 Exabyte (8 Millionen Terabyte) aufnehmen. Auch
sind die Kosten für Festplattenspeicher dramatisch gesunken. Die wohl größte
Herausforderung für die Datenbankadministratoren liegen im Erreichen einer
akzeptablen Performance für DSS-Abfragen und den Ladeprozess. Das erfordert
die Ausnutzung der Features, die Oracle für das Data Warehouse zur Verfügung
stellt.
Mit den folgenden Skripten legen Sie ein Star-Schema für die in diesem Kapitel
verwendeten Beispiele an.
Legen Sie zuerst einen Schemabesitzer mit dem Namen dwh an.
SQL> CREATE USER dwh
2 IDENTIFIED BY dwh
3 DEFAULT TABLESPACE users;
Benutzer wurde angelegt.
SQL> GRANT CONNECT, RESOURCE TO dwh;
Benutzerzugriff (Grant) wurde erteilt.
Listing 26.1: Den Besitzer des Star-Schemas anlegen
SQL> -- Erzeugen der Tabellen fuer DWH
SQL> CREATE TABLE time_dim (
2 time_key NUMBER PRIMARY KEY,
3 year VARCHAR2(4),
4 fiscal_quarter NUMBER(2));
Tabelle wurde angelegt.
SQL> CREATE TABLE status_dim (
2 status_key NUMBER PRIMARY KEY,
3 status_desc VARCHAR2(30),
Kapitel 26
Administration von Data Warehouse-Datenbanken
606
4 new_accout VARCHAR2(1),
5 closed_account VARCHAR2(1));
Tabelle wurde angelegt.
SQL> CREATE TABLE product_dim (
2 product_key NUMBER PRIMARY KEY,
3 product_desc VARCHAR2(30),
4 product_type VARCHAR2(10));
Tabelle wurde angelegt.
SQL> CREATE TABLE branch_dim (
2 branch_key NUMBER PRIMARY KEY,
3 branch_name VARCHAR2(30),
4 branch_address VARCHAR2(30),
5 branch_city VARCHAR2(30),
6 branch_state VARCHAR2(2),
7 branch_zip VARCHAR2(5),
8 branch_type VARCHAR2(20));
Tabelle wurde angelegt.
SQL> CREATE TABLE customer_dim (
2 customer_key NUMBER PRIMARY KEY,
3 customer_name1 VARCHAR2(30),
4 customer_name2 VARCHAR2(20),
5 customer_address VARCHAR2(30),
6 customer_city VARCHAR2(20),
7 customer_state VARCHAR2(2),
8 customer_zip VARCHAR2(5),
9 customre_phone VARCHAR2(20));
Tabelle wurde angelegt.
SQL> CREATE TABLE account_facts (
2 customer_key NUMBER,
3 time_key NUMBER,
4 status_key NUMBER,
5 product_key NUMBER,
6 branch_key NUMBER,
7 balance NUMBER(8,2),
8 transactions NUMBER(5),
9 account_number NUMBER(10));
Tabelle wurde angelegt.
SQL> ALTER TABLE account_facts ADD CONSTRAINT fk_acc_cust
2 FOREIGN KEY (customer_key) REFERENCES customer_dim (customer_key);
Tabelle wurde geändert.
SQL> ALTER TABLE account_facts ADD CONSTRAINT fk_acc_time
2 FOREIGN KEY (time_key) REFERENCES time_dim (time_key);
Tabelle wurde geändert.
SQL> ALTER TABLE account_facts ADD CONSTRAINT fk_acc_status
2 FOREIGN KEY (status_key) REFERENCES status_dim (status_key);
Tabelle wurde geändert.
SQL> ALTER TABLE account_facts ADD CONSTRAINT fk_acc_stat
2 FOREIGN KEY (product_key) REFERENCES product_dim (product_key);
Tabelle wurde geändert.
SQL> ALTER TABLE account_facts ADD CONSTRAINT fk_acc_prod
2 FOREIGN KEY (branch_key) REFERENCES branch_dim (branch_key);
Tabelle wurde geändert.
Listing 26.2: Die Tabellen für das Star-Schema erstellen

Get Oracle 12c - Das umfassende Handbuch now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.