информационные технологии. 104- Информационные технологии_Корнеев, Ксандопуло, Машурцев_Уче. Информационные технологии И. К. Корнеев, Г. Н. Ксандопуло, В. А. Машурцев
![]()
|
Глава 11 СИСТЕМЫ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ 11.1. Сущность и основные понятия систем управления базами данных Практически в любой сфере человеческой деятельности приходится в той или иной мере собирать, хранить и использовать различные данные. При этом используются разные способы и технологии работы с ними: внешне бессистемные (но понятные владельцу) записи в личных записных книжках, упорядоченная регистрация информации в журналах, ведение систематизированных картотек, обработка документов в организованном комплексе делопроизводства и т. п. При всем разнообразии упомянутых методов и средств можно выделить общие признаки, характеризующие работу с данными: собираемые, хранимые и обрабатываемые данные относятся к определенной и ограниченной области деятельности, характерной для людей, их использующих, и называемой предметной областью', сами данные разбиты на определенные компоненты, различным образом связанные друг с другом, т. е. они структурированы и упорядочены; имеются определенные методы поиска и извлечения (выборки) необходимой информации и ее представления. Совокупность структурированных и упорядоченных данных, относящихся к определенной предметной области, называется базой данных (БД), а система методов и средств сбора, регистрации, хранения, упорядочения, поиска, выборки и представления информации в БД называется системой управления базой данных (СУБД). При значительных объемах информации, хранящейся в БД, или при существенной ее значимости для деятельности возникает проблема надежности и скорости обработки данных. Эта проблема во многом может быть решена за счет использования компьютерных технологий. Соответствующие СУБД получили довольно широкое распространение, и значительную их часть составляют системы, основывающиеся на реляционном подходе. В рамках этого подхода объекты, составляющие предметную область, описываются как совокупности атрибутов (свойств), находящихся в определенных отношениях (связях) друг с другом (отсюда и название реляционный: от англ.relation — отношение). Конкретная форма представления этой совокупности часто принимает вид таблицы. Рассмотрим пример. Данные о сотрудниках некоторой проектной организации включают в себя: табельный номер сотрудника; фамилию, имя и отчество; дату рождения; домашний адрес; домашний телефон; дату поступления на работу; место работы; служебный телефон; должность; оклад; надбавку за стаж работы; проект, в котором участвует сотрудник; надбавку за участие в проекте. Эти данные можно представить в виде таблицы, в которой каждому виду данных соответствует свой столбец, а каждому конкретному сотруднику — строка (табл. 11.1). Каждая строка этой таблицы (отношения) называется записью, а ее отдельный элемент, соответствующий тому или иному столбцу, — полем. Таблица 11.1 представляет собой лишь небольшой фрагмент БД, но его свойства весьма показательны. Во-первых, некоторые поля являются достаточно сложными и содержат данные, которые можно (и нужно) разбить на более мелкие компоненты (это поля, содержащие фамилию, имя и отчество, даты, адрес, место работы). Во-вторых, по отдельным полям данные в различных записях дублируются, что не оправдано с точки зрения затрат на хранение (сведения о надбавках). Так, второе поле должно быть разбито на три компонента, со- держащиё по отдельности фамилию, имя и отчество сотрудника; третье и шестое поля с датами также необходимо разбить на три — с числом, месяцем и годом; в поле с домашним адресом надо выделить первый компонент, указывающий на регион (Москва или Московская область); а поле с указанием места работы разделить на два — номер отдела и номер помещения. Для исключения хранения излишней информации из табл. 11.1 необходимо убрать поля, касающиеся свойств объектов, отличных от персонала, и создать для них свои отношения: «Отдел» (табл! 11.3) и «Проект» (табл. 11.4), «Надбавки» (табл. 11.5). Тогда отношение «Персонал» будет описано табл. 11.2. Описанные действия по представлению данных в теории и практике создания БД называют нормализацией. В каждом отношении (таблице) одно из полей должно играть роль первичного ключа, однозначно идентифицирующего конкретную запись, т. е. имеющего уникальное значение для каждой записи. В отношении «Персонал» это табельный номер, в отношении «Отдел» — номер отдела, в отношении «Проект» — наименование проекта, в отношении «Надбавки» — стаж работы. Некоторые из остальных полей отношений могут выполнять роль вторичных ключей, по значениям которых могут осуществляться различные операции: поиск и выборка данных. Представленные в табл. 11.2—11.5 отношения связаны друг с другом через отдельные поля: отношения «Персонал» и «Отдел» — через поле «Номер отдела» (соответственно вторичный и первичный ключи); отношения «Персонал» и «Проект» — через поле «Название проекта» (соответственно вторичный и первичный ключи). Связь отношений «Персонал» и «Надбавки» осуществляется через поля «Дата поступления на работу» (составной вторичный ключ) и «Стаж работы» (первичный ключ), но не непосредственно, а через процедуру вычисления стажа работы по значению даты поступления на работу. Представленное в описанном примере структурирование и упорядочивание данных в целом характерно для всех систем управления БД и для различных программ отличается в деталях. Сведения о персонале проектной организации
Таблица 11.2 Отношение «Персонал»
11.2. Компьютерные системы управления базами данных Системой управления базами данных называют программную систему, предназначенную для создания на ЭВМ общей БД, используемой для решения множества задач. Подобные системы служат для поддержания БД в актуальном состоянии и обеспечивают эффективный доступ пользователей к содержащимся в ней данным в рамках предоставленных пользователям полномочий. К наиболее популярным СУБД для вычислительных систем класса персональных компьютеров относятся dBASE IV, Microsoft Access, FoxPro, Paradox. Для более мощных систем предназначены СУБД Oracle, Informix. В определенной степени возможности управления данными имеются и у большинства современных табличных процессоров. По степени универсальности различают два класса СУБД: системы общего назначения; специализированные системы. СУБД общего назначения не ориентированы на какую-либо предметную область или на информационные потребности какой- либо группы пользователей. Каждая система такого рода реализуется как программный продукт, способный функционировать на некоторой модели ЭВМ в определенной операционной системе. Специализированные СУБД создаются в редких случаях при невозможности или нецелесообразности использования СУБД общего назначения. СУБД общего назначения — это сложные программные комплексы, предназначенные для выполнения всей совокупности функций, связанных с созданием и эксплуатацией БД информационной системы. Используемые в настоящее время СУБД обладают средствами обеспечения целостности данных и надежной безопасности, что дает возможность разработчикам гарантировать большую безопасность данных при меньших затратах сил на низкоуровневое программирование. Продукты, функционирующие в среде Windows, выгодно отличаются удобством пользовательского интерфейса и встроенными средствами повышения производительности. Рассмотрим основные характеристики некоторых СУБД — лидеров на рынке программ, предназначенных как для разработчиков информационных систем, так и для конечных пользователей. Производительность СУБД Производительность СУБД оценивается: временем выполнения запросов; скоростью поиска информации в неиндексированных полях; временем выполнения операций импортирования БД из других форматов; скоростью создания индексов и выполнения таких массовых операций, как обновление, вставка, удаление данных; максимальным числом параллельных обращений к данным в многопользовательском режиме; временем генерации отчета. На производительность СУБД оказывают влияние два фактора: СУБД, которые следят за соблюдением целостности данных, несут дополнительную нагрузку, которую не испытывают другие программы; производительность собственных прикладных программ сильно зависит от правильного проектирования и построения БД. Обеспечение целостности данных на уровне БД Эта характеристика подразумевает наличие средств, позволяющих удостовериться, что информация в БД всегда остается корректной и полной. Должны быть установлены правила целостности, и они должны храниться вместе с БД и соблюдаться на глобальном уровне. Целостность данных должна обеспечиваться независимо от того, каким образом данные заносятся в память (в интерактивном режиме, посредством импорта или с помощью специальной программы). К средствам обеспечения целостности данных на уровне СУБД относятся: встроенные средства для назначения первичного ключа, в том числе средства для работы с типом полей с автоматическим приращением, когда СУБД самостоятельно присваивает новое уникальное значение; средства поддержания ссылочной целостности, которые обеспечивают запись информации о связях таблиц и автоматически пресекают любую операцию, приводящую к нарушению ссылочной целостности. Некоторые СУБД имеют хорошо разработанный процессор СУБД для реализации таких возможностей, как уникальность первичных ключей, ограничение (пресечение) операций и даже каскадное обновление и удаление информации. В таких системах проверка корректности, назначаемая полю или таблице, будет проводиться всегда после изменения данных, а не только во время ввода информации с помощью экранной формы. Это свойство можно настраивать для каждого поля и для записи в целом, что позволяет контролировать не только значения отдельных полей, но и взаимосвязи между несколькими полями данной записи. Обеспечение безопасности Некоторые СУБД предусматривают средства обеспечения безопасности данных. Такие средства обеспечивают выполнение следующих операций: шифрование прикладных программ; шифрование данных; защиту паролем; ограничение уровня доступа (к БД, к таблице, к словарю, для пользователя). Работа в многопользовательских средах Обработка данных в многопользовательских средах предполагает выполнение программным продуктом следующих функций: блокировку БД, файла, записи, поля; идентификацию станции, установившей блокировку; обновление информации после модификации; контроль за временем и повторение обращения; обработку транзакций (транзакция — последовательность операций пользователя над БД, которая сохраняет ее логическую целостность); работу с сетевыми системами. Импорт-экспорт Эта характеристика отражает: возможность обработки СУБД информации, подготовленной другими программными средствами; возможность использования другими программами данных, сформированных средствами СУБД. Возможности запросов и инструментальные средства разработки прикладных программ СУБД, ориентированные на разработчиков, обладают развитыми средствами для создания приложений. К элементам инструментария разработки приложений можно отнести: мощные языки программирования; средства реализации меню, экранных форм ввода-вывода данных и генерации отчетов; средства генерации приложений (прикладных программ); генерацию исполнимых файлов. Функциональные возможности доступны пользователю СУБД благодаря ее языковым средствам. Реализация языковых средств интерфейсов может быть осуществлена различными способами. Для высококвалифицированных пользователей (разработчиков сложных прикладных систем) языковые средства чаще всего представляются в их явной синтаксической форме. В других случаях функции языков могут быть доступны косвенным образом, когда они реализуются в форме различного рода меню, диалоговых сценариев или заполняемых пользователем таблиц. По таким входным данным интерфейсные средства формируют адекватные синтаксические конструкции языка интерфейса и передают их на исполнение или включают в генерируемый программный код приложения. Интерфейсы с неявным использованием языка широко используются в СУБД для персональных ЭВМ. Примером такого языка является язык QBE (Query-By-Example). Языковые средства используются для выполнения двух основных функций: описания представления БД; выполнения операций манипулирования данными. Первая из этих функций обеспечивается языком описания (определения) данных (ЯОД). Описание БД средствами ЯОД называется схемой базы данных. Оно включает описание структуры БД и налагаемых на нее ограничений целостности в рамках тех правил, которые регламентированы моделью данных используемой СУБД. ЯОД некоторых СУБД обеспечивают также возможности задания ограничений доступа к данным или полномочий пользователей. ЯОД не всегда синтаксически оформляется в виде самостоятельного языка. Он может быть составной частью единого языка данных, сочетающего возможности определения данных и манипулирования данными. Язык манипулирования данными (ЯМД) позволяет запрашивать предусмотренные в системе операции над данными из БД. Имеются многочисленные примеры языков СУБД, объединяющих возможности описания данных и манипулирования данными в единых синтаксических рамках. Популярным языком такого рода является реляционный язык SQL (Structured Query Language). 11.3. Организация взаимодействия пользователя с СУБД Типовая структура интерфейса При работе с СУБД на экран выводятся рабочее поле и панель управления. Цанель управления при этом включает меню, вспомогательную область управления и строку подсказки. Расположение этих областей на экране может быть произвольным и зависит от особенностей конкретной программы. Некоторые СУБД позволяют выводить на экран окно директив (командное окно) или строку команд. Строка меню содержит основные режимы программы. Выбрав один из них, пользователь получает доступ к ниспадающему подменю, содержащему перечень входящих в него команд. В результате выбора некоторых команд ниспадающего меню появляются дополнительные подменю. Вспомогательная область управления включает: строку состояния; панели инструментов; вертикальную и горизонтальную линейки прокрутки. Встроке состояния (статусной строке) пользователь найдет сведения о текущем режиме работы программы, имени файла текущей БД и т. п.Панельинструментов (пиктографическое меню) содержит определенное количество кнопок (пиктограмм), предназначенных для быстрой активизации выполнения определенных команд меню и функций программы. Чтобы представить на экране области таблицы БД, формы или отчета, которые на нем в настоящий момент не отображены, используют вертикальную и горизонтальную линейки прокрутки. Строка подсказки предназначена для выдачи сообщений пользователю относительно его возможных действий в данный момент. Важная особенность СУБД — использование буфера промежуточного хранения при выполнении ряда операций. Буфер используется при выполнении команд копирования и перемещения для временного хранения копируемых или перемещаемых данных, после чего они направляются по новому адресу. При удалении данных они также помещаются в буфер. Содержимое буфера сохраняется до тех пор, пока в него не будет записана новая порция данных. Программы СУБД имеют достаточное количество команд, у каждой из которых возможны различные параметры (опции). Такая система команд совместно с дополнительными опциями образует меню со своими особенностями для каждого типа СУБД. Выбор определенной команды из меню производится одним из следующих способов: наведением курсора на выбранную в меню команду при помощи клавиш управления курсором и нажатием клавиши ввода; вводом с клавиатуры первой буквы выбранной команды. Получить дополнительную информацию о командах, составляющих меню СУБД, и их использовании можно, войдя в режим помощи. Несмотря на особенности СУБД, совокупность команд, предоставляемых в распоряжение пользователю некоторой усредненной системой управления БД, может быть разбита на следующие типовые группы: команды для работы с файлами; команды редактирования'; команды форматирования; команды для работы с окнами; команды для работы в основных режимах СУБД (таблица, форма, запрос, отчет); получение справочной информации. Команды для работы с файлами При работе с файлами программа дает возможность пользователю: создавать новые объекты БД; сохранять и переименовывать ранее созданные объекты; открывать уже существующие БД; закрывать ранее открытые объекты; выводить на устройство печати объекты БД. Процесс печати начинается с выбора драйвера принтера. Для каждого типа принтера необходим свой драйвер. Следующий шаг состоит в задании параметров страницы, формировании колонтитулов, а также в выборе вида и размера шрифта. Далее следует установить число копий, качество печати и количество или номера печатаемых страниц. Команда предварительного просмотра позволяет получить представление об общем виде выводимой на приктер информации еще до печати. Размещение информации на странице может быть оптимально приспособлено к ее выбранным параметрам посредством масштабирования и центрирования. В некоторых СУБД в рассматриваемую группу команд введены команды, обеспечивающие возможность экспорта-импорта и присоединения таблиц, созданных другими программными средствами. Команды редактирования Ввод данных и изменение содержимого любых полей таблиц БД, компонентов экранных форм и отчетов осуществляются с помощью группы команд редактирования, главными из которых являются перемещение, копирование и удаление. Наряду с вышеуказанными операциями большая группа программ СУБД обладает возможностями вставки диаграммы, рисунка и т. п, включая объекты, созданные в других программных средах, установление связей между объектами. Среди команд редактирования особое место занимают команды нахождения и замены определенного пользователем контекста в рамках всего документа или выделенной его части, а также отмена последней введенной команды (откатка). Команды форматирования Важное значение имеет визуальное представление данных при выводе. Большинство СУБД предоставляют в распоряжение пользователя большое число команд, связанных с оформлением выводимой информации. При помощи этих команд пользователь может варьировать направление выравнивания данных, виды шрифта, толщину и расположение линий, высоту букв, цвет фона и т. п. При выполнении команды форматирования следует выделить область, на которую распространяется действке команды. Если этого не сделать, то новые параметры форматирования будут определены только для активного компонента. Выбор формата и направления выравнивания производится автоматически в зависимости от характера вводимых данных. Данные, интерпретируемые программой как текст, выравниваются по левому краю, а числа — по правому. Автоматический выбор формата и способа выравнивания производится только в том случае, если для заполняемых ячеек пользователем предварительно не заданы другие параметры. Команды для работы с окнами Большинство СУБД дает возможность открывать одновременно множество окон, организуя тем самым «многооконный режим» работы. При этом некоторые окна будут видны на экране, другие — находиться под ними. Открыв несколько окон, вы можете сразу работать с несколькими таблицами, быстро перемещаясь от одной к другой. Существуют специальные команды, позволяющие открывать новое окно, переходить в другое окно, изменять взаимное расположение и размеры окон на экране. Кроме того, у пользователя имеется возможность разделить окно на две части для одновременного просмотра различных частей большой таблицы или фиксировать некоторую часть таблицы, которая не будет исчезать с экрана при перемещении курсора в дальние части таблицы. Система получения справочной информации СУБД имеют в своем составе электронные справочники, предоставляющие пользователю инструкции о возможностях выполнения основных операций, информацию по конкретным командам меню и другие справочные данные. Особенностью получения справочной информации с помощью электронного справочника является то, что он выдает информацию в зависимости от ситуации, в которой оказался пользователь. Так, если в меню пользователем была выбрана определенная команда, то после обращения к справочной системе (обычно инициируется клавишей 11.4. Обобщенная технология работы Каждая конкретная СУБД имеет свои особенности, которые необходимо учитывать. Однако, имея представление о функциональных возможностях любой СУБД, можно представить обобщенную технологию работы пользователя в1 этой среде. В качестве основных этапов обобщенной технологии работы с СУБД, которая схематично представлена на рис. 11.1, можно выделить следующие: создание структуры таблиц БД; ввод и редактирование данных в таблицах; обработка данных, содержащихся в таблицах; вывод информации из БД. ![]() Рис. 11.1 Рисунок обобщённой технологии работы с СУБД Создание структуры таблиц БД При формировании новой таблицы БД работа с СУБД начинается с создания структуры таблицы. Этот процесс включает определение перечня полей, из которых состоит каждая запись таблицы, а также типов и размеров полей. Для каждого поля записи назначается его имя (идентификатор). Практически все используемые СУБД хранят данные следующих типов: текстовый (символьный): для текстовой информации; числовой: для чисел с возможностью выполнения над ними математических операций; календарный: для хранения информации о дате и времени; логический: для хранения одного из двух возможных значений «Истина» («True») или «Ложь» («False»); примечание: для хранения комментариев. Некоторые СУБД формируют поля специального типа, содержащие уникальные номера записей и используемые для определения ключа. СУБД, предназначенные для работы в Windows, могут формировать поля типа объекта OLE, которые используются для хранения рисунков, графиков, таблиц. Если обрабатываемая БД включает несколько взаимосвязанных таблиц, то необходимо определение ключевого поля в каждой таблице, а также полей, с помощью которых будет организована связь между таблицами. Создание структуры таблицы не связано с заполнением таблиц данными, поэтому эти две операции можно разнести во времени. Ввод и редактирование данных Заполнение таблиц данными возможно как непосредственным вводом данных, так и в результате выполнения программ и запросов. Практически все СУБД позволяют вводить и корректировать данные в таблицах двумя способами: с помощью предоставляемой по умолчанию стандартной формы в виде таблицы; с помощью экранных форм, специально созданных для этого пользователем. СУБД, работающие с Windows, позволяют вводить в созданные экранные формы рисунки, узоры, кнопки. Возможно построение форм, наиболее удобных для работы пользователя, включающих записи различных связанных таблиц БД. Обработка данных, содержащихся в таблицах Обрабатывать информацию, содержащуюся в таблицах БД, можно путем использования запросов или в процессе выполнения специально разработанной программы. Конечный пользователь получает при работе с СУБД такое удобное средство обработки информации, как запросы. Запрос представляет собой инструкцию на отбор записей. Большинство СУБД разрешают использовать запросы следующих типов: запрос-выборка, предназначенный для отбора данных, хранящихся в таблицах, и не изменяющий этих данных; запрос-изменение, предназначенный для изменения или перемещения данных; к этому типу запросов относятся: запрос на добавление записей, запрос на удаление записей, запрос на создание таблицы, запрос на обновление; запрос с параметром, позволяющий определить одно или несколько условий отбора во время выполнения запроса. Самым распространенным типом запроса является запрос на выборку. Результатом выполнения запроса является таблица с временным набором данных (динамический набор). Записи динамического набора могут включать поля из одной или нескольких таблиц БД. На основе запроса можно построить отчет или форму. Вывод информации из БД Практически любая СУБД позволяет вывести на экран и принтер информацию, содержащуюся в БД, из режимов таблицы или формы. Такой порядок вывода данных может использоваться только как черновой вариант, поскольку позволяет выводить данные только точно в таком же виде, в каком они содержатся в таблице или форме. Каждый пользователь, работающий с СУБД, имеет возможность использования специальных средств построения отчетов для вывода данных. Используя эти средства создания отчетов, пользователь получает следующие дополнительные возможности вывода данных: включать в отчет выборочную информацию из таблиц БД; добавлять информацию, не содержащуюся в БД; при необходимости выводить итоговые данные на основе информации БД; располагать выводимую в отчете информацию в любом, удобном для пользователя виде (вертикальное или горизонтальное расположение полей); включать в отчет информацию из разных связанных таблиц БД. |