Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Управление данными (пособие).pdf
Скачиваний:
280
Добавлен:
21.05.2015
Размер:
5.42 Mб
Скачать

193

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

14.11.Реализация изолированности транзакций средствами SQL

Уровни изоляции.

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

Стандарт SQL предусматривает 4 уровня изоляции.

READ UNCOMMITTED – уровень незавершенного считывания.

READ COMMITTED – уровень завершенного считывания.

REPEATABLE READ – уровень повторяемого считывания.

SERIALIZABLE – уровень способности к упорядочению.

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

7)Неаккуратное считывание – «грязное» чтение, незафиксированная зависимость.

8)Неповторяемое считывание – частный случай несовместимого анализа.

9)Фиктивные элементы (фантомы) – частный случай несовместимого анализа.

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

194

Различные уровни изоляции определяются по возможности или исключению перечисленных особых случаев нарушения способности к упорядочению. Эти определения описываются следующей таблицей:

Уровень

Потеря

Неаккуратное

Неповторяемое

Фантомы

результатов

изоляции

обновления

считывание

считывание

 

 

 

 

 

READ UNCOMMITTED

Нет

Да

Да

Да

READ COMMITTED

Нет

Нет

Да

Да

REPEATABLE READ

Нет

Нет

Нет

Да

SERIALIZABLE

Нет

Нет

Нет

Нет

Синтаксис операторов SQL, определяющих уровни изоляции

Уровень изоляции транзакции задается следующим оператором:

SET TRANSACTION {ISOLATION LEVEL {READ UNCOMMITTED | READ COMMITTED

| REPEATABLE READ

| SERIALIZAABLE}

| {READ ONLY | READ WRITE}}, ...

Этот оператор определяет режим выполнения следующей транзакции, т. е. этот оператор не влияет на изменение режима той транзакции, в которой он подается. Обычно, выполнение оператора SET TRANSACTION выделяется как отдельная транзакция:

…(предыдущая транзакция выполняется со своим уровнем изоляции)

COMMIT;

SET TRANSACTION LEVEL REPEATABLE READ; COMMIT;

(следующая транзакция выполняется с уровнем изоляции REPEATABLE READ)

Если задано предложение ISOLATION LEVEL, то за ним должно следовать один из параметров, определяющих уровень изоляции.

Кроме того, можно задать признаки READ ONLY или READ WRITE. Если указан признак READ ONLY, то предполагается, что транзакция будет только читать данные. При попытке записи для такой транзакции будет сгенерирована ошибка. Признак READ ONLY введен для того, чтобы дать производителям

195

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

Оператор SET TRANSACTION должен удовлетворять следующим условиям:

1)Если предложение ISOLATION LEVEL отсутствует, то по умолчанию принимается уровень SERIALIZABLE.

2)Если задан признак READ WRITE, то параметр ISOLATION LEVEL не может принимать значение READ UNCOMMITTED.

3)Если параметр ISOLATION LEVEL определен как READ UNCOMMITTED,

то транзакция становится по умолчанию READ ONLY. В противном случае по умолчанию транзакция считается как READ WRITE.

15.Распределенные системы. Архитектура клиент-сервер

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

управление информационными ресурсами базы данных, обеспечение целостности данных;

обработка и интерпретация данных в соответствие с алгоритмами решения конкретных пользовательских задач (так называемая бизнеслогика прикладных задач);

функции ввода и отображения информации (презентационная логика). Ранее, в «досетевую» эпоху компьютерных систем, сама база данных и все

работающее с ней программное обеспечение размещалось на одном «большом» компьютере – мэйнфрейме (main frame) и реализовывало все необходимые функции по управлению данными, выполнения бизнес-логики, вводу данных и их отображению на соответствующих терминальных устройствах (см. рис. 15.1). Пользователи работали с общей, расположенной на таком компьютере базой данных с помощью видео-терминалов (дисплеев) или других периферийных устройств ввода-вывода информации.

Рис. 15.1. ИС с базой данных на компьютере-мэйнфрейме

197

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

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

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

Архитектура с файловым сервером

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

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

198

Рис. 15.2. Архитектура с файловым сервером

Все функции информационной системы, кроме функций управления файлами данных, а именно:

функции по управлению информационными ресурсами базы данных, обеспечению целостности данных (логика базы данных);

функции по обработке и интерпретации данных в соответствии с решаемой прикладной задачей (бизнес-логика);

