Контрольная работа по предмету "Программирование, компьютеры и кибернетика, ИТ технологии"


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



- 23 -

Задание

· В соответствии с вариантом спроектируйте базу данных любым методом проектирования на основе описания предметной области.

1. В СУБД InterBase 6.0/Firebird 1.5 реализуйте серверную часть спроектированной ранее базы данных, которая должна содержать:

1) таблицы с определением первичного ключа

2) триггеры, реализующие каскадное обновление и каскадное удаление связанных полей

3) триггеры, присваивающие уникальное значение генератора в поле первичного ключа

4) триггеры, обеспечивающие журнализацию изменений определенной таблицы

5) не менее трех различных хранимых процедур

2. В ИСР Delphi создайте клиентское приложение, используя любую технологию доступа к данным (BDE, IBX, ADO и др.) с возможностью поиска и фильтрации данных, а также вывода отчета.

1) У каждой книги в библиотеке свой идентификационный номер.

2) Каждая книга может быть издана в одном издательстве.

3) В одном и том же издательстве издается несколько книг.

4) Каждая книга имеет определенное количество страниц, тип переплета, величину тиража.

5) Каждая книга в конкретный момент может находиться или в библиотеке или на руках только у одного читателя.

6) Каждый читатель может взять из библиотеки несколько книг.

7) Каждый читатель имеет уникальный номер абонемента.

8) Имя читателя не уникально. Название издательства не уникально.

9) Читатель имеет ФИО, телефон, адрес. Издательство - название, город.

Проектирование базы данных

Приведём ER-диаграмму в соответствии с описанием предметной области:

- 23 -

Рис.1. ER-диаграмма

Так как каждая книга в конкретный момент времени может находиться на руках только у одного читателя, то мы можем связать сущности «Книга» и «Читатели» по полю «ID Абонента» связью типа Многие к одному так как в этом поле, являющемся внешним ключом для атрибута «Книги», могут повторяться записи, ибо один и тот же читатель может взять сразу несколько книг. Если это поле содержит значение NULL, то значит, что данная книга ни находится на руках у читателя, а находится в библиотеке. Добавим для сущности «Книга» дополнительное свойство «Дата выдачи». Значения этого поля должны равняться NULL если значение поля «ID Абонента» так же равняется NULL.

Приведём базу данных к третьей нормальной форме. Свойство «Издательство» сущности «Книги» имеет дополнительные свойства не зависящие от ключевых. Поэтому сделаем свойство «Издательство» самостоятельной сущностью и введём для него дополнительное свойство «ID Издательства» и сделаем его ключевым.

- 23 -

Рис.2. ER-диаграмма

Опишем структуру каждой таблицы.

Таблица «Книги» (Books)

Наименование поля

Тип данных

Ограничения

ID Книги (ID_Books)

Целое число

NOT NULL

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

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

Наименование (Name)

Строка (30)

NOT NULL

ID Издательства (ID_Publishers)

Целое число

NOT NULL

Внешний ключ

Количество страниц (K_pages)

Целое число

NOT NULL

Тип переплёта (Cover)

Строка (15)

NOT NULL

Тираж (Tiraz)

Целое число

NOT NULL

ID Абонента (ID_abonent)

Целое число

Внешний ключ

Дата выдачи (Date_issue)

Дата

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

Наименование поля

Тип данных

Ограничения

ID Издательства (ID_Publishers)

Целое число

NOT NULL

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

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

Название (Name)

Строка (20)

NOT NULL

Город (City)

Строка (20)

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

Наименование поля

Тип данных

Ограничения

ID Абонента (ID_ abonent)

Целое число

NOT NULL

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

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

ФИО (FIO)

Строка (30)

NOT NULL

Телефон (Telephone)

Строка (10)

Адрес (Address)

Строка (20)

NOT NULL

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

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

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

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

· Database (Файл БД) - C:



Не сдавайте скачаную работу преподавателю!
Данную контрольную работу Вы можете использовать для выполнения своих заданий.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :