Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
отчёт БАВ.doc
Скачиваний:
39
Добавлен:
21.09.2019
Размер:
2.42 Mб
Скачать

2. Реализация серверной части.

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

Запросы SQL для создания таблиц выглядят следующим образом:

create table mesto_vidachi_bav

(kod_mesta_vidachi number(5,0) constraint pk_kod_mesta_vidachi_bav PRIMARY KEY CHECK(kod_mesta_vidachi>0),

nazvanie varchar2(40) NOT NULL,

adress varchar2(40) NOT NULL,

tip varchar2(10) NOT NULL) ;

CREATE TABLE mesto_vidachi_bav - данный запрос создаёт таблицу Место Выдачи.

Далее в скобках указывается, из каких полей будет состоять данная таблица и какой тип данных каждого из полей:

Поле kod_mesta_vidachi – является первичным ключом, имеет тип number(5,0), т.е. число состоящее максимум из 5 цифр. Не может быть отрицательным.

Поле nazvanie - имеет тип varchar2(40), т.е. строка переменного размера до 40 символов, не может иметь пустого значения, т.к. у любой книги есть название.

Поле adress - имеет тип varchar2(40), т.е. строка переменного размера до 40 символов, не может иметь пустого значения, т.к. у любого места выдачи книги есть адрес.

Поле tip - имеет тип varchar2(10), т.е. строка переменного размера до 10 символов, не может иметь пустого значения, т.к. у любого места выдачи книги есть тип (библиотека или магазин).

create table avtor_bav

(kod_knigi number(5,0) constraint fk_kod_knigi references knigi_bav(kod_knigi) CHECK(kod_knigi>0),

avtor varchar2(40) NOT NULL);

create table avtor_bav - данный запрос создаёт таблицу Авторы.

Далее в скобках указывается, из каких полей будет состоять данная таблица и какой тип данных каждого из полей:

Поле kod_knigi - является внешним ключом, то есть ссылка на соответствующее поле kod_knigi таблицы "knigi_bav", имеет тип number(5,0), т.е. число состоящее максимум из 5 цифр. Не может быть отрицательным.

Поле avtor- имеет тип varchar2(40), т.е. строка переменного размера до 40 символов. Не может иметь пустого значения, т.к. у любой книги есть автор.

Остальные таблицы создаются аналогично:

CREATE TABLE razdel_bav

(razdel varchar2(40) CONSTRAINT pk_razdel PRIMARY KEY NOT NULL,

podrazdel varchar2(40) NOT NULL);

CREATE TABLE knigi_bav

(kod_knigi number(5,0) CONSTRAINT pk_kod_knigi PRIMARY KEY CHECK(kod_knigi>0),

nazvanie_knigi varchar2(40) NOT NULL,

izdatelstvo varchar2(40) NOT NULL,

god_izdaniya number(4,0) CHECK(god_izdaniya>1900),

janr varchar2(40) NOT NULL,

kod_mesta_vidachi number(5,0) constraint fk_mesto_vidachi references mesto_vidachi_bav(kod_mesta_vidachi) CHECK(kod_mesta_vidachi>0),

razdel varchar2(40) constraint fk_razdel references razdel_bav(razdel) NOT NULL);

CREATE TABLE fio_bav

(fio varchar2(40) constraint pk_fio_bav PRIMARY KEY NOT NULL,

adress varchar2(40) NOT NULL);

create table polzovatel_knigi_bav

(kod_knigi number(5,0) constraint pk_kod_knigi_bav references knigi_bav(kod_knigi) CHECK(kod_knigi>0),

polzovatel varchar2(40) NOT NULL);

CREATE TABLE polzovatel_bav

(kod_knigi number(5,0) constraint fk_kod_knigi_bav references knigi_bav(kod_knigi) CHECK(kod_knigi>0),

data_vidachi varchar2(10) NOT NULL,

fio varchar2(40) constraint fk_fio references fio_bav(fio) NOT NULL,

srok_vozvrata varchar2(10) NOT NULL,

constraint pk_polzovatel_bav primary key(kod_knigi, data_vidachi));

2.2 Работа с данными.

Запросы SQL на заполнение таблиц данными выглядят следующим образом.

Для заполнения таблицы сначала вводится команда INSERT INTO, затем название таблицы, которую будем заполнять данными.

Затем используется команда VALUES, где в скобках, в кавычках через запятую указываются значения полей:

Заполнение данными таблицы mesto_vidachi_bav

insert into mesto_vidachi_bav (kod_mesta_vidachi, nazvanie, adress, tip)

values(1,'biblioteka 1','slepneva 43','biblioteka') ;

insert into mesto_vidachi_bav (kod_mesta_vidachi, nazvanie, adress, tip)

values(2,'bukva','furmanova 14a','magazin');

insert into mesto_vidachi_bav (kod_mesta_vidachi, nazvanie, adress, tip)