функции формирования экранных форм для ввода и отображения данных, обработка манипуляций мыши и клавиатуры (презентационная логика);

а также мета-данные базы данных (информация о ее схеме, правилах обеспечения целостности данных и т.д., иными словами – «данные о

данных»); реализуются в данном случае соответствующим программным обеспечением,

располагающимся на компьютере (компьютерах) клиентской стороны. Достоинством такой системы по сравнению с мэйнфреймовой является

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

Представителями такого рода файл-серверных систем баз данных являются широко распространенные вплоть до настоящего времени программные комплексы: Dbase, FoxPro, Clipper, Clarion, Paradox и др.

199

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

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

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

200

Сервер базы данных

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

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

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

Схема взаимодействия клиента и сервера в рассматриваемом случае представлена на рисунке 15.3.

Рис. 15.3. Архитектура клиент-сервер с использованием сервера БД

201

Данную модель поддерживают большинство современных промышленных СУБД, таких как Oracle, DB2, Informix, Ingres, Sybase, MS SQL Server, из современных отечественных систем это СУБД Линтер фирмы Релэкс.

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

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

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

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

ичасть бизнес-функций прикладных задач. Для этого в СУБД реализованы механизмы так называемых хранимых процедур и процедур обработки событий (триггеры) (см. рисунок 15.4).

Рис. 15.4. Использование активного сервера БД

202

Трехзвенная архитектура с сервером приложений

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

Рис. 15.5. Архитектура с сервером приложений

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

Что дает такое перераспределение функций?

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

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

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

203

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

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

204

Рекомендуемая литература

1.К.Дейт. Введение в системы баз данных. 7-е издание: Пер. с англ. – К.; М.; СПб.: Издательский дом «Вильямс», 2001. – 1072 с., ил.

2.Г.Буч. Объектно-ориентированный анализ и проектирование с примерами приложений на С++./Пер. с англ. - М.: «Издательство Бином», СПб.: «Невский диалект», 2001. – 558 с., ил.

3.Ульман Д. Основы реляционных баз данных / Джеффри Д. Ульман, Дженнифер Уидом; Пер. с англ.– М.: Лори, 2006 .— 374 с.

4.Т.С.Карпова. Базы данных: модели, разработка, реализация: учебник. –

СПб.: Питер, 2002. – 303 с.: ил.

5.С.М.Диго. Базы данных : проектирование и использование: учебник.– М.: Финансы и статистика, 2005 .— 590 с.: ил.

6.А.В.Кузин. Базы данных: учебное пособие.–М.: Academia, 2005.– 314 с.: ил.

7.А.Ю.Пушников. Введение в системы управления базами данных. Часть 1. Реляционная модель данных: Учебное пособие/ Изд-е Башкирского ун-та. –

Уфа. 1999. – 108 с.

8.А.Ю.Пушников. Введение в системы управления базами данных. Часть 2. Нормальные формы отношений и транзакции: Учебное пособие/ Изд-е Башкирского ун-та. – Уфа. 1999. – 105 с.

9.И.Ф.Астахова, А.П.Толстобров, В.М.Мельников. SQL в примерах и задачах: Учебное пособие: Мн.: Новое знание, 2002. – 176 с.

10.М.Грабер. Введение в SQL. Пер. с англ. – М.: «ЛОРИ», 1996. – 380 с., ил.

11.С.Д.Кузнецов. SQL: Язык реляционных баз данных.– М.: Майор: Осипенко, 2001 .– 191 с.: ил.

12.В.А.РезниченкоH ,H Ф.И.АндонH .H Язык запросов SQL: учебный курс.— СПб:

Питер, 2006 .— 416 стр.

205

Предметный указатель

NULL-значения, 84 RowID, 150

агрегация, 35 Армстронг, 115, 130 архитектура ИС с БД

двухуровневая, 21 трехуровневая, 22

АСИД, 160 атрибут, 43 база данных, 11

компоненты ИС с БД, 16 пользователи ИС с БД, 12 проектирование, 112 реляционная, 50 система управления БД, 16, 20 словарь, 17

СУБД, 16, 20

схема, 17 требования к ИС с БД, 13

Бойс, 118, 131

внешнее представление данных, 21 внутреннее представление данных, 20, 22 датологический, 9 декомпозиция отношения, 124, 128, 129,

135, 146

без потерь, 119

домен, 44, 83

доступ к данным, 149 индексирование, 152 В+P -P дерево, 155 В-дерево, 154

