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

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

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

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

        1. Таблиця READER

CREATE TABLE "READER"

("RID" NUMBER (5) constraint "R_PK" PRIMARY KEY,

"Family" VARCHAR2 (30) NOT NULL,

"SorName" VARCHAR2(30) NOT NULL,

"Name" VARCHAR2 (30) NOT NULL,

"Born" NUMBER (4) constraint "R_CK" check (Born>'1950'),

"Nation" CHAR (3),

"Prof" VARCHAR2 (30),

"Address" VARCHAR2 (100) NOT NULL);

        1. Таблиця KATALOG

CREATE TABLE "KATALOG"

("CID" NUMBER (5) constraint "K_PK" PRIMARY KEY,

"BBK" CHAR (20) constraint "K_UK" UNIQUE NOT NULL,

"DIVISION" VARCHAR2 (30),

"SUBDIVISION" VARCHAR (30));

ALTER TABLE "KATALOG" ADD CONSTRAINT "k_cs" UNIQUE (DIVISION, SUBDIVISION);

        1. Таблиця BOOK

CREATE TABLE "BOOK"

("BID" number (5) constraint "B_PK" PRIMARY KEY,

"INDEX" char (10) constraint "B_UK" UNIQUE NOT NULL,

"ISBN" char (30),

"BBK" char (20) constraint "B_FK" references "KATALOG" (BBK),

"NAME" varchar2 (50),

"AUTHOR" varchar2 (50),

"PUBLISH" varchar2 (30),

"CITY" varchar2 (30),

"YEAR" number (4) constraint "B_CK1" check (YEAR>1930),

"PAGES" number (4) constraint "B_CK2" check (PAGES between 10 and 2000),

"TRANSLATE" varchar2 (30)

"ANNOTATION" varchar2 (100));

        1. Таблиця FORMULAR

CREATE TABLE "FORMULAR"

("FID" NUMBER (5) constraint "F_PK" PRIMARY KEY,

"RID" NUMBER (5) constraint "F_FK1" references "READER" (RID) UNIQUE NOT NULL,

"INDEX" CHAR (10), constraint "F_FK2" references "BOOK" (INDEX) UNIQUE NOT NULL,

"GOUT" DATE,

"Return" DATE constraint "F_CK" check (RETURN>GOUT));

        1. Таблиця INDEX

CREATE TABLE “INDEX”

(“INDEXID” NUMBER (5) CONSTRAINT (I_PK) PRIMARY KEY,

“BOOKID” NUMBER (5) CONSTRAINT (I_FK1) REFERENCES BOOKS (BOOKID) NOT NULL,

“INDEX” CHAR (10) UNIQUE);

        1. Таблиця Автор

CREATE TABLE AUTHOR

(“AUTHORID” NUMBER (5) CONSTRAINT “A_PK” PRIMARY KEY,

“NAME” VARCHAR2(50) NOT NULL,

“SORNAME” VARCHAR2 (50) NOT NULL,

“FAMILY” VARCHAR2 (50) NOT NULL,

“COUNTRY” VARCHAR2 (30) NOT NULL,

“BORN” DATE,

“DEAD” DATE CONSTRAINT “A_CK1” CHECK(DEAD>BORN),

“GENRE” VARCHAR2 (30));

        1. Таблиця Видавництво

CREATE TABLE PUBLISHING

(“PUBID” NUMBER (5) CONSTRAINT “P_PK” PRIMARY KEY,

“NAME” VARCHAR2 (50) CONSTRAINT “P_UK” UNIQUE, NOT NULL,

“CITY” VARCHAR2 (50) NOT NULL);