Какими свойствами обладают реляционные модели
ОСНОВНЫЕ ПОНЯТИЯ БАЗ ДАННЫХ
База данных (БД) – именованная совокупность данных, отражающая состояние объектов и их отношений в рассматриваемой предметной области данных.
Примеры предметных областей данных: склад, магазин, вуз, больница, учебный процесс и т. д. Именно предметная область определяет совокупность данных, которые должны храниться в базе данных.
Система управления базами данных (СУБД) – совокупность языковых и программных средств, предназначенных для создания, ведения и совместного использования базы данных многими пользователями.
Другие определения, имеющие отношение к БД и СУБД.
Банк данных (БнД) – это система специальным образом организованных данных – баз данных, программных, технических, языковых, организационно-методических средств, предназначенных для обеспечения централизованного накопления и многоцелевого использования данных.
Информационная система (ИС) – взаимосвязанная совокупность средств, методов и персонала, используемых для хранения, обработки и выдачи информации в интересах достижения поставленной задачи.
Основой практически любой информационной системы является база данных.
Сервер – компьютер или программа, владеющая определенным информационным ресурсом и предназначенная для обработки запросов от программ-клиентов.
Основными моделями данных, определяющие структуру базы данных, являются:
иерархическая модель;
сетевая модель;
реляционная модель.
РЕЛЯЦИОННАЯ МОДЕЛЬ ДАННЫХ
Теоретической основой этой модели является теория отношений и основной структурой данных – отношение. Именно поэтому модель получила название реляционной (от английского слова relation — отношение).
Отношениепредставляет собой множество элементов, называемых кортежами. Наглядной формой представления отношения является двумерная таблица. Смысловые значения некоторых элементов реляционной модели приведены в следующей таблице.
Обычное представление | База данных | Реляционная модель |
Таблица | Таблица | Отношение |
Строка | Запись | Кортеж |
Название столбца | Поле | Атрибут |
Множество значений столбца | Множество значений поля | Домен (множество значений атрибута) |
Подавляющее число создаваемых и используемых баз данных являются реляционными. Их создание и развитие связано с научными работами известного американского математика, специалиста в области систем баз данных Э. Кодда.
Свойства реляционной таблицы
Реляционная модель ориентирована на организацию данных в виде двумерных таблиц. Каждая реляционная таблица представляет собой двумерный массив и обладает следующими свойствами:
· каждый элемент таблицы — один элемент данных;
· все столбцы (поля, атрибуты) в таблице однородные, т.е. все элементы в одном столбце имеют одинаковый тип (числовой, символьный и т.д.) и длину;
· каждый столбец имеет уникальное имя;
· одинаковые строки (записи, кортежи) в таблице отсутствуют;
· порядок следования строк и столбцов может быть произвольным.
Каждое поле содержит одну характеристику объекта предметной области. В записи собраны сведения об одном экземпляре этого объекта.
Ключи
Поле, каждое значение которого однозначно определяет соответствующую запись, называется простым ключом (ключевым полем). Ключ, состоящий из нескольких полей называется составным ключом. В СУБД Access в качестве ключа может быть использован Счетчик, который автоматически возрастает на единицу при вводе в таблицу новой записи. Такой ключ называют искусственным. Он семантически не связан ни с одним полем таблицы. Из-за этого он допускает повторный ввод одних и тех же записей. Но с помощью него просто устанавливать связь между таблицами. Основное свойство ключа – уникальность, неповторимость.
Типы связей между таблицами
Структура базы данных определяется структурой таблиц и связями между ними.
Связи между таблицами бывают трех типов:
«один-к-одному» (1:1) – одной записи в главной таблице соответствует одна запись в подчиненной таблице,
«один-ко-многим» (1:М) – одной записи в главной таблице соответствует несколько записей в подчиненной таблице,
«многие-ко-многим» (М:М) – нескольким записям в главной таблице соответствуют несколько записей в подчиненной таблице. Или одной записи в первой таблице может соответствовать несколько записей во второй таблице. И одной записи во второй таблице могут соответствовать несколько записей в первой таблице.
Создание связей между таблицами
Связь между таблицами устанавливается с помощью ключей. Главной называют таблицу, первичный ключ которой используется для установления связи с другой таблицей, которая в этом случае называется подчиненной.
Чтобы связать две реляционные таблицы, необходимо ключ главной таблицы ввести в состав подчиненной таблицы. Название ключа может быть другим, но обязательно одинаковыми с первичным ключом должны быть тип и размер вторичного ключа в подчиненной таблице. Для удобства лучше обозначение вторичного ключа оставлять таким же, как и первичного. Однако если ключом выбран Счетчик, то вторичный ключ должен иметь тип Числовой – длинное целое (но не Счетчик!). Вторичный ключ – это или обычное поле, или часть первичного ключа в подчиненной таблице.
СУБД Access для реализации связи «многие-ко-многим» требует создать таблицу связи и ввести в нее в качестве вторичных ключей первичные ключи двух таблиц, которые должны иметь такую связь (М:М). После этого устанавливается связь 1:М каждой из двух таблиц с таблицей связи. Между двумя таблицами таким образом реализуется связь М:М. Если в БД «Моя библиотека» создать таблицы Книги и Авторы, то связь между ними будет вида М:М, так как одной записи в таблице Книги (реквизиты одной книги) может соответствовать несколько записей в таблице Авторы. Потому что у одной книги может быть несколько авторов. В свою очередь, одной записи в таблице Авторы могут соответствовать несколько записей в таблице Книги, так как один автор может написать несколько книг. Таблицу связи можно назвать КнигиАвторы, в которую будут включены ключи обеих таблиц – Книги и Авторы. Если требуется, в таблицу связи можно включить и другие поля.
Среди реляционных баз данных следует различать корпоративные и настольные базы данных.
Из корпоративных реляционных СУБД наиболее распространенными являются: Oracl, IBM DB2, Sybase, Microsoft SQL Server, Informix. Из постреляционных СУБД известна СУБД Cache компании InterSystems.
Наиболее известны в настоящее время следующие настольные БД: Microsoft Access, Paradox (фирмы Borland), FoxPro (Microsoft), dBase IV (IBM), Clarion.
Эти СУБД занимают более 90% всего рынка СУБД.
В следующем разделе дана краткая характеристика СУБД Microsoft Access.
Источник
Фундаментальные свойства отношений.
Перечислим некоторые наиболее важные свойства отношений:
1. Отсутствие кортежей-дубликатов. То свойство, что отношения не содержат кортежей-дубликатов, следует из определения отношения как множества кортежей. В классической теории множеств по определению каждое множество состоит из различных элементов.
Из этого свойства вытекает наличие у каждого отношения так называемого первичного ключа – набора атрибутов, значения которых однозначно определяют кортеж отношения. Для каждого отношения, по крайней мере, полный набор его атрибутов обладает этим свойством. Однако при формальном определении первичного ключа требуется обеспечение его “минимальности”, т.е. в набор атрибутов первичного ключа не должны входить такие атрибуты, которые можно отбросить без ущерба для основного свойства – однозначно определять кортеж. Понятие первичного ключа является исключительно важным в связи с понятием целостности баз данных.
2. Отсутствие упорядоченности кортежей. Свойство отсутствия упорядоченности кортежей отношения также является следствием определения отношения-экземпляра как множества кортежей. Отсутствие требования к поддержанию порядка на множестве кортежей отношения дает дополнительную гибкость СУБД при хранении баз данных во внешней памяти и при выполнении запросов к базе данных.
3. Отсутствие упорядоченности атрибутов. Атрибуты отношений не упорядочены, поскольку по определению схема отношения есть множество пар {имя атрибута, имя домена}. Для ссылки на значение атрибута в кортеже отношения всегда используется имя атрибута. Это свойство теоретически позволяет, например, модифицировать схемы существующих отношений не только путем добавления новых атрибутов, но и путем удаления существующих атрибутов.
4. Атомарность значений атрибутов. Значения всех атрибутов являются атомарными. Это следует из определения домена как потенциального множества значений простого типа данных, т.е. среди значений домена не могут содержаться множества значений (отношения).
Модель данных описывает некоторый набор родовых понятий и признаков, которыми должны обладать все конкретные СУБД и управляемые ими базы данных, если они основываются на этой модели. Наличие модели данных позволяет сравнивать конкретные реализации, используя один общий язык.
Хотя понятие модели данных является общим, и можно говорить об иерархической, сетевой, некоторой семантической и т.д. моделях данных, нужно отметить, что это понятие было введено в обиход применительно к реляционным системам и наиболее эффективно используется именно в этом контексте.
Наиболее распространенная трактовка реляционной модели данных, по-видимому, принадлежит Дейту. Согласно Дейту реляционная модель состоит из трех частей, описывающих разные аспекты реляционного подхода: структурной части, манипуляционной части и целостной части.
В структурной части модели фиксируется, что единственной структурой данных, используемой в реляционных БД, является нормализованное n-арное отношение.
В манипуляционной части модели утверждаются два фундаментальных механизма манипулирования реляционными БД – реляционная алгебра и реляционное исчисление. Первый механизм базируется в основном на классической теории множеств (с некоторыми уточнениями), а второй – на классическом логическом аппарате исчисления предикатов первого порядка.
В целостной части реляционной модели данных фиксируются два базовых требования целостности, которые должны поддерживаться в любой реляционной СУБД. Первое требование называется требованием целостности сущностей. Объекту или сущности реального мира в реляционных БД соответствуют кортежи отношений. Конкретно требование состоит в том, что любой кортеж любого отношения отличим от любого другого кортежа этого отношения, т.е. другими словами, любое отношение должно обладать первичным ключом. Это требование автоматически удовлетворяется, если в системе не нарушаются базовые свойства отношений.
Второе требование называется требованием целостности по ссылкам. При соблюдении нормализованности отношений сложные сущности реального мира представляются в реляционной БД в виде нескольких кортежей нескольких отношений связанных между собой посредством первичных и вторичных (внешних) ключей.
Требование целостности по ссылкам, или требование внешнего ключа состоит в том, что для каждого значения внешнего ключа, появляющегося в ссылающемся отношении, в отношении, на которое ведет ссылка, должен найтись кортеж с таким же значением первичного ключа, либо значение внешнего ключа должно быть неопределенным (т.е. ни на что не указывать).
Источник
- Реляционная модель данных: кем, когда и для чего создана
- Структура данных в реляционной модели данных
- Отношения и их реализация в реляционной модели данных
- Ключи отношений в реляционной модели данных
- Целостность данных в реляционной модели данных
Реляционная модель данных: кем, когда и для чего создана
Реляционная модель данных – созданная Эдгаром Коддом логическая модель данных, описывающая:
- структуры данных в виде (изменяющихся во времени) наборов отношений;
- теоретико-множественные операции над данными: объединение, пересечение разность и декартово произведение;
- специальные реляционные операции: селекция, проекция, соединение и деление;
- специальные правила, обеспечивающие целостность данных.
Эдгар Франк «Тед» Кодд – (23 августа 1923 —18 апреля 2003) — британский учёный, работы которого заложили основы
теории реляционных баз данных. Работая в компании IBM, он создал реляционную модель данных. В 1970 издал работу «A Relational Model
of Data for Large Shared Data Banks», которая считается первой работой по реляционной модели данных.
Реляционная модель данных – это способ рассмотрения данных, то есть предписание для способа представления данных
(посредством таблиц) и для способа работы с таким представлением (посредством операторов). Она связана с тремя аспектами
данных: структурой (объекты), целостностью и обработкой данных (операторы).
В 2002 журнал Forbes поместил реляционную модель данных в список важнейших инноваций
последних 85 лет.
Цели создания реляционной модели данных:
- обеспечение более высокой степени независимости от данных;
- создание прочного фундамента для решения семантических вопросов и проблем непротиворечивости и избыточности данных;
- засширение языков управления данными за счёт включения операций над множествами.
Структура данных в реляционной модели данных
Реляционная модель данных предусматривает структуру данных, обязательными объектами
которой являются:
Отношение – это плоская (двумерная) таблица, состоящая из столбцов и строк:
ID | Фамилия | Имя | Должность | г.р. |
1 | Петров | Игорь | Директор | 1968 |
2 | Иванов | Олег | Юрист | 1973 |
3 | Ким | Елена | Бухгалтер | 1980 |
4 | Сенин | Илья | Менеджер | 1981 |
5 | Васин | Сергей | Менеджер | 1978 |
Атрибут – это поименованный столбец отношения.
Домен – это набор допустимых значений для одного или нескольких атрибутов.
Кортеж – это строка отношения.
Степень определяется количеством атрибутов, которое оно содержит
Кардинальность – это количество кортежей, которое содержит отношение.
Первичный ключ – это уникальный идентификатор для таблицы.
Соответствие между формальными терминами реляционной модели данных и неформальными:
- отношение (формальный термин) – таблица (неформальный термин);
- атрибут – столбец;
- кортеж – строка или запись;
- степень – количество столбцов;
- кардинальное число – количество строк;
- первичный ключ – уникальный идентификатор;
- домен – общая совокупность допустимых значений.
Отношения и их реализация в реляционной модели данных
Отношение R на множестве доменов D1, D2, …, Dn
– это подмножество декартова произведения этих доменов:
R ⊆ D1 × D2 × … × Dn
Пример 1. Определены домены: D1 –
множество фамилий преподавателей, D2 –
множество аудиторий, D3 –
множество учебных групп, D4 –
множество учебных дисциплин. Записать отношения: 1) закрепление преподавателей за учебными курсами;
2) расписание занятий в группах.
Решение.
1) закрепление преподавателей за учебными курсами:
R ⊆ D1 × D4.
Это отношение определяет множество преподавателей, ведущих множество учебных дисциплин.
2) расписание занятий в группах:
R ⊆ D2 × D3 × D4.
Это отношение определяет множество аудиторий, в которых проводятся занятия по множеству учебных дисциплин для множества учебных групп.
Свойства отношений:
- уникальное имя отношения;
- уникальное имя атрибута;
- нет одинаковых кортежей;
- кортежи не упорядочены сверху вниз;
- атрибуты не упорядочены слева направо;
- все значения атрибутов атомарные (нормализованное отношение).
Таким образом, реляционная база данных – это набор нормализованных отношений. Для
того, чтобы перейти к видам отношений, введём понятие переменной отношения. Переменная отношения – это
именованный объект, значение которого может изменяться с течением времени. Переменная отношения в разное
время – это различные таблицы базы данных, у которых разные строки, но одинаковые столбцы.
Виды отношений:
- именованное отношение;
- базовое отношение;
- производное отношение;
- выражаемое отношение;
- представление (view);
- снимки (snapshot);
- результат запроса;
- промежуточный результат.
Именованное отношение – это переменная отношения, определённая в СУБД (системе управления
базами данных) посредством оператора CREATE (CREATE TABLE, CREATE BASE RELATION, CREATE
VIEW, CREATE SNAPSHOT).
Базовое отношение – это именованное отношение, которое не является производным.
Существование базового отношения не зависит от существования других отношений.
Производное отношение – это отношение, которое определено через другие именованные
отношения. Производное отношение зависит от существования других – базовых – отношений.
Выражаемое отношение – это отношение, которое можно получить из набора именованных
отношений посредством некоторого реляционного выражения. Каждое именованное отношение является выражаемым
отношений, но не наоборот. Примеры выражаемых отношений – базовые отношения, представления, снимки,
промежуточные и окончательные результаты. Множество всех выражаемых отношений – это множество всех
базовых и всех производных отношений.
Представление – это именованное производное отношение. Представлены в базе данных в
виде определения. Представление не хранится в физической памяти системы управления базой данных (СУБД),
а формируется с использованием других именованных отношений.
Снимки (snapshot) – это то же, что и представление, но с физическим сохранением
и с периодическим обновлением.
Результат запроса – это неименованное производное отношение. СУБД не обеспечивает
постоянного существования результатов запросов. Для сохранения результата запроса его можно присвоить
какому-либо именованному отношению.
Промежуточный результат – это неименованное производное отношение,
являющееся результатом подзапроса, вложенного в бОльшее выражение.
Ключи отношения в реляционной модели данных
Ключи отношения могут быть следующми:
- суперключ;
- потенциальный ключ;
- первичный ключ;
- внешний ключ;
- суррогатный ключ.
Ключ отношения – это подсхема исходной схемы отношения, состоящая из одного или
нескольких атрибутов, для которых декларируется условие уникальности значений в кортежах отношений.
При объявлении схемы базового отношения могут быть заданы объявления нескольких ключей.
Ключ отношения может быть простым или составным. Простой ключ – это ключ,
состоящий из одного и не более атрибута. Составной ключ -ключ, состоящий из двух и более атрибутов.
Суперключ – это атрибут или множество атрибутов, которое единственным
образом идентифицирует кортеж данного отношения. Он может включать дополнительные атрибуты. Суперключ
не обладает свойством неизбыточности.
Потенциальный ключ – это подмножество атрибутов отношения, удовлетворяющее требованиям
уникальности и неизбыточности. Он обладает следующими свойствами. Уникальность: в таблице нет двух разных
строк с одинаковыми значениями в нашем потенциальном ключе. Неизбыточность: нельзя убрать один из
столбцов из ключа, так, чтобы он не потерял уникальности. В отношении может быть больше одного
потенциального ключа.
Первичный ключ (primary key, PK) – это один из потенциальных ключей отношения,
выбранный в качестве основного ключа. Допустимо объявление одного и только одного первичного ключа.
Атрибуты первичного ключа не могут принимать значения Null.
Внешний ключ (foreign key, FK) – это ключ, объявленный в базовом отношении,
который при этом ссылается на первичный того же самого или какого-то другого базового отношения.
Суррогатный ключ – это служебный атрибут, добавленный к уже имеющимся информационным
атрибутам отношения. Предназначение суррогатного ключа – служить первичным ключом отношения. Значение
этого атрибута генерируется искусственно.
Пример 2. Есть база данных сети аптек. В ней есть таблица “Аптеки”, в
которую занесены все аптеки сети, и есть таблица “Препараты”. Кроме того, есть таблица “Наличие”, в которую
заносятся данные о наличии препаратов в каждой аптеке. В таблице наличие есть поля: “Аптека” (в ней –
идентификаторы аптек), “Препарат” (в ней – идентификаторы препаратов), “Количество”. Возникает проблема:
в случае поступления в аптеку некоторого количества препарата можно не заметить, что в той же аптеке тот
же препарат уже содержится в некотором количестве и сделать новую записись в таблице, в которой аптека и
препарат будут повторяться. Как на уровне ключей избежать этой проблемы?
Решение. Можно объявить первичным ключём таблицы “Наличие” составной ключ, состоящий
из идентификатора аптеки и идентификатора препарата. Тогда в таблице невозможно повторение в разных записях
сочетания аптеки и прапарата. Первичный ключ может быть не только простым, но и
составным.
Целостность данных в реляционной модели данных
Понятия реляционной целостности:
- определитель NULL;
- целостность сущностей;
- ссылочная целостность;
- корпоративные ограничения целостности.
Определитель NULL. Значение Null обозначает тот факт, что значение не определено.
Null не принадлежит никакому типу данных и может присутствовать среди значений любого атрибута,
определенного на любом типе данных. Двуместная «арифметическая» операция с Null даёт Null. Операция
сравнения с Null даёт UNKNOWN.
Целостность сущностей. Требование целостности сущности означает, что первичный
ключ должен полностью идентифицировать каждую сущность, а поэтому в составе любого значения первичного
ключа не допускается наличие неопределенных значений. Значение атрибута должно быть атомарным.
Ссылочная целостность. Требование целостности по ссылкам состоит в том, что для
каждого значения внешнего ключа, появляющегося в кортеже значения-отношения ссылающейся переменной
отношения, либо в значении-отношении переменной отношения, на которую указывает ссылка, должен найтись
кортеж с таким же значением первичного ключа, либо значение внешнего ключа должно быть полностью
неопределенным. Существуют правила удаления кортежа из отношения, на которое ведет ссылка.
Ссылочная целостность: удаление кортежа. Существует три подхода удаления кортежа
из отношения, на которое ведет ссылка.
- Ограничение удаления–Delete: Restrict.
- Каскадное удаление–Delete: Cascade.
- Установка значения NULL, перевод значения внешнего ключа в неопределённое состояние – Delete:
Set NULL.
Ограничение удаления. Запрещается производить удаление кортежа, для которого
существуют ссылки. Сначала нужно либо удалить ссылающиеся кортежи, либо соответствующим образом
изменить значения их внешнего ключа.
Каскадное удаление. При удалении кортежа из отношения, на которое ведет ссылка,
из ссылающегося отношения автоматически удаляются все ссылающиеся кортежи.
Установка значения NULL. При удалении кортежа, на который имеются ссылки,
во всех ссылающихся кортежах значение внешнего ключа автоматически становится полностью неопределенным.
Пример 3. Есть база данных портала новостей. В ней есть таблица
“Рубрики” (политика, экономика, спорт и т.д), есть таблица “Автора” (фамилии и имена авторов). Есть
таблица “Тексты”, в которой в каждой записи о тексте новости есть поля “Рубрика” (с идентификаторами
рубрик из соответствующей таблицы) и “Автор” (с идентификаторами рубрик из соответствующей таблицы).
Какими способами можно добиться, чтобы при удалении рубрики и автора была соблюдена ссылочная целостоность
данных?
Решение. Первый способ: установить запрет на удаление рубрики или автора из соответствующих
таблиц, в случае, если в таблицы “Тексты” есть ссылки на эту рубрику или на этого автора. Второй способ:
задать автоматическое удаление из таблицы “Тексты” записей, в которой фигурируют эта рубрика или этот автор.
Третий способ: в случае удаления рубрики или автора из соответствующих таблиц в ссылающихся кортежах
таблицы “Тексты” значения идентификатора этой рубрики или этого автора становятся неопределёнными (NULL).
Как это делается на уровне языка запросов SQL – в материале
SQL ALTER TABLE – изменение таблицы базы данных.
Корпоративные ограничения целостности – это дополнительные правила поддержки целостности
данных, определяемые пользователями или администраторами базы данных.
Поделиться с друзьями
Реляционные базы данных и язык SQL
Источник