Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Реляционная модель данных: базовые объекты, фундаментальные свойства отношений. Представление сущностей и связей.

Поиск

Реляционная модель данных (РМД) — логическая модель данных, прикладная теория построения баз данных.

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

· структурную часть,

· целостную часть,

· манипуляционную часть.

 

Особенности реляционной модели данных, отличающие ее от модели «сущность-связь»:

· определена манипуляционная часть – конкретный набор операций

· имеются конкретные языки описания данных и манипулирования данными (современные реляционные СУБД используют единый язык – SQL, в котором объединены и ЯОД, и ЯМД).

 

Базовыми структурными компонентами РМД являются:

1)домены и атрибуты, 2)отношения, 3)связи.

 

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

 

Пусть дана совокупность множеств D1, D2, …, Dn, не обязательно различных.

Тогда отношение R, определенное на этих множествах, есть множество упорядоченных кортежей <d1, d2, …, dn> таких, что di Î Di для каждого i из [1:n]. В реляционной модели данных множества Di представляют собой домены.

Свойства отношения:

· кортежи отношения не упорядочены

· домены внутри кортежей упорядочены.

 

Атрибуты задают способ использования домена внутри отношения.

Схема отношения – это именованная совокупность пар <имя атрибута: имя домена>. Схема отношения представляет собой интенсионал отношения.

 

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

1. Каждый атрибут отношения имеет уникальное в данном отношении имя

2. Каждый атрибут определен на каком-то одном домене

3. На одном и том же домене может быть определено несколько атрибутов

4. Имя атрибута может совпадать с именем домена

5. Порядок следования атрибутов не устанавливается (атрибуты в определении схемы отношения не упорядочены)

6. В отношении нет совпадающих кортежей (каждый кортеж уникален)

7. Порядок следования кортежей не устанавливается (кортежи в отношении не упорядочены)

8. Отношение имеет имя, которое в схеме БД отличается от имен всех других отношений

 

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

 

Таким образом, в соответствии с определением, первичный ключ отношения обладает следующими двумя свойствами:

· уникальность – в каждом кортеже отношения значение ключа единственным образом идентифицирует этот кортеж;

· неприводимость – никакое собственное подмножество ключа не обладает свойством уникальности.

 

Отношение может иметь только один первичный ключ. Если в отношении можно выделить несколько наборов атрибутов, каждый из которых уникально и не избыточно идентифицирует каждый кортеж отношения, в таком случае один из них выбирается в качестве первичного ключа, а все остальные являются альтернативными ключами (AK – Alternate Key).

 

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

Внешний ключ (FK – Foreign Key) – это атрибут или некоторое множество атрибутов отношения R1, которые не являются собственными атрибутами отношения R1, но их значение совпадает со значениями первичного ключа некоторого отношения R2 (возможность идентичности R1 и R2 не исключается). Атрибуты внешнего ключа представляют собой некоторые дополнительные атрибуты, которые не определяют саму сущность, но позволяют установить ассоциации с другой сущностью.

 

Основными типами связей между сущностями являются связи 1: N и N: N.

 

 

6. Подмножество SQL для определения данных: предложение CREATE TABLE, правила записи. Примеры.

Реляционная модель данных определяет два базовых требования целостности, которые поддерживаются любой РСУБД:

· требование целостности сущностей,

· требование целостности по ссылкам.

 

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

 

Кроме этого, могут быть установлены и следующие ограничения:

· UNIQUE – уникальность атрибутов; определяет альтернативные ключи отношения;

· NOT NULL – обязательность значения; при вставке новых или модификации существующих элементов отношения значения соответствующих атрибутов должны быть заданы;

· CHECK (условие) – допустимые значения атрибутов; вставляемые значения должны удовлетворять указанному условию.

 

Ссылочные ограничения целостности в РМД представляют собой условия, накладываемые на сосуществование кортежей в связанных отношениях. Как уже говорилось, в реляционной БД связи между отношениями представляются с помощью внешних ключей. Вернемся к примеру, в котором рассматривались отношения ОТДЕЛ и СОТРУДНИК:

ОТДЕЛ (Номер отдела, Название (АК))

СОТРУДНИК (Номер сотрудника, Имя, Год рождения, Номер отдела (FK))

Атрибут внешнего ключа Номер отдела в отношении СОТРУДНИК позволяет получить полную информацию о том конкретном отделе, в котором работает конкретный сотрудник.

Обычно отношение, в котором определяется внешний ключ, называется дочерним отношением, а отношение, на которое ссылается внешний ключ – родительским отношением. Так, в нашем примере отношение СОТРУДНИК – дочернее, а отношение ОТДЕЛ – родительское.

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

 

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

· при вставке нового элемента этот элемент должен иметь допустимое значение атрибутов внешнего ключа;

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

· при модификации внешнего ключа некоторого элемента этот элемент должен получить допустимое значение атрибутов внешнего ключа.

Операции с родительским отношением выполняются следующим образом:

· вставка нового элемента выполняется без каких-либо ограничений;

· удаление элемента не должно привести к нарушению ссылочной целостности. Если в дочернем отношении существует элемент, ссылающийся на удаляемый элемент родительского отношения, как поступить с ним? Здесь возможны три подхода:

a) restrict – удаление элемента из родительского отношения не выполняется, если в дочернем отношении есть хотя бы один элемент, ссылающийся на удаляемый;

b) cascade – вместе с элементом родительского отношения удаляются все ссылающиеся на него элементы дочернего отношения;

c) set NULL – атрибутам внешнего ключа дочернего отношения присваивается пустое значение (каждая СУБД использует собственный способ задания пустого значения); этот подход возможен, если для атрибутов внешнего ключа дочернего отношения не установлено ограничение обязательности значения;

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

 

Например, отношение ДЕТАЛЬ на SQL для СУБД MS SQL Server м.б. определено так:

create table P (

P_ID smallint identity (1, 1) constraint P_PK primary key, --1

PNAME varchar (20) not null constraint P_UQ_01 unique, --2

PRICE money not null constraint P_CH_01 check (price > 0) --3

)

1 – определено ограничение первичного ключа (ограничение PRIMARY KEY, имя ограничения – P_PK), значения которого должны устанавливаться автоматически, начиная с 1 и с шагом 1 (т.е. в первой записи будет установлено значение 1, во второй – значение 2 и т.д.)

2 – определены ограничения уникальности (имя– P_UQ_01) и обязательности значения;

3 – определено условие (имя – P_CH_01): значение атрибута должно быть больше нуля.

 

Отношение ПОСТАВЩИК может быть определено следующим образом:

create table S (

S_ID smallint identity(1,1) constraint S_PK primary key,

SNAME varchar(30) not null,

ADDRESS varchar(80))

Теперь определим отношение связи ПОСТАВКА:

create table SP (

S_ID smallint not null constraint SP_FK_01 references S(S_ID), --1

P_ID smallint not null constraint SP_FK_02 references P(P_ID), --1

QTY int not null constraint SP_CH_01 check(QTY > 0),

constraint SP_PK primary key(S_ID, P_ID) --2

)

1 – определяется внешний ключ; в ограничении внешнего ключа (ключевое слово REFERENCES) указывается родительская таблица и ее первичный ключ; по умолчанию правило удаления определяется как restrict.

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

 

 



Поделиться:


Последнее изменение этой страницы: 2017-01-25; просмотров: 10691; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.135.195.180 (0.008 с.)