Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на экзаменационные вопросы.doc
Скачиваний:
104
Добавлен:
01.05.2014
Размер:
6.31 Mб
Скачать

Вопрос 16. Нормальные формы: 1-3 нф, нфбк и её отличие от 3нф. Метод нормальных форм. Типы функциональных зависимостей, устраняемые в процессе нормальизации отношений.

Определение 1НФ. Отношение находится в 1НФ, если значения атрибутов атомарны.

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

Пусть имеем отношение R (A, B, C, D, E, …). Атрибут А является первичным ключом этого отношения, от него функционально зависят все остальные атрибуты. Кроме того, существует ФЗ C  D, наличие которой мешает отношению R находиться в НФБК, т.к. С, являясь детерминантом отношения, не является его ключом. В этом случае следует разбить отношение на два: R1 (C, D) и R2 (A, B, C, E, …). Отношение R1 является проекцией отношения R. Атрибуты функциональной зависимости, на которую выполняется проекция, переходят в новое отношение, при этом атрибут (совокупность атрибутов) левой части остается также и в исходном отношении.

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

Для приведения отношения ко 2НФ надо устранить частичную зависимость от ключа. Для этого отношение раскладывают на два, выполняя проекцию на часть составного ключа и зависящие от нее атрибуты.

Определение 3НФ. Отношение находится в 3НФ, если оно находится во 2НФ, и в нем отсутствуют транзитивные зависимости неключевых атрибутов от ключа.

Для приведения отношения к 3НФ нужно выполнить проекции на ФЗ между неключевыми атрибутами отношения.

Определение 3НФ не охватывает отношения со следующими условиями:

  1. Отношение имеет два или более потенциальных ключа.

  2. Оба ключа являются сложными.

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

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

Вопрос 19. Case-средства для разработки приложений баз данных.

Вопрос 8. Сортировка, индексация, поиск и фильтрация данных в субд Access.

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

В базах данных используется как физическое, так и логическое упорядочение данных. Физическое упорядочение данных называется сортировкой. Результатом является новая таблица, в которой строки расположены в порядке возрастания или убывания значений одного или нескольких полей. Поле или группа полей, по которым осуществляется упорядочение, называется ключом сортировки. Если ключ состоит из одного поля, и это поле типа Дата, то строки упорядочиваются в хронологическом порядке. Например, 12.10.1812 < 12.10.1912 < 12.12.1912 < 01.02.2002 < 02.02.2002. Если ключевое поле текстового типа, то порядок лексикографический в соответствие с таблицей кодирования. Например, Иванов < Ивановский < Ивашко < Иващук. Если ключ сортировки состоит из n полей, а x1,x2,…,xn и y1,y2,…,yn - это значения ключей для двух строк таблицы, тогда x1,x2,…,xn < y1,y2,…,yn, если для всякого i >= 1 x1= y1, …, xi=yi и xi+1 < yi+1.

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

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

В СУБД Access термин «сортировка» используется в другом смысле. Сортировка в Access позволяет изменить порядок строк в таблице только при выводе ее на экран. Сортировка производится в режиме таблицы по одному или нескольким полям, как по возрастанию, так и по убыванию. Проще всего можно отсортировать таблицу по одному полю (столбцу), щелкнув в любом месте нужного столбца, а затем по одной из пиктограмм сортировки (по возрастанию или по убыванию). Таким же способом можно отсортировать таблицу и одновременно по нескольким полям. Сортировка при этом осуществляется сначала по первому полю, при равенстве значений первого поля – по второму и т.д., причем для всех полей по возрастанию или для всех по убыванию. Перед осуществлением такой операции столбцы таблицы при выводе ее на экран должны располагаться рядом, и их порядок должен соответствовать порядку сортировки. Если требуется осуществить сортировку по нескольким полям, причем по одному из них – по возрастанию, а по другому – по убыванию, придется воспользоваться расширенным фильтром (ЗаписиФильтрРасширенный фильтр…). Порядок расположения полей в окне расширенного фильтра должен соответствовать порядку сортировки.

Фильтры используют не только и не столько для упорядочения данных, сколько для их отбора по заданному условию. Задать условие отбора строк из таблицы по каждому из полей можно, как в окне формирования расширенного фильтра, так и при помощи простого фильтра, воспользовавшись командой ЗаписиФильтрИзменить фильтр. При задании условия и в том и в другом случае допускается использование операций сравнения, логических операций и предикатов, уже описанных в лабораторной работе 1. Для каждой таблицы система сохраняет последний созданный фильтр. Обычно желательно иметь возможность в разных случаях по-разному упорядочивать и отбирать данные из таблицы, т.е. хранить одновременно несколько фильтров. Такая возможность может быть реализована только путем сохранения каждого созданного фильтра, как запроса – команда ФайлСохранить как запрос…. Запросам присваиваются имена, поэтому в любой момент, открыв соответствующий запрос, вы можете получить на экране интересующую вас информацию.

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

Простой индекс содержит только одно поле и задается при определении поля в структуре таблицы (свойство Индексированное поле). Одновременно можно создать для одной таблицы несколько, но не более 32 индексов. При этом, если в критерии поиска содержится более одного поля, то поиск будет осуществляться по индексу с меньшим числом строк, имеющих указанное значение поля. Для ускорения поиска в больших таблицах по нескольким полям создается составной индекс, содержащий до 10 полей. Составной индекс создается в режиме определения структуры таблицы с помощью команды ВидИндексы или соответствующей пиктограммы. В окне индексов для построения составного индекса в пустую строку столбца Индекс вводится имя индекса, а в нескольких строках столбца Поле последовательно задаются имена полей, которые составляют этот индекс. В столбце Порядок сортировки против каждого поля можно выбором из списка указать По возрастанию или По убыванию. В свойствах индекса можно указать, является ли он уникальным и надо ли пропускать пустые поля. Созданные индексы, как простые, так и составные, сохраняются при сохранении структуры таблицы. Последовательность полей в составном индексе должна совпадать с последовательностью, в которой поля включаются в условие поиска при формировании фильтра. Наличие составного индекса для поиска по нескольким полям ускоряет поиск, но не является обязательным, таблица может быть упорядочена по одному полю или вообще не упорядочена. С другой стороны, можно, имея индекс, состоящий, например, из трех полей, осуществлять поиск не по всем трем полям, а только по первому или по первому и второму, но при этом только последнее условие поиска может быть неравенством, а остальные должны быть равенствами. Нельзя также осуществлять поиск по значению второго поля, пропустив первое, или искать одновременно по первому и третьему полям, пропустив втрое. Например, создав составной индекс по полям A, B, C, можно осуществить поиск по всем трем полям , а можно только по полю A или по полям A и B. При этом, поскольку только последнее условие может быть неравенством и пропускать поля нельзя, то возможны следующие критерии поиска:

A = «значение»

A > «значение»

A = «значение» AND B = «значение»

A = «значение» AND B < «значение»

A = «значение» AND B = «значение» AND C >«значение».

а недопустимыми являются следующие критерии поиска:

A > «значение» AND B = «значение»

A > «значение» AND B > «значение»

A > «значение» AND B = «значение» AND C >«значение».

B = «значение» AND C >«значение».

A = «значение» AND C >«значение».

Соседние файлы в предмете Базы данных