Проектирование базы данных библиотеки
Если соединения нет, становимcя на название базы `my_db' в дереве баз и далее в меню `База данных' выбираем `Подключиться к базе', тогда должно появиться соединение: В курсовой работе разработана база данных под управлением СУБД FireBird, написаны SQL-запросы в соответствии с вариантом. Скрипт создал таблицы (какие атрибуты у таблиц) и настроил связи между таблицами посредством внешнего ключа… Читать ещё >
Проектирование базы данных библиотеки (реферат, курсовая, диплом, контрольная)
Задание
библиотека модель база скрипт Пусть в некотором локальном представлении рассматривается учет книжного фонда библиотеки. Получить информацию: а) о книгах, которые находятся в данном отделе библиотеки; б) о книгах, которые на руках данного читателя; в) о читателях, которые посещают данный отдел библиотеки.
Разработать концептуальную модель данных, составить спецификации атрибутов и связей, в системе PowerDesigner сгенерировать физическую модель по концептуальной модели, сгенерировать скрип создания базы данных для СУБД FireBird. Создать базу данных с помощью скрипта и заполнить БД и написать SQL — запросы по варианту.
1. Концептуальная модель
На рисунке 1 представлена концептуальная модель базы данных «Учет книг в библиотеке».
Рисунок 1. Концептуальная модель БД «Учет книг в библиотеке»
Для создания базы данных были сосзданы следующие таблицы:
1. Отделение;
2. Книга;
3. Строка карточки;
4. Карточка читателя.
2. Спецификация связей
В базе данных «Учет книг в библиотеке» связи между таблицами осуществляются следующим образом:
1. Таблица Отдел соединена с таблицей Книга связью один ко многим;
2. Таблица Книга соединена с таблицей Строка карточки связью один ко многим;
3. Таблица Карточка читателя соединена с таблицей Строка карточки связью один ко многим.
3. Спецификация атрибутов
Атрибуты таблицы Отдел:
1. ИДОтдела (первичный ключ), тип int;
2. Название, тип char;
3. Адрес, тип char.
Атрибуты таблицы Книга:
1 ИДКнига (первичный ключ), тип int;
2 ИДОтдела (второичный ключ), тип int;
3 Автор, тип char;
4 Название, тип char;
5 Год издания, тип дата.
Атрибуты таблицы СтрокаКарточки:
1 ИДСтрокаКарточки (первичный ключ), тип int;
2 ИДКарточкаЧитателя (второичный ключ), тип int;
3 ИДКнига (второичный ключ), тип int;
4 Дата выдочи, тип дата;
5 Дата сдачи, тип дата.
Атрибуты таблицы КарточкаЧитателя:
1 ИДКарточкаЧитателя (первичный ключ), тип int;
2 Ф.И.О., тип char;
3 Телефон, тип 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 */
/*===============================================*/
create table Book (
IdBook NUMERIC not null,
IdOtdela NUMERIC,
Avtor VARCHAR (30),
Nazvanie VARCHAR (30),
GodIzdaniy DATE,
constraint PK_BOOK primary key (IdBook)
);
/*================================================*/
/* Table: Karto4ka4itately */
/*===============================================*/
create table Karto4ka4itately (
NomerStroki NUMERIC not null,
FIO VARCHAR (50),
Telifon DECIMAL,
constraint PK_KARTO4KA4ITATELY primary key (NomerStroki)
);
/*===============================================*/
/* Table: Otdel */
/*================================================*/
create table Otdel (
IdOtdela NUMERIC not null,
Name VARCHAR (20),
Adress VARCHAR (50),
constraint PK_OTDEL primary key (IdOtdela)
);
/*===============================================*/
/* Table: StrokaKarto4ki */
/*==============================================*/
create table StrokaKarto4ki (
NomStroki NUMERIC not null,
NomerStroki NUMERIC,
IdBook NUMERIC,
DataVida4i DATE,
DataSda4i DATE,
constraint PK_STROKAKARTO4KI primary key (NomStroki)
);
alter table Book
add constraint FK_BOOK_XRANITSY_OTDEL foreign key (IdOtdela)
references Otdel (IdOtdela);
alter table StrokaKarto4ki
add constraint FK_STROKAKA_VIDANA_KARTO4KA foreign key (NomerStroki)
references Karto4ka4itately (NomerStroki);
alter table StrokaKarto4ki
add constraint FK_STROKAKA_ZAPISANA_BOOK foreign key (IdBook)
references Book (IdBook);
Скрипт создал таблицы (какие атрибуты у таблиц) и настроил связи между таблицами посредством внешнего ключа.
Добавление данных вручную.
Дважды нажимаем мышкой по названию таблицы.
В появившемся окне переходим к вкладке `Данные'.
и вбиваем данные в строки под названиями столбцов.
Результат заполненных таблиц:
Таблица Отдел
Таблица. Книга Таблица. СтрокаКарточки Таблица. КарточкаЧитателя
6. SQL-запросы
Запрос № 1 о книгах, которые находятся в данном отделе библиотеки.
select BOOK. AVTOR,
BOOK.nazvanie,
BOOK.godizdaniy
from book,
otdel
where book. idotdela = otdel. idotdela
and otdel. idotdela = 1
Запрос № 2. о книгах, которые на руках данного читателя;
Код запроса:
select BOOK. AVTOR,
BOOK.nazvanie,
BOOK.godizdaniy,
strokakarto4ki.datavida4i
from book,
strokakarto4ki
where strokakarto4ki. idbook = book. idbook
and strokakarto4ki. datasda4i is null
Запрос № 3 о читателях, которые посещают данный отдел библиотеки.
Код:
select karto4ka4itately. fio,
karto4ka4itately.telifon
from karto4ka4itately,
otdel,
book,
strokakarto4ki
where karto4ka4itately. nomerstroki=strokakarto4ki.nomstroki
and strokakarto4ki. idbook= book. idbook
and book. idotdela=otdel.idotdela
and otdel. idotdela=1
Заключение
В курсовой работе разработана база данных под управлением СУБД FireBird, написаны SQL-запросы в соответствии с вариантом.
Список литературы
библиотека модель база скрипт
1. Карпова Т. С. Базы данных: модели, разработка, реализация: Учеб. Пособие / Т. С. Карпова.: Питер, 2008.
2. Глушаков С. В., Ломотько Д. В. Базы данных: Учеб. Пособие / Глушаков С. В., Ломотько Д. В.: «АТС», 2010.