Лр 1-2. Лабораторная работа 1.2. Лабораторная работа 1 Информационное моделирование. Разработка инфологической модели предметной области
Скачать 251.77 Kb.
|
3. Понятие ключа(Идентифицирующий атрибут)Идентифицирующий атрибут (идентифицирующая совокупность атрибутов, ИСА) - атрибут (несколько атрибутов), значение которого определяет уникальность экземпляра сущности. То есть, как любой человек обладает набором качеств, отличающих его от себе подобных, и среди них мы можем выявить те, по которым найдем нужного человека (например, полный адрес), так и любая сущность должна обладать подобным набором. Другими словами, у нас есть несколько экземпляров одной сущности, и нам необходимо найти один или несколько атрибутов, значение которых может встречаться только один раз среди всех экземпляров этой сущности. Например: для сущности «Человек» мы можем определить атрибут «Фамилия». Но возможно ли, чтобы он был идентифицирующим атрибутом? Нет, т.к. мы можем встретить несколько людей с одинаковой фамилией. И тогда возникает вопрос: как одного «Иванова» отличить от другого? Следовательно, нужно добавить такой атрибут, значения которого гарантированно отличались бы друг от друга для разных экземпляров одной сущности. Для сущности «Человек» такими атрибутами могут быть «Серия паспорта»+«Номер паспорта.
5. Правила нормализации Нормализация отношений Результаты инфологического моделирования могут быть сведены в единую таблицу. Но использовать ее невозможно, т.к. скорей всего эти таблицы будут содержать избыточную, повторяющуюся информацию. Поэтому полученные данные подвергают преобразованиям, которые называются нормализацией . Первая нормальная форма Отношение называется приведенным к первой нормальной форме, если все его атрибуты простые. Выполните практическое задание 1 .Приведение отношения к первой нормальной форме. 1. Открыть файл journal.xls. Лист Ученик. Здесь собрана информация об ученике (см. лист Ученик). Анализ таблицы показывает, что в столбце «Родители» и «Место работы» указаны по 2 значения. Кроме того, в столбце адрес слишком много данных. Возможна ситуация, когда РОНО будет интересовать район проживания, при этом конкретная квартира – неинтересна. Из-за неоднозначности значений придется привести таблицу к первой нормальной форме. 2. В таблице скопировать строки и сделать так, чтобы в каждой строке был один родитель. 3. Одновременно нужно создать еще один столбец «Контекст адреса» 4. Получим отношение в первой нормальной форме. 5. Выделим в ней первичный ключ: строки отличаются друг от друга столбцами - «№ билета» и «Фамилии родителей». Зальем желтым цветом. При приведении отношения «Ученик» к первой нормальной форме мы выполнили два действия: Атрибут «Адрес» состоит из значений двух свойств. Мы разбили его на атрибуты «Улица» и «Контекст адреса». Значение атрибута «Фамилии родителей» содержит одно или два значения «Родитель», поэтому мы разделили на несколько значений, что привело к увеличению числа экземпляров отношения. Полученное отношение не полностью приведено к первой нормальной форме. Придерживаясь правила, следовало бы разбить атрибуты «Фамилия ученика», «Классный руководитель», «Фамилии родителей» на «Фамилия», «Имя», «Отчество» каждый. Однако каждый из исходных атрибутов по сути нашей задачи будет использоваться целиком (т.е. атрибуты можно назвать простыми), и в данном случае формальный подход к процессу нормализации неуместен. Разбивая атрибут «Адрес» на два атрибута, мы также рассуждали неформально. Разработка ведется для районной школы, учащиеся которой живут поблизости, и, следовательно, спектр задействованных улиц невелик. Вполне вероятно возникновение задач, использующих улицу как отдельное значение, но вряд ли возникнут задачи, использующие в качестве параметра номер дома или, тем более, квартиры. Вторая нормальная форма Отношение находится во второй нормальной форме, если оно находится в первой нормальной форме и значения в каждом неключевом атрибуте однозначно определяются значением первичного ключа. Проанализируем. Возьмем к примеру столбец «Фамилия ученика». Видно, что для его определения необходим только столбец «№ билета», а столбец «Фамилии родителей» не нужен. Это недостаток. Говорят, что значение в неключевом атрибуте неоднозначно определяется первичным ключом. Значит, нужно привести отношение ко второй нормальной форме. Значения в неключевых атрибутах «Улица», «Контекст адреса», «Фамилия ученика», «Специализация класса», «Классный руководитель», «Класс» отношения «Ученик» однозначно определяется значениями одного из атрибутов первичного ключа («Номер ученического билета»). При приведении данного отношения ко второй нормальной форме оно разделяется на два отношения: «Родители» и «Личные данные ученика. Выполните практическое задание 2 .Приведение отношения ко второй нормальной форме. 1. Открыть файл journal.xls. Лист Ученик. 2. Сделайте еще одну таблицу. Будет 2 таблицы. В одной будет все, что определяется только столбцом «№ билета», а в другой все, что определяется 2-мя столбцами. 3. Первую таблицу назовем «Личные данные ученика». Первичный ключ «№ билета» 4. Вторую таблицу назовем «Родители». Первичный ключ «№ билета» и «Фамилии родителей». 5. Отношение «Родители» конечно, больше преобразованиям не подлежит. Первичным ключом отношения «Родители» является совокупность атрибутов «Фамилии родителей» и «Номер ученического билета», т.к. только она уникально определяет экземпляры отношения. Первичный ключ отношения «Личные данные ученика» - атрибут «Номер ученического билета», т.к. он уникально определяет экземпляры отношения. Третья нормальная форма Отношение находится в третьей нормальной форме, если оно находится во второй нормальной форме и все неключевые атрибуты не зависят друг от друга. Проанализируем таблицу «Личные данные ученика». Здесь есть информация о его месте проживания, о классе, классном руководителе и специализации класса. Видно, что есть неключевые столбцы, которые зависят друг от друга. Это «Класс», «Классный руководитель» и «Специализация класса». Эти данные будут повторяться для учеников, получится слишком много повторяющейся информации. Т.е. «Специализация класса» и «Классный руководитель» зависят от неключевого атрибута «Класс». Для устранения этой зависимости выделим из отношения «Личные данные ученика» отношение «Класс». Первичным ключом созданного отношения будет атрибут «Класс». Поэтому отношение нужно привести к третьей нормальной форме. Выполните практическое задание 3 .Приведение отношения к третьей нормальной форме. 1. Открыть файл journal.xls. Лист Ученик. 2. Выделим из отношения «Личные данные ученика» таблицу «Класс». 3. Останется таблица «Личные данные». Однако в ней нужно оставить столбец «Класс». 4. В таблице «Класс» ключом является столбец «Класс». ЗАМЕЧАНИЕ. Название специализации встречается многократно для разных классов. Со временем формулировка может измениться. Поэтому целесообразно сделать справочную таблицу «Справка» и сделать столбец «Код специализации». Задание 4 .Нормализация отношения «Преподаватель». 1. Открыть файл journal.xls. Лист «Преподаватель». 2. Отношение «Преподаватель» привести к первой нормальной форме. Для этого скопировать строки, исправить данные так, чтобы в каждой строке был только один класс и предмет. 3. Выделим первичный ключ. Это столбцы «Фамилия преподавателя», «Класс» и «Предмет». 4. Анализируем и видим, что есть атрибуты, которые зависят только от фамилии преподавателя. Значит, нужно привести отношение ко второй нормальной форме. 5. Получим две таблицы. Первую назовем «Преподаватель – класс – предмет». Она уже находится в третьей нормальной форме, т.к. здесь атрибуты ключевые и все не зависят друг от друга. Вернее здесь наблюдаются связи многие-ко-многим. Отставим пока. 6. Рассмотрим вторую таблицу «Личные данные преподавателя». Первичный ключ «Фамилия». Поскольку данные преподавателя могут меняться (замуж вышла), то целесообразнее сделать столбец «Код преподавателя» и сделать этот столбец ключевым. Но тогда в отношении «Класс» нужно вместо поля «Классный руководитель» поставить «Код классного руководителя». 7. Посмотрим на столбец «Классное руководство». 8. Такая информация у нас уже есть, дублировать ее не надо. Поэтому просто вычеркнем этот столбец. Четвертая нормальная форма Отношение находится в четвертой нормальной форме, если оно находится в третьей нормальной форме и если в нем не содержатся независимые группы атрибутов, между которыми существует отношение «многие-ко-многим». Вернемся в таблице «Преподаватель – класс – предмет». Здесь наблюдаются связи «многие-ко-многим». Это обозначает, что следует привести отношение к четвертой нормальной форме. Выполните практическое задание 5 .Приведение отношения к четвертой нормальной форме. 1. Открыть файл journal.xls. Лист «Преподаватель». Отношение «Преподаватель – класс – предмет». 2. Разделим его на 2 таблицы «Преподаватель – предмет» и «Преподаватель –класс». 3. Видим, что таблица «Преподаватель – класс» осталась «многие – ко – многим». Оставим таблицу без изменений. Аналогично нужно нормализовать отношения «Оценка» и «Кабинет». Выполните практическое задание 6.Конечный результат. 1. Откройтефайлjournal_ready.xls. 2. Сравните эти таблицы с теми, которые получились у вас. 3. На листе «Конечный результат» приведена реляционная модель той части задачи школьного журнала, нормализацией которой мы занимались на предыдущих страницах. Приведенную модель сложно считать наглядной и удобной для восприятия, однако именно такой вид представления наиболее удобен для проведения дальнейших этапов проектирования. Понимая это, условимся в дальнейшем проводить этап инфологического проектирования с учетом требований к реляционным моделям. Самостоятельная работа. Задание1. Составьте реляционную модель для таблицы «Оплата за обучение» из файла oplata.xls ,сохраните в любом удобном для вас формате (Word, Excel) с именем «Оплата за обучение». Задание 2.(это делать на 5) Составьте концептуальную и инфологическую модели данных по выбраннойпредметной области: Больница (стационарное отделение) Больница (поликлиника) Расписание уроков в школе (предмет, учитель, время) Библиотека (книги, читатели, библиотекари) Дорожно-транспортные происшествия (участники, машины, обстоятельства ДТП) Футбольный чемпионат (команды, график игр, результаты игр, футболисты) Городская телефонная сеть (АТС, абоненты, оплата, переговоры) Авиарейсы (самолеты, пилоты, рейсы, пассажиры) Отдел кадров предприятия (отделы, сотрудники, должности, зарплата …) Предприятие торговли (отделы, товары, продавцы, ….) 3.Разработайте физическую модель в изученной вами среде. Создайте отчет и сдайте преподавателю. |