Добавлен: 08.07.2023
Просмотров: 58
Скачиваний: 3
РЕЛЯЦИОННАЯ БАЗА ДАННЫХ И ЕЕ ОСОБЕННОСТИ
Реляционная база данных — это совокупность взаимосвязанных таблиц, каждая из которых содержит информацию об объектах определенного типа. Строка таблицы содержит данные об одном объекте (например, товаре, клиенте), а столбцы таблицы описывают различные характеристики этих объектов — атрибутов (например, наименование, код товара, сведения о клиенте). Записи, т. е. строки таблицы, имеют одинаковую структуру — они состоят из полей, хранящих атрибуты объекта. Каждое поле, т. е. столбец, описывает только одну характеристику объекта и имеет строго определенный тип данных. Все записи имеют одни и те же поля, только в них отображаются различные информационные свойства объекта.
В реляционной базе данных каждая таблица должна иметь первичный ключ — поле или комбинацию полей, которые единственным образом идентифицируют каждую строку таблицы. Если ключ состоит из нескольких полей, он называется составным. Ключ должен быть уникальным и однозначно определять запись. По значению ключа можно отыскать единственную запись. Ключи служат также для упорядочивания информации в БД. Таблицы реляционной БД должны отвечать требованиям нормализации отношений.
Нормализация отношений — это формальный аппарат ограничений на формирование таблиц, который позволяет устранить дублирование, обеспечивает непротиворечивость хранимых в базе данных, уменьшает трудозатраты на ведение базы данных.
Пусть создана таблица Студент, содержащая следующие поля: № группы, ФИО, № зачетки, дата рождения, название специальности, название факультета. Такая организация хранения информации будет иметь ряд недостатков:
- дублирование информации (наименование специальности и факультета повторяются для каждого студента), следовательно, увеличится объем БД;
- процедура обновления информации в таблице затрудняется из-за необходимости редактирования каждой записи таблицы.
Нормализация таблиц предназначена для устранения этих недостатков. Имеется три нормальные формы отношений.
Первая нормальная форма. Реляционная таблица приведена к первой нормальной форме тогда и только тогда, когда ни одна из ее строк не содержит в любом своем поле более одного значения и ни одно из ее ключевых полей не пусто. Так, если из таблицы Студент требуется получать сведения по имени студента, то поле ФИО следует разбить на части Фамилия, Имя, Отчество.
Третья нормальная форма. Таблица находится в третьей нормальной форме, если она удовлетворяет требованиям второй нормальной формы, ни одно из ее не ключевых полей не зависит функционально от любого другого не ключевого поля. Например, в таблице Студент (№ группы, ФИО, № зачетной книжки, Дата рождения, Староста) три поля — № зачетной книжки, № группы, Староста находятся в транзитивной зависимости. № группы зависит от № зачетной книжки, а Староста зависит от № группы. Для устранения транзитивной зависимости необходимо часть полей таблицы Студент перенести в другую таблицу Группа. Таблицы примут следующий вид: Студент (№ группы, ФИО, № зачетной книжки, Дата рождения), Группа (№ группы, Староста).
Над реляционными таблицами возможны следующие операции:
- Объединение таблиц с одинаковой структурой. Результат— общая таблица: сначала первая, затем вторая (конкатенация).
- Пересечение таблиц с одинаковой структурой. Результат — выбираются те записи, которые находятся в обеих таблицах.
- Вычитание таблиц с одинаковой структурой. Результат — выбираются те записи, которых нет в вычитаемом.
- Выборка (горизонтальное подмножество). Результат — выбираются записи, отвечающие определенным условиям.
- Проекция (вертикальное подмножество). Результат — отношение, содержащее часть полей из исходных таблиц.
- Декартово произведение двух таблиц Записи результирующей таблицы получаются путем объединения каждой записи первой таблицы с каждой записью другой таблицы.
Реляционные таблицы могут быть связаны друг с другом, следовательно, данные могут извлекаться одновременно из нескольких таблиц. Таблицы связываются между собой для того, чтобы в конечном счете уменьшить объем БД. Связь каждой пары таблиц обеспечивается при наличии в них одинаковых столбцов.
Существуют следующие типы информационных связей:
- один-к-одному;
- один-ко-многим;
- многие-ко-многим.
Связь один-к-одному предполагает, что одному атрибуту первой таблицы соответствует только один атрибут второй таблицы и наоборот.
Связь один-ко-многим предполагает, что одному атрибуту первой таблицы соответствует несколько атрибутов второй таблицы.
Связь многие-ко-многим предполагает, что одному атрибуту первой таблицы соответствует несколько атрибутов второй таблицы и наоборот.
Существует специальная терминология, принятая в теории реляционных БД
Отношением называется вся таблица, отвечающая определенным свойствам (о которых более подробно – ниже).
Отношение характеризуется следующими понятиями:
Атрибут соответствует столбцу этой таблицы, а именно – свойствам объектов, сведения о которых хранятся в ней. В конкретных СУБД атрибуты часто называют полями.
Первичный ключ – это атрибут (или множество атрибутов), значения которого уникально идентифицируют кортежи (записи).
Кортеж соответствует заполненной строке таблицы. В конкретных СУБД кортежи называют записями.
Степень отношения – количество его атрибутов.
Кардинальное число – количество кортежей в отношении в текущий момент времени.
Домен – это общая совокупность значений, из которой берутся конкретные значения для конкретного атрибута.
Домены
Домены более точно можно определить как именованное множество скалярных значений одного типа. Эти скалярные значения называют скалярами. По сути, это наименьшая семантическая (смысловая) единица данных. У скаляров нет внутренней структуры, т.е. они не разложимы в данной реляционной модели.
Например, если имеется атрибут (свойство объекта) «ФИО», он предусматривает скаляры, содержащие фамилию, имя и отчество. Конечно, эти скаляры можно еще разбить на буквы, но тогда будет утрачен нужный смысл. То есть для данной модели наименьшими семантическими единицами данных будут именно фамилия, имя и отчество.
Из доменов, как уже говорилось, берутся значения атрибутов. На практике домены часто не описывают, а задают типом, форматом и другими свойствами данных. Каждый атрибут должен быть определен на единственном домене.
Основное назначение доменов — ограничение сравнения различных по смыслу атрибутов.
Например: Если для атрибутов №Зачетной Книжки отношения Студенты и №Кабинета для отношения Кабинеты домены заданы следующим образом:
№ зачетной книжки = {100000, 100001, 100002, … 999999}
№ кабинета = {1, 2, 3, … 999},
Отношения
Переменная отношения — обычная переменная, т.е. именованный объект, значение которого может изменяться со временем (по сути - это множество заданных атрибутов данного отношения).
Значение отношения — значение переменной отношения в конкретный момент времени (по сути - это сохраненные кортежи отношения).
Свойства отношений
1. Нет одинаковых кортежей. Это следует из того, что тело отношения определено как математическое множество кортежей, а множество по определению не содержит одинаковых элементов.
Следствие этого свойства: в отношении всегда существует первичный ключ.
2. Кортежи не упорядочены. Это следует также из того, что тело отношения определено как математическое множество кортежей. А математическое множество по определению не упорядочено. Именно поэтому в отношении не существует таких понятий, как «следующий», «предыдущий», «второй кортеж» и т.п.
3. Атрибуты не упорядочены. Это следует из того, что заголовок отношения определен как математическое множество атрибутов. А множество не упорядочено по определению. Т.е. опять нет понятий «первый атрибут», «следующий атрибут» и т.п.
4. Все значения атрибутов неделимы. Это следствие того, что каждый атрибут определен на своем домене, а домен – множество неделимых скаляров.
Целостность реляционных данных
В любой момент времени любая БД содержит некоторые определенные значения атрибутов, которые выражает конкретное состояние объекта реального мира. Следовательно, БД нуждается в определении правил целостности, необходимых для того, чтобы данные не вступили в противоречие с реальным миром. Такие правила целостности являются специфическими для каждой БД. Это, по сути, информирование СУБД об ограничениях реального мира, Например, имя – только текстовое значение, значения веса, роста - только положительные и т.п.
Но таких правил целостности недостаточно – не менее важно, чтобы данные внутри самой БД не противоречили друг другу.
Внешние ключи
В базах данных отношения могут быть связаны друг с другом. Например, в БД Факультет отношение Студенты (№Зачетной Книжки, Фамилия, Имя, Отчество, Код Группы) связано с отношением Группы (Код Группы, Специальность, Курс, Староста). Значение атрибута Код Группы в отношении Студенты допустимо только в том случае, если такое значение имеется в качестве значения первичного ключа отношения Группы. В этом случае атрибут Код Группы в отношении Студенты является внешним ключом, ссылающимся на первичный ключ – Код Группы отношения Группы.