Проектирование базы данных библиотеки
Задание
библиотека модель база скрипт
Пусть в некотором локальном
представлении рассматривается учет книжного фонда библиотеки. Получить
информацию: а) о книгах, которые находятся в данном отделе библиотеки; б) о
книгах, которые на руках данного читателя; в) о читателях, которые посещают
данный отдел библиотеки.
Разработать концептуальную модель
данных, составить спецификации атрибутов и связей, в системе PowerDesigner сгенерировать
физическую модель по концептуальной модели, сгенерировать скрип создания базы
данных для СУБД FireBird. Создать базу данных с помощью скрипта и заполнить БД и написать SQL - запросы по варианту.
1. Концептуальная модель
На рисунке 1 представлена
концептуальная модель базы данных «Учет книг в библиотеке».
Рисунок 1. Концептуальная модель БД
«Учет книг в библиотеке»
Для создания базы данных были
сосзданы следующие таблицы:
1. Отделение;
2. Книга;
. Строка карточки;
. Карточка читателя.
2.
Спецификация связей
В базе данных «Учет книг в библиотеке»
связи между таблицами осуществляются следующим образом:
. Таблица Отдел соединена с таблицей
Книга связью один ко многим;
. Таблица Книга соединена с таблицей
Строка карточки связью один ко многим;
. Таблица Карточка читателя
соединена с таблицей Строка карточки связью один ко многим.
3. Спецификация
атрибутов
Атрибуты таблицы Отдел:
1. ИДОтдела (первичный ключ),
тип int;
2. Название, тип char;
. Адрес, тип char.
Атрибуты таблицы Книга:
ИДКнига (первичный ключ), тип int;
ИДОтдела (второичный ключ), тип int;
3 Автор, тип char;
4 Название, тип char;
Год издания, тип дата.
Атрибуты таблицы СтрокаКарточки:
ИДСтрокаКарточки (первичный ключ),
тип int;
ИДКарточкаЧитателя (второичный
ключ), тип int;
ИДКнига (второичный ключ), тип int;
Дата выдочи, тип дата;
Дата сдачи, тип дата.
Атрибуты таблицы КарточкаЧитателя:
ИДКарточкаЧитателя (первичный ключ),
тип int;
Ф.И.О., тип char;
Телефон, тип float;
4. Физическая модель
На рисунке 2 представлена физическая
модель БД «Учет книг в библиотеке».
Рисунок 2. Физическая модель БД «Учет книг в библиотеке»
5. Описание
создания базы данных, заполнения базы данных
Запускаем IB Expert:
В меню ‘Файл’ выбираем ‘Создать
базу’:
Указываем локальный сервер (вариант
для дома), название файла my_db.fdb, пользователь ‘SYSDBA’, пароль ‘masterke’ (не ‘masterkey’, пароль вводится маленькими буквами) и жмем ‘Ok’. Следующее окно: тип
сервера локальный, версия сервера ‘FireBird 2.0’, то же название базы, описание (это название файла без
расширения), то же имя пользователя и пароль:
Нажимаем кнопку регистрировать,
теперь создан файл для БД.
Проверяем, что есть соединение с
базой данных:
Если соединения нет, становимcя на название базы ‘my_db’ в дереве баз и далее в
меню ‘База данных’ выбираем ‘Подключиться к базе’, тогда должно появиться
соединение:
Далее в меню программы выбираем
‘Инструменты’, потом ‘Редактор скриптов’:
Нужно поставить галочку
‘Использовать текущее соединение’ и выбрать файл скрипт, который сгенерировала
программа PowerDesignerДалее в меню программы выбираем ‘Инструменты’, потом ‘Редактор
скриптов’.
Выполняем скрипт, нажав на зеленую
кнопку:
/*=================================================*/
/* DBMS name: InterBase
6.x */
/* Created on:
01.03.2014 8:58:47 */
/*================================================*/
/*============================================*/
/* Table: Book */
/*===============================================*/table
Book (NUMERIC not null,NUMERIC,VARCHAR(30),VARCHAR(30),DATE,PK_BOOK primary key
(IdBook)
);
/*================================================*/
/* Table:
Karto4ka4itately */
);
/*===============================================*/
/* Table: Otdel */
/*================================================*/table
Otdel (NUMERIC not null,VARCHAR(20),VARCHAR(50),PK_OTDEL primary key (IdOtdela)
);
/*===============================================*/
/* Table: StrokaKarto4ki
*/
/*==============================================*/table
StrokaKarto4ki (NUMERIC not null,NUMERIC,NUMERIC,i DATE,i
DATE,PK_STROKAKARTO4KI primary key (NomStroki)
);
alter table
Bookconstraint FK_BOOK_XRANITSY_OTDEL foreign key (IdOtdela)Otdel (IdOtdela);
alter table
StrokaKarto4kiconstraint FK_STROKAKA_VIDANA_KARTO4KA foreign key (NomerStroki)Karto4ka4itately
(NomerStroki);table StrokaKarto4kiconstraint FK_STROKAKA_ZAPISANA_BOOK foreign
key (IdBook)Book (IdBook);
Скрипт создал таблицы (какие
атрибуты у таблиц) и настроил связи между таблицами посредством внешнего ключа.
Добавление данных вручную.
Дважды нажимаем мышкой по названию
таблицы.
В появившемся окне переходим к
вкладке ‘Данные’.
и вбиваем данные в строки под
названиями столбцов.
Результат заполненных таблиц:
Таблица Отдел
Таблица. Книга
Таблица. СтрокаКарточки
Таблица. КарточкаЧитателя
6. SQL-запросы
Запрос №1 о книгах, которые
находятся в данном отделе библиотеки.
select BOOK.AVTOR,
BOOK.nazvanie,.godizdaniybook,book.idotdela
= otdel.idotdela
and otdel.idotdela = 1
Запрос №2. о книгах, которые на
руках данного читателя;
Код
запроса:
select
BOOK.AVTOR,.nazvanie,.godizdaniy,ki.datavida4ibook,kistrokakarto4ki.idbook =
book.idbookstrokakarto4ki.datasda4i is null
Запрос №3 о читателях, которые
посещают данный отдел библиотеки.
Код:
select
karto4ka4itately.fio,ka4itately.telifonkarto4ka4itately,,,kikarto4ka4itately.nomerstroki=strokakarto4ki.nomstrokistrokakarto4ki.idbook=
book.idbookbook.idotdela=otdel.idotdela
and otdel.idotdela=1
Заключение
В курсовой работе разработана база
данных под управлением СУБД FireBird, написаны SQL-запросы в соответствии с вариантом.
Список литературы
библиотека модель база скрипт
1. Карпова Т.С. Базы данных: модели, разработка, реализация:
Учеб. Пособие / Т.С. Карпова.: Питер, 2008.
2. Глушаков С.В., Ломотько Д.В. Базы данных: Учеб. Пособие /
Глушаков С.В., Ломотько Д.В.: «АТС», 2010.