Чтение онлайн

ЖАНРЫ

Информационные системы

Петров Владимир Николаевич

Шрифт:

Примечание.

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

Различают четыре типа связей между таблицами реляционной базы данных:

• один к одному – каждой записи одной таблицы соответствует только одна запись другой таблицы;

• один ко многим – одной записи главной таблицы могут соответствовать несколько записей подчиненной таблицы;

• многие к одному – нескольким записям главной таблицы может соответствовать одна и та же запись подчиненной таблицы;

• многие ко многим – одна запись главной таблицы связана с несколькими записями подчиненной таблицы, а одна запись подчиненной таблицы связана с несколькими записями главной таблицы.

Примечание.

Различие между связями типа «один ко многим» и «многие к одному» зависит от того, какая из таблиц выбирается в качестве главной, а какая – в качестве подчиненной. Например, если из связанных таблиц СТУДЕНТЫ и УСПЕВАЕМОСТЬ в качестве главной выбрать таблицу СТУДЕНТЫ, то получим связь типа «один ко многим». Если же выбрать в качестве главной таблицу УСПЕВАЕМОСТЬ, получится связь типа «многие к одному».

Основные свойства отношений

Рассмотрим некоторые важнейшие свойства отношений реляционной модели данных.

Отсутствие упорядоченности кортежей

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

Примечание.

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

Отсутствие упорядоченности атрибутов

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

Атомарность значений атрибутов

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

Реляционная система управления базами данных

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

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

Свойства таблиц реляционной базы данных

Так как таблицы в реляционной СУБД являются отношениями реляционной модели данных, то и свойства этих таблиц являются свойствами отношений, которые мы уже рассматривали. Кратко сформулируем эти свойства еще раз:

• каждая таблица состоит из однотипных строк и имеет уникальное имя;

• строки имеют фиксированное число полей (столбцов) и значений (множественные поля и повторяющиеся группы недопустимы), иначе говоря, в каждой позиции таблицы на пересечении строки и столбца всегда имеется в точности одно значение или NULL;

• строки таблицы обязательно отличаются друг от друга хотя бы единственным значением, что позволяет однозначно идентифицировать любую строку;

• столбцам таблицы присваиваются уникальные имена, и в каждом из них размещаются однородные значения данных (даты, фамилии, целые числа или денежные суммы);

• полное информационное содержание базы данных представляется в виде явных значений данных, и такой метод представления является единственным, в частности, не существует каких-либо специальных «связей» или указателей, соединяющих одну таблицу с другой;

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

Индексы

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

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

Примечание.

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

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

Поделиться с друзьями: