http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/6f5d4cc4/docs/spj_guide/src/asciidoc/_chapters/sample_database.adoc
----------------------------------------------------------------------
diff --git a/docs/spj_guide/src/asciidoc/_chapters/sample_database.adoc 
b/docs/spj_guide/src/asciidoc/_chapters/sample_database.adoc
index 6ee790c..db1fd42 100644
--- a/docs/spj_guide/src/asciidoc/_chapters/sample_database.adoc
+++ b/docs/spj_guide/src/asciidoc/_chapters/sample_database.adoc
@@ -26,791 +26,159 @@
 This appendix presents the Sample Database schemas and tables on which
 the SPJs in this manual operate:
 
-* link:#_bookmark338["PERSNL Schema" (page 103)]
-** link:#_bookmark340["JOB Table" (page 103)]
-** link:#_bookmark342["EMPLOYEE Table" (page 104)]
-** link:#_bookmark344["DEPT Table" (page 106)]
-** link:#_bookmark346["PROJECT Table" (page 107)]
-* link:#_bookmark348["SALES Schema" (page 110)]
-** link:#_bookmark350["CUSTOMER Table" (page 110)]
-** link:#_bookmark352["ORDERS Table" (page 111)]
-** link:#_bookmark354["ODETAIL Table" (page 112)]
-** link:#_bookmark356["PARTS Table" (page 114)]
-* link:#_bookmark358["INVENT Schema" (page 115)]
-** link:#_bookmark360["SUPPLIER Table" (page 115)]
-** link:#_bookmark362["PARTSUPP Table" (page 116)]
-** link:#_bookmark364["PARTLOC Table" (page 119)]
+* <<persnl-schema, PERSNL Schema>>
+** <<job-table, JOB Table>>
+** <<employee-table, EMPLOYEE Table>>
+** <<dept-table, DEPT Table>>
+** <<project-table, PROJECT Table>>
+* <<sales-schema, SALES Schema>>
+** <<customer-table, CUSTOMER Table>>
+** <<orders-table, ORDERS Table>>
+** <<odetail-table, ODETAIL Table>>
+** <<parts-table, PARTS Table>>
+* <<invent-schema, INVENT Schema>>
+** <<supplier-table, SUPPLIER Table>>
+** <<partsupp-table, PARTSUPP Table>>
+** <<partloc-table, PARTLOC Table>>
+
+Click on the link for the schema or table name to download the definition file.
 
 [[persnl-schema]]
 == PERSNL Schema
 
-The PERSNL schema stores employee data.
+The link:resources/source/persnl_schema.sql[`PERSNL` schema] stores employee 
data.
 
-```
-CREATE SCHEMA DEMO.PERSNL ;
-SET SCHEMA DEMO.PERSNL ;
-```
+[source, sql]
+----
+include::{sourcedir}/persnl_schema.sql[PERSNL Schema Definition File]
+----
 
 [[job-table]]
 === JOB Table
 
-```
-CREATE TABLE demo.persnl.job
-( jobcode NUMERIC (4)  UNSIGNED NO DEFAULT  NOT NULL
-, jobdesc VARCHAR (18)          DEFAULT ' ' NOT NULL
-, PRIMARY KEY (jobcode)
-) ;
-
-INSERT INTO demo.persnl.job VALUES
-  ( 100, 'MANAGER' )
-, ( 200, 'PRODUCTION SUPV' )
-, ( 250, 'ASSEMBLER' )
-, ( 300, 'SALESREP' )
-, ( 400, 'SYSTEM ANALYST' )
-, ( 420, 'ENGINEER' )
-, ( 450, 'PROGRAMMER' )
-, ( 500, 'ACCOUNTANT' )
-, ( 600, 'ADMINISTRATOR' )
-, ( 900, 'SECRETARY' )
-;
-
-UPDATE STATISTICS FOR TABLE demo.persnl.job ON EVERY COLUMN;
-```
+The link:resources/source/persnl_job_table.sql[`JOB` table] maps job codes to 
job descriptions.
+
+[source, sql]
+----
+include::{sourcedir}/persnl_job_table.sql[PERSNL JOB Table Definition File]
+----
 
 [[employee-table]]
 === EMPLOYEE Table
 
