Результатом выполнения лабораторной работы должен быть файл содержащий следующие основные части:
-
Описание предметной области.
-
Инфологическая (Концептуальная) модель базы данных для выбранной предметной области.
-
Логическая модель базы данных для выбранной предметной области.
В качестве предметной области для примера выберем объекты киноиндустрии.
Основные сущности это произведение киноиндустрии(фильм, сериал и т.д.) и деятель киноиндустрии (актер, режиссер, директор). В качестве основных атрибутов произведения можем выделить:
-
titleID - буквенно-цифровой уникальный идентификатор заголовка.
-
titleType – формат заголовка (например, фильм, короткометражка, сериал, твизод, видео и т.д.).
-
primaryTitle – более популярное название / название, используемое создателями фильма в рекламных материалах на момент выпуска.
-
originalTitle - оригинальное название, на языке оригинала.
-
isAdult - запрещено к просмотру лицам не достигшим совершеннолетия.
-
startYear – год выпуска.
-
runtimeMinutes – длительность произведения в минутах.
-
posterURL - URL постера.
-
plot - сюжет.
Введем cущностью рейтинг произведения со следующими атрибутами:
-
ratingID - буквенно-цифровой уникальный идентификатор рейтинга
-
averageRating - средний рейтинг произведения.
-
numVotes - количество голосов которые получил фильм.
-
ratingType - тип рейтинга (IMDB, Metacritic и т.д.)
Каждое произведение имеет 1 ко многим связь с сущностью рейтинг. Так как у одного произведения может быть множество рейтингов.
Каждое произведение имеет 1 ко многим связь с сущностью жанр со следующими атрибутами:
-
genreID - буквенно-цифровой уникальный идентификатор жанра
-
genreType - тип жанра (драма, комедия и т.д.)
Если произведение киноинудстрии является сериалом имеет смысл ввести сущность эпизод. Имеющую следующие атрибуты:
-
titleID - идентификатор серии сериала.
-
parentTitleID - буквенно-цифровой идентификатор сериала к которому относится эпизод.
-
seasonNumber - номер сезона.
-
episodeNumber - номер серии в сезоне.
Связь произведения с сущностью эпизод будет 1 ко многим. Так как у одного сериала может быть множество эпизодов.
Перейдем к сущности деятеля киноидустрии. В качестве основых атрибутов можем выделить:
-
nameID - буквенно-цифровой уникальный идентификатор деятеля киноинудстрии.
-
primaryName - имя, под которым деятель упоминается в произведениях.
-
birthYear - дата рождения.
-
deathYear - дата смерти.
У каждого деятеля киноидустрии есть список профессий (режиссер, директор, актер и т.д.) вынесем это в отдельную сущность профессия имеющую атрибуты:
-
professionID - буквенно-цифровой уникальный идентификатор профессии.
-
jobType - тип профессии (режиссер, директор, актер и т.д.).
Связь между деятелем киноидустрии и профессией будет один ко многим. Так как у одного деятеля киноиндустрии может быть множество профессий. И наоборот может быть множество деятелей киноиндустрии с одинаковой профессией.
Для связи между произведением киноидустрии, деятелем киноидустрии и профессией введем дополнительную сущность участник съемочной группы.
Связь между произведением киноиндустрии и участником съемочной группы будет 1 ко многим, так как у произведения киноиндустрии может быть множество участников съемочной группы.
Связь между деятелем киноиндустрии и участником съемочной группы будет 1 ко многим, так как деятель киноиндустрии мог принимать участние в нескольких произведениях.
Связь между профессией и участником съемочной группы будет 1 ко многим, так как одну и ту же должность занимали множество участников съемочной группы.
При построение логичекой модели данных связи многие ко многим реализуются при помощи промежуточной(связывающей) таблицы.
Для разрещения связей многие ко многим между сущностями произведение киноиндустрии и участник съемочной группы введем промежуточную таблицу KnownForTitle.
Для разрешение связей многие ко многим между профессией и деятелем киноидустрии введем промежуточную таблицу NameProfessions.
-
https://habr.com/ru/post/254773/ (Статья про нормализацию)
-
https://www.intuit.ru/studies/courses/1095/191/lecture/4983?page=5 (Промежуточная таблица для связи многие ко многим)