1. Нормалізація вихідного відносини.
2. Розробка програм створення таблиць; форми для введення даних у таблицю.
3. Створення звітів.
1.Нормалізація вихідного відносини.
Щоб нормалізувати дане вихідне відношення необхідно привести його спочатку до першої, потім до другої, а потім і до третьої нормальній формі.
Відносини знаходяться у 1-ій нормальній формі тоді й тільки тоді, коли всі вхідні в нього домени містять лише атомарні значення
Основні дії для приведення до першої нормальної формі:
видаляємо повторювані групи в окремих таблицях;
створюємо окремі таблиці для кожного безлічі відносин;
визначаємо первинний ключ у кожному відношенні.
У результаті цих дій отримуємо дві таблиці.
До першої увійшли поля, які пов'язані з первинним ключем ставленням "1 - 1":
№ співробітника | Прізвище | Ім'я | По батькові | Пол | Адреса | Дата народження |
Первинним ключем у цій новій таблиці є № співробітника.
У другу увійшли поля, які пов'язані з первинним ключем ставленням "1 - ¥":
№ співробітника, № завдання, зміст завдання, № документа, Зміст документа, Дата отримання документа, Дата отримання завдання, термін виконання завдання, дата закінчення виконання завдання
№ співробітника | № завдання | Зміст завдання | № документа | Зміст документа | Дата отримання документа | Дата отримання завдання | Термін виконання завдання | Дата закінчення виконання завдання |
Первинним ключем в цій таблиці є складовою ключ, який містить поля "№ співробітника, № завдання.
Відношення R знаходиться в 2-ій нормальній формі, якщо воно знаходиться в 1-ій нормальній формі, і кожен неключових атрибут функціонально повно залежить від первинного ключа.
Основні дії: - видалення часткової залежності.
Для приведення до другої нормальної форми необхідно видалити часткову залежність.
У другій таблиці існує часткова залежність поля "№ документа" від складеного ключа "№ співробітника" - "№ завдання". Це поле повністю залежить від поля "-" № завдання "і зовсім не залежить від поля" № співробітника ".
Для видалення цієї залежності поділяємо таблицю на дві.
Перша:
№ співробітника, № завдання
№ співробітника | № завдання |
Первинним ключем в цій таблиці є складовою ключ, що включає в себе поля "№ співробітника" і № завдання.
Друга:
№ завдання, зміст завдання, дата отримання завдання, термін виконання завдання, дата закінчення виконання завдання, номер документа, зміст документа, дата одержання документа
№ завдання | Дата отримання завдання | Зміст завдання | Термін виконання завдання | Дата закінчення виконання завдання | Номер документа | Зміст документа | дата отримання документа |
Первинним ключем в цій таблиці є поле "№ завдання".
Відношення знаходиться в 3-ій нормальній формі, якщо воно знаходиться в 2-ій нормальній формі і кожен неключових атрибут нетранзитивно залежить від первинного ключа.
У другій таблиці існує Транзитивне залежність:
- Поля "Зміст документа" і "Дата отримання документа" залежать від первинного ключа "№ завдання" через поле "№ документа";
Для видалення цієї залежності виділяємо ці поля в окрему таблицю.
Одержуємо дві таблиці:
№ завдання | Зміст завдання | Дата отримання завдання | Термін виконання | Дата закінчення виконання | № документа |
Первинним ключем є поле "№ завдання"
№ документа | Зміст документа | Дата отримання документа |
Первинним ключем є поле "№ документа"
У результаті цього отримуємо чотири таблиці.
Перша:
№ співробітника | Прізвище | Ім'я | По батькові | Пол | Адреса | Дата народження |
Первинним ключем в цій таблиці є поле "№ співробітника"
Друга:
№ співробітника | № завдання |
Первинним ключем в цій таблиці є складовою ключ, що включає в себе поля "№ співробітника" і "№ завдання".
Третя:
№ завдання | Зміст завдання | Дата отримання завдання | Термін виконання | Дата закінчення виконання | № документа |
Первинним ключем в цій таблиці є поле "№ завдання".
Четверта:
№ документа | Зміст документа | Дата отримання документа |
Первинним ключем в цій таблиці є поле "№ документа".
2. Розробка програм створення таблиць, форми для введення даних у таблиці.
Створення таблиці "документи"
CREATE TABLE документації (Номер_Документа INTEGER CONSTRAINT Індекс5 PRIMARY KEY, Содержаніе_Документа TEXT, Дата_Полу4енія date);
Створення таблиці "завдання"
create table Завдання (Номер_Заданія INTEGER CONSTRAINT a1 PRIMARY KEY, содержаніе_заданія text, Дата_Полу4енія date, срок_виполненія integer, Дата_Окон4анія_Виполненія date, Номер_Документа integer);
Створення таблиці "співробітник"
CREATE TABLE Співробітник (Номер_сотрудніка COUNTER CONSTRAINT Індекс1 PRIMARY KEY, Прізвище TEXT, Ім'я TEXT, От4ество TEXT, Пол TEXT, дата_народження date, Адреса TEXT);
Створення таблиці
create table Сотруднік_Заданіе (Номер_Сотрудніка INTEGER CONSTRAINT Індек2 PRIMARY KEY,
Номер_Заданія integer);
3. Створення звіту для друку
Завдання:
Вивести успішні і неуспішні завдання.
Запит складається із двох зарпросов:
1.
SELECT Заданіе.Номер_Заданія, Заданіе.содержаніе_заданія, Дата_Окон4анія_Виполненія-Дата_полу4енія AS різниця, Дата_Окон4анія_Виполненія, Заданіе.срок_виполненія
FROM Завдання;
2.
SELECT Заданіе.Номер_Заданія, Заданіе.содержаніе_заданія, (Дата_Окон4анія_Виполненія)
FROM всі
WHERE срок_виполненія> різниця;
Виводить успішно виконані завдання
1.
SELECT Заданіе.Номер_Заданія, Заданіе.содержаніе_заданія, Дата_Окон4анія_Виполненія-Дата_полу4енія AS різниця, Дата_Окон4анія_Виполненія, Заданіе.срок_виполненія
FROM Завдання;
2.
SELECT Заданіе.Номер_Заданія, Заданіе.содержаніе_заданія, (Дата_Окон4анія_Виполненія)
FROM всі
WHERE срок_виполненія> різниця;
Виводить неуспішне виконані завдання