logo search
Лекции по информатике

5.3. Системы управления базами данных. Основные понятия теории баз данных

Введение.

Современные информационные системы, основанные на концепции интеграции данных, характеризуются огромными объемами хранимых данных, сложной организацией, необходимостью удовлетворять разнообразные требования многочисленных пользователей.

Информационная система - система, реализующая автоматизированный сбор, обработку и манипулирование данными и включающая технические средства обработки данных, программное обеспечение и соответствующий персонал.

Цель любой информационной системы – обработка данных об объектах реального мира. Основой информационной системы является база данных. В широком смысле слова база данных – это совокупность сведений о конкретных объектах реального мира в какой-либо предметной области. Под предметной областью принято понимать часть реального мира, подлежащего изучению для организации управления и в конечном счете автоматизации, например, предприятие, вуз и т.д.

Создавая базу данных, пользователь стремится упорядочить информацию по различным признакам и быстро производить выборку с произвольным сочетанием признаков. Большое значение при этом приобретает структури­рование данных.

Структурирование данных – это введение соглашений о способах представления данных.

Неструктурированными называют данные, записанные, например, в текстовом файле.

Структурированные данные:

Чтобы автоматизировать поиск и систематизировать эти данные, необходимо выработать определенные соглашения о способах представления данных, т.е. дату рождения нужно записывать одинаково для каждого студента, она должна иметь одинаковую длину и определенное место среди остальной информации. Эти же замечания справедливы и для остальных данных (номер личного дела, фамилия, имя, отчество).

Пользователями базы данных могут быть различные прикладные программы, программные комплексы, а также специалисты предметной области, выступающие в роли потребителей или источников данных, называемые конечными пользователями.

В современной технологии баз данных предполагается, что создание базы данных, ее поддержка и обеспечение доступа пользователей к ней осуществляются централизованно с помощью специального программного инструментария – системы управления базами данных.

База данных (БД) – это поименованная совокупность данных, отражающая состояние объектов и их отношений в рассматриваемой предметной области.

Объектом называется элемент предметной области, информацию о котором мы сохраняем.

Объект может быть реальным (например, человек, изделие или населенный пункт) и абстрактным (например, событие, счет покупателя или изучаемый студентами курс). Так, в области продажи автомобилей примерами объектов могут служить МОДЕЛЬ АВТОМОБИЛЯ, КЛИЕНТ и СЧЕТ. На товарном складе - это ПОСТАВЩИК, ТОВАР, ОТПРАВЛЕНИЕ и т. д.

Система управления базами данных (СУБД) – это комплекс программных и языковых средств, предназначенных для создания, ведения и совместного применения баз данных многими пользователями.

Централизованный характер управления данными в базе данных предполагает необходимость существования некоторого лица (группы лиц), на которое возлагаются функции администрирования данными, хранимыми в базе.

Классификация баз данных

По технологии обработки данных базы данных подразделяются на централизованные и распределенные.

Централизованная база данных хранится в памяти одной вычисли­тельной системы. Если эта вычислительная система является компонентом сети ЭВМ, возможен распределенный доступ к такой базе. Такой способ использования баз данных часто применяют в локальных сетях ПК.

Распределенная база данных состоит из нескольких, возможно пересекающихся или даже дублирующих друг друга частей, хранимых в различных ЭВМ вычислительной сети. Работа с такой базой осуществляется с помощью системы управления распределенной базой данных (СУРБД).

По способу доступа к данным базы данных разделяются на базы данных с локальным доступом и базы данных с удаленным (сетевым) доступом.

Системы централизованных баз данных с сетевым доступом предполагают различные архитектуры подобных систем:

файл-сервер;

клиент-сервер.

Файл-сервер. Архитектура систем БД с сетевым доступом предполагает выделение одной из машин сети в качестве центральной (сервер файлов). На такой машине хранится совместно используемая централизованная БД. Все другие машины сети выполняют функции рабочих станций, с помощью которых поддерживается доступ пользовательской системы к централизованной базе данных. Файлы базы данных в соответствии с пользовательскими запросами передаются на рабочие станции, где в основном и производится обработка. При большой интенсивности доступа к одним и тем же данным производитель­ность информационной системы падает. Пользователи могут создавать также на рабочих станциях локальные БД, которые используются ими монопольно.

Клиент-сервер. В этой концепции подразумевается, что помимо хранения централизованной базы данных центральная машина (сервер базы данных) должна обеспечивать выполнение основного объема обработки данных. Запрос на данные, выдаваемый клиентом (рабочей станцией), порождает поиск и извлечение данных на сервере. Извлеченные данные (но не файлы) транспортируются по сети от сервера к клиенту. Спецификой архитектуры клиент-сервер является использование языка запросов SQL.

Структурные элементы базы данных.

Поле – элементарная единица логической организации данных, которая соответствует неделимой единице информации – реквизиту. Для описания поля используются следующие характеристики:

имя, например, Фамилия, Имя, Отчество, Дата рождения;

тип, например, символьный, числовой, календарный;

длина, например, 15 байт, причем будет определяться максимально возможным количеством символов;

точность для числовых данных, например два десятичных знака для отображения дробной части числа.

Запись – совокупность логически связанных полей.

Экземпляр записи – отдельная реализация записи, содержащая конкретные значения ее полей.

Файл (таблица) – совокупность экземпляров записей одной структуры.

Описание логической структуры записи файла содержит последователь­ность расположения полей записи и их основные характеристики.

В структуре записи файла указываются поля, значения которых являются ключами: первичными (ПК) и вторичными (ВК).

Первичный ключ (ПК) – это одно или несколько полей, однозначно идентифицирующих запись. Если первичный ключ состоит из одного поля, он называется простым, если из нескольких полей – составным ключом.

