Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка 1. Внешние модели данных.doc
Скачиваний:
7
Добавлен:
16.08.2019
Размер:
724.48 Кб
Скачать

Кортежи

Кортеж (Tuple) — упорядоченная совокупность значе­ний атрибутов из одного экземпляра сущности или, другими словами, — последовательность значений атрибу­тов из одной строки сложной таблицы. Соответственно ограничение на уровне (отдельного) кортежа — это ограничение, накладываемое на совместные значения опреде­ленных атрибутов каждого экземпляра сущности (каждой строки таблицы), а ограничение на уровне множества кор­тежей — это ограничение на совместные значения атрибу­тов из нескольких экземпляров одной сущности (несколь­ких строк таблицы). Ограничения должны проверяться при вставке нового экземпляра сущности в базу данных или при его изменении.

Совместное существование атрибутов на уровне корте­жа, заключающееся в том, что несколько необязательных атрибутов должны одновременно присутствовать (или од­новременно отсутствовать) в экземпляре сущности, уже иллюстрировалось на примере необязательного агрегата «паспорт», объединяющего обязательные атрибуты «се­рия», «номер», «выдан» (см. рис. 1.7). Сочетание необяза­тельного агрегата и обязательных атрибутов — удобный способ задания ограничений такого рода.

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

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

Пример. На рис. 1.9 при­веден пример, иллюстрирую­жают сведения о патентах на изобретения и об их авторах. Ограничение баланса заключается в том. что суммарный вклад всех соавторов неко­торого патента должен составлять 100% . Вклад (в процентах) некото­рого соавтора в некоторый патент (точнее, в создание изобретения, ко­торое защищается патентом) отражается значением атрибута «вклад».

На рис. 1.9, а экземпляры сущности «Патент» — конкретные патен­ты, а соавторы каждого патента — экземпляры многозначного агре­гата «Соавтор». Таким образом, ограничение баланса здесь наклады­вается на атрибуты из множества экземпляров агрегата, принадлежа­щих одному экземпляру сущности; это ограничение на уровне корте­жа. На рис. 1.9, б экземпляры сущности «Соавтор» — конкретные соав­торы различных патентов, а патенты каждого соавтора — экземпляры многозначного агрегата «Патент». Таким образом, ограничение балан­са здесь накладывается на атрибуты из множества экземпляров агре­гата, соответствующих одному патенту, и, следовательно, принадлежа­щих разным экземплярам сущности; это ограничение на уровне множе­ства кортежей.

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

Пример. На рис. 1.10 приведены модели, иллюстрирующие необхо­димость ограничений хронологии на уровне как отдельных кортежей, гак и множеств кортежей. Модели отражают историю пребывания со-грудников на различных должностях в различных подразделениях ор­ганизации; атрибуты моделей имеют следующий смысл:

«кодСотр» — уникальный код сотрудника;

«фиоСотр» — фамилия, имя, отчество сотрудника;

«нппПодр» — номер по порядку подразделения сотрудника, в ко­тором он работал (или работает по настоящее время) (1-е подразделение работы сотрудника, 2-е, 3-е и т. д.)1;

«кодПодр» — уникальный код подразделения;

«датаУхода» — дата ухода сотрудника из подразделения (отсут­ствие означает, что сотрудник работает в подразделении по настоящее время; дата поступления в подразделение совпадает с датой вступления в первую должность в этом подразделении);

«нппДолж» — номер по порядку должности сотрудника, которую он занимал в данном подразделении (1-я должность в 1-м подразделе­нии, 2-я, 3-я, ... , 1-я должность во 2-м подразделении, 2-я и т. д.);

«кодДолж» —уникальный код должности;

«датаВступ» — дата вступления сотрудника в должность. Экземпляры первой модели (см. рис. 1.10, а) соответствуют отдельным сотрудникам; для каждого сотрудника с помощью многозначного агре­гата «Подразделение» перечисляются подразделения, в которых ра­ботал сотрудник, а с помощью вложенного многозначного агрегата «Должность» — должности, которые занимал сотрудник в соответству­ющем подразделении. Экземпляры второй модели (см. рис. 1.10,6) со­ответствуют отдельным подразделениям; для каждого подразделения с помощью многозначного агрегата «Сотрудник» перечисляются со­трудники, которые когда-либо работали в данном подразделении, а с помощью вложенного многозначного агрегата «Должность» — долж­ности, которые при этом занимал сотрудник в данном подразделении.

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

  • для каждого сотрудника атрибут «датаУхода» может отсутство­вать только для текущего подразделения его работы, т.е. для послед­него по значению «нппПодр» подразделения, в котором он работал;

  • для каждого сотрудника последовательность дат вступления в должность («датаВступ») и дат ухода из подразделения («датаУхода»), упорядоченных по порядковым номерам подразделений («нппПодр»), а для одного подразделения — по порядковым номерам должностей («нп­пДолж»), должна быть неубывающей).

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

Непрерывность значений — еще один случай требо­вания согласованности атрибутов. Это требование отсут­ствия пропусков определенных значений для некоторого множества экземпляров атрибутов. Характерный пример представляют атрибуты типа «нпп» — «номер по поряд­ку» (см. рис. 1.5-1.7,1.10). Например, в модели на рис. 1.5 атрибуты «нпп» — это номера по порядку студентов в груп­пе и требуется, чтобы для каждой группы это был отрезок натурального ряда 1, 2,3,... и т. д. без пропусков. При уда­лении какого-либо студента из группы или добавлении но­вого происходит пересчет значений «нпп».

1Необходимость введения атрибутов типа «номер по порядку» вы­звана здесь с тем обстоятельством, что в моделях типа «сложная табли­ца» и других, рассматриваемых в следующих главах, отсутствуют воз­можности упорядочивания экземпляров как для сущности, так и для многозначных агрегатов. Если бы такая возможность существовала, то можно было бы просто хронологически упорядочить экземпляры соот­ветствующего многозначного агрегата, а значения «нпп» не хранить в виде отдельного атрибута, а вычислять как последовательный номер экземпляра в агрегате (о вычисляемых атрибутах см. ниже).

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