Инфологическое (семантическое) моделирование предметной области

Инфологическое моделирование (иногда используется термин семантическое моделирование) применяется на втором этапе проектирования БД, то есть после системного анализа предметной области. На этапе системного анализа были сформированы понятия о предметах, фактах и событиях, которыми будет оперировать БД. Инфологическое проектирование связано с представлением семантики предметной области в модели БД, т.е. моделирование структур данных, опираясь на смысл этих данных.

Наибольшее распространение получила модель "сущность-связь" (entity-relationship model, ER-модель).

Модель «сущность-связь» является концептуальной моделью, т.е. не учитывает особенности конкретной СУБД. Из модели "сущность-связь" могут быть получены все основные модели данных(иерархическая, сетевая, реляционная).

Основными понятиями модели "сущность-связь" являются: сущность, связь и атрибут. Любой фрагмент предметной области может быть представлен как множество сущностей, между которыми существует некоторое множество связей.

Примеры сущностей: люди, лекарства, студенты и т.д.

Примеры экземпляров сущностей: конкретный человек, конкретное лекарственное средство, конкретный студент и т.д.

Сущности не обязательно должны быть непересекающимися. Например, экземпляр сущности СТУДЕНТ, также принадлежит сущности ЛЮДИ.

Объект, которому соответствует понятие сущности, имеет свой набор атрибутов – характеристик, определяющих свойства данного объекта.

Атрибут должен иметь имя, уникальное в пределах данной сущности.

Пример1:

Рассмотрим множество лекарственных препаратов (ЛП), имеющихся в аптеке. Каждый ЛП можно представить следующими характеристиками: Код ЛП, Название ЛП, Срок хранения, Условия хранения.

В дальнейшем для определения сущности и ее атрибутов будем использовать обозначение вида:

ЛП(Код ЛП, Название ЛП, Срок хранения, Условия хранения)

Например, поставщиков, поставляющих лекарства в аптеку, можно описать как:

Поставщики (Код поставщика, Название поставщика, Адрес)

Множество допустимых значений (область определения) атрибута называется доменом.

Например, атрибут Срок хранения хранит информацию о количестве дней, в течение которых продукт годен к употреблению. То есть этот атрибут принадлежит домену Количество дней, который задается интервалом целых чисел, больших нуля, поскольку количество дней отрицательным быть не может.

Набор атрибутов сущности должен быть таким, чтобы можно было однозначно найти требуемый экземпляр сущности.

Например, сущность Название ЛП однозначно определяется атрибутом Код ЛП, поскольку все коды лекарств различны.

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

Пример 2. Сущность Продажа, с атрибутами Дата продажи, Код ЛП, Количество, Цена, содержит информацию о продаже лекарств за конкретный день.

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

Обозначим эту сущность как:

Продажа (Дата продажи, Код ЛП, Количество, Цена). Ключевой атрибут выделен подчеркиванием.

Между сущностями могут быть установлены связи.

Связь - это ассоциация, установленная между несколькими сущностями, и показывающая как взаимодействуют сущности между собой.

Примеры:

1) В аптеке происходит продажа ЛП, т.е. между сущностями ЛП и Продажа существует связь «происходит» или ЛП – Продажа. Обычно, но необязательно, связь обозначается глаголом или двойным названием сущностей, между которыми установлена эта связь.

2) Так как ЛП в магазин поставляют поставщики, то между сущностями ЛП и Поставщики существует связь «поставка» или ЛП – Поставщики.

3) Могут существовать и связи между экземплярами одной и той же сущности (рекурсивная связь), например связь Родитель - Потомок между экземплярами сущности Человек.

Связь также может иметь атрибуты. Например, для связи ЛП - Поставщики можно задать атрибуты Дата поставки, Цена и т.д.

Связь, существующая между двумя сущностями, называется бинарной связью.

Связь, существующая между n сущностями, называется n-арной связью.

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

Модель "сущность-связь" может быть представлена в виде графической схемы (диаграммы). Это значительно облегчает анализ предметной области.

В Таблице 1 приводится список используемых обозначений

30. Инфологическое моделирование.