-```
-CREATE TABLE demo.persnl.employee
-( empnum     NUMERIC (4)    UNSIGNED NO DEFAULT  NOT NULL
-, first_name CHARACTER (15)          DEFAULT ' ' NOT NULL
-, last_name  CHARACTER (20)          DEFAULT ' ' NOT NULL
-, deptnum    NUMERIC (4)    UNSIGNED NO DEFAULT  NOT NULL
-, jobcode    NUMERIC (4)    UNSIGNED DEFAULT     NULL
-, salary     NUMERIC (8, 2) UNSIGNED DEFAULT     NULL
-, PRIMARY KEY (empnum)
-);
-
-ALTER TABLE demo.persnl.employee
-   ADD CONSTRAINT empnum_constrnt CHECK (empnum BETWEEN 0001 AND 9999)
-   ;
-
-CREATE INDEX xempname ON employee
-( last_name
-, first_name
-) ;
-
-CREATE INDEX xempdept ON employee
-( deptnum
-) ;
-
-CREATE VIEW demo.persnl.emplist AS
-SELECT
-  empnum
-, first_name
-, last_name
-, deptnum
-, jobcode
-FROM employee
-;
-
-INSERT INTO demo.persnl.employee VALUES
-  (  1,  'ROGER',    'GREEN',      9000, 100,  175500.00 )
-, ( 23,  'JERRY',    'HOWARD',     1000, 100,  137000.10 )
-, ( 29,  'JANE',     'RAYMOND',    3000, 100,  136000.00 )
-, ( 32,  'THOMAS',   'RUDLOFF',    2000, 100,  138000.40 )
-, ( 39,  'KLAUS ',   'SAFFERT',    3200, 100,  75000.00  )
-, ( 43,  'PAUL',     'WINTER',     3100, 100,  90000.00  )
-, ( 65,  'RACHEL',   'MCKAY',      4000, 100,  118000.00 )
-, ( 72,  'GLENN',    'THOMAS',     3300, 100,  80000.00  )
-, ( 75,  'TIM',      'WALKER',     3000, 300,  32000.00  )
-, ( 87,  'ERIC',     'BROWN',      4000, 400,  89000.00  )
-, ( 89,  'PETER',    'SMITH',      3300, 300,  37000.40  )
-, ( 93,  'DONALD',   'TAYLOR',     3100, 300,  33000.00  )
-, ( 104, 'DAVID',    'STRAND',     4000, 400,  69000.00  )
-, ( 109, 'STEVE',    'COOK',       4000, 400,  68000.00  )
-, ( 111, 'SHERRIE',  'WONG',       3500, 100,  70000.00  )
-, ( 178, 'JOHN',     'CHOU',       3500, 900,  28000.00  )
-, ( 180, 'MANFRED',  'CONRAD',     4000, 450,  32000.00  )
-, ( 201, 'JIM',      'HERMAN',     3000, 300,  19000.00  )
-, ( 202, 'LARRY',    'CLARK',      1000, 500,  25000.75  )
-, ( 203, 'KATHRYN',  'HALL',       4000, 400,  96000.00  )
-, ( 205, 'GINNY',    'FOSTER',     3300, 900,  30000.00  )
-, ( 206, 'DAVE',     'FISHER',     3200, 900,  25000.00  )
-, ( 207, 'MARK',     'FOLEY',      4000, 420,  33000.00  )
-, ( 208, 'SUE',      'CRAMER',     1000, 900,  19000.00  )
-, ( 209, 'SUSAN',    'CHAPMAN',    1500, 900,  17000.00  )
-, ( 210, 'RICHARD',  'BARTON',     1000, 500,  29000.00  )
-, ( 211, 'JIMMY',    'SCHNEIDER',  1500, 600,  26000.00  )
-, ( 212, 'JONATHAN', 'MITCHELL',   1500, 600,  32000.00  )
-, ( 213, 'ROBERT',   'WHITE',      1500, 100,  90000.00  )
-, ( 214, 'JULIA',    'KELLY',      1000, 500,  50000.00  )
-, ( 215, 'WALTER',   'LANCASTER',  4000, 450,  33000.50  )
-, ( 216, 'JOHN',     'JONES',      4000, 450,  40000.00  )
-, ( 217, 'MARLENE',  'BONNY',      4000, 900,  24000.90  )
-, ( 218, 'GEORGE',   'FRENCHMAN',  4000, 420,  36000.00  )
-, ( 219, 'DAVID',    'TERRY',      2000, 250,  27000.12  )
-, ( 220, 'JOHN',     'HUGHES',     3200, 300,  33000.10  )
-, ( 221, 'OTTO',     'SCHNABL',    3200, 300,  33000.00  )
-, ( 222, 'MARTIN',   'SCHAEFFER',  3200, 300,  31000.00  )
-, ( 223, 'HERBERT',  'KARAJAN',    3200, 300,  29000.00  )
-, ( 224, 'MARIA',    'JOSEF',      4000, 420,  18000.10  )
-, ( 225, 'KARL',     'HELMSTED',   4000, 450,  32000.00  )
-, ( 226, 'HEIDI',    'WEIGL',      3200, 300,  22000.00  )
-, ( 227, 'XAVIER',   'SEDLEMEYER', 3300, 300,  30000.00  )
-, ( 228, 'PETE',     'WELLINGTON', 3100, 300,  32000.20  )
-, ( 229, 'GEORGE',   'STRICKER',   3100, 300,  32222.00  )
-, ( 230, 'ROCKY',    'LEWIS',      2000, 200,  24000.00  )
-, ( 231, 'HERB',     'ALBERT',     3300, 300,  33000.00  )
-, ( 232, 'THOMAS',   'SPINNER',    4000, 450,  45000.00  )
-, ( 233, 'TED',      'MCDONALD',   2000, 250,  29000.00  )
-, ( 234, 'MARY',     'MILLER',     2500, 100,  56000.00  )
-, ( 235, 'MIRIAM',   'KING',       2500, 900,  18000.00  )
-, ( 321, 'BILL',     'WINN',       2000, 900,  32000.00  )
-, ( 337, 'DINAH',    'CLARK',      9000, 900,  37000.00  )
-, ( 343, 'ALAN',     'TERRY',      3000, 900,  39500.00  )
-, ( 557, 'BEN',      'HENDERSON',  4000, 400,  65000.00  )
-, ( 568, 'JESSICA',  'CRINER',     3500, 300,  39500.00  )
-, ( 990, 'THOMAS',   'STIBBS',     3500, NULL, NULL      )
-, ( 991, 'WAYNE',    'O''NEIL',    3500, NULL, NULL      )
-, ( 992, 'BARRY',    'KINNEY',     3500, NULL, NULL      )
-, ( 993, 'PAUL',     'BUSKETT',    3100, NULL, NULL      )
-, ( 994, 'EMMY',     'BUSKETT',    3100, NULL, NULL      )
-, ( 995, 'WALT',     'FARLEY',     3100, NULL, NULL      )
-;
-
-UPDATE STATISTICS FOR TABLE demo.persnl.employee ON EVERY COLUMN ;
-```
+The link:resources/source/persnl_employee_table.sql[`EMPLOYEE` table] maps 
records employee information.
+
+[source, sql]
+----
+include::{sourcedir}/persnl_employee_table.sql[PERSNL EMPLOYEE Table 
Definition File]
+----
 
 [[dept-table]]
 === DEPT Table
 
