Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

ERD предметної області, що автоматизується

Поиск

 

 


Змістовний опис обмежень цілісності

Назва таблиці Назва стовпця Обмеження цілісності
Повітряне судно # Бортовий номер Первинний ключ
*Тип повітряного судна Зовнішній ключ, не дорівнює нулю
*Код реєстрації Зовнішній ключ, не дорівнює нулю
*Назва авіакомпанії-власника Зовнішній ключ, не дорівнює нулю

 

Реєстраційний орган #Назва Первинний ключ
Реєстрація # Код реєстрації Первинний ключ
*Дата Не дорівнює нулю
*Місце Не дорівнює нулю
*Власник Не дорівнює нулю
*Ознака повторної реєстрації Не дорівнює нулю. Може приймати одне зі значень: «Так» чи «Ні»
*Назва реєстраційного органу Зовнішній ключ, не дорівнює нулю
Авіакомпанія # Назва Первинний ключ
Тип повітряного судна # Назва Первинний ключ
*Кількість місць Не дорівнює нулю
*Вантажопідйомність Не дорівнює нулю
Служба #Назва Первинний ключ
Обслуговування #Дата Первинний ключ
*Результат Не дорівнює нулю
*Бортовий номер обслуговуваного судна Зовнішній ключ
*Назва служби, що обслуговує Зовнішній ключ

 

Для всіх зв'язків встановлено каскадне видалення (після видалення сутності повинні видаляти всі пов'язані з ним об'єкти).


Логічний проект бази даних

Опис таблиць бази даних з обмеженнями цілісності

CREATE TABLE aircrafttype (

Name VARCHAR(50) CONSTRAINT c1 PRIMARY KEY,

PlaceCount INTEGER CONSTRAINT c2 NOT NULL,

CarCapacity INTEGER CONSTRAINT c3 NOT NULL

);

 

CREATE TABLE aricompany (

Name VARCHAR(100) CONSTRAINT c4 PRIMARY KEY

);

 

CREATE TABLE reg_organ (

Name VARCHAR(100) CONSTRAINT c5 PRIMARY KEY

);

 

CREATE TABLE registration (

ID INTEGER CONSTRAINT c6 PRIMARY KEY,

RegDate DATE CONSTRAINT c7 NOT NULL,

Place VARCHAR(50) CONSTRAINT c8 NOT NULL

Owner VARCHAR(70) CONSTRAINT c19 NOT NULL

Ag_sign VARCHAR(10) CONSTRAINT c9 CHECK (Ag_sign in (‘Yes’, ‘No’)),

OrganName VARCHAR(100) CONSTRAINT c10 REFERENCES reg_organ(Name) ON DELETE CASCADE

);

 

CREATE TABLE aircraft (

Hull_No INTEGER CONSTRAINT c11 PRIMARY KEY

ac_type VARCHAR(50) CONSTRAINT c12 REFERENCES aircrafttype (Name) ON DELETE CASCADE

compnyname VARCHAR(100) CONSTRAINT c13 REFERENCES aircompany(Name) ON DELETE CASCADE

RegID INTEGER CONSTRAINT c14 REFERENCES registration (ID) ON DELETE CASCADE

);

 

CREATE TABLE service (//служба

Name VARCHAR(50) CONSTRAINT c15 PRIMARY KEY

);

 

CREATE TABLE serv (//обслуживание

srvDate DATE CONSTRAING c16 PRIMARY KEY

result VARCHAR(20) CONSTRAINT NOT NULL

servName VARCHAR(50) CONSTRAINT c17 REFERENCES service(Name) ON DELETE CASCADE

Hull_No INTEGER CONSTRAINT c18 REFERENCES aircraft(Hull_No) ON DELETE CASCADE

);


Опис запитів по вибору даних, що реалізують описані задачі

1. Видати список всіх зареєстрованих повітряних суден (бортовий номер, власник, реєструючий орган)

 

SELECT aircraft.Null_No, registration.Owner, reg_organ.Name

FROM aircraft, registration, reg_organ

WHERE aircraft. RegID = registration.ID and registration.OrganName = reg_organ.name;

 

2. Видати всі результати обслуговування повітряного судна (бортовий номер, результати) за період з 1.01.2011 по 1.01.2012

SELECT aircraft.hull_No, serv.result

FROM serv, service, aircraft, registration, reg_organ

WHERE aircraft. RegID = registration.ID and registration.OrganName = reg_organ.name and service.Name = serv.servName and serv.Null_No=aircraft.Null_No and serv.srvDate BETWEEN TO_DATE(‘1.01.2011’, ‘DD.MM.YYYY) AND TO_DATE(‘1.01.2012’,’DD.MM.YYYY’);

 

