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