Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Введение в СУБД HyTech.doc
Скачиваний:
11
Добавлен:
01.03.2025
Размер:
2.67 Mб
Скачать

Листинги тестовой схемы

Файл schema.sql:

// Таблица AUTHOR (Автор) предназначена // для хранения информации об авторах книг. if (table_exists('AUTHOR') > 0)   drop table AUTHOR; create table AUTHOR (   ID       dword surrogate,   // первичный ключ   COAUTHOR byte,              // является соавтором   LNAME    char(50) not null, // фамилия   FNAME    char(50) not null, // имя   MNAME    char(50) not null  // отчество ); // Таблица BOOK (Книга) предназначена // для хранения информации о книгах, // которые составляют фонд библиотеки. if (table_exists('BOOK') > 0)   drop table BOOK; create table BOOK (   ID        dword surrogate,   // первичный ключ   ID_AUTHOR dword not null,    // ключ Автор   ID_PH     dword not null,    // ключ Издательство   PYEAR     word  not null,    // год издания   UDC       char(50),          // УДК   NAME      char(100) not null // название книги ); // Таблица PHOUSE (Издательство) предназначена // для хранения информации об издательстве.   if (table_exists('PHOUSE') > 0)   drop table PHOUSE; create table PHOUSE (   ID       dword surrogate,   // первичный ключ   FYEAR    word,              // год основания   NAME     char(30) not null, // название   REQ      char(200),         // реквизиты   ADDRESS  char(200),         // почтовый адрес   PHNUMBER char(50)           // номер телефона ); // Таблица READER (Читатель) предназначена // для хранения информации о читателях. if (table_exists('READER') > 0)   drop table READER; create table READER (   ID        dword surrogate,   // первичный ключ   BOOKCOUNT byte,              // число выданных книг   DEPOSIT   currency,          // величина залога   BIRTHDATE date,              // дата рождения   LNAME     char(50) not null, // фамилия   FNAME     char(50) not null, // имя   MNAME     char(50) not null, // отчество    RNUM      char(10) not null, // читательский номер   WORKPLACE char(100)          // место работы (учебы) ); // Таблица RDBOOK (Выданные книги) предназначена // для учета книг, выданных читателю.  if (table_exists('RDBOOK') > 0)   drop table RDBOOK; create table RDBOOK (   ID        dword surrogate, // первичный ключ   ID_BOOK   dword  not null, // ключ Книга   ID_READER dword  not null, // ключ Читатель   COMMENT   char(100)        // комментарий ); // Таблица JOURNAL (Журнал) предназначена // для хранения информации о журналах, // имеющихся в фонде библиотеки.   if (table_exists('JOURNAL') > 0)   drop table JOURNAL; create table JOURNAL (   ID        dword surrogate,    // первичный ключ   PRESS     char,               // типография   NAME      char(100) not null, // название   CHIEFEDIT char(100)           // главный редактор ); // Таблица REPORT (Научная статья) предназначена // для хранения информации  о научных статьях в журналах, // имеющихся в фонде библиотеки.   if (table_exists('REPORT') > 0)   drop table REPORT; create table REPORT (   ID        dword surrogate,   // первичный ключ   ID_JOUR   dword not null,    // ключ Журнал   ID_AUTHOR dword not null,    // ключ Автор   PYEAR     word,              // год издания   CONTENTS  char(200),         // содержание   NAME      char(100) not null // название ); // Для таблицы READER drop generator genREADER; create generator genREADER;  

