powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Нормализация ER модели с сущностями-справочниками
15 сообщений из 15, страница 1 из 1
Нормализация ER модели с сущностями-справочниками
    #38751131
andrey.sad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!

Только начинаю постигать азы БД.

Не могу понять, каким образом правильнее делать:

Имеем, например, БД Аэропорт (вокзал, транспортная окмпания и т.п.).
В ней имеем сущность РЕЙС: №рейса, дата_вылета_ ГОРОД_вылета, дата_прибытия, ГОРОД_прибытия.

Нужно ввести справочник-классификатор ГОРОДА. И связать его с сущностью РЕЙС.

Связь ведь получается М:М. Так? Т.е. осуществляют через доп.таблицу. Здесь с помощью двух таблиц нужно - "рейсы_города_вылета" и "рейсы_города_прилета" со связями 1:М ?

Но если добавить, например, сущность ГРУЗ: №груза, ГОРОД_сдачи, ГОРОД_доставки (Т.е. сдают клиенты груз, а затем уже подбирается для них соответствующий рейс). То, получается, добавляется ЕЩЕ 2 таблицы? Это разве правильно?

Каким способом организовывают БД, в одной из таблиц которой есть столбцы с одинаковыми наборами значений?

Буду признателен за любую помощь, ибо для меня важно понять и разобраться. а не получить итоговый результат.
...
Рейтинг: 0 / 0
Нормализация ER модели с сущностями-справочниками
    #38751140
Гхостик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andrey.sad,
> "Нужно ввести справочник-классификатор ГОРОДА. И связать его с сущностью РЕЙС. Связь ведь получается М:М."

Почему это M:M ? Во-первых, лучше не город, а аэропорт (в той же Москве их несколько), а во-вторых, получается две связи 1:m - аэропорт вылета и аэропорт посадки.
...
Рейтинг: 0 / 0
Нормализация ER модели с сущностями-справочниками
    #38751199
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гхостикandrey.sad,
> "Нужно ввести справочник-классификатор ГОРОДА. И связать его с сущностью РЕЙС. Связь ведь получается М:М."

Почему это M:M ? Во-первых, лучше не город, а аэропорт (в той же Москве их несколько), а во-вторых, получается две связи 1:m - аэропорт вылета и аэропорт посадки.
С точки зрения описанной постановки задачи - правильно, но разумнее делать все-таки M:M, потому что рейсы могут случиться с промежуточными посадками.
...
Рейтинг: 0 / 0
Нормализация ER модели с сущностями-справочниками
    #38751240
Гхостик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я бы оставил два поля, и только при явной необходимости уже добавлял таблицу "маршрут", и в ней начальные и конечные пункты тоже бы были - первой и последней записью. Избыточно и ненормализовано - да, но учтен важный частный случай для производительности и удобства написания запросов.
...
Рейтинг: 0 / 0
Нормализация ER модели с сущностями-справочниками
    #38751249
azelentsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andrey.sad,

Вы еще не забудьте такую вещь, как один аэропорт может обслуживать несколько городов, а не только тот к которому привязан номинально. И да как правильно сказали в одном городе может быть несколько аэропортов.
Поэтому лучше держать данные как о городах, так и об аэропортах.
Но тогда вы путаетесь несколько сущностей в одной объединить.
Пример:
груз перемещается их Одинцово (МО) в Тольятти - это некоторый маршрут поставки
а рейсов будет больше: Одинцово - Москва (Шереметьево), Москва (Шереметьево) - Самара (Курумоч), Самара (Курумоч) - Тольятти

если я конечно правильно понял что вы хотите сделать
...
Рейтинг: 0 / 0
Нормализация ER модели с сущностями-справочниками
    #38751372
andrey.sad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ГхостикПочему это M:M ? Во-первых, лучше не город, а аэропорт (в той же Москве их несколько), а во-вторых, получается две связи 1:m - аэропорт вылета и аэропорт посадки.

М:М по определению из нашей универской методички.
Т.е. каждый рейс, хотя по смыслу будет больше подходить ПОЛЕТ, т.к. фиксированного расписания нет, выполняется в несколько аэропортов, и в каждый (из каждого) аэропорт(а) может быть совершено множество рейсов.
Получается, что есть две таблицы:

