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

Каждое отношение имеет (возможно, составной) первичный ключ.

Мы будем предполагать, что первичный ключ неизбыточен в том смысле, что никакие из составляющих его атрибутов не являются излишними для однозначной идентификации кортежа в отношении. Например, комбинация (DEPTNO, LOC) не является первичным ключом для приведенного выше отношения DEPT.

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

Отношение ЕМР

ENAME

JOB

HIREDATE

SAL

DEPTNO

7839

KING

PRESIDENT

17.11.1981

5000

10

7782

CLARK

MANAGER

09.06.1981

2450

10

7934

MILLER

CLERK

23.01.1982

1300

10

7566

JONES

MANAGER

02.04.1981

2975

20

7788

SCOTT

ANALYST

09.12.1982

3000

20

7876

ADAMS

CLERK

12.01.1983

1100

20

7369

SMITH

CLERK

17.12.1980

800

20

7902

FORD

ANALYST

03.12.1981

3000

20

7698

BLAKE

MANAGER

01.05.1981

2850

30

7654

MARTIN

SALESMAN

28.09.1981

1250

30

7499

ALLEN

SALESMAN

20.02.1981

1600

30

7844

TURNER

SALESMAN

08.09.1981

1500

30

7900

JAMES

CLERK

03.12.1981

950

30

7521

WARD

SALESMAN

22.02.1981

1250

30

Возможный ключ 1

Возможный ключ 2

Первичный ключ

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

Введем также понятие "внешний ключ" (foreign key):

Атрибут отношения R1 является внешним ключом, если этот атрибут - не первичный ключ отношения R1, но его значения являются значениями первичного ключа некоторого отношения R2 (R1 и R2 не обязательно различны).

Если же отношения R1 и R2 различны, то определение можно смягчить:

Атрибут отношения R1 является внешним ключом, если его значения являются значениями первичного ключа некоторого отношения R2.

Например:

• Атрибут DEPTNO отношения ЕМР является внешним ключом, так как его значения являются значениями первичного ключа отношения DEPT.

• Атрибут MGR отношения ORGCHART - внешний ключ, так как его значения являются значениями первичного ключа EMPNO этого же отношения.

Ключи, первичный и внешний, представляют собой средства выражения связей между кортежами. Заметим, однако, что не все такие "связывающие" атрибуты являются ключами.

Допустим, что есть уже знакомое нам отношение ЕМР. Атрибут DEPTNO сам по себе не является ключом. Он может стать внешним ключом, если в базу данных будет добавлено отношение (например, DEPT), в котором будет соответствующий первичный ключ, значения которого будут использоваться для включения значений атрибута DEPTNO отношения ЕМР.

Некоторые выводы______________________ ___

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

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

В традиционном смысле, отношению можно поставить в соответствие "файл", таблицу, кортежу - запись, строку таблицы (экземпляр, но не тип), а атрибуту - поле, столбец таблицы (тип, но не экземпляр).

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

Перечислим основные особенностей реляционных "файлов", которые отличают эти "файлы" от традиционных файлов (важно!):

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

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

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

4. Внутри таблицы экземпляры записи имеют заранее неизвестный пользователю порядок.