Конспект лекций по дисциплине «Управление данными» Шахты 2010

Вид материалаКонспект

Содержание


Логической моделью данных
Сетевой модели
Реляционная модель
Объектно-реляционная модель
Объектная модель данных
НомЗач, Фамилия
Аномалия удаления
НомЗач  Фамилия
Подобный материал:
1   2   3   4   5   6   7   8   9   ...   12

Конструирование логической модели данных.


Логической моделью данных называется модель, представляю­щая собой совокупность типов записей, связей между ними, операций доступа к данным и правил обеспечения их целостности, соответствующих концепциям одной из общепринятых схем организации данных и независимых от характеристик конкретной СУБД. К общепринятым логическим моделям данных относятся: иерархическая; сете­вая; реляционная; объектно-реляционная и объектная.

Основу иерархической модели составляют древовидные структуры, вершины которых соответствуют записям определенного типа, называемых сегментами. Каждый экземпляр родительского сегмента может быть связан с произвольным количеством экземпляров сегментов-потомков. Сегмент, находящийся на верхнем уровне иерархии, является корневым. Иерархическая БД представляет совокупность деревьев, вершиной которых являются различные экземпляры корневых сегментов.

Сетевой модели соответствует граф общего вида, вершинами которого являются данные различных типов – от ато­марных данных до записей сложной структуры, содержащих логически взаимосвязанные элементы и агрегаты данных.

Реляционная модель данных представляет совокупность отношений, между которыми установлены логические связи. Под отношением понимается структура данных, включающая имя отношения, имена и типы каждого из атрибутов, ог­раничения, накладываемых на значения атрибутов. Отношение описывает структуру табли­цы, которая используется для представления сущности концептуальной модели. Реляционная таблица – множество кортежей, каждый из которых представляет значения некоторого набора атрибутов. Эти наборы значений являются уникальными и идентифицируют различные экземпляры сущностей. Модель данных включает такие понятия, как ограничение целостности по ссылкам, неопределенные значения атрибутов, поддержка уникальности кортежей за счет используемых сис­темно-генерируемых уникальных идентификаторов.

Объектно-реляционная модель представляет расширение реляционной модели данных за счет включения в структуру схемы отношении таких объектных типов данных, как объекты-столбцы, массивы переменной длины, вложенные таблицы и строковые объекты.

Объектная модель данных – структура данных, в которой поддерживаются составные объекты, типы и классы, инкапсуляция и наследование типов или классов от их предков, динамическое связывание, расширяемость типа данных, вычислительная полнота языка манипулирования данными.

В качестве исходной для построения логической структуры реляционной модели используется концептуальная модель, в которой описываются сильные и слабые сущности с перечнем ключевых и простых атрибутов, связи между сущностями и их атрибуты.

Преобразование концептуальной модели в реляционную производится в соответствии со следующими правилами:
    1. Для каждой сильной сущности ER-модели строится отношение с тем же именем;
    2. Дня каждого простого атрибута сильной сущности формируется атрибут отношения с тем же именем;
    3. В качестве первичного ключа отношения выбира­ется один из ключей сильной сущности, который может быть простым или составным;
    4. Для каждого поля составного ключа ER-модели в от­ношении создается собственный простой атрибут;
    5. Для каждого многозначного атрибута сущности конст­руируется новое отношение, в нее включаются все поля этого атрибута и добавляются ключевые атрибуты соответствующей сущности в качестве внешнего ключа. То­гда в качестве ключа вновь образованного отношения выбирается комби­нация всех его атрибутов;
    6. Для каждой связи вида «один-ко-многим» между родительской сущностью и дочерней сущностью ключевые атрибуты роди­тельской сущности в качестве внешних ключей включаются в дочернюю схему отношения;
    7. Для каждой связи вида «многие-ко-мпогим» между сущностями А и В конструируется отношение, являющееся пересечением этих отношений, и в нее в качестве внешних ключей включаются первичные атрибу­ты отношений А и В. Первичный ключ схемы А_В является комбинацией этих атрибутов;
    8. Для каждой связи вида «один-к-одному» между сущностями А и В одна из сущностей выбирается в качестве родительской, и ее первичный ключ в качестве внешнего ключа добавляется в дочернее от­ношение;
    9. Для каждой слабой сущности создается собственное отношение, в которое в качестве внешних ключей добавляются первичные клю­чи каждой из соответствующих сильных сущностей. В качестве ключа образованной схемы отношений выбирается комбинация атрибутов внешних ключей.

При проектировании логической структуры БД необходимо вы­полнять ее нормализацию, которая представляет собой процесс улучшения характеристики схем отношений и предполагает анализ соответствия схемы тре­бованиям заданной нормальной формы и ее декомпозицию на результирующие схемы. При нормализации исход­ные отношения разбиваются на два и более «тонких» отношения. В результате достигается уменьшение избы­точности хранимой информации, а также исключаются аномалии вставки, удале­ния и обновления данных.

Аномалии вставки, удале­ния и обновления данных в ненормализованных таблицах приводят к появлению противоречивых сведений и возникают при попытке выполнить соответствующие операции. При добавлении кортежа, содержащего сведения о новом студенте, в ненормализованную таблицу ГруппыСтуденты (вариант 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

Петров







-//-

-//-

-//-

-//-

-//-



15150

Сидоров







-//-

-//-

080801

Прикладная информатика (в экономике)

-//-

18

17100

Антонов







ГЭФ

Гуманитарно-экономический

060800

Экономика и управление на предприятии

1

4

11009

Федоров








Для устранения повторяющихся групп следует добиться, что бы на пересечении каждой строки и столбца находилось единственное значение. Для этого, атрибут или группа атрибутов назначаются ключом ненормализованного отношения, а затем повторяющиеся группы помещаются в отдельные отношения вместе с копиями ключа исходной отношения. Далее в новых отношениях устанавливаются свои первичные ключи. Если ненормализованное отношение содержит несколько повторяю­щихся групп или включает повторяющиеся группы, содержащиеся в других повторяющихся группах, то данный прием применяется до тех пор, пока повторяющихся групп совсем не останется. Используя второй способ, получим следующие отношения, находящиеся в 1НФ:

Отношение Факультеты: Отношение Специальности:

КодФ

Факультет




КодСпец

КодФ

Специальность

ФТИ

Технологии и информатизации




230201

ФТИ

Информационные системы и технологии

ГЭФ

Гуманитарно-экономический




080801

ФТИ

Прикладная информатика (в экономике)










060800

ГЭФ

Экономика и управление на предприятии


Отношение ГруппыКурсы: Отношение Студенты:

Курс

Группа

КодСпец




НомЗач

Курс

Группа

Фамилия

Имя

Отчество



3

7

230201




14200

3

7

Иванов










3



230201




14201

3

7

Петров










3

18

080801




15150

3



Сидоров










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



02.09.06

УД

Управление данными

Лек

1

311

01

А


В этой таблице имеются следующие функциональные зависимости:

Зависимость

Зависимость

Курс, Группа, Дата, Пара, Ауд, КодДисц, КодПреп, Вид  Преподаватель, Дисциплина

Первичный ключ

КодПреп, КодДисц, Вид  Преподаватель, Дисциплина

Частичная

КодПреп  Преподаватель

Частичная

КодДисц  Дисциплина

Частичная