Кузин А.В., Левонисова С.В. Базы данных (5-е издание, 2012) (1084448), страница 5
Текст из файла (страница 5)
Атрибуты, зависящие от другихнеидентифицирующих атрибутов, нормализуются путем перемещения зависимого атрибута и атрибута, от которого он зависит, вновый информационный объект.В данном случае неключевые атрибуты Должность и Оклад находятся в транзитивной зависимости. Опасность такой зависимости состоит в том, что несколько человек могут работать в однойи той же должности.
При изменении должностного оклада в этом23случае нужно будет менять данные в каждой записи, содержащейэту должность, следовательно, требуется создать новую сущностьДОЛЖНОСТЬ с находящимися в транзитивной зависимости атрибутами Название должности и Оклад и сделать ссылку от сущности ПРЕПОДАВАТЕЛЬ на сущность ДОЛЖНОСТЬ:ПРЕДМЕТ (Код предмета, Название, Объем часов, Код цикла);ЦИКЛ (Код цикла, Название цикла);ПРЕПОДАВАТЕЛЬ (Код преподавателя, ФИО, Код должности, Адрес);ДОЛЖНОСТЬ (Код должности, Название должности, Оклад);ИЗУЧЕНИЕ (Код предмета, Код преподавателя).1.9. Средства ускоренного доступа к даннымЧтобы пользователь чувствовал себя комфортно, время ожидания ответа на запрос к БД не должно превышать нескольких секунд.
В связи с этим требованием специально разрабатываютсяметоды ускорения выборки, позволяющие обойтись без полногоперебора строк при выполнении реляционных операций модификации отношений и отбора данных.Наиболее эффективны методы индексирования и хеширования значений ключей отношения.Индексирование — логическая сортировка строк таблицы — заключается в создании вспомогательных файлов, содержащих упорядоченные списки значений ключей отношения со ссылками настроку отношения, в которой они находятся.
Индексные файлызанимают дополнительную память, но резко ускоряют поиск благодаря применению метода половинного деления. Для одного отношения может быть создано несколько индексов. Кроме того,можно создать индекс для нескольких отношений, если они содержат одинаковые атрибуты, что позволит ускорить выполнениеопераций соединения этих отношений.Индексы позволяют находить строки, в которых значения ключевых полей совпадают с заданным значением или принадлежатзаданному интервалу.Хеширование (hashing) — использование хэш-функций, которые вычисляют вес строки таблицы по значению ее ключевыхатрибутов. Результат вычисления хэш-функции — целое число вдиапазоне физических номеров строк таблицы.Идеальная хэш-функция должна давать разные значения весадля разных ключевых атрибутов.
Но это не всегда возможно. Напрактике обычно используют простые хэш-функции, напримерf(k ) = k mod р, где к — целое число, первичный ключ отношения;р — простое целое число; mod — операция, вычисляющая оста24ток при целочисленном делении. Если ключевой атрибут — строка символов, то для вычисления / ( к) выбирается один из методовпреобразования строки в число, например вычисление контрольной суммы.Для организации доступа к данным при хешировании создается таблица с пустыми строками, которая заполняется следующимобразом:• по первичному ключу новой строки вычисляется значениехэш-функции /(к ) и результат трактуется как номер строки в созданной таблице;• если строка уже занята, производится проверка следующихстрок по специальному алгоритму до тех пор, пока не будет обнаружено свободное место.Аналогично производится поиск нужной строки:• если после вычисления /(к) на месте в таблице, которое соответствует вычисленному значению, оказывается пустая строка,значит, искомой строки просто нет;• если значение ключа совпало с искомым, поиск заканчивается;• если же значение ключа не совпало с искомым, проверяютсяследующие строки таблицы до обнаружения строки с нужнымключом (в этом случае искомая строка найдена) или пустой строки (в этом случае искомая строка отсутствует).Если таблица заполнена не более чем на 60 %, то для размещения новой или поиска существующей строки необходимо проверить в среднем не более двух ячеек.
Хеширование используют дляпоиска строк по точному совпадению значения ключевого атрибута кортежа с нужным значением ключа.1.10. Этапы проектирования баз данныхНа этапе проектирования базы данных разработчик должен определить, из каких таблиц должна состоять база данных, какиеданные нужно поместить в каждую таблицу и как связать таблицы.Следовательно, в результате проектирования определяются логическая структура базы данных, т. е.
состав реляционных таблиц,их структура и межтабличные связи.Для создания базы данных необходимо располагать описаниемвыбранной предметной области, охватывающим реальные объекты и процессы, а также определить все необходимые источникиинформации для удовлетворения предполагаемых запросов пользователей и потребности в обработке данных. На основе такого описания определяются состав и структура данных предметной области, которые должны находиться в базе и обеспечивать выполнение необходимых запросов и задач пользователей.
Структура дан25ных предметной области может отображаться информационнологической моделью, на основе которой легко создается реляционная база данных.Этапы проектирования и создания базы данных:• построение информационно-логической модели данных предметной области;• определение логической структуры реляционной базы данных;• конструирование таблиц базы данных;• создание схемы данных;• ввод данных в таблицы (создание записей);• разработка необходимых форм, запросов, макросов, модулей, отчетов;• разработка пользовательского интерфейса.В процессе разработки модели данных необходимо выделитьинформационные объекты, соответствующие требованиям нормализации данных, и определить связи между ними. Полученнаямодель позволит создать реляционную базу данных без дублирования, в которой обеспечиваются однократный ввод данных припервоначальной загрузке и корректировках, а также целостностьданных при внесении изменений.При разработке модели данных используются два подхода.1.
Сначала определяются основные задачи, для решения которых строится база, выявляются потребности задач в данных и соответственно определяются состав и структура информационныхобъектов.2. Сразу устанавливаются типовые объекты предметной области.Наиболее рационально сочетание этих подходов, так как на начальном этапе, как правило, нет исчерпывающих сведений обо всехзадачах. Использование такой технологии тем более оправдано, чтогибкие средства создания реляционной базы данных допускаютна любом этапе разработки внесение изменений и модифицирование ее структуры без ущерба для введенных ранее данных.Процесс выделения информационных объектов предметнойобласти, отвечающих требованиям нормализации, может производиться на основе интуитивного или формального подхода.
Теоретические основы формального подхода разработаны известнымамериканским ученым Дж. Мартином и изложены в его монографиях по организации баз данных.При интуитивном подходе легко выявить информационныеобъекты, соответствующие реальным объектам, однако получаемая при этом информационно-логическая модель, как правило,требует дальнейших преобразований, в частности преобразования много-многозначных связей между объектами. При таком подходе в случае отсутствия достаточного опыта возможны существенные ошибки. Последующая проверка выполнения требований нор26мализации обычно показывает необходимость уточнения информационных объектов.Рассмотрим формальные правила выделения информационныхобъектов:на основе описания предметной области выявить документы иих атрибуты, подлежащие хранению в базе данных;определить функциональные зависимости между атрибутами;выбрать все зависимые атрибуты и указать для каждого все егоключевые атрибуты, т.
е. атрибуты, от которых он зависит;сгруппировать атрибуты, одинаково зависимые от ключевыхатрибутов. (Полученные группы зависимых атрибутов вместе с ихключевыми атрибутами образуют информационные объекты.)При определении логической структуры реляционной базы данных на основе модели каждый информационный объект адекватноотображается реляционной таблицей, а связи между этими таблицами соответствуют связям между информационными объектами.В процессе создания БД сначала конструируются таблицы, соответствующие информационным объектам построенной моделиданных. Далее может создаваться схема данных, в которой фиксируются существующие логические связи между таблицами, соответствующие связям информационных объектов.
В схеме данныхмогут быть заданы параметры поддержания целостности базы данных, если модель была разработана в соответствии с требованиями нормализации. Целостность данных означает, что в БД установлены и корректно поддерживаются взаимосвязи между записями разных таблиц при загрузке, добавлении и удалении записей в связанных таблицах, а также при изменении значений ключевых полей.После формирования схемы данных осуществляется ввод непротиворечивых данных из документов предметной области.На основе созданной базы формируются необходимые запросы, формы, макросы, модули, отчеты, производящие требуемуюобработку данных и их представление.С помощью встроенных средств и инструментов базы данныхсоздается пользовательский интерфейс, позволяющий управлятьпроцессами ввода, хранения, обработки, обновления и представления информации.1.11. Проектирование базы данных на основе модели типаобъект—отношениеИмеется целый ряд методик создания информационно-логических моделей.