Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Локальное правило сущности



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

 

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

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

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

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



Правила области значений

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

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



78
79


УПРАВЛЕНИЕ ЖИЗНЕННЫМ ЦИКЛОМ ПРОДУКЦИИ
Глава 8. СТАНДАРТ STEP



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








Наследование

В языке EXPRESS сущность определяется как класс объектов реального мира с общими характеристиками. Таким классом, например, могут быть люди, причем каждый человек имеет имя, фамилию и неотрицательный возраст. Кроме того, существуют подклассы, где объекты помимо характеристик класса обладают еще некоторым набором характеристик, принадлежащих только данному подклассу. Например, для сущности «человек» может существовать подкласс «работник», который является человеком и обладает всеми свойствами человека, но имеет и специфические свойства, скажем, должность. Должность есть не у каждого чело­века, а только у тех, кто работает. Таким образом, экземпляры сущности «работ­ник» составляют подмножество экземпляров сущности «человек».

 

Поскольку «человек» и «работник» обладают частично совпадающими свой­ствами, то в информационной модели при их объявлении по отдельности при­шлось бы дублировать все обозначения свойств их сущностей. Для того чтобы избежать этого, в EXPRESS введено отношение наследования. Оно устанавли-
вает связь между сущностями, при которой области экземпляров одних сущнос­тей, называемых потомками, становятся подмножествами областей экземпляров других сущностей (предков). Другими словами, потомки являются специализа­ циями предков. Тогда «работник» будет потомком сущности «человек». Это по­зволяет объявлять свойства только один раз: все общие свойства для человека и работника определяются в сущности «человек», а специфические для работника — в сущности «работник».

В приведенном примере присутствуют две сущности: «person» (человек) и «employee» (работник). Между ними установлено отношение наследования, то есть область экземпляров сущности «employee» (потомка) является подмноже­ством области экземпляров сущности «person» (предка). Предок имеет три атри­бута: «firstjiame» (имя), «last_name» (фамилия) и «age» (возраст), а также одно ограничение, определяющее, что значение «age» неотрицательное. Потомки полу­чают (наследуют) все свойства (атрибуты и ограничения) предков. В данном слу­чае сущность «employee» наследует три атрибута и одно ограничение сущности «person». Кроме того, потомки могут переопределять некоторые унаследованные свойства, а также добавлять к ним новые. Сущность «employee» не переопределя­ет никаких родительских свойств, но добавляет два новых: атрибут «title» (долж­ность) и ограничение, обозначающее, что значение атрибута «age» должно быть не меньше 16. При этом потомок все равно остается подмножеством предка, а экземп­ляр потомка (работник) всегда будет являться и экземпляром предка (человеком).

Существуют два способа задания отношения наследования: путем специфика­ции потомков в объявлении предка или путем спецификации предков в объявле­нии потомка. В данном случае применяется второй способ: в объявлении потомка (сущности «employee») используется конструкция SUBTYPE OF, предназначен­ная для спецификации предка. После нее в скобках перечисляются все предки данной сущности (здесь только сущность «person»).

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



Интерфейс между схемами

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

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



80
81


УПРАВЛЕНИЕ ЖИЗНЕННЫМ ЦИКЛОМ ПРОДУКЦИИ
Глава 2. СТАНДАРТ STEP










Рис. 33. Пример реализации интерфейса между схемами в языке EXPRESS.

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

Есть два типа интерфейсов между схемами: использование (USE) и ссылка (REFERENCE). Рассмотрим приведенный выше рис. 33. Пусть существуют схе­ма «people» (люди), содержащая сущность «person» (человек), а также два вари­анта схемы «футбол», включающие сущность «player» (игрок). В первом вари­анте («football_use») объявлен интерфейс использования «people». Это дает воз­можность использовать строительные блоки схемы «people» в «footballuse» и объявить сущность «player» в качестве потомка сущности «person». Во втором случае («football_ reference») назван интерфейс ссылки, представляющий собой ограниченный вариант интерфейса использования. Основная разница между двумя типами интерфейсов состоит в возможности применения сущностей чу­жой схемы. При интерфейсе использования такие сущности являются полно­правными членами данной схемы и могут участвовать, например, в отношениях наследования (сущность «person»). Интерфейс ссылки задействует сущности чужой схемы только в качестве представления атрибутов сущностей данной схемы. В нашем примере сущность «person» схемы «people» используется в объявлении атрибута «who_is».

Интерфейс между схемами задается с помощью ключевых слов USE или REFERENCE, после которых следует ключевое слово FROM, а за ним — имя и, если необходимо специфицировать интерфейс не ко всей схеме, а к отдельным ее компонентам, перечень компонентов чужой схемы.

Пример информационной модели

Далее рассмотрен пример небольшой информационной модели, задающей пред­метную область библиотеки. Данная модель состоит из двух схем: «people» (люди) и «library» (библиотека).

82
SCHEMA people;

ENTITY author;

firstname: STRING;

middle_name: OPTIONAL STRING;

lastname: STRING;

UNIQUE

url: first_name, last_name;

END_ENTITY; END_SCHEMA;

SCHEMA library;

USE FROM people;

— This schema uses another schema to represent a library CONSTANT

start_year: INTEGER: = 1950; now: INTEGER: = 2002; ENDCONSTANT;

TYPE months = ENUMERATION OF (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec); ENDJTYPE;

TYPE journalnumber = INTEGER; WHERE

positive: SELF > 0; END_TYPE;

TYPE issuevariants = SELECT (months, joumalnumber);

END_TYPE; ENTITY issue;

name: STRING;

year: INTEGER;

pages: INTEGER;

value: INTEGER; DERIVE

price: REAL ': = pages*value; WHERE

wrl: (year > = start_year) AND (year < = now);

wr2: pages > 0; ENDENTITY;

ENTITY book SUBTYPE OF (issue); bookauthors: SET [1:? ] OF author; END_ENTITY;

ENTITY journal SUBTYPE OF (issue); journalissue: issuevariants; END_ENTITY; ENDSCHEMA.

83


УПРАВЛЕНИЕ ЖИЗНЕННЫМ ЦИКЛОМ ПРОДУКЦИИ
Глава 2. СТАНДАРТ STEP



     
 


В схеме «people» определена единственная сущность «author» (автор), кото­рая используется для построения схемы «library». «AuthoD> имеет три явных ат­рибута: «firstname» (имя), «middle_name» (отчество) и «lastname» (фамилия); все они представлены строковым типом «STRING», а атрибут «middle_name» объявлен как необязательный (OPTIONAL). На область экземпляров сущности «author» наложено ограничение в виде правила уникальности «url», требующего, чтобы комбинации значений обоих атрибутов сущности были уникальными для всех экземпляров.

Схема «library» использует строительные блоки схемы «people» через конст­рукцию «USE FROM». В «library» задано три сущности: «issue» (издание), «book» (книга) и «journal» (журнал), причем две последние являются потомками первой и наследуют все ее свойства.

Сущность «issue» содержит четыре явных атрибута: «name» (название), «year» (год выпусках «pages» (количество страниц) и «value» (ценность издания; не пу­тать с ценой). Кроме того, у нее есть один вычисляемый атрибут «price» (цена в денежном эквиваленте), значение которого выражено произведением значений атрибутов «pages» и «value». На область экземпляров сущности «issue» наложе­ны два ограничения в виде правил области значений (WHERE-правил). Одно из них — «wr2» — требует, чтобы значение атрибута «pages» было больше нуля для каждого экземпляра сущности. Другое — «wrl» — чтобы атрибут «year» не был меньше минимального значения, определенного константой «start_year» (началь­ный год), но и не превышал максимального значения, выраженного константой «now» (текущий год). Последнее ограничение означает, что в библиотеке должны быть книги, выпущенные в определенный промежуток времени: в данном случае не ранее 1950 г., но и не позже 2002 г.

Сущность «book» наследует все атрибуты и ограничения сущности «issue» и дополнительно определяет атрибут «bookauthors» (авторы книги), имеющий в качестве своей области значений множество экземпляров сущности «author». Это множество не допускает повторений, содержит по крайней мере один элемент и не ограничено сверху.

Сущность «journal» наследует все атрибуты и ограничения сущности «issue» и дополнительно определяет атрибут «journal_issue» (выпуск журнала). Для за­дания области значений этого атрибута в схеме определены сразу три поимено­ванных типа. Предполагается, что выпуск журнала может быть указан либо по­рядковым номером, либо месяцем. Для представления данных вариантов в схеме обозначены два поименованных типа: соответственно «journal_numbeD> (номер журнала; объявлен на основе простого типа «INTEGER» с дополнительным тре­бованием неотрицательности значений) и «months» (месяцы; определен на основе составного типа «перечисление» (ENUMERATION), содержащего обозначения всех двенадцати месяцев года). Кроме того, задан тип «issuevariants» (варианты обозначения выпуска), который как раз и представляет область значений атрибу­та «journalissue» и выражен составным типом «выбор» (SELECT) на основе ти­пов «joumal_number» и «months».

В информационной модели также присутствуют комментарии: встроенный находится в схеме «people», а хвостовой приведен в схеме «library».

84
S.3.7. Основные принципы EXPRESS - G

Помимо основной текстовой формы язык EXPRESS имеет и графическое пред­ ставление. Оно называется EXPRESS - G и определено в том же самом разделе STEP, что и сам язык — ISO 10303-11. EXPRESS-G поддерживает не все компо­ненты языка EXPRESS, а лишь некоторое их подмножество, в которое включе­ны типы данных, сущности, связи между сущностями (в том числе и отношение наследования) и интерфейсы между схемами. EXPRESS-G не обладает возможно­стями для представления ограничений на области значений типов и области экзем­пляров сущностей, а также не поддерживает спецификацию алгоритмов EXPRESS (то есть функций и процедур) и глобальных правил.

Графическое представление EXPRESS-G состоит из знаков, с помощью которых выражается информационная модель. В EXPRESS-G существует три типа знаков:

> знаки определения;

^ знаки связи;

^ знаки композиции.

Знаки определения

Знаки определения EXPRESS-G используются для обозначения поддерживае­мых понятий языка EXPRESS: простых, составных и определяемых типов данных, сущностей и схем.

Простые типы языка EXPRESS указываются прямо­угольниками, у которых правая сторона представлена двойной линией. Внутри прямоугольни­ка находится имя простого типа.

Составные типы языка EXPRESS обозначаются пунк­тирными прямоугольниками, у которых боковые стороны ^ле­вая для типа «SELECT» и пра­вая для «ENUMERATION») выражены двойной линией. Внутри прямоугольника напи­сано имя типа. EXPRESS-G не содержит средств для представ­ления элементов типа

«ENUMERATION», а элементы типа «SELECT» показываются путем обозначения связи между ними и типами или сущностями, участвующими в их формировании.

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

 

Представление сущности в EXPRESS-G аналогично представлению опреде­ляемого типа, однако прямоугольник обозначается обычными линиями.


УПРАВЛЕНИЕ ЖИЗНЕННЫМ ЦИКЛОМ ПРОДУКЦИИ
Глава i. СТАНДАРТ STEP



Наконец, EXPRESS -схема обозначается прямоугольником, который раз­делен на две части. В верхней находится имя схемы, а нижняя часть остается пустой.













Знаки связи

Знаки связи EXPRESS-G предназначены для обозначения различных типов связей между строительными блоками EXPRESS-схемы. Они представлены лини­ями, соединяющими знаки определения. Вид линии задает конкретный тип связи:

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

Жирная линия показывает связи между сущностями в рамках отношения наследования. Она соединяет сущности-предков с сущностями-потомками.

Простая линия демонстрирует в EXPRESS-G все остальные типы связи.

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

Поскольку EXPRESS-схемы бывают достаточно большими, то и представля­ющие их диаграммы на языке EXPRESS-G могут занимать много места и не уме­щаться на одной странице. В этом случае связанные между собой строительные блоки модели часто оказываются на различных страницах. Знаки композиции ис­пользуются для задания ссылок между страницами в EXPRESS-G-модели и для спецификации интерфейса между двумя EXPRESS-схемами.

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




Задание интерфейса типа USE

Рис. 35. Пример диаграммы с использованием знаков композиции в языке EXPRESS.
На первой странице находится сущность «person», имеющая атрибут «name», а представление атрибута—определяемый тип «label» — присутствует на второй странице. Знак композиции на странице 1 содержит номер страницы, а также имя элемента, на которые идет ссылка, и номер ссылки на данную страницу (на случай, если на нее есть несколько ссылок). Знак композиции на странице 2 имеет номер страницы, на которой он находится, номер ссылки на эту страницу и список стра­ниц, ссылающихся на данный строительный блок информационной модели (в дан­ном случае он содержит лишь одну страницу).

При спецификации интерфейса между схемами в качестве знака композиции выступает скругленный прямоугольник, заключенный в обычный прямоугольник. Для интерфейса типа USE внешний прямоугольник задается обычной линией, а для интерфейса типа REFERENCE — пунктирной. Внутри скругленного прямоуголь­ника находятся имя чужой схемы и имя строительного блока, с которым устанавли­вается интерфейс. Данный знак композиции используется, когда какая-либо сущ­ность данной схемы имеет в качестве представления своего атрибута сущность чу­жой схемы (например, сущность «line» и ее атрибут «start» на рис. 35).



86
87


УПРАВЛЕНИЕ ЖИЗНЕННЫМ ЦИКЛОМ ПРОДУКЦИИ
Глава 2. СТАНДАРТ STEP



Диаграмма уровня сущности

Диаграммы уровня сущности предназначены для спецификации отдель­ной EXPRESS -схемы. Они содержат строительные блоки, присутствующие в схеме, то есть типы данных и сущности, а также связи между ними. На рис. 36 представлена EXPRESS-G-диаграмма уже рассмотренной (только в текстовом виде) схемы «library».

Три сущности, объявленные в схеме «library», показаны соответствующими знаками определения. Отношение наследования между ними обозначено жирной линией, направленной от сущности «issue» (предок) к сущностям «book» и «journal» (потомки).

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

Область значений атрибута «book_authors» сущности «book» определена в другой схеме, что отмечено соответствующим знаком композиции, обозначающим имя схемы «people» и имя сущности «author». Факт, что сам атрибут представлен множеством, указан меткой знака связи «S[ 1:? ]»(S—от слова SET, то есть множе­ство). Обозначения других агрегированных типов: массив — A (ARRAY); список — L (LIST); мультимножество — В (BAG).

Атрибут «journal_issue» сущности «journal» представлен определяемым типом «issue_variants», заданным на другой странице модели, что показано соответствую­щим знаком композиции. Тип «issue_variants» возник на основе составного типа «SELECT» (это отмечено пунктирным прямоугольником с двойным левым краем), в область значений которого входят составной тип «ENUMERATION» (представ­лен определяемым типом «months») и определяемый тип «journalnumber», задан­ный на основе простого типа «INTEGER».












Диаграмма уровня схемы

Диаграммы уровня схемы используются для представления нескольких EXPRESS-схем и связей между ними. Они состоят только из самих схем, а также интерфейсов между схемами и не включают содержимое схем (сущности, типы и т. д.).

Связи между схемами представлены знаками связи EXPRESS-G, причем тип «USE» обозначается обычной линией, a «REFERENCE»—пунктирной. Основным является направление связи между схемами от использующей схемы к используе­мой. Если интерфейс определен не для всех строительных блоков схемы, а лишь для некоторых из них, то их имена пишутся около стрелки, указывающей на связь.

Ея рис. 37 дан пример, содержащий три схемы: «geometry», «top» и «bottom». Две последних имеют интерфейс с первой. Схема «top» определяет интерфейс типа «использование» со всей схемой «geometry», а схема «bottom» — для сущно­стей «curve» и «point», объявленных в схеме «geometry», а также интерфейс ссыл­ки для сущности «surface».

Рис. 37. Пример диаграммы уровня схемы.


Поделиться:



Последнее изменение этой страницы: 2019-03-29; Просмотров: 362; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.044 с.)
Главная | Случайная страница | Обратная связь