Кириллов В.В., Громов Г.Ю. - Введение в реляционные базы данных. Литература для вузов isbn 9785941577705 в книге рассматриваются основные понятия баз данных и систем управления ими
Скачать 11.62 Mb.
|
Глава 20 Построение инфологической модели "Учебные планы" 20.1. Первая попытка проектирования Легко заметить, что создаваемые в вузе учебные планы: базовые (разд. 19.2.1 и 19.2.2) и рабочие (разд. 19.2.3—19.2.6), а также их модифика- ции, предназначенные для планирования подготовки бакалавров, магистров, аспирантов и даже организации приема абитуриентов, очень похожи друг на друга. Во всех существует "шапка", в которой указывается: тип стандарта (направление подготовки дипломированных специалистов, специальность, специализация, направление подготовки бакалавров, на- правление подготовки магистров, магистерская программа, аспирантура); дата утверждения стандарта или учебного плана (в стандартах 1995 и 2000 гг. при одинаковых номерах и названиях, достаточно много различий как в именах и объемах дисциплин, так и в отнесении их к рангу феде- ральных, региональных и т. д.); номер и название направления, специальности (программы) и специали- зации; квалификация, получаемая после успешного окончания обучения (инже- нер, инженер-педагог, экономист, бакалавр техники или магистр техники и технологии и т. п.); учебный год, курс, факультет, выпускающая кафедра, форма обучения (очная, очно-заочная, заочная) и ряд других атрибутов. Далее идет набор снабженных индексом дисциплин, по каждой из которых приводится информация о формах итогового контроля, числу часов, отводи- мых на различные виды занятий, и другая информация (см. рис. 19.3 и 19.6). Примерная структура этих планов показана на рис. 20.1. Глава 20. Построение инфологической модели "Учебные планы" 367 Шапки планов Направле- ния подготовки 654600 - Ин- форматика и вычислитель- ная техника Специальности (магистерские программы) 220100 - Вычис- лительные ма- шины, комплек- сы, системы и сети 220102- ... 220103 - Систе- мы автомати... 220104- ... Специали- зации 220104 - Сис- темы тле... 220109 - Тех- нология... 220111 - Отк- рытые инф... 220112 - Ин- формацион... ... ... ... Учебные планы Базовый план Рабочий план 1-го курса 2004/2005 учебного года Рабочий план 3-го курса 2004/2005 учебного года Рабочий план 5-го курса 2004/2005 учебного года 552800 - Ин- форматика и вычислитель- ная техника (бакалавр) 552800 - Ин- форматика и вычислитель- ная техника (магистр) 552811 - Базы данных 552813 - Сети ЭВМ и телеком- муникации 552820 - Систе- мы реального времени Базовый план Дисциплины планов ... ... ... ... ... ... ... ... ... ... ... ... Дисциплины ГСЭ.Ф.01 - Иностранный язык ЕН.Ф.03 - Физика ОПД.Ф.10 - Базы данных СД.Ф.02 - Моделирование ФТД.01 - Военная подготовка ГСЭ.Р.03 - Менеджмент ОПД.Ф.10 - Базы данных СД.Ф.02 - Моделирование ГСЭ.Ф.03 - Философия СДМ.Р.02 - Проектирование информационных систем СДМ.Р.05 - Корпоративные информационные системы Семе стры Виды работ и контроля 1 2 3 4 Лекции Лекции Лаб. занятия Лаб. занятия Лаб. занятия Лаб. занятия Лаб. занятия СРС СРС СРС СРС СРС Экзамен Экзамен Экзамен Экзамен Экзамен Пр. занятия Курс. раб. Лекции Лекции 5 5 5 6 9 10 Рис. 20.1. Примерная структура учебных планов Попробуем создать модель, состоящую всего из двух сущностей: Шапки планов и Дисциплины планов На рис. 20.2 показаны атрибуты и ряд записей одного из возможных вариан- тов сущности Шапки планов Даже при беглом рассмотрении данных, содержащихся в ее записях, видны недостатки такого проекта — избыточность хранимых данных. Например, здесь в четырех записях четыре раза повторяются достаточно длинные назва- ния факультета, направления подготовки и выпускающей кафедры, по два раза повторяются названия специальности и специализации. А сколько бы было "лишних" данных в информационной системе СПбГУ ИТМО, где хра- нится не три, а несколько тысяч планов, если бы в ней был реализован рас- сматриваемый вариант? При этом не так страшен расход памяти или снижение производительности системы при обработке больших объемов данных, страшно то, что такой проект практически не позволяет поддерживать, так называемую, целост- ность данных — их правильность на любой момент времени. Это связано с проблемами, возникающими при изменении данных (их вводе, удалении и обновлении). Часть VII. Пример создания базы данных "UCHEB" 368 Рис. 20.2. Атрибуты и несколько записей сущности Шапки планов Так, если потребуется изменить на новое название факультета "Компьютер- ных технологий и управления", то где гарантия, что нам удастся найти и обновить все записи? Как, например, сможет быть найдена и обновлена третья запись рис. 20.1 при поиске "старого" названия факультета, если в ней хранится ошибочное название — "Компьютерных техналогий и управ- ления". Схожие проблемы возникнут и при обновлении или удалении других, многократно повторяющихся, текстовых значений атрибутов записей. (Обра- тите внимание на то, что на рис. 20.2 нет ошибок только в первой записи.) Об аномалиях обновления, включения и удаления данных подробно рассказа- но в [1, 4]. Здесь же отметим, что многие проблемы исчезнут, если выделить в отдельные сущности (справочники) сведения о факультетах, кафедрах, Глава 20. Построение инфологической модели "Учебные планы" 369 направлениях, специальностях и др. Такое разбиение большой сущности на несколько сущностей, обладающих лучшими свойствами при включении, изменении и удалении данных, называется нормализацией(см. главу 11). Окончательная цель нормализации сводится к получению такого проекта базы данных, в котором каждый факт появляется лишь в одном месте, т. е. исключена избыточность информации. 20.2. Вторая попытка проектирования 20.2.1. Шапки планов Сначала создадим справочники, показанные на рис. 20.3 и 20.4. Теперь обратим внимание на то, что три первых столбца структуры рис. 20.1 содержат однотипную информацию и, следовательно, их целесообразно объ- единить в единую сущность, организовав иерархические связи между неко- торыми значениями этой сущности. Рис. 20.3. Атрибуты и записи справочников: Квалификации , Формы обучения , Типы стандартов и Типы планов С целью упрощения описания некоторых особенностей структуры данной сущности, в ее представление на рис. 20.5 включено два лишних столбца (отмечены серым цветом). В них помещены те значения атрибутов Номер и Наименование справочника Напр_спец , которые расположены в строках с идентификатором ( ИД ), равным соответствующему значению атрибута НС_ИД сущности Направления_специал Часть VII. Пример создания базы данных "UCHEB" 370 Рис. 20.4. Атрибуты и ряд записей справочника Напр_спец , содержащего данные о направлениях, специальностях и специализациях Рис. 20.5. Сущность Направления_специал Глава 20. Построение инфологической модели "Учебные планы" 371 В Направления_специал вместо текстовых значений типов стандартов, квали- фикаций и др. размещены указатели ( ТС_ИД , Квал_ИД ) на идентификаторы соот- ветствующих значений из справочников. Следовательно, теперь ошибка в тек- сте одной строки справочника может привести к появлению ошибок в текстах множества документов, использующих этот справочник, но все они одновре- менно "исправляются" при исправлении единственной строки справочника. В Направления_специал включены также новые атрибуты: Уровень и НАПС_ИД Первый используется для указания уровня высшего профессионального об- разования: 1 — незаконченное высшее (не менее двух лет обучения в вузе), 2 — образовательная программа бакалавра (4 года), 3 — образовательная программа специалиста (5—5,5 лет) или магистра (6 лет), 4 — послевузов- ское образование (аспирантура, докторантура). Второй атрибут, являющийся указателем на идентификатор строк ( ИД ) собст- венной сущности, служит для организации цепочек подчиненности: специализация → специальность → → направление подготовки дипломированных специалистов или магистерская программа → направление подготовки магистров. Наличие такой цепочки позволяет указывать в рабочем учебном плане только номер специальности (см. рис. 19.6 и 19.10), специализации или магистер- ской программы, по которым производится определение типа стандарта, на- правления подготовки и квалификации. Например, возьмем рабочий учебный план, составленный на 2004/2005 учебный год для студентов 3 курса специ- альности 220100 (см. рис. 19.6 или 19.10). Эти студенты поступили в ИТМО в 2002 году и обучаются по рабочим учебным планам, составляемым по ГОС 2000 года. В записях сущности Направления_специал (рис. 20.5) специаль- ность 220100 с датой ГОС, равной, 01.03.2000 , имеет ИД=700 и значение НАПС_ИД=58 , т. е. эта специальность входит в состав направления, основные параметры которого приведены в записи с идентификатором 58: Уровень = 3 (законченное высшее образование) Дата ГОС = 01.03.2000 НАПС_ИД — пусто (никому не подчиняется) ТС_ИД = 1 (направление подготовки дипломированных специалистов) НС_ИД = 17 (654600 — Информатика и вычислительная техника) Квал_ИД = 1 (инженер) Можно также определить те специализации, по которым они смогут обучать- ся на старших курсах. Для этого надо найти строки с НАПС_ИД=700 , т. е. под- Часть VII. Пример создания базы данных "UCHEB" 372 чиненные строке с ИД=700 . В этих строках будут перечислены специализации 220104 , 220109 , 220111 и 220112 (их названия указаны на рис. 20.4 или 20.5). Наконец, в учебных планах, так или иначе, упоминаются факультеты и вы- пускающие кафедры, составившие эти планы. Так как кроме этих структур в ИТМО существуют и другие (отделы, центры и пр.) и могут появляться новые, то целесообразно создать единую сущность для хранения сведений о любых подразделениях, назвав ее, например, Отделы (рис. 20.6). Рис. 20.6. Атрибуты и несколько записей сущности Отделы В сущности Отделы , в отличие от большинства других сущностей, идентифи- катор ( ИД ) не является порядковым номером строки, а имеет исторически сложившееся значение. Для новых отделов этот трехзначный номер назнача- ет администратор базы данных. Глава 20. Построение инфологической модели "Учебные планы" 373 Атрибут ОТД_ИД сущности Отделы используется так же, как и атрибут НАПС_ИД в сущности Направления_специал , т. е. для организации цепочек подчиненно- сти (например, кафедра → факультет → университет) неограниченной вло- женности. Воспользуемся еще одним универсальным приемом, с помощью которого можно без изменения структуры справочника неограниченно расширять на- бор свойств его значений. Так, если какому-нибудь отделу надо дать статус факультета, право под- готовки приказов о приеме, переводе и отчислении студентов, а также на проведение ряда финансовых операций, то его описание на рис. 20.6 должно быть дополнено тремя атрибутами, например такими, которые указаны в стро- ках 1, 4 и 12 таблицы, приведенной на рис. 20.7. Рис. 20.7. Атрибуты и записи сущности Свойства отделов Возможно, что появится необходимость дополнить описание этого отдела еще рядом атрибутов, т. е. придется еще раз изменять структуру сущности Отделы , что, как и в первый раз, может привести к необходимости изменения всех приложений, в которых используется эта сущность. Поэтому следует добиваться создания такого проекта базы данных, который бы при ее экс- плуатации позволял вносить любые изменения только с помощью изменения данных, но не структуры базы данных. Здесь это достигается созданием двух дополнительных сущностей: Свойства отделов и Характеристики отделов (рис. 20.8). Часть VII. Пример создания базы данных "UCHEB" 374 Рис. 20.8. Атрибуты и несколько записей сущности Характеристики отделов Последняя сущность позволяет привязать к любому отделу любой набор свойств. Поэтому для включения в описание отдела нового свойства не потре- буется создавать новый атрибут в сущности Отделы , а нужно только внести описание нового свойства в Свойства отделов и дополнить Характеристики отделов описанием связи этого свойства с нужным отделом. В завершение описания структуры хранения данных о Шапках планов , доба- вим сущности: Планы (рис. 20.9) и Группы планов (рис. 20.10). Рис. 20.9. Атрибуты и несколько записей сущности Планы Большинство студентов в процессе обучения в университете последо- вательно изучают наборы дисциплин, указанных в рабочих учебных пла- Глава 20. Построение инфологической модели "Учебные планы" 375 нах 1, 2, 3 и т. д. курсов (например, наборы дисциплин из планов с ИД 813 , 1435 , 1723 и т. д. рис. 20.9). Если студент, начавший заниматься по этой цепочке планов, ушел, например, на третьем курсе, на один год в академи- ческий отпуск, то, возвратившись, он должен будет продолжать обучение по другому плану третьего курса ( ИД=2144 ). Не исключено, что наборы дисциплин новой цепочки планов с ИД 1427 и 1726 не совпадают с теми, которые он изучал до отпуска по планам с ИД 813 и 1435 . А так как при окончании обучения набор всех изученных им дисциплин должен соответ- ствовать набору дисциплин новой цепочки планов, то при отсутствии тако- го соответствия (по названию, объему и т. п.) необходимо принять меры к его устранению. Для организации указанных ранее цепочек в сущность Планы включен атри- бут ПЛАН_ИД , являющийся указателем на идентификатор ( ИД ) предшествую- щего рабочего плана. Кроме того, в Планы включен атрибут ПЛАН_ИД_ОСНОВАН_НА для организации связи базового и построенных на его основе рабочих учебных планов. Рис. 20.10. Атрибуты и несколько записей сущности Группы планов По любому рабочему учебному плану обучается одна или несколько студен- ческих групп. Так по плану с ИД 2144 (см. рис. 20.9) в 2004/2005 учебном го- ду будет заниматься пять групп с 3100 по 3104 (см. рис. 20.10), а по плану 2156 — только одна группа 3120 Часть VII. Пример создания базы данных "UCHEB" 376 20.2.2. Дисциплины планов Овладев некоторыми приемами создания удовлетворительных моделей, сразу перейдем к построению многотабличной модели, описывающей дисциплины планов. Как показывает анализ содержимого главы 19, где приводились описания и внешний вид различных учебных планов, структура их строк нерегулярна и достаточно сложна. Кроме того, в них достаточно много повторяющихся текстовых данных, которые целесообразно разместить в справочниках: Циклы дисциплин , Компоненты и Дисциплины (рис. 20.11—20.13). На рис. 20.13 показано только 16 из полутора тысяч дисциплин. Это те дисциплины, которые входят в рабочий учебный план, приведенный на рис. 19.6. Рис. 20.11. Атрибуты и записи сущности Циклы дисциплин Рис. 20.12. Атрибуты и записи сущности Компоненты Глава 20. Построение инфологической модели "Учебные планы" 377 Рис. 20.13. Атрибуты и несколько записей сущности Дисциплины Рис. 20.14. Атрибуты и несколько записей сущности Строки планов Часть VII. Пример создания базы данных "UCHEB" 378 Перейдем теперь к построению модели строк планов (см. рис. 19.4, 19.6 и 19.9). В каждой строке плана кроме индекса и названия дисциплины суще- ствует один или несколько (по числу семестров) наборов значений для раз- личных видов занятий и контроля. А так как мы договорились использовать реляционную СУБД (см. предисловие), а в реляционной модели поля могут содержать только одно значение или ничего (множественные поля недопус- тимы) (см. разд. 3.2), то нам придется использовать для описания дисципли- ны несколько взаимосвязанных сущностей. Назовем первую из них Строки планов (рис. 20.14). В ней помещен указатель на сущность Планы ( ПЛАН_ИД ), к которому относятся данные строки. Размещены также указатели на справочники Компоненты ( КОМ_ИД ), Циклы дисциплин ( ЦД_ИД ) и Дисциплины ( ДИС_ИД ). Проставлены но- мера в цикле и номер дисциплины по выбору (см. разд. 19.2.4), входящие в состав индекса дисциплины. Для упрощения описания некоторых особен- ностей структуры данной сущности, в ее представление на рис. 20.14 вклю- чен лишний столбец с наименованием дисциплины (отмечен серым цветом). Информацию о распределении дисциплины по семестрам, о кафедрах, кото- рым поручено проводить обучение по этим дисциплинам в каждом из семе- стров, а также о числе недель, отведенных в этих семестрах на теоретическое обучение, разместим в сущности Элементы строк , показанной на рис. 20.15. В сущности Элементы строк помещены указатели на идентификаторы строк ( ИД ) сущности Строки планов ( СПЛ_ИД ) и сущности Отделы ( ОТД_ИД ). Кроме них вклю- чены атрибуты Номер семестра и Недель , где указываются номера семестров, в которых запланировано изучение дисциплины, и количество недель, отве- денных на теоретическое изучение дисциплины в каждом из этих семестров. Наконец, по каждой дисциплине в каждом семестре планируется определен- ный набор работ (лекции, лабораторные занятия и пр.) и видов текущего и (или) итогового контроля за усвоением материала дисциплины. Для хранения этих наборов создадим еще одну сущность Содержания элементов строк (рис. 20.16), а также справочник Виды работ (рис. 20.17). В сущности Содержания элементов строк помещены указатели на идентифи- каторы строк ( ИД ) сущности Элементы строк ( ЭСТ_ИД ) и сущности Виды работ ( ВР_ИД ). Кроме них включены атрибуты Объем и Номер контроля , в которых указывается число часов, отводимых на соответствующие виды работ, и но- мер указанного вида контроля (см. разд. 19.2.9). В справочнике Виды работ размещены атрибуты Наименование , содержащий полные наименования вида занятий или контроля, Аббревиатура — с кратким наименованием, используемым в текстах учебных планов, Единица измерения и Порядок , который используется для упорядочения различных меню приложений. Глава 20. Построение инфологической модели "Учебные планы" 379 Рис. 20.15. Атрибуты и несколько записей сущности Элементы строк Рис. 20.16. Атрибуты и несколько записей сущности Содержания элементов строк Напомним, что в базовых (см. рис. 19.4) и рабочих (см. рис. 19.6) учебных планах приводятся объемы работ в "часах в неделю" и "часах в семестр" со- ответственно. Для учета такого различия при создании процедур приложений созданы две сущности: Свойства видов работ (рис. 20.18) и Характеристики видов работ (рис. 20.19), которые по своей структуре и предназначению схожи с аналогичными сущностями Свойства отделов и Характеристики отделов , описанными в разд. 20.2.1. Часть VII. Пример создания базы данных "UCHEB" 380 Рис. 20.17. Атрибуты и записи сущности Виды работ Рис. 20.18. Атрибуты и записи сущности Свойства видов работ Рис. 20.19. Атрибуты и несколько записей сущности Характеристики видов работ Глава 20. Построение инфологической модели "Учебные планы" 381 20.3. Инфологическая модель "Учебные планы" На рис. 20.20 приведена ER-диаграмма "Учебные планы", построенная по материалам разд. 20.2. ЦИКЛЫ_ДИСЦИПЛИН ИД АББРЕВИАТУРА НАИМЕНОВАНИЕ СОДЕРЖАНИЯ_ЭЛЕМЕНТОВ_СТРОК ИД ВР_ИД ОБЪЕМ НОМЕР_КОНТРОЛЯ ЭСТ_ИД ВИДЫ_РАБОТ ИД ПОРЯДОК АББРЕВИАТУРА НАИМЕНОВАНИЕ ЕДИНИЦА_ИЗМЕРЕНИЯ ОТДЕЛЫ ИД КОРОТКОЕ_ИМЯ НАИМЕНОВАНИЕ ОТД_ИД ДАТА_СОЗДАНИЯ ДАТА_ЛИКВИДАЦИИ ЭЛЕМЕНТЫ_СТРОК ИД ОТД_ИД НОМЕР_СЕМЕСТРА СПЛ_ИД НЕДЕЛЬ СТРОКИ_ПЛАНОВ ИД КОМ_ИД ЦД_ИД НОМЕР_В_ЦИКЛЕ ДИС_ИД НОМЕР_ДИСЦИПЛИНЫ_ПО_ВЫБОРУ ПЛАН_ИД ПЛАНЫ ИД ТПЛ_ИД УЧЕБНЫЙ_ГОД ОТД_ИД ОТД_ИД_ЗАКРЕПЛЕН_ЗА НАПС_ИД КУРС ФО_ИД СРОК_ОБУЧЕНИЯ ДАТА_УТВЕРЖДЕНИЯ ПЛАН_ИД ПЛАН_ИД_ОСНОВ_НА ПРИМЕЧАНИЕ НОМЕР ГРУППЫ_ПЛАНОВ ГРУППА ПЛАН_ИД ДИСЦИПЛИНЫ ИД КОРОТКОЕ_ИМЯ НАИМЕНОВАНИЕ КВАЛИФИКАЦИИ ИД НАИМЕНОВАНИЕ ТИПЫ_ПЛАНОВ ИД КОРОТКОЕ_ИМЯ НАИМЕНОВАНИЕ КОМПОНЕНТЫ ИД АББРЕВИАТУРА НАИМЕНОВАНИЕ ТИПЫ_СТАНДАРТОВ ИД НАИМЕНОВАНИЕ ФОРМЫ_ОБУЧЕНИЯ ИД НАИМЕНОВАНИЕ НАПР_СПЕЦ ИД КОД_НАПРСПЕЦ НАИМЕНОВАНИЕ ХАРАКТЕРИСТИКИ_ВИДОВ_РАБОТ СВР_ИД ВР_ИД СВОЙСТВА_ВР ИД НАИМЕНОВАНИЕ ПРИМЕЧАНИЕ НАПРАВЛЕНИЯ_СПЕЦИАЛ ИД УРОВЕНЬ ДАТА_ГОС КВАЛ_ИД НС_ИД ТС_ИД НАПС_ИД ХАРАКТЕРИСТИКИ_ОТДЕЛОВ СВОТД_ИД ОТД_ИД ЗНАЧЕНИЕ ПРИМЕЧАНИЕ СВОЙСТВА_ОТДЕЛОВ ИД НАИМЕНОВАНИЕ ПРИМЕЧАНИЕ Рис. 20.20. ER- диаграмма "Учебные планы" |