Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / Л-4(EXPRESS) / Конспект лекций.doc
Скачиваний:
66
Добавлен:
16.05.2015
Размер:
567.3 Кб
Скачать

Слайд 45. Локальное правило сущности

Пояснения

Объявление сущности определяет область экземпляров сущности. По умолчанию в эту область входят все экземпляры сущности, т.е. все возможные наборы значений атрибутов сущности. Иначе говоря, по умолчанию все экземпляры сущности являются корректными. Однако это не всегда соответствует нашим потребностям. Например, для сущности, выражающей самолет, не является корректным наличие в области экземпляров двух самолетов с одинаковыми бортовыми номерами. Точно так же, может потребоваться исключить из этой области все самолеты, имеющие год выпуска, раньше необходимого. Приведенные примеры устанавливают ограничения на область экземпляров сущности, делая некоторые наборы значений атрибутов сущности (т.е. экземпляры сущности) некорректными. Указанные ограничения на область экземпляров сущности определяются с помощьюлокальных правил сущности.

Локальные правила сущности касаются значений атрибутов сущности и определяют те значения или комбинации значений атрибутов сущности, которые требуются для корректности экземпляра сущности. Экземпляр сущности является корректным, когда им соблюдены все локальные правила сущности. В EXPRESSсуществует два вида локальных правил: правила уникальности и правила области значений.

Слайд 46. Правило уникальности

Пояснения

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

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

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

Слайд 47. Правила области значений

Пояснения

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

Правила области значений выражают условия вхождения некоторого экземпляра в область экземпляров сущности. В рамках сущности могут задаваться несколько таких правил. Каждое правило представляет собой одно из условий. Условием выполнения правила является присутствующее в правиле выражение, которое дает в результате либо значение логического типа данных, т.е. FALSE(ложь),TRUE(истина) илиUNKNOWN(неопределенность), либо неопределенное значение «?». Правило не нарушается, если выражение дало в результате любое значение, кромеFALSE. В выражении правила обязательно должны присутствовать ссылки на ключевое словоSELF, выражающие проверяемый экземпляр сущности, и/или ссылки на атрибуты сущности, выражающие значения атрибутов проверяемого экземпляра сущности. Экземпляр входит в область экземпляров сущности, если не нарушено ни одно из правил области значений, т.е. ни одно из правил не дало в результатеFALSE.

Все правила области значений сущности задаются в единой конструкции WHERE. На приведенном примере у сущности «citizen» определено правило области значений, задающее условие, по которому значения атрибута «age» для всех экземпляров сущности должны быть больше либо равны 16. Правило содержит необязательную метку «wr1», а также выражение для проверки правила - «age>=16». Правило области значений может одновременно затрагивать несколько атрибутов сущности.