ëÁÔÁÌÏÇïÇÌÁ×ÌÅÎÉÅéÎÄÅËÓ ÒÁÚÄÅÌÁ
îÁÚÁÄ÷ÐÅÒÅÄ


1. ðÒÏÅËÔÉÒÏ×ÁÎÉÅ É ÓÏÚÄÁÎÉÅ ÂÁÚÙ ÄÁÎÎÙÈ

ìÏÇÉÞÅÓËÁÑ ÓÈÅÍÁ

ðÒÉ ÉÓÓÌÅÄÏ×ÁÎÉÉ ÐÒÅÄÍÅÔÎÏÊ ÏÂÌÁÓÔÉ ÓÏÓÔÁ×ÌÅÎÁ ÕÔÏÞÎÅÎÎÁÑ ÓÈÅÍÁ ÄÁÎÎÙÈ, ËÏÔÏÒÁÑ ÐÏËÁÚÁÎÁ ÎÁ ÓÌÅÄÕÀÝÅÍ ÒÉÓÕÎËÅ. îÁ ÎÅÊ ××ÅÄÅÎ ÒÑÄ ÎÏ×ÙÈ ÓÕÝÎÏÓÔÅÊ É ÁÓÓÏÃÉÁÃÉÊ.

ëÏÎÃÅÐÔÕÁÌØÎÁÑ ÓÈÅÍÁ

ðÏÓÌÅ ÎÏÒÍÁÌÉÚÁÃÉÉ ÓÈÅÍÙ ÄÁÎÎÙÈ, ÐÏÌÕÞÁÅÍ ÓÈÅÍÕ, ÐÒÅÄÓÔÁ×ÌÅÎÎÕÀ ÎÁ ÓÌÅÄÕÀÝÅÍ ÒÉÓÕÎËÅ. óÕÝÎÏÓÔÉ ÜÔÏÊ ÓÈÅÍÙ ÐÒÅÄÓÔÁ×ÉÍÙ × ×ÉÄÅ ÒÅÌÑÃÉÏÎÎÙÈ ÔÁÂÌÉÃ.

ôÁÂÌÉÃÙ edu_level É edu_profile ÓÏÏÔ×ÅÔÓÔ×ÕÀÔ ÓÕÝÎÏÓÔÑÍ "õÒÏ×ÅÎØ ÏÂÒÁÚÏ×ÁÎÉÑ" É "ðÒÏÆÉÌØ ÏÂÒÁÚÏ×ÁÎÉÑ". éÈ ÁÔÒÉÂÕÔÙ - ÞÉÓÌÏ×ÏÊ ËÏÄ (ÐÅÒ×ÉÞÎÙÊ ËÌÀÞ) ÕÒÏ×ÎÑ/ÐÒÏÆÉÌÑ (ÄÌÑ ÕÒÏ×ÎÑ ÉÍÅÅÔ ÓÍÙÓÌ ÓÒÁ×ÎÅÎÉÅ ÞÉÓÌÏ×ÙÈ ËÏÄÏ× ÎÁ "ÂÏÌØÛÅ - ÍÅÎØÛÅ") É ÎÁÚ×ÁÎÉÅ ÕÒÏ×ÎÑ/ÐÒÏÆÉÌÑ.

ôÁÂÌÉÃÁ department ÐÒÅÄÓÔÁ×ÌÑÅÔ ÓÕÝÎÏÓÔØ "ïÔÄÅÌ". åÅ ÁÔÒÉÂÕÔÙ - ËÏÄ (ÐÅÒ×ÉÞÎÙÊ ËÌÀÞ) ÏÔÄÅÌÁ, ÎÁÚ×ÁÎÉÅ É ÆÏÎÄ ÚÁÒÐÌÁÔÙ ÏÔÄÅÌÁ.

ôÁÂÌÉÃÁ employee ÐÒÅÄÓÔÁ×ÌÑÅÔ ÓÕÝÎÏÓÔØ "óÏÔÒÕÄÎÉË". åÅ ÁÔÒÉÂÕÔÙ:

ôÁÂÌÉÃÁ job ÐÒÅÄÓÔÁ×ÌÑÅÔ ÓÕÝÎÏÓÔØ "äÏÌÖÎÏÓÔØ". åÅ ÁÔÒÉÂÕÔÙ:

ôÁÂÌÉÃÁ education ÐÒÅÄÓÔÁ×ÌÑÅÔ ÓÕÝÎÏÓÔØ "ïÂÒÁÚÏ×ÁÎÉÅ". åÅ ÁÔÒÉÂÕÔÙ - ËÏÄ ÓÏÔÒÕÄÎÉËÁ, ËÏÄÙ ÕÒÏ×ÅÎÑ É ÐÒÏÆÉÌÑ ÏÂÒÁÚÏ×ÁÎÉÑ É ÇÏÄ ÐÏÌÕÞÅÎÉÑ ÏÂÒÁÚÏ×ÁÎÉÑ. ðÅÒ×ÉÞÎÙÊ ËÌÀÞ ÏÂÒÁÚÕÅÔÓÑ ËÏÍÂÉÎÁÃÉÅÊ ÔÒÅÈ ÐÅÒ×ÙÈ ÁÔÒÉÂÕÔÏ×.

ôÁÂÌÉÃÁ staff ÐÒÅÄÓÔÁ×ÌÑÅÔ ÓÕÝÎÏÓÔØ "ûÔÁÔÎÏÅ ÒÁÓÐÉÓÁÎÉÅ". åÅ ÁÔÒÉÂÕÔÙ - ËÏÄ ÓÔÒÏËÉ ÛÔÁÔÎÏÇÏ ÒÁÓÐÉÓÁÎÉÑ (ÐÅÒ×ÉÞÎÙÊ ËÌÀÞ), ËÏÄÙ ÄÏÌÖÎÏÓÔÉ É ÏÔÄÅÌÁ É ÞÉÓÌÏ ÓÔÁ×ÏË (rate).

ôÁÂÌÉÃÁ work ÐÒÅÄÓÔÁ×ÌÑÅÔ ÓÕÝÎÏÓÔØ "òÁÂÏÔÁ". åÅ ÁÔÒÉÂÕÔÙ:

ÐÅÒ×ÉÞÎÙÊ ËÌÀÞ ÚÄÅÓØ ÏÂÒÁÚÕÅÔÓÑ ËÏÍÂÉÎÁÃÉÅÊ ÁÔÒÉÂÕÔÏ× empl_id É staff_id.

æÉÚÉÞÅÓËÁÑ ÓÈÅÍÁ

ïÔÏÂÒÁÖÅÎÉÅ ÜÔÏÊ ËÏÎÃÅÐÔÕÁÌØÎÏÊ ÓÈÅÍÙ ÎÁ ÆÉÚÉÞÅÓËÕÀ ÄÁÅÔ ÎÁÍ 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)
);

óÏÄÅÒÖÉÍÏÅ ÜÔÏÇÏ ÓËÒÉÐÔÁ ÐÏÌÎÏÓÔØÀ ÏÔÒÁÖÁÅÔ ËÏÎÃÅÐÔÕÁÌØÎÕÀ ÓÈÅÍÕ, × ÎÅÇÏ ÄÏÂÁ×ÌÅÎÙ ÏÇÒÁÎÉÞÅÎÉÑ NOT NULL ÄÌÑ ÒÑÄÁ ÓÔÏÌÂÃÏ× É ÄÅÊÓÔ×ÉÑ ON DELETE CASCADE ON UPDATE RESTRICT ÄÌÑ ×ÎÅÛÎÉÈ ËÌÀÞÅÊ.

üÔÏÔ ÖÅ ÓËÒÉÐÔ ÍÏÖÅÔ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ É ÄÌÑ ÓÏÚÄÁÎÉÑ ÔÁÂÌÉà ÂÁÚÙ ÄÁÎÎÙÈ × Orcale (ÉÚ ÎÅÇÏ ÔÏÌØËÏ ÓÌÅÄÕÅÔ ÕÄÁÌÉÔØ ×ÓÅ ON UPDATE RESTRICT). íÙ, ÏÄÎÁËÏ, ÓÏÚÄÁÄÉÍ ÏÔÄÅÌØÎÙÊ ÓËÒÉÐÔ ÄÌÑ Orcale, ÉÓÐÏÌØÚÕÑ ÓÐÅÃÉÆÉÞÅÓËÉÅ ÔÉÐÙ ÄÁÎÎÙÈ 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)
);

