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

relbase_book

.pdf
Скачиваний:
40
Добавлен:
12.06.2015
Размер:
2.53 Mб
Скачать

31

ГЛАВА 2. ЛОГИЧЕСКИЕ СТРУКТУРЫ РЕЛЯЦИОННОЙ МОДЕЛИ

При изучении реляционных баз данных следует иметь в виду, что существует разница между теорией баз данных и их проектированием. Теория включает в себя принципы и правила, которые определяют основу реляционной модели базы данных. Именно это изучается в залах академий, а затем быстро забывается в «реальном мире». Но теория, все-таки, важна: она гарантирует, что реляционные базы данных имеют надежную структуру и что все действия, предпринимаемые над данными, дают предсказуемые результаты.

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

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

2.1. ОСНОВЫ РЕЛЯЦИОННОЙ АЛГЕБРЫ

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

Единственным средством структуризации данных в реляционной модели

32

является отношение. В математике отношение определяется как подмножество декартова или прямого произведения. Формальное определение отношения будет приведено ниже, а пока опишем отношение как таблицу, составленную из m полей и n строк.

Почему мы можем определить отношение как таблицу? Потому что с помощью таблицы можно описать объект, задаваемый m свойствами, некоторые комбинации значений которых задают n экземпляров объекта. Другими словами, объект определяется не как декартово произведение значений свойств, а как некоторая его часть, задаваемая путем наложения некоторых ограничений. Эти ограничения и определяют отношение.

Например, таблица СТУДЕНТЫ_ГРУППЫ, составленная из полей Фамилия, Имя, Отчество, Группа, может содержать только те записи, которые содержат комбинации значений этих полей, соответствующие студентам, обучающимся в некоторой группе, а не произвольные комбинации их значений.

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

2.1.1. ОБЪЕКТЫ И ИХ ОПРЕДЕЛЕНИЯ

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

Множество

Реляционная МД основана на математическом понятии отношения, которое используется для хранения информации об объектах, представленных в базах данных. Понятие отношения выводится из понятия «множество». Множество представляет собой наиболее простую структуру, когда между отдельными изолированными объектами отсутствуют какие-либо внутренние связи. Другими словами, множество не обладает структурой. Оно представляет собой только совокупность данных определенного типа, обладающих некоторым свойством.

Домены

Однако должны быть четко установлены область определения данных, и правила определения принадлежности данных к множеству. Такое множество называется доменом. Домен – это некоторое множество элементов, например, множество целых чисел или множество допустимых значений, которые может принимать объект по некоторому свойству. Каждый атрибут реляционной базы данных определяется на некотором домене. Понятие домена имеет большое значение, поскольку благодаря нему пользователь может определять смысл и источник значений, которые могут получать атрибуты. В результате при выполнении реляционной операции системе доступно больше информации, что

33

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

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

имеет уникальное имя (в пределах базы данных);

определен на некотором простом типе данных или на другом домене;

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

Декартово произведение

Допустим, у нас есть два множества, D1 и D2 , где D1 = {2, 4} и D2 = {1, 3, 5}. Декартовым произведением этих двух множеств D1 D2 называется набор из всех возможных пар, в которых первым идет элемент множества D1 , а вто-

рым − элемент множества D2 : D1 D2 = {(2,1), (2,3), (2,5), (4,1), (4,3), (4,5)}.

Увеличивая количество множеств, можно дать обобщенное определение отношения на n доменах. Пусть имеется n множеств D1 , D2 , ..., Dn . Декартово

произведение этих n множеств можно определить следующим образом:

D1 D2 Dn = {(d1,d2 ,...,dn ) d1 D1,d2 D2 ,...,dn Dn } .

Отношение

Отношение R представляет собой двумерную таблицу, содержащую некоторые данные. Математически любое подмножество n-арных кортежей декартова произведения, является отношением n множеств.

Отношением R, определенным на множествах D1 ,D2 ,...,Dn , называется подмножество декартова произведения D1 D2 Dn . При этом:

множества D1 ,D2 ,...,Dn называются доменами отношения;

элементы декартовапроизведения {d1,d2 ,...,dn } называются кортежами;

число n определяет степень отношения;

количество кортежей называется мощностью отношения.

Атрибут отношения

