Архитектура базы данных. Физическая и логическая независимость

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

В процессе научных исследований, посвященных тому, как именно должна быть устроена СУБД, предлагались различные способы реализации. Самым жизнеспособным из них оказалась предложенная американским комитетом по стандартизации ANSI (American National Standards Institute) трехуровневая система организации БД, изображенная на рис. 2.1:


Рис. 2.1. Трехуровневая модель системы управления базой данных, предложенная ANSI

  1. Уровень внешних моделей — самый верхний уровень, где каждая модель имеет свое "видение" данных. Этот уровень определяет точку зрения на БД отдельных приложений. Каждое приложение видит и обрабатывает только те данные, которые необходимы именно этому приложению. Например, система распределения работ использует сведения о квалификации сотрудника, но ее не интересуют сведения об окладе, домашнем адресе и телефоне сотрудника, и наоборот, именно эти сведения используются в подсистеме отдела кадров.
  2. Концептуальный уровень — центральное управляющее звено, здесь база данных представлена в наиболее общем виде, который объединяет данные, используемые всеми приложениями, работающими с данной базой данных. Фактически концептуальный уровень отражает обобщенную модель предметной области (объектов реального мира), для которой создавалась база данных. Как любая модель, концептуальная модель отражает только существенные, с точки зрения обработки, особенности объектов реального мира.
  3. Физический уровень — собственно данные, расположенные в файлах или в страничных структурах, расположенных на внешних носителях информации.

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

Выделение концептуального уровня позволило разработать аппарат централизованного управления базой данных.

24)Транзакция. Свойства транзакции. Параллельность.

Транзакция - группа логически связанных операторов SQL, результаты которых могут быть зафиксированы или отменены как единое целое.
Используется для многопользовательских баз данных. То есть при сетевых запросах к ней.
Вот к примеру, в инете есть БД авиакомпании. Клиент делает запрос на наличие свободного 14го места на такой то такойто рейс. Место свободно, и он его бронирует. Вот вся эта группа команд и будет транзакцией. Ее результат можно сохранить. То есть вызвать оператор commit и место будет забронировано в базе данных. А можно ROLLBACKом откатить изменения и место останется свободным, если клиент передумал покупать это место.
У нее есть 4 свойства:
1)Атомарность.Это когда все входящие в транзакцию операторы SQL рассматриваются как единая неделимая группа. То есть либо она выполняется ВСЯ, либо никакой из операторов не выполнится.
2)НепротиворечивостьЭто означает, что состояние БД остается согласованным и непротиворечивым после завершения транзакции.
3)ИзолированностьВот это самое интересное
Это свойство при котором множество транзакций, которые выполняются одновременно не должны взаимодействовать. Рассмотрим когда 2 клиента у БД авиакомпании запрашивают место 14 на одном и том же рейсе. При этом тот кто забронирует это место первым должен быть единственным лицом забронировавшим его, а не так что Клиент1 забронировал, Клиент2 тоже забронировал, и в результате они летят друг у друга на коленках
4)ДолговременностьПосле фиксации транзакции изменения в БД сохраняются при отключении компьютера или при выходе его из строя.
Ну вот В ОБЩЕМ что можно сказать по транзакции)

параллельного выполнения транзакций несколькими пользователями, т.е. свойство (И) - изолированность транзакций.

 

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



php"; ?>