ER-модели и реляционная модель данных: Лекция

Лекция 2. ER модели.
Реляционная модель данных
Модель “сущность – связь”
Концептуальная модель должна:
• быть точной и однозначной;
• адекватно отражать природу данных;
• не зависеть от локальных интерпретаций данных (внешних
моделей), обусловленных различными аспектами их
использования.
Модель, удовлетворяющая этим требованиям, обеспечивает
порождение любых локальных интерпретаций данных посредством
формального преобразования концептуального представления.
Создание концептуальной модели предметной области –
важнейший этап проектирования базы данных.
Модель “сущность – связь”
Понятийные основы концептуального моделирования заложены
американским исследователем П. Ченом, предложившим в 1976 году так
называемую модель “сущность – связь”
(Entity – Relationship, ER-модель).
Модель “сущность – связь”
В концептуальной модели объекту предметной
соответствует сущность, а свойству объекта – атрибут.
области
Атрибут есть имя, принимающее значения на некотором
множестве возможных значений.
Сущность есть имя, поставленное в соответствие набору
атрибутов.
Модель “сущность – связь”
Имя сущности передает смысл соответствующего объекта предметной
области.
Набор атрибутов сущности соответствует набору характеристик этого
объекта, представляющих интерес с точки зрения бизнеса.
То есть, атрибуты связаны общим смыслом, а их перечень
определяется требованиями предметной области.
•
•
СТУДЕНТ = {фамилия, имя, номер зачетной книжки, номер группы}
УЧЕБНАЯ ДИСЦИПЛИНА = {код, наименование, кафедра}.
Набор значений атрибутов сущности называется экземпляром
сущности.
Сущность можно понимать как множество всех интерпретируемых
наборов значений ее атрибутов.
Возможный ключ сущности
•
Сущность, как множество, не может иметь двух идентичных
экземпляров по определению.
•
Подмножество атрибутов сущности, один и тот же набор значений
которых не может встретиться в двух различных экземплярах,
называется возможным ключом сущности.
•
Например, подмножество атрибутов {номер зачетной книжки}
является возможным ключом сущности СТУДЕНТ. Не может быть
двух различных студентов, номера зачетных книжек которых
одинаковы. Сущность УЧЕБНАЯ ДИСЦИПЛИНА имеет два
возможных ключа – {код} и {наименование}.
•
Возможные ключи являются механизмом идентификации
экземпляров сущности. Указав значение ключа, мы, тем самым,
указываем на конкретный экземпляр.
Связь
Говорят, что объекты предметной области состоят
в связи, если хотя бы одному экземпляру одного из них
можно поставить в соответствие (по определенному
правилу) один или более экземпляров другого.
Связь сущностей в концептуальной модели отображает
множество
связей
между
экземплярами
соответствующих объектов ПО
•
Говоря формально, связь есть отношение,
определенное на декартовом произведении
сущностей.
Связь
П1
T1
П2
T2
П3
Т3
П4
Т4
{(П1,Т1), (П1,Т5), (П2,Т2), (П4,Т1)}
T5
а) связь объектов
предметной области
б) связь сущностей
Связь есть отношение, определенное на декартовом
произведении множеств допустимых значений возможных
ключей связанных сущностей и собственных атрибутов.
Свойства связей и сущностей
Cвязь характеризуется арностью (степенью) – числом вступающих в
нее сущностей.
Существующая в реальном мире n-арная связь объектов предметной
области может быть представлена в концептуальной модели в виде n
бинарных связей n + 1 сущностей.
Для этого достаточно определить как сущность соответствующее
связи отношение.
Эта сущность будет представлять в модели не объект предметной
области, а множество фактов связи.
Например, вместо тернарной связи ПОСТАВЩИК–ДЕТАЛЬ–ИЗДЕЛИЕ
можно рассматривать три бинарных связи ПОСТАВЩИК–ПОСТАВКА,
ДЕТАЛЬ–ПОСТАВКА и ИЗДЕЛИЕ–ПОСТАВКА, где ПОСТАВКА – сущностьассоциация, в состав атрибутов которой входят возможные ключи
сущностей ПОСТАВЩИК, ДЕТАЛЬ и ИЗДЕЛИЕ.
Свойства связей и сущностей
Число М экземпляров связи, которые могут быть образованы одним
экземпляром сущности, называется мощностью (кардинальностью)
связи со стороны этой сущности.
ПОСТАВЩИК
1
M
а) связь 1:М;
ТОВАР
ПОСТАВЩИК
M
M
ТОВАР
б) связь М:М
Свойства связей и сущностей.
Связь типа 1:М называется направленной или функциональной,
или специфическим соединением.
В такой связи всегда можно указать родителя и потомка.
Родителем называется сущность, мощность связи со стороны
которой равна М (многосвязная). Мощность направленной связи со
стороны потомка 0 или 1.
Связь
типа
М:М
называется
ненаправленной
или
нефункциональной, или неспецифическим соединением. В такой
связи нет родителя и потомка.
Свойства связей и сущностей
(преобразование ненаправленной связи)
ПОСТАВЩИК
М
М
ТОВАР
ПОСТАВЩИК
1
М
ПОСТАВКА
М
1
ТОВАР
Внешний ключ
и избирательность связи
Соединение называется избирательным (идентифицирующим),
если переданный им внешний ключ полностью входит в какой-либо
возможный ключ потомка.
Соединение
называется
неизбирательным
(неидентифицирующим), если не существует такого возможного
ключа потомка, в который полностью входит внешний ключ,
переданный этим соединением.
Иерархии сущностей
Родовой сущностью (супертипом, суперклассом) называется
сущность, экземпляры которой классифицированы в один или более
подтипов (подклассов).
Категорией
называется
сущность,
экземпляры
представляют подтип (подкласс) родовой сущности.
которой
Иерархии сущностей
В состав атрибутов родовой сущности входят
только общие атрибуты всех категорий.
Каждый
экземпляр
категории
является
одновременно экземпляром родовой сущности,
т.е. категория наследует атрибуты родовой
сущности. В связях родовой сущности могут
участвовать экземпляры любой категории.
Категория может иметь атрибуты и/или вступать
в связи с другими сущностями, не свойственные
всем экземплярам родовой сущности, а
свойственные только экземплярам категории.
Иерархии сущностей
Категории родовой сущности выделяются по некоторому
признаку. Его значения одинаковы во всех экземплярах одной
категории и различны в экземплярах разных категорий. Все
множество категорий, выделенных по значениям этого
признака, называется кластером категорий, а сам признак –
дискриминатором кластера. Экземпляры родовой сущности
могут классифицироваться по различным признакам, образуя
несколько кластеров категорий. Наконец, любая категория
может быть родовой сущностью, порождающей свои кластеры
категорий.
Таким образом, понятия родовой сущности и категории
позволяют строить иерархии сущностей любой сложности.
Иерархии сущностей
Специфическое соединение реализуется путем передачи
возможного ключа родителя в состав атрибутов потомка.
Возможный ключ родителя в составе атрибутов потомка
называется внешним ключом. Если внешний ключ полностью
входит в состав какого-либо возможного ключа потомка, то
передавшая его связь является идентифицирующей. В
противном случае – неидентифицирующей.
Потомок
в
идентифицирующей
связи
всегда
идентификационно
зависимая
сущность.
Потомок
в
неидентифицирующей связи может быть идентификационно
независимой сущностью.
Идентифицирующая связь всегда обязательная.
Иерархии сущностей
Неидентифицирующая связь может быть обязательной или
необязательной.
Сущность может быть категорией родовой сущности и
принадлежать определенному кластеру категорий.
Сущность может быть родовой для нескольких кластеров
категорий. Категория наследует все атрибуты родовой
сущности, вступает во все ее связи и может иметь собственные
атрибуты и вступать в собственные связи.
Категория может быть родовой сущностью.
Свойства отношений
• Уникальность кортежей;
• неупорядоченность кортежей;
• неупорядоченность атрибутов;
• уникальность атрибутов;
• атомарность атрибутов;
• изменяемость отношений.
Свойства отношений
Уникальность кортежей
Так как отношение есть множество кортежей, то в нем
не может быть дубликатов кортежей, то есть каждый
кортеж встречается в отношении только один раз.
Из этого свойства следует, что каждое отношение
имеет некоторый набор атрибутов, значения которых
уникально идентифицирует кортежи.
Этот набор атрибутов называют возможным ключом
отношения.
Свойства отношений
Неупорядоченность кортежей
Это также следствие того, что отношение – множество
кортежей.
Множества неупорядоченны, если их упорядоченность
специально не оговорена.
Заметим, что в реальных структурах хранения данные так или
иначе упорядочены.
Однако учет этой упорядоченности в процедурах
манипулирования данными сделал бы прикладные программы
зависящими от физических структур хранения.
Поэтому введение каких-либо гипотез об упорядоченности в
концептуальную модель данных было бы ошибкой.
Свойства отношений
Неупорядоченность атрибутов
Это свойство следует из определения схемы
отношения как множества пар <домен, атрибут>.
Неупорядоченность атрибутов делает возможной
модификацию схем отношений путем удаления
атрибутов, вставки новых и переименования атрибутов и
позволяет относительно просто определить ряд
полезных операций над отношениями.
Свойства отношений
Уникальность атрибутов
Одноименные атрибуты недопустимы, поскольку это
может привести к появлению в схеме отношения
дубликатов пар (домен, атрибут), что противоречит
определению.
Кроме того, только уникальность атрибутов может
обеспечить возможность отнесения значения из
кортежа к определенному домену.
Свойства отношений
Атомарность значений атрибутов
Свойство следует из определения атрибута.
Атрибут принимает значения на домене, а домен –
подмножество простого типа.
Таким образом, в реляционной теории не
рассматриваются
так
называемые
ненормализованные отношения.
Свойства отношений
Изменяемость отношений
Реляционная модель данных рассматривает отношение
как структурный тип.
Тип определяется схемой отношения.
Все кортежи – знаки типа – удовлетворяют одной и той
же схеме.
Тело отношения может изменяться во времени.
Отдельные кортежи могут добавляться или удаляться.
Могут изменяться значения атрибутов в существующих
кортежах.
Поэтому можно говорить об экземпляре (текущем
значении) отношения с заданной схемой.
Уровни концептуальной модели
На первом этапе формируются общие представления о
ПО, выделяются основные сущности и связи.
У аналитика еще нет ясных представлений о свойствах
связей и типах сущностей, о необходимых ассоциациях и
категориях, о полном перечне атрибутов и т.п.
Результатом этапа является модель верхнего уровня
абстракции (уровень “сущность–связь”).
Уровни концептуальной модели
На втором этапе детализируются представления о
свойствах сущностей и связей.
Вводятся необходимые ассоциативные сущности,
строятся иерархии сущностей, определяются возможные и
внешние ключи, кардинальности и типы связей.
Результатом этапа являются подробные спецификации
связей и идентификаторов экземпляров сущностей
(уровень ключей).
Уровни концептуальной модели
Третий этап состоит в детализации представлений о
характеристиках
объектов
ПО
и
определении
окончательного состава атрибутов сущностей.
Результат
этапа
–
детальные
спецификации
концептуальной модели, пригодные для определения
требований к структурам хранения данных (уровень
атрибутов).
Реляционная модель данных
Базовые понятия
реляционной модели данных
Реляционные БД позволяют хранить информацию в
нескольких плоских (двухмерных) таблицах связанных
между собой посредством совместно используемых полей
данных,
называемых
ключами.
Реляционные
БД
предоставляют более простой доступ к оперативно
составляемым отчетам (обычно через SQL) и обеспечивают
повышенную надежность и целостность данных, благодаря
отсутствию избыточной информации.
Основная идея реляционного подхода состоит в том,
чтобы представить произвольную структуру данных в виде
простой двумерной таблицы или, как говорят,
нормализовать структуру.
Базовые понятия
реляционной модели данных
Достоинства:
•
наличие небольшого набора абстракций, которые позволяют
сравнительно
просто
моделировать
большую
часть
распространенных предметных областей и допускают точные
формальные определения, оставаясь интуитивно понятными;
•
наличие простого и в то же время мощного математического
аппарата, опирающегося главным образом на теорию
множеств и математическую логику и обеспечивающего
теоретический базис реляционного подхода к организации баз
данных;
•
возможность ненавигационного манипулирования данными
без
необходимости
знания
конкретной
физической
организации баз данных во внешней памяти.
Базовые понятия реляционной
модели данных
В настоящее время основным предметом критики реляционных СУБД
является не их недостаточная эффективность, а присущая этим системам
некоторая ограниченность (прямое следствие простоты) при
использовании в так называемых нетрадиционных областях (наиболее
распространенными примерами являются системы автоматизации
проектирования), в которых требуются предельно сложные структуры
данных.
Еще одним часто отмечаемым недостатком реляционных баз данных
является невозможность адекватного отражения семантики предметной
области.
Другими словами, возможности представления знаний о
семантической специфике предметной области в реляционных системах
очень ограничены.
Современные исследования в области постреляционных систем
главным образом посвящены именно устранению этих недостатков.
Состав реляционной
модели данных
РМД
СТРУКТУРНАЯ
ЦЕЛОСТНОСТНАЯМАНИПУЛЯЦИОННАЯ
Состав РМД
Структурная часть описывает, какие объекты рассматриваются
реляционной моделью. Постулируется, что единственной структурой
данных, используемой в реляционной модели, являются
нормализованные n-арные отношения.
Целостностная часть описывает ограничения специального вида,
которые должны выполняться для любых отношений в любых
реляционных базах данных. Это целостность сущностей и
целостность внешних ключей.
Манипуляционная часть описывает два эквивалентных способа
манипулирования реляционными данными - реляционную алгебру и
реляционное исчисление.
Базовые понятия
реляционной модели данных
РМД поддерживает только концептуальный уровень
представления данных (данные представлены такими, какие
они есть на самом деле).
Все понятия структурной и целостностной частей РМД
используются в современных графических языках описания
данных
– входных языках компьютерных систем
автоматизированного проектирования баз данных. Многие
понятия РМД положены в основу SQL – входного языка
современных
коммерческих
СУБД,
обеспечивающего
управление данными в БД на концептуальном уровне.
Модель предложена американским математиком Е. Коддом в
1970 году.
Состав РМД
Выделяется шесть базовых понятий РМД:
• Тип данных;
• Домен;
• Атрибут;
• Схема отношения;
• Кортеж;
• Отношение.
Первые три относятся к элементам данных,
остальные – к структурам, объединяющим
элементы.
Структурная часть РМД
• Понятие тип данных в реляционной модели данных
полностью адекватно понятию типа данных в языках
программирования.
• Любые данные, используемые в программировании,
имеют свои типы данных.
• Важно! Реляционная модель требует, чтобы типы
используемых данных были простыми.
• Для уточнения этого утверждения рассмотрим, какие
вообще типы данных обычно рассматриваются в
программировании. Как правило, типы данных делятся
на три группы:
Структурная часть РМД
Тип данных
Простые
Структурированные Ссылочные
Структурная часть РМД
•
•
•
•
•
•
•
•
•
•
Простые типы данных
Простые, или атомарные, типы данных не обладают внутренней структурой. Данные
такого типа называют скалярами. К простым типам данных относятся следующие типы:
Логический.
Строковый.
Численный.
Различные языки программирования могут расширять и уточнять этот список,
добавляя такие типы как:
Целый.
Вещественный.
Дата.
Время.
Денежный.
Перечислимый.
Интервальный.
Структурная часть РМД
Структурированные типы данных
Структурированные типы данных предназначены для задания сложных структур
данных. Структурированные типы данных конструируются из составляющих
элементов, называемых компонентами, которые, в свою очередь, могут обладать
структурой. В качестве структурированных типов данных можно привести следующие
типы данных:
• Массивы;
• Записи (Структуры).
Структурная часть РМД
Понятие домена более специфично для баз данных, хотя и имеет некоторые
аналогии с подтипами в некоторых языках программирования. В самом
общем виде домен определяется заданием некоторого базового типа
данных, к которому относятся элементы домена, и произвольного
логического выражения, применяемого к элементу типа данных. Если
вычисление этого логического выражения дает результат "истина", то
элемент данных является элементом домена.
• Наиболее правильной интуитивной трактовкой понятия домена является
понимание домена как допустимого потенциального множества значений
данного типа.
• Следует отметить также семантическую нагрузку понятия домена: данные
считаются сравнимыми только в том случае, когда они относятся к одному
домену. В нашем примере значения доменов "Номера пропусков" и
"Номера групп" относятся к типу целых чисел, но не являются сравнимыми.
Заметим, что в большинстве реляционных СУБД понятие домена не
используется.
Структурная часть РМД
Домен характеризуется следующими свойствами:
• Домен имеет уникальное имя (в пределах базы
данных).
• Домен определен на некотором простом типе данных
или на другом домене.
• Домен может иметь некоторое логическое условие,
позволяющее описать подмножество данных,
допустимых для данного домена.
• Домен несет определенную смысловую нагрузку.
Структурная часть РМД
Пример:
Домен , имеющий смысл "возраст сотрудника"
можно описать как следующее подмножество
множества натуральных чисел:
Структурная часть РМД
Атрибут есть имя, поставленное в соответствие домену и представляющее
семантически значимое свойство объекта ПО. Если домену поставлено в
соответствие имя, то говорят, что на домене определен атрибут. Атрибут
принимает значения на домене.
• На одном и том же домене можно определить произвольное число
атрибутов. Атрибуты, определенные на общем домене, наследуют его
свойства.
Семантика доменов и атрибутов
• Домен и атрибут являются средствами интерпретации типа в
терминах ПО.
Пример:
Атрибут скорость интерпретирует число 20 как скорость в км/час, а
атрибут вес интерпретирует то же число как вес в кг.
Семантика доменов и атрибутов
Определяя домены и атрибуты, мы тем самым задаем
некоторые ограничения на операции над данными,
обусловленные смыслом данных. Например, вес и
скорость нельзя сравнивать или использовать
совместно в арифметических операциях, несмотря на
то, что и вес, и скорость – числа. Эти атрибуты должны
быть определены на различных доменах числового типа
Семантика доменов и атрибутов
Атрибуты
ТИП
А1
А2
.
.
.
Am
Домен2
Домен1
ДоменN
Семантика доменов и атрибутов
• Атрибуты, определенные на общем домене сравнимы.
Например, длина и ширина должны быть определены на общем
домене, т.к. их сравнения осмысленны. А атрибуты табельный
номер и номер телефона должны быть определены на разных
доменах. Кроме того, эти домены не могут быть числовыми. Никто
не складывает и не умножает табельные и телефонные номера.
Структурная часть РМД
• Пусть D1, D2, …Dn – домены (необязательно различные)
и А1, А2, …, Аn – атрибуты, определенные на
соответствующих доменах.
• Определение. Множество R = {(D1, A1), (D2, A2), ..., (Dn,
An)} пар <домен, атрибут> называется схемой
отношения.
• Интуитивно схему отношения можно понимать как
заголовок таблицы или как определение типа простой
записи.
• Пусть R – схема отношения, Ai – атрибут схемы, ai –
значение атрибута.
Структурная часть РМД
•
Определение. Множество пар SR = {Si : Si =
(Ai, ai), (Di, Ai)  R, ai  Di, i = 1, …, n}
называется кортежем, соответствующим
схеме R.
•
Интуитивно кортеж представляется как строка
таблицы с заданным заголовком или набор
именованных значений типов, или экземпляр
записи.
Структурная часть РМД
• Например, пусть номера – домен трехсимвольных
строк, составленных из цифр ‘0’, ‘1’,...’9’, имена – домен
строк символов русского алфавита, пробелов и точек, а
схема отношения СЛУЖАЩИЙ имеет вид:
• {( номера, номер служащего), (имена, имя служащего)}.
• Кортежи этого отношения могут быть такими:
• {(номер служащего, ‘345’), (имя служащего, ‘Иванов
И.И.’)},
• {(номер служащего, ‘938’), (имя служащего, ‘Петров
П.П.’ )}.
Структурная часть РМД
• Отношение интуитивно можно понимать как таблицу, заголовком
которой является строка атрибутов, а значимыми строками – строки
их значений, или как плоский файл, однако это неточные
представления.
• Определение. Множество кортежей SR, соответствующих одной и
той же схеме R, называется отношением.
• Отношение характеризуется:
• арностью (степенью) – числом пар <домен, атрибут> в схеме;
• мощностью – числом кортежей, составляющих тело отношения.
Структурная часть РМД
• Замечание 1. Обычно отношение и его схема обозначаются одним и
тем же символом R. Если нам понадобится явно различить схему и
отношение, мы сохраним это обозначение за отношением, а схему
будем обозначать символом R( ).
Структурная часть РМД
•
Экземпляр (значение) отношения – это набор
кортежей с заданной схемой, существующий в
некоторый фиксированный момент времени.
Структурная часть РМД
• Пример. Рассмотрим отношение "Сотрудники" заданное на
доменах "Номер_сотрудника", "Фамилия", "Зарплата",
"Номер_отдела". Т.к. все домены различны, то имена атрибутов
отношения удобно назвать так же, как и соответствующие домены.
Заголовок отношения имеет вид:
• Сотрудники (Номер_сотрудника, Фамилия, Зарплата,
Номер_отдела)
• Пусть в данный момент отношение содержит три кортежа:
• (1, Иванов, 1000, 1)
• (2, Петров, 2000, 2)
• (3, Сидоров, 3000, 1)
Структурная часть РМД
Номер_сотрудника
Фамилия
Зарплата
Номер_отдела
1
Иванов
1000
1
2
Петров
2000
2
3
Сидоров
3000
1
Структурная часть РМД
Реляционный термин
Соответствующий "табличный"
термин
База данных
Набор таблиц
Схема базы данных
Набор заголовков таблиц
Отношение
Таблица
Заголовок отношения
Заголовок таблицы
Тело отношения
Тело таблицы
Атрибут отношения
Наименование столбца таблицы
Кортеж отношения
Строка таблицы
Степень (-арность)
отношения
Количество столбцов таблицы
Мощность отношения
Количество строк таблицы
Домены и типы данных
Типы данные в ячейках таблицы
Структурная часть РМД
УРОВЕНЬ ER-модели
УРОВЕНЬ РМД
множество
множество
возможных
возможных
значений
значений
атрибута
атрибута
тип данных
атрибут
атрибут
сущность
домен
отношение
связь
экземпляр
сущности
кортеж
экземпляр
связи
Выводы
Реляционная модель данных состоит из трех частей:
• Структурной части.
• Целостной части.
• Манипуляционной части.
Выводы
• В классической реляционной модели используются только простые
(атомарные) типы данных. Простые типы данных не обладают
внутренней структурой.
• Домены - это типы данных, имеющие некоторый смысл
(семантику). Домены ограничивают сравнения - некорректно, хотя и
возможно, сравнивать значения из различных доменов.
• Отношение состоит из двух частей - заголовка отношения и тела
отношения. Заголовок отношения - это аналог заголовка таблицы.
Заголовок отношения состоит из атрибутов. Количество атрибутов
называется степенью отношения. Тело отношения - это аналог
тела таблицы. Тело отношения состоит из кортежей. Кортеж
отношения является аналогом строки таблицы. Количество
кортежей отношения называется мощностью отношения.
Выводы
Отношение обладает следующими свойствами:
• В отношении нет одинаковых кортежей.
• Кортежи не упорядочены (сверху вниз).
• Атрибуты не упорядочены (слева направо).
• Все значения атрибутов атомарны.
• Реляционной базой данных называется набор
отношений.
• Схемой реляционной базы данных называется набор
заголовков отношений, входящих в базу данных.
Целостность данных
Во второй части реляционной модели данных определяются два
ограничения, которые должны выполняться в любой реляционной
базе данных. Это:
• Целостность сущностей.
• Целостность внешних ключей.