Вторичный ключ (ВК) - это одно или несколько полей, которые выполняют роль поисковых или группировочных признаков. В отличие от первичного, значение вторичного ключа может повторяться в нескольких записях файла, то есть он не является уникальным. Если по значению первичного ключа может быть найден один единственный экземпляр записи, то по вторичному – несколько.

Модели данных.

Ядром любой базы данных является модель данных. Модель данных представляет собой множество структур данных, ограничений целостности и операций манипулирования данными. С помощью модели данных могут быть представлены объекты предметной области и взаимосвязи между ними.

Модель данных – совокупность структур данных и операций их обработки.

СУБД основывается на использовании иерархической, сетевой или реляционной модели, на комбинации этих моделей или на некотором их подмножестве.

Рассмотрим три основных типа моделей данных: иерархическую, сетевую и реляционную.

Иерархическая модель данных.

Иерархическая модель организует данные в виде древовидной структуры.

К основным понятиям иерархической структуры относятся: уровень, элемент (узел), связь. Дерево представляет собой иерархию элементов, называемых узлами. Узел – это совокупность атрибутов данных, описывающих некоторый объект. На самом верхнем уровне иерархии имеется один и только один узел - корень. Каждый узел, кроме корня, связан с одним узлом на более высоком уровне, называемым исходным для данного узла. Ни один элемент не имеет более одного исходного. Каждый элемент может быть связан с одним или несколькими элементами на более низком уровне. Они называются порожденными (рис 1.6).

Рис. Графическое изображение иерархической структуры БД

К каждой записи базы данных существует только один (иерархический) путь от корневой записи. Например, как видно из рис. 1.6, для записи С4 путь проходит через записи А и В3.

Пример, представленный на рис. 1.7, иллюстрирует использование иерархической модели базы данных. Для рассматриваемого примера иерархическая структура правомерна, так как каждый студент учится в определенной (только одной) группе, которая относится к определенному (только одному) институту.

Сетевая модель данных.

Сетевая модель организует данные в виде сетевой структуры.

Структура называется сетевой, если в отношениях между данными порожденный элемент имеет более одного исходного.

В сетевой структуре при тех же основных понятиях (уровень, узел, связь) каждый элемент может быть связан с любым другим элементом.

Примером сложной сетевой структуры может служить структура базы данных, содержащей сведения о студентах, участвующих в научно-исследовательских работах (НИРС). Возможно участие одного студента в нескольких НИРС, а также участие нескольких студентов в разработке одной НИРС. Единственное отношение представляет собой сложную связь между записями в обоих направлениях.

Реляционная модель данных.

Понятие “реляционный” (англ. relation – отношение) связано с разработ­ками известного американского специалиста в области систем баз данных Е. Кодда.

Эти модели характеризуются простотой структуры данных, удобным для пользователя табличным представлением и возможностью использования формального аппарата алгебры отношений и реляционного исчисления для обработки данных.

Реляционная модель ориентирована на организацию данных в виде двумерных таблиц. Например, реляционной таблицей можно представить информацию о студентах, обучающихся в вузе

Реляционная модель данных является совокупностью взаимосвязанных двумерных таблиц – объектов модели.

Связи между двумя логически связанными таблицами в реляционной модели устанавливаются по равенству значений одинаковых атрибутов этих таблиц.

Каждая реляционная таблица представляет собой двумерный массив и обладает следующими свойствами:

– каждый элемент таблицы – один элемент данных;

– все столбцы в таблице однородные, т.е. все элементы в столбце имеют одинаковый тип (числовой, символьный и т.д.) и длину;

– каждый столбец имеет уникальное имя;

– одинаковые строки в таблице отсутствуют;

– порядок следования строк и столбцов может быть произвольным.

При описании реляционной модели часто используют следующие термины: отношение, кортеж, домен.

Отношения представлены в виде таблиц, строки которых соответствуют записям (кортежам), а столбцы – полям, атрибутам отношений (доменам).

Поле, каждое значение которого однозначно определяет соответствующую запись, называется простым ключом (ключевым полем). Если записи однозначно определяются значениями нескольких полей, то такая таблица базы данных имеет составной ключ.

Между двумя реляционными таблицами могут быть сформированы связи. Различные таблицы, могут быть связаны между собой через общее поле данных.

Системы управления базами данных.

Система управления базами данных представляет собой пакет программ, посредством которого реализуется централизованное управление базой данных и обеспечивается доступ к данным. СУБД выступает в качестве интерфейса между пользователями и БД.

СУБД обеспечивает программные средства для создания, загрузки, запроса и обновления данных, контролирует действия, связанные с вводом-выводом данных, решает вопросы совместного их использования и защиты.

СУБД служит для поддержания базы данных в актуальном состоянии и обеспечивает эффективный доступ пользователей к содержащимся в ней данным в рамках предоставленных пользователям полномочий.

По степени универсальности различают два класса СУБД:

1)системы общего назначения;

2)специализированные системы.

СУБД общего назначения не ориентированы на какую-либо предметную область или на информационные потребности какой-либо группы пользова­телей. Каждая система такого рода реализуется как программный продукт, способный функционировать на некоторой модели ЭВМ в определенной операционной системе, и поставляется многим пользователям как коммерческое изделие. Такие СУБД обладают средствами настройки на работу с конкретной базой данных. Использование СУБД общего назначения в качестве инструментального средства для создания автоматизированных информацион­ных систем, основанных на технологии баз данных, позволяет существенно сокращать сроки разработки, экономить трудовые ресурсы. Этим СУБД присущи развитые функциональные возможности и даже определенная функциональная избыточность.

Специализированные СУБД создаются в редких случаях при невозможности или нецелесообразности использования СУБД общего назначения.

СУБД общего назначения – это сложные программные комплексы, предназначенные для выполнения всей совокупности функций, связанных с созданием и эксплуатацией базы данных информационной системы.

– Они позволяют определять структуру создаваемой базы, инициали­зировать ее и производить начальную загрузку данных.