Модель "сущность-связь"

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

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

В основе ER-модели лежат следующие базовые понятия:

Сущность, с помощью которой моделируется класс однотипных объектов. Сущность имеет имя, уникальное в пределах моделируемой системы. Так как сущность соответствует некоторому классу однотипных объектов, то предполагается, что в системе существует множество экземпляров данной сущности. Объект, которому соответствует понятие сущности, имеет свой набор атрибутов —характеристик, определяющих свойства данного представителя класса. При этом набор атрибутов должен быть таким, чтобы можно было различать конкретные экземпляры сущности. Например, у сущности Сотрудник может быть следующий набор атрибутов: Табельный номер, Фамилия, Имя, Отчество, Дата рождения, Количество детей, Наличие родственников за границей. Набор атрибутов, однозначно идентифицирующий конкретный экземпляр сущности, называют ключевым.Для сущности Сотрудник ключевым будет атрибут Табельный номер, поскольку для всех сотрудников данного предприятия табельные номера будут различны. Экземпляром сущности Сотрудник будет описание конкретного сотрудника предприятия. Одно из общепринятых графических обозначений сущности — прямоугольник, в верхней части которого записано имя сущности, а ниже перечисляются атрибуты, причем ключевые атрибуты помечаются, например, подчеркиванием или специальным шрифтом

31. Инфологическое моделирование. Модель «сущность–связь»: Атрибуты, классификация и характеристика атрибутов.

Атрибут – поименованная характеристика сущности. Его наименование должно быть уникальным для конкретного типа сущности, но может быть одинаковым для различного типа сущностей (например, ЦВЕТ может быть определен для многих сущностей: СОБАКА, АВТОМОБИЛЬ, ДЫМ и т.д.). Атрибуты используются для определения того, какая информация должна быть собрана о сущности. Примерами атрибутов для сущности АВТОМОБИЛЬ являются ТИП, МАРКА, НОМЕРНОЙ ЗНАК, ЦВЕТ и т.д. Здесь также существует различие между типом и экземпляром. Тип атрибута ЦВЕТ имеет много экземпляров или значений: Красный, Синий, Банановый, Белая ночь и т.д., однако каждому экземпляру сущности присваивается только одно значение атрибута.

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

31. Модель «сущность-связь».

Немаловажную роль в инфологическом проектировании играет наглядность представляемых моделей данных. В этой связи большой популярностью разработчиков пользуются средства, основанные на графических нотациях, самым распространенным средством данного типа являются диаграммы "сущность-связь" (entity-relationship, E/R), которые соответствуют объектно-ориентированному подходу.

Модель "сущность-связь" была предложена в 1976 г. Питером Пин-Шэн Ченом.

Разработка БД начинается с ER-моделирования либо некой объектной модели, с последующей трансляцией в реляционную модель, подлежащей физической реализации.

Физическая реализация – реляционная модель. Большинство коммерческих БД реляционные. Данные представляются в виде таблиц.

Компоненты диаграмм "сущность-связь":

Множества сущностей, аналогичные классам.

Сущности – это члены множества сущностей

Атрибуты – это значения, описывающие свойства сущности

Связи – это соединения между двумя или более множествами сущностей.

Пример диаграммы "сущность-связь":

Идеи П.Чена являются своеобразным стандартом в построении ER-моделей. Под сущностью понимается "нечто", что можно идентифицировать. Сущности могут попадать в различные типы сущностей, которые на ER-диаграммах изображаются в виде прямоугольников.

Между сущностями могут существовать связи. Связи разделяются на различные типы связей. На диаграммах ER-моделей связи изображаются в виде ромбов, соединенных линиями со связываемыми типами сущностей.

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

На ER-диаграммах атрибуты изображаются в кружках, соединенных с типами сущностей.

Бинарная связь - связь, существующая между двумя сущностями.

N-арная связь- связь, существующая между n сущностями.

Рекурсивная связь – это связь между экземплярами одной сущности.

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

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