óÏÚÄÁÎÉÅ ÔÁÂÌÉÃ ÂÁÚÙ ÄÁÎÎÙÈ. DB2

ôÁÂÌÉÃÙ edu_level, edu_profile, employee department ÓÏÚÄÁ×ÁÌÉÓØ ÓÒÅÄÓÔ×ÁÍÉ íÁÓÔÅÒÁ ôÁÂÌÉà DB2 Control Center. ïÓÔÁÌØÎÙÅ ÔÁÂÌÉÃÙ - ×ÙÐÏÌÎÅÎÉÅÍ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÈ ÓËÒÉÐÔÏ× × DB2 Command Center. ÷ ËÁÞÅÓÔ×Å ÐÒÉÍÅÒÁ ÎÉÖÅ ÐÒÉ×ÏÄÉÔÓÑ ÐÒÏÔÏËÏÌ ×ÙÐÏÌÎÅÎÉÑ ÏÄÎÏÇÏ ÉÚ ÔÁËÉÈ ÓËÒÉÐÔÏ×:

------------------------------ 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 Á×ÔÏÍÁÔÉÞÅÓËÉ ÆÏÒÍÉÒÏ×ÁÌÉÓØ ÏÐÅÒÁÔÏÒÙ ÓÏÚÄÁÎÉÑ ÔÁÂÌÉÃ. ïÄÉÎ ÉÚ ÔÁËÉÈ ÏÐÅÒÁÔÏÒÏ×, ÐÏÌÕÞÅÎÎÙÊ ÆÕÎËÃÉÅÊ Show SQL ÐÏËÁÚÁÎ ÎÉÖÅ:

CREATE TABLE DEREV.EDU_LEVEL (LEVEL_ID INTEGER  NOT NULL , 
LEVEL_NAME VARCHAR (20)  NOT NULL , PRIMARY KEY (LEVEL_ID)  
)  DATA CAPTURE NONE  ; 

òÅÚÕÌØÔÁÔÙ ÓÏÚÄÁÎÉÑ ÔÁÂÌÉà ÐÒÏ×ÅÒÑÀÔÓÑ ×ÙÐÏÌÎÅÎÉÅÍ ËÏÍÁÎÄÙ DESCRIBE TABLE:

------------------------------ 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.

óÏÚÄÁÎÉÅ ÔÁÂÌÉÃ ÂÁÚÙ ÄÁÎÎÙÈ. Oracle

ôÁÂÌÉÃÙ edu_level, edu_profile, employee, department ÓÏÚÄÁ×ÁÌÉÓØ ÓÒÅÄÓÔ×ÁÍÉ íÁÓÔÅÒÁ ôÁÂÌÉà Oracle Navigator. ïÓÔÁÌØÎÙÅ ÔÁÂÌÉÃÙ - ×ÙÐÏÌÎÅÎÉÅÍ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÈ ÓËÒÉÐÔÏ× × Oracle SQL*Plus. ÷ ËÁÞÅÓÔ×Å ÐÒÉÍÅÒÁ ÎÉÖÅ ÐÒÉ×ÏÄÉÔÓÑ ÐÒÏÔÏËÏÌ ×ÙÐÏÌÎÅÎÉÑ ÏÄÎÏÇÏ ÉÚ ÔÁËÉÈ ÓËÒÉÐÔÏ×:

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>

òÅÚÕÌØÔÁÔÙ ÓÏÚÄÁÎÉÑ ÔÁÂÌÉà ÐÒÏ×ÅÒÑÀÔÓÑ ×ÙÐÏÌÎÅÎÉÅÍ ËÏÍÁÎÄÙ DESCR:

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)

îÁÚÁÄ÷ÐÅÒÅÄ
ëÁÔÁÌÏÇïÇÌÁ×ÌÅÎÉÅéÎÄÅËÓ ÒÁÚÄÅÌÁ