-```
-CREATE TABLE demo.persnl.dept
-( deptnum  NUMERIC (4) UNSIGNED NO DEFAULT  NOT NULL
-, deptname CHARACTER (12)       NO DEFAULT  NOT NULL
-, manager  NUMERIC (4) UNSIGNED NO DEFAULT  NOT NULL
-, rptdept  NUMERIC (4) UNSIGNED DEFAULT 0   NOT NULL
-, location VARCHAR (18)         DEFAULT ' ' NOT NULL
-, PRIMARY KEY (deptnum)
-) ;
-
-CREATE INDEX xdeptmgr ON dept
-( manager
-) ;
-
-CREATE INDEX xdeptrpt ON dept
-( rptdept
-) ;
-
-ALTER TABLE demo.persnl.dept
-   ADD CONSTRAINT mgrnum_constrnt
-   CHECK (manager BETWEEN 0000 AND 9999)
-   ;
-
-ALTER TABLE demo.persnl.dept
-
-ADD CONSTRAINT deptnum_constrnt
-   CHECK ( deptnum IN
-           ( 1000
-           , 1500
-           , 2000
-           , 2500
-           , 3000
-           , 3100
-           , 3200
-           , 3300
-           , 3500
-           , 4000
-           , 4100
-           , 9000
-           )
-        ) ;
-
-CREATE VIEW demo.persnl.mgrlist
-( first_name
-, last_name
-, department
-)
-AS SELECT
-  first_name
-, last_name
-, deptname
-FROM dept, employee
-WHERE dept.manager = employee.empnum
-;
-
-INSERT INTO demo.persnl.dept VALUES
-  ( 1000, 'FINANCE',       23, 9000, 'CHICAGO'     )
-, ( 1500, 'PERSONNEL',    213, 1000, 'CHICAGO'     )
-, ( 2000, 'INVENTORY',     32, 9000, 'LOS ANGELES' )
-, ( 2500, 'SHIPPING',     234, 2000, 'PHOENIX'     )
-, ( 3000, 'MARKETING',     29, 9000, 'NEW YORK'    )
-, ( 3100, 'CANADA SALES',  43, 3000, 'TORONTO'     ) 
-, ( 3200, 'GERMNY SALES',  39, 3000, 'FRANKFURT'   )
-, ( 3300, 'ENGLND SALES',  72, 3000, 'LONDON'      )
-, ( 3500, 'ASIA SALES',   111, 3000, 'HONG KONG'   )
-, ( 4000, 'RESEARCH',      65, 9000, 'NEW YORK'    )
-, ( 4100, 'PLANNING',      87, 4000, 'NEW YORK'    )
-, ( 9000, 'xxCORPORATE',    1, 9000, 'CHICAGO'     )
-;
-
-UPDATE STATISTICS FOR TABLE demo.persnl.dept ON EVERY COLUMN ;
-```
+The link:resources/source/persnl_dept_table.sql[`DEPT` table] maps records 
department information.
+
+[source, sql]
+----
+include::{sourcedir}/persnl_dept_table.sql[PERSNL DEPT Table Definition File]
+----
 
 [[project-table]]
 === PROJECT Table
 
-```
-CREATE TABLE demo.persnl.project
-( projcode       NUMERIC (4)  UNSIGNED NO DEFAULT                              
       NOT NULL
-, empnum         NUMERIC (4)  UNSIGNED NO DEFAULT                              
       NOT NULL
-, projdesc       VARCHAR (18)          DEFAULT ' '                             
       NOT NULL
-, start_date     DATE                  DEFAULT DATE '2011-07-01'               
       NOT NULL
-, ship_timestamp TIMESTAMP             DEFAULT TIMESTAMP 
'2011-08-01:12:00:00.000000' NOT NULL
-, est_complete   INTERVAL DAY          DEFAULT INTERVAL '30' DAY               
       NOT NULL
-, PRIMARY KEY (projcode, empnum)
-) ;
-
-INSERT INTO demo.persnl.project
-VALUES
-  ( 1000, 213, 'SALT LAKE CITY',    DATE '2011-04-10', TIMESTAMP 
'2011-04-21:08:15:00.00',   INTERVAL '15' DAY )
-, ( 1000, 211, 'SALT LAKE CITY',    DATE '2011-04-10', TIMESTAMP 
'2011-04-21:08:15:00.00',   INTERVAL '15' DAY )
-, ( 1000,  23, 'SALT LAKE CITY',    DATE '2011-04-10', TIMESTAMP 
'2011-04-21:08:15:00.00',   INTERVAL '15' DAY )
-, ( 1000,   1, 'SALT LAKE CITY',    DATE '2011-04-10', TIMESTAMP 
'2011-04-21:08:15:00.00',   INTERVAL '15' DAY )
-, ( 2000, 227, 'ROSS PRODUCTS',     DATE '2011-06-10', TIMESTAMP 
'2011-07-21:08:30:00.0000', INTERVAL '30' DAY )
-, ( 2000, 109, 'ROSS PRODUCTS',     DATE '2011-06-10', TIMESTAMP 
'2011-07-21:08:30:00.0000', INTERVAL '30' DAY )
-, ( 2000, 215, 'ROSS PRODUCTS',     DATE '2011-06-10', TIMESTAMP 
'2011-07-21:08:30:00.0000', INTERVAL '30' DAY )
-, ( 2000,  65, 'ROSS PRODUCTS',     DATE '2011-06-10', TIMESTAMP 
'2011-07-21:08:30:00.0000', INTERVAL '30' DAY )
-, ( 2500,  65, 'MONTANA TOOLS',     DATE '2011-10-10', TIMESTAMP 
'2011-12-21:09:00:00.0000', INTERVAL '60' DAY )
-, ( 2500, 207, 'MONTANA TOOLS',     DATE '2011-10-10', TIMESTAMP 
'2011-12-21:09:00:00.0000', INTERVAL '60' DAY )
-, ( 2500, 232, 'MONTANA TOOLS',     DATE '2011-10-10', TIMESTAMP 
'2011-12-21:09:00:00.0000', INTERVAL '60' DAY )
-, ( 2500, 180, 'MONTANA TOOLS',     DATE '2011-10-10', TIMESTAMP 
'2011-12-21:09:00:00.0000', INTERVAL '60' DAY )
-, ( 2500,  93, 'MONTANA TOOLS',     DATE '2011-10-10', TIMESTAMP 
'2011-12-21:09:00:00.0000', INTERVAL '60' DAY )
-, ( 3000,  65, 'AHAUS TOOL/SUPPLY', DATE '2011-08-21', TIMESTAMP 
'2011-10-21:08:10:00.0000', INTERVAL '60' DAY )
-, ( 3000, 221, 'AHAUS TOOL/SUPPLY', DATE '2011-08-21', TIMESTAMP 
'2011-10-21:08:10:00.0000', INTERVAL '60' DAY )
-, ( 3000, 226, 'AHAUS TOOL/SUPPLY', DATE '2011-08-21', TIMESTAMP 
'2011-10-21:08:10:00.0000', INTERVAL '60' DAY )
-, ( 3000, 224, 'AHAUS TOOL/SUPPLY', DATE '2011-08-21', TIMESTAMP 
'2011-10-21:08:10:00.0000', INTERVAL '60' DAY )
-, ( 3000, 225, 'AHAUS TOOL/SUPPLY', DATE '2011-08-21', TIMESTAMP 
'2011-10-21:08:10:00.0000', INTERVAL '60' DAY )
-, ( 4000,  75, 'THE WORKS',         DATE '2011-09-21', TIMESTAMP 
'2011-10-21:10:15:00.0000', INTERVAL '30' DAY )
-, ( 4000,  29, 'THE WORKS',         DATE '2011-09-21', TIMESTAMP 
'2011-10-21:10:15:00.0000', INTERVAL '30' DAY )
-, ( 4000, 231, 'THE WORKS',         DATE '2011-09-21', TIMESTAMP 
'2011-10-21:10:15:00.0000', INTERVAL '30' DAY )
-, ( 4000, 228, 'THE WORKS',         DATE '2011-09-21', TIMESTAMP 
'2011-10-21:10:15:00.0000', INTERVAL '30' DAY )
-, ( 4000, 223, 'THE WORKS',         DATE '2011-09-21', TIMESTAMP 
'2011-10-21:10:15:00.0000', INTERVAL '30' DAY )
-, ( 4000, 568, 'THE WORKS',         DATE '2011-09-21', TIMESTAMP 
'2011-10-21:10:15:00.0000', INTERVAL '30' DAY )
-, ( 5000,  65, 'ASIA PROJECT',      DATE '2011-09-28', TIMESTAMP 
'2011-10-28:09:25:01.1111', INTERVAL '30' DAY )
-, ( 5000, 568, 'ASIA PROJECT',      DATE '2011-09-28', TIMESTAMP 
'2011-10-28:09:25:01.1111', INTERVAL '30' DAY )
-, ( 5000, 557, 'ASIA PROJECT',      DATE '2011-09-28', TIMESTAMP 
'2011-10-28:09:25:01.1111', INTERVAL '30' DAY )
-, ( 5000, 216, 'ASIA PROJECT',      DATE '2011-09-28', TIMESTAMP 
'2011-10-28:09:25:01.1111', INTERVAL '30' DAY )
-, ( 5000, 203, 'ASIA PROJECT',      DATE '2011-09-28', TIMESTAMP 
'2011-10-28:09:25:01.1111', INTERVAL '30' DAY )
-, ( 5000, 218, 'ASIA PROJECT',      DATE '2011-09-28', TIMESTAMP 
'2011-10-28:09:25:01.1111', INTERVAL '30' DAY )
-;
-
-UPDATE STATISTICS FOR TABLE demo.persnl.project ON EVERY COLUMN ;
-```
+The link:resources/source/persnl_project_table.sql[`PROJECT` table] maps 
records information about projects.
+
+[source, sql]
+----
+include::{sourcedir}/persnl_project_table.sql[PERSNL DEPT Table Definition 
File]
+----
 
 [[sales-schema]]
 == SALES Schema
 