– Они управляют полномочиями пользователей на доступ к БД, организуют параллельный доступ к ней нескольких пользователей.

– Они обеспечивают защиту логической и физической целостности данных - защиту от разрушений.

СУБД поддерживают один из возможных типов моделей данных – сетевую, иерархическую или реляционную, которые являются одним из важнейших признаков классификации СУБД.

СУБД обеспечивают многоцелевой характер использования базы данных, защиту и восстановление данных. Наличие развитых диалоговых средств и языка запросов высокого уровня делает СУБД удобным средством для конечного пользователя.

Основными средствами СУБД являются:

средства задания (описания) структуры базы данных;

средства конструирования экранных форм, предназначенных для ввода данных, просмотра и их обработки в диалоговом режиме;

средства создания запросов для выборки данных при заданных условиях, а также выполнения операций по их обработке;

средства создания отчетов из базы данных для вывода на печать результатов обработки в удобном для пользователя виде;

языковые средства – макросы, встроенный алгоритмический язык (Dbase, Visual Basic или другой), язык запросов (QBE – Query By Example, SQL) и т.п., которые используются для реализации нестандартных алгоритмов обработки данных, а также процедур обработки событий в задачах пользователя;

средства создания приложений пользователя (генераторы приложений, средства создания меню и панелей управления приложениями), позволяющие объединить различные операции работы с базой данных в единый технологический процесс.

СУБД в многопользовательских системах.

Б аза данных, как правило, содержит данные, необходимые многим пользователям. Получение одновременного доступа нескольких пользователей к общей базе данных возможно при установке СУБД в локальной сети персональных компьютеров и создании многопользовательской базы данных ().

В сети СУБД следит за разграничением доступа разных пользователей к общей базе данных и обеспечивает защиту данных при одновременной работе пользователей с общими данными. Автоматически обеспечивается защита данных от одновременной их корректировки несколькими пользователями-клиентами.

В сети с файловым сервером база данных может размещаться на сервере. При этом СУБД загружается и осуществляет обработку данных базы на рабочих станциях пользователей. Концепция файлового сервера в локальной сети обеспечивается рядом сетевых операционных систем. Наиболее популярными являются Microsoft Windows NT и NetWare Novell.

В сети, поддерживающей концепцию «клиент-сервер», используется сервер баз данных, который располагается на мощной машине, выполняет обработку данных, размещенных на сервере, и отвечает за их целостность и сохранность. Для управления базой данных на сервере используется язык структурированных запросов SQL (Structured Queries Language). На рабочих станциях-клиентах работает СУБД-клиент. Пользователи могут взаимодейство­вать не только со своими локальными базами, но и с данными, расположенными на сервере. СУБД-клиент, в которой поддерживается SQL, в полном объеме может посылать на сервер запросы SQL, получать необходимые данные, а также посылать обновленные данные.

При этом с общей базой данных могут работать СУБД разного типа, установленные на рабочих станциях, если в них поддерживается SQL.

Подключение из СУБД к серверам баз данных SQL может быть осуществлено с помощью драйверов ODBC. ODBC (Open Database Connectivity – открытый стандарт доступа к базам данных) поддерживает стандартный протокол для серверов баз данных SQL.

Свойства СУБД и базы данных.

К основным свойствам СУБД и базы данных можно отнести:

– отсутствие дублирования данных в различных объектах модели, обеспечивающее однократный ввод данных и простоту их корректи­ровки;

– непротиворечивость данных;

– целостность БД;

– возможность многоаспектного доступа;

– всевозможные выборки данных и их использование различными задачами и приложениями пользователя;

– защиту и восстановление данных при аварийных ситуациях, аппаратных и программных сбоях, ошибках пользователя;

– защиту данных от несанкционированного доступа средствами разгра­ничения доступа для различных пользователей;

– возможность модификации структуры базы данных без повторной загрузки данных;

– обеспечение независимости программ от данных, позволяющее сохранить программы при модификации структуры базы данных;

– реорганизацию размещения данных базы на машинном носителе для улучшения объемно-временных характеристик БД;

– наличие языка запросов высокого уровня, ориентированного на конечного пользователя, который обеспечивает вывод информации из базы данных по любому запросу и предоставление ее в виде соответствующих отчетных форм, удобных для пользователя.

Технология использования СУБД.

СУБД является основой создания практических приложений пользователя для различных предметных областей.

Критерии выбора СУБД пользователем. Выбор СУБД для практичес­ких приложений пользователем определяется многими факторами, к которым относятся:

– имеющееся техническое и базовое программное обеспечение, их конфигурация, оперативная и дисковая память;

– потребности разрабатываемых приложений пользователя;

– тип поддерживаемой модели данных, специфика предметной области, топология информационно-логической модели;

– требования к производительности при обработке данных;

– наличие в СУБД необходимых функциональных средств;

– наличие русифицированной версии СУБД;

– уровень квалификации пользователей и наличие в СУБД диалоговых средств разработки и взаимодействия с БД.

Установка СУБД. СУБД является программным продуктом, поставляе­мым в виде пакета прикладных программ, который должен быть установлен (инсталлирован) на компьютер с учетом его конфигурации, ресурсов и операционной системы, а также требований к набору функций.

Процесс поэтапного внедрения. После установки СУБД можно осуществлять создание БД, в том числе задавать структуру БД, производить ввод данных, а также выполнять любые действия, предусмотренные функциональными возможностями СУБД. Следует заметить, что современные СУБД для ПК обладают достаточной гибкостью. Это позволяет на самых ранних этапах разработки приложений пользователя приступать к созданию отдельных частей БД. Такая БД по мере углубления разработки может легко расширяться и модифицироваться. Таким образом, облегчается ускоренное освоение персоналом технологии работы с БД, изучение возможностей СУБД и поэтапное внедрение.

