Многозначная зависимость. Нормализация, функциональные и многозначные зависимости. Базы данных: О нормализации, функциональных и многозначных зависимостях

До сих пор, определяя нормальные формы всех уровней, включая НФБК, мы пользовались понятием функциональной зависимости между атрибутами отношения R. Для дальнейшего продолжения нормализации, в частности, для перехода к обсуждению четвертой нормальной формы, нам придется ввести понятие многозначной зависимости (МЗЗ). Многозначная зависимость между атрибутами A и B записывается A®®B и читается как "В многозначно зависит от А" или "А многозначно определяет В".

Пусть А, В, С произвольные подмножества множества атрибутов отношения R. Тогда В многозначно зависит от А ( A ®® B ) тогда и только тогда, когда множество значений В, соответствующее значениям А и С отношения R , зависит только от А, но не зависит от С. Многозначные зависимости всегда образуют связанные пары, т.е. если для отношения R{A,B,C} выполняется A®®B, то выполняется также и A®®С. Эти зависимости символически представляются в виде:

А ®® В/С

Многозначная зависимость может быть определена как тривиальная и нетривиальная.

Многозначная зависимость А®®В некоторого отношения R определяется как тривиальная , если атрибут В является подмножеством атрибута А или если объединение А и В образуют все множества атрибутов R, т.е.

А È В = R

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

Теорема Фейгина . Пусть А, В и С являются множествами атрибутов отношения R {А, В, С}. Отношение R будет равно соединению его проекций {А, В} и {А, С}, тогда и только тогда, когда для отношения R выполняется многозначная зависимость А ®® В/С.

4.4. Четвертая нормальная форма (4нф)

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

Рис. 4.11. Ненормализованное отношение Продукт

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

Рис. 4.12. Нормализованное отношение НПродукт

В отношении Продукт потенциальным ключом является атрибут Товар, а в отношении НПродукт – полный набор атрибутов {Товар, Поставщик, Тара }

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

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

если А ® В, то А ®® В

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

Для рассматриваемого нами отношения Продукт можно записать две многозначные зависимости:

Товар ®® Поставщик / Тара

Товар ®® Тара / Поставщик

Согласно теореме Фейгина, можно произвести декомпозицию исходного отношения и представить его в виде двух проекций. В качестве исходного отношения возьмем нормализованное отношение НПродукт , а в качестве проекции -- Товар_Поставщик и Товар_Тара :

Рис. 4.13. Проекции Товар_Поставщик и Товар_Тара

Поскольку выполнена декомпозиция без потерь, обратное соединение проекции Товар_Поставщик и Товар_Тара восстановит отношение НПродукт .

В случае, представленном на Рис.4.13., для добавления информации о том, что "Святой источник" будет разливаться в тару, предоставленную новым поставщиком, достаточно включить в проекцию Товар_Поставщик один кортеж.

Определение . Отношение находится в 4НФ, если оно находится в НФБК и не содержит нетривиальных зависимостей.

Со схемой , а также два произвольных подмножества атрибутов . Пусть .

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

Символически выражается записью

.

Формально

Многозначная зависимость называется тривиальной , если выполняется хотя бы одно из условий:

Пример

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

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

Формально, здесь две МЗЗ: {Дисциплина} {Книга}|{Лектор} .

Во-первых, это избыточно. А во-вторых, для такого отношения необходимо разрабатывать дополнительный механизм контроля целостности. Оптимальным решением проблемы будет декомпозиция отношения на два с заголовками {Дисциплина, Книга} и {Дисциплина, Лектор} . Такая декомпозиция будет находиться в 4NF . Допустимость декомпозиции устанавливает теорема Феджина (см. далее).

Теоремы

Связные пары

Феджин показал, что многозначные зависимости образуют связные пары (в обозначениях определения):

.

Поэтому их часто представляют вместе в символической записи:

Функциональные зависимости

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

Правила вывода

В 1977 году Бэри, Феджин и Ховард установили, что правила вывода Армстронга можно обобщить и распространить, как на функциональные, так и на многозначные зависимости.

Пусть у нас есть отношение и множества атрибутов . Для сокращения записи вместо будем писать просто .

Группа 1: базовые правила.

Группа 2: выводятся несколько дополнительных правил, упрощающих задачу вывода многозначных зависимостей.

Группа 3: устанавливается связь между функциональными и многозначными зависимостями.

Группа 4: для функциональных зависимостей, выводятся из вышеприведенных правил.

См. также

Литература

  • К. Дж. Дейт Введение в системы баз данных = Introduction to Database Systems. - 8-е изд. - М .: «Вильямс», 2006. - С. 1328. - ISBN 0-321-19784-4