-The SALES schema stores customer and sales data.
+The link:resources/source/sales_schema.sql[`SALES` schema] stores customer and 
sales data.
 
-```
-CREATE SCHEMA DEMO.SALES ;
-SET SCHEMA DEMO.SALES ;
-```
+[source, sql]
+----
+include::{sourcedir}/sales_schema.sql[SALES Schema Definition File]
+----
 
 [[customer-table]]
 === CUSTOMER Table
 
-```
-CREATE TABLE demo.sales.customer
-( custnum  NUMERIC (4) UNSIGNED NO DEFAULT   NOT NULL
-, custname CHARACTER (18)       NO DEFAULT   NOT NULL
-, street   CHARACTER (22)       NO DEFAULT   NOT NULL
-, city     CHARACTER (14)       NO DEFAULT   NOT NULL
-, state    CHARACTER (12)       DEFAULT ' '  NOT NULL
-, postcode CHARACTER (10)       NO DEFAULT   NOT NULL
-, credit   CHARACTER (2)        DEFAULT 'C1' NOT NULL
-, PRIMARY KEY (custnum)
-) ;
-
-INSERT INTO demo.sales.customer VALUES
-  (   21, 'CENTRAL UNIVERSITY', 'UNIVERSITY WAY',        'PHILADELPHIA',  
'PENNSYLVANIA', '19104',    'A1' )
-, (  123, 'BROWN MEDICAL CO',   '100 CALIFORNIA STREET', 'SAN FRANCISCO', 
'CALIFORNIA',   '94944',    'C2' )
-, (  143, 'STEVENS SUPPLY',     '2020 HARRIS STREET',    'DENVER',        
'COLORADO',     '80734',    'A2' )
-, (  324, 'PREMIER INSURANCE',  '3300 WARBASH',          'LUBBOCK',       
'TEXAS',        '76308',    'A1' )
-, (  543, 'FRESNO STATE BANK',  '2300 BROWN BLVD',       'FRESNO',        
'CALIFORNIA',   '93921',    'B3' )
-, (  926, 'METALL-AG.',         '12 WAGNERRING',         'FRANKFURT',     
'WEST GERMANY', '34',       'D4' )
-, ( 1234, 'DATASPEED',          '300 SAN GABRIEL WAY',   'NEW YORK',      'NEW 
YORK',     '10014',    'C1' )
-, ( 3210, 'BESTFOOD MARKETS',   '3333 PHELPS STREET',    'LINCOLN',       
'NEBRASKA',     '68134',    'A4' )
-, ( 3333, 'NATIONAL UTILITIES', '6500 TRANS-CANADIENNE', 'QUEBEC',        
'CANADA',       'H4T 1X4',  'A1' )
-, ( 5635, 'ROYAL CHEMICALS',    '45 NEW BROAD STREET',   'LONDON',        
'ENGLAND',      'EC2M 1NH', 'B2' )
-, ( 7654, 'MOTOR DISTRIBUTING', '2345 FIRST STREET',     'CHICAGO',       
'ILLINOIS',     '60610',    'E4' )
-, ( 7777, 'SLEEPWELL HOTELS',   '9000 PETERS AVENUE',    'DALLAS',        
'TEXAS',        '75244',    'B1' )
-, ( 9000, 'BUNKNOUGHT INN',     '4738 RALPH STREET',     'BAYONNE',       'NEW 
JERSEY',   '09520',    'C1' )
-, ( 9010, 'HOTEL OREGON',       '333 PORTLAND AVE.',     'MEDFORD',       
'OREGON',       '97444',    'C2' )
-, ( 9033, 'ART SUPPLIES, INC.', '22 SWEET ST.',          'PITTSBURGH',    
'PENNA.',       '08333',    'C3' )
-;
-
-UPDATE STATISTICS FOR TABLE demo.sales.customer ON EVERY COLUMN;
-```
+The link:resources/source/sales_customer_table.sql[`CUSTOMER` table] maps 
records information about customers.
+
+[source, sql]
+----
+include::{sourcedir}/sales_customer_table.sql[SALES CUSTOMER Table Definition 
File]
+----
 
 [[orders-table]]
 === ORDERS Table
 
