ПРОЕКТИРОВАНИЕ БАЗ ДАННЫХ С ИСПОЛЬЗОВАНИЕМ МОДЕЛЕЙ СУЩНОСТЬ-СВЯЗЬ (ER-МОДЕЛЕЙ)Ограниченность
ПРОЕКТИРОВАНИЕ БАЗ ДАННЫХ С ИСПОЛЬЗОВАНИЕМ МОДЕЛЕЙ СУЩНОСТЬ-СВЯЗЬ (ER-МОДЕЛЕЙ)
Ограниченность реляционной модели Модель не обеспечивает достаточных средств для представления смысла данных. Семантика реальной предметной области должна независимым от модели способом представляться в голове проектировщика, например ограничения целостности, выходящие за пределы ограничений первичного и внешнего ключа. Во многих прикладных областях трудно моделировать предметную область на основе плоских таблиц. В ряде случаев на самой начальной стадии проектирования требуется описать предметную область в виде одной (возможно, даже ненормализованной) таблицы. Реляционная модель не предоставляет какие-либо формализованные средства для представления функциональных зависимостей, в то время как весь процесс проектирования происходит на основе учета этих зависимостей. Несмотря на то, что процесс проектирования начинается с выделения некоторых существенных для приложения объектов предметной области («сущностей») и выявления связей между этими сущностями, реляционная модель данных не предлагает какого-либо механизма для разделения сущностей и связей.
Модель сущность-связь В реальном проектировании структуры базы данных применяются семантическое моделирование. Семантическое моделирование представляет собой моделирование структуры данных, опираясь на смысл этих данных. В качестве инструмента семантического моделирования используются различные варианты диаграмм сущность-связь. Модель "сущность-связь" основывается на некой важной семантической информации о реальном мире и предназначена для логического представления данных. Она определяет значения данных в контексте их взаимосвязи с другими данными. Моделирование предметной области базируется на использовании графических диаграмм, включающих небольшое число разнородных компонентов. Основными понятиями ER-модели являются сущность, связь и атрибут. Любой фрагмент предметной области может быть представлен как множество сущностей, между которыми существует некоторое множество связей.
Сущность Сущность – реальный или представляемый объект, информация о котором должна сохраняться и быть доступной. Различают такие понятия как тип сущности и экземпляр сущности. Понятие тип сущности относится к набору однородных предметов, событий, личностей, выступающих как единое целое (класс однотипных объектов, информация о которых должна быть учтена в модели). Экземпляр сущности относится к конкретному экземпляру в наборе. При определении типа сущности необходимо гарантировать, что каждый экземпляр сущности может быть отличим от любого другого экземпляра той же сущности.
Обозначение типа сущности Для большей выразительности и лучшего понимания имя типа сущности может сопровождаться примерами конкретных экземпляров этого типа. В диаграммах ER-модели тип сущности представляется в виде прямоугольника, содержащего имя сущности (имя сущности уникально в пределах модели). При этом имя сущности – это имя типа, а не некоторого конкретного экземпляра этого типа.
Связь Связь – это графически изображаемая ассоциация, устанавливаемая между типами сущностей. Ассоциация может быть установлена между установлена между двумя различными типами сущностей или между типом сущности и им же самим (бинарная связь) или k различными типами сущностей (k-арная связь). ДАЛЕЕ РАССМАТРИВАЮТСЯ ТОЛЬКО БИНАРНЫЕ АССОЦИАЦИИ! Связь представляется в виде ненаправленной линии, соединяющей два типа сущностей или ведущей от типа сущности к нему же, на каждом конце которой указываются указываются имя конца связи, степень конца связи, обязательность связи . При этом в месте соединения связи с типом сущности используются: в связи могут (или должны) использоваться много экземпляров типа сущности в связи может (или должен) участвовать только один экземпляр сущности. Необязательная связь - любой экземпляр данного типа сущности может (но не должен) участвовать в связи
Пример связи ТРАКТОВКА МОДЕЛИ Каждый заказ принадлежит одному и только одному клиенту. У каждого заказа обязательно есть клиент. Каждый клиент может сделать один или более заказов или не делать заказа.
Пример рекурсивной связи Каждый сотрудник является подчиненным одного и только одного сотрудника. Каждый сотрудник может являться руководителем одного или более сотрудников. ТРАКТОВКА МОДЕЛИ
Атрибут Атрибутом сущности является любая деталь, которая служит для уточнения, идентификации, классификации, числовой характеристики или выражения состояния сущности. Имена атрибутов заносятся в прямоугольник, изображающий сущность, под именем сущности и изображаются малыми буквами, возможно, с примерами.
Уникальный идентификатор При определении типа сущности необходимо гарантировать, что каждый экземпляр сущности является отличимым от любого другого экземпляра той же сущности. В ER-модели у экземпляра типа сущности не может быть назначаемого пользователем имени или назначаемого системой внешнего уникального идентификатора. Экземпляр типа сущности может идентифицироваться только своими индивидуальными характеристиками. Уникальным идентификатором сущности может быть атрибут, комбинация атрибутов, связь, комбинация связей или комбинация связей и атрибутов, уникально отличающая любой экземпляр сущности от других экземпляров сущности того же типа.
Тип сущности, экземпляры которого идентифицируются атрибутами При издании любой книги в любом издательстве ей присваивается уникальный номер – ISBN. Значение атрибута isbn будет уникально идентифицировать партию книг на складе. В качестве уникального идентификатора годится и комбинация атрибутов <автор, название, номер издания, издательство, год издания>.
Тип сущности, экземпляры которого идентифицируются связью У каждого студента имеется один и только один студенческий билет (мы не берем в расчет обучение в других образовательных учреждениях). Студенческий билет может принадлежать только одному студенту (некоторые уже готовые студенческие билеты могут быть еще никому не выданы). Связь студента с его студенческим билетом (конец связи Имеет) уникально идентифицирует студента, поэтому эта связь является уникальным идентификатором типа сущности СТУДЕНТ. Поскольку могут существовать студенческие билеты, еще не выданные какому-либо студенту, эта связь не является уникальным идентификатором типа сущности СТУДЕНТ.
Тип сущности, экземпляры которого идентифицируются связью У каждого студента имеется один и только один студенческий билет (мы не берем в расчет обучение в других образовательных учреждениях). Студенческий билет может принадлежать только одному студенту (некоторые уже готовые студенческие билеты могут быть еще никому не выданы). Связь студента с его студенческим билетом (конец связи Имеет) уникально идентифицирует студента, поэтому эта связь является уникальным идентификатором типа сущности СТУДЕНТ. Поскольку могут существовать студенческие билеты, еще не выданные какому-либо студенту, эта связь не является уникальным идентификатором типа сущности СТУДЕНЧЕСКИЙ БИЛЕТ.
Тип сущности, экземпляры которого идентифицируются комбинацией атрибутов и связью У каждого человека могут быть дети, и у каждого человека имеется отец. Близнецам, появившимся на свет одновременно, не дают одинаковых имен. В этом случае уникальным идентификатором типа сущности ЧЕЛОВЕК может быть комбинация атрибутов <дата рождения, ФИО> и связь с именем конца РЕБЕНОК.
Дефекты соединения Дефекты соединения обычно возникают вследствие неправильной интерпретации смысла некоторых связей. Для выявления дефектов соединения необходимо убедиться в том, что смысл каждой связи определен четко и ясно. При недостаточном понимании сути установленных связей может быть создана модель, которая не будет являться истинным представлением реального мира. Рассмотрим два основных типа дефектов соединения: дефект типа "разветвление"; дефект типа "разрыв".
Дефект типа "разветвление" Имеет место в том случае, когда модель отображает связь между типами сущностей, но путь между отдельными сущностями этого типа определен неоднозначно. Факультеты могут состоять из нескольких кафедр и в них может работать многочисленный штат преподавателей. Проблемы начинаются при попытках выяснить, на какой кафедре факультета работает каждый из преподавателей. Устранить проблему можно путем перестройки ER-модели для представления правильного взаимодействия этих сущностей.
Дефект типа "разрыв" Появляется в том случае, когда в модели предполагается наличие связи между типами сущностей, но не существует пути между от дельными сущностями этих типов. Дефект типа "разрыв" может возникать, если существует одна или несколько связей с минимальной кратностью, равной нулю (необязательное участие), и эти связи составляют часть пути между взаимосвязанными сущностями. Кафедра имеет много преподавателей, которые читают лекционные курсы. Однако не все преподаватели кафедры читают лекционные курсы и не все лекционные курсы в каждый конкретный семестр находятся в ведении кого-либо из преподавателей кафедры. Проблема возникает, когда необходимо выяснить, какие лекционные курсы закреплены за кафедрой. Введение дополнительной связи позволяет устранить дефект типа "разрыв"
Первая нормальная форма ER-диаграммы
Вторая нормальная форма ER-диаграммы
Третья нормальная форма ER-диаграммы
Правила построения отношений БД по инфологической модели 1. Каждый простой тип сущности (тип сущности, не являющийся подтипом и не имеющий подтипов) превращается в отношение (далее - таблица). Имя сущности становится именем таблицы. Экземплярам типа сущности соответствуют строки соответствующей таблицы. Каждый атрибут становится столбцом таблицы с тем же именем. Столбцы, соответствующие необязательным атрибутам, могут содержать неопределенные значения; столбцы, соответствующие обязательным атрибутам, – не могут. Компоненты уникального идентификатора сущности превращаются в первичный ключ таблицы. Если имеется несколько возможных уникальных идентификаторов, для первичного ключа выбирается наиболее характерный. Если в состав уникального идентификатора входят связи, к числу столбцов первичного ключа добавляется копия уникального идентификатора сущности, находящейся на дальнем конце связи (этот процесс может продолжаться рекурсивно, и в общем случае может привести к зацикливанию).
Правила построения отношений БД по инфологической модели 2. Если степень бинарной связи 1:1 и класс принадлежностей обоих типов сущностей является обязательным, то требуется только одна таблица. Ключом этой таблицы может быть уникальный идентификатор любого из типов сущностей. 3. Если степень бинарной связи 1:1 и класс принадлежностей одного из типов сущностей необязателен, а другого обязателен, то необходимо построение двух таблиц. Под каждый тип сущности необходимо выделить одну таблицу, построенную по правилу 1, при этом уникальный идентификатор типа сущности, класс которого является необязательным, добавляется в качестве атрибута в таблицу, соответствующую типу сущности, класс которого является обязательным. 4. Если степень бинарной связи 1:1 и класс принадлежностей ни одного из типов сущностей не является обязательным, то необходимо построить 3 таблицы. Для каждого из типов сущностей строится своя таблица по правилу 1. Среди атрибутов третьей таблицы должны находиться по одному ключу от связываемых таблиц.
Правила построения отношений БД по инфологической модели (продолжение) 4. Если степень бинарной связи n:1 или 1: n и класс принадлежности типа сущности со стороны n является обязательным, то достаточно двух таблиц, по одной для каждого типа сущности. Ключ таблицы, соответствующей типу сущности со стороны 1 добавляется к атрибутам таблицы, соответствующей типу сущности со стороны n. 5. Если степень бинарной связи n:1 или 1:n и класс принадлежности типа сущности со стороны n является не обязательным, то необходимо формировать три таблицы, по одной для каждого типа сущности и одну для связи. При этом таблица связи должно содержать ключи обеих таблиц. 6. Если степень бинарной связи n:m, то требуется три таблицы, по одной для каждого объекта и одну для связи. Таблица связи должна содержать ключи двух предыдущих таблиц.
4._er_v1.ppt
- Количество слайдов: 23