2. Проектирование базы данных
2.1. Построение модели данных
В ходе разработки базы данных была построена диаграмма Сущность-связь, которая изображена на рисунке 3.
Рисунок 3. Диаграмма сущность-связь базы данных АИС «Книжный магазин»
База данных состоит из следующих таблиц:
AVTORI – Авторы
Данная таблица содержит информацию о авторах книг.
ПК |
ВК |
Поля |
Тип |
Назначение |
|
|
ID |
INTEGER |
Уникальный код |
|
|
FIO |
VARCHAR(40) |
Фамилия, Имя и Отчество автора книги |
GANRI – Жанры
Данная таблица содержит информацию о жанрах книг.
ПК |
ВК |
Поля |
Тип |
Назначение |
|
|
ID |
INTEGER |
Уникальный код |
|
|
NAIM |
VARCHAR(30) |
Наименование жанра |
IZDATELSTVA – Издательства
Данная таблица содержит информацию о издательствах.
ПК |
ВК |
Поля |
Тип |
Назначение |
|
|
ID |
INTEGER |
Уникальный код |
|
|
NAIM |
VARCHAR(30) |
Наименование издательства |
|
|
ADR |
VARCHAR(40) |
Адрес издательства |
KNIGI – Книги
Данная таблица содержит информацию о книгах.
ПК |
ВК |
Поля |
Тип |
Назначение |
|
|
ID |
INTEGER |
Уникальный код |
|
|
NAIM |
VARCHAR(40) |
Наименование книги |
|
|
KOD_GAN |
INTEGER |
Код жанра, для связи с таблицей Жанры |
|
|
KOD_AVT |
INTEGER |
Код автора, для связи с таблицей Авторы |
|
|
KOD_IZD |
INTEGER |
Код издательства, для связи с таблицей Издательства |
|
|
GOD_IZD |
INTEGER |
Год издания |
|
|
ZENA |
FLOAT |
Цена книги |
Внешние ключи:
FK_KNIGI_1 (Связь с таблицей Жанры)
ALTER TABLE KNIGI ADD CONSTRAINT FK_KNIGI_1
FOREIGN KEY (KOD_GAN)
REFERENCES GANRI (ID)
ON UPDATE CASCADE
ON DELETE CASCADE
FK_KNIGI_2 (Связь с таблицей Авторы)
ALTER TABLE KNIGI ADD CONSTRAINT FK_KNIGI_2
FOREIGN KEY (KOD_AVT)
REFERENCES AVTORI (ID)
ON UPDATE CASCADE
ON DELETE CASCADE
FK_KNIGI_3 (Связь с таблицей Издательства)
ALTER TABLE KNIGI ADD CONSTRAINT FK_KNIGI_3
FOREIGN KEY (KOD_IZD)
REFERENCES IZDATELSTVA (ID)
ON UPDATE CASCADE
ON DELETE CASCADE
POST – Контрагенты
Данная таблица содержит информацию о контрагентах (поставщиками и покупателями).
ПК |
ВК |
Поля |
Тип |
Назначение |
|
|
ID |
INTEGER |
Уникальный код |
|
|
NAIM |
VARCHAR(30) |
ФИО лица и наименование организации |
|
|
ADR |
VARCHAR(40) |
Адрес контрагента |
|
|
INN |
CHAR(12) |
ИНН контрагента |
|
|
BANK |
CHAR(16) |
Банковский счёт контрагента |
|
|
TEL |
CHAR(16) |
Контактный телефон контрагента |
PRIHOD – Приход
Данная таблица содержит информацию о приходных документах от поставщиков.
ПК |
ВК |
Поля |
Тип |
Назначение |
|
|
ID |
INTEGER |
Уникальный код |
|
|
DATA |
DATE |
Дата документа |
|
|
POS |
INTEGER |
Код поставщика, для связи с таблицей Контрагенты |
Внешний ключ FK_PRIHOD_1 (Связь с таблицей Контрагенты)
ALTER TABLE PRIHOD ADD CONSTRAINT FK_PRIHOD_1
FOREIGN KEY (POS)
REFERENCES POST (ID)
ON UPDATE CASCADE
ON DELETE CASCADE
RASHOD – Расход
Данная таблица содержит информацию о расходных документах.
ПК |
ВК |
Поля |
Тип |
Назначение |
|
|
ID |
INTEGER |
Уникальный код |
|
|
DATA |
DATE |
Дата документа |
|
|
POK |
INTEGER |
Код покупателя, для связи с таблицей Контрагенты |
Внешний ключ FK_RASHOD_1 (Связь с таблицей Контрагенты)
ALTER TABLE RASHOD ADD CONSTRAINT FK_RASHOD_1
FOREIGN KEY (POK)
REFERENCES POST (ID)
ON UPDATE CASCADE
ON DELETE CASCADE
SOD_PRI – Содержание приходной накладной. Содержит информацию о поступлении книг.
ПК |
ВК |
Поля |
Тип |
Назначение |
|
|
ID |
INTEGER |
Уникальный код |
|
|
KOD_PRI |
INTEGER |
Код приходной накладной, для связи с таблицей Приход |
|
|
KOD_KNI |
INTEGER |
Код книги, для связи с таблицей Книги |
|
|
ZENA |
INTEGER |
Цена книги |
|
|
KOL |
INTEGER |
Количество поступивших книг |
Внешние ключи:
FK_SOD_PRI_1 (Связь с таблицей Приход)
ALTER TABLE SOD_PRI ADD CONSTRAINT FK_SOD_PRI_1
FOREIGN KEY (KOD_PRI)
REFERENCES PRIHOD (ID)
ON UPDATE CASCADE
ON DELETE CASCADE
FK_SOD_PRI_2 (Связь с таблицей Книги)
ALTER TABLE SOD_PRI ADD CONSTRAINT FK_SOD_PRI_2
FOREIGN KEY (KOD_KNI)
REFERENCES KNIGI (ID)
ON UPDATE CASCADE
ON DELETE CASCADE
SOD_RAS – Содержание расходной накладной. Содержит информацию о продаже книг.
ПК |
ВК |
Поля |
Тип |
Назначение |
|
|
ID |
INTEGER |
Уникальный код |
|
|
KOD_CHEK |
INTEGER |
Код расходной накладной (чека), для связи с таблицей Расход |
|
|
KOD_KNI |
INTEGER |
Код книги, для связи с таблицей Книги |
|
|
ZENA |
INTEGER |
Цена проданной книги |
|
|
KOL |
INTEGER |
Количество проданных книг |
Внешние ключи:
FK_SOD_RAS_1 (Связь с таблицей Книги)
ALTER TABLE SOD_RAS ADD CONSTRAINT FK_SOD_RAS_1
FOREIGN KEY (KOD_KNI)
REFERENCES KNIGI (ID)
ON UPDATE CASCADE
ON DELETE CASCADE
FK_SOD_RAS_2 (Связь с таблицей Расход)
ALTER TABLE SOD_RAS ADD CONSTRAINT FK_SOD_RAS_2
FOREIGN KEY (KOD_CHEK)
REFERENCES RASHOD (ID)
ON UPDATE CASCADE
ON DELETE CASCADE
SKLAD - Cклад. Содержит информацию об остатках книг в магазине.
ПК |
ВК |
Поля |
Тип |
Назначение |
|
|
ID |
INTEGER |
Уникальный код |
|
|
KOD_KNI |
INTEGER |
Код книги, для связи с таблицей Книги |
|
|
ZENA |
INTEGER |
Цена книги |
|
|
KOL |
INTEGER |
Количество оставшихся в магазине книг |
Внешние ключи:
FK_SKL_1 (Связь с таблицей Книги)
ALTER TABLE SKL ADD CONSTRAINT FK_SKL_3
FOREIGN KEY (KOD_KNI)
REFERENCES KNIGI (ID)
ON UPDATE CASCADE
ON DELETE CASCADE
2. FK_SKL_2 (Связь с таблицей Приход)
ALTER TABLE SKL ADD CONSTRAINT FK_SKL_3
FOREIGN KEY (KOD_PRI)
REFERENCES PRIHOD (ID)
ON UPDATE CASCADE
ON DELETE CASCADE
ZAK - Заказы. Содержит информацию о заказах книг поставщикам.
ПК |
ВК |
Поля |
Тип |
Назначение |
|
|
ID |
INTEGER |
Уникальный код |
|
|
KOD_POST |
INTEGER |
Код поставщика, для связи с таблицей Контрагенты |
|
|
KOD_KNI |
INTEGER |
Код книги, для связи с таблицей Книги |
|
|
DATA |
INTEGER |
Дата заказа |
|
|
KOL |
INTEGER |
Количество необходимых книг |
Внешние ключи:
1. FK_ZAK_1 (Связь с таблицей Книги)
ALTER TABLE ZAK ADD CONSTRAINT FK_ZAK_1
FOREIGN KEY (KOD_KNI)
REFERENCES KNIGI (ID)
ON UPDATE CASCADE
ON DELETE CASCADE
FK_ZAK_2 (Связь с таблицей Контрагенты)
ALTER TABLE ZAK ADD CONSTRAINT FK_ZAK_2
FOREIGN KEY (KOD_POS)
REFERENCES POST (ID)
ON UPDATE CASCADE
ON DELETE CASCADE
