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