Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«BPwin ΠΈ Erwin. CASE-срСдства для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 34

Автор Маклаков Π‘Π΅Ρ€Π³Π΅ΠΉ Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€ΠΎΠ²ΠΈΡ‡

ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ шаблона Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π° для связи. МоТно ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ шаблон, Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹ΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, для ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ связи. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ Relationship Template Editor, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Relationship Override, примСняСмыС вмСсто стандартных шаблонов (Π° Ρ‚Π°ΠΊΠΆΠ΅ вмСсто шаблонов RI Type Override, Ссли ΠΎΠ½ΠΈ Π΅ΡΡ‚ΡŒ). Π¨Π°Π±Π»ΠΎΠ½Ρ‹ Relationship Override Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ вмСсто стандартных шаблонов, Ссли ΠΏΡ€ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ схСмы Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° опция Relationship Override.

ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ шаблона Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π° для сущности. ERwin позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ собствСнныС Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Ρ‹ Entity Override для любой сущности Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ. Π¨Π°Π±Π»ΠΎΠ½Ρ‹ Entity Override ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ вмСсто стандартных шаблонов, Π° Ρ‚Π°ΠΊΠΆΠ΅ вмСсто шаблонов RI Type Override ΠΈ Relationship Override, Ссли ΠΏΡ€ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ схСмы Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° опция Entity Override.

ERwin ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹, ΠΎΠ±Π»Π΅Π³Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ созданиС ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ΠΎΠ² ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€.

Для рСдактирования Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π° слСдуСт Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΏΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π²ΠΎ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΌ мСню ΠΏΡƒΠ½ΠΊΡ‚ Trigger. ΠŸΠΎΡΠ²Π»ΡΠ΅Ρ‚ΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ Table Trigger Viewer, Π² Π½ΠΈΠΆΠ½Π΅ΠΉ части ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ имССтся Π΄Π²Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ -Table Trigger ΠΈ Trigger Template, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΈ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для создания ΠΈ рСдактирования ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ΠΎΠ² ΠΈ шаблонов Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ΠΎΠ² ссылочной цСлостности (рис. 2.78).

BPwin ΠΈ Erwin. CASE-срСдства для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм - img_186.jpeg

Рис. 2.78. Π”ΠΈΠ°Π»ΠΎΠ³ Table Trigger Viewer

Рассмотрим ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ шаблон Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π° для сущности. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, бизнСс-ΠΏΡ€Π°Π²ΠΈΠ»Π° Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈ любом ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° (ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ° CustomerName Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ CUSTOMER, рис. 2.79) Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ SECURITY создавалась строка, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±Ρ‹ Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Π»ΠΎΡΡŒ ΠΏΡ€Π΅ΠΆΠ½Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ, Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π΄Π°Ρ‚Π° измСнСния ΠΈ имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄ΡˆΠ΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅.

BPwin ΠΈ Erwin. CASE-срСдства для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм - img_187.jpeg

Рис. 2.79. Π’Π°Π±Π»ΠΈΡ†Ρ‹ CUSTOMER ΠΈ SECURITY

Для создания Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π° слуТит Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Table Trigger Editor (вызываСтся ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ Table Trigger Π΄ΠΈΠ°Π»ΠΎΠ³Π° Table Trigger Viewer) (рис. 2.80).

BPwin ΠΈ Erwin. CASE-срСдства для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм - img_188.jpeg

Рис. 2.80. Π”ΠΈΠ°Π»ΠΎΠ³ Table Trigger Editor

Π Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉΡΡ список Table позволяСт Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ создан Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€. На рис. 2.80 это Ρ‚Π°Π±Π»ΠΈΡ†Π° CUSTOMER.

Π’ спискС Trigger отобраТаСтся имя Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π° (SecurWrite). Если имя Π½Π΅ Π·Π°Π΄Π°Π½ΠΎ, ERwin Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Ρ‹ ссылочной цСлостности ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Кнопки New, Rename ΠΈ Delete слуТат соотвСтствСнно для внСсСния Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π° Π² список, пСрСимСнования ΠΈ удалСния Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π° ΠΈΠ· списка.

Π“Ρ€ΡƒΠΏΠΏΠ° ΠΎΠΊΠΎΠ½ Π²Ρ‹Π±ΠΎΡ€Π° Trigger On позволяСт Π·Π°Π΄Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π° - ΠΏΡ€ΠΈ ΠΊΠ°ΠΊΠΎΠΌ событии Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ - ΠΏΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ Delete, вставкС Insert ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Update-строки Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. ΠŸΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ любого события ERwin автоматичСски Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ тСкст шаблона ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π° ссылочной цСлостности. ΠžΠΏΡ†ΠΈΠΈ Before ΠΈ After ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π·Π°Π΄Π°Ρ‚ΡŒ врСмя выполнСния Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π° - Π΄ΠΎ ΠΈΠ»ΠΈ послС SQL-ΠΊΠΎΠΌΠ°Π½Π΄ INSERT, UPDATE ΠΈΠ»ΠΈ DELETE. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½Π° рис. 2.80 создаСтся Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€, выполняСмый Π΄ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ обновлСния UPDATE для ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ CustomerName Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ CUSTOMER.

ΠžΠΏΡ†ΠΈΠΈ Table ΠΈ Row (поддСрТиваСтся ORACLE 7.x, SQLBase V6, Watcom V4 ΠΈ AS/400 V3) ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€. ΠŸΡ€ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Π² тСкст Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π° Π±ΡƒΠ΄ΡƒΡ‚ соотвСтствСнно Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ прСдлоТСния "FOR EACH TABLE" ΠΈΠ»ΠΈ "FOR EACH ROW".

Old - ссылка Π½Π° ΠΏΡ€Π΅ΠΆΠ½Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ поля, New - ссылка Π½Π° Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Π’ тСкстС шаблона Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ макрос %RefClause, ΠΏΡ€ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ тСкста Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π° ΠΏΠΎ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ REFERENCES. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ для Π½ΠΎΠ²ΠΎΠ³ΠΎ значСния установлСно имя "newl", для старого - "oldl".

Π’ спискС Π² Π½ΠΈΠΆΠ½Π΅ΠΉ части Π΄ΠΈΠ°Π»ΠΎΠ³Π° ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΈΠΌΠ΅Π½Π° Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ (Parent), Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ (Child), имя связи (Verb Phrase) ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ссылочной цСлостности (Integrity Rule) Π² случаС, Ссли рСдактируСтся Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ ссылочной цСлостности.

Π’ ΠΎΠΊΠ½Π΅ Template Code ΠΌΠΎΠΆΠ½ΠΎ ввСсти ΠΊΠΎΠ΄ шаблона Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π°. Код шаблона Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π°, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ бизнСс-ΠΏΡ€Π°Π²ΠΈΠ»Ρƒ рассматриваСмого ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° (создан Π½Π° основС шаблона Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π° ссылочной цСлостности), ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π½ΠΈΠΆΠ΅:

create trigger %TriggerName

%Fire %Actions(" or")

on %TableName

%RefClause

%Scope

/* ERwin Builtin %Datetime */ /* default body for %TriggerName */ begin

Insert into Security (OldName.NewName, UserUpdate, UpdateDate) values (:old1.CustomerName,:new1,CustomerName, User, Sysdate);

end;

/

Π’ ΠΎΠΊΠ½Π΅ Expanded Code отобраТаСтся ΠΊΠΎΠ΄ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π° (Π½Π° языкС Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ сСрвСра, Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ - Oracle 7.2), автоматичСски Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΠΎ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ:

create trigger SecurWrite BEFORE UPDATE OF

CustomerName

on CUSTOMER

REFERENCING OLD AS old1 NEW AS new1

for each row

