Студенческие типовые ошибочные проектные решения

(постоянно в стадии пополнения)

Есть такое понятие "типовые проектные решения"(ТПР). Но как показывает многолетний опыт начинающие проектировщики информационных систем при проектировании баз данных (БД) совершают одни и те же студенческие типовые ошибочные проектные решения (СТОП-решения). К ним относятся:

  1. “Директор” на столе директора.
  2. В ER-модели для рабочего места директора помещают сущность “Директор” и от нее проводят связи к другим сущностям, например, “Договор” или “Бухгалтерия”. При этом объяснения следующие: “Директор же работает с договором” или “Директор дает указание бухгалтерии”. Ошибка здесь в путанице информационных связей между объектами и управляющих связей между процессами. По сути, ER-модель – это модель рабочего стола для директора, а сущности – это папки на этом рабочем столе. Следовательно, если директор не болен склерозом и не страдает манией величия (вариант манией преследования), то в папку “Директор” он заглядывать не станет, чтобы проверить: “А кто сегодня директор?” С другой стороны у него на столе может лежать папка “Менеджер” и “Договор”, если директору необходимо знать кто из менеджеров с какими договорами работает.

  3. Связь 1:1 обязательная.
  4. Связь 1:1 обязательная часто является проявлением одной и той же сущности. Надо внимательно посмотреть не является ли разделение на две сущности искусственным и не являются ли две сущности одной и той же. Например, выделение из СОТРУДНИКа в качестве самостоятельной сущности АДРЕСа обоснованно только в случае, если у него несколько адресов, или если адрес присутствует у лишь у немногих экземпляров.

    Т.к. связь обязательная, то не исключена потеря целостности из-за несовпадения ссылок.

    Например, у каждого КЛИЕНТа банка обязательно есть СЧЕТ и к тому же только один. Потеря целостности : Иванов ссылается на счет №1, а счет №1 ссылается на Петрова.

  5. Связь 1:1 полуобязательная или необязательная.
  6. Связь 1:1 физически устанавливается ссылкой только с одной стороны, там где частота ссылок выше. Установка ссылок со стороны обеих связываемых таблиц может привести к потере целостности. Пример. Пусть установлена связь "быть начальником отдела" между таблицами "ОТДЕЛ" и "СОТРУДНИК". Тогда может оказаться, что Отдел_1 ссылается на Иванова, а Иванов на Отдел_2 . Т.е. налицо потеря целостности.

  7. Непонимание N-арной связи.
  8. В реляционной модели определены только бинарные связи, что позволяет задавать факты вида: "Иванов учится в гр. ИС-01". Для задания в БД более сложных фактов, например, "Рыбак А предпочитает ловить рыбцу В в водоеме С снастью D на наживку Е", что является N-арной связью, следует ввести еще одну сущность "Любовь рыбака", которая состоит из ключей связываемых сущностей (зависит от них покоду, идентифицируется ими).

  9. Процесс или структура данных?
  10. Иногда в голове начинающего проектировщика возникает путаница между "менеджером" как процессом (в диаграммах потоков данных) и "менеджером" как структурой данных в диаграмме сущность-связь. В первом случае можно поставить вопрос "Что делает?", во втором - "Как описывается, что о нем необходимо знать?"

  11. Отсутствие денег в БД.
  12. Почти все информационные процессы так или иначе связаны с сущностью "Деньги фирмы", изменения в которой или проверка по которой сопровождает практически любое действие: покупку, продажу, наем работника, перевозку и т.п.

  13. Схема БД может быть несвязным графом.
  14. Схема БД может содержать сущности несвязанные с другими. Связь между ними осуществляется на уровне выполнения тех или иных процессов. Например, таблица "Деньги фирмы" может содержать всего одну запись и быть изолированной в схеме БД. Однако выполнение многих операций будет изменять эту запись.

  15. Отсутствие бизнес-процессов.
  16. Обмен сообщениями между пользователями системы.
  17. Отсутствие или избыточность ключей.
  18. Множественные группы.
  19. Неопределенность данных “сведения”
  20. Полисемантичность.
  21. Потеря связей в физических моделях.
  22. Незавершенность бизнес-процессов
Hosted by uCoz