Очень важным свойством модели "сущность-связь" является то, что она может быть представлена в виде графической схемы (диаграммы). Это значительно облегчает анализ предметной области. Существует несколько вариантов обозначения элементов диаграммы "сущность-связь" (нотаций). Для обозначения сущностей, связей и атрибутов будем использовать нотацию Чена, а для обозначения степеней и кардинальностей связей нотацию Мартина. В Таблице ниже приводится список используемых обозначений:

32. Характеристика связей в модели «сущность-связь»

Связи между сущностями

Степени К

Полные и неполные

Типа М:N (Бинарные связи, К=2)

1:1

1:N (на схемах часто используют обозначение 1 ←→ ∞)

M:N, M>1, N>1 (∞ ←→ ∞)

Рекурсивные (между экземплярами одной сущности)

между равноправными экземплярами

между неравноправными

в одной сущности тип и подтип

Степень К - количество связанных между собой сущностей. Пример связи степени К=6 показан на рис. 3. Для построенния расписания необходимо, чтобы были связаны ровно по одному экземпляру каждой сущности. Семантические связи между несколькими сущностями могут быть очень сложными даже, на первый взгляд, в простых случаях. У одной пары родителей (рис. 7) может быть несколько детей. Сводные братья и сёстры могут иметь одну мать и разных отцов, или одного отца и разных матерей. Родители могут быть юридичскими (приёмными) и фактическими (кровными), т.е. у одного ребёнка может быть две матери!

Рис. 7. Связь между детьми и родителями

Полной связью между двумя сущностями называется такая связь, при которой каждому экземпляру одной сущности соответствует хотя бы один экземпляр другой сущности. Например, каждому студенту соответствует група (одна) и каждой группе соответствуют студенты.

При частичной связи некоторые экземпляры одной сущности не связаны ни с одним экземпляром другой сущности. Например, не все студенты живут в общежитии.

Связь типа 1:1 между сущностями встречается нечасто. Теоретически всегда такие сущности можно объединить в одну. Связь 1:1 создают для лучшего понимания модели. Напимер, директора и завод лучше рассматривать как разные сущности. Связь 1:1 коварна кажущейся очевидностью, Например, у государства один глава: император, президент, царь и т.д., но в древнем Риме правили два консула.

Связь типа 1:N, N>1(или 1 ←→ ∞) - самая простая и удобная для построения реляционной базы данных. На рис.8 приведён пример модели сущность-связь из четырёх сущностей со связями 1:N.

Рис. 8. Связи M:N

Связь типа M:N, M>1, N>1(или ∞ ←→ ∞) требует при переходе к реляционной модели строить дополнительное отношение (таблицу связей). Примеры связей типа M:N приведены на рисунках 3, 4, 5.

Рекурсивные связи между равноправными экземплярами сущности. На рис. 9 экземпляры сущности студенты, живущие в общежитии, объединены по признаку (свойству) номер комнаты, в которой они живут.

Рис. 9. Рекурсивные связи между студентами,

живущими в одной комнате

Рекурсивные связи между неравноправными экземплярами сущности. Так связаны между собой сотрудники и начальник отдела как экземпляры сущности Сотрудники института.

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

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

Свойства сущностей:

простые и составные (композитные),

однозначные и многозначные,

a и b вместе,

ключевые.

Примеры

Простое свойство: фамилия.

Составное свойство: адрес (страна, область, город, улица, . . .)

Многозначные: награды, специальности.

a и b вместе: адрес - композитное и однозначное.

Ключевое: номер зачётной книжки.

33. Классификация сущностей в модели «сущность-связь».