/* ERwin Builtin Tue Jan 26 21:24:371999 7

/* default body for SecurWrite 7

begin

Insert into Security (OldName.NewName, UserUpdate, UpdateDate)

values (:old1.CustomerName,:new1.CustomerName, User, Sysdate);

end;

/

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ тСкст SQL-ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΈΡ… выполнСния (Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Oracle SQVPlus), ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π°Π±ΠΎΡ‚Ρƒ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π°.

SQL> insert into CUSTOMER (CustomerlD, CustomerName) values (20/lvanov');

1 row created.

SQL> update CUSTOMER set CuslomerName='Petrov' where CustomerlD=20;

1 row updated.

SQL> select* from SECURITY;

UPDATEDATE OLDNAME NEWNAME USERUPDATE

–––––––––––––––––––––––––––––––––––––––––––––––––––––––

27-JAN-99 Ivanov Petrov SCOTT

Π›ΡŽΠ±ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ CUSTOMER фиксируСтся Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ SECURITY, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ рСгистрируСтся ΠΏΡ€Π΅ΠΆΠ½Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ, Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π΄Π°Ρ‚Π° измСнСния ΠΈ имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠ²ΡˆΠ΅Π³ΠΎ измСнСния.

Кнопка Toolbox Π΄ΠΈΠ°Π»ΠΎΠ³Π° Table Trigger Editor Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ERwin Trigger Toolbox, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ созданиС тСкста шаблона Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π° (рис. 2.81).

BPwin ΠΈ Erwin. CASE-срСдства для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм - img_189.jpeg

Рис. 2.81. Π”ΠΈΠ°Π»ΠΎΠ³ ERwin Template Toolbox

Template Toolbox содСрТит Ρ‚Ρ€ΠΈ сСкции: слСва располоТСны списки, содСрТащиС макросы для Ρ‚Π°Π±Π»ΠΈΡ†, связСй, ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ ΠΈ макросы ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния. ВсС макросы Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с символа %. Бписок макросов ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. Если Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ макрос Π² ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ спискС, Π² ΠΎΠΊΠ½Π΅ Description отобразится синтаксис макроса ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΅Π³ΠΎ использования для связи ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌΠΈ Π² ΠΏΡ€Π°Π²ΠΎΠΉ сСкции Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°. Π’Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ связи, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Π² ΠΏΡ€Π°Π²ΠΎΠΉ части Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°, взяты ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, содСрТащСгося Π² Ρ„Π°ΠΉΠ»Π΅ MOVIES. ER1, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ находится Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Models.

Для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ макроса Π² тСкст шаблона достаточно Π΄Π²Π°ΠΆΠ΄Ρ‹ Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ Π»Π΅Π²ΠΎΠΉ клавишСй ΠΌΡ‹ΡˆΠΈ ΠΏΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ макросу Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· списков. ΠœΠ°ΠΊΡ€ΠΎΡ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² тСкст шаблона Π² ΠΎΠΊΠ½Π΅ Template Code Π΄ΠΈΠ°Π»ΠΎΠ³Π° Table Trigger Editor.

Для измСнСния шаблона Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π° ссылочной цСлостности (ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° ссылочной цСлостности) слуТит Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Trigger Template Editor (рис. 2.82).

BPwin ΠΈ Erwin. CASE-срСдства для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм - img_190.jpeg

Рис. 2.82. Π”ΠΈΠ°Π»ΠΎΠ³ Trigger Template Editor

Для измСнСния шаблона Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π° Π² спискС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ находится Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°, послС Ρ‡Π΅Π³ΠΎ Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅ Detach ->, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‚ шаблон, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ связан с Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΌ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ΠΎΠΌ. Π’ спискС Built-in Template ΠΈΠ»ΠΈ User Override Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ шаблон, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ слСдуСт ΡΠ²ΡΠ·Π°Ρ‚ΡŒ с Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΌ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ΠΎΠΌ. Π’Ρ‹Π΄Π΅Π»ΠΈΠ² имя шаблона, Π½ΡƒΠΆΠ½ΠΎ Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅ Attach Π½Π°Π΄ списком. ERwin свяТСт Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ шаблон с Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ΠΎΠΌ ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ Π΅Π³ΠΎ тСкст Π² ΠΎΠΊΠ½Π΅ Template Code. Для ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ связывания слСдуСт Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅ <- Rebind. Для создания Π½ΠΎΠ²ΠΎΠ³ΠΎ собствСнного шаблона Π½Π°Π΄ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Π΅Π³ΠΎ имя Π² ΠΎΠΊΠ½Π΅ Template Name ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Trigger Toolbox (ΠΊΠ½ΠΎΠΏΠΊΠ° Trigger Toolbox”) ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ тСкст шаблона Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π°. Кнопка Add Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ Π½ΠΎΠ²Ρ‹ΠΉ шаблон Π² список User Override.