ємно незалежними, якщо жоден з них не є функціонально залежним від іншого.
Відношення знаходиться в третій нормальній формі (3НФ) тоді і тільки тоді, коли відношення знаходиться в 2НФ і все не ключові атрибути взаємно незалежні.
Для досягнення 3НФ необхідно позбутися полів, що не мають другорядну зв'язок. Отже, необхідно створити додаткові таблиці, що відображують список з потрібною інформацією
Таблиця 5 - Ставлення «Бригади»
ID_brigadi№brigadi112233
Таблиця 6 - Ставлення «Вид операції»
IDVid operacii1Чістка2Сінтез/удаленіе3Фіксірованіе Таблиця 7 - «Медперсонал»
ID_rabotnikaDoljnostFIO1ХірургМазур В.В2ХірургСахренко І.І.3Хірург-ортопедДемін М.В.4КардіологПетренко З.К.5МедсестраЗуратова М.М.6МедсестраЕвгеньева С.В.7МедсестраШевченко С.С.8СанітарІванченко К.С.9СанітарКоробова Е.Е.10АнестезіологДеуліна А.А.
Таблиця 8 - Ставлення «Посада»
IDDoljnost1Хирург2Хирург-ортопед3Медсестра4Санитар5Кардиолог6Анестезиолог
У підсумку всі виявлені аномалії усунені. Реляційна модель, що складається з 5 відносин, що знаходяться в 3 нормальній формі, є адекватною описаної моделі предметної області.
2 ПРАКТИЧНА ЧАСТИНА
2.1 Структура системи, перелік підсистем
Для даної роботи виділимо 10 таблиць, які будуть містити всю інформацію. Зв'яжемо таблиці один з одним зовнішніми ключами. Схема бази даних виконана в програмі Erwin і представлена ??на малюнку 1.
Малюнок 1 - Схема баз даних
1. Spisok_operacionnih - таблиця, що містить в собі інформацію про пацієнтів, що знаходяться у відділенні.
2. Operacionii_spisok - таблиця, содержащаяв собі інформацію про майбутніх операціях
3. Naznachenie - таблиця, що містить в собі інформацію про незначних різних ліків пацієнтам
4. Lekarstva - список всіх ліків у відділенні
5. Brigada - список з номерами бригад відділення
6. Brigadi rabotnikov - таблиця, що містить в собі інформацію про те, до якої бригаді належить кожен співробітник відділення
7. Medpersonal - таблиця, що містить в собі інформацію про кожного співробітника хірургічного відділення
8. Grafik - таблиця, що містить в собі інформацію про графік роботи кожної бригади відділення
9. Doljnost - список усіх посад
10. Diagnoz - список діагнозів
Таблиця 9 Поля і типи
ТабліцаПолеТіпConstraintSpisok_operacionnihID_pacientaNumberPrimary keyFIOVarchar2-№ palatiNumber-adressVarchar2-DiagnozVarchar2Foreign KeyFIO rodstvennikaVarchar2-Data rojdeniaDate-Operacionii SpisokID_OperaciiNumberPrimary keyID_pacientaNumberForeign KeyID_BrigadiNumberForeign KeyVid OperaciiVarchar2-DateDate-NaznachenieID_PacientaNumberForeign key Id_rabotnikaNumberForeign key ID_lekarstvaNumberForeign key PrimechanieVarchar2-DiagnozIDNumberPrimary keyDiagnozVarchar2-DoljnostIDNumberPrimary keyDoljnostVarchar2-LekarstvaID_lekarstvaNumberPrimary keyNaimenovanieVarchar2-GrafikIDNumberPrimary key№ brigadiNumberForeign KeyDataData-BrigadaID_brigadiNumberPrimary key№ brigadiNumber- Brigadi_ rabotnikovID_brigadiNumberForeign KeyID_rabotnikaNumberForeign KeyMedpersonalID_rabotnikaNumber-DoljnostVarchar2Foreign KeyFIOVarchar2-OtpuskDate -
2.2 Створення таблиць
Далі за допомогою мови PL/SQL створимо і заповнимо таблиці.
Скрипти таблиць: table spisok_operacionnih
(ID_Pacienta Number Not Null Primary key, Varchar2 (400),
№palati Number, Varchar2 (100), Varchar2 (200), _ rodstvennika Varchar2 (400), _ rojdenia Date), FK_SO Foreign Key (Diagnoz) references Diagnoz (Diagnoz); into spisok_operacionnih (ID_Pacienta, FIO , №palati, address, Diagnoz, FIO_rodstvennika, Data_rojdenia) VALUES (1, Алексєєв Олексій Олексійович, 1, Олексій 3-1, -, Алексєєв Олексій Іванович, 10.10.69); into spisok_operacionnih (ID_Pacienta, FIO, №palati, address, Diagnoz, FIO_rodstvennika, Data_rojdenia) VALUES (2, Андрєєв Андрій Олексійович, 1, Петрівка 31-12, -, Андрєєв Олексій Іванович, 15.09.77); into spisok_operacionnih (ID_Pacienta, FIO, №palati, address, Diagnoz, FIO_rodstvennika, Data_rojdenia) VALUES (3, Бондарєв Віктор Сергійович, 2, Сталеварів 41-2, -, Бондарєв Сергій Генадійович, 02.01.59); into spisok_operacionnih (ID_Pacienta, FIO, №palati, address, Diagnoz, FIO_rodstvennika, Data_rojdenia) VALUES (4, Воложин Віктор Андрійович, 2, Ма...