3. Видати перелік авіакомпаній, судна яких зареєстровані

 

SELECT aircompany.Name

FROM aircompany, aircraft, registration, reg_organ

WHERE aircraft. RegID = registration.ID and registration.OrganName = reg_organ.name and aircraft.companyname = aircompany.Name

 

4. Видати список зареєстрованих повітряних суден (бортові номери, назви типів) з кількістю місць менше 250

 

SELECT aircraft.Hull_NO, aircrafttype.Name

FROM aircrafttype, aircraft, registration, reg_organ

WHERE aircraft. RegID = registration.ID and registration.OrganName = reg_organ.name and aircrafttype.Name = aircraft.ac_type and aircrafttype.placecount<250;

 

5. Вивести список служб, які обслуговували певний рейс

SELECT serv.ServName

FROM serv, aircraft,

WHERE serv.Hull_No=aircraft.Hull_No and Aircraft.id=148;

 

6. Видати повітряні судна заданої авіакомпанії (бортові номери), що пройшли повторну реєстрацію

 

SELECT aircraft.Hull_NO

FROM aircompany, aircraft, registration, reg_organ

WHERE aircraft. RegID = registration.ID and registration.OrganName = reg_organ.name and aircraft.companyname = ‘Авиакомпания#1’;

 

7. Видати кількість літаків певного типу, що належать заданій авіакомпанії

 

SELECT COUNT(*)

FROM aircraft, registration, reg_organ

WHERE aircraft. RegID = registration.ID and registration.OrganName = reg_organ.name and aircraft.tp_Name=’АН-140’ and aircraft.companyname=’Авиакомпания#2’;

 

8. Вибрати ті судна (бортові номери) АН-140, які не проходили обслуговування в періодс 1.01.2011 до 01.01.2012

 

SELECT aircraft.hull_No

FROM aircraft, aircrafttype

WHERE aircraft.ac_type = aircrafttype.Name AND aircraft.ac_type=’АН-140’ AND aircraft.Hull_No NOT IN (

SELECT aircraft.Hull_No

FROM aircraft, serv

WHERE serv.Hull_No = aircraft.hull_No AND serv.srvDate not BETWEEN TO_DATE(‘1.01.2011’, ‘DD.MM.YYYY) AND TO_DATE(‘1.01.2012’,’DD.MM.YYYY’);

);

 

 


Висновки

Проектування баз даних — це складний, багатокроковий процес перетворення інформаційного середовища ПО у інформаційну модель у вигляді бази даних. Цей процес складається з різних етапів, а саме: розробка стратегії автоматизації, аналіз ПО, побудова концептуальної моделі ПО, логічне та фізичне проектування БД. На сучасному етапі розвитку інформатики проектування баз даних перетворилося на цілком сформовану наукову дисципліну, яка має у своєму складі формально-теоретичну та технологічну складові. Теоретичної основою проектування баз даних є теорія нормалізації, яка дозволяє чітко і строго відповісти на таке запитання: як слід проводити перетворення початкової схеми ПО таким чином, щоб результуюча схема бази даних була еквівалентна початковій і була краща за неї. Методологія проектування детально описує усі етапи життєвого циклу створення бази даних з використанням сучасних мов опису ПО.

Ціллю даної курсової роботи було створення бази даних реєстрації повітряних суден України.

Для виконання роботи були проведені всі необхідні дослідження щодо розробки стратегії автоматизації; окрім того, було досліджено предметну область, для якої розроблювалась база даних.

Після цього був проведений аналіз ПО в результаті якого був отриманий змістовний опис ПО. Для аналізу ПО використовувалися наявні документи, а саме: журнали реєстрацій суден; правила та загальні пункти реєстрації.

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

Логічне та фізичне проектування БД складалося з конвертації концептуальної моделі ПО у реляційну модель даних. При цьому був використаний алгоритм конвертування схеми ПО у мові ER в схему реляційної бази даних. Після цього реляційна база даних була представлена у вигляді команд створення таблиць бази даних у мові SQL ORACLE. Крім того, у мові SQL описані деякі інформаційно-пошукові запити.

Виконана курсова робота надала мені можливості ознайомитися з технологією проектування баз даних, та отримати практичний досвід у проектуванні бази даних з конкретної предметної області.



Поделиться:


Последнее изменение этой страницы: 2016-08-01; просмотров: 280; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.188.211.246 (0.006 с.)