Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LYeKTsIYa_10_2.doc
Скачиваний:
16
Добавлен:
20.04.2019
Размер:
157.18 Кб
Скачать

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

Е.Ф.Кодд в 1970 г. сформулировал концепцию реляционной модели баз данных. Реляционная модель базы данных является удобной и наиболее привычной формой представления данных в виде таблицы. В математических дисциплинах таблице соответствует термин «отношение»(relation). Отсюда и произошло название модели – реляционная.

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

Реляционная модель имеет два главных свойства:

  1. базовые порции данных представляют собой отношения (relations);

  2. операции над таблицами затрагивают только соотношения.

Модель предъявляет к таблицам следующие требования:

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

    2. Данные в одном столбце должны быть одного типа.

    3. Каждый столбец должен быть уникальным (недопустимы дублирования столбцов).

    4. Столбцы размещаются в произвольном порядке.

    5. Строки размещаются в таблице также в произвольном порядке.

    6. Столбцы имеют уникальные наименования.

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

Структурными составляющими таблицы являются записи и поля.

Поле 1

Поле 2

Поле 3

Запись 1

Запись 2

Запись 3

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

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

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

Для строчного представления структуры таблицы применяется следующая форма:

Имя_таблицы (ИМЯПОЛЯ_1, ИМЯ_ПОЛЯ_2, ..., ИМЯ_ПОЛЯ_М)

Подчеркиваются имена полей, составляющие главный ключ.

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

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

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

Понятие «тип данных» в реляционной модели данных полностью адекватно понятию «тип данных» в языках программирования. Обычно в современных реляционных БД допускается хранение символьных, числовых данных, битовых строк, специализированных числовых данных (например, «деньги»), а также специальных «темпоральных» данных (дата, время, временной интервал).

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

Схема отношений – это именованное множество пар (имя атрибута, имя домена (или типа, если понятие домена не поддерживается)). Степень или «арность» схемы отношения – мощность этого множества.

Схема БД (в структурном смысле) – это набор именованных схем отношений.

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

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

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

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

Особый тип поля – денежный. Денежные суммы можно хранить и в числовом поле, но в денежном формате с ними удобнее работать. В этом случае компьютер изображает числа вместе с денежными единицами. В современных базах данных можно хранить не только числа и буквы, но и картинки, музыкальные клипы и видеозаписи. Поле для таких объектов называется полем объекта OLE. Если нужно вставить в поле длинный текст (более 256 символов), для этого служит поле типа МЕМО. В нем можно хранить до 65535 символов. Особенность поля МЕМО состоит в том, что реально эти данные хранятся не в поле, а в другом месте, а в поле хранится только указатель на то, где расположен текст. Поле Счетчик является обычным числовым полем, но оно имеет свойство автоматического наращивания. Если в базе есть такое поле, то при вводе новой записи в него автоматически вводится число, на единицу большее, чем значение того же поля в предыдущей записи. Это удобно для нумерации записей.

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

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

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

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

Определено несколько основных нормальных форм (НФ), каждая из которых снимает определенные зависимости между полями и устраняет определенные трудности обработки данных:

  1. Говорят, что отношение находится в первой нормальной форме, если все его атрибуты являются простыми.

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

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

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

Для приведения таблицы к 1НФ (повторение одних и тех же самых полей нежелательно) необходимо выполнение следующих правил:

  1. Каждое поле должно быть атомарным, т.е. содержать единственный элемент данных.

  2. Поля в таблице не должны повторяться.

Приведение таблицы ко 2НФ (каждое поле должно зависеть от единого первичного ключа) требует соответствия следующим правилам:

  1. Каждая таблица содержит данные об одном предмете (объекте).

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

  3. Остальные (неключевые) поля должны относиться к первичному ключу, т.е. зависеть от него.

Таблицы во 2НФ могут требовать дальнейших преобразований в 3НФ (значение поля должно сохраняться неизменным, даже если содержание других полей изменится), которая освобождает от:

  • дублирования (избыточности) данных;

  • аномалий выполнения операций добавления, удаления и обновления (изменения) данных.

Правило: таблица находится в 3НФ, если она находится во 2НФ и в ней отсутствуют т.н. транзитивные зависимости неключевых полей от первичного ключа.

Иначе правило для 3НФ звучит так: все неключевые поля должны быть взаимонезависимыми, т.е. изменение неключевого поля не должно влечь за собой изменения другого неключевого поля.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]