Базы данных. 4

ВВЕДЕНИЕ

Важнейшая задача компьютерных систем - хранение и обработка данных. Для ее решения были предприняты  усилия, которые привели к появлению  в конце 60-х - начале 70-х годов специализированного  программного обеспечения - систем управления базами данных (database management systems). СУБД позволяют  структурировать, систематизировать  и организовать данные для их компьютерного  хранения и обработки. Невозможно представить  себе деятельность современного предприятия  или учреждения без использования  профессиональных СУБД. Несомненно, они  составляют фундамент информационной деятельности во всех сферах - начиная  с производства и заканчивая финансами  и телекоммуникациями.

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

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

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

  1. БАЗА ДАННЫХ. ОСНОВНЫЕ ПОНЯТИЯ БАЗ ДАННЫХ

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

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

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

Основные функции СУБД:

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

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

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

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

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

● средства задания структуры  данных;

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

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

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

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

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

Архитектура СУБД состоит  из двух основных компонентов: языка  описания данных и языка манипулирования  данными. Язык описания данных (ЯОД) — средства описания данных в БД и связей между ними. Средствами этого языка описывается структура БД, форматы записей, пароли, защищающие данные.

Язык манипулирования  данными (ЯМД) — язык для выполнения операций над данными, позволяющий  менять их строение. Для разных СУБД реализация этих уровней языков может  быть различной. В одних случаях  ЯОД и ЯМД требует составления  пользователем программы полностью  «вручную», в других (что отражает современную тенденцию) СУБД   присутствуют   средства   визуальной   (зримой,   наглядной) разработки   программ.   Для   этого   в   современных     СУБД   имеются редакторы экранных форм, отчетов. «Кирпичиками» (инструментами) таких редакторов являются поля различных  видов (поля ввода, поля вывода,   вычисляемые   поля),   процедуры   обработки   различных   типов (формы   ввода,   таблицы,   отчеты,   запросы).   На   основании   созданных пользователем   объектов   программы–генераторы   формируют программный код на языке конкретной машины или на промежуточном  языке.

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

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

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

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

● тип   поддерживаемой   модели   данных,   специфика   предметной области и т.п.;

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

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

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

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

Кратко рассмотрим характеристики наиболее известных СУБД.

Paradox

Paradox был разработан компанией  Ansa Software. В конце 80–х — начале 90–х годов Paradox, принадлежавший  тогда компании Borland International, был  весьма популярной СУБД, в том  числе и в нашей стране,   где   он   одно   время   занимал   устойчивые   позиции   на   рынке средств разработки  настольных приложений с базами  данных.

Принцип   хранения   данных   в   Paradox   сходен   с   принципами хранения данных в dBase. Однако, в отличие от dBase, формат данных Paradox не является открытым, поэтому  для доступа к данным этого  формата требуются специальные  библиотеки.

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

 

 

Microsoft FoxPro и Visual FoxPro

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

Впоследствии этот продукт  был приобретен компанией Microsoft. Его  последние версии (начиная с версии 3.0, выпущенной в 1995 г.) получили   название  Visual  FoxPro.   В   состав   Visual  FoxPro  в  течение  нескольких последних лет входят средства переноса данных FoxPro в SQL Server и средства доступа к данным этого  сервера из Visual FoxPro и созданных  с его помощью приложений.

Одна из последних версий этого продукта — Visual FoxPro 6.0 — доступна и отдельно, и как составная  часть Microsoft Visual Studio 6.0. Отличительной   особенностью   этой   настольной   СУБД   от   двух рассмотренных   выше   является   интеграция   этого   продукта   с технологиями Microsoft, в частности поддержка COM (Component Object Model   —   компонентная   объектная   модель,   являющаяся   основой функционирования   32–разрядных   версий   Windows   и   организации  распределенных вычислений в этой операционной системе), интеграция с   Microsoft   SQL   Server,   возможности   создания   распределенных приложений,   основанных   на   концепции   Windows   DNA   (Distributed interNet Applications).

