Бази даних-20210115T104840Z-001 / Пример проектной курсовой работы
.pdf∙Крок 5. Введення спеціальних первинних ключів. Для більш адекватного відображення логічного проекту бази даних у фізичний, вводимо у всі таблиці один спеціальний стовпець з обмеженням цілісності первинного ключа. Всі ті стовпці, які мають властивість первинного ключа згідно з концептуальною моделлю, набувають обмеження
цілісності UNIQUE та NOT NULL.
Повна логічна база даних на основі концептуальної моделі з урахуванням обмежень цілісності та наведеного вище алгоритму детально представлена в наступних таблицях.
Таблиця 1. Відношення сутності НАВЧАЛЬНИЙ ПЛАН
EDU_PLAN
|
Ім’я стовпця |
|
Тип |
|
Дов- |
|
Призначення |
|
Обмеження цілісності стовпців |
||
|
|
|
жина |
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
EPID |
|
ціле число |
|
10 |
|
Унікальний ID |
|
|
Первинний ключ |
|
|
|
|
|
|
|
|
|
|
|
||
|
Num |
|
строка |
|
8 |
|
Номер навч. плану |
|
Унікальний, обов’язковий |
||
|
|
|
|
|
|
|
|
|
|
||
|
Ass_date |
|
дата |
|
|
|
Дата затвердження |
|
Обов’язковий |
||
|
|
|
|
|
|
|
|
|
|
||
|
Prs |
|
строка |
|
40 |
|
Особа, що затвердила |
|
Обов’язковий |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
SPID |
|
ціле число |
|
10 |
|
Зв’язок |
|
зі |
|
Зовнішній ключ, що посилається |
|
|
|
|
|
|
|
спеціальністю |
|
|
на первинний ключ відношення |
|
|
|
|
|
|
|
|
|
|
|
|
SPECIALITY. Обов’язковий |
|
|
|
|
|
|
|
|
||||
|
Таблиця 2. Відношення сутності ЗАПЛАНОВАНА ПРАКТИКА |
||||||||||
|
PLAN_PRACTICE |
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
Ім’я стовпця |
|
Тип |
|
Дов- |
|
Призначення |
|
Обмеження цілісності стовпців |
||
|
|
|
жина |
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
PPID |
|
ціле число |
|
10 |
|
Унікальний ID |
|
|
Первинний ключ |
|
|
|
|
|
|
|
|
|
|
|
||
|
Dur_type |
|
строка |
|
1 |
|
Одиниці виміру термі- |
|
Обов’язковий |
||
|
|
|
|
|
|
|
ну проходження прак- |
|
|
||
|
|
|
|
|
|
|
тики. Приймає значен- |
|
|
||
|
|
|
|
|
|
|
ня „ Д”– |
дні, „ Т”– |
тижні |
|
|
|
|
|
|
|
|
|
|
|
|
||
|
Duration |
|
ціле число |
|
3 |
|
Термін |
проходження |
Обов’язковий |
||
|
|
|
|
|
|
|
практики |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
QLID |
|
ціле число |
|
10 |
|
Зв’язок з кваліфікацій- |
|
Зовнішній ключ, що посилається |
||
|
|
|
|
|
|
|
ним рівнем |
|
|
на первинний ключ відношення |
|
|
|
|
|
|
|
|
|
|
|
|
QUALI_LEVEL. Обов’язковий |
|
|
|
|
|
|
|
|
|
|
|
|
|
CUID |
|
ціле число |
|
10 |
|
Зв’язок з курсом |
|
|
Зовнішній ключ, що посилається |
|
|
|
|
|
|
|
|
|
|
|
|
на первинний ключ відношення |
|
|
|
|
|
|
|
|
|
|
|
COURSE. Обов’язковий |
|
|
|
|
|
|
|
|
|
|
|
|
|
PTID |
|
ціле число |
|
10 |
|
Зв’язок |
з |
видом |
Зовнішній ключ, що посилається |
|
|
|
|
|
|
|
|
практики |
|
|
на первинний ключ відношення |
|
|
|
|
|
|
|
|
|
|
|
|
PRAC_TYPE. Обов’язковий |
|
|
|
|
|
|
|
|
|
|
||
|
EPID |
|
ціле число |
|
10 |
|
Зв’язок |
з навчальним |
Зовнішній ключ, що посилається |
||
|
|
|
|
|
|
|
планом |
|
|
|
на первинний ключ відношення |
|
|
|
|
|
|
|
|
|
|
|
EDU_PLAN. Обов’язковий |
|
|
|
|
|
|
|
|||||
|
Обмеження |
|
цілісності |
Сукупність стовпців (CUID, EPID) має обмеження унікальності та |
|||||||
|
таблиці |
|
|
|
обов’язковості. |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
21
Таблиця 3. Відношення сутності ВИД ПРАКТИКИ
PRAC_TYPE
|
Ім’я стовпця |
|
Тип |
|
Дов- |
|
Призначення |
|
Обмеження цілісності стовпців |
|
|
|
жина |
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
PTID |
|
ціле число |
10 |
|
Унікальний ID |
|
Первинний ключ |
|
|
|
|
|
|
|
|
|
|
|
|
Name |
|
строка |
15 |
|
Назва практики |
|
Унікальний, обов’язковий. Прий- |
|
|
|
|
|
|
|
|
|
|
має значення: схемотехнічна; ком- |
|
|
|
|
|
|
|
|
|
п’ютерна; технологічна; експлу- |
|
|
|
|
|
|
|
|
|
атаційна (для спеціалістів нау- |
|
|
|
|
|
|
|
|
|
ково-дослідна (для магістрів). |
|
|
|
|
|
|
|
|
|
|
|
Descr |
|
строка |
255 |
|
Змістовний опис |
|
Факультативний |
|
|
|
|
|
|
|
|
|
||
|
Таблиця 4. Відношення сутності КВАЛІФІКАЦІЙНИЙ РІВЕНЬ |
||||||||
|
QUALI_LEVEL |
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
Ім’я стовпця |
|
Тип |
|
Дов- |
|
Призначення |
|
Обмеження цілісності стовпців |
|
|
|
жина |
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
QLID |
|
ціле число |
10 |
|
Унікальний ID |
|
Первинний ключ |
|
|
|
|
|
|
|
|
|
|
|
|
Name |
|
строка |
15 |
|
Назва |
|
Унікальний, обов’язковий. Прий- |
|
|
|
|
|
|
|
|
кваліфікаційного рівня |
|
має значення: бакалавр; спеціа- |
|
|
|
|
|
|
|
|
|
ліст; магістр. |
|
|
|
|
|
|
|
|
|
|
|
Descr |
|
строка |
255 |
|
Змістовний опис |
|
Факультативний |
|
|
|
|
|
|
|
|
|
|
|
|
CUID |
|
ціле число |
10 |
|
Зв’язок з курсом |
|
Зовнішній ключ, що посилається |
|
|
|
|
|
|
|
|
|
|
на первинний ключ відношення |
|
|
|
|
|
|
|
|
|
COURSE. Обов’язковий |
|
|
|
|
|
|
|
|
|
|
|
Таблиця 5. Відношення сутності СПЕЦІАЛЬНІСТЬ |
|
|
||||||
|
SPECIALITY |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ім’я стовпця |
|
Тип |
|
Дов- |
|
Призначення |
|
Обмеження цілісності стовпців |
|
|
|
жина |
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
SPID |
|
ціле число |
10 |
|
Унікальний ID |
|
Первинний ключ |
|
|
|
|
|
|
|
|
|
|
|
|
Num |
|
строка |
20 |
|
Номер спеціальності |
|
Унікальний, обов’язковий. |
|
|
|
|
|
|
|
|
|
|
|
|
Name |
|
строка |
100 |
|
Назва спеціальності |
|
Обов’язковий |
|
|
|
|
|
|
|
|
|
||
|
Таблиця 6. Відношення сутності КУРС |
|
|
||||||
|
COURSE |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ім’я стовпця |
|
Тип |
|
Дов- |
|
Призначення |
|
Обмеження цілісності стовпців |
|
|
|
жина |
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
CUID |
ціле число |
10 |
|
Унікальний ID |
|
Первинний ключ |
||
|
|
|
|
|
|
|
|
||
|
Num |
ціле число |
1 |
|
Номер курсу |
|
Унікальний, обов’язковий. Прий- |
||
|
|
|
|
|
|
|
|
|
має значення: 1-6. |
|
|
|
|
|
|
|
|
||
|
Descr |
строка |
255 |
|
Змістовний опис |
|
Факультативний |
||
|
|
|
|
|
|
|
|
|
|
22
Таблиця 7. Відношення сутності ВУЗ
UNIVERSITY
|
Ім’я стовпця |
|
Тип |
Дов- |
|
Призначення |
|
Обмеження цілісності стовпців |
||
|
|
жина |
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
UNID |
|
ціле число |
10 |
|
Унікальний ID |
|
Первинний ключ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Short_Name |
|
строка |
10 |
|
Скорочена назва ВУЗу |
|
Факультативний. |
|
|
|
|
|
|
|
|
|
|
|
||
|
Long_Name |
|
строка |
50 |
|
Повна назва ВУЗу |
|
Обов’язковий, унікальний |
||
|
|
|
|
|
|
|
|
|
|
|
|
Address |
|
строка |
50 |
|
Адреса ВУЗу |
|
Факультативний |
|
|
|
|
|
|
|
|
|
|
|
||
|
Rector |
|
строка |
30 |
|
ПІБ ректора |
|
Обов’язковий, унікальний |
||
|
|
|
|
|
|
|
|
|
||
|
Таблиця 8. Відношення сутності ІНСТИТУТ |
|
|
|
|
|||||
|
INSTITUTE |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ім’я стовпця |
|
Тип |
Дов- |
|
Призначення |
|
Обмеження цілісності стовпців |
||
|
|
жина |
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
INID |
|
ціле число |
10 |
|
Унікальний ID |
|
Первинний ключ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Short_Name |
|
строка |
10 |
|
Скорочена назва |
|
Факультативний. |
|
|
|
|
|
|
|
|
|
|
|
||
|
Long_Name |
|
строка |
50 |
|
Повна назва |
|
Обов’язковий, унікальний |
||
|
|
|
|
|
|
|
|
|
||
|
Director |
|
строка |
30 |
|
ПІБ директора |
|
Обов’язковий, унікальний |
||
|
|
|
|
|
|
|
|
|
||
|
UNID |
|
ціле число |
10 |
|
Зв’язок з ВУЗом |
|
Зовнішній ключ, що посилається |
||
|
|
|
|
|
|
|
|
на первинний ключ |
відношення |
|
|
|
|
|
|
|
|
|
UNIVERSITY. Обов’язковий |
||
|
|
|
|
|
|
|
|
|
||
|
Таблиця 9. Відношення сутності ФАКУЛЬТЕТ |
|
|
|
|
|||||
|
FACULTY |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ім’я стовпця |
|
Тип |
Дов- |
|
Призначення |
|
Обмеження цілісності стовпців |
||
|
|
жина |
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
FAID |
|
ціле число |
10 |
|
Унікальний ID |
|
Первинний ключ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Short_Name |
|
строка |
10 |
|
Скорочена назва |
|
Факультативний. |
|
|
|
|
|
|
|
|
|
|
|
||
|
Long_Name |
|
строка |
50 |
|
Повна назва |
|
Обов’язковий, унікальний |
||
|
|
|
|
|
|
|
|
|
||
|
Dean |
|
строка |
30 |
|
ПІБ декана |
|
Обов’язковий, унікальний |
||
|
|
|
|
|
|
|
|
|
||
|
UNID |
|
ціле число |
10 |
|
Зв’язок з ВУЗом |
|
Зовнішній ключ, що посилається |
||
|
|
|
|
|
|
|
|
на первинний ключ |
відношення |
|
|
|
|
|
|
|
|
|
UNIVERSITY. Факультативний |
||
|
|
|
|
|
|
|
|
|
||
|
INID |
|
ціле число |
10 |
|
Зв’язок з інститутом |
|
Зовнішній ключ, що посилається |
||
|
|
|
|
|
|
|
|
на первинний ключ |
відношення |
|
|
|
|
|
|
|
|
|
INSTITUTE,. Факультативний |
||
|
|
|
|
|
|
|
|
|
|
|
|
FKType |
|
строка |
|
|
Признак, кому належить |
Приймає |
значення: |
„ У”, якщо |
|
|
|
|
|
|
|
факультет, ВУЗу або |
факультет належить UNIVERSI- |
|||
|
|
|
|
|
|
інституту |
|
TY, або |
“ І”, якщо |
факультет |
|
|
|
|
|
|
|
|
належить INSTITUTE |
|
|
|
|
|
|
|
|
|
|
|
|
|
23
Таблиця 10. Відношення сутності КАФЕДРА
DEPARTMENT
|
Ім’я стовпця |
|
Тип |
|
Дов- |
|
Призначення |
|
|
|
Обмеження цілісності стовпців |
|||
|
|
|
жина |
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
DEID |
|
ціле число |
10 |
|
|
Унікальний ID |
|
|
|
Первинний ключ |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Short_Name |
|
строка |
10 |
|
|
Скорочена назва |
|
|
|
Факультативний. |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Long_Name |
|
строка |
50 |
|
|
Повна назва |
|
|
|
Обов’язковий, унікальний |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Head |
|
строка |
30 |
|
|
ПІБ завідувача |
|
|
|
Обов’язковий, факультативний |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FAID |
|
ціле число |
10 |
|
|
Зв’язок з факультетом |
|
|
|
Зовнішній ключ, що посилається |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
на первинний ключ відношення |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FACILTY. Обов’язковий |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Таблиця 11. Відношення сутності ГРУПА |
|
|
|
|
|
|
|||||||
|
STGROUP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ім’я стовпця |
|
Тип |
|
Дов- |
|
Призначення |
|
Обмеження цілісності стовпців |
|
||||
|
|
|
жина |
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
GRID |
|
ціле число |
10 |
|
|
Унікальний ID |
|
Первинний ключ |
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
Num |
|
строка |
5 |
|
|
Номер групи |
|
Обов’язковий, унікальний у |
|
||||
|
|
|
|
|
|
|
|
|
|
|
межах факультету |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
Descr |
|
строка |
255 |
|
|
Змістовний опис групи |
|
Факультативний |
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
DEID |
|
ціле число |
10 |
|
|
Зв’язок з кафедрою |
|
Зовнішній ключ, що посилається |
|
||||
|
|
|
|
|
|
|
|
|
|
|
на первинний ключ відношення |
|
||
|
|
|
|
|
|
|
|
|
|
|
DEPARTMENT. Обов’язковий |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
CUID |
|
ціле число |
10 |
|
|
Зв’язок з курсом |
|
Зовнішній ключ, що посилається |
|
||||
|
|
|
|
|
|
|
|
|
|
|
на первинний ключ відношення |
|
||
|
|
|
|
|
|
|
|
|
|
|
COURSE. Обов’язковий |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Таблиця 12. Відношення сутності СТУДЕНТ |
|
|
|
|
|
|
|||||||
|
STUDENT |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ім’я стовпця |
|
Тип |
|
Дов- |
|
|
Призначення |
|
|
|
Обмеження цілісності стовпців |
||
|
|
|
жина |
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
STID |
|
ціле число |
10 |
|
|
Унікальний ID |
|
|
|
Первинний ключ |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
Last_name |
|
строка |
30 |
|
|
Прізвище |
|
|
|
|
Обов’язковий |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
Name |
|
строка |
20 |
|
|
Ім’я |
|
|
|
|
Обов’язковий |
||
|
|
|
|
|
|
|
|
|
|
|
||||
|
Patro_name |
строка |
20 |
|
|
По батькові |
|
|
|
Обов’язковий |
||||
|
|
|
|
|
|
|
|
|
|
|||||
|
Num |
|
строка |
10 |
|
|
Номер |
студентського |
Обов’язковий, унікальний |
|||||
|
|
|
|
|
|
|
|
квитка |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
Birthday |
|
дата |
|
|
|
|
Дата народження |
|
|
|
Обов’язковий |
||
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
Year |
|
ціле число |
4 |
|
|
Рік вступу у ВУЗ |
|
|
|
Обов’язковий |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
Country |
|
строка |
20 |
|
|
Країна мешкання |
|
|
|
Обов’язковий |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24
|
Contract |
|
строка |
|
1 |
|
Навчання за контрактом |
|
|
Обов’язковий. „T” – |
|
навчання за |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
контрактом, „H” - ні |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
External |
|
строка |
|
1 |
|
Навчання екстерном |
|
|
Обов’язковий. „T” |
– |
навчання |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
екстерном, „H” - ні |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
GRID |
|
ціле число |
|
10 |
|
Зв’язок з групою |
|
|
|
Зовнішній ключ, що посилається |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
на первинний ключ |
відношення |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
STGROUP. Обов’язковий |
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
Таблиця 13. Відношення сутності БАЗА ПРАКТИКИ |
|
|
|
|
|
|
|
|||||||||
|
COMPANY |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ім’я |
|
Тип |
|
Дов- |
|
Призначення |
|
Обмеження цілісності стовпців |
|
|
||||||
|
стовпця |
|
|
жина |
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
COID |
ціле число |
|
10 |
Унікальний ID |
|
Первинний ключ |
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
Num |
строка |
|
10 |
Реєстровий номер |
|
Обов’язковий, унікальний |
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
Name |
строка |
|
40 |
Назва |
|
|
Обов’язковий |
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
Head |
строка |
|
20 |
ПІБ керівника |
|
Обов’язковий |
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
Post |
строка |
|
20 |
Посада керівника |
|
Обов’язковий |
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
Address |
строка |
|
50 |
Адреса |
|
|
Факультативний |
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
Таблиця 14. Відношення сутності ДОГОВІР |
|
|
|
|
|
|
|
|
|
|||||||
|
AGREEMENT |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ім’я |
|
Тип |
|
|
Дов- |
|
Призначення |
|
Обмеження цілісності стовпців |
|
|
|||||
|
стовпця |
|
|
|
жина |
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
AGID |
ціле число |
|
10 |
Унікальний ID |
|
|
Первинний ключ |
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
Num |
строка |
|
10 |
Номер договору |
|
|
Обов’язковий, унікальний |
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
AssDate |
дата |
|
|
|
Дата підписання |
|
|
Обов’язковий |
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
St_num |
ціле число |
|
2 |
Кількість студентів |
|
Обов’язковий |
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
From_date |
дата |
|
|
|
Дата початку практики |
|
Обов’язковий |
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
To_date |
дата |
|
|
|
Дата закінчення |
|
|
Обов’язковий |
|
|
|
|
||||
|
|
|
|
|
|
|
практики |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
COID |
ціле число |
|
10 |
Зв’язок |
з |
базою |
Зовнішній ключ, що посилається |
|
||||||||
|
|
|
|
|
|
|
практики |
|
|
|
на первинний ключ |
відношення |
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
COMPANY. Обов’язковий |
|
||||
|
|
|
|
|
|
|
|
|
|||||||||
|
FAID |
ціле число |
|
10 |
Зв’язок з кафедрою |
|
Зовнішній ключ, що посилається |
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
на первинний ключ |
відношення |
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
FACULTY. Обов’язковий |
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25
Таблиця 15. Відношення сутності КЕРІВНИК
TUTOR
Ім’я |
|
Тип |
|
Дов- |
|
Призначення |
|
Обмеження цілісності стовпців |
||||
стовпця |
|
|
жина |
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
||
TUID |
|
ціле число |
|
10 |
|
Унікальний ID |
|
Первинний ключ |
|
|||
|
|
|
|
|
|
|
|
|
|
|
||
Name |
|
строка |
|
30 |
|
ПІБ керівника |
|
Обов’язковий |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
||
Post |
|
строка |
|
20 |
|
Посада |
|
|
Факультативний |
|
||
|
|
|
|
|
|
|
|
|
|
|
||
Address |
|
строка |
|
30 |
|
Адреса |
|
|
Факультативний |
|
||
|
|
|
|
|
|
|
|
|
|
|
||
Pas_ser |
|
строка |
|
2 |
|
Серія паспорту |
|
Обов’язковий |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
||
Pas_ num |
|
строка |
|
6 |
|
Номер паспорту |
|
Обов’язковий |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
||
Обмеження |
|
цілісності |
|
Сукупність стовпців (PasSer, |
PasNum) |
має |
обмеження |
|||||
таблиці |
|
|
|
унікальності. |
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
||||
Таблиця 16. Відношення сутності ПРАКТИКА СТУДЕНТА |
|
|
|
|
||||||||
STUD_PRACTICE |
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
Ім’я |
|
Тип |
|
Дов- |
|
Призначення |
|
Обмеження цілісності стовпців |
||||
стовпця |
|
|
жина |
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
||
SPID |
|
ціле число |
10 |
|
Унікальний ID |
|
Первинний ключ |
|
||||
|
|
|
|
|
|
|
|
|
|
|||
Duration |
|
ціле число |
2 |
|
Термін |
проходження |
Обов’язковий |
|
|
|||
|
|
|
|
|
|
практики у днях |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
In_date |
|
дата |
|
|
|
Дата початку практики |
|
Обов’язковий |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
||
Out_date |
|
дата |
|
|
|
Дата закінчен. практики |
|
Обов’язковий |
|
|
||
|
|
|
|
|
|
|
|
|
||||
Mark |
|
ціле число |
1 |
|
Оцінка |
|
|
Факультативний, Приймає значен- |
||||
|
|
|
|
|
|
|
|
|
ня у інтервалі 1 — 5 |
|
||
|
|
|
|
|
|
|
|
|||||
STID |
|
ціле число |
10 |
|
Зв’язок з студентом |
|
Зовнішній ключ, що посилається |
|||||
|
|
|
|
|
|
|
|
|
на |
первинний |
ключ |
відношення |
|
|
|
|
|
|
|
|
|
STUDENT. Обов’язковий |
|||
|
|
|
|
|
|
|
||||||
TUFID |
|
ціле число |
10 |
|
Зв’язок з керівником від |
Зовнішній ключ, що посилається |
||||||
|
|
|
|
|
|
факультету |
|
|
на |
первинний |
ключ |
відношення |
|
|
|
|
|
|
|
|
|
TUTOR. Обов’язковий |
|
||
|
|
|
|
|
|
|
||||||
TUCID |
|
ціле число |
10 |
|
Зв’язок з керівником від |
Зовнішній ключ, що посилається |
||||||
|
|
|
|
|
|
бази практики |
|
на |
первинний |
ключ |
відношення |
|
|
|
|
|
|
|
|
|
|
TUTOR. Обов’язковий |
|
||
|
|
|
|
|
|
|
|
|||||
AGID |
|
ціле число |
10 |
|
Зв’язок з договором, |
|
Зовнішній ключ, що посилається |
|||||
|
|
|
|
|
|
згідно з яким проходила |
|
на |
первинний |
ключ |
відношення |
|
|
|
|
|
|
|
практика |
|
|
AGREEMENT. Факультативний |
|||
|
|
|
|
|
|
|
|
|||||
PPID |
|
ціле число |
10 |
|
Зв’язок з запланованою |
|
Зовнішній ключ, що посилається |
|||||
|
|
|
|
|
|
практикою |
|
|
на |
первинний |
ключ |
відношення |
|
|
|
|
|
|
|
|
|
PLAN_PRACTICE. Обов’язковий |
|||
|
|
|
|
|
|
|||||||
Обмеження |
|
цілісності |
Сукупність стовпців (STID, PPID) має обмеження унікальності та |
|||||||||
таблиці |
|
|
|
обов’язковості. |
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
26
Таблиця 17. Відношення сутності ЗВІТ
REPORT
Ім’я |
|
Тип |
Дов- |
|
Призначення |
|
Обмеження цілісності стовпців |
стовпця |
|
жина |
|
|
|||
|
|
|
|
|
|
||
REID |
|
ціле число |
10 |
|
Унікальний ID |
|
Первинний ключ |
|
|
|
|
|
|
|
|
Text |
|
строка |
30КБ |
|
Текст звіту |
|
Обов’язковий |
|
|
|
|
|
|
|
|
SPID |
|
ціле число |
10 |
|
Зв’язок з практикою |
|
Зовнішній ключ, що посилається |
|
|
|
|
|
студента |
|
на первинний ключ відношення |
|
|
|
|
|
|
|
STUD_PRACTICE. Обов’язковий |
|
|
|
|
|
|
|
та унікальний |
|
|
|
|
|
|
|
|
4.2. Фізичне проектування
База даних спроектована для її збереження у СКБД Oracle, яка підтримує реляційну модель даних і є об’єкто-реляційною СКБД. Ця СКБД має дуже розвинені можливості по створенню та супроводу баз даних, оскільки володіє найбільш розвиненою системою типів даних, можливостями індексування полів, що дозволяє одержувати доступ до даних за мінімальний час, а також функціями по забезпеченню підтримки цілісності даних між реляційними таблицями, що дозволяє розробнику мінімізувати тимчасові витрати на створення бази даних, а кінцевому користувачеві витрати на підтримку цілісності збережених даних і одержання даних з бази даних. Робота з базою даних підтримується за допомогою реляційної мови запитів SQL.
Логічна модель бази даних легко відображається в реляційну фізичну модель, оскільки логічна модель була побудована з використанням реляційної структури даних. Крім того, логічна модель була приведена у третю нормальну форму, тому усі відношення представляються у фізичній моделі окремими таблицями. Ніякі злиття відношень в одну таблицю для підвищення ефективності виконання окремих класів запитів не виконуються у зв’язку з тим, що такі класи запитів не були знайдені. У результаті отримано сімнадцять таблиць реляційної бази даних, де кожне відношення прямо відповідає окремій таблиці, атрибути кожного відношення стають полями цієї таблиці, а первинні ключі відношень стають первинними ключами таблиць.
4.2.1. Скрипти створення бази даних
Наведемо скрипт мови SQL Oracle, який створює таблиці БД.
-- Створення |
таблиці SPECIALITY |
||
CREATE |
TABLE |
SPECIALITY ( |
|
SPID |
integer |
CONSTRAINT spe_prk PRIMARY KEY, |
|
Num |
char(20) |
CONSTRAINT spe_num_unq UNIQUE NOT NULL, |
|
Name |
varchar(100) |
NOT NULL); |
|
-- Створення |
таблиці EDU_PLAN |
||
CREATE |
TABLE |
EDU_PLAN ( |
|
EPID |
integer |
CONSTRAINT edp_prk PRIMARY KEY, |
|
Num |
char(8) |
CONSTRAINT edp_num_unq UNIQUE NOT NULL, |
|
Ass_date date |
NOT NULL, |
||
Prs |
varchar(40) NOT NULL, |
||
SPID |
integer |
CONSTRAINT edp_spc_frk REFERENCES SPECIALITY(SPID) NOT NULL); |
|
-- Створення |
таблиці COURSE |
||
CREATE |
TABLE |
COURSE |
( |
CUID |
integer |
CONSTRAINT crs_prk PRIMARY KEY, |
|
Num |
number(1) |
CONSTRAINT crs_num_unq UNIQUE NOT NULL |
27
CONSTRAINT crs_num_chk CHECK (Num IN (1,2,3,4,5,6)), Descr varchar(255));
-- Створення таблиці |
QUALI_LEVEL |
|
CREATE TABLE QUALI_LEVEL ( |
||
QLID |
integer |
CONSTRAINT qlv_prk PRIMARY KEY, |
Name |
varchar(15) |
CONSTRAINT qvl_nam_unq UNIQUE NOT NULL |
|
|
CONSTRAINT qvl_nam_chk CHECK |
|
|
(Name IN (’бакалавр’, ’спеціаліст’, ’магістр’)), |
Descr |
varchar(255), |
|
CUID |
integer |
CONSTRAINT qvl_crs_frk REFERENCES COURSE(CUID) NOT NULL); |
-- Створення таблиці |
PRAC_TYPE |
|
CREATE TABLE PRAC_TYPE ( |
||
PTID |
integer |
CONSTRAINT prt_prk PRIMARY KEY, |
Name |
varchar(15) |
CONSTRAINT prt_nam_unq UNIQUE NOT NULL |
|
|
CONSTRAINT prt_nam_chk CHECK |
|
|
(Name IN (’схемотехнічна’, ’комп’’ютерна’, |
|
|
’технологічна’, ’експлуатаційна’, |
|
|
’науково-дослідна’)), |
|
Descr varchar(255)); |
|
||
-- Створення таблиці |
PLAN_PRACTICE |
|
|
CREATE TABLE PLAN_PRACTICE ( |
|
||
PPID |
integer |
CONSTRAINT ppr_prk PRIMARY KEY, |
|
Dur_type char(1) |
CONSTRAINT ppr_dtp_chk |
CHECK (Dur_type IN (’Д’,’Т’)) |
|
|
|
NOT NULL, |
|
Duration |
NUMBER(3) |
NOT NULL, |
|
QLID |
integer |
CONSTRAINT ppr_qvl_frk |
REFERENCES QUALI_LEVEL(QLID) NOT NULL, |
CUID |
integer |
CONSTRAINT ppr_crs_frk |
REFERENCES COURSE(CUID) NOT NULL, |
PTID |
integer |
CONSTRAINT ppr_prt_frk |
REFERENCES PRAC_TYPE(PTID) NOT NULL, |
EPID |
integer |
CONSTRAINT ppr_edp_frk |
REFERENCES EDU_PLAN (EPID) NOT NULL, |
CONSTRAINT |
ppr_crs_edp_unq UNIQUE |
(CUID, EPID); |
|
-- Створення |
таблиці UNIVERSITY |
|
|
CREATE TABLE |
UNIVERSITY ( |
|
|
UNID |
integer |
CONSTRAINT |
uni_prk PRIMARY KEY, |
Short_name |
varchar(10), |
|
|
Long_name |
varchar(50) CONSTRAINT |
uni_nam_unq UNIQUE NOT NULL, |
|
Address |
varchar(50), |
|
|
Rector |
varchar(30) CONSTRAINT |
uni_rec_unq UNIQUE NOT NULL); |
|
-- Створення |
таблиці INSTITUTE |
|
|
CREATE TABLE |
INSTITUTE ( |
|
|
INID |
integer |
CONSTRAINT |
ins_prk PRIMARY KEY, |
Short_name |
varchar(10), |
|
|
Long_name |
varchar(50) CONSTRAINT |
ins_nam_unq UNIQUE NOT NULL, |
|
Director |
varchar(30) |
CONSTRAINT |
ins_rec_unq UNIQUE NOT NULL, |
UNID |
integer |
CONSTRAINT |
ins_uni_frk REFERENCES UNIVERSITY(UNID)); |
-- Створення |
таблиці FACULTY |
|
|
CREATE TABLE |
FACULTY ( |
|
|
FAID |
integer |
CONSTRAINT |
fac_prk PRIMARY KEY, |
Short_name |
varchar(10), |
|
|
Long_name |
varchar(50) CONSTRAINT |
fac_nam_unq UNIQUE NOT NULL, |
|
Dean |
varchar(30) |
CONSTRAINT |
fac_rec_unq UNIQUE NOT NULL, |
UNID |
integer |
CONSTRAINT |
fac_uni_frk REFERENCES UNIVERSITY(UNID), |
INID |
integer |
CONSTRAINT |
fac_ins_frk REFERENCES INSTITUTE(INID), |
FKType |
char(1) |
CONSTRAINT |
fac_fkt_chk CHECK (FKType IN (’У’, ’І’))); |
-- Створення |
таблиці DEPARTMENT |
|
|
CREATE TABLE |
DEPARTMENT ( |
|
|
DEID |
integer |
CONSTRAINT |
dep_prk PRIMARY KEY, |
28
Short_name |
varchar(10), |
||
Long_name |
varchar(50) CONSTRAINT dep_nam_unq UNIQUE NOT NULL, |
||
Head |
|
varchar(30) CONSTRAINT dep_hed_unq UNIQUE NOT NULL, |
|
FAID |
|
integer |
CONSTRAINT dep_fac_frk REFERENCES FACULTY(FAID) NOT NULL); |
-- Створення |
таблиці STGROUP |
||
CREATE TABLE |
STGROUP ( |
|
|
GRID |
integer |
CONSTRAINT grp_prk PRIMARY KEY, |
|
Num |
char(5) |
NOT NULL, |
|
Descr |
varchar(255), |
|
|
DEID |
integer |
CONSTRAINT grp_dep_frk REFERENCES DEPARTMENT(DEID) NOT NULL, |
|
CUID |
integer |
CONSTRAINT grp_crs_frk REFERENCES COURSE(CUID) NOT NULL); |
|
-- Створення |
таблиці STUDENT |
||
CREATE TABLE |
STUDENT ( |
|
|
STID |
|
integer |
CONSTRAINT std_prk PRIMARY KEY, |
Last_name |
varchar(30) NOT NULL, |
||
Name |
|
varchar(20) NOT NULL, |
|
Patro_name |
varchar(20) NOT NULL, |
||
Num |
|
char(10) |
CONSTRAINT std_num_unq UNIQUE NOT NULL, |
Birthday |
|
date |
NOT NULL, |
Year |
|
number(4) |
NOT NULL, |
Country |
|
varchar(20) NOT NULL, |
|
Contract |
|
char(1) |
CONSTRAINT prs_con_chk CHECK (Contract IN ( ’Т’, ’Н’)), |
External |
|
char(1) |
CONSTRAINT prs_ext_chk CHECK (External IN ( ’Т’, ’Н’)), |
GRID |
|
integer |
CONSTRAINT prs_grp_frk |
|
|
|
REFERENCES STGROUP(GRID) NOT NULL); |
-- Створення |
таблиці COMPANY |
||
CREATE TABLE |
COMPANY ( |
|
|
COID |
integer |
CONSTRAINT com_prk PRIMARY KEY, |
|
Num |
char(10) |
CONSTRAINT com_num_unq UNIQUE NOT NULL, |
|
Name |
varchar(40) |
NOT NULL, |
|
Head |
varchar(20) |
NOT NULL, |
|
Post |
varchar(20) |
NOT NULL, |
|
Address |
varchar(50)); |
||
-- Створення |
таблиці AGREEMENT |
||
CREATE TABLE |
AGREEMENT |
( |
|
AGID |
|
integer |
CONSTRAINT agr_prk PRIMARY KEY, |
Num |
|
char(10) |
CONSTRAINT agr_num_unq UNIQUE NOT NULL, |
Ass_date |
|
date |
NOT NULL, |
St_num |
|
NUMBER(2) |
NOT NULL, |
From_date |
date |
NOT NULL, |
|
To_date |
|
date |
NOT NULL, |
COID |
|
integer |
CONSTRAINT agr_crs_frk REFERENCES COMPANY(COID) NOT NULL, |
FAID |
|
integer |
CONSTRAINT agr_fac_frk REFERENCES FACULTY(FAID) NOT NULL); |
-- Створення |
таблиці TUTOR |
||
CREATE TABLE |
TUTOR ( |
|
|
TUID |
integer |
CONSTRAINT tut_prk PRIMARY KEY, |
|
Name |
varchar(30) |
NOT NULL, |
|
Post |
varchar(20), |
|
|
Address |
varchar(30), |
|
|
Pas_ser |
char(2) |
NOT NULL, |
|
Pas_num |
char(6) |
NOT NULL, |
|
CONSTRAINT |
tut_ser_nmm_unk UNIQUE (Pas_ser, Pas_num)); |
29
-- Створення таблиці STUD_PRACTICE
CREATE |
TABLE STUD_PRACTICE ( |
|||
SPID |
|
integer |
|
CONSTRAINT stp_prk PRIMARY KEY, |
Duration |
number(2) |
NOT NULL, |
||
In_date |
date |
|
NOT NULL, |
|
Out_date |
date |
|
NOT NULL, |
|
Mark |
|
number(1) |
CONSTRAINT stp_mrk_chk CHECK (Mark BETWEEN 1 AND 5), |
|
STID |
|
integer |
|
CONSTRAINT stp_std_frk REFERENCES STUDENT(STID) NOT NULL, |
TUFID |
|
integer |
|
CONSTRAINT stp_tuf_frk REFERENCES TUTOR(TUID) NOT NULL, |
TUCID |
|
integer |
|
CONSTRAINT stp_tuc_frk REFERENCES TUTOR(TUID) NOT NULL, |
AGID |
|
integer |
|
CONSTRAINT stp_agr_frk REFERENCES AGREEMENT(AGID), |
PPID |
|
integer |
|
CONSTRAINT stp_prp_frk REFERENCES PLAN_PRACTICE(PPID) NOT NULL, |
CONSTRAINT stp_std_prp_unk UNIQUE (STID, PPID)); |
||||
-- Створення таблиці REPORT |
||||
CREATE |
TABLE REPORT |
( |
|
|
REID |
|
integer |
|
CONSTRAINT rep_prk PRIMARY KEY, |
Text |
CLOB (30K) |
NOT NULL, |
||
SPID |
integer CONSTRAINT rep_stp_frk REFERENCES STUD_PRACTICE(SPID) |
|||
|
|
CONSTRAINT rep_stp_unq UNIQUE NOT NULL); |
4.2.2. Інформаційно– пошукові запити
Наведемо приклади інформаційно пошукових запитів відносно тих задач, які були окреслені в підрозділі «2.4. Інформаційно-довідкові задачі». Приклади наведемо у мові SQL Oracle з використанням бази даних, визначеної у попередньому підрозділі.
4.2.2.1. Інформаційні запити, що пов’язані з проходженням практики
Запит 1. Вивести перелік назв видів практик, які повинні проходити студенти, на якому курсі, у відповідності до кваліфікаційних рівнів. Відсортувати перелік по кваліфікаційним рівням та курсам.
SELECT |
q.Name, c.Num, t.Name, |
|
FROM |
PLAN_PRACTICE p, COURSE c, |
QUALI_LEVEL q, PRAC_TYPE t |
WHERE |
p.CUID = c.CUID AND p.QLID |
= q.QLID AND p.PTID = t.PTID |
ORDER BY q.Name, c.Num;
Запит 2. Вивести назви баз практик, які є на факультеті комп’ютерних наук.
SELECT c.Name AS ”Бази практики факультету комп’ютерних наук”
FROM FACULTY f, COMPANY c, AGREEMENT a
WHERE f.FAID = a.FAID AND c.COID = a.COID AND UPPER(f.ShortName) = ’CS’;
Запит 3. Вивести роки проходження практик і оцінки студента Іванова
SELECT |
TO_CHAR(p.In_date,’YYYY’) AS ”Рік проходження практики”, |
||
|
p.Mark |
|
AS ”Оцінка” |
FROM |
STUDENT s, STUD_PRACTICE |
p |
|
WHERE |
p.STID |
= s.STID AND UPPER(s.Last_name) = ’ІВАНОВ’; |
|
|
TO_CHAR(p.In_date,’YYYY’ |
= ’2003’; |
4.2.2.2. Інформація організаційного характеру
Запит 1. Скільки договорів було підписано на факультеті інформатики по рокам.
SELECT TO_CHAR(a.Ass_date,’YYYY’) AS ”Рік підписання договору”, COUNT(*) AS ”Кількість підписаних договорів”
FROM FACULTY f, COMPANY c, AGREEMENT a
WHERE f.FAID = a.FAID AND c.COID = a.COID AND UPPER(f.ShortName) = ’CS’ GROUP BY TO_CHAR(a.Ass_date,’YYYY’)
ORDER BY q.Name, c.Num;
30