标签:
sakila_dwh_schema为sakila样例数据库的一个星型的数据仓库实现。
create_sakila_dwh_account
CREATE USER sakila_dwh IDENTIFIED BY ‘sakila_dwh‘; GRANT ALL PRIVILEGES ON sakila_dwh.* TO sakila_dwh;
sakila_dwh_schema.sql
-- MySQL dump 10.13 Distrib 5.1.37, for debian-linux-gnu (i486) -- -- Host: localhost Database: sakila_dwh -- ------------------------------------------------------ -- Server version 5.1.37-1ubuntu5.1 /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; /*!40103 SET TIME_ZONE=‘+00:00‘ */; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE=‘NO_AUTO_VALUE_ON_ZERO‘ */; /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; -- -- Current Database: ‘sakila_dwh‘ -- CREATE DATABASE /*!32312 IF NOT EXISTS*/ ‘sakila_dwh‘ /*!40100 DEFAULT CHARACTER SET utf8 */; USE ‘sakila_dwh`; -- -- Table structure for table ‘dim_actor‘ -- DROP TABLE IF EXISTS ‘dim_actor`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE ‘dim_actor‘ ( ‘actor_key‘ int(10) NOT NULL AUTO_INCREMENT, ‘actor_last_update‘ datetime NOT NULL, ‘actor_last_name‘ varchar(45) NOT NULL, ‘actor_first_name‘ varchar(45) NOT NULL, ‘actor_id‘ int(11) NOT NULL, PRIMARY KEY (`actor_key`) ) ENGINE=MyISAM AUTO_INCREMENT=201 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Table structure for table ‘dim_customer‘ -- DROP TABLE IF EXISTS ‘dim_customer`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE ‘dim_customer‘ ( ‘customer_key‘ int(8) NOT NULL AUTO_INCREMENT, ‘customer_last_update‘ datetime NOT NULL DEFAULT ‘1970-01-01 00:00:00‘, ‘customer_id‘ int(8) DEFAULT NULL, ‘customer_first_name‘ varchar(45) DEFAULT NULL, ‘customer_last_name‘ varchar(45) DEFAULT NULL, ‘customer_email‘ varchar(50) DEFAULT NULL, ‘customer_active‘ char(3) DEFAULT NULL, ‘customer_created‘ date DEFAULT NULL, ‘customer_address‘ varchar(64) DEFAULT NULL, ‘customer_district‘ varchar(20) DEFAULT NULL, ‘customer_postal_code‘ varchar(10) DEFAULT NULL, ‘customer_phone_number‘ varchar(20) DEFAULT NULL, ‘customer_city‘ varchar(50) DEFAULT NULL, ‘customer_country‘ varchar(50) DEFAULT NULL, ‘customer_version_number‘ smallint(5) DEFAULT NULL, ‘customer_valid_from‘ date DEFAULT NULL, ‘customer_valid_through‘ date DEFAULT NULL, PRIMARY KEY (`customer_key`), KEY ‘customer_id‘ (`customer_id`) USING BTREE ) ENGINE=MyISAM AUTO_INCREMENT=601 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Table structure for table ‘dim_date‘ -- DROP TABLE IF EXISTS ‘dim_date`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE ‘dim_date‘ ( ‘date_key‘ int(8) NOT NULL, ‘date_value‘ date NOT NULL, ‘date_short‘ char(12) NOT NULL, ‘date_medium‘ char(16) NOT NULL, ‘date_long‘ char(24) NOT NULL, ‘date_full‘ char(32) NOT NULL, ‘day_in_year‘ smallint(5) NOT NULL, ‘day_in_month‘ tinyint(3) NOT NULL, ‘is_first_day_in_month‘ char(10) NOT NULL, ‘is_last_day_in_month‘ char(10) NOT NULL, ‘day_abbreviation‘ char(3) NOT NULL, ‘day_name‘ char(12) NOT NULL, ‘week_in_year‘ tinyint(3) NOT NULL, ‘week_in_month‘ tinyint(3) NOT NULL, ‘is_first_day_in_week‘ char(10) NOT NULL, ‘is_last_day_in_week‘ char(10) NOT NULL, ‘month_number‘ tinyint(3) NOT NULL, ‘month_abbreviation‘ char(3) NOT NULL, ‘month_name‘ char(12) NOT NULL, ‘year2‘ char(2) NOT NULL, ‘year4‘ smallint(5) NOT NULL, ‘quarter_name‘ char(2) NOT NULL, ‘quarter_number‘ tinyint(3) NOT NULL, ‘year_quarter‘ char(7) NOT NULL, ‘year_month_number‘ char(7) NOT NULL, ‘year_month_abbreviation‘ char(8) NOT NULL, PRIMARY KEY (`date_key`), UNIQUE KEY ‘date‘ (`date_value`) USING BTREE, UNIQUE KEY ‘date_value‘ (`date_value`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Table structure for table ‘dim_film‘ -- DROP TABLE IF EXISTS ‘dim_film`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE ‘dim_film‘ ( ‘film_key‘ int(8) NOT NULL AUTO_INCREMENT, ‘film_last_update‘ datetime NOT NULL, ‘film_title‘ varchar(64) NOT NULL, ‘film_description‘ text NOT NULL, ‘film_release_year‘ smallint(5) NOT NULL, ‘film_language‘ varchar(20) NOT NULL, ‘film_original_language‘ varchar(20) NOT NULL, ‘film_rental_duration‘ tinyint(3) DEFAULT NULL, ‘film_rental_rate‘ decimal(4,2) DEFAULT NULL, ‘film_duration‘ int(8) DEFAULT NULL, ‘film_replacement_cost‘ decimal(5,2) DEFAULT NULL, ‘film_rating_code‘ char(5) DEFAULT NULL, ‘film_rating_text‘ varchar(30) DEFAULT NULL, ‘film_has_trailers‘ char(4) DEFAULT NULL, ‘film_has_commentaries‘ char(4) DEFAULT NULL, ‘film_has_deleted_scenes‘ char(4) DEFAULT NULL, ‘film_has_behind_the_scenes‘ char(4) DEFAULT NULL, ‘film_in_category_action‘ char(4) DEFAULT NULL, ‘film_in_category_animation‘ char(4) DEFAULT NULL, ‘film_in_category_children‘ char(4) DEFAULT NULL, ‘film_in_category_classics‘ char(4) DEFAULT NULL, ‘film_in_category_comedy‘ char(4) DEFAULT NULL, ‘film_in_category_documentary‘ char(4) DEFAULT NULL, ‘film_in_category_drama‘ char(4) DEFAULT NULL, ‘film_in_category_family‘ char(4) DEFAULT NULL, ‘film_in_category_foreign‘ char(4) DEFAULT NULL, ‘film_in_category_games‘ char(4) DEFAULT NULL, ‘film_in_category_horror‘ char(4) DEFAULT NULL, ‘film_in_category_music‘ char(4) DEFAULT NULL, ‘film_in_category_new‘ char(4) DEFAULT NULL, ‘film_in_category_scifi‘ char(4) DEFAULT NULL, ‘film_in_category_sports‘ char(4) DEFAULT NULL, ‘film_in_category_travel‘ char(4) DEFAULT NULL, ‘film_id‘ int(11) NOT NULL, PRIMARY KEY (`film_key`) ) ENGINE=MyISAM AUTO_INCREMENT=1001 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Table structure for table ‘dim_film_actor_bridge‘ -- DROP TABLE IF EXISTS ‘dim_film_actor_bridge`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE ‘dim_film_actor_bridge‘ ( ‘film_key‘ int(8) NOT NULL, ‘actor_key‘ int(10) NOT NULL, ‘actor_weighting_factor‘ decimal(3,2) NOT NULL, PRIMARY KEY (`film_key`,`actor_key`), KEY ‘dim_actor_dim_film_actor_bridge_fk‘ (`actor_key`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Table structure for table ‘dim_staff‘ -- DROP TABLE IF EXISTS ‘dim_staff`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE ‘dim_staff‘ ( ‘staff_key‘ int(8) NOT NULL AUTO_INCREMENT, ‘staff_last_update‘ datetime NOT NULL DEFAULT ‘1970-01-01 00:00:00‘, ‘staff_first_name‘ varchar(45) DEFAULT NULL, ‘staff_last_name‘ varchar(45) DEFAULT NULL, ‘staff_id‘ int(8) DEFAULT NULL, ‘staff_store_id‘ int(8) DEFAULT NULL, ‘staff_version_number‘ smallint(5) DEFAULT NULL, ‘staff_valid_from‘ date DEFAULT NULL, ‘staff_valid_through‘ date DEFAULT NULL, ‘staff_active‘ char(3) DEFAULT NULL, PRIMARY KEY (`staff_key`), KEY ‘staff_id‘ (`staff_id`) USING BTREE ) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Table structure for table ‘dim_store‘ -- DROP TABLE IF EXISTS ‘dim_store`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE ‘dim_store‘ ( ‘store_key‘ int(8) NOT NULL AUTO_INCREMENT, ‘store_last_update‘ datetime NOT NULL DEFAULT ‘1970-01-01 00:00:00‘, ‘store_id‘ int(8) DEFAULT NULL, ‘store_address‘ varchar(64) DEFAULT NULL, ‘store_district‘ varchar(20) DEFAULT NULL, ‘store_postal_code‘ varchar(10) DEFAULT NULL, ‘store_phone_number‘ varchar(20) DEFAULT NULL, ‘store_city‘ varchar(50) DEFAULT NULL, ‘store_country‘ varchar(50) DEFAULT NULL, ‘store_manager_staff_id‘ int(8) DEFAULT NULL, ‘store_manager_first_name‘ varchar(45) DEFAULT NULL, ‘store_manager_last_name‘ varchar(45) DEFAULT NULL, ‘store_version_number‘ smallint(5) DEFAULT NULL, ‘store_valid_from‘ date DEFAULT NULL, ‘store_valid_through‘ date DEFAULT NULL, PRIMARY KEY (`store_key`), KEY ‘store_id‘ (`store_id`) USING BTREE ) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Table structure for table ‘dim_time‘ -- DROP TABLE IF EXISTS ‘dim_time`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE ‘dim_time‘ ( ‘time_key‘ int(8) NOT NULL, ‘time_value‘ time NOT NULL, ‘hours24‘ tinyint(3) NOT NULL, ‘hours12‘ tinyint(3) DEFAULT NULL, ‘minutes‘ tinyint(3) DEFAULT NULL, ‘seconds‘ tinyint(3) DEFAULT NULL, ‘am_pm‘ char(3) DEFAULT NULL, PRIMARY KEY (`time_key`), UNIQUE KEY ‘time_value‘ (`time_value`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Table structure for table ‘fact_rental‘ -- DROP TABLE IF EXISTS ‘fact_rental`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE ‘fact_rental‘ ( ‘customer_key‘ int(8) NOT NULL, ‘staff_key‘ int(8) NOT NULL, ‘film_key‘ int(8) NOT NULL, ‘store_key‘ int(8) NOT NULL, ‘rental_date_key‘ int(8) NOT NULL, ‘return_date_key‘ int(10) NOT NULL, ‘rental_time_key‘ int(8) NOT NULL, ‘count_returns‘ int(10) NOT NULL, ‘count_rentals‘ int(8) NOT NULL, ‘rental_duration‘ int(11) DEFAULT NULL, ‘rental_last_update‘ datetime DEFAULT NULL, ‘rental_id‘ int(11) DEFAULT NULL, KEY ‘dim_store_fact_rental_fk‘ (`store_key`), KEY ‘dim_staff_fact_rental_fk‘ (`staff_key`), KEY ‘dim_time_fact_rental_fk‘ (`rental_time_key`), KEY ‘dim_film_fact_rental_fk‘ (`film_key`), KEY ‘dim_date_fact_rental_fk‘ (`rental_date_key`), KEY ‘dim_customer_fact_rental_fk‘ (`customer_key`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; -- Dump completed on 2010-03-04 1:00:33
create_sakila_dwh_account
/*第1步:创建临时表空间 */ create temporary tablespace odi_temp tempfile ‘C:\app\ORACLE\oradata\orcl\odi_temp.dbf‘ size 50m autoextend on next 50m maxsize 20480m extent management local; /*第2步:创建数据表空间 */ create tablespace odi_data logging datafile ‘C:\app\ORACLE\oradata\orcl\odi_data.dbf‘ size 50m autoextend on next 50m maxsize 20480m extent management local; /*第3步:创建用户并指定表空间 */ create user sakila_dwh identified by sakila_dwh default tablespace odi_data temporary tablespace odi_temp quota unlimited on odi_data profile default ; /*第4步:给用户授予权限 */ grant connect,resource to sakila_dwh; grant create view to sakila_dwh;
sakila_dwh_schema.sql
1 /* 2 Oracle Client Version : 12.1.0.1.0 3 4 Source Server : sakila_dwh 5 Source Server Version : 120100 6 Source Host : localhost:1521 7 Source Schema : SAKILA_DWH 8 9 Date: 2015-04-18 18:37:10 10 */ 11 12 13 -- ---------------------------- 14 -- Table structure for DIM_ACTOR 15 -- ---------------------------- 16 DROP TABLE "SAKILA_DWH"."DIM_ACTOR"; 17 CREATE TABLE "SAKILA_DWH"."DIM_ACTOR" ( 18 "ACTOR_KEY" NUMBER(11) NOT NULL , 19 "ACTOR_LAST_UPDATE" DATE NOT NULL , 20 "ACTOR_LAST_NAME" VARCHAR2(45) NOT NULL , 21 "ACTOR_FIRST_NAME" VARCHAR2(45) NOT NULL , 22 "ACTOR_ID" NUMERIC NOT NULL , 23 PRIMARY KEY ("ACTOR_KEY") 24 ); 25 26 -- ---------------------------- 27 -- Table structure for DIM_CUSTOMER 28 -- ---------------------------- 29 DROP TABLE "SAKILA_DWH"."DIM_CUSTOMER"; 30 CREATE TABLE "SAKILA_DWH"."DIM_CUSTOMER" ( 31 "CUSTOMER_KEY" NUMBER(11) NOT NULL , 32 "CUSTOMER_LAST_UPDATE" DATE DEFAULT TO_DATE (‘1970-01-01 00:00:00‘,‘SYYYY-MM-DD HH24:MI:SS‘) NOT NULL , 33 "CUSTOMER_ID" NUMBER(11) , 34 "CUSTOMER_FIRST_NAME" VARCHAR2(45) , 35 "CUSTOMER_LAST_NAME" VARCHAR2(45) , 36 "CUSTOMER_EMAIL" VARCHAR2(50) , 37 "CUSTOMER_ACTIVE" CHAR(3) , 38 "CUSTOMER_CREATED" DATE , 39 "CUSTOMER_ADDRESS" VARCHAR2(64) , 40 "CUSTOMER_DISTRICT" VARCHAR2(20) , 41 "CUSTOMER_POSTAL_CODE" VARCHAR2(10) , 42 "CUSTOMER_PHONE_NUMBER" VARCHAR2(20) , 43 "CUSTOMER_CITY" VARCHAR2(50) , 44 "CUSTOMER_COUNTRY" VARCHAR2(50) , 45 "CUSTOMER_VERSION_NUMBER" NUMBER(6) , 46 "CUSTOMER_VALID_FROM" DATE , 47 "CUSTOMER_VALID_THROUGH" DATE , 48 PRIMARY KEY ("CUSTOMER_KEY") 49 ); 50 -- ---------------------------- 51 -- Indexes structure for table DIM_CUSTOMER 52 -- ---------------------------- 53 CREATE INDEX "SAKILA_DWH"."IDX_CUSTOMER_ID" ON "SAKILA_DWH"."DIM_CUSTOMER" ("CUSTOMER_ID"); 54 55 56 -- ---------------------------- 57 -- Table structure for DIM_DATE 58 -- ---------------------------- 59 DROP TABLE "SAKILA_DWH"."DIM_DATE"; 60 CREATE TABLE "SAKILA_DWH"."DIM_DATE" ( 61 "DATE_KEY" NUMBER(11) NOT NULL , 62 "DATE_VALUE" DATE NOT NULL , 63 "DATE_SHORT" CHAR(12) NOT NULL , 64 "DATE_MEDIUM" CHAR(16) NOT NULL , 65 "DATE_LONG" CHAR(24) NOT NULL , 66 "DATE_FULL" CHAR(32) NOT NULL , 67 "DAY_IN_YEAR" NUMBER(6) NOT NULL , 68 "DAY_IN_MONTH" NUMBER(4) NOT NULL , 69 "IS_FIRST_DAY_IN_MONTH" CHAR(10) NOT NULL , 70 "IS_LAST_DAY_IN_MONTH" CHAR(10) NOT NULL , 71 "DAY_ABBREVIATION" CHAR(3) NOT NULL , 72 "DAY_NAME" CHAR(12) NOT NULL , 73 "WEEK_IN_YEAR" NUMBER(4) NOT NULL , 74 "WEEK_IN_MONTH" NUMBER(4) NOT NULL , 75 "IS_FIRST_DAY_IN_WEEK" CHAR(10) NOT NULL , 76 "IS_LAST_DAY_IN_WEEK" CHAR(10) NOT NULL , 77 "MONTH_NUMBER" NUMBER(4) NOT NULL , 78 "MONTH_ABBREVIATION" CHAR(3) NOT NULL , 79 "MONTH_NAME" CHAR(12) NOT NULL , 80 "YEAR2" CHAR(2) NOT NULL , 81 "YEAR4" NUMBER(6) NOT NULL , 82 "QUARTER_NAME" CHAR(2) NOT NULL , 83 "QUARTER_NUMBER" NUMBER(4) NOT NULL , 84 "YEAR_QUARTER" CHAR(7) NOT NULL , 85 "YEAR_MONTH_NUMBER" CHAR(7) NOT NULL , 86 "YEAR_MONTH_ABBREVIATION" CHAR(8) NOT NULL , 87 PRIMARY KEY ("DATE_KEY") 88 ); 89 90 -- ---------------------------- 91 -- Indexes structure for table DIM_DATE 92 -- ---------------------------- 93 CREATE INDEX "SAKILA_DWH"."IDX_DATE_VALUE" ON "SAKILA_DWH"."DIM_DATE" ("DATE_VALUE" ); 94 95 96 97 -- ---------------------------- 98 -- Table structure for DIM_FILM 99 -- ---------------------------- 100 DROP TABLE "SAKILA_DWH"."DIM_FILM"; 101 CREATE TABLE "SAKILA_DWH"."DIM_FILM" ( 102 "FILM_KEY" NUMBER(11) NOT NULL , 103 "FILM_LAST_UPDATE" DATE NOT NULL , 104 "FILM_TITLE" VARCHAR2(64) NOT NULL , 105 "FILM_DESCRIPTION" NCLOB NOT NULL , 106 "FILM_RELEASE_YEAR" NUMBER(6) NOT NULL , 107 "FILM_LANGUAGE" VARCHAR2(20) NOT NULL , 108 "FILM_ORIGINAL_LANGUAGE" VARCHAR2(20) NOT NULL , 109 "FILM_RENTAL_DURATION" NUMBER(4) , 110 "FILM_RENTAL_RATE" NUMBER , 111 "FILM_DURATION" NUMBER(11) , 112 "FILM_REPLACEMENT_COST" NUMBER , 113 "FILM_RATING_CODE" CHAR(5) , 114 "FILM_RATING_TEXT" VARCHAR2(30) , 115 "FILM_HAS_TRAILERS" CHAR(4) , 116 "FILM_HAS_COMMENTARIES" CHAR(4) , 117 "FILM_HAS_DELETED_SCENES" CHAR(4) , 118 "FILM_HAS_BEHIND_THE_SCENES" CHAR(4) , 119 "FILM_IN_CATEGORY_ACTION" CHAR(4) , 120 "FILM_IN_CATEGORY_ANIMATION" CHAR(4) , 121 "FILM_IN_CATEGORY_CHILDREN" CHAR(4) , 122 "FILM_IN_CATEGORY_CLASSICS" CHAR(4) , 123 "FILM_IN_CATEGORY_COMEDY" CHAR(4) , 124 "FILM_IN_CATEGORY_DOCUMENTARY" CHAR(4) , 125 "FILM_IN_CATEGORY_DRAMA" CHAR(4) , 126 "FILM_IN_CATEGORY_FAMILY" CHAR(4) , 127 "FILM_IN_CATEGORY_FOREIGN" CHAR(4) , 128 "FILM_IN_CATEGORY_GAMES" CHAR(4) , 129 "FILM_IN_CATEGORY_HORROR" CHAR(4) , 130 "FILM_IN_CATEGORY_MUSIC" CHAR(4) , 131 "FILM_IN_CATEGORY_NEW" CHAR(4) , 132 "FILM_IN_CATEGORY_SCIFI" CHAR(4) , 133 "FILM_IN_CATEGORY_SPORTS" CHAR(4) , 134 "FILM_IN_CATEGORY_TRAVEL" CHAR(4) , 135 "FILM_ID" NUMBER(11) NOT NULL , 136 PRIMARY KEY ("FILM_KEY") 137 ); 138 139 -- ---------------------------- 140 -- Table structure for DIM_FILM_ACTOR_BRIDGE 141 -- ---------------------------- 142 DROP TABLE "SAKILA_DWH"."DIM_FILM_ACTOR_BRIDGE"; 143 CREATE TABLE "SAKILA_DWH"."DIM_FILM_ACTOR_BRIDGE" ( 144 "FILM_KEY" NUMBER(11) NOT NULL , 145 "ACTOR_KEY" NUMBER(11) NOT NULL , 146 "ACTOR_WEIGHTING_FACTOR" NUMBER NOT NULL , 147 PRIMARY KEY ("FILM_KEY", "ACTOR_KEY") 148 ); 149 150 -- ---------------------------- 151 -- Indexes structure for table DIM_FILM_ACTOR_BRIDGE 152 -- ---------------------------- 153 CREATE INDEX "SAKILA_DWH"."IDX_ACTOR_KEY" ON "SAKILA_DWH"."DIM_FILM_ACTOR_BRIDGE" ("ACTOR_KEY" ); 154 155 156 157 -- ---------------------------- 158 -- Table structure for DIM_STAFF 159 -- ---------------------------- 160 DROP TABLE "SAKILA_DWH"."DIM_STAFF"; 161 CREATE TABLE "SAKILA_DWH"."DIM_STAFF" ( 162 "STAFF_KEY" NUMBER(11) NOT NULL , 163 "STAFF_LAST_UPDATE" DATE DEFAULT TO_DATE (‘1970-01-01 00:00:00‘,‘SYYYY-MM-DD HH24:MI:SS‘) NOT NULL , 164 "STAFF_FIRST_NAME" VARCHAR2(45) , 165 "STAFF_LAST_NAME" VARCHAR2(45) , 166 "STAFF_ID" NUMBER(11) , 167 "STAFF_STORE_ID" NUMBER(11) , 168 "STAFF_VERSION_NUMBER" NUMBER(6) , 169 "STAFF_VALID_FROM" DATE , 170 "STAFF_VALID_THROUGH" DATE , 171 "STAFF_ACTIVE" CHAR(3) , 172 PRIMARY KEY ("STAFF_KEY") 173 ); 174 175 -- ---------------------------- 176 -- Indexes structure for table DIM_STAFF 177 -- ---------------------------- 178 CREATE INDEX "SAKILA_DWH"."IDX_STAFF_ID" ON "SAKILA_DWH"."DIM_STAFF" ("STAFF_ID"); 179 180 181 182 -- ---------------------------- 183 -- Table structure for DIM_STORE 184 -- ---------------------------- 185 DROP TABLE "SAKILA_DWH"."DIM_STORE"; 186 CREATE TABLE "SAKILA_DWH"."DIM_STORE" ( 187 "STORE_KEY" NUMBER(11) NOT NULL , 188 "STORE_LAST_UPDATE" DATE DEFAULT TO_DATE (‘1970-01-01 00:00:00‘,‘SYYYY-MM-DD HH24:MI:SS‘) NOT NULL , 189 "STORE_ID" NUMBER(11) , 190 "STORE_ADDRESS" VARCHAR2(64) , 191 "STORE_DISTRICT" VARCHAR2(20) , 192 "STORE_POSTAL_CODE" VARCHAR2(10) , 193 "STORE_PHONE_NUMBER" VARCHAR2(20) , 194 "STORE_CITY" VARCHAR2(50) , 195 "STORE_COUNTRY" VARCHAR2(50) , 196 "STORE_MANAGER_STAFF_ID" NUMBER(11) , 197 "STORE_MANAGER_FIRST_NAME" VARCHAR2(45) , 198 "STORE_MANAGER_LAST_NAME" VARCHAR2(45) , 199 "STORE_VERSION_NUMBER" NUMBER(6) , 200 "STORE_VALID_FROM" DATE , 201 "STORE_VALID_THROUGH" DATE , 202 PRIMARY KEY ("STORE_KEY") 203 ); 204 205 -- ---------------------------- 206 -- Indexes structure for table DIM_STORE 207 -- ---------------------------- 208 CREATE INDEX "SAKILA_DWH"."IDX_STORE_ID" ON "SAKILA_DWH"."DIM_STORE" ("STORE_ID"); 209 210 -- ---------------------------- 211 -- Table structure for DIM_TIME 212 -- ---------------------------- 213 DROP TABLE "SAKILA_DWH"."DIM_TIME"; 214 CREATE TABLE "SAKILA_DWH"."DIM_TIME" ( 215 "TIME_KEY" NUMBER(11) NOT NULL , 216 "TIME_VALUE" VARCHAR2(255 BYTE) NOT NULL , 217 "HOURS24" NUMBER(4) NOT NULL , 218 "HOURS12" NUMBER(4) , 219 "MINUTES" NUMBER(4) , 220 "SECONDS" NUMBER(4) , 221 "AM_PM" CHAR(3) , 222 PRIMARY KEY ("TIME_KEY") 223 ); 224 -- ---------------------------- 225 -- Indexes structure for table DIM_TIME 226 -- ---------------------------- 227 CREATE INDEX "SAKILA_DWH"."IDX_TIME_VALUE" ON "SAKILA_DWH"."DIM_TIME" ("TIME_VALUE"); 228 229 230 -- ---------------------------- 231 -- Table structure for FACT_RENTAL 232 -- ---------------------------- 233 DROP TABLE "SAKILA_DWH"."FACT_RENTAL"; 234 CREATE TABLE "SAKILA_DWH"."FACT_RENTAL" ( 235 "CUSTOMER_KEY" NUMBER(11) NOT NULL , 236 "STAFF_KEY" NUMBER(11) NOT NULL , 237 "FILM_KEY" NUMBER(11) NOT NULL , 238 "STORE_KEY" NUMBER(11) NOT NULL , 239 "RENTAL_DATE_KEY" CHAR(8) NOT NULL , 240 "RETURN_DATE_KEY" CHAR(10) NOT NULL , 241 "RENTAL_TIME_KEY" CHAR(8) NOT NULL , 242 "COUNT_RETURNS" NUMBER(11) NOT NULL , 243 "COUNT_RENTALS" NUMBER(11) NOT NULL , 244 "RENTAL_DURATION" NUMBER(11) , 245 "RENTAL_LAST_UPDATE" DATE , 246 "RENTAL_ID" NUMBER(11) 247 ); 248 249 -- ---------------------------- 250 -- Indexes structure for table FACT_RENTAL 251 -- ---------------------------- 252 CREATE INDEX "SAKILA_DWH"."DIM_CUSTOMER_FACT_RENTAL_FK" 253 ON "SAKILA_DWH"."FACT_RENTAL" ("CUSTOMER_KEY" ) 254 ; 255 CREATE INDEX "SAKILA_DWH"."DIM_DATE_FACT_RENTAL_FK" 256 ON "SAKILA_DWH"."FACT_RENTAL" ("RENTAL_DATE_KEY" ) 257 ; 258 CREATE INDEX "SAKILA_DWH"."DIM_FILM_FACT_RENTAL_FK" 259 ON "SAKILA_DWH"."FACT_RENTAL" ("FILM_KEY" ) 260 ; 261 CREATE INDEX "SAKILA_DWH"."DIM_STAFF_FACT_RENTAL_FK" 262 ON "SAKILA_DWH"."FACT_RENTAL" ("STAFF_KEY" ) 263 ; 264 CREATE INDEX "SAKILA_DWH"."DIM_STORE_FACT_RENTAL_FK" 265 ON "SAKILA_DWH"."FACT_RENTAL" ("STORE_KEY" ) 266 ; 267 CREATE INDEX "SAKILA_DWH"."DIM_TIME_FACT_RENTAL_FK" 268 ON "SAKILA_DWH"."FACT_RENTAL" ("RENTAL_TIME_KEY" ) 269 ;
标签:
原文地址:http://www.cnblogs.com/xqzt/p/4438749.html