Разработка структуры базы данных. Разработка приложений на основе СУБД предполагает подготовку решений по структуре БД. Эти решения непосредственно связаны с внемашинной сферой – с описанием внемашинной информационной базы, ее документов, содержащих необходимую информацию, а также с постановкой и алгоритмизацией задач по обработке этой информации.

На начальном этапе разработки структуры БД целесообразно построение информационно-логической модели, отражающей логическую структуру информации предметной области. Такая модель, отвечающая требованиям нормализации данных, является основой создания реляционных баз данных.

Создание базы данных средствами СУБД. В соответствии с разработанной структурой базы данных осуществляется ее создание средствами СУБД на машинном носителе и ввод в эксплуатацию. Для обеспечения процессов создания БД и ее эксплуатации необходимо знание возможностей инструментальных средств СУБД. При этом следует руководствоваться рекомендациями по технологии использования средств СУБД. Такая технология должна определять все необходимые процессы, включая первоначальный ввод, загрузку БД и контроль данных, выполнение операций по внесению изменений, реализацию запросов для получения нужных справок, восстановление БД и т.п. Одним из важнейших этапов этой технологии является подготовка экранных форм ввода-вывода для загрузки информации с документов внемашинной сферы в базу данных, корректировки данных и их просмотра.

Обработка данных средствами СУБД. Добавление, удаление, изменение и выборка данных производится при помощи языка запросов, встроенного алгоритмического языка и других средств СУБД. Реализация запросов обеспечивается диалоговой системой команд с меню или запросами по примеру QBE (Query By Example). В первом случае отдельный запрос выполняется одной или несколькими командами языка СУБД. Последователь­ность команд языка СУБД образует программу – командный файл (СУБД Dbase). Во втором – для выполнения запроса пользователь выбирает последовательно один или несколько пунктов меню или указывает в запросе пример (образец), по которому составляется запрос, а также при необходимости указывает условия выбора и операции вычисления, которые необходимо выполнять с данными (СУБД Paradox, Access). Последовательность команд меню и запросов может быть запомнена в программе-макросе и в дальнейшем выполнена так же, как командный файл.

СУБД может иметь включающий или базовый язык программирования. В СУБД с включающим языком используется один из универсальных алгоритмических языков (С, Pascal и т. п.). Прикладная программа, написанная на включающем языке, может инициировать команды СУБД. В СУБД с базовым языком применяется собственный алгоритмический язык, позволяющий кроме операций манипулирования данными выполнять различные вычисления и обработку данных.

Стандартным реляционным языком запросов является язык структурированных запросов SQL (Structured Queries Language).

Язык запросов SQL реализован в целом ряде популярных СУБД для различных типов ЭВМ либо как базовый, либо как альтернативный. В силу своего широкого использования является международным стандартом языка запросов. Язык SQL предоставляет развитые возможности как конечным пользователям, так и специалистам в области обработки данных.

Совместимость с SQL-системами играет большую роль, когда предполагается проведение работы с корпоративными данными. Access и Paradox for Windows работают с источниками SQL-данных, совместимых с системой ODBC (Open Database Connectivity – открытое соединение баз данных). FoxPro (for DOS и for Windows) поставляются с дополнительными библиотеками, которые обеспечивают доступ к SQL-базам данных, способным работать совместно с системой ODBC.

Можно напрямую управлять базами данных Access с помощью языка SQL и передавать сквозные SQL-запросы совместимым со спецификацией ODBC SQL-базам данных, таким, как MS SQL Server и Oracle.

Обзор СУБД.

Рынок программного обеспечения ПК располагает большим числом разнообразных по своим функциональным возможностям коммерческих систем управления базами данных общего назначения, а также средствами их окружения практически для всех массовых моделей машин и для различных операционных систем.

Используемые в настоящее время СУБД обладают средствами обеспечения целостности данных и безопасности, что дает возможность разработчикам гарантировать большую безопасность данных при меньших затратах сил на низкоуровневое программирование.

Продукты, функционирующие в среде WINDOWS, выгодно отличаются удобством пользовательского интерфейса и встроенными средствами повышения производительности.

Наибольшую популярность завоевали следующие СУБД: dBASE, FoxPro, Paradox, Access, Oracle.

Производительность СУБД. Производительность СУБД оценивается:

– временем выполнения запросов;

– скоростью поиска информации;

– временем выполнения операций импортирования базы данных из других форматов;

– скоростью создания индексов и выполнения таких массовых операций, как обновление, вставка, удаление данных;

– максимальным числом параллельных обращений к данным в многопользовательском режиме;

– временем генерации отчета.

Достаточно быстрой СУБД является FoxPro 2.6, однако она не обладает средствами соблюдения целостности данных в отличие от более медленной СУБД Access 2.0.

Обеспечение целостности данных на уровне базы данных. Эта характеристика подразумевает наличие средств, позволяющих удостовериться, что информация в базе данных всегда остается корректной и полной. Должны быть установлены правила целостности, и они должны храниться вместе с базой данных и соблюдаться на глобальном уровне.

Access и Paradox for Windows лучше других СУБД обеспечивают надежность сохранения целостности данных на уровне базы данных; правила хранятся вместе с базой данных и автоматически соблюдаются.

Обеспечение безопасности. Некоторые СУБД предусматривают средства обеспечения безопасности данных. Такие средства обеспечивают выполнение следующих операций:

– шифрование прикладных программ;

– шифрование данных;

– защиту паролем;

– ограничение уровня доступа (к базе данных, к таблице, к словарю, для пользователя).

Самый высокий уровень безопасности данных реализован в СУБД dBASE IV. Администратор может назначить системе различные права доступа на уровне файла, поля, а также организовать автоматическое шифрование данных.