Файл data.sql: insert into AUTHOR (FNAME, MNAME, LNAME, COAUTHOR) values ('Николай', 'Васильевич', 'Гоголь', 0); insert into AUTHOR (FNAME, MNAME, LNAME, COAUTHOR) values ('Александр', 'Сергеевич', 'Пушкин', 0); insert into AUTHOR (FNAME, MNAME, LNAME, COAUTHOR) values ('Михаил', 'Юрьевич', 'Лермонтов', 0); insert into AUTHOR (FNAME, MNAME, LNAME, COAUTHOR) values ('Федор', 'Михайлович', 'Достоевский', 0); insert into AUTHOR (FNAME, MNAME, LNAME, COAUTHOR) values ('Лев', 'Николаевич', 'Толстой', 0); insert into AUTHOR (FNAME, MNAME, LNAME, COAUTHOR) values ('Лев', '', 'Гумилев', 0); insert into PHOUSE (NAME, FYEAR) values ('АСТ', 2004); insert into PHOUSE (NAME, FYEAR) values ('Просвещение', 1968); insert into PHOUSE (NAME, FYEAR) values ('Альпина', 2005); insert into BOOK (ID_AUTHOR, ID_PH, NAME, PYEAR) values (1, 1, 'Мертвые души', 2008); insert into BOOK (ID_AUTHOR, ID_PH, NAME, PYEAR) values (1, 1, 'Ревизор', 2008); insert into BOOK (ID_AUTHOR, ID_PH, NAME, PYEAR) values (1, 1, 'Шинель', 2008); insert into BOOK (ID_AUTHOR, ID_PH, NAME, PYEAR) values (2, 2, 'Капитанская дочка', 2001); insert into BOOK (ID_AUTHOR, ID_PH, NAME, PYEAR) values (2, 2, 'Метель', 2003); insert into BOOK (ID_AUTHOR, ID_PH, NAME, PYEAR) values (2, 2, 'Барышня-крестьянка', 2005); insert into BOOK (ID_AUTHOR, ID_PH, NAME, PYEAR) values (3, 3, 'Мцыри', 2001); insert into BOOK (ID_AUTHOR, ID_PH, NAME, PYEAR) values (3, 3, 'Песня про купца Калашникова', 1996); insert into JOURNAL (NAME, CHIEFEDIT) values('InTech', 'James Broderick'); insert into JOURNAL (NAME, CHIEFEDIT) values('Литературная Москва', 'Иван Толстой'); insert into REPORT (NAME, ID_AUTHOR, ID_JOUR) values ('Письмо потомкам', 1, 1); insert into REPORT (NAME, ID_AUTHOR, ID_JOUR) values ('Письмо другу', 1, 2); insert into REPORT (NAME, ID_AUTHOR) values ('История Казани', 6); insert into READER (FNAME, MNAME, LNAME, WORKPLACE,                     RNUM, BIRTHDATE, BOOKCOUNT, DEPOSIT) values ('Артур', 'Демьянович', 'Пирожков', 'ТНТ',         gen_id('genREADER', 1), date('12.03.1985'), 0, 150.00); insert into READER (FNAME, MNAME, LNAME, WORKPLACE,                     RNUM, BIRTHDATE, BOOKCOUNT, DEPOSIT) values ('Василий', 'Петрович', 'Перов', 'ЗАО "КОКК"',         gen_id('genREADER', 1), date('02.09.1978'), 0, 150.00); insert into READER (FNAME, MNAME, LNAME, WORKPLACE,                     RNUM, BIRTHDATE, BOOKCOUNT, DEPOSIT) values ('Иван', 'Кузьмич', 'Правдин', '',         gen_id('genREADER', 1), date('06.11.1966'), 0, 150.00); insert into RDBOOK (ID_BOOK, ID_READER, COMMENT) values (1, 1, 'Книгу "Мертвые души" взял читатель Пирожков'); insert into RDBOOK (ID_BOOK, ID_READER, COMMENT) values (4, 1, 'Книгу "Капитанская дочка" взял читатель Пирожков'); insert into RDBOOK (ID_BOOK, ID_READER, COMMENT) values (7, 1, 'Книгу "Мцыри" взял читатель Пирожков'); insert into RDBOOK (ID_BOOK, ID_READER, COMMENT) values (2, 3, 'Книгу "Ревизор" взял читатель Правдин'); insert into RDBOOK (ID_BOOK, ID_READER, COMMENT) values (3, 3, 'Книгу "Шинель" взял читатель Правдин');