Конспект лекций по дисциплине «Управление данными» Шахты 2010
Вид материала | Конспект |
СодержаниеЛогической моделью данных Сетевой модели Реляционная модель Объектно-реляционная модель Объектная модель данных НомЗач, Фамилия Аномалия удаления НомЗач Фамилия |
- Конспект лекций 2010 г. Батычко Вл. Т. Муниципальное право. Конспект лекций. 2010, 2365.6kb.
- Конспект лекций 2010 г. Батычко В. Т. Уголовное право. Общая часть. Конспект лекций., 3144.81kb.
- Конспект лекций для студентов специальности 080504 Государственное и муниципальное, 962.37kb.
- Конспект лекций для студентов ссузов Кемерово 2010, 1664.44kb.
- Конспект лекций по дисциплине «Маркетинг», 487.79kb.
- Конспект лекций для студентов специальности 080110 «Экономика и бухгалтерский учет, 1420.65kb.
- Конспект лекций по курсу «управление качеством», 1487.57kb.
- Конспект лекций по курсу «управление качеством», 1507.97kb.
- Конспект лекций по дисциплине «Стратегическое управление», 960.8kb.
- В. Ф. Панин Конспект лекций по учебной дисциплине "Теоретические основы защиты окружающей, 1559.17kb.
Конструирование логической модели данных.
Логической моделью данных называется модель, представляющая собой совокупность типов записей, связей между ними, операций доступа к данным и правил обеспечения их целостности, соответствующих концепциям одной из общепринятых схем организации данных и независимых от характеристик конкретной СУБД. К общепринятым логическим моделям данных относятся: иерархическая; сетевая; реляционная; объектно-реляционная и объектная.
Основу иерархической модели составляют древовидные структуры, вершины которых соответствуют записям определенного типа, называемых сегментами. Каждый экземпляр родительского сегмента может быть связан с произвольным количеством экземпляров сегментов-потомков. Сегмент, находящийся на верхнем уровне иерархии, является корневым. Иерархическая БД представляет совокупность деревьев, вершиной которых являются различные экземпляры корневых сегментов.
Сетевой модели соответствует граф общего вида, вершинами которого являются данные различных типов – от атомарных данных до записей сложной структуры, содержащих логически взаимосвязанные элементы и агрегаты данных.
Реляционная модель данных представляет совокупность отношений, между которыми установлены логические связи. Под отношением понимается структура данных, включающая имя отношения, имена и типы каждого из атрибутов, ограничения, накладываемых на значения атрибутов. Отношение описывает структуру таблицы, которая используется для представления сущности концептуальной модели. Реляционная таблица – множество кортежей, каждый из которых представляет значения некоторого набора атрибутов. Эти наборы значений являются уникальными и идентифицируют различные экземпляры сущностей. Модель данных включает такие понятия, как ограничение целостности по ссылкам, неопределенные значения атрибутов, поддержка уникальности кортежей за счет используемых системно-генерируемых уникальных идентификаторов.
Объектно-реляционная модель представляет расширение реляционной модели данных за счет включения в структуру схемы отношении таких объектных типов данных, как объекты-столбцы, массивы переменной длины, вложенные таблицы и строковые объекты.
Объектная модель данных – структура данных, в которой поддерживаются составные объекты, типы и классы, инкапсуляция и наследование типов или классов от их предков, динамическое связывание, расширяемость типа данных, вычислительная полнота языка манипулирования данными.
В качестве исходной для построения логической структуры реляционной модели используется концептуальная модель, в которой описываются сильные и слабые сущности с перечнем ключевых и простых атрибутов, связи между сущностями и их атрибуты.
Преобразование концептуальной модели в реляционную производится в соответствии со следующими правилами:
- Для каждой сильной сущности ER-модели строится отношение с тем же именем;
- Дня каждого простого атрибута сильной сущности формируется атрибут отношения с тем же именем;
- В качестве первичного ключа отношения выбирается один из ключей сильной сущности, который может быть простым или составным;
- Для каждого поля составного ключа ER-модели в отношении создается собственный простой атрибут;
- Для каждого многозначного атрибута сущности конструируется новое отношение, в нее включаются все поля этого атрибута и добавляются ключевые атрибуты соответствующей сущности в качестве внешнего ключа. Тогда в качестве ключа вновь образованного отношения выбирается комбинация всех его атрибутов;
- Для каждой связи вида «один-ко-многим» между родительской сущностью и дочерней сущностью ключевые атрибуты родительской сущности в качестве внешних ключей включаются в дочернюю схему отношения;
- Для каждой связи вида «многие-ко-мпогим» между сущностями А и В конструируется отношение, являющееся пересечением этих отношений, и в нее в качестве внешних ключей включаются первичные атрибуты отношений А и В. Первичный ключ схемы А_В является комбинацией этих атрибутов;
- Для каждой связи вида «один-к-одному» между сущностями А и В одна из сущностей выбирается в качестве родительской, и ее первичный ключ в качестве внешнего ключа добавляется в дочернее отношение;
- Для каждой слабой сущности создается собственное отношение, в которое в качестве внешних ключей добавляются первичные ключи каждой из соответствующих сильных сущностей. В качестве ключа образованной схемы отношений выбирается комбинация атрибутов внешних ключей.
При проектировании логической структуры БД необходимо выполнять ее нормализацию, которая представляет собой процесс улучшения характеристики схем отношений и предполагает анализ соответствия схемы требованиям заданной нормальной формы и ее декомпозицию на результирующие схемы. При нормализации исходные отношения разбиваются на два и более «тонких» отношения. В результате достигается уменьшение избыточности хранимой информации, а также исключаются аномалии вставки, удаления и обновления данных.
Аномалии вставки, удаления и обновления данных в ненормализованных таблицах приводят к появлению противоречивых сведений и возникают при попытке выполнить соответствующие операции. При добавлении кортежа, содержащего сведения о новом студенте, в ненормализованную таблицу ГруппыСтуденты (вариант 1) могут возникнуть аномалии вставки двух видов:
1. При добавлении сведений о студенте потребуется ввести полную информацию о группе и специальности, даже если эти сведения уже имеются в таблице. При этом любые отличия по сравнению с уже существующими значениями приведут к противоречиям.
2. Попытка добавить новую специальность не имеющую пока студентов означает необходимость присвоения атрибутам НомЗач, Фамилия, Имя, Отчество значения NULL. Но атрибут НомЗач является первичным ключом данной таблицы, для которого должно быть запрещена возможность иметь пустое значение.
Аномалия удаления возникает в случае удаления единственного студента группы - вместе с ним будут удалены сведения о соответствующей специальности (удаление Сидорова приведет к удалению специальности «Прикладная информатика (в экономике)»). Аномалии обновления могут возникнуть при попытке изменения сведений о номерах групп или названии специальности, поскольку в этом случае необходимо выполнить согласованные изменения для всех студентов. При представлении данных в виде двух нормализованных таблиц (вариант 2) возможность появления таких аномалий исключается.
1) Таблица ГруппыСтуденты
Специальность | Группа | НомЗач | Фамилия | Имя | Отчество |
Информационные системы и технологии | 3-7 | 14200 | Иванов | | |
Информационные системы и технологии | 3-7 | 14201 | Петров | | |
Прикладная информатика (в экономике) | 3-18 | 17100 | Сидоров | | |
2) Таблица Группы Таблица Студенты
Группа | Специальность | | НомЗач | Фамилия | Имя | Отчество | Группа |
3-7 | Информационные системы и технологии | | 14200 | Иванов | | | 3-7 |
3-18 | Прикладная информатика (в экономике) | | 14201 | Петров | | | 3-7 |
| | | 17100 | Сидоров | | | 3-18 |
Другими положительными эффектами нормализации являются:
- уменьшение неопределенных значений NULL в результирующих таблицах;
- исключение дополнительного кодирования триггеров, которые являются необходимым элементом обеспечения целостности данных, а также средством ускорения процедуры выполнения запросов к «тонким» таблицам, т.к. строки таких таблиц являются короткими и в одной физической странице памяти размещается большое количество строк;
- уменьшение затрат на реорганизацию индексов при включении в «тонкие» таблицы новых строк;
- возможность создания дополнительных кластерных индексов, т.к. на каждую таблицу может быть сформировано не более одного индекса такого типа.
Нормализация таблиц производится путем выявления функциональных зависимостей, являющихся смысловыми (семантическими) свойствами атрибутов и описывающих связи между атрибутами таблицы. Семантика отношения указывает, как его атрибуты могут быть связаны друг с другом, а также определяет функциональные зависимости между атрибутами в виде ограничений, наложенных на некоторые атрибуты.
Функциональная зависимость представляется в виде диаграммы А В, которая читается так: «Атрибут В является функционально зависимым от атрибута А», а понимается так: «Зная значение атрибута А всегда можно найти значение атрибута В, но не наоборот». Пример: НомЗач Фамилия – атрибут Фамилия функционально зависит от атрибута НомЗач, т.е. каждому номеру зачетки соответствует строго определенная фамилия студента (14200 “Иванов”).
Атрибут или группа атрибутов, которые стоят слева на диаграмме называется детерминантом. Отсутствие функциональной зависимости обозначается В А – атрибут В не является функционально зависимым от атрибута А. Группа НомЗач – одному значению атрибута Группа соответствует несколько студентов и, поэтому, атрибут НомЗач не зависит функционально от атрибута Группа.
Важнейшим требованием к любой функциональной зависимости является ее действительность при любых условиях. Согласно этому требованию в процессе проектирования необходимо рассматривать только те функциональные зависимости, которые распространяются на множество всех возможных значений атрибутов, и поэтому всегда справедливы и, например, атрибут Фамилия ни когда не может стать детерминантом функциональной зависимости, поскольку всегда существует вероятность существования нескольких однофамильцев.
При определении потенциальных ключей с помощью функциональных зависимостей необходимо установить, какой атрибут (группа атрибутов) однозначно идентифицирует всю строку отношения. Это значит, что все атрибуты, которые не входят в состав потенциальных ключей, должны быть функционально зависимы от этих ключей:
НомЗач Фамилия, Имя, Отчество, Специальность, КодГруппы.
Если потенциальный ключ один, то он должен стать первичным ключом. Если потенциальных ключей несколько, то в качестве первичного ключа должен быть выбран любой.
Процесс нормализации представляет восходящий переход от исходной ненормализованной формы (ННФ) к первой нормальной форме, ее тестирование на соответствие требованиям второй нормальной формы, выполнение операции декомпозиции, анализе полученных результирующих таблиц и переходе к более совершенным нормальным формам.
Отношение находится в первой нормальной форме (1НФ), если в нем отсутствуют повторяющие группы и домены всех ее атрибутов состоят из атомарных значений. Повторяющейся группой называется группа, состоящая из одного или нескольких атрибутов таблицы, в которой возможно наличие нескольких значений для единственного ключевого атрибута таблицы. Например, если в качестве ключевого атрибута в таблице ФакультетСпециальностьКурсГруппаСтудент выбрать атрибут КодФ, то повторяющейся группой будет набор атрибутов Факультет, КодСпец, Специальность, Курс, Группа.
Отношение ФакультетыСпециальностиГруппыКурсыСтуденты в ННФ.
КодФ | Факультет | КодСпец | Специальность | Курс | Группа | НомЗач | Фамилия | И | О |
ФТИ | Технологии и информатизации | 230201 | Информационные системы и технологии | 3 | 7 | 14200 | Иванов | | |
-//- | -//- | -//- | -//- | -//- | -//- | 14201 | Петров | | |
-//- | -//- | -//- | -//- | -//- | 7а | 15150 | Сидоров | | |
-//- | -//- | 080801 | Прикладная информатика (в экономике) | -//- | 18 | 17100 | Антонов | | |
ГЭФ | Гуманитарно-экономический | 060800 | Экономика и управление на предприятии | 1 | 4 | 11009 | Федоров | | |
Для устранения повторяющихся групп следует добиться, что бы на пересечении каждой строки и столбца находилось единственное значение. Для этого, атрибут или группа атрибутов назначаются ключом ненормализованного отношения, а затем повторяющиеся группы помещаются в отдельные отношения вместе с копиями ключа исходной отношения. Далее в новых отношениях устанавливаются свои первичные ключи. Если ненормализованное отношение содержит несколько повторяющихся групп или включает повторяющиеся группы, содержащиеся в других повторяющихся группах, то данный прием применяется до тех пор, пока повторяющихся групп совсем не останется. Используя второй способ, получим следующие отношения, находящиеся в 1НФ:
Отношение Факультеты: Отношение Специальности:
КодФ | Факультет | | КодСпец | КодФ | Специальность |
ФТИ | Технологии и информатизации | | 230201 | ФТИ | Информационные системы и технологии |
ГЭФ | Гуманитарно-экономический | | 080801 | ФТИ | Прикладная информатика (в экономике) |
| | | 060800 | ГЭФ | Экономика и управление на предприятии |
Отношение ГруппыКурсы: Отношение Студенты:
Курс | Группа | КодСпец | | НомЗач | Курс | Группа | Фамилия | Имя | Отчество | … |
3 | 7 | 230201 | | 14200 | 3 | 7 | Иванов | | | |
3 | 7а | 230201 | | 14201 | 3 | 7 | Петров | | | |
3 | 18 | 080801 | | 15150 | 3 | 7а | Сидоров | | | |
1 | 4 | 060800 | | 17100 | 3 | 18 | Антонов | | | |
| | | | 11009 | 1 | 4 | Федоров | | | |
Отношение находится во второй нормальной форме (2НФ), если оно находится в 1НФ и для каждого его непервичного атрибута существуют только полная функциональная зависимость от первичных ключей. Атрибут В находится в полной функциональной зависимости от атрибута А, если атрибут В является функционально зависимым от А, но не зависит ни от одного собственного подмножества атрибута А. Т.е. функциональная зависимость В от А является полной, если удаление какого-либо атрибута из А приводит к утрате этой зависимости. Функциональная зависимость А В является частичной, если в А есть некоторый атрибут, при удалении которого эта зависимость сохраняется. Если в отношении между атрибутами существует частичная зависимость, то функционально-зависимые атрибуты удаляются из него и помещаются в новое отношение вместе с копией их детерминанта.
Пример. Имеется отношение Занятия в 1НФ
Курс | Группа | Дата | КодДисц | Дисциплина | Вид | Пара | Ауд | КодПреп | Преподаватель |
3 | 18 | 01.09.06 | БД | Базы данных | Лек | 1 | 306 | 01 | А |
3 | 18 | 01.09.06 | БД | Базы данных | Лаб | 2 | 311 | 01 | А |
3 | 7 | 02.09.06 | УД | Управление данными | Лек | 1 | 438 | 01 | А |
3 | 7 | 02.09.06 | УД | Управление данными | Лаб | 2 | 438 | 02 | Б |
3 | 7а | 02.09.06 | УД | Управление данными | Лек | 1 | 311 | 01 | А |
В этой таблице имеются следующие функциональные зависимости:
Зависимость | Зависимость |
Курс, Группа, Дата, Пара, Ауд, КодДисц, КодПреп, Вид Преподаватель, Дисциплина | Первичный ключ |
КодПреп, КодДисц, Вид Преподаватель, Дисциплина | Частичная |
КодПреп Преподаватель | Частичная |
КодДисц Дисциплина | Частичная |