Название: Базы данных. Концепция баз данных, реляционная модель данных, языки SQL и XML (Токмаков Г. П.)

Жанр: Информационные системы и технологии

Просмотров: 1401


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

 

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

 

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

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