Логічне проектування
У якості логічній моделі бази даних була обрана реляційна модель, оскільки саме реляційна модель використовується у більшості розвинених СКБД.
Для перетворення концептуальної моделі, представленої у вигляді мови ER–моделювання, у реляційну модель, був використаний наступний алгоритм.
· Крок 1. Перетворення сутностей у таблиці. Кожна сутність перетворюється у таблицю. Ім’я сутності представляється у вигляді семантично осмисленого імені у латинському алфавіті.
· Крок 2. Перетворення атрибутів у стовпці. Кожний атрибут перетвориться в стовпець. Ім’я атрибуту представляється у вигляді семантично осмисленого імені у латинському алфавіті. У цей момент уточнюється формат представлення значень стовпця. Факультативні атрибути стають NULL-стовпцями. Обов'язкові атрибути стають NOT NULL-стовпцями.
· Крок 3. Подання унікальних ідентифікаторів ключами таблиць. Складові унікального ідентифікатора сутності стають первинним ключем таблиці. Нагадаємо, що сутність може мати більш ніж один унікальний ідентифікатор Тому вибирається той, котрий використовується найбільше часто. Всі інші унікальні ідентифікатори приймають обмеження цілісності UNIQUE NOT та NOT NULL.
Рис. Концептуальна ER-модель проходження практики студентами
Сутність може унікально ідентифікуватися комбінацією атрибутів і/або зв'язків. При використанні в ідентифікаторі сутності зв'язку до складу первинного ключа включається зовнішній ключ, який посилається на ту таблицю, з якою пов’язаний той або інший зв’язок.
· Крок 4. Перетворення зв'язків багато-до-одного й один-до-одного в зовнішні ключі. Зв'язки типу багато-до-одного й один-до-одного породжують зовнішні ключі. Інакше кажучи, необхідно взяти унікальні ідентифікатори кожної сутності, розташованої в закінчення зв'язку зі ступенем один, і ввести його у відношення, розташоване з боку зв'язку "багато" як стовпці. Факультативним зв'язкам відповідають NULL-стовпці. Обов'язковим зв'язкам відповідають NOT NULL-стовпці.
· Крок 5. Введення спеціальних первинних ключів. Для більш адекватного відображення логічного проекту бази даних у фізичний, вводимо у всі таблиці один спеціальний стовпець з обмеженням цілісності первинного ключа. Всі ті стовпці, які мають властивість первинного ключа згідно з концептуальною моделлю, набувають обмеження цілісності UNIQUE та NOT NULL.
Повна логічна база даних на основі концептуальної моделі з урахуванням обмежень цілісності та наведеного вище алгоритму детально представлена в наступних таблицях.
Таблиця 1. Відношення сутностіНАВЧАЛЬНИЙ ПЛАН
EDU_PLAN
Ім’я стовпця | Тип | Довжина | Призначення | Обмеження цілісності стовпців |
EPID | ціле число | Унікальний ID | Первинний ключ | |
Num | строка | Номер навч. плану | Унікальний, обов’язковий | |
Ass_date | дата | Дата затвердження | Обов’язковий | |
Prs | строка | Особа, що затвердила | Обов’язковий | |
SPID | ціле число | Зв’язок зі спеціальністю | Зовнішній ключ, що посилається на первинний ключ відношення SPECIALITY. Обов’язковий |
Таблиця 2. Відношення сутностіЗАПЛАНОВАНА ПРАКТИКА
PLAN_PRACTICE
Ім’я стовпця | Тип | Довжина | Призначення | Обмеження цілісності стовпців |
PPID | ціле число | Унікальний ID | Первинний ключ | |
Dur_type | строка | Одиниці виміру терміну проходження практики. Приймає значення „Д”–дні, „Т”–тижні | Обов’язковий | |
Duration | ціле число | Термін проходження практики | Обов’язковий | |
QLID | ціле число | Зв’язок з кваліфікаційним рівнем | Зовнішній ключ, що посилається на первинний ключ відношення QUALI_LEVEL. Обов’язковий | |
CUID | ціле число | Зв’язок з курсом | Зовнішній ключ, що посилається на первинний ключ відношення COURSE. Обов’язковий | |
PTID | ціле число | Зв’язок з видом практики | Зовнішній ключ, що посилається на первинний ключ відношення PRAC_TYPE. Обов’язковий | |
EPID | ціле число | Зв’язок з навчальним планом | Зовнішній ключ, що посилається на первинний ключ відношення EDU_PLAN. Обов’язковий | |
Обмеження цілісності таблиці | Сукупність стовпців (CUID, EPID) має обмеження унікальності та обов’язковості. |
Таблиця 3. Відношення сутностіВИД ПРАКТИКИ
PRAC_TYPE
Ім’я стовпця | Тип | Довжина | Призначення | Обмеження цілісності стовпців |
PTID | ціле число | Унікальний ID | Первинний ключ | |
Name | строка | Назва практики | Унікальний, обов’язковий. Приймає значення: схемотехнічна; комп’ютерна; технологічна; експлуатаційна (для спеціалістів науково-дослідна (для магістрів). | |
Descr | строка | Змістовний опис | Факультативний |
Таблиця 4. Відношення сутностіКВАЛІФІКАЦІЙНИЙ РІВЕНЬ
QUALI_LEVEL
Ім’я стовпця | Тип | Довжина | Призначення | Обмеження цілісності стовпців |
QLID | ціле число | Унікальний ID | Первинний ключ | |
Name | строка | Назва кваліфікаційного рівня | Унікальний, обов’язковий. Приймає значення: бакалавр; спеціаліст; магістр. | |
Descr | строка | Змістовний опис | Факультативний | |
CUID | ціле число | Зв’язок з курсом | Зовнішній ключ, що посилається на первинний ключ відношення COURSE. Обов’язковий |
Таблиця 5. Відношення сутностіСПЕЦІАЛЬНІСТЬ
SPECIALITY
Ім’я стовпця | Тип | Довжина | Призначення | Обмеження цілісності стовпців |
SPID | ціле число | Унікальний ID | Первинний ключ | |
Num | строка | Номер спеціальності | Унікальний, обов’язковий. | |
Name | строка | Назва спеціальності | Обов’язковий |
Таблиця 6. Відношення сутностіКУРС
COURSE
Ім’я стовпця | Тип | Довжина | Призначення | Обмеження цілісності стовпців |
CUID | ціле число | Унікальний ID | Первинний ключ | |
Num | ціле число | Номер курсу | Унікальний, обов’язковий. Приймає значення: 1-6. | |
Descr | строка | Змістовний опис | Факультативний |
Таблиця 7. Відношення сутностіВУЗ
UNIVERSITY
Ім’я стовпця | Тип | Довжина | Призначення | Обмеження цілісності стовпців |
UNID | ціле число | Унікальний ID | Первинний ключ | |
Short_Name | строка | Скорочена назва ВУЗу | Факультативний. | |
Long_Name | строка | Повна назва ВУЗу | Обов’язковий, унікальний | |
Address | строка | Адреса ВУЗу | Факультативний | |
Rector | строка | ПІБ ректора | Обов’язковий, унікальний |
Таблиця 8. Відношення сутностіІНСТИТУТ
INSTITUTE
Ім’я стовпця | Тип | Довжина | Призначення | Обмеження цілісності стовпців |
INID | ціле число | Унікальний ID | Первинний ключ | |
Short_Name | строка | Скорочена назва | Факультативний. | |
Long_Name | строка | Повна назва | Обов’язковий, унікальний | |
Director | строка | ПІБ директора | Обов’язковий, унікальний | |
UNID | ціле число | Зв’язок з ВУЗом | Зовнішній ключ, що посилається на первинний ключ відношення UNIVERSITY. Обов’язковий |
return false">ссылка скрыта
Таблиця 9. Відношення сутностіФАКУЛЬТЕТ
FACULTY
Ім’я стовпця | Тип | Довжина | Призначення | Обмеження цілісності стовпців |
FAID | ціле число | Унікальний ID | Первинний ключ | |
Short_Name | строка | Скорочена назва | Факультативний. | |
Long_Name | строка | Повна назва | Обов’язковий, унікальний | |
Dean | строка | ПІБ декана | Обов’язковий, унікальний | |
UNID | ціле число | Зв’язок з ВУЗом | Зовнішній ключ, що посилається на первинний ключ відношення UNIVERSITY. Факультативний | |
INID | ціле число | Зв’язок з інститутом | Зовнішній ключ, що посилається на первинний ключ відношення INSTITUTE,. Факультативний | |
FKType | строка | Признак, кому належить факультет, ВУЗу або інституту | Приймає значення: „У”, якщо факультет належить UNIVERSITY, або “І”, якщо факультет належить INSTITUTE |
Таблиця 10. Відношення сутностіКАФЕДРА
DEPARTMENT
Ім’я стовпця | Тип | Довжина | Призначення | Обмеження цілісності стовпців |
DEID | ціле число | Унікальний ID | Первинний ключ | |
Short_Name | строка | Скорочена назва | Факультативний. | |
Long_Name | строка | Повна назва | Обов’язковий, унікальний | |
Head | строка | ПІБ завідувача | Обов’язковий, факультативний | |
FAID | ціле число | Зв’язок з факультетом | Зовнішній ключ, що посилається на первинний ключ відношення FACILTY. Обов’язковий |
Таблиця 11. Відношення сутностіГРУПА
STGROUP
Ім’я стовпця | Тип | Довжина | Призначення | Обмеження цілісності стовпців |
GRID | ціле число | Унікальний ID | Первинний ключ | |
Num | строка | Номер групи | Обов’язковий, унікальний у межах факультету | |
Descr | строка | Змістовний опис групи | Факультативний | |
DEID | ціле число | Зв’язок з кафедрою | Зовнішній ключ, що посилається на первинний ключ відношення DEPARTMENT. Обов’язковий | |
CUID | ціле число | Зв’язок з курсом | Зовнішній ключ, що посилається на первинний ключ відношення COURSE. Обов’язковий |
Таблиця 12. Відношення сутностіСТУДЕНТ
STUDENT
Ім’я стовпця | Тип | Довжина | Призначення | Обмеження цілісності стовпців |
STID | ціле число | Унікальний ID | Первинний ключ | |
Last_name | строка | Прізвище | Обов’язковий | |
Name | строка | Ім’я | Обов’язковий | |
Patro_name | строка | По батькові | Обов’язковий | |
Num | строка | Номер студентського квитка | Обов’язковий, унікальний | |
Birthday | дата | Дата народження | Обов’язковий | |
Year | ціле число | Рік вступу у ВУЗ | Обов’язковий | |
Country | строка | Країна мешкання | Обов’язковий | |
Contract | строка | Навчання за контрактом | Обов’язковий. „T” – навчання за контрактом, „H” - ні | |
External | строка | Навчання екстерном | Обов’язковий. „T” – навчання екстерном, „H” - ні | |
GRID | ціле число | Зв’язок з групою | Зовнішній ключ, що посилається на первинний ключ відношення STGROUP. Обов’язковий |
Таблиця 13. Відношення сутностіБАЗА ПРАКТИКИ
COMPANY
Ім’я стовпця | Тип | Довжина | Призначення | Обмеження цілісності стовпців |
COID | ціле число | Унікальний ID | Первинний ключ | |
Num | строка | Реєстровий номер | Обов’язковий, унікальний | |
Name | строка | Назва | Обов’язковий | |
Head | строка | ПІБ керівника | Обов’язковий | |
Post | строка | Посада керівника | Обов’язковий | |
Address | строка | Адреса | Факультативний |
Таблиця 14. Відношення сутностіДОГОВІР
AGREEMENT
Ім’я стовпця | Тип | Довжина | Призначення | Обмеження цілісності стовпців |
AGID | ціле число | Унікальний ID | Первинний ключ | |
Num | строка | Номер договору | Обов’язковий, унікальний | |
AssDate | дата | Дата підписання | Обов’язковий | |
St_num | ціле число | Кількість студентів | Обов’язковий | |
From_date | дата | Дата початку практики | Обов’язковий | |
To_date | дата | Дата закінчення практики | Обов’язковий | |
COID | ціле число | Зв’язок з базою практики | Зовнішній ключ, що посилається на первинний ключ відношення COMPANY. Обов’язковий | |
FAID | ціле число | Зв’язок з кафедрою | Зовнішній ключ, що посилається на первинний ключ відношення FACULTY. Обов’язковий |
Таблиця 15. Відношення сутностіКЕРІВНИК
TUTOR
Ім’я стовпця | Тип | Довжина | Призначення | Обмеження цілісності стовпців |
TUID | ціле число | Унікальний ID | Первинний ключ | |
Name | строка | ПІБ керівника | Обов’язковий | |
Post | строка | Посада | Факультативний | |
Address | строка | Адреса | Факультативний | |
Pas_ser | строка | Серія паспорту | Обов’язковий | |
Pas_ num | строка | Номер паспорту | Обов’язковий | |
Обмеження цілісності таблиці | Сукупність стовпців (PasSer, PasNum) має обмеження унікальності. |
Таблиця 16. Відношення сутностіПРАКТИКА СТУДЕНТА
STUD_PRACTICE
Ім’я стовпця | Тип | Довжина | Призначення | Обмеження цілісності стовпців |
SPID | ціле число | Унікальний ID | Первинний ключ | |
Duration | ціле число | Термін проходження практики у днях | Обов’язковий | |
In_date | дата | Дата початку практики | Обов’язковий | |
Out_date | дата | Дата закінчен. практики | Обов’язковий | |
Mark | ціле число | Оцінка | Факультативний, Приймає значення у інтервалі 1 — 5 | |
STID | ціле число | Зв’язок з студентом | Зовнішній ключ, що посилається на первинний ключ відношення STUDENT. Обов’язковий | |
TUFID | ціле число | Зв’язок з керівником від факультету | Зовнішній ключ, що посилається на первинний ключ відношення TUTOR. Обов’язковий | |
TUCID | ціле число | Зв’язок з керівником від бази практики | Зовнішній ключ, що посилається на первинний ключ відношення TUTOR. Обов’язковий | |
AGID | ціле число | Зв’язок з договором, згідно з яким проходила практика | Зовнішній ключ, що посилається на первинний ключ відношення AGREEMENT. Факультативний | |
PPID | ціле число | Зв’язок з запланованою практикою | Зовнішній ключ, що посилається на первинний ключ відношення PLAN_PRACTICE. Обов’язковий | |
Обмеження цілісності таблиці | Сукупність стовпців (STID, PPID) має обмеження унікальності та обов’язковості. |
Таблиця 17. Відношення сутностіЗВІТ
REPORT
Ім’я стовпця | Тип | Довжина | Призначення | Обмеження цілісності стовпців |
REID | ціле число | Унікальний ID | Первинний ключ | |
Text | строка | 30КБ | Текст звіту | Обов’язковий |
SPID | ціле число | Зв’язок з практикою студента | Зовнішній ключ, що посилається на первинний ключ відношення STUD_PRACTICE. Обов’язковий та унікальний |