Хорошими характеристиками обеспечения безопасности отличается Access 2.0. Он предусматривает назначение паролей для индивидуальных пользователей или групп пользователей и присвоение различных прав доступа отдельно таблицам, запросам, отчетам, макрокомандам или новым объектам на уровне пользователя или группы.

Работа в многопользовательских средах. Практически все рассматриваемые СУБД предназначены для работы в многопользовательских средах, но обладают для этого различными возможностями.

Обработка данных в многопользовательских средах предполагает выполнение программным продуктом следующих функций:

– блокировку базы данных, файла, записи, поля;

– идентификацию станции, установившей блокировку;

– обновление информации после модификации;

– контроль за временем и повторение обращения;

– обработку транзакций (транзакция – последовательность операций пользователя над базой данных, которая сохраняет ее логическую целостность);

– работу с сетевыми системами (LAN Manager, NetWare, Unix).

Хорошими возможностями для работы в многопользовательских средах обладают СУБД Paradox for DOS 4.5, Access 2.0 и dBASE IV.

Импорт-экспорт. Эта характеристика отражает:

– возможность обработки СУБД информации, подготовленной другими программными средствами;

– возможность использования другими программами данных, сформиро­ванных средствами рассматриваемой СУБД.

Особый интерес представляют следующие форматы файлов: ASCII-файлы, .DBF, .WK*, .XLS.

Все рассматриваемые здесь СУБД обладают хорошими возможностями импорта-экспорта данных.

Проектирование баз данных.

Понятие предметной области.

Каждая информационная система в зависимости от ее назначения имеет дело с частью реального мира, которую принято называть предметной областью (ПО) системы. ПО может относится к любому типу организаций: банк, университет, завод, магазин и т.д.

Предметная область информационной системы - это совокупность реаль­ных объектов (сущностей), которые представляют интерес для пользователей.

Объект (сущность) - предмет, процесс или явление, о котором собирается информация, необходимая для решения задачи. Объектом может быть человек, предмет, событие.

Каждый объект характеризуется рядом основных свойств - атрибутов. Атрибутом называется поименованная характеристика объекта. Атрибут показывает, какая информация должна быть собрана об объекте.

Например, объект - клиент банка.

Атрибуты - номер счета, адрес, сумма вклада.

Технология анализа предметной области.

Первым этапом проектирования БД любого типа является анализ предметной области, который заканчивается построением информационной структуры (концептуальной схемы). На данном этапе анализируются запросы пользователей, выбираются информационные объекты и их характеристики, которые предопределяют содержание проектируемой БД. На основе проведенного анализа структурируется предметная область. Анализ предметной области не зависит от программной и технической сред, в которых будет реализовываться БД.

Анализ предметной области целесообразно разбить на три фазы:

1) анализ концептуальных требований и информационных потребностей;

2) выявление информационных объектов и связей между ними;

3) построение концептуальной модели предметной области и проекти­рование концептуальной схемы БД.

Анализ концептуальных требований и информационных потребностей.

Требования пользователей к разрабатываемой БД представляют собой список запросов с указанием их интенсивности и объемов данных. Эти сведения разработчики БД получают в диалоге с ее будущими пользователями. Здесь же выясняются требования к вводу, обновлению и корректировке информации. Требования пользователей уточняются и дополняются при анализе имеющихся и перспективных задач.

Выявление информационных объектов и связей между ними.

Вторая фаза анализа предметной области состоит в выборе информационных объектов, задании необходимых свойств для каждого объекта, выявлении связей между объектами, определении ограничений, накладываемых на информационные объекты, типы связей между ними, характеристики информационных объектов

Под ограничением целостности обычно понимают логические ограничения, накладываемые на данные. Ограничение целостности – это такое свойство, которое мы задаем для некоторого информационного объекта или его характеристики и которое должно сохраняться для каждого их состояния.

Типы связей. Все информационные объекты предметной области связаны между собой.

Соответствия, отношения, возникающие между объектами предметной области называются связями. Различаются связи нескольких типов, для которых введены следующие обозначения:

а) один к одному (1:1);

б)один ко многим (1:М);

в)многие ко многим (М:М).

Рассмотрим эти типы связей на примере.

Связь один к одному (1:1) предполагает, что в каждый момент времени одному экземпляру информационного объекта А соответствует не более одного экземпляра информационного объекта В и наоборот.

Рис..1 иллюстрирует указанный тип отношений.

Р ис. 1. Графическое изображение реального отношения 1:1

При связи один ко многим (1 :М) одному экземпляру информационного объекта А соответствует 0, 1 или более экземпляров объекта В, но каждый экземпляр объекта В связан не более чем с 1 экземпляром объекта А. Графически данное соответствие имеет вид, представленный на рис. .2.

Рис. 2. Графическое изображение реального отношения 1:М

Связь многие ко многим (М:М) предполагает, что в каждый момент времени одному экземпляру информационного объекта А соответствует 0, 1 или более экземпляров объекта В и наоборот. На рис..3 графически представлено указанное соответствие.

Рис. 3. Графическое изображение реального отношения М:М

Один студент обучается у многих преподавателей, один преподаватель обучает многих студентов.

Построение концептуальной модели предметной области.

Заключительная фаза анализа предметной области состоит в проектировании ее информационной структуры или концептуальной модели.

Концептуальная модель включает описания объектов и их взаимо­связей, представляющих интерес в рассматриваемой предметной области (ПО) и выявляемых в результате анализа данных.

Концептуальная модель применяется для структурирования предметной области с учетом информационных интересов пользователей системы. Она дает возможность систематизировать информационное содержание предмет­ной области, позволяет как бы “подняться вверх” над ПО и увидеть ее отдель­ные элементы. При этом, уровень детализации зависит от выбранной модели.

Концептуальная модель является представлением точки зрения пользователя на предметную область и не зависит ни от программного обеспечения СУБД, ни от технических решений.