Wikimedia Foundation . 2010 .

  • Серовский исторический музей
  • Чиханчин, Юрий Анатольевич

Смотреть что такое "Многозначная зависимость" в других словарях:

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

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

    Нормализация баз данных

    Четвёртая нормальная форма - (4NF) одна из возможных нормальных форм отношения реляционной базы данных. Содержание 1 Определение 2 Пример 3 Примечания … Википедия

    Нормализация БД - Нормальная форма требование, предъявляемое к отношениям в теории реляционных баз данных для устранения из базы избыточности, которая потенциально может привести к логически ошибочным результатам выборки или изменения данных. Содержание 1… … Википедия

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

    Четвертая нормальная форма - Основная статья: Нормальная форма Четвёртая нормальная форма (4NF) одна из возможных нормальных форм таблицы реляционной базы данных. Определение Таблица находится в 4NF, если она находится в BCNF и не содержит нетривиальных многозначных… … Википедия

    Пятая нормальная форма - Основная статья: Нормальная форма Пятая нормальная форма (5NF) одна из возможных нормальных форм отношения реляционной базы данных. Содержание 1 Определение 1.1 Декомпозиция без потерь … Википедия

    МАТЕРИАЛИЗМ - (от лат. materialis вещественный) многозначная идея, которой чаще всего придается один или некоторые из следующих смыслов. 1. Утверждение относительно существования или реальности: только материя существует или является реальной; материя является … Философская энциклопедия

    Мерлин, Вольф Соломонович - В Википедии есть статьи о других людях с такой фамилией, см. Мерлин (значения). Эту статью следует викифицировать. Пожалуйста, оформите её согласно правилам оформления статей … Википедия

Реляционная целостность состоит из двух аспектов:

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

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

Нормализация, функциональные и многозначные зависимости

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

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

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

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

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

В паре атрибутов одного отношения, X и Y, атрибут Y функционально зависит от атрибута X, если в данном отношении одному значению X соответствует в точности одно значение Y.

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

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

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

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

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

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

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

Данная нормальная форма - это модификация третьей нормальной формы. Таблица может находиться в 3НФ, но не в НФБК, только в одном случае: если она имеет, помимо первичного ключа, ещё по крайней мере один составной возможный ключ, и по крайней мере один из атрибутов таблицы входит и в первичный, и в возможный ключи. Такое бывает достаточно редко, в остальном 3НФ и НФБК эквивалентны.

Таблица находится в четвертой нормальной форме (4НФ), если она находится в НФБК и не содержит нетривиальных многозначных зависимостей. Многозначная зависимость не является функциональной, она существует в том случае, когда из факта, что в таблице содержится некоторая строка X, следует, что в таблице обязательно существует некоторая определённая строка Y.

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

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

такой проверки. Поэтому остановимся лишь на процедуре приведения таблиц к НФБК.

Эта процедура основывается на том, что единственными функциональными зависимостями в любой таблице должны быть зависимости вида K->F, где K - первичный ключ, а F - некоторое другое поле. Заметим, что это следует из определения первичного ключа таблицы, в соответствии с которым K->F всегда имеет место для всех полей данной таблицы. "Один факт в одном месте" говорит о том, что не имеют силы никакие другие функциональные зависимости. Цель нормализации состоит именно в том, чтобы избавиться от всех этих "других" функциональных зависимостей, т.е. таких, которые имеют иной вид, чем K->F.

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

Следует рассмотреть два случая:

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

2) Таблица имеет первичный (возможный) ключ К, не являющееся возможным ключом поле F1, которое, конечно, функционально зависит от К, и другое неключевое поле F2, которое функционально зависит от F1. Решение здесь, по существу, то же самое, что и прежде - формируется другая таблица, содержащая F1 и F2, с первичным ключом F1, и F2 удаляется из первоначальной таблицы:

и T2(F1,F2), первичный ключ F1.

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

Лабораторная работа №3

Задание для лабораторной работы №3. Цели работы:

Нормализовать таблицы.

Выделить все ключевые поля (суперключи, потенциальные ключи, первичные ключи и внешние ключи).

Составить ER (IDEF, UML по вариантам) диаграммы.

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

Таблица 1

Должность

Зелёная форма

Кузовщик

Синяя форма

тех контроль

Жёлтая форма

13-12, 14-23, 12-

Кузовщик

Синяя форма

тех контроль

Жёлтая форма

16-25, 12-54, 13-

Зеленков

Кузовщик

Синяя форма

Халтурин

Зелёная форма

Таблица 2

Продукция

Упаковка

Краска ТУ 124-89

Банка 3 кг,

Балончик 100 гр, Балон-

чик 250 гр.

Краска ТУ 512-2005