Основоположником реляционной модели БД Эдгаром Коддом выделялись 3 основных класса сущностей: характеристические, ассоциативные и стержневые, а также обозначения – подкласс ассоциативных сущностей. Классификация сущностей инфологической модели данных «сущность-связь» Определение 1 Ассоциативной сущностью (ассоциацией) является связь вида «многие-ко-многим» между двумя или большим количеством сущностей или экземпляров сущности. Ассоциации рассматривают в качестве полноправных сущностей: они могут принимать участие в других ассоциациях так же, как и стержневые сущности; могут иметь свойства, т.е. кроме набора ключевых атрибутов, которые необходимы для указания связей, любое количество других атрибутов, которые характеризуют связь. К примеру, ассоциативная связь СВИДЕТЕЛЬСТВО_О_БРАКЕ может содержать ключевые атрибуты КОД_ЖЕНЩИНЫ и КОД_МУЖЧИНЫ и уточняющие атрибуты НОМЕР_СВИДЕТЕЛЬСТВА, МЕСТО_РЕГИСТРАЦИИ, ДАТА_РЕГИСТРАЦИИ и т.д. Определение 2 Характеристической сущностью (характеристикой) называют связь вида «многие-к-одной» или «одна-к-одной» между двумя сущностями (является частным случаем ассоциации). Единственной целью характеристической связи в пределах рассматриваемой предметной области является описание или уточнение некоторой другой сущности. Такая необходимость может возникнуть в связи с тем, что сущности реального мира могут иногда иметь многозначные свойства. К примеру, книга может иметь несколько переизданий (переработанное, дополненное, исправленное и т.п.). Определение 3 Стержневой сущностью (стержнем) является независимая сущность, не являющаяся ни характеристической, ни ассоциативной. Обозначением или обозначающей сущностью является связь вида «одна-к-одной» или «многие-к-одной» между двумя сущностями, которая в отличие от характеристики не зависит от обозначаемой сущности. Пример 1 Рассмотрим зачисление сотрудников в разные отделы организации. Если отсутствует жесткое правило (сотрудник может быть одновременно зачислен в несколько отделов или не быть зачисленным ни в один отдел), то нужно создать ассоциацию Зачисление: Но при условии обязательного зачисления каждого из сотрудников в один из отделов может быть создано обозначение Служащие: В приведенном примере у служащих независимое существование (при удалении отдела не должны удаляться служащие этого отдела). Поэтому они не могут являться характеристиками отделов и называются обозначениями. Обозначения используются для хранения больших текстов, которые повторяются: «коды» дисциплин, которые изучают студенты, наименования организаций и отделов, перечни товаров и т.п. В практической деятельности обозначения не рассматривают в качестве полноправных сущностей, хотя это не приводит к каким-либо ошибкам. Характеристики и обозначения являются не полностью независимыми сущностями, т.к. предполагается наличие какой-либо другой сущности, которую нужно «обозначать» или «характеризовать». Но они являются частными случаями сущности и могут обладать свойствами, брать участие в обозначениях, ассоциациях и обладать своими собственными (низшего уровня) характеристиками. Обратим внимание, что все экземпляры характеристики должны быть в обязательном порядке связанными с каким-нибудь экземпляром характеризуемой сущности. Однако допустимо, чтобы некоторые из экземпляров характеризуемой сущности не обладали связями. Теперь можно переопределить стержневую сущность как сущность, не являющуюся ни характеристикой, ни обозначением, ни ассоциацией. Такая сущность имеет независимое существование, хотя и может обозначать другую сущность, как, к примеру, сотрудники обозначают отделы.

34. Диаграммы ER-типа.

На начальном этапе проектирования БД выделяются атрибуты, составляющие ключи сущностей.

На основе анализа диаграмм ER-типа формируются отношения проектируемой БД. При этом учитывается степень связи сущностей и класс их принадлежности, которые, в свою очередь, определяются на основе анализа диаграмм ER-экземпляров соответствующих сущностей.

Степень связи является характеристикой связи между сущностями, которая может быть типа: 1:1,1:М, М:1, М:М.

Класс принадлежности (КП) сущности может быть: обязательным и необязательным.

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

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

Пример 1.Связи типа 1:1 и необязательный класс принадлежности.

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

· каждый преподаватель ведет не более одной дисциплины, а каждая дисциплина ведется не более чем одним преподавателем (степень связи 1:1);

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

Пример 2.Связи типа 1:1 и обязательный класс принадлежности.

На рис. 6.3 приведены диаграммы, у которых степень связи между сущностями 1:1, а класс принадлежности обеих сущностей обязательный.

В этом случае каждый преподаватель ведет одну дисциплину и каждая дисциплина ведется одним преподавателем.

а) ER-экземпляров

Инфологическое (семантическое) моделирование предметной области - student2.ru

б) ER-типов

Инфологическое (семантическое) моделирование предметной области - student2.ru

Рис. 6.3. Диаграммы для связи 1:1 и обязательным КП обеих сущностей

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

· На диаграммах ER-типа обязательное участие в связи экземпляров сущности отмечается блоком с точкой внутри, смежным с блоком этой сущности (рис. 6.36).

· При необязательном участии экземпляров сущности в связи дополнительный блок к блоку сущности не пристраивается, а точка размещается на линии связи (рис. 6.2).

· Символы на линии связи указывают на степень связи.

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

На практике степень связи и класс принадлежности сущностей при проектировании БД определяется спецификой предметной области. Рассмотрим примеры вариантов со степенью связи 1:М или М:1.

Пример 3.Связи типа 1:М.

Каждый преподаватель может вести несколько дисциплин, но каждая дисциплина ведется одним преподавателем.

Пример4. Связи типа М:1.

Каждый преподаватель может вести одну дисциплину, но каждую дисциплину могут вести несколько преподавателей.

Примеры с типом связи 1:М или М:1 могут иметь ряд вариантов, отличающихся классом принадлежности одной или обеих сущностей. Обозначим обязательный класс принадлежности символом «О», а необязательный - символом «Н», тогда варианты для связи типа 1:М условно можно представить как: О-О, О-Н, Н-О, Н-Н. Для связи типа М:1 также имеются 4 аналогичных варианта.

Пример 5.Связи типа 1:М вариант Н-О.

Каждый преподаватель может вести несколько дисциплин или ни одной, но каждая дисциплина ведется одним преподавателем (рис. 6.4).

По аналогии легко составить диаграммы и для остальных вариантов.

Пример 6.Связи типа М:М.

Каждый преподаватель может вести несколько дисциплин, а каждая дисциплина может вестись несколькими преподавателями.

Как и в случае других типов связей, для связи типа М:М возможны 4 варианта, отличающиеся классом принадлежности сущностей.

Пример 7.Связи типа М:М и вариант класса принадлежности О-Н.

Допустим, что каждый преподаватель ведет не менее одной дисциплины, а дисциплина может вестись более чем одним преподавателем, есть и такие дисциплины, которые никто не ведет. Соответствующие этому случаю диаграммы приведены на рис. 6.5.

а) ER-экземпляров

Инфологическое (семантическое) моделирование предметной области - student2.ru

35. Нормализация отношений (функциональная и транзитивная зависимости).

Нормализация отношений — это итерационный обратный процесс декомпозиции начального отношения на несколько более простых отношений меньшей размерности. Под возвратностью процесса понимают то, что операция объединения отношений, полученных в результате декомпозиции, должна дать начальное отношение. В результате нормализации состав атрибутов отношений БД должны отвечать таким требованиям:

? между атрибутами должны исключаться нежелательные функциональные зависимости;

? группирование атрибутов не должно иметь убыточного дублирования данных;

? обеспечивать обработку и обнобновление атрибутов без осложнений.

Аппарат нормализации был разработан американским ученым Э.Ф. Коддом. Каждая нормальная форма ограничивает тип допустимых зависимостей между атрибутами. Кодд выделил три нормальных формы (сокращенное название 1НФ, 2НФ и ЗНФ). Совершеннейшая из них - это ЗНФ. Теперь уже известные и определенные 4НФ, 5НФ. Нормализация отношений выполняется за несколько шагов (рис. 1).

Построение отношений согласно требованиям (?)

1 НФ

Изъятие неполных функциональных зависимостей

2 НФ

Изъятие транзитивных зависимостей

3 НФ

Изъятие многозначных зависимостей

4 НФ

Рис. 1 Схема этапов нормализации отношений

? 1-й шаг (1-я итерация) - сведение отношений к первой нормальной форме (1НФ). Отношение в 1 НФ должны отвечать таким требованиям:

? все атрибуты отношения должны быть атомарными, т.е. неделимыми;

? все строки таблицы должны быть одинаковой структуры, т.е. иметь одно и то же количество атрибутов с совпадающими именами;

