Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BD_KL_2010_14.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
28.97 Mб
Скачать

2.2.2.Первичные ключи

Поскольку строки в реляционной таблице не упорядочены, нельзя выбрать строку по ее номеру в таблице. В таблице нет «первой», «последней» или «тридцатой» строки. Тогда каким же образом можно выбрать в таблице конкретную строку, например, строку для офиса, расположенного в Инзе?

В правильно построенной базе данных в каждой таблице есть один или несколько столбцов, значения которых во всех строках разные. Этот столбец (столбцы) называется первичным ключом таблицы. В нашей учебной базе данных на первый взгляд, первичным ключом таблицы OFFISY могут служить и столбец ID_OFC, и столбец CITY. Однако если компания будет расширяться и откроет в каком-либо городе второй офис, столбец CITY больше не сможет исполнять роль первичного ключа. На практике в качестве первичных ключей таблиц обычно следует выбирать идентификаторы, такие как идентификатор офиса (ID_OFC в таблице OFFISY), служащего (ID_OFC в таблице SLUZHASCHIE) и клиента (ID_CLN в таблице CLIENTY). А в случае с таблицей ZAKAZY нет выбора – единственным столбцом, содержащим уникальные значения, является номер заказа (ID_ORDER).

Таблица CLIENTY

ID_CLN

COMPANY

ID_SLZH

LIMIT_CREDIT

12111

«Заря»

2103

$50000.00

12102

«Гранит»

2101

$65000.00

12103

«Базальт»

2105

$50000.00

Таблица SLUZHASCHIE

ID_SLZH

FAMILY

NAME

AGE

ID_OFC

DLZH

MNGR

QUOTA

SALES

2109

Полев

Андрей

31

311

Брокер

2106

$300000.00

$392725.00

2102

Пронин

Игорь

48

321

Брокер

2108

$350000.00

$474050.00

2106

Петров

Петр

52

311

Гл.Брокер

NULL

$275000.00

$299912.00

2104

Иванов

Иван

33

312

Ст.Брокер

2106

$200000.00

$142594.00

2101

Федоров

Федор

45

312

Брокер

2104

$300000.00

$305673.00

2110

Уткин

Денис

41

NULL

Брокер

2101

NULL

$75985.00

Таблица OFFISY

ID_OFC

CITY

REGION

MNGR

TARGET

SALES

322

Инза

Ульяновская

2108

$300000.00

$186042.00

311

Буинск

Татарстан

2106

$575000.00

$692637.00

312

Тверь

Московская

2104

$800000.00

$735042.00

Таблица TOVARY

ID_MFR

ID_PRD

DESCRIPTION

PRICE

COUNT

УАЗ

2A45C

Деталь кузова

$79.00

210

ВАЗ

4100Y

Деталь двигателя

$2750.00

25

ПМЗ

XK47

Сопло

$355.00

38

Таблица ZAKAZY

ID_ORDER

DATE_ORDER

ID_CLN

ID_SLZH

ID_MFR

ID_PRD

COUNT

PRICE_ALL

312961

12/17/89

12117

2106

УАЗ

2A44L

7

$31500.00

313012

01/11/90

12111

2105

ВАЗ

41003

35

$3745.00

312989

01/03/90

12101

2106

УМЗ

114

6

$1458.00

313051

02/10/90

12118

2108

ПМЗ

XK47

4

$1420.00

Рис. 1.1. Фрагмент учебной базы данных

Таблица TOVARY является примером таблицы, в которой первичный ключ представляет собой комбинацию столбцов. Такой первичный ключ называется составным. Столбец ID_MFR содержит идентификаторы производителей всех товаров, перечисленных в таблице, а столбец ID_PRD содержит номера, присвоенные товарам производителями. Может показаться, что столбец ID_PRD мог бы и один исполнять роль первичного ключа, однако ничто не мешает двум разным производителям присвоить своим изделиям одинаковые номера. Таким образом, в качестве первичного ключа таблицы TOVARY необходимо использовать комбинацию столбцов ID_MFR и ID_PRD. Для каждого из товаров, содержащихся в таблице, комбинация значений в этих столбцах будет уникальной. Первичный ключ для каждой строки таблицы является уникальным, поэтому в таблице с первичным ключом нет двух совершенно одинаковых строк.

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