ветвистость, 154 сбалансированность, 154

инвертированные списки, 153 индексный файл, 153 индексы, 153

кластеризация, 151 зависимости в реляционных отношениях

многозначная, 90, 139, 140, 146

проекции-соединения, 90, 145, 146

функциональная, 90, 113, 140, 146

детерминант, 114 зависимая часть, 114 замыкание, 115

неприводимая слева, 116, 117, 125, 127

правила Армстронга, 115, 130

транзитивная, 127 тривиальная, 115 фукционально полная, 116, 117

заголовок отношения, 45 иерархические базы данных, 40 инвертированные списки, 39 инфологическая модель, 24 инфологический, 9 кардинальное число, 43, 46 ключ

альтернативный, 92

внешний, 94, 96, 97 NULL-значения, 97

первичный, 92, 93 потенциальный, 90

NULL-значения, 93

родительский, 94 ключ отношения, 43

Кодд, 42, 118, 131

концептуальная модель, 21, 39 концептуальное представление данных, 21,

39

кортеж, 43, 45 модель

данных реляционная, 42

модель данных, 3, 19, 20, 21 модель инфологическая, 24 модель концептуальная, 21, 39 модель сущность-связь, 25 ER-диаграмма, 27, 31, 33

ER-модель, 25

нормализация отношений, 117 аномалии операций над отношениями,

123, 127, 135, 144

нормальные формы, 118 Бойса-Кодда (НФБК), 131

вторая (2НФ), 125, 147 первая (1НФ), 117, 122, 147

пятая (5НФ), 146

третья (3НФ), 129, 147 четвертая (4НФ), 141, 147, 148

процедура нормализации, 147 теорема Фейгина, 140 теорема Хеза, 121, 141

объекты, 25, 26 ограничение циклическое (3Д), 144

ограничения целостности, 19, 39, 81, 106 декларативная поддержка, 103

в языке SQL, 105

область действия (уровень), 83 атрибут, 83 база данных, 83

ссылочная целостность, 94, 95, 96, 100

внешний ключ, 94 правила, 98

кортеж, 83 отношение, 83

ограничение потенциальных ключей, 89, 112

ограничение целостности сущностей, 89

проверка, 82 процедурная поддержка, 103

средства обеспечения в СУБД, 103

оператор SELECT, 75

операции над данными, 19, 39 определение Риссанена, 142 отношение

cнимок (Snapshot), 49

абстрактное-конкретное, 26 базовое, 49 виды, 49 значение, 44 именованное, 49 как переменная, 44

ненормализованное, 48 нормализованное, 48 общее-частное, 26 представление (View), 49 производное, 49 промежуточный результат, 50 результат запроса, 49 реляционное, 43 свойства, 46 хранимое, 50

отсутствующая информация, 84 правильно построенная формула, 69 предикат, 67 предикатов исчисление, 67

предметная область, 9, 13, 25 представление данных

внешнее, 21 внутреннее, 20, 22 концептуальное, 21, 39

распределенные системы

206

архитектура клиент-сервер, 204, 207

активный сервер БД, 209 сервер БД, 208

сервер базы данных, 207 трехзвенная с сервером приложений,

209

файловый сервер, 204 бизнес-логика, 203, 205 логика базы данных, 205 мета-данные БД, 205 мэйнфрейм, 203

презентационная логика, 203, 205, 207 реляционная модель данных

операции над данными, 52 реляционная алгебра, 52, 71

замкнутость, 53 операции, 52

θ-соединение отношений, 58 выборка, 57 вычитание отношений, 55

декартово произведение, 56 деление отношений, 61 естественное соединение

отношений, 59 пересечение отношений, 54 эквисоединение, 59

полнота, 53 реляционное исчисление, 66, 71

основные понятия, 42 структуры данных, 42

Риссанен, 130

свойства, 25, 26, 33

свойства отношения, 46 связи, 33

бинарные, 30 виды, 29

между сущностями, 28 многие-к-одному, 30 многие-ко-многим, 30, 38 обязательные/необязательные, 31 одинарные, 30 один-к-одному, 30 один-ко-многим, 30 степень, 30, 31

сетевые базы данных, 40 система управления базой данных, 207 согласованное состояние БД, 81 степень отношения, 43, 46

структуры данных, 39, 40, 42, 44, 50

СУБД, 207

сущности, 25, 26, 33

тело отношения, 45 транзакции

буферизация журнала, 163 страниц БД, 163

