Информационное обеспечение

Автор работы: Пользователь скрыл имя, 19 Ноября 2011 в 23:15, курсовая работа

Краткое описание

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

Содержание работы

Что такое база данных
Структура базы данных
Отношения между таблицами
Нормализация баз данных
Ключи и индексы

Содержимое работы - 1 файл

Урок 1.docx

— 147.71 Кб (Скачать файл)

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

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

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

 
Рис.1.11. Структура таблицы BIBLIOS.

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

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

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

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

  • PUBLISHERS - содержит информацию об издательствах;
  • AUTHORS - содержит информацию об авторах книг;
  • TITLES - содержит информацию об изданных книгах.

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

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

4. Используйте вспомогательные  таблицы. Например, если в вашей  таблице есть поле Страна, то  может быть стоит ввести вспомогательную  таблицу Country, которая будет содержать соответствующие записи (Россия, Украина, США и т.п.). Этот прием также поможет уменьшить количество ошибок при вводе данных, допускаемых пользователями.

5. Ключи и индексы

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

Первичный ключ однозначно определяет запись в таблице. В примере  с базой данных BIBLIO.MDB таблицы PUBLISHERS, AUTHORS и TITLES имеют первичные ключи  PubID, Au_ID и ISBN соответственно. Таблица TITLES также имеет два внешних ключа PubID и Au_ID для связи с таблицами PUBLISHERS и AUTHORS. Таким образом, первичный ключ однозначно определяет запись в таблице, в то время как внешний ключ используется для связи с первичным ключом другой таблицы.

Ключевой поле может  иметь определенный смысл, как например ключ ISBN в таблице TITLES. Однако, очень часто ключевое поле не несет никакой смысловой нагрузки и является просто идентификатором объекта в таблице. Во многих случаях удобно использовать в качестве ключа поле счетчика (Counter field). При этом вся ответственность по поддержанию уникальности ключевого поля снимается с пользователя и перекладывается на процессор баз данных. Поле счетчика представляет собой четырехбайтовое целое число (Long) и автоматически увеличивается на единицу при добавлении пользователем новой записи в таблицу.

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

Индекс представляет собой таблицу, которая содержит ключевые значения для каждой записи в таблице данных и записанные в порядке, требуемом для пользователя. Ключевые значения определяются на основе одного или нескольких полей таблицы. Кроме того, индекс содержит уникальные ссылки на соответствующие записи в  таблице. На рис.1.12 показан фрагмент таблицы CUSTOMERS, содержащей информацию о покупателях, и индекс IDX_NAME, построенный  на основе поля Name таблицы CUSTOMERS. Индекс IDX_NAME содержит значения ключевого поля Name, упорядоченные в алфавитном порядке, и ссылки на соответствующие записи в таблице CUSTOMERS.

 
Рис.1.12. Связь между таблицей и  индексом.

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

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

При разработке приложений, работающих с базами данных, наиболее широко используются простые индексы. Простые индексы используют значения одного поля таблицы. Примером простого индекса в базе данных BIBLIO.MDB может  служить код ISBN, идентификатор автора Au_ID или идентификатор издательства PubID.

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

Информация о работе Информационное обеспечение