Банка 1 кг,

Балончик 100 гр

Растворитель

Пэт 100 гр, Пэт 500 гр,

Цех 1, Цех 3

Банка 1 кг

Растворитель

Пэт 250 гр, Пэт 500 гр.

Цех 2, Цех 3

Растворитель

Пэт 250 гр, Банка 3 кг

законодательство за последние полгода

Журналист

Финансы: краткосрочный прогноз

Хай-тек: Обзор новинок на выставке ИТ

Таблица 4

Водители

автомобиля

Москва, Нижний

Новгород,

Иванов, Петров

Владимир, Казань, Уфа

Петров, Сидоров

Мерседес

Чистополь,

Сидоров, Иванов

Альметьевск

Чистополь,

Иванов, Сидоров

Альметьевск

Москва, Нижний

Новгород,

Петров, Сидоров

Мерседес

Владимир, Казань, Уфа

Иванов, Петров

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

Обучение

Рис. 4.5. К иллюстрации многозначных зависимостей

Для примера рассмотрим таблицу "Обучение" (рис. 4.5). В ней есть многозначная зависимость "Дисциплина-Преподаватель": дисциплина (в примере Информатика) может может читаться несколькими преподавателями (в примере Шипиловым и Голованевским). Есть и другая многозначная зависимость "Дисциплина-Учебник": при изучении Информатики используются учебники "Паскаль для всех" и "Язык Си". При этом Преподаватель и Учебник не связныфункциональной зависимостью, что приводит к появлению избыточности (для добавление еще одного учебника придется ввести в таблицу две новых строки). Дело улучшается при замене этой таблицы на две: (Дисциплина-Преподаватель и Дисциплина-Учебник).

[ Назад ] [ Содержание ] [ Вперед ]

Базы данных: О нормализации, функциональных и многозначных зависимостях

страницы в данном разделе
Базы данных: Данные и ЭВМ Базы данных: Концепция баз данных
Базы данных: Архитектура СУБД Базы данных: Модели данных
Базы данных: Основные понятия Базы данных: Характеристика связей и язык моделирования

Многозначная зависимость существует, если при заданных значениях атрибута X существует множество, состоящее из 0 или более взаимосвязанных значений атрибута Y, причем множество значений атрибута Y связано со значением атрибута в отношении U-X-Y, где U – все множество атрибутов отношений.

Обозначение многозначной зависимости X->>Y.

Аксиомы многозначной зависимости

1. дополнение для многозначной зависимости: Если X>Y, то X->>U-X-Y

2. пополнение для многозначной зависимости: Если X>Y, то WuX->>VuY

3. транзитивность для многозначной зависимости: Если X>Y, Y->>Z, то X->>Z-Y

Дополнительные правила вывода для многозначных зависимостей

1. объединение Если X>Z, X->>Y, то X->>YuZ

2. псевдотранзитивность Если X>Y, WuY->>Z, то WuX->>Z-(WuY)

3. смешанное правило транзитивности Если X>Y, XuYàZ, то XàZ-Y

4. правило декомпозиции X>Y, X->>Z,то X->>Y^Z, X->>Y-Z, X->>Z-Y

Я нормальная форма

Отношение находится в 4 нормальной форме, если оно находится в НФБК и в нём отсутствуют однозначные зависимости являющиеся функциональными.

Пример: Рассмотрим зависимость (№, курс, дети, должность)

Между преподавателем и курсом связь M:M

Между преподавателем и детьми 1:M

Многозначные зависимости №->>курс, №->>дети

Схема отношения находится в 4НФ, если всякий раз, когда существует многозначная зависимость X->>Y, где Y непусто, и не является подмножеством X, и XvY состоит не из всех атрибутов R, X содержит к-н ключ отношения R, атрибуты, между которыми существует многозначная зависимость, выделяют в отдельные отношения

R1(№,курс) R2(№,дети) R3(№,должность)

Я нормальная форма

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

Говорят, что отношение находится в 5НФ, тогда и только тогда, когда любая зависимость по соединению определяется возможными ключами R. Иначе, каждая проекция содержит не менее одного ключа или по крайней мере один не первичный атрибут.

Декомпозиция отношений должна гарантировать обратимость. Обратимость предполагает:

1. отсутствие потери картежей

2. не появляются ранее отсутствующие картежи

3. сохранение функциональной зависимости

Соединение без потерь, сохраняющих зависимость

потерь

<=> если R1^R2àR1-R2 либо R1^R2àR2-R1 при многозначной зависимости R1^R2->>R1-R2, либо R1^R2->>R2-R1

Пример:

Служащие(№,отдел,город)

Условия отсутствия потерь при соединениях

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