-```
-CREATE TABLE demo.sales.orders
-( ordernum   NUMERIC (6) UNSIGNED NO DEFAULT                NOT NULL
-, order_date DATE                 DEFAULT DATE '2011-07-01' NOT NULL
-, deliv_date DATE                 DEFAULT DATE '2011-08-01' NOT NULL
-, salesrep   NUMERIC (4) UNSIGNED DEFAULT 0                 NOT NULL
-, custnum    NUMERIC (4) UNSIGNED NO DEFAULT                NOT NULL
-, PRIMARY KEY (ordernum)
-) ;
-
-ALTER TABLE demo.sales.orders
-   ADD CONSTRAINT demo.sales.date_constrnt CHECK (deliv_date >= order_date)
-   ;
-
-CREATE INDEX xordrep ON orders
-( salesrep
-) ;
-
-CREATE INDEX xordcus ON orders
-( custnum
-) ;
-
-CREATE VIEW demo.sales.ordrep AS SELECT
-  empnum
-, last_name
-, ordernum
-, o.custnum
-FROM
-  demo.persnl.employee e
-, demo.sales.orders o
-, demo.sales.customer c
-WHERE e.empnum = o.salesrep
-  AND o.custnum = C.custnum
-;
-
-CREATE INDEX xcustnam ON customer
-(
-custname
-) ;
-
-CREATE VIEW demo.sales.custlist AS SELECT
-  custnum
-, custname
-, street
-, city
-, state
-, postcode
-FROM demo.sales.customer
-;
-
-INSERT INTO demo.sales.orders VALUES
-  ( 100210, DATE '2011-04-10', DATE '2011-04-10', 220, 1234 )
-, ( 100250, DATE '2011-01-23', DATE '2011-06-15', 220, 7777 )
-, ( 101220, DATE '2011-07-21', DATE '2011-12-15', 221, 5635 )
-, ( 200300, DATE '2011-02-06', DATE '2011-07-01', 222,  926 )
-, ( 200320, DATE '2011-02-17', DATE '2011-07-20', 223,   21 )
-, ( 200490, DATE '2011-03-19', DATE '2011-11-01', 226,  123 )
-, ( 300350, DATE '2011-03-03', DATE '2011-08-10', 231,  543 )
-, ( 300380, DATE '2011-03-19', DATE '2011-08-20', 226,  123 )
-, ( 400410, DATE '2011-03-27', DATE '2011-09-01', 227, 7654 )
-, ( 500450, DATE '2011-04-20', DATE '2011-09-15', 220,  324 )
-, ( 600480, DATE '2011-05-12', DATE '2011-10-10', 226, 3333 )
-, ( 700510, DATE '2011-06-01', DATE '2011-10-20', 229,  143 )
-, ( 800660, DATE '2011-10-09', DATE '2011-11-01', 568, 3210 )
-;
-
-UPDATE STATISTICS FOR TABLE demo.sales.orders ON EVERY COLUMN;
-```
+The link:resources/source/sales_orders_table.sql[`ORDERS` table] maps records 
information about sales orders.
+
+[source, sql]
+----
+include::{sourcedir}/sales_orders_table.sql[SALES ORDERS Table Definition File]
+----
 
 [[odetail-table]]
 === ODETAIL Table
 
