Министерство образования и науки РФ
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«Воронежский государственный архитектурно-строительный университет»
Методические указания
к выполнению лабораторных работ
студентами бакалавриата 3-го курса направления 09.03.03
«Прикладная информатика», студентами бакалавриата 3-го курса направления 09.03.02 «Информационные системы и технологии» и студентами бакалавриата 3-го курса направления 27.03.05 «Инноватика»
Воронеж 2015
УДК 004.4
ББК 32.973.26
Составители Ошивалов А.В., Акамсина Н.В.
Проектирование баз данных: метод. указания к выполнению лабораторных работ / Воронежский ГАСУ; сост.: А.В. Ошивалов, Н.В. Акамсина. – Воронеж, 2015. – 35 с.
Даны рекомендации и последовательность выполнения лабораторных работ студентами по всем разделам курса «Проектирование баз данных», курса «Базы данных» и курса «Разработка и использование баз данных в инновационном процессе»: теоретические положения, порядок проведения.
Предназначены для студентов бакалавриата направления 09.03.03 «Прикладная информатика», направления 09.03.02 «Информационные системы и технологии» и направления 27.03.05 «Инноватика» всех форм обучения.
Ил. 28. Библиогр.: 7 назв.
УДК 004.4
ББК 32.973.26
Печатается по решению научно-методического совета
Воронежского ГАСУ
Рецензент – Т.В. Волобуева, к. ф-м. н., доцент кафедры информатики и графики Воронежского ГАСУ
В методических указаниях изложены рекомендации по выполнению лабораторных работ для бакалавров третьего курса по дисциплине «Базы данных», входящей в базовую часть профессионального цикла ГОС направления 09.03.03 «Прикладная информатика», для бакалавров третьего курса по дисциплине «Проектирование баз данных», входящей в базовую часть профессионального цикла ГОС направления 09.03.02 «Информационные системы и технологии» и для бакалавров третьего курса по дисциплине «Разработка и использование баз данных в инновационном процессе», входящей в вариативную часть математического и естественно-научного цикла направления 27.03.05 «Инноватика».
Методические указания состоят из теоретических сведений и 8 лабораторных работ, в каждой из которых описана последовательность действий для выполнения соответствующей темы.
Проектирование баз данных, как правило, играет одну из ключевых ролей в большинстве проектов. Грамотно спроектированная база позволяет без особых проблем вносить изменения, изменять структуру системы.
Основная причина сложности проектирования базы данных заключается в том, что объекты реального мира и взаимосвязи между ними вовсе не обязаны иметь и, как правило, не имеют структуры, согласованной с реляционной моделью данных. Разработчик при проектировании должен придумать представление для реальных объектов и их связей в терминах таблиц, полей, атрибутов, записей и т. п., то есть в терминах абстракций реляционной модели данных.
Разработка эффективной базы данных состоит из нескольких этапов, один из которых – инфологическое моделирование.
Цель инфологического моделирования – обеспечение наиболее естественных для человека способов сбора и представления той информации, которую предполагается хранить в создаваемой базе данных. Поэтому инфологическую модель данных пытаются строить по аналогии с естественным языком (последний не может быть использован в чистом виде из-за сложности компьютерной обработки текстов и неоднозначности любого естественного языка). Основными конструктивными элементами инфологических моделей являются сущности, связи между ними и их свойства (атрибуты).
Целью разработки любой базы данных является хранение и использование информации о какой-либо предметной области. Для реализации этой цели имеются следующие инструменты:
Реляционная модель данных - удобный способ представления данных предметной области.
Язык SQL - универсальный способ манипулирования такими данными.
Для одной и той же предметной области реляционные отношения можно спроектировать множеством различных способов.
При разработке базы данных обычно выделяется несколько уровней моделирования, при помощи которых происходит переход от предметной области к конкретной реализации базы данных средствами конкретной СУБД. Можно выделить следующие уровни:
Сама предметная область.
Модель предметной области.
Логическая модель данных.
Физическая модель данных.
Собственно база данных и приложения.
Предметная область - это часть реального мира, данные о которой необходимо отразить в базе данных. Предметная область бесконечна и содержит как существенно важные понятия и данные, так и малозначащие или вообще не значащие данные. Таким образом, важность данных зависит от выбора предметной области.
Модель предметной области - это знания о предметной области. Знания могут быть как в виде неформальных знаний в мозгу эксперта так и выражены формально, при помощи каких-либо средств. В качестве таких средств могут выступать текстовые описания предметной области, наборы должностных инструкций, правила ведения дел в компании и т.п. Текстовый способ представления модели предметной области крайне неэффективен. Гораздо более информативными и полезными при разработке баз данных являются описания предметной области, выполненные при помощи специализированных графических нотаций. Имеется большое количество методик описания предметной области. Из наиболее известных можно назвать методику структурного анализа SADT и основанную на нем IDEF0, диаграммы потоков данных Гейна-Сарсона, методику объектно-ориентированного анализа UML, и др. Модель предметной области описывает процессы, происходящие в предметной области и данные, используемые этими процессами. От того, насколько правильно смоделирована предметная область, зависит успех дальнейшей разработки приложений.
Логическая модель описывает понятия предметной области, их взаимосвязь, а также ограничения на данные, налагаемые предметной областью.
Логическая модель данных является начальным прототипом будущей базы данных. Логическая модель строится в терминах информационных единиц, но без привязки к конкретной СУБД. Более того, логическая модель данных необязательно должна быть выражена средствами именно реляционной модели данных. Основным средством разработки логической модели данных в настоящий момент являются различные варианты ER-диаграмм (Entity-Relationship, диаграммы сущность-связь). Одну и ту же ER-модель можно преобразовать как в реляционную модель данных, так и в модель данных для иерархических и сетевых СУБД, или в постреляционную модель данных.
Решения, принятые на предыдущем уровне, при разработке модели предметной области, определяют некоторые границы, в пределах которых можно развивать логическую модель данных, в пределах же этих границ можно принимать различные решения.
Физическая модель данных описывает данные средствами конкретной СУБД. Отношения, разработанные на стадии формирования логической модели данных, преобразуются в таблицы, атрибуты становятся столбцами таблиц, для ключевых атрибутов создаются уникальные индексы, домены преображаются в типы данных, принятые в конкретной СУБД.
Ограничения, имеющиеся в логической модели данных, реализуются различными средствами СУБД, например, при помощи индексов, декларативных ограничений целостности, триггеров, хранимых процедур. При этом решения, принятые на уровне логического моделирования определяют некоторые границы, в пределах которых можно развивать физическую модель данных.
Собственно база данных и приложения. Как результат предыдущих этапов появляется собственно сама база данных. База данных реализована на конкретной программно-аппаратной основе, и выбор этой основы позволяет существенно повысить скорость работы с базой данных. Например, можно выбирать различные типы компьютеров, менять количество процессоров, объем оперативной памяти, дисковые подсистемы и т.п. Очень большое значение имеет также настройка СУБД в пределах выбранной программно-аппаратной платформы.
Для того чтобы оценить качество принимаемых решений на уровне логической модели данных, необходимо сформулировать некоторые критерии качества в терминах физической модели и конкретной реализации и посмотреть, как различные решения, принятые в процессе логического моделирования, влияют на качество физической модели и на скорость работы базы данных.
С точки зрения получения качественной базы данных важными являются параметры:
Адекватность базы данных предметной области.
Легкость разработки и сопровождения базы данных.
Скорость выполнения операций обновления данных (вставка, обновление, удаление кортежей).
Скорость выполнения операций выборки данных.
База данных должна адекватно отражать предметную область. Это означает, что должны выполняться следующие условия:
Состояние базы данных в каждый момент времени должно соответствовать состоянию предметной области.
Изменение состояния предметной области должно приводить к соответствующему изменению состояния базы данных
Ограничения предметной области, отраженные в модели предметной области, должны некоторым образом отражаться и учитываться базе данных.
Практически любая база данных, за исключением совершенно элементарных, содержит некоторое количество программного кода в виде триггеров и хранимых процедур.
Очевидно, что чем больше программного кода в виде триггеров и хранимых процедур содержит база данных, тем сложнее ее разработка и дальнейшее сопровождение.
На уровне логического моделирования мы определяем реляционные отношения и атрибуты этих отношений. На этом уровне невозможно определить какие-либо физические структуры хранения (индексы, хеширование и т.п.). Единственное, чем можно управлять - это распределением атрибутов по различным отношениям. Можно описать мало отношений с большим количеством атрибутов, или много отношений, каждое из которых содержит мало атрибутов. Таким образом, необходимо попытаться ответить на вопрос - влияет ли количество отношений и количество атрибутов в отношениях на скорость выполнения операций обновления данных.
В базах данных, требующих постоянных изменений (складской учет, системы продаж билетов и т.п.) производительность определяется скоростью выполнения большого количества небольших операций вставки, обновления и удаления.
Скорость выполнения операции вставки уменьшается при увеличении количества индексов у таблицы и мало зависит от числа строк в таблице.
Скорость выполнения операций обновления и удаления также уменьшается при увеличении количества индексов у таблицы и мало зависит от числа строк в таблице.
Чем больше атрибутов имеют отношения, разработанные в ходе логического моделирования, тем медленнее будут выполняться операции обновления данных, за счет затраты времени на перестройку большего количества индексов.
Одно из назначений базы данных - предоставление информации пользователям. Информация извлекается из реляционной базы данных при помощи оператора SQL - SELECT. Одной из наиболее дорогостоящих операций при выполнении оператора SELECT является операция соединение таблиц. Таким образом, чем больше взаимосвязанных отношений было создано в ходе логического моделирования, тем больше вероятность того, что при выполнении запросов эти отношения будут соединяться, и, следовательно, тем медленнее будут выполняться запросы. Таким образом, увеличение количества отношений приводит к замедлению выполнения операций выборки данных, особенно, если запросы заранее неизвестны.