Концептуальная модель должна быть стабильной. Могут меняться прикладные программы, обрабатывающие данные, может меняться организация их физического хранения, концептуальная модель остается неизменной или увеличивается с целью включения дополнительных данных.

Одной из распространенных моделей концептуальной схемы является модель «сущность - связь». Основными конструкциями данной модели являются сущности и связи.

Под сущностью понимают основное содержание объекта ПО, о котором собирают информацию. В качестве сущности могут выступать место, вещь, личность, явление.

Экземпляр сущности - конкретный объект.

Сущность принято определять атрибутами - поименованными характеристиками. Например:

сущность – служащий

атрибуты: ФИО, год рождения, адрес, образование и т.д.

Чтобы задать атрибут в модели, ему надо присвоить имя и определить область допустимых значений. Одно из назначений атрибута - идентифи­цировать сущность.

Связь определяет отношения между сущностями. Типы связей: один к одному, один ко многим, многие ко многим.

При построении модели «сущность - связь» используют графические диаграммы. При этом обозначают:

сущности - прямоугольниками,

атрибуты - овалами,

связи - ромбами.

На практике приходится строить несколько вариантов моделей, из которых выбирается одна, наиболее полно отображающая предметную область.

После выбора сущностей, задания атрибутов и анализа связей можно перейти к проектированию информационной (концептуальной) схемы БД.

Логическое проектирование.

Логическое проектирование представляет собой необходимый этап при создании БД. Основной задачей логического проектирования является разработка логической схемы, ориентированной на выбранную систему управления базами данных (СУБД). Этап логического проектирования в отличие от концептуального проектирования полностью ориентирован на инструмен­таль­ные средства компьютера.

Процесс логического проектирования состоит из следующих этапов:

1. Выбор конкретной СУБД.

2. Отображение концептуальной схемы на логическую схему.

3. Выбор ключей.

4. Описание языка запросов.

Одним из основных критериев выбора СУБД является оценка того, насколько эффективно внутренняя модель данных, поддерживаемая системой, способна описать концептуальную схему. Существующие СУБД делятся по типам моделей данных на реляционные, иерархические и сетевые. СУБД, ориентированные на персональные компьютеры, как правило, поддерживают реляционную модель данных. Подавляющее большинство современных СУБД – реляционные. Если выбрана реляционная система, то концептуальную схему БД предстоит отображать на реляционную.

При отображении концептуальной схемы на реляционную модель данных каждый прямоугольник схемы отображается в таблицу. При этом следует учитывать ограничения на размеры таблиц, которые накладывает выбранная СУБД.

Аналогично поступают со всеми остальными сущностями (объектами) концептуальной схемы.

Выводы. Концептуальная модель представляет объекты предметной области и их взаимосвязи без указания способов их физического хранения.

Таким образом, концептуальная модель является, по существу, моделью предметной области. При проектировании концептуальной модели все усилия разработчика должны быть направлены в основном на структуризацию данных и выявление взаимосвязей между ними без рассмотрения особенностей реализации и вопросов эффективности обработки. Проектирование концептуальной модели основано на анализе решаемых на этом предприятии задач по обработке данных.

Концептуальная модель включает описания объектов и их взаимосвязей, представляющих интерес в рассматриваемой предметной области и выявляемых в результате анализа данных.

Концептуальная модель транспонируется затем в модель данных, совместимую с выбранной СУБД. Версия концептуальной модели, которая может быть обеспечена конкретной СУБД, называется логической моделью.

Логическая модель отражает логические связи между элементами данных вне зависимости от их содержания и среды хранения.

Логическая модель данных может быть реляционной, иерархической или сетевой. Логическая модель отображается в физическую память, такую, как диск, лента или какой-либо другой носитель информации.

Физическая модель, определяющая размещение данных, методы доступа и технику индексирования, называется внутренней моделью системы.

В современных СУБД выполнение задач физического проектирования автоматизировано.

СУБД MICROSOFT ACCESS.

Microsoft Access представляет собой реляционную базу данных.

Информация в базе данных Access представляется в виде отдельных таблиц. При этом каждый столбец таблицы соответствует полю данных, а каждая строка – записи данных.

Запись данных состоит из нескольких полей. При этом действует следующее правило: запись данных представляет собой группу взаимосвязан­ных полей, рассматриваемых как единое целое. Например, запись данных может содержать информацию о конкретном клиенте или продукте. Каждая запись данных в таблице содержит одинаковое число полей. Каждое поле содержит один и тот же тип информации. Например, в каждой записи данных некоторой таблицы поле ИМЯ КЛИЕНТА будет предназначено для имени клиента, т.е. будет содержать однотипную информацию.

Существуют различные типы данных. Тип данных для конкретного поля данных выбирается в зависимости от того, какая информация будет располагаться в этом поле. Размер поля данных определяется в зависимости от выбранного для него типа.

Вот некоторые примеры типов данных.

Текстовые поля (TEXT): могут содержать отдельные слова (например, имена), сочетания слов и чисел (например, почтовый адрес), или числа, которые не используются для математических расчетов (например, номера телефонов), а также специальные знаки (например «/» или «–»).

Числовые поля (NUMBER): содержат числа, используемые для различных расчетов (например, цены продуктов).

Поля даты и времени (DATE/TIME): содержат дату и/или время.

Поля денежных сумм (CURRENCY): содержат числовые величины в фор­мате денежных сумм с обозначением денежных единиц – р. (рубль), $ (доллар), DM (немецкая марка) и т.п.

Логические поля (YES/NO): содержат логические данные со значениями ДА/НЕТ (YES/NO) или ИСТИНА/ЛОЖЬ (TRUE/FALSE).

Поля текстовых примечаний (MEMO): содержат большие участки текста (до 32 000 знаков).

Связи между таблицами.

В базе данных Access между отдельными таблицами могут быть сформированы связи, соединяющие их в единую базу. Связи осуществляются через общие поля данных.

