Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Где тут могут быть ошибки в Модели БД

Ильяс Закиров Ученик (87), открыт 3 недели назад
Был на экзамене поставили 2 сказали не правильно ничего. Составил сущности, атрибуты, ER-диаграмму, к сожалению, концептуальную модель не успел. Потом как понял в начале делают концептуальную модель в нотации Чена а уже потом ER-диаграмму и структуру БД. Сказали не правильно составлена БД и не имеет 3-ю нормальную форму. Где именно неправильно составлена БД и где нарушена 3НФ

Сверху тема и сущности которые были на билете

2 ответа
Jurijus Zaksas Искусственный Интеллект (466695) 3 недели назад
Да везде полный ужас. Например, почему у тебя "лицо" разделено на преступника, подозреваемого, потерпевшего и свидетеля? Почему у тебя всех свидетелей надо перечислять для каждого преступления? А если одно и то же лицо является свидетелем нескольких? А если свидетель переводится в подозреваемые - надо физически данные из одной таблицы в другую таскать? Почему ФИО выделены в отдельную таблицу? Сие могло бы иметь смысл, кстати, если бы это были клички преступников. Но обычные ФИО-то зачем?
В общем, оценка заслуженная, все забыть как страшный сон и переделать.
Ильяс ЗакировУченик (87) 3 недели назад
Спасибо за объяснение. Вопрос, как можно было организовать свидетелей, приступников, подозреваемых и пострадавших? И раз подозреваемый может относится к нескольким преступлениям, и к 1 преступлению несколько подозреваемых, как это реализовать без связи M:N
Андрей Высший разум (480229) 3 недели назад
Не ФИО, а Граждане (или Паспортные данные). Одного ФИО для идентификации человека мало.

Потерпевший, Свидетель, Подозреваемый, Преступник - это связь многие-ко-многим между таблицами Преcтупления и Граждане. Одна связь, а не четыре разные.

Да, связи многие-ко-многим реализуются через дополнительные таблицы. Но эти таблицы появляются уже на этапе проектирования реальной структуры БД, а на этапе ER-диаграммы это именно связи. И зачем столько отдельных связей? Добавляем в единственную таблицу связи поле "статус", которое и обозначает текущий статус гражданина в рамках уголовного дела.

Сотрудники - связь между таблицей Должности и таблицей Граждане.

Дежурства - id дежурства плюс интервал (дата / время) дежурства. На каждое дежурство создаётся новая запись. И делаются связи id дежурств и id сотрудников. Но никаких id ФИО там быть не может: связь с таблицей Граждане уже есть через таблицу Сотрудники.

И т.д... Все данные, которые могут дублироваться, выносятся в отдельные таблицы. Все связи, которые могут дублировать друг друга, удаляются.
Ильяс ЗакировУченик (87) 3 недели назад
Спсаибо!
Похожие вопросы