Атрибут отношения представляет собой пару вида <Имя атрибута: Имя до мена> (либо A : D ). Имена атрибутов должны быть уникальны в пределах отношения. Часто имена атрибутов отношения совпадают с именами соответствующих доменов.

34

Заголовок и тело отношения

Отношение R, определенное на множестве доменов, содержит две части: заголовок и тело. Заголовок отношения это фиксированное количество атрибутов отношения, описывающее декартово произведение доменов, на котором задано отношение

( A1 : D1 , A2 : D2 ,..., An : Dn ) .

Заголовок статичен: он не меняется во время работы с базами данных. Тело отношения содержит множество кортежей отношения. Каждый кор-

теж отношения представляет собой множество пар вида <Имя атрибута: Значе ние> (либо A : Z )

R( A1 : Z1 , A2 : Z2 ,..., An : Zn )

таких, что значение Zi атрибута Ai принадлежит домену Di . Тело отношения

представляет собой множество кортежей, т. е. подмножество декартова произведения доменов.

Первичный

 

 

 

 

ключ

Фамилии

Должности

Адреса

 

S#

Домены

Отношение

Номер

 

Фамилия

 

Должность

 

Адрес

 

 

 

 

 

 

 

1

 

Иванов

 

Ведущий инженер

 

Москва

 

 

 

 

 

 

 

2

 

Петров

 

Старший инженер

 

С-Петербург

 

 

 

 

 

 

 

3

 

Федоров

 

Бухгалтер

 

Самара

 

 

 

 

 

 

 

4

 

Николаев

 

Экономист

 

Липецк

Атрибуты

Степень

Заголовок

Кортежи

Кардинальность

Рис. 2.1. Наглядное представление основных понятий реляционной модели

Таким образом, тело отношения собственно и является отношением в математическом смысле слова. Тело отношения может изменяться во время работы с базой данных, так как кортежи могут изменяться, добавляться и удаляться.

Число атрибутов в отношении называется степенью (либо арностью) отношения, а множество кортежей отношения кардинальностью (либо мощностью) отношения.

Таблицы в базах данных

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

35

Основными структурами в базе данных являются таблицы. При записи отношения в виде таблицы имена атрибутов A1 , A2 ,..., An перечисляются в заго-

ловках столбцов, а кортежи образуют строки формата ( d1 ,d2 ,...,dn ), где каждое

значение берется из соответствующего домена.

Таким образом, в реляционной МД отношение можно представить как произвольное подмножество декартова произведения доменов атрибутов, тогда как таблица − это всего лишь представление такого отношения.

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

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

Данные в таблицах удовлетворяют следующим принципам:

Каждое значение, содержащееся на пересечении строки и колонки, должно быть атомарным (т. е. не расчленяемым на несколько значений).

Значения данных в одной и той же колонке должны принадлежать к одному типу, доступному для исполнения в данной СУБД.

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

Каждое поле имеет уникальное имя.

Последовательность полей в таблице несущественна.

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

2.1.2. ОПЕРАТОРЫ

Объединение отношений

Объединение отношений R1 и R2 выражается формулой R R1 R2 . Операция объединения отношений применяется только к отношениям одинаковой арности. РезультирующееотношениеR получаетсятойжеарности(см. Рис. 2.2. ).

36

R1

 

 

 

 

 

 

 

 

 

 

 

 

Ф.И.О.

 

Год

Должность

 

Каф.

 

 

 

 

 

 

 

 

 

 

 

 

1

 

Иванов И.И.

 

1960

Доцент

 

ВТ

 

 

 

 

 

 

 

 

 

 

 

 

2

 

Петров П.П.

 

1959

Доцент

 

ВТ

 

 

 

 

 

 

 

 

 

 

 

 

3

 

Федоров Ф.Ф.

 

1960

Ст. преп.

 

ИСЭ

 

 

 

 

 

 

 

 

 

 

 

 

4

 

Николаев Н.Н.

 

1977

Ассистент

 

ИСЭ

 

 

 

 

 

 

 

 

 

 

 

R2

 

 

 

 

 

 

 

 

 

 

Ф.И.О.

 

Год

Должность

 

Каф.

 

 

 

 

 

 

 

 

 

 

1

 

Игонин И.И.

 

1950

Зав. Каф.

 

ВТ

 

 

 

 

 

 

 

 

 

 

2

 

Пронин П.П.

 

1953

Проф.

 

ВТ

 

 

 

 

 

 

 

 

 

 

3

 

Федулов Ф.Ф.

 

1955

Проф.

 

ИСЭ

 

 

 

 

 

 

 

 

 

 

4

 

Петров П.П.

 

1959

Доцент

 

ВТ

 

 

 

 

 

 

 

 

 

 

5

 

Федоров Ф.Ф.

 

1960

Ст. преп.

 

ИСЭ

 

 

 

 

 

 

 

 

 

 

 

R = R1 U R2

Ф.И.О.

Год

1

 

Игонин И.И.

 

1950

 

 

 

 

 

2

 

Пронин П.П.

 

1953

 

 

 

 

 

3

 

Федулов Ф.Ф.

 

1955

 

 

 

 

 

4

 

Петров П.П.

 

1959

 

 

 

 

 

5

 

Федоров Ф.Ф.

 

1960

 

 

 

 

 

6

 

Иванов И.И.

 

1960

 

 

 

 

 

7

 

Николаев Н.Н.

 

1977

 

 

 

 

 

Долж-

Каф.

ность

 

Зав. Каф.

ВТ

Проф.

ВТ

Проф.

ИСЭ

Доцент

ВТ

Ст. преп.

ИСЭ

Доцент

ВТ

Ассистент

ИСЭ

Рис. 2.2. Объединение отношений

Разность отношений

Разность отношений R1 и R2 выражается формулой R R1\ R2 . Разностью R1\ R2 называется множество кортежей, принадлежащих R1, но не принадлежащих R2. Отношения R1 и R2 должны быть одинаковой арности. Отношение R – тойже арности (см. Рис. 2.3. ).

R1

 

 

 

 

 

 

 

 

 

 

 

 

 

Ф.И.О.

 

Год

 

Должность

 

Каф.

 

 

 

 

 

 

 

 

 

 

 

 

1

 

Иванов И.И.

 

1960

 

Доцент

 

ВТ

 

 

 

 

 

 

 

 

 

 

 

 

2

 

Петров П.П.

 

1959

 

Доцент

 

ВТ

 

 

 

 

 

 

 

 

 

 

 

 

3

 

Федоров Ф.Ф.

 

1960

 

Ст. преп.

 

ИСЭ

 

 

 

 

 

 

 

 

 

 

 

 

4

 

Николаев Н.Н.

 

1977

 

Ассистент

 

ИСЭ

 

 

 

 

 

 

 

 

 

 

 

 

5

 

Пронин П.П.

 

1953

 

Проф.

 

ВТ

 

R2

 

 

 

 

 

 

 

 

 

 

 

Ф.И.О.

 

Год

 

Должность

 

Каф.

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

Игонин И.И.

 

1950

 

Зав. Каф.

 

ВТ

 

 

 

 

 

 

 

 

 

 

 

2

 

Пронин П.П.

 

1953

 

Проф.

 

ВТ

 

 

 

 

 

 

 

 

 

 

 

3

 

Федулов Ф.Ф.

 

1955

 

Проф.

 

ИСЭ

 

 

 

 

 

 

 

 

 

 

 

4

 

Петров П.П.

 

1959

 

Доцент

 

ВТ

 

 

 

 

 

 

 

 

 

 

 

5

 

Сидоров П.Ф.

 

1960

 

Ст. преп.

 

ИСЭ

 

 

 

 

 

 

 

 

 

 

 

 

R = R1 / R2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ф.И.О.

 

Год

 

Должность

 

Каф.

 

 

 

 

 

 

 

 

 

 

 

 

1

 

Иванов И.И.

 

1960

 

Доцент

 

ВТ

 

 

 

 

 

 

 

 

 

 

 

 

2

 

Федоров Ф.Ф.

 

1960

 

Ст. преп.

 

ИСЭ

 

 

 

 

 

 

 

 

 

 

 

 

3

 

Николаев Н.Н.

 

1977

 

Ассистент

 

ИСЭ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 2.3. Разность отношений

37

Пересечение отношений

Пересечение отношений R1 и R2 возвращает отношение, содержащее все кортежи, которые принадлежат одновременно двум заданным отношениям, и выражается формулой R R1 R2 (см. Рис. 2.4. )