? имена столбцов должны быть разными, а значения однородными (иметь одинаковый формат);

? порядок строк в таблице несущественный.

Каждое отношение БД содержит как структурную, так и семантическую информацию. Структурная информация задается схемой отношения, а семантическая выражает функциональные связи между атрибутами.

? 2-й шаг (2-я итерация) нормализации выявляет ключи, атрибуты и анализирует соответствующие зависимости с целью изъятия неполных функциональных зависимостей.

Определение 1. Атрибут Б функционально зависит от А в отношении R тогда, когда в каждый момент времени одному и тому же значению А соответствует не более чем одно значение Б. Функциональной зависимости отвечает отношение 1:1 между атрибутами.

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

? 3-и шаг (3-я итерация) нормализации - это изъятие транзитивных зависимостей. Отношение в 2 НФ должны анализироваться на предмет присутствия транзитивных зависимостей.

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

? 4-й шаг (4-я итерация) нормализации выполняет анализ на присутствие независимых многозначных зависимостей в отношении. Если они есть, то выполняется декомпозиция отношения.

Многозначная зависимость — это разновидность функциональной зависимости. Атрибут В находится в многозначительной зависимости от атрибута А, тогда коду одного значения атрибута А отвечает много значений атрибута В. Например, между атрибутами код структурного подраздела : табельный номер = 1 : Б, так как в одном подразделе может работать много сотрудников. Т.е. многозначной зависимости отвечает отношение 1 :Б между атрибутами.

Существуют понятия тривиальной и нетривиальной многозначительной зависимости.

Зависимость типа X ®> У и У ®> Х является тривиальной, а зависимость X ®> У и У #®> X - нетривиальной. Присутствие нетривиальных многозначных зависимостей в схеме отношения и независимость их правых частей предопределяют комбинаторику правых частей отношения.

Определение 3. Отношение R содержится в 4 НФ, когда в структуре многозначной зависимости, определяемой на множестве атрибутов, имеется лишь тривиальные или такие нетривиальные многозначные зависимости, у которых левая часть любой из них является ключом.

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

Тем не менее не всегда декомпозиция гарантирует обращение. Отношение, которое содержит более трех многозначных зависимостей, нуждается в специальных мероприятиях по обеспечению обращения декомпозиции. Для этого существует 5 НФ. При декомпозиции с 4 НФ получают такие проекции, чтобы каждая из них содержала не менее чем один возможный ключ и по меньшей мере один неключевой атрибут начального отношения.

5 НФ отстраняет избыточность и вместе с тем аномалии пополнения БД. Нормализация отношений упраздняет между атрибутами такие зависимости: неполные функциональные, транзитивные, нетривиальные (независимые) многозначные. Устраняя эти зависимости, исключаем дублирование данных и возможность возникновения аномалий при выполнении операций пополнения, замены и изъятия данных из БД. Кроме того, нормализованная база данных требует значительно меньше памяти для ее хранения, чем ненормализованная база данных.

36. Нормальные формы (1NF-3NF).

С формальной точки зрения нормализацию можно представить как последовательный процесс разбиения и преобразования некоторого небольшого исходного набора таблиц для построения набора взаимосвязанных таблиц в нормальных формах. Основатель реляционной модели данных Е. Кодд выделял три нормальные формы. Этот набор в дальнейшем был дополнен нормальной формой Бойса-Кодда, и далее 4-ой и 5-ой нормальными формами.

Первая нормальная форма (1НФ) - это обычное отношение. Согласно нашему определению отношений, любое отношение автоматически уже находится в 1НФ. Напомним кратко свойства отношений (это и будут свойства 1НФ):

В отношении нет одинаковых кортежей.

Кортежи не упорядочены.

Атрибуты не упорядочены и различаются по наименованию.

Все значения атрибутов атомарны.

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

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

построить еще одну или несколько проекций на часть составного ключа с полями, функционально зависящими от этой части ключа.

2НФ (Вторая Нормальная Форма) Отношение R находится во второй нормальной форме (2НФ) тогда и только тогда, когда отношение находится в 1НФ и нет неключевых атрибутов, зависящих от части сложного ключа. (Неключевой атрибут - это атрибут, не входящий в состав никакого потенциального ключа).