values(3,'gorodskaya biblioteka №3','svobodi 47','biblioteka');

insert into mesto_vidachi_bav (kod_mesta_vidachi, nazvanie, adress, tip)

values(4,'foliant','pobedi 71','magazin');

insert into mesto_vidachi_bav (kod_mesta_vidachi, nazvanie, adress, tip)

values(5,'akademiya','doronina 15','magazin');

Заполнение данными таблицы razdel_bav

insert into razdel_bav(razdel, podrazdel )

values('nauka','fizika');

insert into razdel_bav(razdel, podrazdel )

values('psihologiya','vzaimootnosheniya');

insert into razdel_bav(razdel, podrazdel )

values('fantastika','kosmos');

insert into razdel_bav(razdel, podrazdel )

values('sadovodstvo','kustarniki');

insert into razdel_bav(razdel, podrazdel )

values('klassika','stihi');

Заполнение данными таблицы knigi_bav

insert into knigi_bav (kod_knigi, nazvanie_knigi, izdatelstvo, god_izdaniya, janr, kod_mesta_vidachi, razdel)

values(10,'kvantovaya mehanika','drofa','1995','uchebnaya literatura',1,'nauka');

insert into knigi_bav (kod_knigi, nazvanie_knigi, izdatelstvo, god_izdaniya, janr, kod_mesta_vidachi, razdel)

values(20,'iskusstvo lubit','psihologiya','2005','uchebnaya literatura', 2,'psihologiya');

insert into knigi_bav (kod_knigi, nazvanie_knigi, izdatelstvo, god_izdaniya, janr, kod_mesta_vidachi, razdel)

values(30,'warhamer 40k','epika','1990','fantastika',3,'fantastika');

insert into knigi_bav (kod_knigi, nazvanie_knigi, izdatelstvo, god_izdaniya, janr, kod_mesta_vidachi, razdel)

values(40,'kustarniki','sad','2010','enciklopediya', 4,'sadovodstvo');

insert into knigi_bav (kod_knigi, nazvanie_knigi, izdatelstvo, god_izdaniya, janr, kod_mesta_vidachi, razdel)

values(50,'sbornik stihov','proza','1986','stihi', 5,'klassika');

Заполнение данными таблицы fio_bav

insert into fio_bav (fio, adress)

values('Ivanov Ilya Vladimirovich','slepneva 43');

insert into fio_bav (fio, adress)

values('Galitsin Albert Semovich','doronina 15');

insert into fio_bav (fio, adress)

values('jukov Ilya Vladimirovich','furmanova 77');

insert into fio_bav (fio, adress)

values('Kuzmin Ilya Nikolaevich','moskovskiy prospect 158');

insert into fio_bav (fio, adress)

values('Batalin Alexey Vladimirovich','kalinina 33');

Заполнение данными таблицы avtor_bav

insert into avtor_bav (kod_knigi,avtor)

values(10,'Savelev A.I. , Gundin V.P.');

insert into avtor_bav (kod_knigi,avtor)

values(20,'Fromm E.B.');

insert into avtor_bav (kod_knigi,avtor)

values(30,'Lyuis L.J.');

insert into avtor_bav (kod_knigi,avtor)

values(40,'Popov R.I.');

insert into avtor_bav (kod_knigi,avtor)

values(50,'Skudrin F.N.');

Заполнение данными таблицы polzovatel_knigi_bav

Insert into polzovatel_knigi_bav (kod_knigi, polzovatel)

values(10,'Petrov A.I. , Ivanov I.V.');

Insert into polzovatel_knigi_bav (kod_knigi, polzovatel)

values(20,'Galitsin A.S.');

Insert into polzovatel_knigi_bav (kod_knigi, polzovatel)

values(30,'Jukov I.V.');

Insert into polzovatel_knigi_bav (kod_knigi, polzovatel)

values(40,'Kuzmin I.N.');

Insert into polzovatel_knigi_bav (kod_knigi, polzovatel)

values(50,'Batalin A.V.');

Заполнение данными таблицы polzovatel_bav

insert into polzovatel_bav(kod_knigi, data_vidachi, fio, srok_vozvrata )

values(10,'12.01.12','Ivanov Ilya Vladimirovich','12.02.12');

insert into polzovatel_bav(kod_knigi, data_vidachi, fio, srok_vozvrata )

values(20,'05.03.12','Galitsin Albert Semovich','05.04.12');

insert into polzovatel_bav(kod_knigi, data_vidachi, fio, srok_vozvrata )

values(30,'22.12.11','jukov Ilya Vladimirovich','22.01.12' );

insert into polzovatel_bav(kod_knigi, data_vidachi, fio, srok_vozvrata )

values(40,'12.03.12','Kuzmin Ilya Nikolaevich','12.04.12');

insert into polzovatel_bav(kod_knigi, data_vidachi, fio, srok_vozvrata )

values(50,'18.05.12','Batalin Alexey Vladimirovich','18.06.12');

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]