В качестве примера представим себе базу данных о клиентах, которая состоит из таблицы клиентов и таблицы заказов. Пусть в таблице клиентов поля содержат разнообразную информацию о клиентах: фамилию, адрес, телефон и т.д., в том числе, и поле «Код клиента». В таблице заказов одним из прочих полей является «Код заказчика», имеющий такой же тип данных и размер, что и «Код клиента» в первой таблице. Если необходимо внести в таблицу заказов несколько конкретных заказов, поступивших от клиента Петрова, следует внести в записи об этих заказах только соответствующий «Код заказчика» и установить связь таблиц по этим полям. Access свяжет адресные данные клиента с заказом, и пользователь легко сможет выяснить, по какому адресу должен быть доставлен заказ, хотя описание заказа и адреса заказчиков хранятся в разных таблицах.

Ключи.

Часто необходимо осуществлять поиск данных, хранящихся в различных таблицах.

Предпосылкой и условием успешного поиска и установления связей служит правильное определение так называемых ключей. При помощи ключа Access может различать записи таблицы и упорядочивать их соответствующим образом. Каждая таблица должна содержать, как минимум, один ключ. Ключ представляет собой поле в соответствующей таблице. Он однозначно характеризует каждую запись, содержащуюся внутри таблицы.

Идеальным первичным ключом является такая информация, как номер клиента, номер счета и т.д. При помощи такого ключа легко определить соответствующую запись. Для первичного ключа не годятся поля, содержащие имя клиента. Всегда возможна ситуация, когда несколько человек имеют одно и то же имя.

Макросы, модули и объекты.

При помощи макросов можно автоматизировать отдельные действия, не погружаясь в программирование. Запись макросов происходит по принципу магнитофона: отдельные действия, необходимые для определенной операции, записываются в нужной последовательности, а затем воспроизводятся любое количество раз простым нажатием кнопки. Например, для перехода к форме при открытии базы данных можно использовать специальный макрос. Тогда при открытии соответствующей базы данных на экране будет появляться форма.

Макросы могут не вполне удовлетворять потребностям пользователя. В этом случае можно воспользоваться языком программирования, имеющимся в Access. Он называется Access-Basic. При помощи этого языка автоматизиру­ются сложные действия, например, сложные вычисления в отчете. Можно запрограммировать функцию вычислений и использовать ее, когда это необходимо. Процедуры, написанные на Access-Basic, запоминаются в программном модуле.

Все элементы, которые формируются и используются в Access называются объектами Access. К ним относятся таблицы, формы, запросы, отчеты, макросы, модули, графики, диаграммы, диалоговые окна, а также некоторые системные объекты, например, системный буфер обмена (Clipboard).

Полезные помощники.

В Access имеется целый ряд полезных помощников. Все они предназначены для облегчения работы с базой данных.

Эти помощники разделены на три основные группы.

Карточки подсказки.

Они могут дать совет при выполнении самых различных действий, например, при создании базы данных. Карточки подсказки содержат подробные пошаговые инструкции, помогающие выполнить все необходимые действия. Карточки подсказки могут помочь графическими примерами и прямыми указаниями.

Мастера.

В то время как Карточки подсказки лишь подают нужные советы во время работы, Мастера сами выполняют нужные действия. При вызове Мастера открывается соответствующая последовательность диалоговых окон. Получив ответы на заданные вопросы, Мастер выполняет все необходимые действия. Предположим, вы хотите сформировать отчет. Мастер отчетов спросит вас, как должен выглядеть отчет и какие данные он должен содержать. После получения ответов отчет будет полностью готов. С помощью других Мастеров можно формировать таблицы баз данных, запросы и формы.

Работа с Мастерами проста, надежна и эффективна, и позволяет использовать все богатство возможностей Microsoft Access.

Конструкторы.

Конструктор (Builder) – это инструмент Access, который облегчает выполнение конкретного задания. Крайне полезным является Конструктор выражений – он позволяет быстро сформировать сложное выражение. С помощью Конструктора запросов легко формируются запросы, которые используются для получения выборок данных для формы или отчета. Помимо перечисленных, в Access имеются и другие конструкторы. Это – макро-конструктор, с помощью которого формируются различные макросы, а также конструкторы меню, полей, цветов, кодов и другие.

Запросы и выборки.

Запросы используются для выбора из базы данных интересующей пользователя информации. Например, пользователя может заинтересовать, сколько клиентов его фирмы живет в Москве или каковы суммы выплаченной зарплаты сотрудникам его фирмы по подразделениям. Результат такого запроса называется выборкой. Под выборкой мы будем понимать динамическую таблицу с записями данных, которые удовлетворяют определенным условиям запроса.

Динамическая таблица запроса (Dynaset), в дальнейшем, выборка, – это таблица, формируемая всякий раз заново на основе реальных таблиц базы данных, содержимое которой удовлетворяет условиям запроса. С выборкой можно обращаться как с реальной таблицей – например, редактировать ее записи. Внесенные изменения будут отражены в записях реальных таблиц, стоящих за этой выборкой.

Основные типы запросов.

Стандартные запросы. Чаще всего используются стандартные запросы выбора, используемые для того, чтобы отобрать и представить в виде удобной динамической таблицы интересующие пользователя данные из таблиц базы данных.

Запросы на выполнение действия. Наряду со стандартными запросами выбора, можно выделить также запросы на выполнение действия, которые используются для создания новых реальных таблиц данных, в дальнейшем существующих уже независимо от тех таблиц базы, которые были использованы для их построения. Эти запросы позволяют также изменять таблицы базы данных: обновлять их, дополнять новыми записями или удалять некоторые записи.

С помощью запросов на выполнение действия можно перемещать или изменять табличные данные, обновлять, добавлять или удалять группы записей. Можно сформировать на основе выборки новую реальную таблицу данных, которая продолжит свое независимое существование и после закрытия запроса. Различают четыре вида запросов на выполнение действия.