Microsoft Access

Первая версия СУБД Access появилась  в начале 90–х годов. Это была первая настольная реляционная СУБД для 16–разрядной версии Windows. Популярность Access значительно  возросла после включения этой СУБД в состав Microsoft Office.

В   отличие   от   Visual   FoxPro,   фактически   превратившегося   в средство   разработки   приложений,   Access   ориентирован   в   первую очередь  на пользователей Microsoft Office, в том  числе и незнакомых с программированием.   Это,   в   частности,   проявилось   в   том,   что   вся информация,   относящаяся   к   конкретной   базе   данных,   а   именно таблицы, индексы (естественно, поддерживаемые), правила ссылочной целостности, бизнес–правила, список пользователей, а также формы и отчеты хранятся в одном файле, что в целом  удобно для начинающих пользователей.

Поддержка   COM   в   Access   выражается   в   возможности  использовать элементы управления ActiveX в формах и Web–страницах, созданных  с  помощью  Access.  В  отличие   от  Visual  FoxPro  создание COM–серверов  с помощью Access не предполагается.

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

В Microsoft Access пользователь может  выбрать, какой механизм доступа   к   данным   следует   применять:   Microsoft   Jet   —   стандартный  набор   библиотек   доступа   к   данным   или   MSDE   (в   этом   случае управление   базой   данных   осуществляется   с   помощью   отдельного процесса). Возможно преобразование имеющихся  баз данных Access в базу данных MSDE из среды разработки Access.

OpenOffice.org Base

OpenOffice.org   Base   является   некоммерческим   аналогом   СУБД Microsoft   Access.  Сама   программа   очень   проста   и   приятна   в использовании. Но за всей  ее простотой есть много функций.  Как уже сложилось   у   разработчиков   OpenOffice.org,   заголовки   меню   всех программ полностью  повторяют их аналоги от Microsoft.

Мастер   отчетов   отображает   нужный   вам   отчет   в   приложении Writer. Там  же можно вручную отредактировать  этот отчет, чего не может обеспечить Access. Следует учитывать, что при  всей похожести OpenOffice.org Base не совместим с Microsoft Access.

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

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

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

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

Существуют   разные   подходы   к   организации   баз   данных. Иерархические   базы   данных  —   в   основе   данной   модели   лежит иерархическая модель данных. В этой модели имеется один главный объект и остальные — подчиненные — объекты, находящиеся на разных уровнях   иерархии.   Взаимосвязи   объектов   образуют   иерархическое дерево   с   одним   корневым   объектом.   Иерархическая   БД   состоит   из упорядоченного набора нескольких экземпляров одного типа дерева. Автоматически поддерживается целостность ссылок между предками и потомками.   Основное   правило:   никакой   потомок   не   может существовать без своего родителя.

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

К современным базам данных относят  реляционные системы. Реляционные   системы   далеко   не   сразу   получили   широкое распространение. В то время как основные теоретические результаты в этой области были получены еще в 70–х годах и тогда же появились первые   прототипы   реляционных   СУБД,   долгое   время   считалось невозможным добиться эффективной реализации таких систем. Однако постепенное   накопление   методов   и   алгоритмов   организации реляционных баз данных и управления ими привели к тому, что уже в середине 80–х годов реляционные системы практически вытеснили с мирового   рынка   ранние   СУБД.   Реляционная   модель   данных основывается   на   математических   принципах,   вытекающих непосредственно   из   теории   множеств   и   логики   предикатов.   Эти принципы впервые были применены в области моделирования данных в конце 60–х годов доктором Е.Ф. Коддом, в то время работавшим в IBM, а впервые опубликованы в 1970 г.

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