-```
-CREATE TABLE demo.sales.odetail
-( ordernum    NUMERIC (6) UNSIGNED NO DEFAULT NOT NULL
-, partnum     NUMERIC (4) UNSIGNED NO DEFAULT NOT NULL
-, unit_price  NUMERIC (8, 2)       NO DEFAULT NOT NULL
-, qty_ordered NUMERIC (5) UNSIGNED NO DEFAULT NOT NULL
-, PRIMARY KEY (ordernum,partnum)
-) ;
-
-INSERT INTO demo.sales.odetail VALUES
-  ( 100210, 244,  3500.00,  3 )
-, ( 100210,2001,  1100.00,  3 )
-, ( 100210,2403,  620.00,   6 )
-, ( 100210,5100,  150.00,  10 )
-, ( 100250, 244,  3500.00,  4 )
-, ( 100250,5103,  400.00,  10 )
-, ( 100250,6301,  245.00,  15 )
-, ( 100250,6500,  95.00,   10 )
-, ( 101220, 255,  3900.00, 10 )
-, ( 101220,5103,  400.00,   3 )
-, ( 101220,7102,  275.00,   7 )
-, ( 101220,7301,  425.00,   8 )
-, ( 200300, 244,  3500.00,  8 )
-, ( 200300,2001,  1000.00, 10 )
-, ( 200300,2002,  1400.00, 10 )
-, ( 200320,5504,  165.00,   5 )
-, ( 200320,6201,  195.00,  16 )
-, ( 200320,6301,  245.00,   6 )
-, ( 200320,6400,  540.00,   7 )
-, ( 200490,3210,  715.00,   1 )
-, ( 200490,5505,  350.00,   1 )
-, ( 300350, 244,  2800.00, 20 )
-, ( 300350,5100,  150.00,   5 )
-, ( 300350,5110,  525.00,  12 )
-, ( 300350,6301,  245.00,   5 )
-, ( 300350,6400,  550.00,   5 )
-, ( 300380, 244,  3000.00,  6 )
-, ( 300380,2402,  320.00,  12 )
-, ( 300380,2405,  760.00,   8 )
-, ( 400410, 212,  2450.00, 12 )
-, ( 400410, 255,  3800.00, 12 )
-, ( 400410,2001,  1000.00, 36 )
-, ( 400410,6301,  240.00,  48 )
-, ( 400410,6400,  500.00,  70 )
-, ( 400410,7301,  415.00,  36 )
-, ( 500450, 212,  2500.00,  8 )
-, ( 500450, 255,  3900.00, 12 )
-, ( 500450,2001,  1100.00, 16 )
-, ( 500450,2002,  1500.00, 16 )
-, ( 500450,2402,  330.00,  48 )
-, ( 600480,2001,  1000.00, 60 )
-, ( 600480,2002,  1450.00, 20 )
-, ( 600480,2003,  1900.00, 40 )
-, ( 600480,3103,  4000.00, 40 )
-, ( 600480,3205,  625.00,  20 )
-, ( 600480,5100,  135.00,  60 )
-, ( 600480,5103,  390.00,  20 )
-, ( 600480,7301,  425.00,  40 )
-, ( 700410,2003,  1900.00, 65 )
-, ( 700410,2403,  650.00,  10 )
-, ( 700510, 255,  4000.00,  4 )
-, ( 700510,6500,  95.00,    8 )
-, ( 700510,7102,  275.00,   5 )
-, ( 800660, 244,  3000.00,  6 )
-, ( 800660,2001,  1000.00, 30 )
-, ( 800660,2403,  600.00,  48 )
-, ( 800660,2405,  795.00,  10 )
-, ( 800660,3201,  525.00,   6 )
-, ( 800660,3205,  600.00,  18 )
-, ( 800660,3210,  715.00,   6 )
-, ( 800660,4102,  26.00,  130 )
-, ( 800660,5100,  150.00,  12 )
-, ( 800660,5101,  200.00,   6 )
-, ( 800660,5110,  490.00,  48 )
-, ( 800660,5504,  165.00,  18 )
-, ( 800660,6201,  195.00,   6 )
-, ( 800660,6301,  235.00,  24 )
-, ( 800660,6400,  525.00,  30 )
-, ( 800660,6401,  700.00,  36 )
-, ( 800660,6500,  95.00,   22 )
-, ( 800660,7102,  275.00,   6 )
-, ( 800660,7301,  425.00,  12 )
-;
-
-UPDATE STATISTICS FOR TABLE demo.sales.odetail ON EVERY COLUMN;
-```
+The link:resources/source/sales_odetail_table.sql[`ODETAIL` table] maps 
records detailed information about sales orders.
+
+[source, sql]
+----
+include::{sourcedir}/sales_odetail_table.sql[SALES ODETAIL Table Definition 
File]
+----
 
 [[parts-table]]
 === PARTS Table
 
-```
-CREATE TABLE demo.sales.parts
-( partnum       NUMERIC (4) UNSIGNED NO DEFAULT NOT NULL
-, partdesc      CHARACTER (18)       NO DEFAULT NOT NULL
-, price         NUMERIC (8, 2)       NO DEFAULT NOT NULL
-, qty_available NUMERIC (5)          DEFAULT 0  NOT NULL
-, PRIMARY KEY (partnum)
-) ;
-
-CREATE INDEX xpartdes ON parts
-( partdesc
-) ;
-
-INSERT INTO demo.sales.parts VALUES
-  (  186, '186 MegaByte Disk',  186186.86, 186  )
-, (  212, 'PC SILVER, 20 MB',     2500.00, 3525 )
-, (  244, 'PC GOLD, 30 MB',       3000.00, 4426 )
-, (  255, 'PC DIAMOND, 60 MB',    4000.00, 3321 )
-, ( 2001, 'GRAPHIC PRINTER,M1',   1100.00, 2100 )
-, ( 2002, 'GRAPHIC PRINTER,M2',   1500.00, 3220 )
-, ( 2003, 'GRAPHIC PRINTER,M3',   2000.00, 2200 )
-, ( 2402, 'DAISY PRINTER,T1',      350.00, 4425 )
-, ( 2403, 'DAISY PRINTER,T2',      650.00, 3312 )
-, ( 2405, 'DAISY PRINTER, T3',     795.00, 2712 )
-, ( 3103, 'LASER PRINTER, X1',    4200.00, 3300 )
-, ( 3201, 'HARD DISK 20 MB',       525.00, 4436 )
-, ( 3205, 'HARD DISK 30 MB',       625.00, 2209 )
-, ( 3210, 'HARD DISK 40 MB',       715.00, 3314 )
-, ( 4102, 'DISKETTE HD, BOX',       28.00, 6540 )
-, ( 5100, 'MONITOR BW, TYPE 1',    150.00, 3237 )
-, ( 5101, 'MONITOR BW, TYPE 2',    200.00, 2400 )
-, ( 5103, 'MONITOR COLOR, M1',     400.00, 3328 )
-, ( 5110, 'MONITOR COLOR, M2',     525.00, 3236 )
-, ( 5504, 'MEMORY CARD, 512KB',    165.00, 2630 )
-, ( 5505, 'MEMORY CARD, 1 MB',     315.00, 3830 )
-, ( 6201, 'GRAPHIC CARD, LR',      195.00, 2306 )
-, ( 6301, 'GRAPHIC CARD, HR',      245.00, 2331 )
-, ( 6400, 'STREAMING TAPE,M20',    550.00, 1268 )
-, ( 6401, 'STREAMING TAPE,M60',    725.00, 1308 )
-, ( 6500, 'DISK CONTROLLER',        95.00, 2532 )
-, ( 6603, 'PRINTER CONTROLLER',     45.00, 430  )
-, ( 7102, 'SMART MODEM, 1200',     275.00, 2200 )
-, ( 7301, 'SMART MODEM, 2400',     425.00, 2332 )
-;
-
-UPDATE STATISTICS FOR TABLE demo.sales.parts ON EVERY COLUMN ;
-```
+The link:resources/source/sales_parts_table.sql[`PARTS` table] maps records 
information about parts.
+
+[source, sql]
+----
+include::{sourcedir}/sales_parts_table.sql[SALES PARTS Table Definition File]
+----
 
 [[invent-schema]]
 === INVENT Schema
 
