
- •Стратегія аВтоматизації предметної області
- •Загальні положення
- •Мета, цілі та задачі створення бази даних
- •Вимоги до інформаційного забезпечення
- •Аналіз предметної області
- •Загальні положення системного аналізу пз
- •Загальні положення роботи бібліотеки
- •Системний аналіз предметної області
- •Сутність Книга
- •Сутність Читач
- •Сутність Формуляр
- •Сутність Каталог
- •Сутність Індекс
- •Сутність Автор
- •Сутність Видавництво
- •Концептуальне моделювання предметної області
- •Теоретичні положення концептуального моделювання
- •Мова er—моделювання пз
- •Побудова концептуальної моделі роботи бібліотеки
- •Логічне та фізичне проеткування бази даних
- •Логічне проектування
- •Фізичне проектування
- •Скрипти створення бази даних
- •Інформаційно-пошукові запити
- •Висновки
Фізичне проектування
База даних спроектована для її збереження у СКБД Oracle, яка підтримує реляційну модель даних і є об’єкто-реляційною СКБД. Ця СКБД має дуже розвинені можливості по створенню та супроводу баз даних, оскільки володіє найбільш розвиненою системою типів даних, можливостями індексування полів, що дозволяє одержувати доступ до даних за мінімальний час, а також функціями по забезпеченню підтримки цілісності даних між реляційними таблицями, що дозволяє розробнику мінімізувати тимчасові витрати на створення бази даних, а кінцевому користувачеві витрати на підтримку цілісності збережених даних і одержання даних з бази даних. Робота з базою даних підтримується за допомогою реляційної мови запитів SQL.
Логічна модель бази даних легко відображається в реляційну фізичну модель, оскільки логічна модель була побудована з використанням реляційної структури даних. Крім того, логічна модель була приведена у третю нормальну форму, тому усі відношення представляються у фізичній моделі окремими таблицями. Ніякі злиття відношень в одну таблицю для підвищення ефективності виконання окремих класів запитів не виконуються у зв’язку з тим, що такі класи запитів не були знайдені. У результаті отримано сімнадцять таблиць реляційної бази даних, де кожне відношення прямо відповідає окремій таблиці, атрибути кожного відношення стають полями цієї таблиці, а первинні ключі відношень стають первинними ключами таблиць.
Скрипти створення бази даних
Таблиця 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);
Таблиця 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);
Таблиця 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));
Таблиця 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));
Таблиця 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);
Таблиця Автор
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));
Таблиця Видавництво
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);