1626434812-e667f6b6e7e69d3a0798830a58e9075b (844135), страница 4
Текст из файла (страница 4)
2) Результат операции пересечения опюшений — отношение, содержащее строки, которые входят одновременно в оба отношения-операнда. Отношения-операнды должны иметь одинаковый набор атрибутов. 3) Разность отношений используется для выделения строк, которые входят в первое отношение-операнд и не входят во второе. Операнды должны иметь одинаковый набор атрибутов. 4) При выполнении произведения двух отношений каждая строка первого отношения-операнда сцепляется (конкатенируется) с каждой строкой второго отношения-операнда.
Сцепленные строки образуют отношение-результат. Число строк в отношении-результате равно произведению числа строк в отношениях-операндах. Множества атрибутов отношений-операндов не должны пересекаться, 5) Операция деления "обратна" операции умножения. Описать ее в "житейских" терминах довольно сложно, поэтому придется прибегнуть к некоторым обозначениям.
Пусть имеются два отношения: делимое А с атрибутами ~ц, а„... а„. Ь,, Ь„... Ь / и делитель В с атрибутами 1Ь,, Ь„... Ь /. Атрибут отношения А Ь, и атрибут отношения В Ь, определены на одном и том же домене (множестве допустимых значений) и имеют одинаковое имя. Результат деления А на  — отношение С с атрибутами 1а,, а ... а /. Базы данных.
Интеллектуальная обработка информации Формируется результат так. Если в строке отношения А атрибуты Ь,, Ь,, ... Ь совпадают с одной из строк отношения В, то эти атрибуты (Ь,, Ь,„... Ь ) отсекаются и строка без них включается в отношение-результат С. Вот пример для иллюстрации того, как производится операция деления (см. рис. 1.4). Рис. 1.4. Пример операции деления 6) Операция ограничения (выбора) отношения по некоторому условию позволяет выбрать те строки отношения-операнда, которые этому условию удовлетворяют. 7) Операция проекции позволяет выбрать из отношения-операнда опреде- ленныс столбцы. 3) Операция соединения — одна из наиболее важных опсраций реляционной алгебры.
Она имеет большое практическое значение. Существует 2 типа операций соединения: операция соединения по условию и операция естественного соединения. При выполнении операции соединения по условию двух отношений происходит конкатенация строк отношений- операндов, затем полученная сцепленная строка проверяется на соответствие заданному условию. Если строка удовлетворяет условию, она включается в отношение-результат, Если отношения-операнды обладают общим атрибутом (возможно, составным), то условие соединения может быть опущено, при этом подразумевается, что сравнение производится на равенство значений общих атрибутов. В этом случае говорят о естественном соединении отношений.
9) Операция переименования изменяет имена атрибутов отношения. 1О) Операция присваивания позволяет сохранить результат вычисления ре- ляционного выражения в отношении базы данных. Строгое определение операций реляционной алгебры можно найти в литературе, посвященной теории баз данных, например в Щ. Пользователи, как правило, имеют дело с этими операциями в виде конструкций языков программирования, например, языка Бф:запросов (71.
Гудава 1. Базы даииых в фактографических системах 21 1.5. Нормализации отношений При проектировании базы данных стараются, чтобы отображение объектов предметной области в структуры модели данных не противоречило семантике предметной области. Оно должно быть эффективным, то есть должно обеспечивать минимальное дублирование данных, удобство их обработки и обновления. Для удовлетворения этих требований необходимо опрсделить, из каких отношений должна состоять БД и какие атрибуты должны входить в эти отношения.
Теория реляционных баз данных обладает мощным инструментом, который способен помочь разработчику оптимальным образом спроектировать структуру отношений базы данных. Этот инструмент — метод нормализации отношений 11 — 5]. Нормализация отношений — пошаговый процесс разложения (декомпозиции) исходных отношений БД на более простые.
Каждая ступень этого процесса приводит схему отношений БД в последовательные "нормальные формы". Каждая следующая нормальная форма обладает "лучшими" свойствами, чем предыдущая. В теории реляционных баз данных принято выделять следующую последовательность нормальных форм: ! ) первая нормальная форма (1ХР); 2) вторая нормальная форма (2ХР); 3) третья нормальная форма (ЗХГ); 4) нормальная форма Бойса-Кодда (ВСХГ); 5) четвертая нормальная форма (АР); б) пятая нормальная форма (5ХР).
Каждой нормальной форме соответствует некоторый набор ограничений. Отношение находится в определенной нормальной форме, если оно удовлетворяет набору ограничений этой формы. Переводя структуру отношений БД в формы более высокого порядка, мы добиваемся удаления из таблиц избыточной неключевой информации. Процесс нормализации основан на понятии функциональной зависимости атрибутов. Говорят, что атрибут В функционально зависит от атрибута А (обозначается А->В), если в любой момент времени каждому значению атрибута А соответствует не более одного значения атрибута В. Обратите внимание, что термин "функциональная зависимость" соответствует понятию функции в математике.
Если неключевой атрибут зависит от всего составного ключа и не зависит от сго частей, то говорят о полной функциональной зависимости атрибута от составного ключа. Если атрибут А зависит от атрибута В, а В зависит от атрибута С, но обратная зависимость отсутствует„то говорят, что атрибут С зависит от А транзитивно, Базы данных. Интеллектуальная обработка информации Цена Дата Номер Артикул Наименование заказа 01.09.98 1 ! 672 Процессор Реп11шп 233 ММХ 1638 01.09.98 1 5301 М~В БОЪ'О БУ-5ЕАБ ЕТЕЯ-6618 300 16!1 ШММ 32 МЬ 01.09.98 ! О!.09.98 1 58 ЯЧОА РС1 1МЬ $3 ТИО64+ 192 Отношение находится в первой нормальной форме (1ИГ), если значения атрибутов атомарны, то есть в каждом столбце находится только одно значение, и все неключевые атрибуты функционально зависят от ключа.
Отношение находится во второй (АР) нормальной форме, если выполняются ограничения первой нормальной (!МАЙ) формы, и каждый неключевой атрибут функционально полно зависит от первичного ключа (первичный ключ может быть составным). Отношение находится в третьей нормальной форме (31ЧГ), если выполняются ограничения второй нормальной формы (2ХГ), и если все неключевые атрибуты отношения взаимно независимы и полностью зависят от первичного ключа.
Можнодать идругое определение. Отношение находится в третьей нормальной форме (ЗЫГ), если выполняются ограничения второй нормалыюй формы «2МГ), и в нем отсутствуют транзитивные зависимости неключевых атрибутов от ключа. В большинстве случаев третья нормальная форма служит компромиссом между полной нормализацией и функциональностью в совокупности с легкостью реализации. Как было отмечено выше, существуют нормальные формы, выше третьей (ЗХГ), но на практике они затрудняют разработку структур данных и снижают их функциональность. Рассмотрим пример приведения отношения к третьей нормальной форме.
Пусть небольшой фирме, занимающейся продажей комплектующих для компьютеров, требуется сохранять данные о заказах. Эти данные включают: 1) дату заказа; 2) номер заказа; 3) артикул (уникальный номер единицы товара); 4) наименование товара; 5) цену заказанного товара. Нам необходимо нормализовать приведенную ниже таблицу. Заметим, что она уже находится в 1ИГ, так как все ее атрибуты атомарны.
В СУБД дата— неделимый тип данных, поэтому, хотя дата заказа и состоит из 3 чисел, это— атомарный атрибут. Глава 1. Базы данных в факнюграфических системах гз 1672 Процессор Реппшп 233 ММХ 1638 01.09,98 2 01.09.98 2 1611 Р1ММ 32 МЬ 420 58 БУбА РС1 1МЬ БЗ ТИО 64+ 192 02.09.98 1 3417 Процессор Репбцш 11333 3876 02.09.98 1 02.09.98 1 161! Р1ММ 32 МЬ 420 2660 БЧбА АбР БЗ 86С357 02.09.98 2 В одном заказе может оказаться несколько одинаковых наименований товара, например, можно заказать два одинаковых процессора, поэтому составной атрибут "Дата-НомерЗаказа-Артикул" нс может быть первичным ключом.
Для того чтобы выполнить требования второй нормальной формы, надо добавить к таблице атрибут, который бы однозначно идентифицировал каждую единицу товара, входящую в заказ. Назовем такой атрибут "1Р". Вот приведенное выше отношение в АР. )Р Дата Номер Артикул Наименование заказа Цена 1 01.09.98 1 1672 Процессор Реп)шш 233 ММХ 1638 2 01.09.98 1 5301 М/В БОУО БУ-5ЕАБ ЕТЕЯ-6618 300 3 01 09.98 1 16) 1 Р1ММ 32 МЬ 420 4 01.09.98 1 58 ЗУбА РС! 1МЬ БЗ ТИО 64+ 192 5 01.09.98 2 1672 Процессор Реп)шт 233 ММХ 1638 6 01.09 98 2 ) 611 Р)ММ 32 МЬ 7 02.09.98 1 58 БЪ'бА РС1 1МЬ БЗ ТИО 64+ 192 8 02.09.98 1 3417 Процессор Реп)шгп 11 333 3876 9 02.09.98 1 1611 Р1ММ 32 МЬ 10 02.09.98 2 2660 БУбА АбР БЗ 86С357 396 В этой таблице все атрибуты зависят от атрибута 1Р, но, кроме того, есть зависимость "Наименования" и "Цены" от "Артикула".
Требование независимости атрибутов отношения не выполняются ),'ЗХР). Для приведения отношения в третью нормальную форму таблицу требуется разбить на три отношения. Базы данных. Интеллектуальном обраоотка информации Нормализация отношений — не пустая трата времени. Пусть в приведенном примере требуется изменить "Наименование" с "ИММ 32 МЬ"' на "ШММ 32 МЬ ЯЖАМ". В ненормализованном отношении пришлось бы искать и редак- Глава 1. Базы даиных в фактографических системах тировать все строки, содержащие это наименование, а в нормализованной БД изменяется только одна строка одного отношения. Подробнее с процессом нормализации и с требованиями нормальных форм старше третьей (ЗИЕ) можно ознакомиться в литературе по теории реляционных БД ~3,4~ 1.6.
Средства ускорения доступа к данным Современным СУБД приходится оперировать огромными массивами информации, объемы которых достигают порой десятков терабайт. Выполняя запросы тысяч пользователей, они должны обеспечить небольшое, не более нескольких секунд, время отклика. СУБД ие сможет эффективно работать в таких условиях, не используя методов ускорения выборки данных. Цель этих методов — избежать полного перебора строк таблиц БД при выполнении реляционных операций, например, при соединении отношений или поиске строк, удовлетворяю|цих условию. В современных СУБД используются два основных метода ускорения доступа к данным: индексирование и хэширование [1 — б). Эти методы обеспечивают лучшее по сравнению с остальными время поиска и модификации таблиц БД.
Метод индексирования основан на использовании индексов. Индекс отношения очень похож на предметный указатель книги. В таком указателе приведен список упорядоченных по алфавиту терминов, которые встречаются в книге. Каждому термину сопоставлена страница или страницы, где он встречается. Обычно предметный указатель занимает не более нескольких страниц. Если нам требуется найти место в книге, где термин раскрывается, мы находим его в предметном указателе, это легко сделать — указатель невелик, кроме того, все термины там упорядочены по алфавиту. Затем мы читаем номер страницы, соответствующий термину, раскрываем книгу на ней и находим нужный нам абзац. Если бы предметный указатель отсутствовал, нам пришлось бы пролистывать все страницы, чтобы найти интересующее нас место, и мы бы потратили значительно больше времени.