восстановление данных, 162 жесткий сбой, 163, 169 мягкий сбой, 162, 166

контрольная точка, 164, 166 принципы, 162

протокол WAL, 164 протокол журнализации, 164

протокол управления буферизацией, 164

журнал, 162 команда COMMIT, 161

команда ROLLBACK, 161

определение, 160

откат, 161, 162, 165

параллелизм, 170 график запуска, 176

конкурирующие транзакции, 176 конфликты, 176 метод временных меток, 178, 197

метод выделения версий данных, 198 оптимистическая стратегия, 178 пессимистическая стратегия, 178 проблемы

неаккуратное считывание, 171, 183 незафиксированная зависимость,

171, 183

неповторяемое считывание, 170, 173, 176, 184

несовместимый анализ, 173 потеря обновления, 171, 182, 187 собственно несовместимый анализ,

170, 173, 175, 176, 186

транзакция-жертва, 187

тупики, 183, 187

граф ожидания транзакций, 188 уровни изоляции объектов БД, 190

фантомы, 174, 176, 185, 186, 189, 190, 193, 194, 200

фиктивные элементы, 174, 185, 186, 189, 190, 193, 194, 200

207

чтение, 171, 183

сериализация, 177, 197 синхронизационные захваты, 178, 179,

182

S-блокировки, 181, 191

X-блокировки, 180, 191

блокировки по намерению, 191 блокировки монопольного

доступа – IX, 191 блокировки с совместным или с

монопольным доступом – SIX, 192

блокировки совместного доступа

– IS, 191

приоритет блокировок, 193 протокол блокировок, 192 совместимость блокировок, 192

гранулированные блокировки, 191 двухфазный протокол, 179 матрица совместимости, 181 монопольные блокировки, 180, 191 предикатные, 195 разделяемые блокировки, 181, 191

уровни изолированности SQL, 200 неаккуратное считывание, 200 неповторяемое считывание, 200 фантомы, 201 фиктивные элементы, 200

свойства, 160 атомарность, 160 долговечность, 160 изолированность, 160, 176 согласованность, 160

управление транзакциями, 159 фиксация, 161

трехзначная (3VL) логика, 86

триггер, 104, 208

Фейгин, 147 хранение данных, 149

хранимая процедура, 103, 208 язык

SQL, 17, 73, 105, 200

баз данных реляционно полный, 72

манипулирования данными, 17 непроцедурный, 74 описания данных, 16

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

208

Содержание

 

 

 

ПредисловиеUT

TU ..............................................................................................................

 

 

 

 

 

 

 

 

 

 

 

3

ВведениеUT

TU ....................................................................................................................

 

 

 

 

 

 

 

 

 

 

 

 

 

6

1UT .TU

ИнформацияUT

и данныеTU ........................................................................................

9

2UT .TU

ОсновныеUT

понятия систем с базами данныхTU...................................................

11

3UT .TU

АрхитектураUT

систем с базами данных. Понятие модели данныхTU.................

19

4UT .TU

ИнфологическоеUT

проектирование БД. Сущности, объекты, свойства,

 

 

связиTU ...................................................................................................................

 

 

 

 

 

 

 

 

 

 

 

 

 

 

25

5UT .TU

МоделиUT

данных. Ранние подходы к организации баз данныхTU......................

39

6UT .TU

РеляционнаяUT

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

42

 

6UT .1.TU ОсновныеUT

понятия реляционной модели данныхTU .................................

42

 

6UT .2.TU

СтруктурыUT

данных реляционной модели. Реляционные

 

 

 

отношенияTU..................................................................................................

 

 

 

 

 

44

 

6UT .3.TU

СвойстваUT

отношенийTU ................................................................................

46

 

6UT .4.TU

ВидыUT

отношенийTU

.......................................................................................

49

 

6UT .5.TU

РеляционнаяUT

база ........................................................................данныхTU

50

7UT .TU

РеляционнаяUT

модель. Операции ...............................................над даннымиTU

51

 

7UT .1.TU

РеляционнаяUT

алгебра ................................................................................TU

51

 

7UT .2.TU

РеляционноеUT

исчисление..........................................................................TU

65

 

7UT .3.TU

ОперацииUT

над данными – реляционная алгебра и реляционное

 

 

 

исчислениеTU

.................................................................................................

 

 

 

 

70

8UT .TU

ЯзыкUT

SQLTU ............................................................................................................

 

 

 

 

 

 

 

 

 

 

 

