Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Многозначная зависимость. Аксиомы многозначной зависимости.



 

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

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

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

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

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

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

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

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

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

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

4. правило декомпозиции X< U, Y< U, Z< U, 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. сохранение функциональной зависимости


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

 

Из всех возможных разложений схемы должны использоваться только те, которые обладают свойством соединений без потерь. Пусть в схеме 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=город. отделà №, отделà город эти зависимости в исходном разложении не существуют, а исходные функциональные зависимости утеряны, значит это разложение с потерями.

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


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

 

Из всех возможных разложений схемы должны использоваться только те, которые обладают свойством соединений без потерь. Пусть в схеме 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

В результате на экране появится список баз данных (в данном случае включающий одно имя), хранящихся на диске, сведения о занимаемом объеме памяти и о наличии на диске свободной памяти. Команду 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. Не рекомендуется создание индексов для таблиц с ключами очень большой длины, так как скорость работы такой таблицы снижается из-за больших объемов ввода/вывода.

 

FoxPro

 

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

Например:

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

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

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

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

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

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

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

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

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

 


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


Поделиться:



Популярное:

Последнее изменение этой страницы: 2017-03-08; Просмотров: 1111; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.04 с.)
Главная | Случайная страница | Обратная связь