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

2.5 Ключи и связи

Особенностью реляционных баз данных является то, что база данных состоит из нескольких таблиц.

Поскольку строки в каждой таблице неупорядочены, необходим столбец (или набор нескольких столбцов) для уникальной идентификации каждой строки, т.е столбец в котором нет одинаковых и пустых строк. Такой столбец называется первичный ключ (primary key). Иногда ключ может состоять из более чем одного столбца, он называется составным первичным ключом (composite primary key).

В приведенном выше примере первичным ключом будет являться поле Код клиента.

Рассмотрим также таблицу Заказы

Номер заказа

Код клиента

Дата заказа

Вес заказа

1021

АС

01.02.07

250

1022

АА

10.04.07

300

1023

АД

12.04.07

450

1024

АВ

20.05.07

200

1025

АС

01.06.07

600

1026

АД

10.07.07

550

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

Столбец, указывающий на запись в другой таблице, связанную с данной записью, называется внешним ключом (foreign key).

В случае таблицы Заказы внешним ключом является столбец Код клиента.

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

Клиенты Заказы

Код клиента (ПК)

Номер заказа

Клиент

Код клиента (ВК)

Город

Дата заказа

Улица

Вес заказа

Телефон

Подобное взаимоотношение между таблицами называется связью (relationsship). Связь между двумя таблицами устанавливается путем присвоения значения внешнего ключа одной таблицы значениям первичного ключа другой.

Таблица, содержащая внешний ключ, называется detail таблицей, а таблица, содержащая первичный ключ, называется master- таблицей.

Графическое изображение связи таблиц называется схемой данных.

Манипуляции с данными в базах данных, такие как выбор, вставка, удаление, обновление называются запросами к базе данных (query). Язык запросов называется SQL (Structured Query Language). Более подробно язык SQL будет изучаться в следующих лекциях.

2.6. Реляционная (ссылочная) целостность.

Основное правило реляционной (ссылочной) целостности гласит:

Первичный ключ любой таблицы должен содержать уникальные (не повторяющиеся) непустые значения для данной таблицы.

СУБД должна контролировать уникальность первичных ключей. При попытке присвоить первичному ключу значение, уже имеющееся в другой записи, СУБД генерирует сообщение об ошибке первичного ключа. Если две таблицы связаны отношением master- detail, то внешний ключ должен содержать только те значения, которые уже имеются среди значений первичного ключа master–таблицы. Если СУБД не контролирует значение внешних ключей, то может произойти нарушение ссылочной целостности. Например, если из таблицы Клиенты удалить запись, имеющую хотя бы одну запись в таблице Заказы, то в таблице Заказы окажутся записи о заказах, размещенных неизвестно кем. В случае контроля ссылочной целостности со стороны СУБД генерируется сообщение об ошибке внешнего ключа либо при попытке присвоить внешнему ключу значение, отсутствующее среди значений первичных ключей, либо при удалении или модификации записей master – таблицы. Большинство современных СУБД контролируют ссылочную целостность.

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