R1

 

 

 

 

 

 

 

 

 

 

 

 

 

Ф.И.О.

 

Год

 

Должность

 

Каф.

 

 

 

 

 

 

 

 

 

 

 

 

1

 

Иванов И.И.

 

1960

 

Доцент

 

ВТ

 

 

 

 

 

 

 

 

 

 

 

 

2

 

Петров П.П.

 

1959

 

Доцент

 

ВТ

 

 

 

 

 

 

 

 

 

 

 

 

3

 

Федоров Ф.Ф.

 

1960

 

Ст. преп.

 

ИСЭ

 

 

 

 

 

 

 

 

 

 

 

 

4

 

Николаев Н.Н.

 

1977

 

Ассистент

 

ИСЭ

 

 

 

 

 

 

 

 

 

 

 

 

5

 

Пронин П.П.

 

1953

 

Проф.

 

ВТ

 

R2

 

 

 

 

 

 

 

 

 

 

 

Ф.И.О.

 

Год

 

Должность

 

Каф.

 

 

 

 

 

 

 

 

 

 

 

1

 

Игонин И.И.

 

1950

 

Зав. Каф.

 

ВТ

 

 

 

 

 

 

 

 

 

 

 

2

 

Пронин П.П.

 

1953

 

Проф.

 

ВТ

 

 

 

 

 

 

 

 

 

 

 

3

 

Федулов Ф.Ф.

 

1955

 

Проф.

 

ИСЭ

 

 

 

 

 

 

 

 

 

 

 

4

 

Петров П.П.

 

1959

 

Доцент

 

ВТ

 

 

 

 

 

 

 

 

 

 

 

 

R = R1 R2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ф.И.О.

 

Год

 

Должность

 

Каф.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

Петров П.П.

 

1959

 

Доцент

 

ВТ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

Пронин П.П.

 

1953

 

Проф.

 

ВТ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 2.4. Пересечение отношений

Произведение отношений

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

 

R1

 

 

 

R2

 

R = R1 × R2

 

 

 

 

 

 

 

 

 

 

Должность

 

 

Каф.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Зав.каф.

 

 

ВТ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Проф.

 

 

ВТ

 

 

Должность

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Доцент

 

 

ВТ

 

 

 

 

 

 

 

 

 

 

 

 

 

Зав.каф.

 

 

 

 

 

 

 

 

 

Каф.

 

=

Ст. преп.

 

 

ВТ

 

 

 

 

 

 

 

 

 

 

 

Проф.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ВТ

 

Ассистент

 

 

ВТ

 

 

 

 

 

 

 

 

 

 

 

Доцент

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ИСЭ

 

Зав.каф.

 

 

ИСЭ

 

 

 

 

 

 

 

 

 

 

 

Ст. преп.

 

 

 

 

 

 

 

 

 

Проф.

 

 

ИСЭ

 

 

 

 

 

 

 

 

 

 

 

 

 

Ассистент

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Доцент

 

 

ИСЭ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ст. преп.

 

 

ИСЭ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ассистент

 

 

ИСЭ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 2.5. Произведение отношений

38

Если отношение R1 имеет I записей и арность k1 , а R2 J записей и арность k2 , то декартовым произведением отношений R1 иR2 является множество I*J кортежей арности ( k1 k2 ) (см. Рис. 2.5. ).

Проекция отношения на компоненты

Операция проекции заключается в том, что из отношения R1 выбираются

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

R1

 

 

 

 

 

 

 

 

 

 

 

 

 

Ф.И.О.

 

Год

 

Должность

 

Каф.

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

Иванов И.И.

 

1960

 

Доцент

 

ВТ

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

Петров П.П.

 

1959

 

Доцент

 

ВТ

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

Федоров Ф.Ф.

 

1960

 

Ст. преп.

 

ИСЭ

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

Николаев Н.Н.

 

1977

 

Ассистент

 

ИСЭ

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

Пронин П.П.

 

1953

 

Проф.

 

ВТ

 

 

 

 

 

 

 

 

 

 

 

 

R

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ф.И.О.

 

Должность

 

 

 

 

 

 

 

 

 

1

Иванов И.И.

 

Доцент

 

 

 

 

 

 

 

 

 

2

Петров П.П.

 

