| ëÁÔÁÌÏÇ | ïÇÌÁ×ÌÅÎÉÅ | éÎÄÅËÓ ÒÁÚÄÅÌÁ |
| îÁÚÁÄ | ÷ÐÅÒÅÄ |
ðÒÉ ÉÓÓÌÅÄÏ×ÁÎÉÉ ÐÒÅÄÍÅÔÎÏÊ ÏÂÌÁÓÔÉ ÓÏÓÔÁ×ÌÅÎÁ ÕÔÏÞÎÅÎÎÁÑ ÓÈÅÍÁ ÄÁÎÎÙÈ, ËÏÔÏÒÁÑ ÐÏËÁÚÁÎÁ ÎÁ ÓÌÅÄÕÀÝÅÍ ÒÉÓÕÎËÅ. îÁ ÎÅÊ ××ÅÄÅÎ ÒÑÄ ÎÏ×ÙÈ ÓÕÝÎÏÓÔÅÊ É ÁÓÓÏÃÉÁÃÉÊ.
ðÏÓÌÅ ÎÏÒÍÁÌÉÚÁÃÉÉ ÓÈÅÍÙ ÄÁÎÎÙÈ, ÐÏÌÕÞÁÅÍ ÓÈÅÍÕ, ÐÒÅÄÓÔÁ×ÌÅÎÎÕÀ ÎÁ ÓÌÅÄÕÀÝÅÍ ÒÉÓÕÎËÅ. óÕÝÎÏÓÔÉ ÜÔÏÊ ÓÈÅÍÙ ÐÒÅÄÓÔÁ×ÉÍÙ × ×ÉÄÅ ÒÅÌÑÃÉÏÎÎÙÈ ÔÁÂÌÉÃ.
ôÁÂÌÉÃÙ
ôÁÂÌÉÃÁ
ôÁÂÌÉÃÁ
ôÁÂÌÉÃÁ
ôÁÂÌÉÃÁ
ôÁÂÌÉÃÁ
ôÁÂÌÉÃÁ work ÐÒÅÄÓÔÁ×ÌÑÅÔ ÓÕÝÎÏÓÔØ "òÁÂÏÔÁ". åÅ ÁÔÒÉÂÕÔÙ:
ïÔÏÂÒÁÖÅÎÉÅ ÜÔÏÊ ËÏÎÃÅÐÔÕÁÌØÎÏÊ ÓÈÅÍÙ ÎÁ ÆÉÚÉÞÅÓËÕÀ ÄÁÅÔ ÎÁÍ SQL-ÓËÒÉÐÔ ÄÌÑ ÓÏÚÄÁÎÉÑ ÔÁÂÌÉà ÂÁÚÙ ÄÁÎÎÙÈ. äÌÑ óõâä DB2 ÜÔÏÔ ÓËÒÉÐÔ ÓÌÅÄÕÀÝÉÊ:
CREATE TABLE edu_level (
level_id INTEGER
NOT NULL PRIMARY KEY,
level_name VARCHAR(20)
);
CREATE TABLE edu_profile (
prof_id INTEGER
NOT NULL PRIMARY KEY,
prof_name VARCHAR(20)
);
CREATE TABLE employee (
empl_id DECIMAL (10,0)
NOT NULL PRIMARY KEY,
name_last VARCHAR(20) NOT NULL,
name_1st VARCHAR(20),
name_2nd VARCHAR(20),
birth DATE,
address VARCHAR(80),
phone DECIMAL(7,0)
);
CREATE TABLE department (
dep_id INTEGER
NOT NULL PRIMARY KEY,
dep_name VARCHAR(20),
salary_limit DECIMAL(10,2)
);
CREATE TABLE job (
job_id INTEGER
NOT NULL PRIMARY KEY,
job_name VARCHAR(40),
min_salary DECIMAL(7,2),
max_salary DECIMAL(7,2),
level_id INTEGER NOT NULL
REFERENCES edu_level(level_id)
ON DELETE CASCADE ON UPDATE RESTRICT,
prof_id INTEGER NOT NULL
REFERENCES edu_profile(prof_id)
ON DELETE CASCADE ON UPDATE RESTRICT,
experience SMALLINT
);
CREATE TABLE education (
level_id INTEGER NOT NULL
REFERENCES edu_level(level_id)
ON DELETE RESTRICT ON UPDATE RESTRICT,
prof_id INTEGER NOT NULL
REFERENCES edu_profile(prof_id)
ON DELETE RESTRICT ON UPDATE RESTRICT,
empl_id DECIMAL(10,0) NOT NULL
REFERENCES employee(empl_id)
ON DELETE CASCADE ON UPDATE RESTRICT,
when_year SMALLINT,
PRIMARY KEY (level_id, prof_id, empl_id)
);
CREATE TABLE staff (
staff_id INTEGER
NOT NULL PRIMARY KEY,
job_id INTEGER NOT NULL
REFERENCES job(job_id)
ON DELETE CASCADE ON UPDATE RESTRICT,
dep_id INTEGER NOT NULL
REFERENCES department(dep_id)
ON DELETE CASCADE ON UPDATE RESTRICT,
rate DECIMAL (6,2) NOT NULL
);
CREATE TABLE work (
empl_id DECIMAL (10,0) NOT NULL
REFERENCES employee(empl_id)
ON DELETE CASCADE ON UPDATE RESTRICT,
staff_id INTEGER NOT NULL
REFERENCES staff(staff_id)
ON DELETE CASCADE ON UPDATE RESTRICT,
salary DECIMAL(7,2),
start_date DATE NOT NULL,
rate DECIMAL(2,1) NOT NULL
CHECK (rate>0 AND rate<=2),
mng_flag CHAR(1),
PRIMARY KEY (empl_id, staff_id)
);
óÏÄÅÒÖÉÍÏÅ ÜÔÏÇÏ ÓËÒÉÐÔÁ ÐÏÌÎÏÓÔØÀ ÏÔÒÁÖÁÅÔ ËÏÎÃÅÐÔÕÁÌØÎÕÀ ÓÈÅÍÕ, × ÎÅÇÏ ÄÏÂÁ×ÌÅÎÙ ÏÇÒÁÎÉÞÅÎÉÑ
üÔÏÔ ÖÅ ÓËÒÉÐÔ ÍÏÖÅÔ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ É ÄÌÑ ÓÏÚÄÁÎÉÑ ÔÁÂÌÉà ÂÁÚÙ ÄÁÎÎÙÈ × Orcale (ÉÚ ÎÅÇÏ ÔÏÌØËÏ ÓÌÅÄÕÅÔ ÕÄÁÌÉÔØ ×ÓÅ
CREATE TABLE edu_level (
level_id NUMBER(6,0)
PRIMARY KEY,
level_name VARCHAR2(20)
);
CREATE TABLE edu_profile (
prof_id NUMBER(6,0)
PRIMARY KEY,
prof_name VARCHAR2(20)
);
CREATE TABLE employee (
empl_id NUMBER(10,0)
PRIMARY KEY,
name_last VARCHAR2(20) NOT NULL,
name_1st VARCHAR2(20),
name_2nd VARCHAR2(20),
birth DATE,
address VARCHAR2(80),
phone NUMBER(7,0)
);
CREATE TABLE department (
dep_id NUMBER(6,0)
PRIMARY KEY,
dep_name VARCHAR2(20),
salary_limit NUMBER(10,2)
);
CREATE TABLE job (
job_id NUMBER(6,0)
PRIMARY KEY,
job_name VARCHAR2(40),
min_salary NUMBER(7,2),
max_salary NUMBER(7,2),
level_id NUMBER(6,0) NOT NULL
REFERENCES edu_level(level_id)
ON DELETE CASCADE,
prof_id NUMBER(6,0)
REFERENCES edu_profile(prof_id)
ON DELETE CASCADE ,
experience NUMBER(2,0)
);
CREATE TABLE education (
level_id NUMBER(6,0) NOT NULL
REFERENCES edu_level(level_id),
prof_id NUMBER(6,0)
REFERENCES edu_profile(prof_id),
empl_id NUMBER(10,0) NOT NULL
REFERENCES employee(empl_id)
ON DELETE CASCADE ,
when_year NUMBER(4,0) ,
PRIMARY KEY (level_id, prof_id, empl_id)
);
CREATE TABLE staff (
staff_id NUMBER(6,0)
PRIMARY KEY,
job_id NUMBER(6,0) NOT NULL
REFERENCES job(job_id)
ON DELETE CASCADE ,
dep_id NUMBER(6,0) NOT NULL
REFERENCES department(dep_id)
ON DELETE CASCADE ,
rate NUMBER (6,2) NOT NULL
);
CREATE TABLE work (
empl_id NUMBER(10,0) NOT NULL
REFERENCES employee(empl_id)
ON DELETE CASCADE ,
staff_id NUMBER(6,0) NOT NULL
REFERENCES staff(staff_id)
ON DELETE CASCADE,
salary NUMBER(7,2),
start_date DATE NOT NULL,
rate NUMBER(2,1) NOT NULL
CHECK (rate>0 AND rate<=2),
mng_flag CHAR(1),
PRIMARY KEY (empl_id, staff_id)
);
ôÁÂÌÉÃÙ
------------------------------ Command Entered ------------------------------
CREATE TABLE work (
empl_id DECIMAL (10,0) NOT NULL
REFERENCES employee(empl_id)
ON DELETE CASCADE ON UPDATE RESTRICT,
staff_id INTEGER NOT NULL
REFERENCES staff(staff_id)
ON DELETE CASCADE ON UPDATE RESTRICT,
salary DECIMAL(7,2),
start_date DATE NOT NULL,
rate DECIMAL(2,1) NOT NULL
CHECK (rate>0 AND rate<=2),
mng_flag CHAR(1),
PRIMARY KEY (empl_id, staff_id)
) ;
-----------------------------------------------------------------------------
DB20000I The SQL command completed successfully.
ðÒÉ ÓÏÚÄÁÎÉÉ ÔÁÂÌÉà ÓÒÅÄÓÔ×ÁÍÉ DB2 Control Center Á×ÔÏÍÁÔÉÞÅÓËÉ ÆÏÒÍÉÒÏ×ÁÌÉÓØ ÏÐÅÒÁÔÏÒÙ ÓÏÚÄÁÎÉÑ ÔÁÂÌÉÃ. ïÄÉÎ ÉÚ ÔÁËÉÈ ÏÐÅÒÁÔÏÒÏ×, ÐÏÌÕÞÅÎÎÙÊ ÆÕÎËÃÉÅÊ
CREATE TABLE DEREV.EDU_LEVEL (LEVEL_ID INTEGER NOT NULL , LEVEL_NAME VARCHAR (20) NOT NULL , PRIMARY KEY (LEVEL_ID) ) DATA CAPTURE NONE ;
òÅÚÕÌØÔÁÔÙ ÓÏÚÄÁÎÉÑ ÔÁÂÌÉà ÐÒÏ×ÅÒÑÀÔÓÑ ×ÙÐÏÌÎÅÎÉÅÍ ËÏÍÁÎÄÙ
------------------------------ Command Entered ------------------------------ describe table edu_level ; ----------------------------------------------------------------------------- Column Type Type name schema name Length Scale Nulls ------------------------------ --------- ------------------ -------- ----- ----- LEVEL_ID SYSIBM INTEGER 4 0 No LEVEL_NAME SYSIBM VARCHAR 20 0 No 2 record(s) selected. ------------------------------ Command Entered ------------------------------ describe table edu_profile ; ----------------------------------------------------------------------------- Column Type Type name schema name Length Scale Nulls ------------------------------ --------- ------------------ -------- ----- ----- PROF_ID SYSIBM INTEGER 4 0 No PROF_NAME SYSIBM VARCHAR 20 0 Yes 2 record(s) selected. ------------------------------ Command Entered ------------------------------ describe table department ; ----------------------------------------------------------------------------- Column Type Type name schema name Length Scale Nulls ------------------------------ --------- ------------------ -------- ----- ----- DEP_ID SYSIBM INTEGER 4 0 No DEP_NAME SYSIBM VARCHAR 20 0 Yes SALARY_LIMIT SYSIBM DECIMAL 10 2 Yes 3 record(s) selected. ------------------------------ Command Entered ------------------------------ describe table employee ; ----------------------------------------------------------------------------- Column Type Type name schema name Length Scale Nulls ------------------------------ --------- ------------------ -------- ----- ----- EMPL_ID SYSIBM DECIMAL 10 0 No NAME_LAST SYSIBM VARCHAR 20 0 No NAME_1ST SYSIBM VARCHAR 20 0 Yes NAME_2ND SYSIBM VARCHAR 20 0 Yes BIRTH SYSIBM DATE 4 0 Yes ADDRESS SYSIBM VARCHAR 80 0 Yes PHONE SYSIBM DECIMAL 7 0 Yes 7 record(s) selected. ------------------------------ Command Entered ------------------------------ describe table job ; ----------------------------------------------------------------------------- Column Type Type name schema name Length Scale Nulls ------------------------------ --------- ------------------ -------- ----- ----- JOB_ID SYSIBM INTEGER 4 0 No JOB_NAME SYSIBM VARCHAR 40 0 Yes MIN_SALARY SYSIBM DECIMAL 7 2 Yes MAX_SALARY SYSIBM DECIMAL 7 2 Yes LEVEL_ID SYSIBM INTEGER 4 0 No PROF_ID SYSIBM INTEGER 4 0 No EXPERIENCE SYSIBM SMALLINT 2 0 Yes 7 record(s) selected. ------------------------------ Command Entered ------------------------------ describe table staff ; ----------------------------------------------------------------------------- Column Type Type name schema name Length Scale Nulls ------------------------------ --------- ------------------ -------- ----- ----- STAFF_ID SYSIBM INTEGER 4 0 No JOB_ID SYSIBM INTEGER 4 0 No DEP_ID SYSIBM INTEGER 4 0 No RATE SYSIBM DECIMAL 6 2 No 4 record(s) selected. ------------------------------ Command Entered ------------------------------ describe table work ; ----------------------------------------------------------------------------- Column Type Type name schema name Length Scale Nulls ------------------------------ --------- ------------------ -------- ----- ----- EMPL_ID SYSIBM DECIMAL 10 0 No STAFF_ID SYSIBM INTEGER 4 0 No SALARY SYSIBM DECIMAL 7 2 Yes START_DATE SYSIBM DATE 4 0 No RATE SYSIBM DECIMAL 2 1 No MNG_FLAG SYSIBM CHARACTER 1 0 Yes 6 record(s) selected.
ôÁÂÌÉÃÙ
SQL> CREATE TABLE work ( 2 empl_id NUMBER(10,0) NOT NULL 3 REFERENCES employee(empl_id) 4 ON DELETE CASCADE , 5 staff_id NUMBER(6,0) NOT NULL 6 REFERENCES staff(staff_id) 7 ON DELETE CASCADE, 8 salary NUMBER(7,2), 9 start_date DATE NOT NULL, 10 rate NUMBER(2,1) NOT NULL 11 CHECK (rate>0 AND rate<=2), 12 mng_flag CHAR(1), 13 PRIMARY KEY (empl_id, staff_id) 14 ); Table created. SQL>
òÅÚÕÌØÔÁÔÙ ÓÏÚÄÁÎÉÑ ÔÁÂÌÉà ÐÒÏ×ÅÒÑÀÔÓÑ ×ÙÐÏÌÎÅÎÉÅÍ ËÏÍÁÎÄÙ
SQL> DESCR edu_level; Name Null? Type ------------------------------- -------- ---- LEVEL_ID NOT NULL NUMBER(6) LEVEL_NAME VARCHAR2(20 SQL> DESCR edu_profile; Name Null? Type ------------------------------- -------- ---- PROF_ID NOT NULL NUMBER(6) PROF_NAME VARCHAR2(20 SQL> DESCR employee; Name Null? Type ------------------------------- -------- ---- EMPL_ID NOT NULL NUMBER(10) NAME_LAST NOT NULL VARCHAR2(20 NAME_1ST VARCHAR2(20 NAME_2ND VARCHAR2(20 BIRTH DATE ADDRESS VARCHAR2(80 PHONE NUMBER(7) SQL> DESCR department; Name Null? Type ------------------------------- -------- ---- DEP_ID NOT NULL NUMBER(6) DEP_NAME VARCHAR2(20 SALARY_LIMIT NUMBER(10,2 SQL> DESCR education; Name Null? Type ------------------------------- -------- ---- LEVEL_ID NOT NULL NUMBER(6) PROF_ID NOT NULL NUMBER(6) EMPL_ID NOT NULL NUMBER(10) WHEN_YEAR NUMBER(4) SQL> DESCR staff; Name Null? Type ------------------------------- -------- ---- STAFF_ID NOT NULL NUMBER(6) JOB_ID NOT NULL NUMBER(6) DEP_ID NOT NULL NUMBER(6) RATE NOT NULL NUMBER(6,2) SQL> DESCR work; Name Null? Type ------------------------------- -------- ---- EMPL_ID NOT NULL NUMBER(10) STAFF_ID NOT NULL NUMBER(6) SALARY NUMBER(7,2) START_DATE NOT NULL DATE RATE NOT NULL NUMBER(2,1) MNG_FLAG CHAR(1)
| îÁÚÁÄ | ÷ÐÅÒÅÄ |
| ëÁÔÁÌÏÇ | ïÇÌÁ×ÌÅÎÉÅ | éÎÄÅËÓ ÒÁÚÄÅÌÁ |