Обновить

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

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели8.7K
Всего голосов 7: ↑6 и ↓1+8
Комментарии6

Комментарии 6

Искренне жаль ваших студентов

Если я усну и меня разбудят через 100 лет и спросят - как дела - я отвечу - седые кедры в Вузах пишут научные работы по составлению расписания.

Иронично, что 24 года назад один старший преподаватель кафедры АСУиИ защищал аспирантуру по теме "составление расписания ВУЗа при помощи нейронных сетей". И даже писал прогу на C++.

Во-первых, речь шла не о вузе, а о техникуме. А во-вторых, разработка базы данных для ведения расписания - один из самых понятных примеров для студентов, не так ли? Или учиться нужно на сферических конях в вакууме массой один килограмм и длиной метр?

У меня шеф завкафедрой в МГУ (ядерная физика) где - то 1989-1990 писал расписание на Прологе.

Проблема, на мой взгляд, ещё и в том, что ER-подход слишком рано заставляет студента думать существительными: сущность, таблица, атрибут. Бизнес-правила и отношения большей арности появляются потом, поэтому их начинают искусственно запихивать в дополнительные «сущности».

В lsFusion, например, концептуальная модель строится из классов и типизированных свойств, то есть функций над объектами. price(Item, Supplier, Date) или balance(Item, Stock, Date) не обязаны изображаться атрибутом какой-то заранее придуманной сущности. Это просто отношения предметной области. А физические таблицы — уже отдельный уровень хранения этих свойств.

Для обучения такой подход, по-моему, полезен именно тем, что не даёт спутать отношение предметной области с таблицей. Тогда нормализация становится способом физического представления модели, а не самой моделью.

Начинать надо с того, что программирование для ЭВМ и связанная с ним дисциплина проектирование (разработка) структуры базы данных, в силу своей особенной специфики, не всем студентам, в силу личных особенностей человека, доступно. Например, я знал хороших математиков, но которые так и не научились хорошо программировать, а тем более проектировать базы данных. Короче, не всем это подходит, так как требует навыки логического и аналитического мышления и которые не всем людям подвластны. Основной моделью данных, в которой представляется структура базы данных, вот уже более 50-ти лет, остаётся реляционная модель и, соответственно, под нее разработаны и реляционные СУБД. Поэтому, изучение надо начинать с этой модели, какие отношения между данными ей присущи (один ко многим, многие ко многим, один ко одному), понятие нормализации структуры БД, их формы. Лучше всего это последовательно демонстрировать на простом примере содержащем в конечном виде не более 8-10 таблиц. Но повторяю, что такой курс для не специализированных по ИТ учебных заведений должен быть факультативным (добровольным). Другое дело, это учить умению пользоваться базами данных и работать с ними. Аналог для сравнения: учить как проектировать и изготавливать автомобиль и учить как им управлять и ездить. В этом и есть принципиальная разница.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации