Принципы организации электронного курса «Базы данных»
Швецов Владимир Иванович профессор, д.т.н.,
Национальный исследовательский Нижегородский государственный университет
им. Н.И.Лобачевского, проспект Гагарина,23, Нижний Новгород,603950, 8(831)4623356 [email protected]
Аннотация
Последние десятилетия характеризуются резким ростом количества создаваемых информационных систем организационного управления. Важнейшей структурной частью таких систем являются базы данных, создаваемые с использованием систем управления базами данных (СУБД), поэтому проблемы обучения созданию баз данных и работе с ними весьма актуальны. В статье рассматриваются основные принципы построения электронного курса «Базы данных».
Цель данного курса состоит в формировании концептуальных представлений о принципах построения баз данных, систем управления базами данных, математических моделях, описывающих базу данных, принципах проектирования баз данных, а также в анализе основных технологий реализации баз данных. В задачи курса входит изучение процесса проектирования базы данных, включающее формализацию описания предметной области, разработку концептуальной модели и ее специфицирование к конкретной модели данных СУБД. Рассмотрение указанных вопросов иллюстрируется на примерах СУБД ACCES и MS SQL-Server.
The last decades are characterized by a sharp increase in the number of information management systems being created. The most important structural part of such systems are databases created using database management systems (DBMS), so the problems of learning to create databases and to work with them are very relevant. The article considers the basic principles of building an electronic course "Databases". The purpose of this course is to form conceptual notions about the principles of building databases, database management systems, mathematical models describing the database, principles of database design; and also in the analysis of the basic technologies for database implementation. The objectives of the course include the study of the process of database design, including the formalization of the description of the subject area, the development of a conceptual model and its specification to a particular DBMS data model. Consideration of these issues is illustrated by the examples of DBMS ACCES and MS SQL-Server.
Ключевые слова
электронное обучение, базы данных, проектирование баз данных, системы управления базами данных
e-leaning, database, database design, database management systems
История создания учебного пособия по курсу.
Несмотря на то, что вопросам создания баз данных посвящено большое количество научных монографий, а описанию программных систем управления базами данных - еще большее количество литературы по конкретной работе в соответствующей среде (в значительной степени технологические инструкции по применению), учебной литературы для студентов, в которой в доступной форме раскрывались бы все аспекты работы по созданию баз данных (и научные и технологические) практически нет. В 2004 году к автору этой статьи, много лет читающему курс «Базы данных» в Нижегородском государственном университете имени Н.И.Лобачевского, обратился один из руководителей Нижегородского отделения компании INTEL, крайне заинтересованного в качественной подготовке студентов в области программирования, с просьбой подготовить соответствующее учебное пособие. В результате появилось учебное пособие [1] , рекомендованное Научно-методическим советом по прикладной математике и информатике УМО университетов РФ в качестве учебного пособия для студентов, обучающихся по направлениям «Прикладная математика и информатика». В 2008 году Российское отделение компании MICROSOFT объявило конкурс на создание электронных учебных пособий по информационным технологиям. Представленный автором курс «Базы данных» стал победителем конкурса по базам данных и в соответствии с условиями конкурса был передан издательству ООО «ИНТУИТ.РУ» для размещения во Всемирной сети WWW, в том числе на сайтах проекта ИНТУИТ.РУ (www.intuit.ru) [2] и библиотеке учебных курсов MSDN AA.
В рамках национального открытого университета информационных технологий ИНТУИТ с 2008 года по настоящее время по данным портала intuit.ru с электронным курсом занималось 12399 студентов, 3308 успешно закончили курс, оценка курса по пятибалльной шкале 4,09-4,34.
В 2015 году в рамках выполняемой Нижегородским госуниверситетом федеральной Программы повышения конкурентоспособности Российских университетов среди ведущих мировых научно-образовательных центров (Программа 5-100) электронный курс был существенно переработан, дополнен и размещен на сайте ННГУ для студентов университета [3].
В 2016 году автору курса поступило предложение от издательства «ЛАНЬ» (Санкт-Петербург) об издании учебника по базам данных, над которым в настоящее время ведется работа.
Основные цели и задачи представляемого курса.
Последние десятилетия в области программирования характеризуются резким ростом количества создаваемых информационных систем организационного управления. Практически в каждой организации функционирует (или создается) такая система (или её элементы). Важнейшей структурной частью информационных систем являются базы данных, создаваемые и функционирующие на основе использования специализированных программных систем - систем управления базами данных.
Цель данного курса состоит в формировании концептуальных представлений об основных принципах построения баз данных, систем управления базами данных; о математических моделях, описывающих базу данных; о принципах проектирования баз данных; а также анализе основных технологий реализации баз данных.
Главной задачей учебного курса является представление слушателю фундаментальных понятий, лежащих в основе баз данных и систем управления базами данных, и иллюстрация способов реализации соответствующих понятий в конкретных
программных системах.
В задачи курса входит изучение процесса проектирования базы данных, включающее формализацию описания предметной области (разработку концептуальной модели), ее специфицирование к конкретной модели данных СУБД, формирование базы данных, программирование запросов к базе данных. В результате освоения дисциплины обучающийся должен знать:
■ фундаментальные понятия, лежащие в основе баз данных и систем управления базами данных, и способы реализации соответствующих понятий в конкретных программных системах;
■ теоретические основы организации баз данных и систем управления базами данных;
■ модели организации работы пользователей с базой данных;
■ этапы моделирования базы данных;
■ особенности реляционного моделирования;
■ реализация языка запросов к базам данных (SQL);.
■ основные элементы программных систем Access и MS SQL-сервер,
■ тенденции развития основных понятий представления данных и интегрирования данных.
Главным итогом изучения курса должна стать макетная база данных, построенная студентом для одной из предлагаемых в пособии предметных областей в конкретной программной системе управления базами данных, и реализован ряд запросов к этой базе данных. При этом для выбранной предметной области должны быть выполнены следующие действия:
■ анализ информационного представления предметной области и информационных потребностей,
■ представлено формализованное описание соответствующих представлений (ER-диаграмма);
■ представлен результат представления внешней модели средствами модели данных выбранной СУБД;
■ загружены макетные данные в базу данных;
■ запрограммированы типовые запросы к макетной базе данных.
Структура курса
В состав курса входит 16 лекций, контрольные тесты и лабораторные работы. Тесты служат для контроля за усвоением фундаментальных понятий, лежащих в основе баз данных и систем управления базами данных, и способов реализации соответствующих понятий в конкретных программных системах.
К каждой лекции сформулированы 8 заданий (вопросов) по этой лекции. Для каждого задания сформулировано 3 варианта тестов. В каждом тесте 4 варианта ответа, причем верных ответов может быть один или несколько. Два задания к каждой лекции приводятся в курсе для апробирования студентами, остальные задания используются для итогового контроля. Опыт приема экзамена (или зачета) показывает, что такое большое количество контрольных вопросов с многозначными ответами весьма эффективно позволяет оценивать реальные знания студентами всех элементов курса.
Важнейшим элементом курса является цикл лабораторных работ по проектированию и созданию макетной базы данных. Именно лабораторные работы позволяют студенту получить возможность апробирования полученных знаний на практике (для макетного примера), получить навыки проектирования и программирования баз данных. В качестве примера конкретных систем управления базами данных для выполнения лабораторных работ в курсе рассматривается
система Access, на студенты могут также выполнять работы в свободно распространяемой системе My SQL и любой известной студенту СУБД. Студент допускается к экзамену (зачету) только после сдачи отчета по всему циклу лабораторных работ.
Разделы курса
1. Введение в базы данных. Общая характеристика основных понятий обработки
данных (лекции 1-3).
1.1. Развитие основных понятий представления данных. Основные понятия программирования, связанные с данными. Понятие переменной, понятие массива. Появление новых понятий программирования (поле, запись, файл) как следствие расширения круга решаемых задач и их отражения в системах программирования. Использование несколькими задачами общих данных. Интегрирование данных. База данных. Банк данных.
1.2. Системы управления базами данных как интерфейс между прикладными программами и базами данных. Основные функции систем управления базами данных с иллюстрацией сценариев их реализации в конкретных СУБД.. Требования, предъявляемые к современным средствам хранения данных. Краткий обзор наиболее распространенных СУБД для персональных ЭВМ.
1.3. Проблема целостности базы данных. Транзакции и блокировки.
1.4. Различные архитектурные решения, используемые при реализации многопользовательских СУБД. Централизованная архитектура. Технология с сетью и файловым сервером (архитектура «файл-сервер»). Технология «клиент - сервер». Трехзвенная (многозвенная) архитектура «клиент - сервер». Краткая характеристика современных СУБД ( настольные СУБД, серверные СУБД).
1.5. Различные представления о данных в базах данных. Трехуровневая архитектура баз данных (внешнее представление, концептуальная модель, структура хранения).
1.6. Основные этапы проектирования базы данных. Жизненный цикл базы данных (создание, апробация, исправление ошибок, опытная эксплуатация, сопровождение).
2. Концептуальное моделирование базы данных (лекции 4-6).
2.1. Первая стадия концептуального проектирования базы данных (концептуальное моделирование).
2.1.1 Описание информационного представления предметной области.
ER-диаграмма. Формальное описание предметной области. Основные
используемые понятия (сущность, связь, типы связей).
2.1.2. Описание информационного представления предметной области.
Атрибуты.
2.1.3. Описание информационных потребностей пользователя. Ключи.
Связи.
2.1.4. Построение ER-диаграмм.
2.1.5. Выявление и моделирование сущностей и связей.
2.1.6. Построение концептуальной модели. Моделирование локальных
представлений. Варьирование понятиями «атрибут», «сущность», «связь».
Объединение локальных моделей. Идентичность. Агрегация. Обобщение.
2.1.7. Пример построения диаграммы «сущность - связь».
2.1.8. Ограничения целостности. Внешние ограничения. Ограничения,
описанные с помощью специальных конструкций.
2.2. Вторая стадия концептуального проектирования (модели данных СУБД.
представление концептуальной модели средствами модели данных СУБД). 2.2.1. Модели данных СУБД как инструмент представления концептуальной модели.
2.2.1.1 Общие представления о модели данных СУБД. Основные используемые понятия (элемент, запись, файл, группа). Основные составляющие описания.
2.2.1.2. Сетевая модель данных. Представление связей. Представление концептуальной модели средствами модели.
2.2.1.3. Иерархическая модель данных. Представление связей. Представление концептуальной модели средствами модели.
2.2.1.4. Реляционная модель данных. Представление концептуальной модели средствами модели
2.2.15. Многомерная модель данных. OLAP-технология. 2.3. Средства автоматизированного проектирования концептуальной модели.
3. Формализация реляционной модели (лекции 7-9).
3.1. Формализованное описание отношений и схемы отношений. Свойства отношений.
3.2. Манипулирование данными в реляционной модели. Реляционная алгебра. Реляционное исчисление.
3.3. Операции реляционной алгебры. Примеры представления запросов как последовательность формальных операций реляционной алгебры.
3.4. Использование формального аппарата для оптимизации схем отношений.
3.4.1. Проблема выбора рациональных схем отношений. Нормальные формы. Первая нормальная форма.
3.4.2. Функциональные зависимости (зависимости между атрибутами отношения). Ключи.
3.4.3. Правила вывода.
3.4.3. Декомпозиция схемы отношения.
3.4.4. Выбор рационального набора схем отношений путем нормализации. Вторая нормальная форма. Третья нормальная форма. Нормальная форма Бойса-Кодда.
3.4.5. Пример нормализации до 3 НФ.
3.4.6. Целостная часть реляционной модели. Реализация условия целостности данных в современных СУБД.
4. Физические модели данных (структуры хранения) (лекции 10-11).
4.1. Структура памяти ЭВМ. Внешняя и оперативная память.
4.2. Представление экземпляра логической записи в оперативной памяти.
4.3. Организация обмена между оперативной и внешней памятью.
4.4. Структуры хранения данных во внешней памяти ЭВМ.
4.4.1. Последовательное размещение физических записей. Оценка числа действий при выполнении основных операций поиска данных, чтения, занесения данных, модификации (корректировки), удаления.
4.4.2. Размещение физических записей в виде списковой структуры. Оценка числа действий при выполнении основных операций поиска данных, чтения, занесения данных, корректировки, удаления.
4.4.3. Использование индексов (индексирование). Оценка числа действий при выполнении основных операций поиска данных, чтения, занесения данных, корректировки, удаления.
4.4.4. В-дерево. Оценка числа действий при выполнении основных операций поиска данных, чтения, занесения данных, корректировки, удаления.
4.4.5 Размещение записей с использованием хэширования. Оценка числа действий при выполнении основных операций поиска данных, чтения, занесения данных, корректировки, удаления. 4.4.6. Комбинированные структуры хранения.
5. Анализ современной технологии реализации баз данных. Языки и стандарты (лекции 12-14).
5.1. Структура современной СУБД на примере Microsoft SQL Server 2008.
5.1.1 Общая структура СУБД.
5.1.2. Архитектура базы данных. Логический уровень.
5.1.3. Архитектура базы данных. Физический уровень. Страницы. Экстенты. Представление таблиц на физическом уровне в СУБД MS SQL-сервер 2008. Управление страницами и экстентами в СУБД MS SQL-сервер 2008.
5.2. Программное обеспечение работы с современными базами данных.
5.2.1. Основные задачи программного обеспечения баз данных.
5.2.2. Проблемы создания и ведения реляционных баз данных.
5.2.3. Понятие языка SQL. Основное отличие языка SQL от процедурных языков программирования. Основные части SQL. История возникновения и стандарты языка SQL. Достоинства языка SQL. Общая характеристика SQL.
5 .3. Основные операторы языка SQL. Интерактивный SQL.
5.3.1. Общее представление об основных операторах языка SQL.
5.3.2. Интерактивный режим работы с SQL (интерактивный SQL).
5.3.3. Использование языка SQL для выбора информации из таблицы.
5.3.4. Использование SQL для выбора информации из нескольких таблиц.
5.3.5. Использование SQL для вставки, редактирования и удаления данных в таблицах.
5.3.5. Язык SQL и операции реляционной алгебры. 5.4. Использование языка SQL в прикладных программах.
5.4.1. Программный (встроенный) SQL.
5.4.2. Статический SQL.
5.4.3. Динамический SQL.
5.4.4. Интерфейсы программирования приложений (API). DB-Library, ODBC, OCI, JDBC.
6 Направления развития баз данных (лекции 15-16).
6.1. Объектно-ориентированный подход к организации баз данных.
6.2. Распределенные базы данных.
6.3. Хранилища данных.
Основная учебная литература к курсу [1-5], дополнительные монографии [6-20].
Лабораторный практикум
Основной целью данного лабораторного практикума является приобретение практических навыков использования: полученных теоретических знаний об основных принципах построения баз знаний и СУБД, а также принципах проектирования баз данных.
Для реализации этой цели в рамках настоящего лабораторного практикума рассматриваются задания, направленные на:
^ приобретение практических навыков анализа и моделирования предметной области;
S приобретение навыков работы с одной из наиболее распространенных настольных СУБД MS Access или СУБД Microsoft SQL Server 2008;
S изучение подхода к обработке данных на основе применения структурированного языка запросов SQL;
Лабораторный практикум предполагает последовательное выполнение трех циклов лабораторных работ, моделирующих определенную предметную область.
В первом цикле работ (работы 1, 2) студенты приобретают навыки анализа и моделирования предметной области, а также знакомятся с работой в настольной СУБД MS Access или с СУБД Microsoft SQL Server 2008.
В первой работе студент должен, учитывая возможные концептуальные требования пользователей, построить обобщенную концептуальную модель. Далее соответствующая модель должна быть представлена средствами реляционной модели данных. Путем нормализации полученная концептуальная модель должна быть приведена к третьей нормальной форме или к нормальной форме Бойса-Кодда. Вторая работа посвящена дальнейшему анализу построенной реляционной модели и ее реализации с использованием либо MS Access либо MS SQL Server 2008. В рамках этой работы с использованием указанных СУБД в компьютере создаются структуры соответствующих таблиц, производится ввод данных в таблицы (возможные примеры конкретных данных для заполнения таблиц представляются самим студентом
Во втором цикле лабораторных работ (работы 3, 4) рассматривается реализация возможных запросов пользователя к таблицам (базам данных). Здесь студент должен реализовать соответствующие запросы на языке SQL и создать простой интерфейс пользователя. Студенты самостоятельно формируют различные SQL-запросы, получая навыки решения конкретных практических задач.
В третьем цикле лабораторных работ (работы 5,6) студенты самостоятельно расширяют предметную область (или пользуются предложенным им вариантом расширения). В рамках этой лабораторной работы производится модифицирование результатов лабораторных работ 1 -4 с учетом расширенной предметной области (строятся измененные диаграммы «сущность-связь», изменяется структура баз данных, модифицируются написанные ранее запросы к базе данных и создаются новые.
Приведем описание лабораторных работ и примеры их выполнения.
Лабораторная (самостоятельная) работа №1 Цель работы: приобретение навыков анализа предметной области и построения
концептуальной модели. Содержание работы: Анализ текстового описания предметной области. Построение
концептуальной модели. Задания:
1. Выделить основные абстракции (сущность, атрибут, связь) в предметной области и определить их параметры.
2. Сформировать максимально полный перечень возможных запросов к базе данных на основе анализа предметной области.
3. Построить концептуальную модель в виде ER-диаграммы.
4. Представить концептуальную модель в терминах реляционной модели.
5. Описать домены (допустимые множества значений, которые могут принимать атрибуты), указывая типы соответствующих данных и их характеристики.
6. Определить ключи и внешние ключи (если они есть).
7. Выписать функциональные зависимости (рассматривая возможные значения полей таблицы).
8. Привести полученную концептуальную модель к третьей нормальной форме или к нормальной форме Бойса-Кодда (показать, что она находится в
соответствующей нормальной форме).
Пример выполнения лабораторной (самостоятельной) работы №1
Описание предметной области
В вузе имеется несколько факультетов, на которых обучаются студенты. Студенты сдают экзамены по разным предметам и получают соответствующие оценки. Известен перечень экзаменов и возможные значения оценок.
Содержание работы: Анализ текстового описания предметной области. Построение концептуальной модели.
Задания:
1. Выделить основные абстракции (сущность, атрибут, связь) в предметной области и определить их параметры.
Определим следующие сущности: СТУДЕНТ, ЭКЗАМЕН, ОЦЕНКА Определим атрибуты сущностей. Пусть для упрощения сущность СТУДЕНТ характеризуется только фамилией. Фамилию мы и возьмем в качестве атрибута. Так как фамилия может неоднозначно идентифицировать объект, введем дополнительный атрибут Код студента, уникальный для каждого студента. Таким образом, сущность СТУДЕНТ характеризуется двумя атрибутами код студента, фамилия.
Аналогично определим сущность ЭКЗАМЕН с атрибутами код экзамена, предмет, дата экзамена и сущность ОЦЕНКА с атрибутом значение оценки (оценка). Между этими сущностями существуют следующие связи: студент сдавал экзамен, студент получил оценку, по экзамену получены следующие оценки.
2. Сформировать максимально полный перечень возможных запросов к базе данных на основе анализа предметной области.
По смыслу задачи к базе данных возможны следующие запросы:
■ Какие оценки получил студент с заданной фамилией (кодом);
■ Какие студенты получили заданное значение оценки;
■ Какие экзамены сдал студент с заданной фамилией (кодом);
■ Какую оценку по конкретному предмету получил студент с заданной фамилией (кодом).
В данном примере остановимся на этих запросах.
3. Построить концептуальную модель в виде ER -диаграммы. Нарисуем возможный вариант ER -диаграммы.
СТУДЕНТ МЫ ЭКЗАМЕН
Код студента Фамилия Сдача экзамена Код экзамена Предмет Дата
МЫ Получена оценка Оценка по экзамену ЛГ.М
ОЦЕНКА
Оценка
Рис.1. ЕЯ-диаграмма концептуальной модели
По этой диаграмме можно ответить на все запросы, кроме последнего. В лекционном курсе в этом случае предлагается ввести новую агрегированную сущность. Определим эту сущность как ЭКЗАМЕНАЦИОННАЯ
ВЕДОМОСТЬ с атрибутами: ^ код студента, ^ фамилия, ^ код экзамена, ^ предмет, ^ дата экзамена, ^ оценка.
Нарисуем второй вариант ER -диаграммы:
ЭКЗАМЕНАЦИОННАЯ ВЕДОМОСТЬ
Код студента Фамилия Код экзамена Предмет Оценка
Рис.2. Второй вариант ER-диаграммы концептуальной модели
По этой диаграмме можно ответить на все вопросы, но здесь очевидно дублирование информации и возможны аномалии удаления, добавления. 4. Представить концептуальную модель в терминах реляционной модели.
В терминах концептуальной модели эта модель представляется следующей таблицей:
Рис.3. Вид таблицы - концептуальная модель в терминах реляционной
модели БД
5. Описать домены (допустимые множества значений, которые могут принимать атрибуты), указывая типы соответствующих данных и их характеристики.
S Код студента принимает значения из множества целых чисел,
максимальная длина числа 4 знака. S Фамилия принимает символьное значение, максимальная длина 20 символов.
S Код экзамена принимает значения из множества целых чисел,
максимальная длина числа 4 знака. S Предмет принимает символьное значение, максимальная длина 20 символов.
S Дата экзамена принимает значение дата в формате 00.00.00. S Оценка принимает целое значение от 2 до 5.
6. Определить ключи и внешние ключи (если они есть).
Ключом данного отношения является совокупность атрибутов код студента, код экзамена (см. лекцию 8).
7. Выписать функциональные зависимости (рассматривая возможные значения полей таблицы).
Зависимости выписаны в лекции 8.
8. Привести полученную концептуальную модель к третьей нормальной форме или к нормальной форме Бойса-Кодда (показать, что она находится в соответствующей нормальной форме).
Приведение данного отношения к третьей нормальной форме описано в лекции 8. Исходное отношение приведено в к трем отношениям, каждое из
которых находится в третьей нормальной форме:
R1(КС, Ф), R3(КЭ, П, Д), R4(КС, КЭ, О). Заметим, что в отношении R4 атрибуты КС, КЭ являются внешними ключами, используемыми для установления связей с другими отношениями.
■ Отношение R1 представляет объект СТУДЕНТ с атрибутами: код студента (первичный ключ), фамилия.
Отношение R3 представляет объект ЭКЗАМЕН c атрибутами: код экзамена (первичный ключ), предмет, дата.
Отношение R4 представляет объект ОЦЕНКА c атрибутами: код студента (внешний ключ), код экзамена (внешний ключ), оценка. Первичный ключ здесь составной: код студента, код экзамена. Для наглядности представим полученную модель в виде ER -диаграммы (рис.4).
V
V
студент
РК код студента
фамилия
экзамен
РК код экзамена
предмет дата
оценка
РК код экзамена код студента
оценка
Рис.4. ЕЯ-диаграмма модели в 3-ей нормальной форме
Эта диаграмма и является нужным вариантом. Таким образом, полученная реляционная модель включает три отношения.
Лабораторная работа №2
Цель работы: приобретение навыков создания структуры реляционной базы данных и первоначальный ввод данных в базу данных с использованием СУБД MS Access или СУБД MS SQL Server 2008. Содержание работы: Создание структуры реляционной базы данных для построенной в лабораторной работе 1 концептуальной модели предметной области. Ввод данных в таблицы (данные представляются самим слушателем). Задания:
1. При помощи среды вышеуказанных СУБД создать структуры таблиц для представления предметной области в рамках реляционной модели с указанием типов данных и их характеристик.
2. Для каждой создаваемой таблицы:
2.1. Определить условия на значения и сообщения об ошибках некоторых полей.
2.2. Определить начальное значение для некоторых полей.
2.3. Задать ключ.
2.4. Задать внешний ключ (если он есть).
2.5. Определить (если это возможно) значения некоторых полей с помощью мастера подстановок.
2.6. Определить обязательные поля.
3. Определить схему базы данных, связи между таблицами и наложить условия целостности на таблицы, связанные отношением «один-к-
многим». Показать на примерах, что меняется при включении/выключении каждого из флажков «Обеспечение целостности данных», «Каскадное обновление связанных записей» и «Каскадное удаление связанных записей».
4. Ввести данные в таблицы. При вводе выяснить, что дает наложение условий на значения полей.
Пример выполнения лабораторной работы №2 (с использованием СУБД MS Access).
Задания:
1. При помощи среды MS Access создать структуры таблиц для представления предметной области в рамках реляционной модели с указанием типов данных и их характеристик.
Формирование структуры базы данных осуществляется с помощью средств СУБД MS Access в диалоговом режиме. На рис.5 представлено меню системы в процессе формирования структуры базы данных для вышеприведенного примера в лабораторной работе 1.
[* студент: таблица ^jfljx]
_ Имя поля Тип данных Описание У
3* ЗЯЕЯЗЯЕ Счетчик □
фамилия Текстовый _1
Z
_ zi
Свойства поля
Имя поля может состоять из 64 знаков с учетом пробелов. Для справки по именам попей нажмите клавишу Р1.
Рис. 5. Формирование структуры базы данных в СУБД Access
2. Для каждой создаваемой таблицы:
2.1 Определить условия на значения и сообщения об ошибках некоторых полей.
2.2 Определить начальное значение для некоторых полей.
2.3 Задать ключ.
2.4 Задать внешний ключ (если он есть).
2.5 Определить (если это возможно) значения некоторых полей с помощью мастера подстановок.
2.6 Определить обязательные поля.
Для примера определим соответствующие величины для одной из таблиц рассматриваемого примера - таблицы ЭКЗАМЕНЫ: Таблица: ЭКЗАМЕНЫ S Поле: Код_экзамена
o Тип: Длинное целое (4)
o Примечание: Поле имеет специальный тип «Счетчик» o Новые значения: Последовательные
Общие | подстановка | Размер поля Длинное целое
Новые значения Последовательные
Формат поля Подпись
Индексированное поле Да (Совпадения не допускаются) Смарт-теги ^И
o Примечание: Данное поле является ключом таблицы o Индексированное поле: Да (совпадения не допускаются) S Поле: Предмет
o Тип: Текстовый o Размер: 20 o Обязательное поле: Да S Поле: Дата
o Тип: Дата/время o Размер: 8
o Формат поля: Краткий формат даты o Обязательное поле: Да Аналогично определяются соответствующие поля и для остальных таблиц. 3. Определить схему базы данных, связи между таблицами и наложить условия целостности на таблицы, связанные отношением «один-к-многим». Показать на примерах, что меняется при включении/выключении каждого из флажков «Обеспечение целостности данных», «Каскадное обновление связанных записей» и «Каскадное удаление связанных записей».
3.1. Схема базы данных формируется слушателем с помощью средств MS Access.
Рис. 6. Схема данных
3.2. Наложить условия целостности на таблицы, связанные отношением «один-к-многим». Показать на примерах, что меняется при включении/выключении каждого из флажков «Обеспечение целостности данных», «Каскадное обновление связанных записей» и «Каскадное удаление связанных записей».
Таблица 1.
Условие обеспечения целостности данных на связи таблиц _«Студент-Оценка» и «Экзамен-Оценка»_
СТУДЕНТ - ОЦЕНКА
Код студента 1-... Код студента
Атрибуты Обеспечение целостности, каскадные обновления, каскадные удаления
Атрибуты один-ко-многим
ЭКЗАМЕН - ОЦЕНКА
Код экзамена 1-... Код экзамена
Атрибуты Обеспечение целостности, каскадные обновления, каскадные удаления
Атрибуты один-ко-многим
4. Ввести данные в таблицы. При вводе выяснить, что дает наложение условий на значения полей.
Как уже отмечалось, данные придумываются самим слушателем. Ввод данных осуществляется в диалоговом режиме средствами MS Access Пример выполнения лабораторной работы №2 (с использованием СУБД Microsoft SQL Server 2008).
Задания:
1. При помощи среды Microsoft SQL Management Studio создать структуры таблиц для представления предметной области в рамках реляционной модели с указанием типов данных и их характеристик. Формирование структуры базы данных осуществляется с помощью средств MS SQL Management Studio в диалоговом режиме. На рис. 7 представлено меню системы в процессе формирования структуры базы данных для вышеприведенного примера в лабораторной работе 1.
Рис. 7. Формирование структуры базы данных в MS SQL Management Studio
2. Для каждой создаваемой таблицы:
2.1 Определить условия на значения и сообщения об ошибках некоторых полей.
2.2 Определить начальное значение для некоторых полей.
2.3 Задать ключ.
2.4 Задать внешний ключ (если он есть).
2.5 Определить (если это возможно) значения некоторых полей с помощью мастера подстановок.
2.6 Определить обязательные поля.
Для примера определим соответствующие величины для одной из таблиц рассматриваемого примера- таблицы ЭКЗАМЕНЫ.
Таблица 2.
Задание полей таблицы «Экзамены»_
Поле Код экзамена
Тип Целое число (Int)
Примечание Данное поле является ключом
Индексированное таблицы
поле Да (уникальный индекс, совпадения
не допускаются)
Поле Предмет
Тип Текстовый
Размер 50
Обязательное поле 50 Да
Поле Дата
Тип Дата
Размер 8
Формат поля Краткий формат даты
Обязательное поле Да
Аналогично определяются соответствующие поля и для остальных таблиц.
3. Определить схему базы данных, связи между таблицами и наложить условия целостности на таблицы, связанные отношением «один-к-многим». Показать на примерах, что меняется при включении/выключении каждого из флажков «Обеспечение целостности данных», «Каскадное обновление связанных записей» и «Каскадное удаление связанных записей».
3.1. Схема базы данных формируется слушателем с помощью средств MS SQL Management Studio (рис. 8).
Рис. 8. Схема базы данных
3.2. Наложить условия целостности на таблицы, связанные отношением «один-ко-многим». Показать на примерах, что меняется при включении/выключении каждого из флажков «Обеспечение целостности данных», «Каскадное обновление связанных записей» и «Каскадное удаление связанных записей». Задание выполняется аналогично варианту реализации в MS Access (см. Талицу 1). 4. Ввести данные в таблицы. При вводе выяснить, что дает наложение условий на значения полей.
Как уже отмечалось, данные придумываются самим слушателем. Ввод данных осуществляется в диалоговом режиме средствами MS SQL Management Studio.
Лабораторная работа №3 Цель работы: приобретение навыков реализации запросов пользователя на выборку данных из таблиц, добавление, удаление и редактирование информации. Приобретение практических навыков использования языка SQL. Содержание работы: Работа со сформированной в лабораторной работе 2 базой данных:
■ Выборка данных из одной таблицы. Выбор отдельных полей таблицы. Квалифицированный выбор - предложение WHERE. Сложные условия (использование OR, AND, NOT).
■ Выборка данных из связанных таблиц. Работа с главными и подчиненными таблицами (Master-Detail). Создание вычислимых полей. Сортировка результатов запроса.
■ Проблема агрегирования данных. Изучение агрегатных функций (SUM, AVG, MAX, MIN, COUNT).
■ Подсчет простых итогов. Организация группировки. Группировка по нескольким полям.
■ Организация отбора при группировке. Создание перекрестных запросов.Создание новых таблиц.
■ Создание запросов на добавление, редактирование, удаление. Задания:
1. Простой выбор данных (SELECT, *, FROM, WHERE, ORDER BY, вычислимые поля, DISTINCT).
1.1. Создать простой запрос на выборку из одной таблицы. Включить несколько полей таблицы.
1.2. Включить в запрос все поля с помощью знака «*».
1.3. Создать запрос на выборку данных из двух связанных таблиц.
1.4. Выбрать несколько полей, по которым сортируется вывод.
1.5. Определить условия отбора («И» и «ИЛИ»). Создать не менее двух запросов.
1.6. Определить условия отбора с помощью параметра запроса.
1.7. Создать вычислимые поля.
1.8. Создать отсортированный по вычислимому полю запрос из нескольких таблиц, в котором определены условия «И» и «ИЛИ».
1.9. Использовать предложение DISTINCT.
2. Внешнее объединение таблиц.
2.1. Создать запрос на внешнее объединение таблиц.
2.2. Продемонстрировать использование предложений Is null, Is not null.
2.3. Использовать предложение LIKE.
2.4. Использовать оператор UNION.
3. Выбор данных с помощью группирующих запросов с условием (GROUP BY, HAVING, MIN(), MAX(), SUM(), COUNT(), ...).
3.1. Создать итоговый запрос, содержащий несколько итоговых цифр.
3.2. Создать простой группирующий запрос.
3.3. Создать группирующий запрос с группировкой по нескольким полям.
3.4. Создать группирующий запрос, в котором определяются условия, причем сначала выполняются вычисления, а затем происходит отбор.
3.5. Создать группирующий запрос, в котором определяются условия, причем сначала происходит отбор, а затем выполняются вычисления.
3.6. Создать группирующий запрос, в котором есть вычислимое выражение, содержащее несколько итоговых полей.
4. Выбор данных с помощью подзапросов.
4.1. Создать запрос с выбором при помощи In.
4.2. Использовать предложения ALL, ANY, EXISTS.
Пример выполнения лабораторной работы №3
Содержание работы: Работа со сформированной в лабораторной работе 2 базой данных. В рамках данной работы необходимо по запросам выбирать из базы данных необходимую информацию, используя язык запросов SQL. Полный перечень запросов приводится в задании к лабораторной работе 2. Приведем несколько примеров реализации запросов.
1. Вывести фамилию всех студентов.
SELECT фамилия FROM студент;
2. Вывести названия различных предметов, по которым сдаются экзамены в вуз.
SELECT DISTINCT предмет FROM экзамен;
3. Вывести всю возможную информацию об экзаменах, проводимых в вузе.
SELECT * FROM экзамены;
4. Вывести фамилии студентов и оценки, которые они получили на различных экзаменах.
SELECT фамилия, оценка FROM студент, оценка WHERE студент.код_студента = оценка.код_студента;
5. Вывести фамилии студентов и их оценки по математике. Отсортировать вывод по оценкам, внутри оценок - по фамилиям студентов.
SELECT фамилия, оценка, предмет
FROM студент, экзамен, оценка
WHERE студент.код_студента = оценка.код_студента
AND оценка.код_экзамена = экзамен.код_экзамена
AND предмет = 'Математика'
ORDER BY оценка DESC, фамилия;
6. Какие оценки получил студент Сергеев?
SELECT оценка
FROM студент, экзамен, оценка WHERE студент.код_студента = оценка.код_студента AND оценка.код_экзамена = экзамен.код_экзамена AND фамилия = «Сергеев»;
Лабораторная работа №4
Цель работы: разработка интерфейса пользователя для взаимодействия со
сформированной в лабораторной работе 2 базой данных. Создание форм. Содержание работы: Создание форм для ввода, редактирования и удаления записей.
Создание форм для навигации по базе данных и выполнения запросов. Задания:
1. Создать формы для ввода каждой из таблиц-справочников.
2. Создать сложную форму для таблиц, связанных отношением «один к многим».
3. Создать кнопочную форму, которая предоставляла бы доступ ко всем созданным формам и запросам.
4. Поместить в созданные формы кнопки навигации по записям и работы с формой (закрыть, напечатать, выйти из приложения).
5. Создать макрос для автоматической загрузки кнопочной формы при открытии базы данных.
Пример выполнения лабораторной работы №4 с использованием MS Access. Задания:
1. Построить интерфейс для созданной базы данных. Создать формы для ввода каждой из таблиц-справочников.
Рис.9. Кнопочная форма - главное меню.
добавления студентов
Пример выполнения лабораторной работы №4 с использованием MS SQL Server 2008.
Задания:
Построить интерфейс для созданной базы данных. Создать формы для ввода каждой из таблиц-справочников.
При выполнении примера 1 используется стандарт ODBC для доступа к
данным. В качестве клиентской части используется MS Access.
Для подсоединения к таблицам на сервере СУБД MS SQL 2008 нужно:
1. Меню Вставка -> Таблица -> Связь с таблицами
2. В диалоговом окне выбрать Тип файлов: Базы данных ODBC
3. Выбор источника данных: Источники данных Компьютера. Если Вы еще не создавали источника данных, нажмите кнопку Создать, если уже создали, выбирайте созданный и нажимайте кнопку Ок.
Лабораторная работа №5
Цель работы: приобретение навыков внесения необходимых изменений в структуру базы данных после изменения постановки исходной задачи (расширения предметной области). Модификация структуры базы данных. Модификация запросов к базе данных. Модификация существующего интерфейса.
Содержание работы: Анализ описания расширенной предметной области. Изменение структуры таблиц и обоснование изменений. Работа с измененной базой данных. Задания:
1. Проанализировать данные, описанные в расширенной предметной области. Определить необходимость изменения имеющихся таблиц и создания новых таблиц для представления предметной области в рамках реляционной модели.
2. Для каждой таблицы:
2.1. Определить условия на значения и сообщения об ошибках некоторых полей.
2.2 Определить начальное значение для некоторых полей.
2.3. Определить ключ.
2.4. Определить внешний ключ (если он есть).
2.5. Определить обязательные поля.
2.6. Определить схему базы данных, связи между таблицами и условия целостности на таблицы, связанные отношением «один к многим».
3. Ввести данные в таблицы. При вводе выяснить, что дает наложение условий на значения полей.
4. Адаптировать имеющиеся запросы к расширенной предметной области.
5. Реализовать новые запросы, необходимость которых вызвана расширением
предметной области.
6. Добавить новые интерфейсные формы, изменить существующие.
Эта работа предполагает изменение предыдущих результатов выполненных лабораторных работ 1-4, с учетом новых внешних требований, связанных с изменением постановки исходной задачи (расширением предметной области). По сути, в рамках этой работы необходимо еще раз выполнить все задания лабораторных работ 1 -4 для измененной постановки задачи (хотя естественно, какие-то таблицы, связи, тексты запросов и т. п. могут остаться такими же, как и для первоначальной задачи).
В лекционном курсе приводится краткое описание 30 примеров макетных предметных областей, которые используются студентами при выполнении лабораторных работ: Страховая компания, Гостиница, Ломбард, Реализация готовой продукции, Ведение заказов, Бюро по трудоустройству ,Нотариальная контора, Фирма по продаже запчастей, Курсы повышения квалификации, Определение факультативов для студентов, Распределение учебной нагрузки, Распределение дополнительных обязанностей, Техническое обслуживание станков Туристическая фирма, Грузовые перевозки, Учет телефонных переговоров, Учет внутриофисных расходов, Библиотека, Прокат автомобилей, Выдача банком кредитов, Инвестирование свободных средств, Занятость актеров театра, Платная поликлиника, Анализ динамики показателей финансовой отчетности различных предприятий, Учет телекомпанией стоимости прошедшей в эфире рекламы, Интернет-магазин, Ювелирная мастерская, Парикмахерская, Химчистка, Сдача в аренду торговых площадей.
Заключение
Описан электронный обучающий комплекс, представляющий слушателю возможность изучения фундаментальных понятий, лежащих в основе баз данных и систем управления базами данных, реализации соответствующих понятий в конкретных системах управления базами данных и позволяющий пользователю апробировать полученные знания при создании макетных баз данных.
Литература:
1. Швецов В.И., Визгунов А.Н., Мееров И.Б. Базы данных. Н.Новгород: Изд-во ННГУ, 2004.-271 с.
2. Академия MICROSOFT: Швецов В.И. «Базы данных». URL: http://www.intuit.ru/studies/courses/508/364/info (дата обращения 29.11.2017).
3. Швецов В.И. Электронный учебно-методический комплекс «Технологии баз данных». Система электронного обучения ННГУ. URL: http://www.unn.ru/e-learning/course/view.php?id=5. (дата обращения 29.11.2017).
4. Карпова Т. Базы данных. Модели, разработка, реализация. СПб.: Питер, 2001.-304 с.
5. Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. Базы данных: Учебник для вузов. СПб.: КОРОНА принт, 2000. - 416 с.
6. Горев А., Ахаян Р., Макашарипов С. Эффективная работа с СУБД. СПб.: Питер, 1997. - 700 с.
7. Грофф Дж., Вайнберг П. Энциклопедия SQL. 3-е изд. СПб.: Питер, 2003.
8. Дейт К.Дж. Введение в системы баз данных.: Пер. с англ. - 6-е изд. - К.: Диалектика, 1998. - 784 с.: ил. .
9. Когаловский М.Р. Технология баз данных на персональных ЭВМ. - М.: Финансы
и статистика, 1992. - 224 с.
10. Ульман Дж. Основы систем баз данных: Пер. с англ./Под ред. М.Р. Когаловского. - М.: Финансы и статистика, 1983. - 334 с.
11. Ульман Дж.Д., Уидом Дж. Введение в системы баз данных: Пер. с англ. - М.: Лори, 2000. - 374 с.
12. Конноли Т., Бэгг К., Страчан А. Базы данных: проектирование, реализация и сопровождение. Теория и практика. 2-е изд.: Пер. с англ. - М.: Издательский дом «Вильямс», 2000. - 1120 с.: ил.
13. Корнеев В.В., Гариев А.Ф., Васютин С.В., Райх В.В. Базы данных. Интеллектуальная обработка информации. - М.: Нолидж, 2000. - 352 с.
14. Крёнке Д. Теория и практика построения баз данных. 8-е издание. - СПб.: Питер, 2003. - 800 с.
15. Мартин Дж. Организация баз данных в вычислительных системах: Пер. с англ. /Под ред. А.А. Стогния и А.Л. Щерса. - М.: Мир, 1980. - 664 с.
16. Мейер Д. Теория реляционных баз данных: Пер. с англ. - М.: Мир, 1987. - 608 с.: ил.
17. Саймон А.Р. Стратегические технологии баз данных: менеджмент на 2000 год: Пер. с англ. /Под ред. и с предисл. М.Р. Когаловского. - М.: Финансы и статистика, 1999. - 479 с.: ил.
18. Хаббард Дж. Автоматизированное проектирование баз данных / Пер. с англ. под ред. А.Л. Щерса. - М.: Мир, 1984. - 296 с.
19. Хансен Г., Хансен Дж. Базы данных: разработка и управление: Пер. с англ. - М.: ЗАО «Издательство «БИНОМ», 1999. - 704 с.: ил.
20. Харрингтон Дж.Л. Проектирование реляционных баз данных. - М.: Лори, 2000. -230 с.