Условия отсутствия потерь при соединении:

Если R1 и R2 являются разложением R, с сокращением функциональных зависимостей – это разложение обеспечивает соединение без потерь с сохранением функциональной зависимости <=> если R1^R2àR1-R2 либо R1^R2àR2-R1 при многозначной зависимости R1^R2->>R1-R2, либо R1^R2->>R2-R1

Операции пересечения и разности определены над списками атрибутов отношений.

Пример:

Служащие(№,отдел,город)

1 разложение E1(№, отдел) E2(№, город)

2 разложение E3(№, отдел) E4(отдел, город)

1. E1^E2=№ E1-E2=отдел E2-E1=город. №àотдел, №àгород условие удовлетворяет, разложение без потерь.

2. E3^E4=отдел E3-E4=№ E4-E3=город. отделà№, отделàгород эти зависимости в исходном разложении не существуют, а исходные функциональные зависимости утеряны, значит это разложение с потерями.

Для разложений более чем из двух отношений можно использовать метод Табло

Метод в Табло

Дано множество функциональных зависимостей, схема отношения полученная в результате разложения. Процедура состоит в построении таблицы, строками которой являются разложенные отношения, а столбцами – список атрибутов этих отношений без повторений. Таблица заполняется символом aj если элементы строки i в столбце j соответствуют атрибуту Ajотношения Ri в противном случае ставится bij. После построения таблицы следует просмотр всех функциональных зависимостей XàY если для атрибутов из X найдутся строки, где в соответствующих местах стоят aj, то элементы bij этих строк соответствующие столбцам атрибутов из Y заменяется на aj. Если в результате появляется строка таблицы, полностью заполненная aj, то это соединение без потерь.

Пример: R(A,B,C,D) Ф.З. AàC, BàC, CàD.

Разложили: R1(A,B) R2(B,D) R3(A,B,C) R4(B,C,D)

A B C D
R1 a a b b
R2 b a b A
R3 a a a B
R4 b a a a
AàC
A B C D
R1 a a a b
R2 b a b A
R3 a a a B
R4 b a a a
BàC
A B C D
R1 a a a b
R2 b a a A
R3 a a a B
R4 b a a a
CàD
A B C D
R1 a a a A
R2 b a a A
R3 a a a A
R4 b a a A

Есть строки со всеми a, разложение без потерь.

Создание и модификация, перемещение БД. (FoxPro)

Создание БД начинается вводом команды для формирования структуры файла данных:

CREATE <имя файла базы данных>

После ввода этой команды появляется окно, в котором Вы должны задать все параметры структуры базы: Имя поля, Тип поля, Размер поля,Количество полей.

Завершение ввода всей структуры подтверждается нажатием клавиши "OK", затем FoxPro запрашивает необходимость заполнения полей создаваемой базы данных.

Чтобы убедиться в том, что Ваш файл действительно создан, можно ввести команду

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

Для работы с созданной базой данных ее надо открыть посредством команды

USE <имя файла базы данных>

Для просмотра структуры файла ввести команду

DISPLAY STRUCTURE или LIST STRUCTURE

Закрытие базы данных осуществляется командой CLOSE <имя файла базы данных>

Дополнение БД записями выполняется по интерактивной команде APPEND

Получить на экране дисплея содержимое записей предварительно открытой базы данных можно по команде LIST <список полей> (и еще DISPLAY)

GO N позволяет сделать запись с номером N текущей. Она имеет два формата,

позволяющих сделать текущей:

а) первую по порядку запись - GO TOP

б) последнюю запись - GO BOTTOM

Для перемещения по базе данных на заданное число записей используется команда SKIP N

Продвижению вперед соответствует положительное значение N, продвижению назад - отрицательное.

Edit – позволяет редактировать её поля. Удалять и добавлять данные. Browse – тоже один из вариантов редактирования.

Создание индексов

Индекс – указатель на данные в таблице.

CREATE INDEX имя ON имя таблицы

Типы индексов:

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

CREATE INDEX имя ON имя таблицы (имя столбца)

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

CREATE UNIQUE INDEX имя ON имя таблицы (имя столбца)

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

CREATE INDEX имя ON имя таблицы (имя столбца1, имя столбца2)

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

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

Например:

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

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

Unique – создается индекс, в котором хранятся только неповторяющиеся значения индексного выражения. Если 2 или более записей содержат одинаковые значения индексного выражения, то будет храниться только одно значение и ссылка на первую из записей с одинаковым значением индексного выражения

Candidate – создается уникальный индекс, который не содержит полей с пустыми значениями

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

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

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

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

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

25. Поиск и сортировка, ускоренный поиск (на примере СУБД FoxPro).



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: