WebRazrab

WebRazrab

Ваш помощник в обучении

Array

leafleafleafDocy banner shape 01Docy banner shape 02

Реляционная модель данных

Вопрос 1. Основные понятия реляционной модели данных.

Рассмотрим три компонента модели данных:

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

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

  • Отношение – это таблица, состоящая из строк и столбцов и имеющая вверху строку, называемую заголовок отношения.
  • Строки таблицы-отношения называются кортежами (tuple), а столбцы атрибутами (attribute).
  • Количество кортежей в отношении называется кардинальным числом отношения, а количество атрибутов называется степенью отношения.

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

Домен отношения – это множество значений, из которого могут браться значения конкретного атрибута. То есть конкретный набор значений атрибута в любой момент времени должен быть подмножеством множества значений домена, на котором определен этот атрибут. Значения атрибута, которые отсутствуют в множестве, задаваемом доменом, являются недопустимыми.

Рис. 1. Основные данные по таблице

Вопрос 2. Структуры данных реляционной модели.

Реляционные отношения.

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

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

Множество элементов, представляющих отношение (Рисунок 2).

Рис. 2. Множество элементов, представляющих отношение

Множество элементов, из которых образуется отношение R содержит две части: заголовок отношения и тело отношения. Множество A1, A2, …, An – это множество имен атрибутов отношения.

Совокупность D1, D2, …, Dn – это набор доменов, на котором определено это отношение.

Заголовок отношения – это фиксированное множество атрибутов или, точнее, пар <имя-атрибута: имя-домена>:

{<A1:D1>, <A2:D2>, …, <An:Dn>},

причем каждый атрибут Ak соответствует одному и только одному домену Dk (k = 1, 2, …, n), на которых определено отношение.

В отношении все имена атрибутов A1, A2, …, An, должны быть уникальными. Элементы же набора доменов D1, D2, …, Dn не обязательно различны. Отсюда следует, что разные атрибуты отношения могут быть определены на одинаковых доменах. Иногда структуру, задаваемую заголовком отношения, называют
схемой отношения.

Тело отношения – это структура, представляющая собой множество кортежей. Каждый кортеж –это множество пар <имя-атрибута: значение-атрибута> следующего вида:

{ <A1:Vi1>, <A2:Vi2>, …, <An:Vin> }

(i = 1, 2, …, m, где m – количество кортежей в этом множестве).

Вопрос 3. Свойства отношений.

Реляционное отношение обладает следующими свойствам:

  • В отношении нет одинаковых кортежей.
  • Кортежи отношения не упорядочены (сверху вниз).
  • Атрибуты отношения не упорядочены (слева направо).
  • Все значения атрибутов атомарны (скалярны, неделимы).

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

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

Атрибуты отношения не упорядочены (слева направо) – это свойство следует из того факта, что заголовок отношения также определен как простое математическое множество, а именно: множество пар <имя-атрибута: имя-домена>.

Исходя из этого, если атрибуты были бы расставлены в каком-либо порядке, то это все равно было бы то же самое отношение. Поэтому не существует таких понятий, как первый атрибут, последний атрибут, следующий или предыдущий атрибут и т.д. Атрибут всегда адресуется или определятся по его имени, а не по расположению в отношении.

Значения всех атрибутов являются атомарными – в реляционной модели домены, на которых определены атрибуты отношения, и из которых «черпаются» фактические значения атрибутов, могут содержать только атомарные (неделимые, скалярные) значения. Другими словами на пересечении столбца и строки таблицы, представляющей отношение, должно быть в точности одно значение, а не набор значений или какая либо сложная (составная) структура значений. Отношение, удовлетворяющее этому условию, называется нормализованным (Рис.3), или представленным в первой нормальной форме.

Рис. 3. Пример ненормализованного и нормализованного отношений

Вопрос 4. Виды отношений.

Различные отношения, встречающиеся в реляционных системах, можно классифицировать по различным признакам.

  • Именованные отношения – это отношения, определенные в СУБД с помощью специального оператора создания отношения, которым при этом присваиваются имена, уникальные в конкретной базе данных.
  • Базовым отношением называется именованное отношение, которое является автономным и не определяется или не выводится из других отношений, т. е. которое не является производным (см. ниже).
  • Производным отношением называется отношение, которое определено с помощью реляционного выражения через другие именованные отношения и, в конечном итоге, через базовые отношения, то есть получается в результате преобразования каких-либо других отношений.
  • Представление (View) – это именованное производное отношение. Представления виртуальны, они представлены в базе данных исключительно через свое определение в терминах других отношений.При изменении значений данных в исходных отношениях будут изменяться и данные, видимые через конкретное представление.
  • Снимок (Snapshot) – это именованное производное отношение, которое, однако, в отличие от представлений (View) не виртуально, а представлено помимо своего определения через другие отношения реальными данными. Создание снимка похоже на выполнение запроса, результат которого сохраняется в базе данных под определенным именем.

Отношение – результат запроса. Это неименованное производное отношение, являющееся результатом некоторого запроса к базе данных.

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

Вопрос 5. Реляционная база данных.

Реляционная база данных – это база данных, воспринимаемая пользователем как набор нормализованных отношений различной степени.

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

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

Таблица 1.

Важные аспекты реляционных БД

Установление связи между таблицами.

Давайте используем пример адресной книги для того, чтобы обсудить базу данных, которую можно реально использовать в деловой жизни. Предположим, что индивидуумы первой таблицы являются пациентами больницы. Дополнительную информацию о них можно хранить в другой таблице. Столбцы второй таблицы могут быть поименованы таким образом: Patient (Пациент), Doctor (Врач), Insurer (Страховка), Balance (Баланс). Можно выполнить множество мощных функций при извлечении информации из этих таблиц в соответствии с заданными критериями, особенно, если критерий включает связанные части информации из различных таблиц.

Предположим, Dr.Halben желает получить номера телефонов всех своих Пациентов. Для того чтобы извлечь эту информацию, он должен связать таблицу с номерами телефонов пациентов (адресную книгу) с таблицей, определяющей его пациентов. В данном простом примере он может мысленно проделать эту операцию и узнать телефонные номера своих пациентов Grillet и Brock, в действительности же эти таблицы вполне могут быть больше и намного сложнее.

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

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

Рассмотрим вторую таблицу. Содержащуюся в ней информацию иногда удобно рассматривать упорядоченной по имени, иногда — в порядке возрастания или убывания баланса (Balance), а иногда — сгруппированной по доктору. Внушительное множество возможных порядков строк помешало бы пользователю проявить гибкость в работе с данными, поэтому строки предполагаются неупорядоченными. Именно по этой причине вы не можете просто сказать: «Меня интересует пятая строка таблицы». Независимо от порядка включения данных или какого-либо другого критерия, этой пятой строки не существует по определению. Итак, строки таблицы предполагаются расположенными в произвольном
порядке.

Идентификация строк (первичный ключ).

По этой и ряду других причин, необходимо иметь столбец таблицы, который однозначно идентифицирует каждую строку. Обычно этот столбец содержит номер, например, приписанный каждому пациенту. Конечно, можно использовать для идентификации строк имя пациента, но ведь может случиться так, что имеется несколько пациентов с именем Mary Smith. В подобном случае нет простого способа их различить. Именно по этой причине обычно используются номера. Такой уникальный столбец (или их группа), используемый для идентификации каждой строки и обеспечивающий различимость всех строк, называется первичным ключом таблицы (primary key of the table).

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

Столбцы поименованы и пронумерованы.

В отличие от строк, столбцы таблицы (также называемые полями (fields) упорядочены и поименованы. Следовательно, в нашей таблице, соответствующей адресной книге, можно сослаться на столбец «Address» как на «столбец номер три». Естественно, это означает, что каждый столбец данной таблицы должен иметь имя, отличное от других имен, для того, чтобы не возникло путаницы. Лучше всего, когда имена определяют содержимое поля. В этой книге мы будем использовать аббревиатуру для именования столбцов в простых таблицах, например: cname — для имени покупателя (customer name), odate — для даты поступления (order date).

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

Рис. 4. Пример РБД


Литература:

  1. Осипов Д.Л. InterBaseи Delphi. Клиент-серверные базы данных [Электронный ресурс]/ Осипов Д.Л.— Электрон. текстовые данные.— Саратов: Профобразование, 2017.— 536 c.— Режим доступа: http://www.iprbookshop.ru — ЭБС «IPRbooks».
  2. Швецов В.И. Базы данных [Электронный ресурс]/ Швецов В.И.— Электрон. текстовые данные.— М.: Интернет-Университет Информационных Технологий (ИНТУИТ), 2016.— 218 c.
  3. Карпова Т.С. Базы данных. Модели, разработка, реализация [Электронный ресурс]/ Карпова Т.С.— Электрон. текстовые данные.— М.: Интернет-Университет Информационных Технологий (ИНТУИТ), 2016.— 403 c.— Режим доступа: http://www.iprbookshop.ru— ЭБС «IPRbooks».
  4. Кузнецов С.Д. Введение в реляционные базы данных [Электронный ресурс]/ Кузнецов С.Д.— Электрон. текстовые данные.— М.: Интернет-Университет Информационных Технологий (ИНТУИТ), 2016.— 247 c.— Режим доступа: http://www.iprbookshop.ru — ЭБС «IPRbooks».