Полет: №полета; АЭРОПОРТ_вылета; АЭРОПОРТ_прилета;
Аэропорты: №Аэропорта; Наименование;

Т.е. можно это осуществить через две связи с внешним ключом "№Аэропорта" между этими таблицами?

Кот МатроскинС точки зрения описанной постановки задачи - правильно, но разумнее делать все-таки M:M, потому что рейсы могут случиться с промежуточными посадками.
У меня сейчас этап теоретический, никаких СУБД и в помине нет. И в учебном пособии четко указано "от связей м:м избавляться путем внедрения доп. таблиц". Думаю ,что будет однозначный "незачет" мне за это.

ГхостикЯ бы оставил два поля, и только при явной необходимости уже добавлял таблицу "маршрут", и в ней начальные и конечные пункты тоже бы были - первой и последней записью. Избыточно и ненормализовано - да, но учтен важный частный случай для производительности и удобства написания запросов.
Не примут у меня так работу(.

Кот МатроскинВы еще не забудьте такую вещь, как один аэропорт может обслуживать несколько городов, а не только тот к которому привязан номинально. И да как правильно сказали в одном городе может быть несколько аэропортов.
Поэтому лучше держать данные как о городах, так и об аэропортах.
Но тогда вы путаетесь несколько сущностей в одной объединить.
Пример:
груз перемещается их Одинцово (МО) в Тольятти - это некоторый маршрут поставки
а рейсов будет больше: Одинцово - Москва (Шереметьево), Москва (Шереметьево) - Самара (Курумоч), Самара (Курумоч) - Тольятти

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


Сейчас я просто не могу понять, как организовывают БД на теоретическом этапе (не учитывая специфик СУБД) в тех случаях, когда в одной сущности есть атрибуты, которые принимают значения из одного справочника.

Всем спасибо за ответы.
...
Рейтинг: 0 / 0
Нормализация ER модели с сущностями-справочниками
    #38751508
azelentsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andrey.sad,

Попробуйте в PowerDesigner спроектировать концептуальную модель данных.
Выделить на этом уровне сущности и взаимосвязи между ними, когда это будет иметь графическую интерпретацию - станет понятнее и вам и возможно вопросы будут более акцентированными.
...
Рейтинг: 0 / 0
Нормализация ER модели с сущностями-справочниками
    #38751513
azelentsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andrey.sad Т.е. каждый рейс, хотя по смыслу будет больше подходить ПОЛЕТ, т.к. фиксированного расписания нет, выполняется в несколько аэропортов,
Каждый конкретный полет - выполняется между строго заданными аэропортами.
Вопрос в том, насколько серьезно вам надо это отслеживать. Т.к. в авиаперевозках есть понятие - техническая посадка, при которой самолет совершает посадку в промежуточном аэропорту для совершения дозаправки (не знаю сущетсвует ли такое при грузоперевозок)
...
Рейтинг: 0 / 0
Нормализация ER модели с сущностями-справочниками
    #38751564
andrey.sad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот что набросал (в такой форме в отчет КР надо вставлять):



Есть справочник кораблей(суден) - Sheep, Грузов - Cargo, Арендаторов - Renter.

Договор - Contract - может быть трех видов - ContractType: Рейс, Аренда, Ремонт.

Во время рейса судно совершает заходы - DockIn. Во время каждого захода происходит погрузка или разгрузка - DockOp - определенных грузов, которые сданы клиентами - Cargo.

И так, необходимо добавить справочник портов - Hаrbor, связав его с Contract, DockIn
...
Рейтинг: 0 / 0
Нормализация ER модели с сущностями-справочниками
    #38751567
andrey.sad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Своими примерами про аэропорт, вокзал и транспортную больше неразберихи внес. Извиняюсь.

Просто не хотелось , чтобы все это выглядело так, будто бы мне нужно тупо контрольную доделать. Я хочу именно понять, в чем я туплю.

Спасибо.
...
Рейтинг: 0 / 0
Нормализация ER модели с сущностями-справочниками
    #38751611
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey.sadСвоими примерами про аэропорт, вокзал и транспортную больше неразберихи внес. Извиняюсь.

Просто не хотелось , чтобы все это выглядело так, будто бы мне нужно тупо контрольную доделать. Я хочу именно понять, в чем я туплю.

Спасибо.

Прежде чем начать проектировать БД нужно спроектировать модель предметной области.
1) Узнать какие сущности/объекты входят в модель. Возможно для вашей модели будет достаточно сущностей рейс, город, груз. А возможно и нет.
2) Какие связи м/у ними (город - рейс, рейс - груз и т.д.)

