Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Неделя 03 Лекция 2 (5).doc
Скачиваний:
2
Добавлен:
13.11.2019
Размер:
334.85 Кб
Скачать

5.2. Используемая терминология.

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

5.2.1. Структура реляционных данных.

Отношение – это плоская таблица, состоящая из столбцов и строк.

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

Атрибут – это поименованный столбец отношения.

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

Например, информация об авторах книг может быть представлена отношением BookAuthors (авторы книг), включающим столбцы с атрибутами Code (Код), FamilyName (Фамилия), Name (Имя), Patronymic (Отчество), Birthday (Дата рождения), Deatheday (Дата смерти),ShortBiography (Краткая биография), Note (Примечания). Аналогично информация о книгах может быть представлена отношением Books (книги), включающим столбцы с атрибутами Code (Код), Name (Название), AuthorCode (Код автора), IssueYear (Год издания), Drawing (Тираж), UDK (УДК), Cipher (Шифр), Note (Примечания). На рис. 5.1 показаны примеры отношений BookAuthors и Books. Как видно из этого примера, каждый столбец содержит значения только одного атрибута – например столбец IssueYear содержит только года издания соответствующих книг.

Рис. 5.1. Пример содержимого таблиц BookAuthors и Books базы данных «Библиотека».

Домен - это набор допустимых значений для одного или нескольких атрибутов.

Домены представляют собой чрезвычайно мощный компонент реляционной модели. Каждый атрибут реляционной базы данных определяется на некотором домене. Домены могут отличаться для каждого из атрибутов, но два и более атрибутов могут определяться на одном и том же домене. В табл. 5.1. представлены домены для некоторых атрибутов отношений BookAuthors и Books. Хотя в отношении BookAuthors – восемь атрибутов, здесь показаны только шесть, потому что три атрибута, FamilyName (Фамилия), Name (Имя) и Patronymic (Отчество), определены на одном и том же домене. Обратите внимание, что в любой момент времени в доменах могут существовать значения, которые не будут реально представлены значениями соответствующего атрибута.

Таблица 5.1.

Домены атрибутов отношений BookAuthors и Books БД «Библиотека».

Атрибут

Имя домена

Содержимое домена

Определение домена

Code

AllCode

Уникальные номера строк для всех отношений БД «Библиотека»

Целочисленное значение

FamilyName

FIO

Множество всех фамилий людей

Символьный: размер 30

Name

FIO

Множество всех имен людей

Символьный: размер 30

Patronymic

FIO

Множество всех отчеств людей

Символьный: размер 30

Birthday

-

Множество всех дней рождений авторов

Дата

Deatheday

-

Множество всех дней смерти людей

Дата, диапазон от даты рождения

ShortBiography

AllNote

Множество всех автобиографий людей

Большой двоичный объект: ASCII-текст

Note

AllNote

Множество всех дополнительных сведений

Большой двоичный объект: ASCII-текст

Name

BookName

Множество всех названий книг

Символьный: длина 200

AuthorCode

AllCode

Множество всех кодов авторов книг

Целочисленное значение

IssueYear

-

Множество всех годов издания книг

Дата

Drawing

AllDrawing

Множество всех тиражей книг

Целочисленное значение, диапазон от 10

UDK

AllUDK

Множество всех УДК книг

Символьный: длина 20

Cipher

AllCipher

Множество всех шифров книг

Символьный: длина 10

Note

AllNote

Множество всех дополнительных сведений

Большой двоичный объект: ASCII-текст

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

Кортеж – это строка отношения.

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

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

Степень отношения. Степень отношения определяется количеством атрибутов, которое оно содержит.

Отношение BookAuthors, показанное на рис. 5.1, имеет восемь атрибутов и, следовательно, его степень равна восьми. Это значит, что каждая строка таблицы является 8-арным кортежем, т.е. кортежем, содержащим восемь значений. Отношение только с одним атрибутом имеет степень 1 и называется унарным (unary) отношением (или 1-арным кортежем). Отношение с двумя атрибутами называется бинарным (binary), отношение с тремя атрибутами — тернарным (ternary), а для отношений с большим количеством атрибутов используется термин n-арный (n-агу). Определение степени отношения является частью заголовка отношения.

Кардинальность – это количество кортежей, которое содержит отношение.

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

Реляционная база данных - Набор нормализованных отношений.

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

Альтернативная терминология. Терминология, используемая в реляционной модели, порой может привести к путанице, поскольку помимо предложенных двух наборов терминов существует еще один — третий. Отношение в нем называется файлом (file), кортежи — записями (records), а атрибуты — полями (fields). Эта терминология основана на том факте, что физически реляционная СУБД может хранить каждое отношение в отдельном файле. В табл. 5.2 показаны соответствия, существующее между тремя упомянутыми выше группами терминов.

Таблица 5.2.

Альтернативные варианты терминов в реляционной модели.

Официальные термины

Альтернативный вар. 1

Альтернативный вар. 2

Отношение

Таблица

Файл

Кортеж

Строка

Запись

Атрибут

Столбец

Поле

Степень отношения

Количество столбцов

Количество полей

Кардинальность

Количество строк

Количество записей