Главная страница

Лекции и практики (1). Курс лекций и материалы для практических занятий


Скачать 1.01 Mb.
НазваниеКурс лекций и материалы для практических занятий
Дата17.03.2023
Размер1.01 Mb.
Формат файлаdocx
Имя файлаЛекции и практики (1).docx
ТипКурс лекций
#996812
страница58 из 75
1   ...   54   55   56   57   58   59   60   61   ...   75

Создание таблиц


  1. Отношение Departs (отделы):

create table departs (

d_id varchar(12) primary key, d_name varchar(100) not null);

  1. Отношение Rooms (комнаты):

create table rooms (

d_depart varchar(12) references departs(d_id), r_room numeric(4) not null,

r_phone varchar(20), unique(r_room, r_phone));

  1. Отношение Posts (должности):

create table posts (

p_post varchar(30) primary key,

p_salary numeric(8,2) not null check(p_salary>=4500));

  1. Отношение Employees (сотрудники):

create table employees (

e_id numeric(4) primary key, e_fname varchar(25) not null, e_lname varchar(30) not null, e_born date not null,

e_sex char(1) check(e_sex in ('ж','м')), e_pasp char(10) not null unique,

e_date date not null, e_given varchar(50) not null,

e_inn char(12) not null unique, e_pens char(14) not null unique, e_depart varchar(12) references departs, e_post varchar(30) references posts, e_room numeric(4) not null,

e_phone varchar(20) not null, e_login varchar(30),

foreign key(e_room,e_phone) references rooms(r_room,r_phone));

(Если внешний ключ ссылается на первичный ключ отношения, его можно не указывать, как в случае ссылок на Departs и Posts).

  1. Отношение Edu (образование):

create table edu (

u_id numeric(4) references employees, u_type varchar(20) not null,

u_spec varchar(40), u_diplom varchar(15), u_year number(4) not null,

check(u_spec in ('среднее', 'высшее','средне-специальное')));

  1. Отношение AdrTel (адреса-телефоны):

create table adrtel (

a_id numeric(4) references employees, a_adr varchar(50),

a_phone varchar(30));

  1. Отношение Clients (заказчики):

create table clients (

c_id numeric(4) primary key, c_company varchar(40) not null, c_adr varchar(50) not null, c_person varchar(50) not null, c_phone varchar(30));

  1. Отношение Projects (проекты):

create table projects (

p_id numeric(6) not null unique, p_title varchar(100) not null,

p_abbr char(10) primary key, p_depart varchar(12) references departs, p_company numeric(4) references clients,

p_chief numeric(4) references employees, p_begin date not null,

p_end date not null, p_finish date,

p_cost numeric(10) not null check(p_cost>0), check (p_end>p_begin),

check (p_finish is null or p_finish>p_begin));

  1. Отношение Stages (этапы проектов):

create table stages (

s_pro char(10) references projects, s_num numeric(2) not null,

s_title varchar(200) not null, s_begin date not null,

s_end date not null, s_finish date,

s_cost numeric(10) not null, s_sum numeric(10) not null, s_form varchar(100) not null, check (s_cost>0),

check (s_end>s_begin),

check (s_finish is null or s_finish>s_begin));

  1. Отношение Job (участие):

create table job (

j_pro char(10) references projects, j_emp numeric(2) references employees, j_role varchar(20) not null,

j_bonus numeric(2) not null, check(j_bonus>0),

check (j_role in ('исполнитель', 'консультант')));
        1. 1   ...   54   55   56   57   58   59   60   61   ...   75


написать администратору сайта