1 Введение в базы данных
1.1 Ограничения, присущие файловым системам
Можно выделить следующие ограничения, присущие файловым системам.
1. Разделение и изоляция данных. Когда взаимосвязанные данные находятся в отдельных файлах, то доступ к ним - затруднен, так как для извлечения информации, соответствующей поставленным условиям, программист должен организовать синхронную обработку нескольких файлов.
2. Дублирование данных. Из-за децентрализованной работы с данными, накапливаемых в каждом подразделении предприятия независимо от других подразделений, в файловой системе фактически допускается дублирование данных, и это, в принципе, неизбежно. Дублирование данных нежелательно по следующим причинам: оно сопровождается неэкономным расходованием ресурсов, поскольку на ввод избыточных данных требуется затрачивать дополнительное время и для их хранения необходимо дополнительное место во внешней памяти. Дублирование данных может привести к нарушению их целостности. Иначе говоря, данные в разных отделах могут стать противоречивыми. Поскольку не существует автоматического способа обновления дублированных данных одновременно в нескольких файлах, нетрудно предвидеть, что подобные противоречия время от времени будут неизбежно возникать.
3. Зависимость от данных. Физическая структура и способ хранения записей файлов данных жестко зафиксированы в коде приложений. Это значит, что изменить существующую структуру данных сложно, потребуется, как минимум, создать одноразовую программу, преобразующую уже существующий файл в новый формат. Помимо этого, все обращающиеся к файлу программы должны быть изменены с целью соответствия новой структуре файла. Выполнение этих действий требует затрат времени и может явиться причиной появления ошибок. Данная особенность файловых систем называется зависимостью программ от данных (program-data dependence).
4. Несовместимость форматов файлов. Поскольку структура файлов определяется кодом приложений, она также зависит от языка программирования этого приложения. Прямая несовместимость таких файлов затрудняет процесс их совместной обработки.
5. Фиксированные запросы/быстрое увеличение количества приложений. Файловые системы требуют больших затрат труда программиста, поскольку все необходимые запросы и отчеты должны быть созданы именно им в коде программы. В результате типы применяемых запросов и отчетов имеют фиксированную форму, и нет никаких инструментов создания незапланированных или произвольных запросов. В любом случае, подобная организация работы с течением времени изживает себя, и требуется искать другие решения.
Все перечисленные выше ограничения файловых систем являются следствием двух факторов.
1. определение данных содержится внутри приложений, а не хранится отдельно и независимо от них;
2. помимо приложений не предусмотрено никаких других инструментов доступа к данным и их обработки.
Для повышения эффективности работы необходимо использовать новый подход, а именно базу данных (database) и систему управления базами данных, или СУБД (Database Management System - DBMS).
1.2 Основные понятия и определения
Система баз данных (СБД) – это компьютеризированная система структурированных данных, основная цель которой хранение информации и предоставление ее по требованию.
Система БД включает два основных компонента: собственно базу данных и систему управления (рисунок 1.1). Но большинство информационных систем или систем обработки данных включают также прикладное программное обеспечение (бизнес-логику или программы обработки данных), которые обращаются собственно к данным через систему управления.
Рисунок 1.1 - Компоненты системы баз данных
Дж. Мартин (в 1980 году) сформулировал понятие базы данных (БД) как совокупности взаимосвязанных, хранящихся вместе на внешних носителях памяти компьютера данных при наличии такой организации и минимальной избыточности, которая допускает их использование оптимальным образом для одного или нескольких приложений; данные запоминаются и используются так, чтобы они были независимы от программ, использующих эти данные, а программы были независимы от способа и структуры хранения данных; для добавления новых или модификации существующих данных, а также для поиска данных в БД применяется общий управляющий способ.
Причем база данных хранит не собственно рабочие данные, но и их описания. В совокупности описание данных называется системным каталогом, или словарем данных, а сами элементы описания принято называть метаданными, т.е. "данными о данных". Именно наличие самоописания данных в базе данных обеспечивает принцип независимости программ от данных.
Комплекс программ, реализующих создание БД и поддержание ее в актуальном состоянии, а также обеспечивающих различным пользователям возможность использовать информацию, хранящуюся в БД в своих целях, называется системой управления базой данных (СУБД). Все операции с данными осуществляются в БД автоматически под управлением СУБД.
Сформулируем основные требования, которые предъявляются к БД:
- комплексное (коллективное) использование хранимой информации сложной структуры и значительного объема;
- универсальность, т.е. наличие в БД всех необходимых данных и возможности доступа к ним в процессе решения проектной задачи;
- минимизация избыточности данных и затрат памяти на внешних носителях. Каждый элемент данных вводится в БД один раз и хранится в ней в единственном экземпляре. При вводе данных осуществляется проверка на дублирование данных;
- открытость БД. Структура данных должна позволять легко включать новые и удалять устаревшие данные, а также вносить изменения в хранящиеся данные за счет наличия языков высокого уровня для взаимодействия пользователей с БД;
- способ хранения данных на устройствах памяти должен обеспечивать возможность работы с данными в режиме диалога;
- целостность данных — их непротиворечивость и достоверность. Организация БД должна обеспечивать согласование времени выборки данных с частотой их использования прикладными программами;
- в системе возможно возникновение ошибок в результате неосторожных действий пользователей, несанкционированного доступа, ошибок в программах и сбоев оборудования. Данные должны быть защищены от разрушений и должны существовать механизмы восстановления искаженных данных;
- обеспечение для пользователей авторизованного доступа к данным, использование средств криптографии и ограничений целостности.
Работоспособность и эффективность БД во многом определяется тем, насколько правильно организована структура данных и как она отражена в памяти ЭВМ.
БД принято классифицировать по следующим аспектам.
1. По форме представления информации:
1.1. текстовые:
- структурированные;
- не структурированные;
- частично структурированные;
1.2. видео;
1.3. аудио;
1.4. мультимедиа.
2. По типу модели данных:
2.1. сетевые;
2.2. иерархические;
2.3. реляционные;
2.4. постреляционные (многомерные - Cache, Teradata);
2.5. объектно-ориентированные (Cache, FastObjects ,
GemStone/S , Jasmine, ObjectStore
, Objectivity/DB , Versant).
3. По типу хранимой информации:
3.1. документальные:
- библиографические;
- документальные;
- полнотекстовые;
3.2. фактографические;
3.3. лексикографические:
- словари;
- классификаторы.
4. По характеру организации данных и способу обращения к ним:
4.1. персональные (локальные);
4.2. общие (интегрированные):
- централизованные;
- распределенные.
5. По предметной области:
5.1. сектор деловой информации (биржевые, финансовые, коммерческие);
5.2. сектор профессиональной информации (патентные, юридические, технологические);
5.3. сектор массовой потребительской информации (справочники, расписания).
6. По скорости изменения и времени хранения данных:
6.1. оперативные (транзакционные);
6.2. исторические (хранилища данных).