Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
final_version_kyrsach_werder.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
389 Кб
Скачать
☆

4.2. Фізичне проектування

База даних спроектована для її збереження у СКБД Oracle, яка підтримує реляційну модель даних і є об’єкто-реляційною СКБД. Ця СКБД має дуже розвинені можливості по створенню та супроводу баз даних, оскільки володіє найбільш розвиненою системою типів даних, можливостями індексування полів, що дозволяє одержувати доступ до даних за мінімальний час, а також функціями по забезпеченню підтримки цілісності даних між реляційними таблицями, що дозволяє розробнику мінімізувати тимчасові витрати на створення бази даних, а кінцевому користувачеві витрати на підтримку цілісності збережених даних і одержання даних з бази даних. Робота з базою даних підтримується за допомогою реляційної мови запитів SQL.

Логічна модель бази даних легко відображається в реляційну фізичну модель, оскільки логічна модель була побудована з використанням реляційної структури даних. Крім того, логічна модель була приведена у другу третю форму, тому усі відношення представляються у фізичній моделі окремими таблицями. У результаті отримано дванадцять таблиць реляційної бази даних, де кожне відношення прямо відповідає окремій таблиці, атрибути кожного відношення стають полями цієї таблиці, а первинні ключі відношень стають первинними ключами таблиць.

4.2.1. Скрипти створення бази даних

Наведемо скрипт мови SQL Oracle, який створює таблиці БД.

1. Створення таблиці PUB_TYPE

CREATE TABLE PUB_TYPE (

PType integer CONSTRAINT type_prk PRIMARY KEY,

Description char(25) CONSTRAINT t_desc_unq UNIQUE NOT NULL,

CONSTRAINT t_desc_chk CHECK (Description IN (‘газета’,’книга’,’журнал’,’енциклопедія’,’методична література’)) );

2. Створення таблиці PUB_TITLE

CREATE TABLE PUB_TITLE (

PTitle integer CONSTRAINT title_prk PRIMARY KEY,

TitleText char(50) CONSTRAINT t_text_unq UNIQUE NOT NULL );

3. Створення таблиці PUBLISHING_HOUSE

CREATE TABLE PUBLISHING_HOUSE (

PubHID integer CONSTRAINT house_prk PRIMARY KEY,

Name char(50) NOT NULL,

City char(20) );

4. Створення таблиці AUTHOR

CREATE TABLE AUTHOR (

AuID integer CONSTRAINT author_prk PRIMARY KEY,

Surname char(30) NOT NULL,

Name char(20) NOT NULL,

FatherName char(25) );

5. Створення таблиці PUB_STYLE

CREATE TABLE PUB_STYLE (

PStyle integer CONSTRAINT style_prk PRIMARY KEY,

Description char(25) CONSTRAINT s_desc_unq UNIQUE NOT NULL,

CONSTRAINT s_desc_chk CHECK (Description IN (‘публіцистичний’,’ художній’,’ науковий’,’ офіційно-діловий’)) );

6. Створення таблиці PUBLICATION

CREATE TABLE PUBLICATION (

PubID integer CONSTRAINT pub_prk PRIMARY KEY,

PTitle integer CONSTRAINT p_title_frk REFERENCES PUB_TITLE(PTitle) ON DELETE SET NULL NOT NULL,

PStyle integer CONSTRAINT p_style_frk REFERENCES PUB_STYLE(PStyle) ON DELETE SET NULL,

Volume integer,

BibCode char(15) CONSTRAINT p_code_unq UNIQUE NOT NULL,

PubHID CONSTRAINT p_house_frk REFERENCES PUBLISHING_HOUSE(PubHID) ON DELETE SET NULL NOT NULL,

Year integer );

7. Створення таблиці CO_AUTHOR

CREATE TABLE CO_AUTHOR (

AuID integer CONSTRAINT co_author_frk REFERENCES AUTHOR(AuID) ON DELETE SET NULL NOT NULL,

PubID integer CONSTRAINT pub_frk REFERENCES PUBLICATION(PubID) ON DELETE CASCADE NOT NULL,

CONSTRAINT co_author_prk PRIMARY KEY (AuID,PubID));

8. Створення таблиці PUB_COVER

CREATE TABLE PUB_COVER (

CovID integer CONSTRAINT cover_prk PRIMARY KEY,

PubID integer CONSTRAINT cover_frk REFERENCES PUBLICATION(PubID) ON DELETE CASCADE NOT NULL,

Price number(10,2) CONSTRAINT price_chk CHECK (Price>0) NOT NULL,

BuyDate date NOT NULL);

9. Створення таблиці PLACE

CREATE TABLE PLACE (

PlaceID integer CONSTRAINT place_prk PRIMARY KEY,

RoomNo integer NOT NULL,

ShelNo integer NOT NULL,

ShelfNo integer NOT NULL);

10. Створення таблиці REGISTRATION

CREATE TABLE REGISTRATION (

PlaceID integer CONSTRAINT reg_place_frk REFERENCES PLACE(PlaceID) ON DELETE SET NULL NOT NULL,

CovID integer CONSTRAINT reg_cov_frk REFERENCES PUB_COVER(CovID) ON DELETE CASCADE NOT NULL,

PlaceDate date NOT NULL,

RemovDate date NOT NULL,

CONSTRAINT reg_prk PRIMARY KEY (PlaceID,CovID));

11. Створення таблиці READERS_TICKET

CREATE TABLE READERS_TICKET (

TicketID integer CONSTRAINT ticket_prk PRIMARY KEY,

Surname char(30) NOT NULL,

Name char(20) NOT NULL,

FatherName char(25),

Phone integer CONSTRAINT t_phone_unq UNIQUE,

Address char(50) NOT NULL);

12. Створення таблиці GIVING

CREATE TABLE GIVING (

TicketID integer CONSTRAINT giv_ticket_frk REFERENCES READERS_TICKET(TicketID) ON DELETE SET NULL NOT NULL,

PlaceID integer CONSTRAINT giv_place_frk REFERENCES PLACE(PlaceID) ON DELETE SET NULL NOT NULL,

GivDate date NOT NULL,

Term integer,

BackDate date NOT NULL,

CONSTRAINT giv_prk PRIMARY KEY (TicketID,PlaceID));

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]