Многообразие характеристик и видов баз данных порождает многообразие классификации. Рассмотрим основные виды классификации.
По технологии обработки данных базы данных подразделяются на централизованные и распределенные.
Централизованная база данных хранится в памяти одной вычислительной системы, к которой подключены несколько других компьютеров.
Распределенная база данных состоит из нескольких, возможно пересекающихся или даже дублирующих друг друга частей, хранимых в различных ПК компьютерной сети. Работа с такой базой осуществляется с помощью системы управления распределенной базой данных (СУРБД).
По способу доступа к данным базы данных подразделяются на базы данных с локальным доступом и базы данных с удаленным (сетевым) доступом.
Системы централизованных баз данных с сетевым доступом предполагают различные архитектуры подобных систем:
Файл – сервер. Согласно этой архитектуре в компьютерной сети выделяется машина – сервер для хранения файлов централизованной базы данных. Файлы базы данных могут быть переданы на рабочие станции для обработки: ввода, корректировки, поиска записей. При большой интенсивности доступа к одним и тем же файлам производительность системы падает. В этой системе сервер и рабочие станции должны быть реализованы на достаточно мощных компьютерах.
На данный момент файл – серверные СУБД считаются устаревшими.
Примеры: Microsoft Access, Borland Paradox.
Клиент – сервер – архитектура, используемая не только для хранения файлов централизованной базы данных на сервере, но и выполняющая на том же сервере основной объем работы по обработке данных. Таким образом, при необходимости поиска информации в базе данных рабочим станциям – клиентам передаются не файлы данных, а уже записи, отобранные в результате обработки файлов данных. Такая архитектура позволяет использовать маломощные компьютеры в качестве рабочих станций, но обязательно в качестве сервера используется очень мощный компьютер.
Примеры: Firebird, Interbase, MS SQL Server, Sybase, Oracle, MySQL,
PostgreSQL.2
Прежде чем создавать базу данных, с которой вам придется работать, необходимо выбрать модель данных, наиболее удобную для решения поставленной задачи.
Модель данных – совокупность структур данных и операций их обработки.
С помощью модели данных могут быть представлены объекты предметной области и взаимосвязи между ними. Модели данных, которые поддерживают СУБД, а, следовательно, и сами СУБД делят на:
иерархические;
сетевые;
реляционные.
В иерархической модели данные представляются в виде древовидной (иерархической) структуры (рис. 2). Она удобна для работы с иерархически упорядоченной информацией и громоздка для информации со сложно логи-ческими связями.
К основным понятиям иерархической структуры относятся: уровень, элемент (узел), связь.
Узел – это совокупность атрибутов данных, описывающих некоторый объект. Каждый узел на более низком уровне связан только с одним узлом, находящимся на более высоком уровне.
Иерархическое дерево имеет только одну вершину (корень дерева), не подчиненную никакой другой вершине и находящуюся на самом верхнем (первом) уровне. Зависимые (подчиненные) узлы находятся на втором, третьем и т.д. уровнях. Количество деревьев в базе данных определяется числом корневых записей. В каждой записи базы данных существует только один (иерархический) путь от корневой записи.
Несмотря на кажущуюся целесообразность, для получения ответов на некоторые запросы в иерархической модели требуется выполнение большого числа операций. Например, чтобы узнать о практических занятиях по всем дисциплинам БЮИ требуется просмотреть все записи «Практическое занятие», имеющиеся в данной базе.
Сетевая (полносвязная) база данных. В сетевой структуре базы данных при тех же основных понятиях иерархической базы данных: узел, уровень, связь – каждый элемент может быть связан с любым другим элементом. Недостатком такой модели данных является высокая сложность и жесткость схемы БД, построенной на ее основе.
Реляционная модель данных (РМД) название получила от английского термина Relation – отношение. Реляционная структура базы данных ориентирована на организацию данных в виде двумерных таблиц, называемых еще реляционными таблицами.
Каждая реляционная таблица обладает следующими свойствами:
каждый элемент таблицы - один элемент данных;
все столбцы в таблице однородные, т.е. все элементы в столбце имеют одинаковые характеристики и свойства;
каждый столбец имеет уникальное имя;
одинаковые строки в таблице отсутствуют;
порядок следования строк и столбцов может быть произвольным.
Понятие реляционный (relation – отношение) связано с разработками известного американского специалиста в области баз данных Э. Кодда. В основу реляционной базы данных положено понятие алгебры отношения и реляционного исчисления.
Реляционный подход к построению базы данных предполагает отображение реальных объектов (явлений, событий, процессов) в виде информационных объектов или объектов предметной области. Информационные объекты описывают реальные с помощью совокупности взаимосвязанных реквизитов.
Отношения представлены в виде таблиц, строки которых представляют записи, а столбцы – атрибуты отношений – поля. Если значение поля однозначно определяет соответствующую запись, то такое поле называют ключевым.
Имеется возможность связать две реляционные таблицы, если ключ одной таблицы ввести в состав ключа другой таблицы (рис. 3).
Так, если ключом таблицы книга будет выбран «№ в каталоге», то та-кую таблицу можно связать, например, с таблицей «Список библиотечного фонда». В этой таблице кроме полей, определяющих оценки по дисциплинам сессии, обязательно должно быть поле «№ в каталоге». Таким образом, между этими таблицами может быть установлена связь по этому ключевому полю.
Информация, введенная в одну реляционную таблицу, может быть связана с одной или несколькими записями другой таблицы.
Реляционная база данных является объединением нескольких двумерных таблиц, между которыми установлены связи.
Между записями двух таблиц могут быть установлены следующие основные виды связей:
один к одному – эта связь предполагает, что в каждый момент времени одному экземпляру информационного объекта А соответствует не более одного экземпляра информационного объекта В и наоборот; например, начальник курса – курс;
один к многим – эта связь предполагает, что одному экземпляру информационного объекта А соответствует 0, 1, 2 или более экземпляров объекта В, но каждый экземпляр объекта В связан не более чем с 1 экземпляром объекта А, например, начальник курса – курсант;
многие к многим – эта связь предполагает, что в каждый момент времени одному экземпляру информационного объекта А соответствует 0, 1, 2 или более экземпляров объекта В и наоборот, например, учебная дисциплина - курсант.
Одни и те же данные могут группироваться в таблицы различными способами, т.е. возможна различная форма наборов отношений взаимосвязанных информационных объектов.
При этом должен выполняться принцип нормализации:
в одной и той же таблице не может находиться повторяющихся полей;
в каждой таблице ключ должен однозначно определять запись из множества записей;
значению ключа должно соответствовать исчерпывающая информация об объекте таблицы;
изменение значения любого не ключевого поля не должно влиять на информацию в других полях.
В последние годы подавляющее большинство баз данных являются реляционными и практически все СУБД ориентированы на такое представление информации.
Системой управления базами данных называют программную систему, предназначенную для создания на ЭВМ общей базы данных для множества приложений, поддержания ее в актуальном состоянии и обеспечения эффективности доступа пользователей к содержащимся в ней данным в рамках предоставленных им полномочий. СУБД предназначена, таким образом, для централизованного управления БД как социальным ресурсом в интересах всей совокупностей ее пользователей. Доступ к базе данных отдельных пользователей при этом возможен только через посредство СУБД.
По степени их универсальности различаются два вида СУБД – системы общего назначения и специализированные системы. СУБД общего назначения не ориентированы на какую – либо конкретную предметную область или на информационные потребности конкретной группы пользователей. Каждая система такого рода реализуется как программный продукт, способный функционировать на некоторой модели ЭВМ в определенной обстановке, и поставляется многим пользователям как коммерческое изделие. СУБД общего назначения обладают средствами настройки на работу с конкретной БД в условиях конкретного применения.
Использование СУБД общего назначения в качестве инструментального средства для создания автоматизированных информационных систем, основанных на технологии БД, позволяет существенно сокращать сроки разработки, экономить трудовые ресурсы. Функциональные возможности, а также функциональная избыточность таких СУБД позволяют иметь значительный «запас мощности», необходимый для безболезненного эволюционного развития построенных на их основе информационных систем в рамках их жизненного цикла. Вместе с тем средства настройки дают возможность достигнуть приемлемого уровня производительности информационной системы в процессе ее эксплуатации.
Однако в некоторых случаях доступные СУБД общего назначения не позволяют добиться требуемых характеристик производительности и/или удовлетворить заданные ограничения по объему памяти, предоставляемой для хранения БД. Тогда приходится разрабатывать специализированную СУБД для данного конкретного применения. Решение указанных проблем при этом может оказаться возможным благодаря знанию специфических особенностей данного применения, к которым оказываются нечувствительными средства настройки доступных СУБД общего назначения, либо за счет ущемления каких – либо функций системы, не имеющих жизненно важного значения. Как правило, в этой роли оказываются, прежде всего, функции, обеспечивающие комфортную работу пользователя.
Создание специализированной СУБД – весьма трудоемкое дело даже в сравнительно простых случаях, и для того, чтобы избрать этот путь, нужно иметь действительно веские основания и твердую убеждаемость в невозможности или нецелесообразности использования какой – либо СУБД общего назначения.
СУБД общего назначения – это сложные программные комплексы, предназначенные для выполнения всей совокупности функций, связанных с созданием и эксплуатацией БД информационной системы. Они позволяют определить структуру создаваемой БД, инициализировать ее и произвести начальную загрузку данных. Системные механизмы выполняют также функции управления ресурсами среды хранения, обеспечения логической и физической независимости данных, предоставления доступа пользователям к БД, защиты логической целостности БД, обеспечения ее физической целостности, защиты от разрушений. Другая важная группа функций – управление полномочиями пользователей на доступ к БД, настройка на конкретные условия применения, организация параллельного доступа пользователей к базе данных в социальной пользовательской среде, поддержка деятельности системного персонала, ответственного за эксплуатацию БД.3
Для создания БД разработчик описывает ее логическую структуру, организацию в среде хранения, а также способы видения базы данных пользователями. При этом используются предоставляемые СУБД языковые средства определения данных, и система настраивается на работу с конкретной БД. Такие описания БД называются соответственно схемой (или логической схемой, или концептуальной схемой) БД, схемой хранения (или внутренней схемой) и внешними схемами.
Обрабатывая схемы БД, СУБД создает пустую БД требуемой структуры – хранилище, которое можно далее наполнить данными о предметной области, начать эксплуатировать для удовлетворения информационных потребностей пользователей.
Принципиально важное свойство СУБД заключается в том, что она позволяет различать и поддерживать два независимых взгляда на БД – взгляд пользователя, воплощаемой в «логическом» представлении данных, и «взгляд» системы – «физическое» представление, характеризующее организацию хранимых данных. Пользователя не интересует при его работе с БД байты и биты, представляющие данные в среде хранения, их размещения в памяти, указатели, поддерживающие связи между структурными компонентами хранимых данных, выбранные методы доступа. В то же время эти факторы важны для выполнения функций управления данными самой СУБД.
Обеспечение логической независимости данных – одна из важнейших функций СУБД, предоставляющая определенную степень свободы вариации «логического» представления БД без необходимости соответствующей модификации «физического» представления. Благодаря этому достигается возможность адаптации взгляда пользователя на БД к его реальным потребностям, конструирования различных «логических» взглядов на одну и ту же «физическую» БД, что весьма важно в социальной пользовательской среде.
Под «физической» независимостью данных понимается способность СУБД предоставлять некоторую свободу модификации способов организации БД в среде хранения, не вызывая необходимости внесения соответствующих изменений в «логическое» представление. Благодаря этому можно вносить изменения в организацию хранимых данных, производить настройку системы с целью повышения ее эффективности, не затрагивая созданных прикладных программ, использующих базу данных. «Физическая» независимость данных реализуется в СУБД за счет тех же самых трансформационных механизмов архитектуры системы, которые обеспечивают «логическую» независимость данных.
Поддержка логической целостности (непротиворечивости) базы данных – другая важная функция СУБД. В развитых системах ограничения целостности базы данных объявляются в схеме базы данных, и их проверка осуществляется при каждом обновлении объектов данных или связей между ними, являющихся аргументами таких ограничений.4
Термины безопасность и целостность в контексте обсуждения баз данных часто используется совместно, хотя на самом деле, это совершенно разные понятия. Термин безопасность относится к защите данных от несанкционированного доступа, изменения или разрушения данных, а целостность – к точности или истинности данных. По–другому их можно описать следующим образом:
1. под безопасностью подразумевается, что пользователям разрешается выполнять некоторые действия;
под целостностью подразумевается, что эти действия выполняются корректно.
Между ними есть, конечно, некоторое сходство, поскольку как при обеспечении безопасности, так и при обеспечении целостности система вынуждена проверить, не нарушают ли выполняемые пользователем действия некоторых правил. Эти правила должны быть заданы (обычно администратором базы данных) на некотором удобном для этого языке и сохранены в системном каталоге. Причем в обоих случаях СУБД должна каким-то образом отслеживать все действия пользователя и проверять их соответствие заданным правилам.5
Среди многочисленных аспектов проблемы безопасности необходимо отметить следующие:
Правовые, общественные и этические аспекты (имеет ли право некоторое лицо получить запрашиваемую информацию, например об оценках студента).
Физические условия (например, закрыт ли данный компьютер или терминальная комната или защищен каким – либо другим образом).
Организационные вопросы (например, как в рамках предприятия, обладающего некой системой, организован доступ к данным).
Вопросы реализации управления (например, если используется метод доступа по паролю, то, как организована реализация управления и как часто меняются пароли).
Аппаратное обеспечение (обеспечиваются ли меры безопасности на аппаратном уровне, например, с помощью защитных ключей или привилегированного режима управления).
Безопасность операционной системы (например, затирает ли базовая операционная система содержание структуры хранения и файлов с данными при прекращении работы с ними).
И, наконец, некоторые вопросы, касающиеся непосредственно самой системы управления базами данных (например, существует ли для базы данных некоторая концепция предоставления прав владения данными).
Методы обеспечения безопасности
В современных СУБД поддерживается один из двух широко распространенных подходов к вопросу обеспечения безопасности данных, а именно избирательный подход или обязательный подход. В обоих подходах единицей данных или "объектом данных", для которых должна быть создана система безопасности, может быть как вся база данных целиком или какой-либо набор отношений, так и некоторое значение данных для заданного атрибута внутри некоторого кортежа в определенном отношении. Эти подходы отличаются следующими свойствами:
В случае избирательного управления некий пользователь обладает различными правами (привилегиями или полномочиями) при работе с разными объектами. Более того, разные пользователи обычно обладают и разными правами доступа к одному и тому же объекту. Поэтому избирательные схемы характеризуются значительной гибкостью.
В случае обязательного управления, наоборот, каждому объекту данных присваивается некоторый классификационный уровень, а каждый пользователь обладает некоторым уровнем допуска. Следовательно, при таком подходе доступом к определенному объекту данных обладают только пользователи с соответствующим уровнем допуска. Поэтому обязательные схемы достаточно жестки и статичны.
Независимо от того, какие схемы используются – избирательные или обязательные, все решения относительно допуска пользователей к выполнению тех или иных операций принимаются на стратегическом, а не техническом уровне. Поэтому они находятся за пределами досягаемости самой СУБД, и все, что может в такой ситуации сделать СУБД, – это только привести в действие уже принятые ранее решения. Исходя из этого, можно отметить следующее:
В – первых. Результаты стратегических решений должны быть известны системе (т.е. выполнены на основе утверждений, заданных с помощью некоторого подходящего языка) и сохраняться в ней (путем сохранения их в каталоге в виде правил безопасности, которые также называются полномочиями).