Skip to content

Latest commit

 

History

History
144 lines (91 loc) · 7.65 KB

Lab1.md

File metadata and controls

144 lines (91 loc) · 7.65 KB

Постановка задачи

Результатом выполнения лабораторной работы должен быть файл содержащий следующие основные части:

  1. Описание предметной области.

  2. Инфологическая (Концептуальная) модель базы данных для выбранной предметной области.

  3. Логическая модель базы данных для выбранной предметной области.

Построение концептуальной модели базы данных

В качестве предметной области для примера выберем объекты киноиндустрии.

Основные сущности это произведение киноиндустрии(фильм, сериал и т.д.) и деятель киноиндустрии (актер, режиссер, директор). В качестве основных атрибутов произведения можем выделить:

  1. titleID - буквенно-цифровой уникальный идентификатор заголовка.

  2. titleType – формат заголовка (например, фильм, короткометражка, сериал, твизод, видео и т.д.).

  3. primaryTitle – более популярное название / название, используемое создателями фильма в рекламных материалах на момент выпуска.

  4. originalTitle - оригинальное название, на языке оригинала.

  5. isAdult - запрещено к просмотру лицам не достигшим совершеннолетия.

  6. startYear – год выпуска.

  7. runtimeMinutes – длительность произведения в минутах.

  8. posterURL - URL постера.

  9. plot - сюжет.

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

  1. ratingID - буквенно-цифровой уникальный идентификатор рейтинга

  2. averageRating - средний рейтинг произведения.

  3. numVotes - количество голосов которые получил фильм.

  4. ratingType - тип рейтинга (IMDB, Metacritic и т.д.)

Каждое произведение имеет 1 ко многим связь с сущностью рейтинг. Так как у одного произведения может быть множество рейтингов.

Каждое произведение имеет 1 ко многим связь с сущностью жанр со следующими атрибутами:

  1. genreID - буквенно-цифровой уникальный идентификатор жанра

  2. genreType - тип жанра (драма, комедия и т.д.)

Если произведение киноинудстрии является сериалом имеет смысл ввести сущность эпизод. Имеющую следующие атрибуты:

  1. titleID - идентификатор серии сериала.

  2. parentTitleID - буквенно-цифровой идентификатор сериала к которому относится эпизод.

  3. seasonNumber - номер сезона.

  4. episodeNumber - номер серии в сезоне.

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

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

  1. nameID - буквенно-цифровой уникальный идентификатор деятеля киноинудстрии.

  2. primaryName - имя, под которым деятель упоминается в произведениях.

  3. birthYear - дата рождения.

  4. deathYear - дата смерти.

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

  1. professionID - буквенно-цифровой уникальный идентификатор профессии.

  2. jobType - тип профессии (режиссер, директор, актер и т.д.).

Связь между деятелем киноидустрии и профессией будет один ко многим. Так как у одного деятеля киноиндустрии может быть множество профессий. И наоборот может быть множество деятелей киноиндустрии с одинаковой профессией.

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

Связь между произведением киноиндустрии и участником съемочной группы будет 1 ко многим, так как у произведения киноиндустрии может быть множество участников съемочной группы.

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

Связь между профессией и участником съемочной группы будет 1 ко многим, так как одну и ту же должность занимали множество участников съемочной группы.

Conceptual model<span label="fig:Conceptual model"></span>

Логическая модель базы данных

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

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

Для разрешение связей многие ко многим между профессией и деятелем киноидустрии введем промежуточную таблицу NameProfessions.

Logical model<span label="fig:Logical model"></span>

Используемые источники

  1. https://habr.com/ru/post/254773/ (Статья про нормализацию)

  2. https://www.intuit.ru/studies/courses/1095/191/lecture/4983?page=5 (Промежуточная таблица для связи многие ко многим)