-The INVENT schema stored inventory data.
+The link:resources/source/invent_schema.sql[`INVENT` schema] stores inventory 
data.
 
-```
-CREATE SCHEMA DEMO.INVENT ;
-SET SCHEMA DEMO.INVENT ;
-```
+[source, sql]
+----
+include::{sourcedir}/invent_schema.sql[INVENT Schema Definition File]
+----
 
 [[supplier-table]]
 === SUPPLIER Table
 
-```
-CREATE TABLE demo.invent.supplier
-( suppnum  NUMERIC (4) UNSIGNED NO DEFAULT NOT NULL
-, suppname CHARACTER (18)       NO DEFAULT NOT NULL
-, street   CHARACTER (22)       NO DEFAULT NOT NULL
-, city     CHARACTER (14)       NO DEFAULT NOT NULL
-, state    CHARACTER (12)       NO DEFAULT NOT NULL
-, postcode CHARACTER (10)       NO DEFAULT NOT NULL
-, PRIMARY KEY (suppnum)
-) ;
-
-CREATE INDEX xsuppnam ON supplier
-( suppname
-) ;
-
-INSERT INTO demo.invent.supplier VALUES
-  (   1, 'NEW COMPUTERS INC',    '1800 KING ST.',         'SAN FRANCISCO', 
'CALIFORNIA',   '94112' )
-, (   2, 'DATA TERMINAL INC',    '2000 BAKER STREET',     'LAS VEGAS',     
'NEVADA',       '66134' )
-, (   3, 'HIGH DENSITY INC',     '7600 EMERSON',          'NEW YORK',      
'NEW YORK',     '10230' )
-, (   6, 'MAGNETICS INC',        '1000 INDUSTRY DRIVE',   'LEXINGTON',     
'MASS',         '02159' )
-, (   8, 'ATTRACTIVE CORP',      '7777 FOUNTAIN WAY',     'CHICAGO',       
'ILLINOIS',     '60610' )
-, (  10, 'LEVERAGE INC',         '6000 LINCOLN LANE',     'DENVER',        
'COLORADO',     '80712' )
-, (  15, 'DATADRIVE CORP',       '100 MAC ARTHUR',        'DALLAS',        
'TEXAS',        '75244' )
-, (  20, 'Macadam''S PC''s',     '106 River Road',        'New Orleans',   
'Louisiana',    '67890' )
-, (  25, 'Schroeder''s Ltd',     '212 Strasse Blvd West', 'Hamburg',       
'Rhode Island', '22222' )
-, (  30, 'O''Donnell''s Drives', '729 West Palm Beach ',  'San Antonio',   
'Texas',        '78344' )
-, (  35, 'Mac''Murphys PC''s',   '93323 Alemeda',         'Menlo Park',    
'California',   '94025' )
-, (  36, 'MAC''MURPHYS PCB''s',  '93323 Alemeda Suite B', 'Menlo Park',    
'California',   '94025' )
-, (  90, 'laser jets inc',       '284 blue ridge way',    'levittown',     
'penna.',       '09520' )
-, (  92, 'watercolors',          '84 north grand avenue', 'menlo park',    
'california',   '94025' )
-, (  95, 'application do''ers',  '2846 yellowwood drive', 'wayland',       
'mass',         '02158' )
-, (  99, 'terminals, inc.',      '2 longfellow way',      'heightstown',   
'nj',           '08520' )
-, ( 186, '186 Disk Makers',      '186 Dis Way',           'Dat Way',       
'Wisconsin',    '00186' )
-;
-
-UPDATE STATISTICS FOR TABLE demo.invent.supplier ON EVERY COLUMN;
-```
+The link:resources/source/invent_supplier_table.sql[`SUPPLIER` table] maps 
records information about suppliers.
+
+[source, sql]
+----
+include::{sourcedir}/invent_supplier_table.sql[INVENT SUPPLIER Table 
Definition File]
+----
 
 [[partsupp-table]]
 === PARTSUPP Table
 
