Базы данных. Независимость данных. Основные понятия

Независимость данных. Основные понятия. Структуры сохранения изменяемых данных


Содержание


Поиск на других ресурсах:

1. Концепция независимости данных. Необходимость в независимости данных

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

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

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

Причины, побуждающие к такой необходимости следующие:

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

В идеальном случае, любая система баз данных должна быть разработана так, что она обеспечивает полную независимость данных. Эта независимость фактически разделяет модель данных от реализации. Чем больше модель данных будет отделена от реализации, тем больше будет обеспечена независимость данных. Хорошим подходом к обеспечению независимости данных считается создание систем, основанных на использовании языка SQL (System Query Language).

 

2. Базовые составляющие, обеспечивающие независимость данных

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

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

  • хранимое поле – это экземпляр, содержащий информацию о типе одного значимого элемента на основе которого формируются данные этого типа. Например, в реляционной модели данных представленной в виде таблицы поле определяет столбик с однотипными данными;
  • хранимая запись – это непосредственно порция из набора данных, отображающая информацию о единичном случае (факт), которая должна быть сохранена и зафиксирована в базе данных. Хранимая запись представляет собой набор связанных хранимых полей. Количество записей в базе данных может составлять десятки, сотни, тысячи и даже миллионы. С увеличением количества записей в базе данных возрастают требования к максимальному быстродействию доступа к данным. Каждая запись в базе данных это отдельный экземпляр (объект), содержащий перечень (список) данных соответствующих полей. Каждое поле определено соответствующим типом данных;
  • сохраняемый файл – это набор нескольких экземпляров хранимых записей, имеющих одинаковый тип.

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

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

 

Хранимая база данных

Рисунок 1. Хранимая база данных

 

3. Основные аспекты структур хранения изменяемых данных

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

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

  1. Способ представления числовых данных. Здесь имеется в виду формат представления числовых полей таблиц. Например, строковое представление, числовое представление и т.д. Для каждого формата формируется значение соответствующих параметров (выбор системы исчисления, количество знаков после запятой и т.д.). Это все осуществляет администратор базы данных с целью обеспечения максимальной производительности. 
  1. Способ представления символьных данных. Если в качестве формата поля выбраны символьные данные, то здесь важно использование известных существующих кодировок символов (ASCII, Unicode и прочее).
  1. Корректировка единиц измерения для числовых данных. Здесь подразумевается настройка представления числовых данных в полях таблицы (метры, километры, дюймы и т.п.).
  1. Способы кодирования данных. Здесь важно то, каким образом кодируются те или иные категории данных. Например, цвета можно кодировать цифрами, наборами бит, строковыми обозначениями и т.п.
  1. Представление логических полей как виртуальных. Другими словами, овеществление данных (materialization). Суть этого состоит в том, что представление логических полей отличается от представления хранимых полей. Например, некоторые логические поля являются вычисляемыми, то есть они формируются как результат вычисления значений других логических (хранимых) полей. Это означает, что логическое поле не имеет собственного эквивалентного хранимого поля. Нецелесообразно сохранять суммы хранимых полей, если их можно вычислять «на лету» и отображать в логических полях. Вычисляемые поля еще называют виртуальными полями (virtual), а вычисленные значения называются косвенными. 
  1. Обеспечение правильной структуры хранимых записей. Структура хранимых записей предусматривает одну из возможных операций:
    • объединение информативных полей нескольких таблиц в одну таблицу. Это случай, когда происходит интегрирование ранее созданных таблиц в текущую систему баз данных;
    • разбиение записей таблицы на несколько подтаблиц. Это обратная операция к предыдущей. Такая операция используется в случае, когда нужно оптимизировать быстродействие путем переноса редкоиспользуемых частей таблицы в более медленные устройства считывания/записи.

 Например, следующие две таблицы могут быть объединены в одну (рисунок 2).

Базы данных. Объединение таблиц в случае интеграции приложений

Рисунок 2. Объединение таблиц в случае интеграции приложений

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

Базы данных. Разбиение записей таблицы на подтаблицы с целью оптимизации быстродействия

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

 

  1. Обеспечение представления структуры хранимых файлов разными способами.

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

 


Связанные темы