[МУЗЫКА] Здравствуйте! Давайте рассмотрим, как диаграммы сущность-связь отображаются в реляционной модели. В прошлый раз мы с вами сказали, что для представления любой информации в этой модели у нас есть только таблицы, других способов у нас нет. Каждая сущность в реляционной модели превращается в отношение или в таблицу. Имя сущности становится именем отношения. Наши сущности обладают рядом атрибутов. Атрибуты становятся названиями столбцов. Некоторые столбцы могут иметь незаданные или неопределённые значения. А некоторые столбцы, которые являются обязательными, которые часто входят в состав ключа, не могут иметь незаданные или неопределённые значения. Компоненты уникального идентификатора сущности превращаются в ключ отношения. Рассмотрим на примере. Мы рассматривали сущность студент, у которой было три атрибута: это номер зачётки, фамилия, имя, отчество студента и номер группы. Этому отношению соответствует таблица, которая будет называться «Студент». Первый атрибут — номер зачётки, который является ключевым. Фамилия, имя, отчество студента — второй столбец, и номер группы — третий столбец. Таким образом, получилась у нас таблица из трёх столбцов. Дадим определение ключа. Начнём с возможного. Возможный ключ — это минимальный набор атрибутов, от которого функционально зависят все остальные или по которому можно определить все остальные или узнать. Ключ — это такой набор атрибутов, который позволяет нам идентифицировать сущность, отличить один экземпляр сущности от другого. Первичный ключ — это один из возможных ключей. Обычно первичным ключом выбирается наиболее важный ключ, который чаще всего мы будем использовать при поиске. Напомню вам, что ключи бывают естественные, суррогатные и позиционные. Атрибуты, которые входят в состав любого возможного ключа, называются ключевыми атрибутами. Что же делать со связями? Мы научились хранить сущности, но для связей тоже нет другого способа хранения, кроме как реализовавать это в отношениях. Схема отношения составляется из ключевых атрибутов объектов, которые участвуют в связи. И если связь имеет свои атрибуты, то они также включаются в отношения, которые служат для представления связей. Давайте рассмотрим наиболее простой вид связи — связь вида один к одному. Вот у нас на примере связь между сущностями «университет» и «ректор», у университета есть атрибуты «название» и «юридический адрес», у ректора есть фамилия, имя и отчество и табельный номер, который есть у любого сотрудника, и связь «руководит», связь вида один к одному, то есть одному университету соответствует один ректор. Эти связи могут быть реализованы в виде одной таблицы. Мы представляем для реализации такой связи таблицу, в которую входят атрибуты и одной сущности, и другой сущности. Надо выбрать ключ у нашей вновь образованной таблицы. Этим ключом может быть либо ключ первой сущности, либо второй, любой, как нам будет удобнее для поиска. Рассмотрим представление связей вида один ко многим. На данном примере мы видим связь между преподавателем и кафедрой. Мы считаем, что преподаватель работает на кафедре, и кафедра для каждого преподавателя должна быть одна, но, естественно, на каждой кафедре работает несколько сотрудников. Как реализовать сущности при помощи отношений? Должна быть сущность «преподаватель», у которого будут два столбца, один столбец — для табельного номера сотрудника, второй — для фамилии, имя, отчества. И отношение для кафедры, у которой будет название кафедры и номер. Для того чтобы реализовать связь, что преподаватель работает на кафедре, мы к отношению, которое реализует нам объект «преподаватель», добавляем ключевой объект от второго отношения, это будет номер кафедры. Таким образом, у нас получается два отношения, одно остаётся неизменным — отношение кафедры, а второе — преподаватель — будет иметь три столбца, это табельный номер сотрудника, который остаётся ключом, фамилия, имя, отчество и номер кафедры. Что же касается слабых сущностей, в данном примере мы видим, что у нас сотрудник имеет какой-то адрес. Сущность «адрес» не может иметь отдельного отношения, потому что мы не будем выдумывать для него какой-то отдельный суррогатный ключ, чтобы идентифицировать эту сущность. поэтому сущность «адрес» у нас и будет храниться вместе с табельным номером сотрудника. Таким, образом у нас получается для отношения «адрес» это табельный номер сотрудника, улица и дом, и отношение «сотрудник» остаётся неизменным, это табельный номер сотрудника и его фамилия, имя, отчество. Связи вида многие ко многим. Как же нам хранить их? На данном пример мы видим, что у нас студент изучает какие-то предметы, сдаёт экзамен и получает за экзамен оценку. Как нам сохранить такую связь? Для сущности «студент» у нас есть отношение, которое будет иметь атрибуты «номер зачётки», «фамилия, имя, отчество» студента и «номер группы». У предмета есть атрибуты «код предмета» и «название предмета». Хотелось бы остаться в рамках двух отношений, но никак не получится. Если мы к студенту попробуем добавить идентификатор от предмета, то у нас получится не одинарный, а множественный атрибут, потому что студент сдал экзамен по нескольким предметам. Также мы не можем добавить в предмет список студентов, потому что мы знаем, что у нас значение каждого атрибута должно быть атомарно. И вот мы видим связь, потому что мы хотим значением атрибуты сделать указатель на какую-то другую сущность. Здесь нам не избежать другого способа, как добавить новую таблицу, которая будет служить только для реализации связи. Таким образом, наша схема реализуется при помощи трёх отношений. Первое отношение будет служить для отображения студента с номером зачётки, фамилией, именем, отчеством и номером группы. Второе отношение соответствует предметам с кодом предмета и названием. А третье отношение будет иметь ключевые столбцы от наших двух отношений, это код предмета и номер зачётки, и иметь собственный атрибут, который свойственен только для экзамена, это оценка, полученная за экзамен. Назовём это отношение «результаты экзамена». Таким образом, мы можем сделать вывод, что связи вида многие ко многим представляются только при помощи отдельной таблицы. В этой части мы рассмотрели, как сущности и связи представляются в реляционных таблицах.