-```
-CREATE TABLE demo.invent.partsupp
-( partnum      NUMERIC (4) UNSIGNED NO DEFAULT NOT NULL
-, suppnum      NUMERIC (4) UNSIGNED NO DEFAULT NOT NULL
-, partcost     NUMERIC (8, 2)       NO DEFAULT NOT NULL
-, qty_received NUMERIC (5) UNSIGNED DEFAULT 0  NOT NULL
-, PRIMARY KEY (partnum,suppnum)
-) ;
-
-CREATE INDEX XSUPORD ON partsupp
-( suppnum
-) ;
-
-CREATE VIEW demo.invent.view207
-( partnumber
-, partdescrpt
-, suppnumber
-, supplrname
-, partprice
-, qtyreceived
-)
-AS SELECT
-  x.partnum
-, partdesc
-, x.suppnum
-, suppname
-, partcost
-, qty_received
-FROM
-  demo.invent.partsupp x
-, demo.sales.parts p
-, demo.invent.supplier s
-WHERE x.partnum = p.partnum
-  AND x.suppnum = s.suppnum
-;
-
-CREATE VIEW demo.invent.view207n
-( partnumber
-, partdescrpt
-, suppnumber
-, supplrname
-, partprice
-, qtyreceived
-)
-AS SELECT
-  x.partnum
-, p.partdesc
-, s.suppnum
-, s.suppname
-, x.partcost
-, x.qty_received
-FROM demo.invent.supplier s
-LEFT JOIN demo.invent.partsupp x ON s.suppnum = x.suppnum
-LEFT JOIN demo.sales.parts p     ON x.partnum = p.partnum
-;
-
-CREATE VIEW demo.invent.viewcust
-( custnumber
-, cusname
-, ordernum
-)
-AS SELECT
-  c.custnum
-, c.custname
-, o.ordernum
-FROM demo.sales.customer c
-LEFT JOIN demo.sales.orders o ON c.custnum = o.custnum
-;
-
-CREATE VIEW demo.invent.viewcs AS SELECT
-  custname
-FROM demo.sales.customer
-UNION SELECT
-  suppname
-FROM demo.invent.supplier ;
-
-INSERT INTO demo.invent.partsupp VALUES
-  (  212,  1, 2000.00,  20 )
-, (  212,  3, 1900.00,  35 )
-, (  244,  1, 2400.00,  50 )
-, (  244,  2, 2200.00,  66 )
-, (  255,  1, 3300.00,  35 )
-, (  255,  3, 3000.00,  46 )
-, ( 2001,  1,  700.00, 100 )
-, ( 2001,  2,  750.00,  55 )
-, ( 2002,  1, 1000.00, 120 )
-, ( 2002,  6, 1100.00,  20 )
-, ( 2003,  1, 1300.00, 100 )
-, ( 2003,  2, 1400.00,  50 )
-, ( 2003, 10, 1450.00,  50 )
-, ( 2402,  1,  200.00,  35 )
-, ( 2403,  1,  300.00, 200 )
-, ( 2405,  1,  500.00,  40 )
-, ( 2405,  6,  450.00,  50 )
-, ( 3103,  1, 3200.00, 200 )
-, ( 3103, 15, 3300.00, 100 )
-, ( 3201,  1,  380.00,  36 )
-, ( 3205,  1,  425.00, 150 )
-, ( 3210,  6,  470.00,  10 )
-, ( 3210, 15,  450.00,  25 )
-, ( 4102,  6,   20.00, 115 )
-, ( 4102,  8,   19.00, 140 )
-, ( 4102, 15,   21.00,  30 )
-, ( 5100,  6,  100.00,  50 )
-, ( 5100,  8,  105.00,  40 )
-, ( 5100, 15,   95.00,  60 )
-, ( 5101,  8,  135.00,  33 )
-, ( 5101, 15,  125.00,  43 )
-, ( 5103,  8,  265.00,  20 )
-, ( 5103, 15,  250.00,  58 )
-, ( 5110,  1,  335.00, 100 )
-, ( 5110,  2,  350.00,  36 )
-, ( 5504,  2,   85.00,  10 )
-, ( 5504,  6,   75.00,  10 )
-, ( 5504, 15,   78.00,  10 )
-, ( 5505, 15,  200.00, 100 )
-, ( 6201,  1,  100.00, 110 )
-, ( 6301,  1,  150.00, 230 )
-, ( 6400,  1,  390.00,  50 )
-, ( 6401,  2,  500.00,  20 )
-, ( 6401,  3,  480.00,  38 )
-, ( 6500,  2,   60.00, 140 )
-, ( 6500,  3,   65.00,  32 )
-, ( 6603,  2,   25.00, 150 )
-, ( 7102, 10,  165.00, 100 )
-, ( 7301,  1,  300.00,  32 )
-;
-
-UPDATE STATISTICS FOR TABLE demo.invent.partsupp ON EVERY COLUMN;
-```
+The link:resources/source/invent_partsupp_table.sql[`PARTSUPP` table] maps 
parts to suppliers.
+
+[source, sql]
+----
+include::{sourcedir}/invent_partsupp_table.sql[INVENT PARTSUPP Table 
Definition File]
+----
 
 [[partloc-table]]
 === PARTLOC Table
 
-```
-CREATE TABLE demo.invent.partloc
-( loc_code    CHARACTER (3)        NO DEFAULT NOT NULL
-, partnum     NUMERIC (4) UNSIGNED NO DEFAULT NOT NULL
-, qty_on_hand NUMERIC (7)          DEFAULT 0  NOT NULL
-, PRIMARY KEY (loc_code,partnum)
-) ;
-
-INSERT INTO demo.invent.partloc VALUES
-  ('A10', 2001,  800 )
-, ('A21',  255,   21 )
-, ('A34', 6201,    0 )
-, ('A35', 6301,    0 )
-, ('A36', 6400,   34 )
-, ('A66', 6603,  300 )
-, ('A67', 6401,  454 )
-, ('A78',  244,   43 )
-, ('A78', 5505,  100 )
-, ('A87',  212,   18 )
-, ('A88', 2403,  735 )
-, ('A88', 5504,   30 )
-, ('A94', 3205,  200 )
-, ('A98', 5110,  510 )
-, ('G11', 2002,   20 )
-, ('G34', 6201,  106 )
-, ('G35', 6301,  331 )
-, ('G36', 6400, 1034 )
-, ('G43', 5100,   77 )
-, ('G45', 4102,   69 )
-, ('G65', 3201,   36 )
-, ('G68', 6500, 1132 )
-, ('G76', 2405,   42 )
-, ('G76', 7301,   32 )
-, ('G78', 5505,    0 )
-, ('G87',  212,   20 )
-, ('G87', 3103,    0 )
-, ('G87', 3210,   44 )
-, ('G87', 2402,    0 )
-, ('G88', 2403,   32 )
-, ('G88', 5504,    0 )
-, ('G89', 5101,   86 )
-, ('G94', 3205,   59 )
-, ('G98', 5103,   28 )
-, ('G98', 5110,  136 )
-, ('P10', 2001,    0 )
-, ('P12', 2002,  200 )
-, ('P12', 2003,    0 )
-, ('P15', 2003,  200 )
-, ('P66', 6603,   40 )
-, ('P67', 6401,   54 )
-, ('P68', 6500,    0 )
-, ('P76', 7102,  200 )
-, ('P78',  244,   23 )
-, ('P87', 3103,  300 )
-;
-
-UPDATE STATISTICS FOR TABLE demo.invent.partloc ON EVERY COLUMN ;
-```
+The link:resources/source/invent_partloc_table.sql[`PARTLOC` table] records 
number of parts to on hand.
+
+[source, sql]
+----
+include::{sourcedir}/invent_partloc_table.sql[INVENT PARTLOC Table Definition 
File]
+----

Reply via email to