71

 

8UT .1.TU

ОтличиеUT

SQL от процедурных ..................языков программированияTU

72

 

8UT .2.TU

ФормыUT

и составные ...............................................................части SQLTU

72

 

8UT .3.TU

УсловияUT

 

и терминология..........................................................................TU

73

 

8UT .4.TU

ВыборкаUT

данных. ......................................................Оператор SELECTTU

73

 

8UT .5.TU

РеализацияUT

 

операций реляционной алгебры средствами языка

 

 

 

SQL. Реляционная .............................................................полнота SQLTU

76

9UT .TU

ОграниченияUT

 

целостности ........................................в реляционной моделиTU

79

 

9UT .1.TU ОграниченияUT

целостности ..........................................уровня атрибутаTU

81

 

9UT .2.TU ОграниченияUT

целостности ............................................уровня кортежаTU

86

 

9UT .3.TU ОграниченияUT

целостности .......................................уровня отношенияTU

87

 

9UT .4.TU ОграниченияUT

целостности ....................................уровня базы данныхTU

92

 

9UT .5.TU

СредстваUT

обеспечения ..........................целостности данных в СУБДTU

100

 

9UT .6.TU

ПоддержкаUT

 

декларативных ограничений целостности в языке

 

 

 

SQLTU ...........................................................................................................

 

 

 

 

 

 

 

 

 

 

 

 

103

10UT .TU ПроектированиеUT

 

базы данных........................................................................TU

109

 

10UT .1.TU ФункциональнаяUT ...............................................................

зависимость T U

110

 

10UT .2.TU НормализацияUT

отношений ..............................................базы данныхTU

113

 

10UT .3.TU

ДекомпозицияUT

без ..............потерь и функциональные зависимостиTU

116

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

209

10UT .4.TU ПерваяUT

и вторая нормальные формы.TU ...................................................

118

10UT .5.TU ТретьяUT

 

нормальная форма.TU .....................................................................

122

10UT .6.TU НормальнаяUT

форма Бойса-КоддаTU ...........................................................

127

10UT .7.TU МногозначныеUT

зависимости и четвертая нормальная формаTU ............

133

10UT .8.TU ЗависимостиUT

соединения и пятая нормальная формаTU .........................

138

10UT .9.TU ИтоговаяUT

 

схема процедуры нормализацииTU ..........................................

143

11UT .TU СтруктурыUT

хранения данных и методы доступаTU ..........................................

144

11UT .1.TU ХранениеUT

отношений и доступ к хранимым даннымTU .........................

145

11UT .2.TU ИндексированиеUT

TU ......................................................................................

 

147

11UT .3.TU ИспользованиеUT

при индексировании структур типа В-деревьевTU .......

149

12UT .TU УправлениеUT

 

транзакциями и целостность баз данныхTU ................................

154

13UT .TU ОткатUT

транзакций и восстановление данных после сбоев.

 

Журнализация изменений базы данныхTU.......................................................

157

14UT .TU ТранзакцииUT

и параллелизмTU .............................................................................

165

14UT .1.TU ПроблемыUT

, возникающие при параллельном выполнении

 

транзакцийTU

...............................................................................................

 

 

 

 

 

 

165

14UT .2.TU КонфликтыUT

 

между транзакциямиTU..........................................................

169

14UT .3.TU МетодыUT

сериализации транзакцийTU ........................................................

171

14UT .4.TU СериализацияUT

транзакций с использованием

 

синхронизационных ........................................захватов (блокировок)TU

172

14UT .5.TU РешениеUT

проблем ................параллелизма при помощи блокировокTU

175

14UT .6.TU УровниUT

изоляции ........... Объекты синхронизационных блокировокTU

182

14UT .7.TU ГранулированныеUT

синхронизационные блокировки. Блокировки

 

по намерению..........................................................................................TU

 

 

 

 

183

14UT .8.TU ПредикатныеUT ..................................

синхронизационные блокировкиTU

188

14UT .9.TU МетодUT

 

временных ........................................................................метокTU

190

14UT .10.TU МетодUT

выделения .......................................................версий данныхTU

191

14UT .11.TU РеализацияUT ............

изолированности транзакций средствами SQLTU

193

15UT .TU РаспределенныеUT ..............................

системы . Архитектура клиент - сервер T U

196

РекомендуемаяUT

литература..................................................................................TU

204

ПредметныйUT

указатель.........................................................................................TU

 

 

 

205