Нормальные формы



жүктеу 4,63 Mb.
бет13/72
Дата11.02.2023
өлшемі4,63 Mb.
#41261
түріУчебное пособие
1   ...   9   10   11   12   13   14   15   16   ...   72
Копия Теория баз данных

2.2.2 Связь вида 1:М
Связь 1:М имеет место в случае, когда одной записи основной таблицы соответ­ствует несколько записей вспомогательной таблицы.
Пример 3.
Пусть имеются две связанные таблицы O2 и D2. В таблице O2 содержится информа­ция о видах мультимедиа-устройств ПЭВМ, а в таблице D2 — сведения о фирмах-произ­водителях этих устройств, а также о наличии на складе хотя бы одного устройства.
Таблица О2
* +

Код

Вид устройства

1

CD-ROM

2

CD-Recorder

3

Sound Blaster

Таблица D2
* + *



Код

Фирма-производитель

Наличие

1

Acer

да

1

Mitsumi

нет

1

NEC

да

1

Panasonic

да

1

Sony

да

2

Philips

нет

2

Sony

нет

2

Yamaha

да

3

Creative Labs

да



Таблица D2 имеет два ключевых поля, так как одна и та же фирма может произво­дить устройства различных видов, В примере фирма Sony производит устройства счи­тывания и перезаписи с компакт-дисков. Сопоставление записей обеих таблиц по полю «Код» порождает псевдозаписи вида: (1, CD-ROM, Aсег, да), (1, CD-ROM, Mitsumi, нет), (1, CD-ROM, NEC, да), (1, CD-ROM, Panasonic, да), (1, CD-ROM, Sony, да), (2, CD-Recorder, Philips, нет), (2, CD-Recorder, Sony, да) и т. д. Если свести псевдозаписи в новую таблицу, то получим полную информацию обо всех видах мультимедиа-устройств ПЭВМ, фирмах их производящих, а также сведе­ния о наличии конкретных видов устройств на складе.
2.2.3 Связь вида М:1
Связь М:1 имеет место в случае, когда одной или нескольким записям основной таблицы ставится в соответствие одна запись дополнительной таблицы.
Пример 4.
Рассмотрим связь таблиц O3 и D3. В основной таблице O3 содержится информа­ция о названиях деталей (named), видах материалов, из которого детали можно из­готовить (vidmat), и марках материала (marka). В дополнительной таблице DЗ со­держатся сведения о названиях деталей (named), планируемых сроках изготовле­ния (data) и стоимости заказов (price).


Таблица O3



named

vidmat

marka

деталь 1

чугун

марка1

деталь1

чугун

марка2

деталь2

сталь

марка1

деталь2

сталь

марка2

деталь2

сталь

маркаЗ

детальЗ

алюминий

-

деталь4

чугун

марка2

Таблица DЗ
* +



named

data

price

деталь1

4.03.2016

90

деталь2

3.01.2016

35

детальЗ

17.11.2016

90

Деталь4

6.12.2016

240



Связывание этих таблиц обеспечивает такое установление соответствия между записями, которое эквивалентно образованию следующих псевдозаписей: (деталь1, чугун, марка1, 4.03.2016, 90), (деталь1, чугун, марка2, 4.03.2016, 90), (деталь2, сталь, марка1, 3.01.2016, 35), (деталь2, сталь, марка2, 3.01.2016, 35), (деталь2, сталь, маркаЗ, 3.01.2016, 35), (детальЗ, алюминий, - , 17.11.2016, 90), (деталь4, чугун, марка2, 6.12.2016, 240).
Полученная псевдотаблица может быть полезна при планировании или принятии управленческих решений, когда необходимо иметь все возможные варианты испол­нения заказов по каждому изделию. Отметим, что таблица O3 не имеет ключей и в ней возможно повторение записей. Если таблицу ДЗ сделать основной, а таблицу 03 — дополнительной, получим связь вида 1:М. Поступив аналогично с таблицами 02 и. Д2, можно получить связь вида М:1. Отсюда следует, что вид связи (1:М или М:1) зависит от того, какая таблица является главной, а какая дополнительной.
2.2.4 Связь вида М:М
Самый общий вид связи М:М возникает в случаях, когда нескольким записям ос­новной таблицы соответствует несколько записей дополнительной таблицы.
Пример 5.
Пусть в основной таблице O4 содержится информация о том, на каких станках могут работать рабочие некоторой бригады. Таблица D4 содержит сведения о том, кто из бригады ремонтников какие станки обслуживает.


