Контрольная работа: Особенности проектирования баз данных

Внешний ключ

Количество страниц (K_pages) Целое число NOT NULL Тип переплёта (Cover) Строка (15) NOT NULL Тираж (Tiraz) Целое число NOT NULL ID Абонента (ID_abonent) Целое число Внешний ключ Дата выдачи (Date_issue) Дата

Таблица «Издательства» (Publishers)

Наименование поля Тип данных Ограничения
ID Издательства (ID_Publishers) Целое число

NOTNULL

Первичный ключ

Значение уникально

Название (Name) Строка (20) NOT NULL
Город (City) Строка (20)

Таблица «Читатели» (Readers)

Наименование поля Тип данных Ограничения
ID Абонента (ID_ abonent) Целое число

NOTNULL

Первичный ключ

Значение уникально

ФИО (FIO) Строка (30) NOTNULL
Телефон (Telephone) Строка (10)
Адрес (Address) Строка (20) NOTNULL

Реализация серверной части базы данных

Серверную часть базы данных будем выполнять на сервере FireBird 2.1 в визуальной среде разработки IBExpert.

Запустим IBExpert. Выберем команду Database/CreateDatabase (База данных/Создать базу данных). В появившемся окне CreateDatabase (Создание базы данных) укажем:

· Server (Сервер) – Local (локальный)

· Database (Файл БД) – C:\01\LIBRARY.fdb

· UserName (Имя_пользователя) – SYSDBA

· Password (пароль) – masterkey – это имя и пароль администратора по умолчанию.

· Charset (кодировка) – WIN1251

· SQL Dialect (Диалект БД) – Dialect 3 (Диалект 3).

Нажмём OK. база данных будет создана. В появившемся окне DatabaseRegister (Регистрация БД) выберем в поле Версия сервера FireBird 2.1. Нажмем кнопку Register, и база данных будет зарегистрирована и отобразится в окне DatabaseExplorer. В этом окне выберем зарегистрированную базу данных и выберем Database/ConnecttoDatabase (База данных/Подключиться к Базе данных). В окне DatabaseExplorer отобразятся все элементы базы данных.

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

Создадим таблицу «Книги» (Books). Выберем Database/NewTable (База данных/Новая таблица). В окне Table (Таблица) зададим имя Books и определим называния атрибутов их типы данных и ограничения. Откомпилируем скрипт, нажав <Ctrl+F9>.

Зададим ключевое поле таблицы «BOOKS». Для этого сделаем активной вкладку Constraint (Ограничения). Щелкнем правой кнопкой мыши в свободном пространстве окна Table (Таблица) и в выпадающем меню выберем пункт Newprimarykey (новый первичный ключ). Далее установим первичный ключ для атрибута «ID_BOOKS». Для этого щелкнем левой кнопкой мыши в поле OnField (На поле) и установим нужный атрибут. Установим сортировку по возрастанию значения индекса – выберем Ascending для IndexSorting.

Перейдём на вкладку Fields (поля) щелчком правой кнопкой мыши на поле «ID_BOOKS» вызовем меню, из которого выберем EditField ID_BOOKS. В появившемся окне перейдём на вкладку Autoincrement (авто приращение). Ниже появятся три дополнительные вкладки Generator (генератор) Trigger (триггер) и Procedure (процедура). На вкладке Generator выберем CreateGenerator (создать генератор), присвоим ему имя «GEN_BOOKS_ID» и начальное значение укажем равным 1. Перейдём на вкладку Trigger и выберем CreateTrigger (создать триггер). Автоматически будет написан код:

IF (NEW."ID_ BOOKS" IS NULL) THEN

NEW."ID_ BOOKS" = GEN_ID(GEN_BOOKS_ID,1);

Здесь содержится оператор условия. Если при обращении к новому значению столбца «ID_ BOOKS» (оператор NEW), оно является пустым (оператор IS NULL) то ему присваивается значение, генерируемое созданным ранее генератором GEN_BOOKS_ID (GEN_ID(имя_генератора, шаг) – оператор обращения к генератору). Нажмём «ОК» и откомпилируем скрипт.

Аналогично мы создадим при создании других таблиц генераторы и триггеры, присваивающие уникальные значения ключевым столбцам этих таблиц.

Создадим две оставшиеся таблицы: «Издательства» (Publishers) и «Читатели» (Readers).

Создание триггеров

Создадим триггеры журнализации изменений таблицы «BOOKS». Для этого создадим таблицу «BOOKS_JOURNAL», в которую будут автоматически записываться любые изменения, добавления, удаления в таблице «BOOKS». При этом будет фиксироваться дата (поле «DATE»), операция (INS, UPD, DEL) над таблицей «BOOKS» (поле «OPERATION»), а также старое и новое значение столбцов этой таблицы. Для операции удаления новое значение столбцов будет пустым. Для операции добавления пустым будет старое значение столбцов.

Для журнализации была создана таблица:

CREATE TABLE BOOKS_JOURNAL (

К-во Просмотров: 410
Бесплатно скачать Контрольная работа: Особенности проектирования баз данных