Запрос на добавление. Можно добавлять отобранные записи из таблицы или запроса текущей базы данных в конец другой таблицы. Дополняемая таблица может находиться как в той же самой, так и в другой базе данных.

Запрос на удаление. С помощью запроса на удаление можно удалить группу записей данных, удовлетворяющих заданным условиям.

Запрос на обновление. Можно изменить группу записей данных, удовлетворяющих определенному условию.

Запрос на создание новой таблицы. Из выборки, являющейся динамической таблицей, сформированной при выполнении запроса и существующей только до окончания работы с результатами запроса, можно создать новую таблицу базы данных. Динамическая таблица является представлением данных других таблиц базы данных, и изменения, внесенные в выборку, будут отражены в записях таблиц, на основании которых эта выборка построена. Если же создать новую таблицу, она начнет свое независимое существование. Изменения в этой новой таблице не будут затрагивать использованные для ее построения исходные таблицы базы данных.

Параметрические запросы. Часто пользователю приходится иметь дело с запросами, устроенными в принципе одинаково, но имеющими некоторые различия в поставленных условиях отбора. В таком случае, чтобы каждый раз заново не создавать отдельный запрос, следует сформировать запрос с параметрами.

При выполнении запроса с параметрами Access запрашивает у пользователя значение параметров для определения условий выборки. Речь может идти, например, о выборе телефонов клиентов из определенного региона, причем интересующий пользователя регион изменяется от одного запроса к другому. В данном случае система запрашивает название региона.

Перекрестные запросы. Перекрестные запросы позволяют предста­вить данные в весьма наглядной, компактной форме сводных кросс-таблиц, осуществляя при этом разнообразную группировку записей и групповые вычисления при обработке данных.

В качестве заголовков строк и столбцов используются значения заданных полей или выражения.

К примеру, нужно представить информацию о ежемесячных объемах продажи по всем наименованиям товаров. Если просто сгруппировать записи по месяцам и наименованиям товаров, то каждое наименование товара появится в выборке двенадцать раз – по разу для каждого месяца. Если же представить данные в виде сводной кросс-таблицы, в строках которой данные группируются по наименованиям товаров, а в столбцах – по месяцам, то результирующая выборка будет намного компактнее и нагляднее.

Два способа формирования запросов.

По способу формирования запросы можно разделить на два вида:

Запросы по образцу или QBE-запросы, для определения которых пользователь должен указать параметры запроса в окне конструирования, задавая образцы для поиска информации.

Структурированные, или SQL-запросы, для определения которых пользователь должен описать запрос с помощью особого языка запросов, используя специальные команды и функции.

Практически любой запрос может быть сформулирован как в виде запроса по образцу, так и в виде SQL-запроса. Однако многие пользователи предпочитают работать с запросами по образцу, так как этот способ более наглядный, его легче освоить, не требуется учить команды и функции структурированного языка запросов.

При определении запроса по образцу Access автоматически формирует соответствующий SQL-запрос.

Основной тип запросов по образцу – это запросы на выбор. Пользователь может формировать запрос самостоятельно или обратиться к Мастерам запросов.

Формы данных.

В Access существует несколько способов ввода, редактирования и просмотра хранящейся в базе данных информации. Простейшим из них является следующий: открыть таблицу базы данных или запрос в табличном режиме – и можно вводить новые записи, удалять или редактировать старые, просматривать данные, относящиеся к этой таблице или запросу.

Однако есть и другой способ – подготовить формы данных, которые специально предназначены именно для наглядного представления информации из базы данных и могут существенно облегчить как ввод данных, так и восприятие хранящейся в базе данных информации.

Создание формы.

Пользователь может создать простейшую форму на основе уже существующей таблицы Access. Может выбрать, какие поля и в какой последовательности должны быть представлены в форме, разбить их на логически связанные группы и задать их расположение на экране.

Access позволяет создать несколько форм для различного вида информации, например, формы счетов, заказов, адресов покупателей (клиентов) и другие. Данные одной таблицы могут быть представлены в нескольких различных формах, в то же время в одной форме может быть представлена информация из различных таблиц базы данных. Формы могут содержать иллюстрации, а также графическое представление информации из базы данных в виде диаграмм.

Как и при разработке таблиц и запросов, при разработке форм можно воспользоваться помощью соответствующего Мастера. При создании формы с помощью Мастера пользователю предстоит «дать интервью», ответив на его вопросы в серии диалоговых окон. Результатом такого диалога с Мастером форм будет служить готовая к употреблению форма, которую при желании можно будет подвергнуть дальнейшему усовершенствованию.

Существуют пять видов форм, которые можно разработать с помощью Мастера форм:

В один столбец (SINGLE COLUMN)

Табличная форма (TABULAR)

Диаграмма (GRAPH)

Составная форма (MAIN/SUBFORM)

Простая форма (AUTOFORM).

Форма в один столбец.

Каждая запись данных представлена на отдельной странице формы. Для просмотра записей данных их необходимо пролистывать. Каждое поле данных находится в собственной строке. Поэтому имя и фамилия или индекс и место жительства представлены в отдельных строках, так как в данном случае речь идет об отдельных полях.

Подписи полей в форме соответствуют именам полей таблицы или их подписям, если они были заданы при определении свойств полей таблицы (в нижней части окна конструирования). Это, пожалуй, самый распространенный вид формы.

Табличная форма.

Этот вид формы напоминает обыкновенное табличное представление запроса или таблицы базы данных. В табличной форме на одном листе одновременно представлено несколько записей данных. При этом каждая запись данных занимает отдельную строку. Каждое поле данных находится в отдельном столбце, а название поля располагается в шапке столбца. Внешний вид такой формы может быть очень похож на стандартное представление таблицы базы данных.