Доцент

 

 

 

 

 

 

 

 

 

3

Федоров Ф.Ф.

 

Ст. преп.

 

 

 

 

 

 

 

 

 

4

Николаев Н.Н.

 

Ассистент

 

 

 

 

 

 

 

 

 

5

Пронин П.П.

 

Проф.

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 2.6. Проекция отношений

Смысл операции проекции заключается в выделении из отношения той информации, которая нам нужна. Эта операция используется в операторе SELECT языка SQL при выборке значений требуемых полей (см. Рис. 2.6. ).

Выборка отношения

Операция, заключающаяся в удалении некоторых записей в отношении на основе некоторого условия называется селекцией. Условие определяется как логическое выражение, включающее значения атрибутов. Например, селекция отношения R1 по формуле F: R F ( R1), где F – формула, образованная:

операндами, являющимися номерами столбцов;

логическими операторами И , ИЛИ , НЕ ;

арифметическими операторами сравнения , , , , , (см. 0).

39

R1

R

 

 

 

 

 

 

 

 

 

 

 

 

 

Ф.И.О.

 

Год

 

Должность

 

Каф.

 

 

 

 

 

 

 

 

 

 

 

 

1

 

Иванов И.И.

 

1960

 

Доцент

 

ВТ

 

 

 

 

 

 

 

 

 

 

 

 

2

 

Петров П.П.

 

1959

 

Доцент

 

ВТ

 

 

 

 

 

 

 

 

 

 

 

 

3

 

Федоров Ф.Ф.

 

1960

 

Ст. преп.

 

ИСЭ

 

 

 

 

 

 

 

 

 

 

 

 

4

 

Николаев Н.Н.

 

1977

 

Ассистент

 

ИСЭ

 

 

 

 

 

 

 

 

 

 

 

 

5

 

Пронин П.П.

 

1953

 

Проф.

 

ВТ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ф.И.О.

 

Год

 

Должность

 

Каф.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

Иванов И.И.

 

1960

 

Доцент

 

ВТ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

Петров П.П.

 

1959

 

Доцент

 

ВТ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

Пронин П.П.

 

1953

 

Проф.

 

ВТ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 2.7. Выборка отношений

2.2.ОСНОВНЫЕ ПОНЯТИЯ РЕЛЯЦИОННЫХ БАЗ ДАННЫХ

2.2.1. УЧЕБНАЯ БАЗА ДАННЫХ

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

в таблице CLIENTY (Клиенты) хранятся данные о клиентах, которые покупают товары компании (ID_CLN (номер клиента), COMPANY (название компании), ID_SLZH (номер служащего, отвечающего за связь с компанией), LIMIT_CREDIT (лимит кредита));

в таблице SLUZHASCHIE (Служащие) хранятся данные о служащих, работающих в компании ((ID_SLZH (номер служащего), FAMILY (фамилия служащего), NAME (имя служащего), AGE (возраст), MNGR (номер менеджера), ID_OFC (номер офиса), DLZH (должность), QUOTA (план), SALES (продажи служащего));

в таблице OFFISY (Офисы) хранятся данные об офисах компании, в которых

работают служащие ((ID_OFC (номер офиса), CITY (город), REGION (регион), MNGR (номер менеджера), TARGET (план продаж офиса), SALES (продажи офиса));

в таблице TOVARY (Товары) хранятся данные о товарах, продаваемых компанией ((ID_MFR (номер производителя), ID_PRD (номер товара), DESCRIPTION (описание), PRICE (цена), COUNT (количество товара на складе));

в таблице ZAKAZY (Заказы) хранится информация о заказах, сделанных клиентом, (ID_ORDER (номер заказа), DATE_ORDER (дата заказа), ID_CLN (номер клиента), ID_SLZH (номер служащего), ID_MFR (номер производителя), ID_PRD (номер продук-

та), COUNT (количество заказанного товара), PRICE (стоимость)).

Фрагмент учебной базы данных показан на 0, а более подробное описание приведено в Приложении.

2.2.2. ПЕРВИЧНЫЕ КЛЮЧИ

Поскольку строки в реляционной таблице не упорядочены, нельзя выбрать строку по ее номеру в таблице. В таблице нет «первой», «последней» или «три-

40

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

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

(ID_ORDER).

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