Таблица О4
* *+

rabota

stanok

Иванов А. В.

станок1

Иванов А. В.

станок2

Петров Н.Г.

станок1

Петров Н.Г.

станокЗ

Сидоров В.К

станок2

Таблица D4
* * +

obslujivanie

stanok

Голубев Б.С.

станок 1

Голубев Б.С.

станокЗ

Зыков А.Ф.

станок2

Зыков А.Ф.

станокЗ

Первой и третьей записям таблицы O4 соответствует первая запись таблицы D4 (у всех этих записей значение второго поля — «станок1»). Четвертой записи таблицы O4 соответствуют вторая и четвертая записи таблицы D4 (во втором поле этих запи­сей содержится «станокЗ»).
Исходя из определения полей связи этих таблиц можно составить новую таблицу c именем «О4+D4», записями которой будут псевдозаписи. Записям полученной таб­лицы можно придать смысл возможных смен, составляемых при планировании рабо­ты.
Таблица «CM+D4»



rabota

stanok

obslujivanie

Иванов А.В.

станок1

Голубев Б.С.

Иванов А.В.

станок2

Зыков А.Ф.

Петров Н.Г.

станок1

Голубев Б.С.

Петров Н.Г.

станокЗ

Голубев Б.С.

Петров Н.Г.

станокЗ

Зыков А.Ф.

Сидоров В.К

станок2

Зыков А.Ф.

Приведенную таблицу можно использовать, например, для получения ответа на вопрос: «Кто обслуживает станки, па которых трудится Петров Н.Г?». Очевидно, аналогично связи 1:1, связь М:М, не устанавливает подчиненности таб­лиц. Для проверки этого можно основную и дополнительную таблицу поменять мес­тами и выполнить объединение информации путем связывания. Результирующие таб­лицы «О4+D4» и «D4+О4» будут отличаться порядком следования первого и третье­го полей, а также порядком расположения записей.
Контрольные вопросы:
1. Что понимается под реляционной базой данных?
2. Перечислите элементы реляционной модели данных.
3. Объясните смысл терминов: первичный ключ; внешний ключ; составной ключ.
4. Что такое домен?
5. Охарактеризуйте все виды связей между таблицами.
6. Для каких целей используется первичный ключ?

Глава 3. Теоретические языки запросов
Операции, выполняемые над отношениями, можно разделить на две группы. Пер­вую группу составляют операции над множествами, к которым относятся операции: объединения, пересечения, разности, деления и декартова произведения. Вторую груп­пу составляют специальные операции над отношениями, к которым, в частности, от­носятся операции: проекции, соединения, выбора.
В различных СУБД реализована некоторая часть операций над отношениями, оп­ределяющая в какой-то мере возможности данной СУБД и сложность реализации запросов к БД. В реляционных СУБД для выполнения операций над отношениями используют­ся две группы языков, имеющие в качестве своей математической основы теорети­ческие языки запросов, предложенные Э.Коддом:

  • реляционная алгебра;

  • реляционное исчисление.