Отношения в 2НФ "лучше", чем в 1НФ, но еще недостаточно "хороши" - остается часть аномалий обновления, по-прежнему требуются триггеры, поддерживающие целостность базы данных. Для преобразования из второй в третью нормальную форму таблицу-отношение разделяют на две или более проекции так, чтобы конечные поля-атрибуты в цепочках транзитивной зависимости вынести в отдельные таблицы, связав разделившиеся части таблицы внешними ключами по полям-атрибутам, находящимся внутри цепочек транзитивной зависимости.

Отношение R находится в третьей нормальной форме (ЗНФ) когда отношение находится в 2НФ и все неключевые атрибуты взаимно независимы.

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

Переход от ненормализованных отношений к отношениям в ЗНФ может быть выполнен при помощи алгоритма нормализации. Алгоритм нормализации заключается в последовательной декомпозиции отношений для устранения функциональных зависимостей атрибутов от части сложного ключа (приведение к 2НФ) и устранения функциональных зависимостей неключевых атрибутов друг от друга (приведение к ЗНФ).

Нормальная форма Бойса-Кодда (НФБК) применяется, если в отношении r первичный атрибут транзитивно зависит от ключа. Определение НФБК использует понятие детерминанта. Множество атрибутов X является детерминантом B, если XB и ни одно собственное подмножество X не обладает этим свойством.

Отношение r ( R ) находится в НФБК, если оно находится в 2НФ и каждый детерминант из R является возможным ключом. Нормальная форма Бойса-Кодда обеспечивает отсутствие аномалий корректировки, добавления и удаления данных, если все зависимости являются функциональными. Однако, кроме функциональных существуют зависимости других видов, в частности многозначная зависимость.

Отношение находится в четвертой нормальной форме (4НФ), если в случае существования многозначной зависимости AB все остальные атрибуты функционально зависят от AB.

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

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

Получение некоторого начального набора отношений на основе модели «Сущность-Связь».

Определение всех функциональных, множественных и другого вида зависимостей.

Построение минимального покрытия – неизбыточного множества функциональных зависимостей.

На основе минимального покрытия выполняется нормализация отношений при помощи операций декомпозиции и соединения.

Полученная схема БД оценивается с точки зрения безопасности, секретности и эффективности использования и хранения данных. При необходимости предлагается иное деление БД на отношения и пункт 4) выполняется заново.

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

Команда создания таблицы записывается следующим образом

CREATE TABLE <имя таблицы> (<колонка> [, <колонка>…] [, <табличное ограничение>[,<табличное ограничение> ...]])

Типом данных может быть любой из перечисленных. Язык SQL/ 89 поддерживает следующие типы данных:

BLOB–Binarylargeobjectпроизвольной величины для хранения графики, текстов;

CHAR(n) – строки ровно изnзнаков: строки длиной меньшеnдополняются пробелами;

VARCHAR(n) -строки не болееnзнаков (nот 1 до 32767), хранится реально указанное число знаков;

DATE– длинная дата (8 байт) для дат из интервала 1 января 100 – 11 января 5941;

SMALLDATETIME – короткая дата (4 байта) от 1.01.1900 до 6.6.2079;

DECIMAL(p,s),NUMERIC(p,s) – числа, с указанным общим количеством цифр и количеством дробных знаковs;

FLOAT– вещественное число (4 байта);

INTEGER– целое (4 байта) от -2 147 483 648 до +2 147 483 648;

Свойства и ограничения могут быть следующими:

Пункт DEFAULTзадает значения по умолчанию, например

Пункт IDENTITY(n,s) определяет автоинкрементное поле, значения которого формируется автоматически с начальным значениемnи увеличивается при добавлении записи наs.

Свойство NULL(NOTNULL) разрешает (запрещает) задавать пустые значения поля.

Ограничение колонки CHECK (<условие>)задает условие, образованное при помощи операций: конъюнкции (and) дизъюнкции (or) и отрицания (not), скобок и сравнений.

Кроме этого, возможно употребление условий, исполь

Наши рекомендации