Главная » SQL

Базы данных и управление ими

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

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

Читать »

ВОССТАНОВЛЕНИЕ СИСТЕМЫ

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

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

Читать »

КАТАЛОГ СУБД

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

Как отмечалось в главе 2, каждая СУБД должна поддерживать функции каталога, или словаря. Каталог обычно размещается там, где хранятся различные схемы  (внешние, концептуальные,  внутренние)  и  все,  что  относится  к   отображениям   ("внешнийконцептуальный", "концептуальный-внутренний", "внешний-внешний"). Иначе говоря, в каталоге содержится подробная информация (иногда называемая описательной информацией или метаданными), касающаяся различных объектов, которые имеют значение для самой системы. Примерами таких объектов могут служить переменные отношения, индексы, ограничения поддержки целостности, ограничения защиты и т.д. Описательная информация  необходима  для  обеспечения  правильной  работы  системы.  Например, оптимизатор использует информацию каталога об индексах и других физических структурах хранения данных, а также прочую информацию, необходимую ему для принятия решения о том, как выполнить тот или иной запрос пользователя (см. главу 18). Аналогично, подсистема защиты использует информацию каталога о пользователях и установленных ограничениях защиты (глава 17), чтобы  разрешить или запретить выполнение поступившего запроса.

Читать »

Сравнение отношений и таблиц

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

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

Читать »

СОХРАНЕНИЕ ЗАВИСИМОСТЕЙ

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

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

8  Из этого следует, что комбинация переменных отношения "SECOND—SP" немного лучше представляет реальный мир по сравнению с переменной отношения FIRST, находящейся в 1НФ, а комбинация переменных отношения "SC-CS" — немного лучше по сравнению с переменной отношения SECOND, находящейся в2НФ.

Читать »

Транзитивное замыкание (базы данных)

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

Операция транзитивного замыкания обозначается как “Tclose” (transitive  closure). Здесь она упоминается в основном для полноты изложения; ее подробное описание выходит за рамки данной главы. Но в этом разделе будет по меньшей мере дано определение этой операции. Предположим, что а — бинарное отношение с атрибутами X и Y, из которых оба принадлежат к одному и тому же типу т. В таком случае транзитивное замыкание а, TCLOSE а, представляет собой отношение а+ с таким же заголовком, как и у отношения а, и телом, представляющим собой надмножество отношения а, которое имеет приведенное ниже определение.
Читать »

РЕАЛИЗАЦИЯ РЕЛЯЦИОННЫХ ОПЕРАТОРОВ

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

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

Читать »

НОРМАЛЬНАЯ ФОРМА БОЙСА-КОДДА

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

В этом разделе мы отменим применявшееся выше допущение о том, что каждая переменная отношения имеет только один потенциальный ключ (а именно—  первичный ключ), и рассмотрим более общий случай. Дело в том, что первоначальное определение, данное Коддом для ЗНФ [11.6], не во всех случаях оказывается удовлетворительным. В частности, оно неадекватно при выполнении следующих условий, касающихся определенной переменной отношения:

Читать »

ИСЧИСЛЕНИЕ ДОМЕНОВ

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

Как было указано в разделе 8.1, исчисление доменов отличается от исчисления кортежей тем, что в нем переменные области значений определены на доменах (типах), а не на отношениях. С точки зрения синтаксиса наиболее очевидное различие между исчислением доменов и исчислением кортежей состоит в том, что первое поддерживает дополнительную форму параметра <bool ехр>, который мы будем называть условием принадлежности (membership condition). В общем виде условие принадлежности можно записать следующим образом.

Читать »

Защита данных

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

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

Читать »

ТРАНЗАКЦИИ

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

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

Читать »

Представления

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

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

VAR GOOD_SUPPLIER VIEW

Читать »

Генераторы типов

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

В языке SQL поддерживаются три генератора типов18 (в терминологии SQL они называются конструкторами типов): REF, ROW и ARRAY. В данной главе рассматриваются только ROW и ARRAY, а описание REF откладывается до главы 26. Ниже приведен пример, иллюстрирующий использование генератора типа строки ROW.

Читать »

НЕСОВЕРШЕНСТВО ЯЗЫКА SQL

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

Как отмечалось в разделе 4.1 этой главы, язык SQL отнюдь нельзя назвать  "совершенным"  реляционным  языком,  поскольку  он  имеет  много  недостатков,  вызванных многочисленными недоделками и переделками.  Конкретные критические замечания будут представлены в следующих главах. Отметим лишь основной недостаток, который заключается в том, что в целом язык SQL, строго говоря, некорректно поддерживает реляционную модель. Поэтому  возникает сомнение, действительно ли современные продукты SQL заслужили право называться реляционными. Фактически, насколько это известно автору, на сегодняшний день на рынке нет ни одного продукта, который поддерживал бы реляционную модель в полном объеме6. Мы не хотим этим сказать, что если современные продукты обходятся без каких-то элементов реляционной модели, то последние не очень важны; напротив, в модели важен каждый элемент. Более того, каждый из ее элементов важен исключительно по практическим соображениям.  Нельзя не подчеркнуть тот непреложный факт, что назначение реляционной теории состоит не в том, чтобы быть просто "теорией ради теории". Вовсе нет, ее назначение — заложить основу для построения систем, которые будут практически применимыми на все сто процентов. Но, как это ни печально, со стороны изготовителей продуктов еще не сделано реальных шагов к решению проблемы реализации реляционной теории во всей ее полноте. В результате, с позволения сказать, "реляционные" продукты сегодняшнего дня все как один по тем или иным причинам оказываются неспособными реализовать преимущества, которые могут быть достигнуты в результате использования реляционной технологии в потном объеме.

Читать »

ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ ДЛЯ ПОДДЕРЖКИ ПРИНЯТИЯ РЕШЕНИЙ

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

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

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

Читать »