Базы данных и знаний

Базы данных и знаний



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 срок_выполнения > разность;

Выводит неуспешно выполненные задания