Главная » SQL

НЕПРИВОДИМЫЕ МНОЖЕСТВА ЗАВИСИМОСТЕЙ

Добавлено Дата: 27 August, 2012 категория: SQL, Базы данных

Пусть S1 и S2 — два множества функциональных зависимостей. Если любая функциональная зависимость, которая следует из множества зависимостей si, следует также из множества зависимостей S2 (т.е. если замыкание S1+ является подмножеством замыкания S2+,

Читать »

СИСТЕМЫ "КЛИЕНТ/СЕРВЕР"

Добавлено Дата: 27 August, 2012 категория: SQL, Базы данных

Как отмечалось в разделе 21.1, системы "клиент/сервер" могут рассматриваться  как частный случай распределенных систем. Точнее, система "клиент/сервер" — это распределенная система, в которой одни узлы — клиенты, а другие — серверы; все данные размещены на узлах, которые являются серверами;  все приложения выполняются на узлахклиентах и "швы видны пользователю" (полная локальная независимость не предоставляется). Обратимся к рис. 21.6 (или к рис. 2.6 из главы 2).

Читать »

ОПРЕДЕЛЕНИЕ ДАННЫХ XML

Добавлено Дата: 27 August, 2012 категория: SQL, Базы данных

Как и с обычными данными базы данных, с любым документом XML, как правило, связана определенная описательная информация. Такую информацию  можно задать с помощью либо определения типа документа (Document Type Definition — DTD), формируемого с использованием языка, который в данной книге именуется14 языком определения DTD [27.25], либо с помощью схемы XML, которая формируется на основе языка XML Schema (имеющего название, которое вносит определенную путаницу [27.28]). Оба этих языка рассматриваются в настоящем разделе.

Читать »

Атрибуты со значениями в виде отношения

Добавлено Дата: 26 August, 2012 категория: SQL, Базы данных

Как было отмечено в разделе 6.3, в общем случае в качестве основы для определения реляционных атрибутов может использоваться любой тип. Из этого, в частности, следует, что основой для определения атрибутов отношений могут явиться типы отношений, поскольку они, безусловно, представляют собой типы.  Иными словами, атрибуты могут иметь значения в виде отношений, а это означает, что в отношениях могут применяться атрибуты, значениями которых, в  свою очередь, являются отношения. Иначе говоря, допустимо существование  таких отношений, в которые вложены другие отношения. Пример такого  отношения показан на рис. 6.2. Применительно к этому отношению можно отметить, что в данном отношении, во-первых, атрибут PQ имеет значение в виде отношения, во-вторых, его кардинальность и степень равны пяти, и в  частности, втретьих, пустое множество деталей, поставляемых поставщиком S5, представлено в виде значения PQ, которое является пустым множеством (точнее, пустым отношением).

Читать »

ОБЩЕЕ ОПРЕДЕЛЕНИЕ БАЗЫ ДАННЫХ

Добавлено Дата: 26 August, 2012 категория: SQL, Базы данных

1.2.     Перманентные данные

Обычно данные в базе данных называют перманентными или постоянно хранимыми

(хотя иногда на самом деле они недолго остаются таковыми!). Под словом перманентные

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

Читать »

ВТОРОЕ СЕРЬЕЗНОЕ ЗАБЛУЖДЕНИЕ ЗАБЛУЖДЕНИЕ ОБЪЕКТНОГО ПОДХОДА

Добавлено Дата: 26 August, 2012 категория: SQL, Базы данных

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

Читать »

ДРУГИЕ НОРМАЛЬНЫЕ ФОРМЫ

Добавлено Дата: 26 August, 2012 категория: SQL, Базы данных

В этом разделе мы снова возвращаемся к теме нормализации. Прежде чем завершить обсуждение вопросов нормализации, следует напомнить сделанное в главе 12 замечание о том, что, помимо уже описанных, существуют и другие нормальные формы. Дело в том, что теория нормализации и связанные с ней  вопросы (в настоящее время эту область обычно называют теорией зависимостей) развились в широкую самостоятельную область знаний. Исследования в данной  области продолжаются и в настоящее время, причем довольно успешно (хотя в последнее время наблюдается некоторое снижение интереса к этой теме). Но более подробный обзор этих исследований выходит за рамки данной главы. Заинтересованный читатель найдет достаточно полный обзор полученных в этой области результатов в [13.18] (по состоянию на середину 1980-х годов), а более свежие обзоры можно найти в [11.1] и [11.3]. Ниже кратко описаны лишь некоторые из них.

Читать »

ОТСУТСТВУЮЩИЕ ЗНАЧЕНИЯ И КЛЮЧИ

Добавлено Дата: 26 August, 2012 категория: SQL, Базы данных

Примечание. Далее вместо термина UNK мы будем использовать более традиционную терминологию, т.е. термин NULL.

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

Читать »

ПРИМЕРЫ использования реляционного исчисления кортежей для формулирования запросов

Добавлено Дата: 25 August, 2012 категория: SQL, Базы данных

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

Читать »

ПРЕДИКАТЫ И ВЫСКАЗЫВАНИЯ

Добавлено Дата: 25 August, 2012 категория: SQL, Базы данных

Еще раз рассмотрим формальную версию примера 1 ("Значение статуса каждого поставщика должно находиться в пределах от 1 до 100 включительно").

FORALL s# € S#, sn 6 NAME, st € INTEGER, sc € CHAR ( IF { S# s#, SNAME sn, STATUS st, CITY sc } € S

Читать »

НЕКОТОРЫЕ ОСОБЕННОСТИ ТЕХНОЛОГИИ ПОДДЕРЖКИ ПРИНЯТИЯ РЕШЕНИЙ

Добавлено Дата: 25 August, 2012 категория: SQL, Базы данных

Базы данных поддержки принятия решений обладают особыми характеристиками, и главная из них состоит в том, что такие базы данных в основном (хотя и не всегда) предназначены только для чтения. Модификация содержимого базы данных обычно огранивается периодическими операциями загрузки или обновления. К тому же среди этих операций преобладает операция INSERT, операция DELETE выполняется крайне редко, а операция UPDATE не выполняется почти никогда.

Читать »

ПОЛИМОРФИЗМ И ЗАМЕНЯЕМОСТЬ

Добавлено Дата: 24 August, 2012 категория: SQL, Базы данных

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

Читать »

СРЕДСТВА поддержки неопределенных значений (NULL) и трехзначной логики в языке SQL

Добавлено Дата: 24 August, 2012 категория: SQL, Базы данных

Поддержка неопределенных значений (NULL) и трехзначной логики в языке SQL отражает весь широкий спектр подходов, описанных в предыдущих разделах. Так, например, когда в языке SQL условие WHERE применяется к некоторой таблице т, при этом исключаются из рассмотрения все строки таблицы т, для которых указанное в конструкции WHERE выражение принимает значение  false или unk (т.е. не true). Аналогичным образом, когда к результату выполнения некоторой операции группирования, представленному таблицей G, применяется конструкция HAVING, ИЗ дальнейшего рассмотрения исключаются все группы  кортежей таблицы G, для которых указанное в конструкции HAVING выражение принимает значение false или unk (т.е. не true)10. Из этого следует, что мы просто обратили внимание читателя на некоторые средства поддержки трехзначной логики, характерные для языка SQL как такового, а не являющиеся неотъемлемой частью описанного выше подхода, основанного на использовании трехзначной лэгики.

Читать »

СЖАТЫЕ СТ ОЛ Б Ц Ы TransRelational

Добавлено Дата: 24 August, 2012 категория: SQL, Базы данных

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

Читать »

БЛОКИРОВКА

Добавлено Дата: 24 August, 2012 категория: SQL, Базы данных

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

Читать »