Каждая   таблица   состоит   из   строк   и   столбцов,   которые   в компьютерной   базе   данных   называются   записями   и   полями соответственно. Каждая запись содержит информацию об отдельном объекте системы: одном  ученике в школе, одной книге  в библиотеке и т.п.   А   каждое   поле  —  это   определенная   характеристика   (свойство, атрибут) объектов: фамилия  ученика, год рождения, название книги, автор книги и т.п. Поля таблицы  должны иметь несовпадающие имена. Каждое поле таблицы имеет определенный тип. Тип — это множество значений,   которые   поле   может   принимать,   и   множество   операций, которые можно выполнять  над этими значениями. Существуют четыре основных   типа   для   полей   баз   данных:   символьный,   числовой, логический и дата. Например, для полей таблицы  «Библиотека» могут быть установлены  следующие типы (табл. 1):

Таблица 1

Поле

Тип

Автор, название, издательство

Символьный

Инв_номер, год_изд

Числовой

Дата_поступления

Дата


 

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

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

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

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

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

● Таблица содержит нуль или более записей.

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

● Таблица не может содержать  двух полностью идентичных записей. Приведем два примера первых двух нормальных форм. Первая нормальная   форма   (1NF).  Таблица   находится   в   первой   нормальной форме, если каждый ее атрибут атомарен и  все строки различны. Под выражением   «атрибут   атомарен»   понимается,   что   атрибут   может содержать  только одно значение. Таким образом, не соответствуют 1NF таблицы,   в   полях   которых   могут   храниться   списки   значений.   Для приведения   таблицы   к   1NF   обычно   требуется   разбить   таблицу   на несколько  отдельных таблиц, например, исходная, ненормализованная, таблица (табл. 2):

Таблица 2

Сотрудник

Номер телефона

Иванов И. П.

25–56–82

39–89–34

Семенова А. Ю.

58–92–34


 

Таблица, приведенная к 1NF (табл. 3):

Таблица 3

Сотрудник

Номер телефона

Иванов И. П.

25–56–82

Иванов И. П.

39–89–34

Семенова А. Ю.

58–92–34


 

Теперь   разберем   пример   второй   нормальной   формы   (2NF). Таблица находится  во второй нормальной форме, если она  находится в первой нормальной форме, и при этом любой ее атрибут, не входящий в состав первичного ключа, функционально полно зависит  от первичного ключа.   Функционально   полная   зависимость   означает,   что   атрибут функционально зависит от всего первичного ключа, но при этом не находится  в  функциональной   зависимости   от   какой–либо   его  части. Пример приведения таблицы ко второй нормальной форме (табл. 4):

Таблица 4

Сотрудник

Должность

Зарплата

Иконников

Директор

30 000

Семенов

Завуч

25 000

Селезнева

Завуч

25 000


В результате приведения к 2NF получим две таблицы (табл. 5 и 6):

Таблица 5

Сотрудник

Должность

Иконников

Директор

Семенов

Завуч

Селезнева

Завуч


Таблица 6

Должность

Зарплата

Директор

30 000

Завуч

25 000


 

Обычно   выделяют   пять   нормальных   форм.  

Объекты базы данных

Если в базе нет никаких  данных (пустая база), то это все равно  полноценная база данных. Этот факт имеет методическое значение. Хотя данных в базе и нет, но информация в ней все–таки есть  —  это  структура базы. Она определяет методы занесения данных и хранения их в  базе. Простейший «не компьютерный»  вариант базы данных  — деловой  ежедневник, в котором каждому  календарному дню выделено по странице. Даже если в нем не записано ни строки, он не перестает быть ежедневником, поскольку имеет структуру, четко отличающую его от   записных   книжек,   рабочих   тетрадей   и   прочей   писчебумажной продукции.

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

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

Рассмотрим   объекты   базы   данных   (на   примере   СУБД OpenOffice.org Base).

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

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

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

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

 

 

 

 

 

 

 

 

 

2. БЕЗОПАСНОСТЬ БАЗ ДАННЫХ

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