Главная » SQL

НЕЗАВИСИМОСТЬ ОТ СУБД

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

Вновь обратимся к обсуждению двенадцати общих целей систем распределенных баз данных. Последняя из перечисленных целей предусматривала  обеспечение независимости от СУБД. Как уже указывалось в разделе 21.3, предположение о строгой однородности оказывается неоправданно строгим, поскольку в действительности необходима лишь поддержка любыми СУБД на различных узлах одного и того же интерфейса. Как указывалось в разделе 21.3, если, например, СУБД Ingres и Oracle поддерживают официальный стандарт SQL (не больше и не меньше!), можно будет добиться, чтобы они играли роли партнеров в неоднородной распределенной системе. Фактически такая  возможность — один из первых доводов, который обычно приводится в пользу стандарта языка SQL. Здесь эта возможность рассматривается более подробно.

Читать »

Преимущества подхода, предусматривающего использование базы данных

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

Рассмотрим преимущества использования баз данных, связанные с наличием централизованного управления.

■     Возможность совместного доступа к данным

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

Читать »

УПРАВЛЕНИЕ ТРАНЗАКЦИЯМИ

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

Как уже говорилось во введении к настоящей части, эта и следующая  главы посвящены восстановлению и параллельности. Данные понятия очень тесно связаны и составляют части более общей темы управления  транзакциями.  Но с методической точки зрения желательно рассматривать эти темы по возможности отдельно, поэтому данная глава в основном посвящена  теме восстановления, а параллельность будет рассмотрена   в   главе   16   (однако   вопросы   параллельности   время   от   времени рассматриваются и в данной главе, особенно в разделе 15.4).

Читать »

ТРИГГЕРЫ (НЕБОЛЬШОЕ ОТСТУПЛЕНИЕ)

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

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

Читать »

СХЕМА КЛАССИФИКАЦИИ ОГРАНИЧЕНИЙ

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

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

Читать »

Отсутствующая информация

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

В   повседневной   жизни   часто   приходится   сталкиваться   с   проблемой отсутствия некоторой информации. Весьма типичны ситуации, когда, например, "дата     рождения    не     известна",     "имя     докладчика     будет     объявлено дополнительно", "адрес лица в данный  момент не известен" и т.д. Поэтому в системах  баз  данных  должен   существовать  механизм  обработки  подобных ситуаций. На практике  наиболее типичный подход к решению этой проблемы (используемый, в  частности, в языке SQL, а значит, и в большинстве коммерческих  продуктов) основан на применении неопределенных значений (NULLзначений) и трехзначной логики. Например, вес детали, скажем, с номером Р7, может быть не известен, поэтому упрощенно можно сказать, что ее вес "является неопределенным". В более точном смысле это выражение означает следующее: а) известно, что деталь существует; б) несомненно, деталь имеет вес; в) ее вес нам не известен.

Читать »

ОПЕРАТОРЫ и реляционная модель

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

До сих пор все определения операторов, применявшиеся в этой главе, относились либо к селекторам, либо к операторам ТНЕ_, а теперь рассмотрим определения операторов в целом. В качестве первого примера ниже показан определяемый пользователем оператор ABS для встроенного типа RATIONAL.

Читать »

ТРИ ПРОБЛЕМЫ ОРГАНИЗАЦИИ ПАРАЛЛЕЛЬНОЙ РАБОТЫ

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

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

Читать »

ПРИМЕЧАНИЕ ПО ПОВОДУ АТРИБУТОВ, СОДЕРЖАЩИХ ОТНОШЕНИЯ В КАЧЕСТВЕ ЗНАЧЕНИЙ

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

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

Читать »

НАЗНАЧЕНИЕ БАЗ ДАННЫХ

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

Почему так широко используются системы с базами данных? Какие  преимущества получает пользователь при работе с ними? В некоторой степени ответ зависит от того, о какой системе идет речь — однопользовательской или многопользовательской (точнее будет  сказать, что многопользовательские  системы предоставляют многочисленные дополнительные преимущества). Сначала рассмотрим случай однопользовательской системы.

Читать »

ОБЪЕКТЫ, КЛАССЫ, МЕТОДЫ И СООБЩЕНИЯ

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

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

Читать »

МЕТОДЫ СЖАТИЯ БАЗЫ ДАННЫХ

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

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

Читать »

УПОРЯДОЧИВАЕМОСТЬ

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

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

Читать »

Семантическое моделирование  ОБЩИЙ ПОДХОД

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

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

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

Читать »

МАНИПУЛИРОВАНИЕ ДАННЫМИ XML

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

Теперь перейдем к вопросу о языках манипулирования данными XML. Было предложено много таких языков, но стандартным, по-видимому, должен стать XQuery [27.29]. Как будет вскоре показано, язык XQuery (работа над которым ко  времени написания данной книги еще не была закончена) основан на  нескольких более ранних языках, включая, в частности, XPath [27.27]; в действительности, язык XQuery полностью включает в себя XPath.

Читать »