Когда вы это опишите, только тогда сможете спроектировать БД.

С опытом, для простых моделей предметной области, вы сможете сразу проектировать БД.
А пока так. В начале описываете модель, потом по ней проектируете БД.
...
Рейтинг: 0 / 0
Нормализация ER модели с сущностями-справочниками
    #38751627
andrey.sad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mad_nazgulПрежде чем начать проектировать БД нужно спроектировать модель предметной области.
1) Узнать какие сущности/объекты входят в модель. Возможно для вашей модели будет достаточно сущностей рейс, город, груз. А возможно и нет.
2) Какие связи м/у ними (город - рейс, рейс - груз и т.д.)

Когда вы это опишите, только тогда сможете спроектировать БД.

С опытом, для простых моделей предметной области, вы сможете сразу проектировать БД.
А пока так. В начале описываете модель, потом по ней проектируете БД.

Это понятно, спасибо! Само-собой, предметная область проанализирована. Выявлены сущности. Для нее и составлена ЕР-модель вышеуказанная.
Т.е. задание я выполни, в целом (просто вариантов моделей то много - у каждого свой. мой вариант преподавателя устроил).

Поступило уточнение - добавить справочник ПОРТов и связать его с действующими сущностями.
И тут я уперся в то, что у сущности Contract есть два атрибута - harbor_begin и harbor_end, которые могут принимтаь значания из одного справочника. Преподаватель на вопросы не отвечает, в учебном пособии про это нет ничего, кроме того, что от связей м:м уходить нужно через таблицу. Вот я и хочу понять, как это осуществляется правильно, профессионально.
...
Рейтинг: 0 / 0
Нормализация ER модели с сущностями-справочниками
    #38751690
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey.sadИ тут я уперся в то, что у сущности Contract есть два атрибута - harbor_begin и harbor_end, которые могут принимтаь значания из одного справочника. Преподаватель на вопросы не отвечает, в учебном пособии про это нет ничего, кроме того, что от связей м:м уходить нужно через таблицу. Вот я и хочу понять, как это осуществляется правильно, профессионально.
еще раз - это не связь M:M (Или, правильнее, M:N). В M:N c обоих сторон переменное число "концов" - поэтому ее, да, необходимо разруливать через отдельную таблицу. В Вашем же примере связь 2:M - рейс соотносится с двумя и только двумя аэропортами. Необязательно делать дополнительную таблицу - вполне можно оставить так как у Вас, это никакой теории не противоречит.
С другой стороны, можно сделать и отдельную таблицу (IDРейса, IDАэропорта, НачалоилиКонец), это тоже нормальное решение.
...
Рейтинг: 0 / 0
Нормализация ER модели с сущностями-справочниками
    #38752303
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гхостикandrey.sad,
> "Нужно ввести справочник-классификатор ГОРОДА. И связать его с сущностью РЕЙС. Связь ведь получается М:М."

Почему это M:M ? Во-первых, лучше не город, а аэропорт (в той же Москве их несколько), а во-вторых, получается две связи 1:m - аэропорт вылета и аэропорт посадки.

На самом деле аэропортов может быть больше двух. Т.е. их много
...
Рейтинг: 0 / 0
Нормализация ER модели с сущностями-справочниками
    #38752305
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы еще не забудьте такую вещь, как один аэропорт может обслуживать несколько городов, а не только тот к которому привязан номинально. И да как правильно сказали в одном городе может быть несколько аэропортов.

А вот это нас уже не должно интересовать в рамках данной БД.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Нормализация ER модели с сущностями-справочниками
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]