Системы управления базами данных Часть VI
БАЗы ДАННЫХ
Информационная система – система, реализующая автоматизированный сбор, обработку и манипулирование данными и включающая технические средства обработки данных, программное обеспечение и соответствующий персонал.
Цель любой информационной системы - обработка данных об объектах реального мира. Основой информационной системы является база данных.
База данных (БД) – это поименованная совокупность данных, отражающая состояние объектов и их отношений в рассматриваемой предметной области.
Под предметной областью принято понимать часть реального мира, подлежащего изучению для организации управления и, в конечном счете, автоматизации. Объектом (сущностью) предметной области называется элемент предметной области, информацию о котором мы сохраняем. Объектом может быть человек, предмет, событие. Каждый объект характеризуется рядом свойств – атрибутов. Атрибутом называется поименованная характеристика объекта. Например, объект студент, атрибуты – фамилия, имя, отчество и год рождения.
Главная цель создания баз данных состоит в обобществлении функций обновления, ведения и пополнения хранимой информации, а также справочной информации. База данных является одним из основных структурных компонентов автоматизированных систем управления (АСУ), систем автоматизации проектирования (САПР), обучающих систем (АОС) и др. Основное характерное свойство баз данных - их независимость от рабочих программ, с которыми они взаимодействуют. Эта независимость проявляется в возможности изменения содержания, объема и организации хранимой информации без последующей модификации рабочих программ, пользующихся данной информацией. Для обеспечения независимости баз данных необходимо хранить описание накопленной информации вместе с самой информацией, обеспечить возможность коллективного доступа к любой части хранимых сведений, а также строить рабочие программы таким образом, чтобы при их выполнении могла осуществляться настройка в соответствии с текущим состоянием базы данных. База данных является основной структурной частью банка данных, который может включать одну или несколько таких баз.
Знания – совокупность конкретных и обобщенных сведений об определенной сфере деятельности или части окружающего мира.
База знаний – совокупность данных и правил вывода, хранящихся в памяти ЭВМ.
Создавая БД, пользователь стремится упорядочить информацию по различным признакам и быстро производить выборку с произвольным сочетанием признаков. Большое значение при этом приобретает структурирование данных.
Структурирование данных – это введение соглашений о способах представления данных.
В современной технологии БД предполагается, что создание БД, ее поддержка и обеспечение доступа пользователей к ней осуществляется централизованно с помощью специального программного инструментария – системы управления БД.
Система управления БД (СУБД) – это комплекс программных и языковых средств, предназначенных для создания, ведения и совместного применения БД многими пользователями.
Классификация баз данных
По технологии обработки данных БД подразделяются на централизованныеи распределенные.
Централизованная БД хранится в памяти одной вычислительной системы. Если эта вычислительная система является компонентом сети ЭВМ, возможен распределенный доступ к такой базе. Такой способ использования БД часто применяется в локальных сетях ПК.
Распределенная БД состоит из нескольких возможно пересекающихся или даже дублирующих друг друга частей, хранимых в различных ЭВМ вычислительной сети. Работа с такой БД осуществляется с помощью системы управления распределенной БД (СУРБД).
По способу доступа к данным БД разделяются на БД с локальным доступом и БД с удаленным (сетевым) доступом.
Архитектура централизованных БД с сетевым доступом различается местом хранения информации и обработки информации. Различают следующие архитектуры:
Ø файл - сервер;
Ø клиент - сервер.
Архитектура файл – сервер предполагает выделение одной из машин сети в качестве центральной (сервер файлов). Здесь находится централизованная БД, которая совместно используется пользователями со своих рабочих станций. Запрашиваемые пользователями файлы БД передаются на рабочие станции, где и производится их обработка.
Архитектура клиент – сервер подразумевает, что центральная машина (сервер БД) помимо функции хранения информации, обеспечивает и ее обработку (поиск и извлечение данных). Запрашиваемые пользователем данные (а не файлы, как в случае архитектуры файл – сервер) передаются по сети от сервера пользователю (клиенту).
Модели данных
Ядром любой БД является модель данных. Модель данных – это совокупность структур данных, ограничений целостности и операций их обработки. Различают иерархическую, сетевую и реляционную модели данных.
6.2.1. Реляционная модель данных
Реляционная модель БД организуется и хранится в форме таблиц. Все современные БД (DBASE, PARADOX, АССESS) имеют реляционную модель данных. Понятие "реляционный" (relation (анг) – отношение) связано с разработками американца Е.Кодда, специалиста в области систем баз данных.
В реляционных БД выделяют следующие структурные элементы: таблица, запись, поле (рис.6.1).
Таблица - основной структурный объект БД. Таблица – это совокупность экземпляров записей одной структуры.
Запись - основной структурный элемент таблицы и является совокупностью логически связанных полей (строка таблицы).
Поле – элементарная единица логической организации данных, которая соответствует неделимой единице информации – реквизиту (столбец таблицы).
Таблица "Студент"
Рис.6.1. Пример реляционной таблицы
В таблице обязательно указываются поля, которые являются ключами. Ключ может быть первичным или вторичным.
Первичный ключ – это одно (простой ключ) или несколько полей (составной ключ), однозначно идентифицирующих запись. Такие поля не могут повторяться в различных записях (например, номер по порядку).
Вторичный ключ – это одно или несколько полей, которые выполняют роль поисковых или группировочных признаков, поэтому, в отличие от первичного ключа, значения вторичного ключа могут повторяться в различных записях. Таким образом, по значению первичного ключа можно найти уникальный (единственный) экземпляр записи, а по вторичному ключу несколько записей.
Каждая реляционная таблица представляет собой двумерный массив и обладает следующими свойствами:
Ø каждый элемент таблицы – один элемент данных;
Ø все столбцы в таблице однородные, т.е. все элементы в столбце имеют одинаковый тип (символьный, числовой, даты и времени и др.);
Ø каждый столбец имеет уникальное имя;
Ø одинаковые строки в таблице отсутствуют;
Ø порядок следования строк и столбцов может быть произвольным.
При описании реляционной модели часто используют понятия отношение, кортеж и домен. Отношения представлены таблицами, строки которых соответствуют записям (кортежам), а столбцы – полям, атрибутам отношений (доменам).
6.2.2. Иерархическая модель данных
Иерархические БД – базы, в которых используются структуры в виде деревьев. К основным понятиям иерархической структуры относятся: уровень, элемент (узел), связь. Дерево представляет собой иерархию элементов, называемых узлами. Узел – это совокупность атрибутов данных, описывающих некоторый объект. На самом верхнем уровне иерархии имеется один и только один узел – корень (рис.6.2) – уровень 1.
Рис.6.2. Иерархическая модель данных
Каждый узел, кроме корня, связан с одним узлом на более высоком уровне, называемом исходным для данного узла. Ни один элемент не имеет более одного исходного. Каждый элемент может быть связан с одним или несколькими элементами на более низком уровне (уровни 2, 3 и т.д.). Они называются порожденными. Таким образом, к каждой записи БД существует только один (иерархический) путь от корневой записи. Например, как видно из рис.6. для записи С4 путь проходит через записи А и В3. Применялась на носителях типа магнитной ленты.
6.2.3. Сетевая модель данных
Сетевая модель организует данные в виде сетевой структуры. Структура называется сетевой, если в отношениях между данными порожденный элемент имеет более одного исходного. Эта система отношений образует произвольную сеть. Допускается, что любой элемент сети может быть связан с любым количеством других элементов (рис.6.3).
Рис.6.3. Сетевая модель данных
Системы управления базами данных
Система управления базами данных представляет собой пакет программ, посредством которого реализуется централизованное управление БД и обеспечивается доступ к данным. СУБД реализует интерфейс между пользователем и БД. Посредством СУБД обеспечивается создание, загрузка и обновление данных, создание запросов, ввод, вывод, совместное использование и защита данных. Для этого СУБД обладает следующими средствами:
Ø средства задания (описания) структуры БД;
Ø средствами конструирования экранных форм для ввода, вывода и обработки данных в диалоговом режиме;
Ø средства создания запросов для выборки данных при заданных условиях, а также выполнения операций по их обработке;
Ø средства создания отчетов из БД для печати результатов работы с БД;
Ø языковые средства – макросы, встроенный алгоритмический язык (Visual Basic и др.), язык запросов (QBE – Query By Example, SQL – Structured Queries Language). Эти средства используются пользователями для создания нестандартных алгоритмов обработки данных.
Ø средства создания приложений пользователя, которые включают средства создания меню и позволяющие объединять различные операции с БД в единый технологический комплекс.
Проектирование баз данных
Проектирование БД включает:
1. анализ предметной области;
2. логическое проектирование.
6.4.1. Анализ предметной области
Первым этапом проектирования БД является анализ предметной области. На данном этапе анализируются запросы пользователей, выбираются информационные объекты и их атрибуты. Анализ предметной области обычно проходит в три этапа:
1) анализ концептуальных требований и информационных потребностей;
2) выявление информационных объектов и связей между ними;
3) построение концептуальной модели предметной области и проектирование концептуальной схемы БД.
6.4.1.1. Анализ концептуальных требований и информационных потребностей
На этом этапе выявляются требования пользователей к разрабатываемой БД (к вводу, хранению, обновлению, изменению и выводу информации). Требования могут быть уточнены при выполнении конкретных задач. Для примера можно привести часть вопросов к пользователям при составлении БД для учета студентов вуза (типа таблицы на рис.6.1).
Сколько студентов учится в вузе? Сколько факультетов в вузе? Какие формы обучения на каждом факультете? Сколько студентов на каждом факультете и курсе по каждой форме обучения? Сколько специальностей на каждом факультете? Сколько дисциплин читается на каждом курсе по каждой специальности и форме обучения? Сколько преподавателей в вузе? Как часто обновляется информация в БД? Сколько лекционных аудиторий и аудиторий для проведения семинарских и практических занятий? Сколько раз в день, сколько человек и кто пользуется БД?
Понятно, что этот ряд вопросов может быть продолжен в зависимости от целей, для которой создается БД (учета социологической информации, учебной успеваемости и т.д.).
6.4.1.2. Выявление информационных объектов и связей между ними
Второй этап анализа предметной области состоит в выборе информационных объектов, задании необходимых атрибутов для каждого объекта, выявление связей между объектами и их типов, определение ограничений, накладываемых на информационные объекты.
Проиллюстрируем выявление информационных объектов и связей между ними опять на примере БД для учета студентов вуза.
Объект – студент.
Атрибуты – номер, фамилия, имя, отчество, дата рождения, пол, факультет, специальность, отделение, год поступления, курс.
Объект сессия.
Атрибуты – номер, оценка 1, оценка 2, оценка 3 и т.д.
Объект стипендия.
Атрибуты – номер, результат, вид, сумма, надбавки.
Объект – преподаватель.
Атрибуты – код преподавателя, фамилия, имя, отчество, научная степень, звание, год рождения, факультет, кафедра.
Под ограничением целостности обычно понимают логические ограничения, накладываемые на конкретные значения атрибутов информационных объектов. Например, введем некоторые ограничения для некоторых атрибутов объекта студент:
1. Значение атрибута "пол" может принимать значение либо "мужской" либо "женский".
2. Значение атрибута "специальность" может принимать значение либо 060400, либо 021100.
3. Значение атрибута "отделение" может принимать значение либо "очное", либо "заочное".
4. Значение атрибута "курс" может изменяться от 1 до 6 (с учетом магистратуры).
6.4.1.3. Типы связей
Все информационные объекты предметной области, каким-то образом соотносятся друг с другом, т.е. связаны друг с другом. Различают следующие типы связей:
1. один к одному (1 : 1);
2. один ко многим (1 : М);
3. многие ко многим (М : М).
Связь один к одному (1 : 1) предполагает, что в каждый момент времени одному экземпляру информационного объекта А соответствует не более одного экземпляра информационного объекта Б и наоборот, например, связь между объектами Студент и Стипендия, где каждый студент имеет определенный набор оценок в каждую сессию, т.е.
Студент ↔ Стипендия.
Связь один ко многим (1 : М) предполагает, что в каждый момент времени одному экземпляру информационного объекта А соответствует 0 и более экземпляров объекта Б, но каждый экземпляр объекта Б связан не более чем с одним экземпляром объекта А, например, связь между объектами Стипендия и сессия, где установленный размер стипендии по результатам сдачи сессии может повторяться для различных студентов, т.е.
Стипендия ‹ — ›› сессия
Связь многие ко многим (М : М) предполагает, что в каждый момент времени одному экземпляру информационного объекта А соответствует 0 и более экземпляров объекта Б, и наоборот, например, связь между объектами Студент и преподаватель, т.к. один студент обучается у многих преподавателей и один преподаватель обучает многих студентов, т.е. Студент ‹‹ — ›› преподаватель.
6.4.1.4. Проектирование концептуальной схемы базы данных
Концептуальная модель или информационная структура БД включает описание информационных объектов и их взаимосвязей в рассматриваемой предметной области.
Концептуальная модель применяется для структурирования предметной области с точки зрения и с учетом информационных интересов пользователя и не зависит от программного обеспечения СУБД.
Концептуальная модель должна быть стабильной. Может изменяться программное обеспечение и аппаратные решения хранения информации, но концептуальная модель остается неизменной или расширяется за счет включения дополнительных данных.
Одной из самых распространенных моделей концептуальной схемы является модель "сущность – связь". Основными элементами данной модели являются сущности и связи. В качестве сущности могут выступать место, предмет, личность, явление. Так, для БД "Успеваемость" сущность (объект) – студент, а экземпляр сущности конкретный объект – Петров П.П.
6.4.2. Логическое проектирование
Основной задачей логического проектирования является разработка логической схемы, ориентированной на выбранную СУБД. Этот этап проектирования БД полностью ориентирован на инструментальные средства компьютера в отличие от анализа предметной области.
Этап логического проектирования включает:
Ø выбор конкретной СУБД;
Ø отображение концептуальной схемы на логическую схему;
Ø выбор ключей;
Ø описание языка запросов.
В случае выбора реляционной СУБД каждый прямоугольник концептуальной схемы (рис.6.4) отображается в таблицу. Столбцы в таблице отображают атрибуты сущности и имеют уникальные имена, например, как на рис.6.1.
6.5. Система управления базами данных Microsoft Access[1]
СУБД MS Access включает следующие объекты:
1.Таблицы.
2.Формы.
3.Запросы.
4.Отчеты.
5.Страницы.
6.Макросы.
7.Модули.
Первые четыре объекта – таблицы, формы, запросы и отчеты являются основными, поэтому внимании[[[е в данном учебном пособие будет уделено именно им.
Создание БД и работа с ней с помощью СУБД Access будем рассматривать на примере создания учебной БД "Успеваемость".
6.5.1. Запуск СУБД MS Access
Запуск СУБД MS Access осуществляется стандартно, как и любого Windows приложения. Запуск MS Access можно осуществить либо из пункта "Программы" или из раздела "Microsoft Office" пункта "Программы" главного меню Windows (кнопка "Пуск"), либо с помощью ярлыка на рабочем столе (рис.6.5).
Рис.6. 5. Формы запуска MS Access
Запустить MS Access.
После запуска MS Access у Вас должна появиться на экране картинка аналогичная рис.6.6.
Рис.6. 6. Интерфейс MS Access после запуска программы
В открывшемся окне слева (как на рис.6.6) или справа находится панель создания файла БД (если панель отсутствует, следует щелкнуть инструмент "Создать" в левом верхнем углу экрана на стандартной панели инструментов).
Программно БД MS Access находится в одном файле с расширением ".mdb", поэтому если необходимо открыть или создать БД, то следует, прежде всего, открыть или создать файл БД MS Access. На панели создания файла находится несколько разделов, которые позволяют открыть существующий файл БД (верхний раздел) и создать файл (нижние разделы).
Создание файла новой БД является следующим этапом в создании БД. Для этого следует выбрать пункт "Создание", "Новая база данных".
Отдать команду "Создание", "Новая база данных".
В результате выполнения команды "Создание", "Новая база данных" на экране появляется стандартное диалоговое окно создания и сохранения файла (рис.6.7).
Рис.6. 7. Диалоговое окно создание файла БД MS Access
По умолчанию файл обычно имеет имя "db1" и сохраняется в папке "Мои документы". В диалоговом окне создания файла следует задать его имя (внизу окна) и папку хранения (вверху окна). После ввода имени файла и указания папки его местонахождения следует щелкнуть кнопку "Создать".
Создать файл БД с именем – "Успеваемость". Файл должен находится в папке
"Мои документы" (рис.6.7).
В результате на экране появляется главное меню MS Access (рис.6.8), где слева приводятся главные объекты СУБД MS Access, а вверху операции работы с ними (создать, открыть и конструктор – изменение).
Рис.6.8. Главное меню СУБД MS Access
6.5.2. Создание таблиц
Основу реляционных БД составляют таблицы, которые по существу и являются БД. Создание таблиц можно осуществлять тремя способами (рис.6.9):
Ø в режиме конструктора;
Ø с помощью мастера;
Ø путем ввода данных.
Прежде чем разбирать достоинства каждого способа следует сказать несколько слов о полезных помощниках MS Access.
Помощники MS Access
В MS Access имеется целый ряд полезных помощников. Все они предназначены для облегчения работы с СУБД. Среди них можно выделить:
Ø карточки подсказки;
Ø мастера;
Ø конструкторы.
Карточки подсказки
Карточки подсказки могут дать совет при выполнении самых различных действий. Например, при создании таблицы необходимо задавать имена полей, и неправильное введенное имя поля автоматически вызывает соответствующую карточку подсказки (рис.6.9), где подробно изложены требования к именам полей таблицы.
Рис.6.9. Карточки подсказки
Мастера
В отличие от карточек подсказок Мастера не дают советы, а сами выполняют нужные действия посредством последовательного открытия диалоговых окон. Получив в результате диалога нужные сведения, Мастер выполняет все необходимые действия. С помощью Мастеров можно создавать таблицы, запросы, формы, отчеты. Конкретное использование того или иного Мастера диктуется конечной целью и трудоемкостью соответствующей технологии, поэтому при выполнении отдельных операций мы будем исходить из наиболее простого варианта достижения конечной цели.
Конструкторы
Конструктор MS Access - это инструмент аналогичный Мастеру и предназначенный для выполнения конкретной операции. В отличие от Мастера здесь не происходит диалог между пользователем и MS Access посредством диалоговых окон. Подразумевается, что пользователь знает, как выполнить то или иное действие для достижения определенного результата. Выбор между режимами Мастера и Конструктора происходит на основе простоты технологического процесса достижения поставленной цели.
Учитывая вышеизложенное, рассмотрим способы создания таблиц с помощью мастера и конструктора. Этапу создания таблиц с помощью СУБД MS Access предшествуют этапы анализа предметной области и логического проектирования, где определяется вид создаваемой таблицы (количество полей и их названия), и на этапе работы с СУБД MS Access пользователь уже предварительно знает, какие поля должны быть в таблице. Поэтому, в данном случае, лучше выбрать режим Конструктора. Если пользователь сомневается в выборе полей или их достаточности, то лучше использовать режим Мастера.
6.5.2.1. Режим Мастера
Режим Мастера вызывается (рис.6.10) либо непосредственно двойным щелчком на режиме "Создание таблицы с помощью мастера", либо выбором этого варианта одним щелчком, затем щелчок на кнопе "Создать" (рис.6.10, п.а) и затем в окне "новая таблица" выбор режима "Мастер таблиц" и щелчок на кнопке "Ок" (рис.6.10, п.б).
А б
Рис.6.10. Вызов Мастера таблиц
В результате проделанных операций Мастер таблиц открывает диалоговое окно по созданию таблиц (рис.6.11)
Рис.6.11. Начальное диалоговое окно Мастера создания таблиц
На первом этапе создания таблиц Мастер предлагает выбрать категорию (деловые или личные) и образец таблицы (список рассылки, контакты, клиенты и т.д. из соответствующего списка), а также образцы тех полей, которые требуются пользователю. Поля задаются с помощью кнопок и , которые соответственно позволяют выбрать одно поле или все поля. Обратные кнопки отменяют соответствующий выбор. Выбранные поля появляются в окне "Поля новой таблицы" (рис.6.12). Следует отметить, что отдельные выбранные поля можно переименовать с помощью кнопки "Переименовать поле…".
Выбрать категорию "Деловые", таблицу "Студенты", поля: "Код Студента",
"Имя", "Отчество", "Фамилия", "Адрес", "Номер Телефона", "Специализация" и переименовать поле "Специализация" в "Специальность" (рис.6.12).
Рис.6.12. Выбор категории, образца таблицы и требуемых полей с помощью Мастера создания таблиц
Для перехода на следующий шаг по созданию таблицы следует щелкнуть кнопку "Далее".
Щелкнуть кнопку "Далее"
На следующем шаге пользователь определяет название таблицы (по умолчанию стандартное, в нашем случае "Студенты") и режим выбора ключевого поля (автоматический или определяемый пользователем) (рис.6.13). В случае выбора автоматического режима СУБД MS Access выбирает либо первое поле, либо поле, имеющее тип "Счетчик". При выборе режима "Пользователь определяет ключ самостоятельно" пользователь задает как ключевое поле, так и тип кодирования каждой записи (последовательные числа, автоматически присваиваемые каждой записи, числа, вводимые пользователем при добавлении новых записей и сочетание чисел и букв при добавлении новых записей). Причем выбрать ключевое поле можно из списка полей (рис.6.14, 6.15).
Задать имя таблицы "Студенты" и ключевое поле "Код Студента". Перейти на
следующий шаг создания таблицы.
На следующем (завершающем) шаге создания таблицы выбирается вариант последующих действий (рис.6.16). Это может быть переход в режим Конструктора (команда "Изменить структуру таблицы") для изменения стандартного набора поле и их ограничений, либо переход в режим заполнения таблицы конкретными данными, либо заполнение таблицы с помощью специальной формы. Так как режим Конструктора и режим заполнения таблицы с помощью Формы подразумевают использование еще неизученных объектов MS Access, то мы остановимся на выборе второго режима, т.е. переход в режим "Ввести данные непосредственно в таблицу" (рис.6.16)
Выбрать режим "Ввести данные непосредственно в таблицу" и щелкнуть
кнопку "Готово".
В результате выполнения задания у Вас на экране появится картинка, приведенная на рис.6.17.
Рис.6.17. Ввод данных в таблицу "Студенты"
Рис.6.13. Задание имени таблицы и режима выбора ключевого поля
Рис.6.14. Задание ключевого поля
Рис.6.15. Задание ключевого поля
Рис.6.16. Варианты последующих действий
С созданной таблицей
В заключении отметим недостатки режима Мастера. Очевидно, что к недостаткам следует отнести, прежде всего, невозможность создания своих полей с нужным типом данных. В тоже время, невозможно накладывать ограничения на значения полей. Чтобы преодолеть эти недостатки приходиться переходить в режим Конструктора. Поэтому, при создании таблиц рекомендуется использовать режим Конструктора.
6.5.2.2. Режим Конструктора
Режим Конструктора является основным при создании таблиц. В случае создания новой таблицы для работы в этом режиме следует выбрать первый пункт в главном меню MS Access (рис.6.9). В нашем случае таблица уже создана (хотя и не совсем та, которая нужна), поэтому для перехода в режим конструктора следует щелкнуть инструмент "Вид" на панели инструментов MS Access. Следует запомнить, что пиктограмма в виде линейки, треугольника и карандаша обозначает переход в режим Конструктора. При переходе в режим Конструктора значок на инструменте "Вид" изменится на , который позволяет перейти в режим ввода данных в таблицу.
Перейти в режим Конструктора, затем вернуться в режим Таблицы и обратно в
режим Конструктора.
После выполнения задания на экране возникнет картинка, приведенная на рис.6.18.
Рис.6.18. Режим Конструктора
Перед нами три столбца. Первый столбец предназначен для написания имени поля, второй – для определения типа данных поля, а третий - для примечаний. Требования к имени поля можно прочитать на рис.6.10 (в имени не должно быть точки, восклицательного знака, квадратных скобок, непечатаемого символа и имя не должно начинаться с пробела).Переход к столбцу "Тип данных" можно осуществлять с помощью клавиш управления курсоров, клавишами "Tab" или "Enter", мышью. При переходе в столбец "Тип данных" справа в строке находится кнопка открытия списка, при щелчке по ней открывается список типов данных MS Access (рис.6.19).
Рис.6.19. Типы данных MS Access
Тип данных поля - это характеристика поля, определяющая, какие данные могут сохраняться в поле. Например, в поле с типом "Текстовый" можно вводить как текст, так и числа, а в полях с типом "Числовой" допускается хранение только числовых данных. В приведенной ниже таблице 6.1 указаны все типы данных полей, поддерживаемые в MS Access, их назначение и размеры.
Таблица 6.1
|