Базы данных и знаний 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 срок_выполнения >
разность; Выводит неуспешно выполненные задания