АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ
Лекция 1. Этапы проектирования БД
ТЕМА 1.3. ЭТАПЫ ПРОЕКТИРОВАНИЯ БАЗ ДАННЫХ
ВОПРОСЫ
1. Что такое реляционная база данных?
2. Что такое запись и поле?
3. Что такое первичный ключ?
4. Что такое внешний ключ?
5. Что называют связью?
6. Расскажите о видах связей между таблицами?
7. В чём суть ссылочной целостности?
8. Перечислите и охарактеризуйте основные операции реляционной алгебры?
9. Где используются операции реляционной алгебры?
Процесс конструирования базы данных (ее проектирования и реализации) состоит из последовательности преобразований модели данных одного уровня в модель данных другого уровня.
Последовательности преобразований модели данных:
-систематизация объектов реального мира;
-создание информационных структур, описывающих систему объектов реального мира;
-создание структуры данных, которая используется для представления информационных структур в базе данных и прикладных программах;
-представление структуры памяти, используемой для хранения структур данных.
Процесс проектирования базы данных включает три этапа.
Первый этап -анализ предметной области илиэтап концептуального проектирования. На этапе концептуального проектирования осуществляется сбор, анализ и редактирование требований к данным.
Первым этапом проектирования БД любого типа является анализ предметной области, который заканчивается построением информационной структуры (концептуальной схемы). На данном этапе анализируются запросы пользователей, выбираются информационные объекты и их характеристики, которые предопределяют содержание проектируемой БД. На основе проведенного анализа структурируется предметная область. Анализ предметной области не зависит от программной и технической сред, в которых будет реализовываться БД.
Анализ предметной области целесообразно разбить на три фазы:
1) анализтребований и информационных потребностей;
2) выявление информационных объектов и связей между ними;
3) построение модели предметной области ипроектирование схемы БД.
Рассмотрим каждую фазу данного этапа проектирования подробно. Анализ концептуальных требований и информационных потребностей
На этапе анализа концептуальных требований и информационных потребностей необходимо выполнить;
1) анализ требований пользователей к базе данных (концептуальных требований);
2) выявление имеющихся задач по обработке информации, которая должна быть представлена в базе данных (анализ приложений),
3) выявление перспективных задач (перспективных приложений);
4) документирование результатов анализа
Требования пользователей к разрабатываемой БД представляют собой список запросов с указанием их интенсивности и объемов данных. Эти сведения разработчики БД получают в диалоге с ее будущими пользователями. Здесь же выясняются требования к вводу, обновлению и корректировке информации Требования пользователей уточняются и дополняются при анализе имеющихся и перспективных задач.
Рассмотрим примерный состав вопросника, требований к базе данных при анализе различных предметных областей.
Пример 1. Пусть предлагаетсяразработать систему вопросов к БД«Сессия студентов колледжа»:
1. Сколько студентов учится в колледже?
2. Сколько отделений в данном колледже?
3. Как распределены студенты по отделениям отделений и курсам?
4. Сколько дисциплин читается на каждом курсе по каждой специальности?
5. Как часто обновляется информация в базе данных?
6. Сколько преподавателей?
7. Сколько иногородних студентов живет в общежитии, на частных квартирах?
8. Какая преемственность существует между читаемыми курсами?
9. Сколько лекционных аудиторий и аудиторий для проведения практических занятий, лабораторий?
10.Как информация, представленная в п.п. 1-9, используется в настоящее время (расписание занятий, экзаменов, зачетов и т.д.) и как ее собираются использовать?
11.Сколько раз в день, сколько человек и кто пользуются БД?
Пример 1 (продолжение). Выполним анализ требований к БД «Сессия студентов». Вопрос 1. Для каких типов задач (приложений) проектируется БД? Ответ. Для трех типов задач: Задача 1. Информация о студентах. Задача 2. Информация о преподавателях. Задача 3. Информация об успеваемости студентов. Задача 4. Информация о предметах.
Вопрос 2. Какими информационными объектами характеризуются эти задачи? Ответ. Задача 1 характеризуется информационным объектом: личные дела студентов. Задача 2 характеризуется информационным объектом: личные дела преподавателей. Задача 3 характеризуется одним информационным объектом - сессия. Задача 4 характеризуется одним информационным объектом - предметы. Вопрос 3. Каким текущим запросам должны удовлетворять данные информационные объекты?
Вопрос 4. Каким перспективным запросам должны удовлетворять информационные объекты в БД «Сессия студентов»?
Пример 2.Пусть требуется разработать требования к локальной БД «Аэропорт». Вопрос 1. Для каких типов задач (приложений) проектируется БД? Ответ. Для трех типов задач: Задача 1. Информацияоб обслуживающем персонале. Задача 2. Информация о полетных средствах Задача 3. Информация о графике движения самолетов.
Вопрос 2. Какими информационными объектами характеризуются эти задачи? Ответ. Задача 1 характеризуется тремя информационными объектами: летный состав, диспетчеры, технический персонал. Задача 2 характеризуется двумя информационными объектами: самолет, взлетное поле. Задача 3 характеризуется одним информационным объектом - рейсы.
Вопрос 3. Каким текущим запросам должны удовлетворять данные информационные объекты? Ответ.
1.ФИО, звание, должность членов экипажа самолета.
2. Списочный состав диспетчеров.
3. Состав смены технического персонала.
4. Тип самолета, который может обслуживать тот или иной пилот.
5. Номер самолета, который обслуживает данный пилот, данная смена диспетчеров и технического персонала.
6. Номер личного дела сотрудника аэропорта.
7. Номер смены диспетчеров и технического персонала, обслуживающего аэропорт в заданном интервале времени.
8. Готовность самолета с номером № к полету.
9. Количество часов налета самолета с № .
10. Готовность данной взлетной полосы в настоящее время.
11. Длина данной полосы.
12. Номер (номера) рейса до данного пункта назначения.
13. Какие промежуточные посадки совершает рейс № ?
14. Время вылета и расчетное время прибытия рейса № .
15. Время и место регистрации рейса №
16. Время посадки на рейс № .
17. До какого времени задерживается рейс № ?
18. Какие типы самолетов обслуживают рейс №. ?
19. Какой номер самолета обслуживает рейс N°. ?
Вопрос 4. Каким перспективным запросам должны удовлетворять информационные объекты в БД «Аэропорт»?
Ответ.
1. С какого года используется самолет с № в аэропорту, тип самолета?
2. Какое количество часов полета у члена экипажа, ФИО?
Расчетное время отпуска члена экипажа, диспетчера, технического работника.
Выявление информационных объектов и связей между ними
Вторая фаза анализа предметной области состоит в выборе информационных объектов, задании необходимых свойств для каждого объекта, выявлении связей между объектами, определении ограничений, накладываемых на информационные объекты, типы связей между ними, характеристики информационных объектов.
При выборе информационных объектов следует ответить на следующие вопросы:
1. На какие классы можно разбить данные, подлежащие хранению в БД?
2. Какое имя можно присвоить каждому классу данных?
3. Какие наиболее интересные характеристики (с точки зрения пользователя) каждого класса данных можно выделить?
4. Какие имена можно присвоить выбранным наборам характеристик?
В ходе выявления связей между информационными объектами следует ответить на следующие вопросы:
1. Какие типы связей между информационными объектами?
2. Какое имя можно присвоить каждому типу связей?
3. Каковы возможные типы связей, которые могут быть использованы впоследствии?
4. Имеют ли смысл какие-нибудь комбинации типов связей?
Далее проектировщик пытается задать ограничения на объекты и их характеристики. Под ограничением целостности обычно понимают логические ограничения, накладываемые на данные. Ограничение целостности - это такое свойство, которое проектировщик задает для некоторого информационного объекта или его характеристики, и которое должно сохраняться для каждого их состояния.
При выявлении условий ограничения целостности проектировщик пытается ответить на следующие вопросы:
1. Какова область значений для числовых характеристик?
2. Каковы функциональные зависимости между характеристиками одного информационного объекта?
3. Какой тип отображения соответствует каждому типу связей?
Пример 1 (продолжение). Для БД «Сессия студентов» выберем следующие сущности: институт, факультет, студент, преподаватель, дисциплина, ведомость. Каждую сущность зададим набором атрибутов (ключевые атрибуты подчеркнем): институт (сокращение, название, подчиненность, адрес, телефон, ФИО ректора).
факультет (код Факультета, название, код специальности, декан). кафедры факультета (код кафедры, название, код факультета, зав.кафедрой). студент (номер зачетной книжки, ФИО, группа, пол, дата рождения, домашний адрес, телефон).
преподаватель {№ страхового свидетельства. ФИО, дата рождения, домашний адрес, телефон, должность, ученое звание, ученая степень, код кафедры, стаж).
дисциплина (шифр дисциплины, название, число часов, виды занятий, число читаемых семестров, на каких курсах преподается).
ведомость (№ п/п, номер зачетной книжки студента, код дисциплины, семестр, форма сдачи, дата сдачи, отметка, преподаватель). Определим связи между сущностями.
Имя связи учится изучает принадлежит |
Связи между объектами
студент, факультет студент, дисциплина институт, факультет |
учится
изучает
принадлежит
работает преподает экзамен |
преподаватель, факультет
преподаватель, дисциплина
студент, дисциплина
преподаватель, студент
Рассмотрим некоторые ограничения на характеристики объектов:
1. Значение атрибута "телефон" (сущность - институт) задается целым положи
тельным шестизначным числом, задавать значение будем по маске __-__-__ .
2. Значение атрибута "код факультета" (сущность факультет) лежит в интервале
0-10.
3. Значение атрибута "курс" (сущность - студент) лежит в интервале 1-6 ихранится первая цифра номера группы.
4. Значение атрибута "семестр" (сущность - студент, дисциплина)лежит в интервале 1-12.
5. Значение атрибута "число часов" (сущность - дисциплина) лежит в интервале 1-300.
6. Одному студенту может быть приписана только одна группа.
7. Один студент может учиться только на одном факультете.
8. Один студент в семестре сдает от 3 до 10 дисциплин.
9. Один студент изучает в семестре от 6 до 12 дисциплин.
10.Одному преподавателю приписывается только одна кафедра.
11.Один студент может пересдавать одну дисциплину не более трех раз.
Ключи: сокращение (названия института), код факультета, номер зачетной книжки, № страхового свидетельства преподавателя, шифр дисциплины, № п/п.
Построение концептуальной модели предметной области
Заключительная фаза анализа предметной области состоит в проектировании ее информационной структуры или концептуальной модели.
Концептуальная модель включает описания объектов и их взаимосвязей, представляющих интерес в, рассматриваемой предметной области (ПО) и выявляемых в результате анализа данных. Концептуальная модель применяется для структурирования предметной области с учетом информационных интересов пользователей системы. Она дает возможность систематизировать информационное содержание предметной области, позволяет как бы "подняться вверх" над ПО и увидеть ее отдельные элементы. При этом, уровень детализации зависит от выбранной модели. Концептуальная модель является представлением точки зрения пользователя на предметную область и не зависит ни от программного обеспечения СУБД, ни от технических решений. Концептуальная модель должна быть стабильной. Могут меняться прикладные программы, обрабатывающие данные, может меняться организация их физического хранения, концептуальнаямодель остается неизменной или увеличивается с целью включения дополнительных данных.
Одной из распространенных моделей концептуальной схемы является модель «сущность-связь». Остановимся на наиболее известной модели данного типа, названной по фамилии автора, - модели П. Чена, или ER-модели. Основными конструкциями данной модели являются сущности и связи.
Под сущностью понимают основное содержание объекта ПО, о котором собирают информацию. В качестве сущности могут выступать место, вещь, личность, явление. Экземпляр сущности - конкретный объект. Например: сущность (объект) - студент, экземпляр сущности - Иванов А. В.; сущность (объект) - институт, экземпляр сущности - КГУ.
Сущность принято определять атрибутами - поименованными характеристиками. Например: сущность - студент, атрибуты - ФИО, год рождения, адрес, номер группы ит.д.
Чтобы задать атрибут в модели, ему надо присвоить имя и определить область допустимых значений. Одно из назначений атрибута - идентифицировать сущность.