Эти языки представляют минимальные возможности реальных языков манипу­лирования данными в соответствии с реляционной моделью и эквивалентны друг другу по своим выразительным возможностям. Существуют не очень сложные правила пре­образования запросов между ними.
В реляционной алгебре операнды и результаты всех действий являются отношени­ями. Языки реляционной алгебры являются процедурными, так как отношение, явля­ющееся результатом запроса к реляционной БД, вычисляется при выполнении последовательности реляционных операторов, применяемым к отношениям. Операторы состоят из операндов, в роли которых выступают отношения, и реляционных опера­ций. Результатом реляционной операции является отношение,
Языки исчислений, в отличие от реляционной алгебры, являются непроцедурными, описательными, или декларативными) и позволяют выражать запросы с помощью предиката первого порядка (высказывания в виде функции), которому должны удовлетворять кортежи или домены отношений. Запрос к БД, выполненный с использованием подобного языка, содержит лишь информацию о желаемом результате. Для этих языков характерно наличие наборов правил для записи запросов. В частности, к языкам этой группы относится SQL.
При рассмотрении языков реляционной алгебры и исчислений будем использо­вать базу данных, включающую в себя следующие таблицы:

  • S (поставщики);

  • Р (детали);

  • SP (поставки).

Первичными ключами этих таблиц являются соответственно: P# (код поставщи­ка), D# (код детали) и составной ключ (P#, D#). Содержимое таблиц приведено на рис. 3.1. Каждое из полей P# и D# таблицы SP в отдельности является внешним клю­чом по отношению к таблице S и Р соответственно.
Предположим, что имена доменов (множество допустимых значений) совпадают с именами атрибутов. Исключение составляют атрибуты Gorod_P(город, в котором находится поставщик) и Gorod_D (город, в котором выпускается деталь), которые имеют общий домен: множество названий городов. Имя этого домена может быть, например, просто Город.
S



P#

Name

Status

Gorod_p

S1

Сергей

20

Москва

S2

Иван

10

Киев

S3

Борис

30

Киев

S4

Николай

20

Москва

S5

Андрей

30

. Минск

P



D#

Named

Tip

Ves

Goroda

Р1

гайка

каленый

12

Москва

Р2

болт

мягкий

17

Киев

РЗ

винт

твердый

17

Ростов

Р4

винт

каленый

14

Москва

Р5

палец

твердый

.12

Киев

Р6

шпилька

каленый

19

Москва

SP



P#

D#

Kol

S1

Р1

300

S1

Р2

200

S1

РЗ

400

S1

Р4

200

S1

Р5

100

S1

Р6

100

S2

Р1

300

S2

Р2

400

S3

Р2

200

S4

Р2

200

S4

Р4

300

S4

Р5

400



Рис.3.1. Таблицы поставщиков, деталей и поставок
Характеристики доменов как типов данных следующие: P# — строка символов длиной 5, Name — строка символов длиной 20, Status — цифровое дли­ной 5, Gorod_p— строка символов длиной 15, D# — строка символов длиной 6, Tip— строка символов длиной 6, Ves — цифровое длиной 5, Kol — цифровое длиной 5.

жүктеу 4,63 Mb.

Достарыңызбен бөлісу:
1   ...   9   10   11   12   13   14   15   16   ...   72




©g.engime.org 2024
әкімшілігінің қараңыз

    Басты бет
рсетілетін қызмет
халықаралық қаржы
Астана халықаралық
қызмет регламенті
бекіту туралы
туралы ережені
орталығы туралы
субсидиялау мемлекеттік
кеңес туралы
ніндегі кеңес
орталығын басқару
қаржы орталығын
қаржы орталығы
құрамын бекіту
неркәсіптік кешен
міндетті құпия
болуына ерікті
тексерілу мемлекеттік
медициналық тексерілу
құпия медициналық
ерікті анонимді
Бастауыш тәлім
қатысуға жолдамалар
қызметшілері арасындағы
академиялық демалыс
алушыларға академиялық
білім алушыларға
ұйымдарында білім
туралы хабарландыру
конкурс туралы
мемлекеттік қызметшілері
мемлекеттік әкімшілік
органдардың мемлекеттік
мемлекеттік органдардың
барлық мемлекеттік
арналған барлық
орналасуға арналған
лауазымына орналасуға
әкімшілік лауазымына
инфекцияның болуына
жәрдемдесудің белсенді
шараларына қатысуға
саласындағы дайындаушы
ленген қосылған
шегінде бюджетке
салығы шегінде
есептелген қосылған
ұйымдарға есептелген
дайындаушы ұйымдарға
кешен саласындағы
сомасын субсидиялау