Зертханалық жұмыс №5. ERwin программысы. «Қойма» ДБ физикалық моделін құру. ДБ сұлбасын генерациялау.

Ж ұмыстың мақсаты:

  • CASE ролінің игерушілігі нормализациясы және денормализациядағы – Erwin амалдары;
  • Берілген тапсырманың физикалық моделінің құрылымы;

Тапсырмалар:

Erwin амалдарына сәйкестендірілген таварларды жеткізудің физикалық модельдерін құру

Теориялық мәлімдеу

Сілтелетіе тұтастықтың ережесі – бұл деректерді қолданудың бизнес-тартібін көресететін логикалық. Олар кесте жолдарын өзгерткенде,қайта тұрғызғанда және өшіргенде СУБД қандай амалдарды орындау керектігін анықтайды (мәннің экземпляры).ІӘрекет деректер базасын қолдайтын тригерлердің автоматты генерациясының алдында,тапсырылған амалдардың соңында қолданылады.

Логикалық моделді анықтаудың амалдарымен ережелері түрлері келесідегідей болады:

  • RESTRICT –мәннің экземпилярын өзгертуге,қайта тұрғызуға және өшіруге тиым салу.
  • CASCADE – ата-аналық экземпляр ошіруін сiлтейтiн мәндердiң дочернейдiң барлық экземплярларын ата-аналық экземпляра мәнінен алып тастау.
  • SET NULL –ата-аналық мән экземпилярын өшіру алдында дочерней мәнінің барлық экземпилярларының ішкі кілттік атрибуттары  NULL мағынаны білдіреді.
  • NONE – ешқандай амалдарды қолданбайды.

Бұл ережелер ата-аналық  және дочерней мәндердің экземпилярларын қайта тұрғызңанда, өзгерткенде және өшіргенде қолданылады. Сондай жолмен әрбір байланыс алты ереженің ішінен   «RI Actions» барлық аттарын біріктіретін, жолдарды қосатын жолдарды игеру керек. Erwin диограммасына байланыс қосылу алдында кеңейтілуі орнатылатын редакциялауға болатын ережелер жиынтығы.

Деректер нормализациясын жүзеге асыру лоикалық моделдерді қайталау этаптарын аяқтаудан тұрады. Erwin нормализация алгоритмін толық қолданбайды және нормализацияны автоматты түрде жүзеге асырмайды,бірақ оның мүмкіндіктері деректер моделінің нормализациясын құруға жеңілдетіледі:

  • Erwin мәндердің аттарын және атрибуттарын қолданылуды қайталауды белгілейді;
  • Logical Only опцию редакторының көмегімен қосып,мәнді,атрибутты,кілтті және доменды тек қана моделдің логикалық деңгейінде құруға болады.Ондай обьектілер деректер базасының генерацияланбайды және моделдің физикалық деңгейінде көрсетілмейді. Кесте, колонки, домены және индекстерд моделдің физикалық деңгейінде құруға болады(Physical Only опциясы).

Жұмыстың орындалу реті

  1. Берілген қағидалар сілтемесініңресми тұтастығы
  • Деректер моделінің логикалық деңгейінде болып, Покупатель мен Договор мәндерінің арасындағы байланысын«тұжырымдауды» тышканның көмегімен белгілеңіз.Одан кейін тышканның оң жақ батырмасын басу арқылы жанама менюдегі Relationship Properties (байланыс редактор ) пунктін таңдаңыз.
  • Редактор терезесіндегі Relationship байланысынан RI Actions қосымша бетіне өту.«Покупатель – Договор» байланыс үшiн сiлтеме тұтастықтың кеңейтілу ережелерімен танысыңыздар.Егер шарт онымен деректер базасында болса, бұл алып тастауға жол бермейтiнiн бiлдiредi, немесе сатып алушының өзгерiсi, сонымен бiрге сатып алушы шарттың енгiзуi жөн-жобасыз немесе бұрыннан болмайтын сатып алушыда келісімге келге келеді. Бiз сонымен шарт бойынша нақты сатып алушы үшiн ғана шарт орындалмақ.
  • Барлық басқа байланыстар үшiн сiлтеме тұтастықты ереженiң құрылуын талдаңыз.
  • Ереже,алдыңғы тізімнен біа мәнісін таңдап,оны өзгертіп кеңейтіліміне байланысты иемдену.
  1. Деректер нормализациясы
  • Моделден Пакупатель мәндерінің  ТЕЛ атрибуттарымен көптеген қатынастары белгілі. Покупатель атрибуттарының  мәні барлық сәйкес атомарнда болуы керек, болған бiрiншi қалыпты пiшiндi бұзушылық болып табылған бiрнеше телефон нөмiрлерi иемдене алады. Сондықтан ТЕЛ атрибутына бөлек мән  таңдау керек
  • Келесе атрибуттарды қабылдайтын Телефон мәнін енгізіңіз: КОД_ТЕЛ (алғашқы кілт, тип – number) и ТЕЛ (тип – string).
  • Покупатель мен Телефон байланыстарын біріктіріп мәндерін байланыстырыңыз. One or More (P) байланысын қуатты орналастырып, имеет- байланысына ат беріңіз
  1. Моделдің физикалық деңгейіне өту
  • Ашылған тізімдегі құралдар панелінің оң жағында орналасқан Physical пунктін таңдаңыз.

Erwin келесi негiз бойынша логикалық үлгiнi негiздегi нақты СУБД үшiн  физикалық үлгi өндiру автоматтыты түрде генерациялайды: мән болып-кесте қалыптасады, атрибуты – столбцами, а ключи – индексами.

  1. таңдау Сервері
  • Database | Choose Database командасын орындау.
  • Erwin/ERX – Target Server диолог терезесінде Access – 2000 серверінде көрсету.
  • Бұдан басқа, мұнда деректер типінің кеңейтілуімен NULL шартынна сәйке қолданылуы бойынша жасалуын көрсетеді .. Диалогктiк терезенiң осы уақыттағы кейбiр опциялар сервердiң таңдаған түрлерiнен байланысты болады.
  • серверді таңдағаннан кейін ОК батырмасын басыңыз.
  1. Деректердің денормализациясы

«Көптен — көпке» байланысы моделінің екi түр болады: Товар – Договор и Товар – Накладная,физикалық деңгейдегi рұқсат болуы керек . Деректер байланысың нәтижесі 2.1 кестеде көрсетілген.

Результат разрешения связей «көптен- көпке»

Связь

многие-ко многим

Имя ассоциативной таблицы

 

Новые колонки ассоциативной таблицы Тип данных

 

Товар-Договор Поставка_План СРОК_ПОСТ Datetime
КОЛ_ПОСТ Number
СУММА_ПОСТ Number
Товар-Накладная Отгрузка КОЛ_ОТГР Number
СУММА_ОТГР Number

Байланыстарды рұқсат «көптен — көпке» физикалық деңгейге өтуде автоматты түрде iске асырылады немесе арнаулы шебер Many Relationship Transform Wizard көмегімен орындалады.

  • Осы уакыттағы «Товар – Договор» ерекше байланысын шакыру үшін тышканның нұскауымен белгілеу.Одан кейін тышканның оң жақ батырмасын басып,жанама менюден Create Association Table ( ассоциативті кестесін құру)пунктін таңдаңыз. Экранға оның тағайындауы туралы мастердің бiрiншi диалог мәтiні пайда болады.
  • Далее батырмасын басыңыз. Ассоциативті кестесі берілген екінші диалог мастеры экранда пайда болады.
  • Table Name(кесте атауы) жолына — Поставка_План атауын енгізіңіз. Table Comment жолына мына сөзді енгізіңіз: келісім шарт бойынша тауарды жеткізу туралы ақпарат енгізу.
  • Далее батырмасын басыңыз.Экранда Transform Name және Transform Definition көрсетілген келесі диалог мастеры пайда болады.
  • Далее кнопкасын басыңыз одан кейін Готово.
  • Моделде Поставка_План жаңа кестесі құрылады,Товар және договор идентификациясы арқылы біріктіріледі.
  • Жаңа кестені үш колонкамен толықтыру қажет (см. табл. 2.1).Ол үшін тінтуір нұсқауымен  Поставка_План кестесін ерекшелеңіз. Одан соң тінтуірдің оң жақ батырмасын басып контекстік мәзірден Columns пунктін таңдаңыз .
  1. Қалауыңыз бойынша 2.1.кестесіне сәйкес үш жаңа колонка енгізіңіз.

Өрістің типімен көлемін түзету

          В полученной модели необходимо скорректировать типы и размеры полей для заданной СУБД Access в соответствии с табл. 2.2.

Таблица 2.2.

Типы данных и размеры колонок таблиц физической модели

Таблица
Колонка  Тип данных
Покупатель КОД_ПОК Integer
ИНН
Long Integer
НАИМ_ПОК Text (25)
АДРЕС_ПОК Text (40)
НОМ_РСЧ Text (20)
Банк Text (25)
Товар КОД_ТОВ Integer
НАИМ_ТОВ Text (20)
ЕИ Text (20)
ЦЕНА Currency
СТАВКА_НДС Integer
Склад КОД_СК Integer
НАИМ_СК Text (20)
АДРЕС_СК Text (30)
ОТВ_ЛИЦО Text (30)
Договор НОМ_ДОГ Integer
ДАТА_ДОГ Date/Time
СУММА_ДОГ Currency
Накладная НОМ_НАКЛ Integer
ДАТА_ОТГР Date/Time
СУММА_НАКЛ Currency
Телефон КОД_ТЕЛ Integer
ТЕЛ Text (15)
Поставка_План
СРОК_ПОСТ Date/Time
КОЛ_ПОСТ Integer
СУММА_ПОСТ Currency
Отгрузка КОЛ_ОТГР Integer
СУММА_ОТГР Currency
  • Ол үшін бас Model | Column меню пунктінен Columns редактор калонкасын шақырыңыз.
  • Редакцияланатын кесте Table тiзiмде таңдайды. Access бетбелгiде кестенiң әр бағаны үшiн кестеге сәйкес деректер кестеден 2.2 мән Access Datatype тiзiмнен  таңдап анықтаңыз
  • Бұдан басқа,мұнда бос өрiс мәндерiнiң ықтималдылығымен анықталған (Null Option аның топтары) NULL опциясы қояды.
  1. Валидации тапсырмасының тәртібі

          7.1. Ықтимал мәндердi тiзiмнiң тапсырмасы

          Рұқсат етілген мәндер тізімі Товар кестесіндегі СТАВКА_НДС жолы үшін пәндік облыстың каралған үйлесімділігі 0, 10 и 18 %.

  • Columns пунктін таңдап контекстік менюге Товар кестесін шақырыңыз.
  • Редактор терезесіндегі Column жолындағы ереже қойылатын – СТАВКА_НДС калонканы таңдаңыз.
  • СУБД таңдалған  – Access бумасына кіріңіз.
  • ашылған тізімнің оң жағында орналасқан  Valid батырмасын шертіңіз .
  • Validation Rules диологындағы New батырмасын басыңыз.
  • New Validation Rule диологындағы Logical  жолына– Проверка ставки НДС   ереже атын енгізіңіз. ОК кнопкасын басыңыз.
  • General бумасына еніңіз. Type  группасына  Valid Value List опциясын енгізіңіз.
  • Valid Value жолының бірінші жолына 0. Екінші және үшінші жолдарына қалған екі мәнді енгізіңіз: 10 и 18.
  • Тексеріңіз,редактор терезесінің жоғарғы бөлігінде жол пайда: Проверка ставки НДС (Validation Name) IN (0, 10, 18) (Validation Rule).
  • ОК басыңыз. Columns редактора терезесінде Access бумасында Valid жолында – «Проверка ставки НДС»деп құрылған ережелер атауы пайда болды

          7.2Кеңейтілім бойынша мән,беріп меншіктеу

Договор кестесіндегі ДАТА_ДОГ жолына сәйкес кеңейтілімі

Жанама менюді шақырып Договор кестесіндегі Columns пункт таңдаңыз.

  • Редактор терезесіндегі Column жолындағы – ДАТА_ДОГ ережесі қойылатын калонканы таңдаңыз
  • Access бумасындағы ашылған тізімнің оң жағында орналасқан Default батырмасын басыңыз.
  • Default/Initial Values диолог терезесіндегі New   батырмасын шертіңіз.
  • New Default Value диологына Logical жолына– Текущая дата ереже атын енгізіңіз.. ОК батырмасын басыңыз.
  • Access бумасына Server Value жолына – Access Default енгізіңіз Date()ю
  • ОК басыңыз. Columns редактора терезесінде Access бумасында Default жолында – «Текущая дата»  деп құрылған ережелер атауы пайда болды.
    • Енгiзетiн мәндердi тексеру ережелерiнiң тапсырмасы

Деректерге сәйкес жолдар 0-ден аз мінге ие бола алмайды,сондықтан тауар кестесіндегі  ЦЕНА жолына  мәндер тексеру ережесi құрамыз.

  • Жанама менюдегі Товар кестесін шақырып Columns пунктін таңдаңыз.
  • Редактор терезесіндегі Column жолындағы ереже қойылатын –ЦЕНА батырмасын басыңыз..
  • Access бумасындағы ашылған тізімнің оң жағында орналасқан  Valid батырмасын шертіңіз .
  • Validation Rules диологынан New батырмасын басыңыз
  • New Validation Rule диологындағы Logical жолына Проверка цены- атын енгізіңіз. ОК батырмасын басыңыз.
  • General бумасына кіріңіз. Type группасына Min/Max опцисасын орнатыңыз.
  • Min жолына 1 енгізіңіз. мұнда төменгі шекара диопозонынан басқа жоғарғы шекарағада(Max) енгізуге болады.
  • Validation Rules редактор терезесінің жоғарғы бөлігіне ережелер тізімінің валидациясының құрылуын қосамыз.: Проверка цены >=1.
  • ОК батырмасын басыңыз.
  1. Диограммаға ұсыныстарды енгізу

     Көлемі 10000 руб жоғарылайтын сатушымен келісімге келген жалпы баға туралы ақпаратты сақтайтын ұсыныс құрамыз.

  • Құралдар тақтасынан политра батырмасын таңдап, (View Table),одан кейін диограмманың бос жеріне шертіңіз.
  • Байланыс кнопкасын таңдаңыз (View Relationships). Ата-аналық кестені шертіп (Покупатель), одан кейін таныстырыңыз. Деректер екі кестеден құрылады: Покупатель және Договор,дәл осындай жолмен  Договор кестесіне байланыс орнатуды ұсыныңыз.
  • Кеңейтілуі бойынша Erwin байланысын құру алдында барлық калонкаларата-аналық кестеге қосылады. Келесі жолды қалдырыңызда: Покупатель.НАИМ_ПОК, Договор.КОД_ПОК, қалғандарын белгілеп Delete батырмасын басу арқылы өшіріңіз.
  • Контекстік меню терезесін шақырып,DatabaseView Properties (таныстыру редактор)пунктін таңдаңыз
  • Views редактор терезесіндегі Name жолына атын енгізіңіз.
  • Select бумасы екі тізімнен тұрады:оң жағы колонкаларды айқындайды,ал сол жағында колонкаларды таныстыруға тиімді қосылуын анықтайды
  • Сатушы заттың атын(НАИМ) және кодын (КОД)бізге келісімге келген барлық бағаны есептеу және шығару туралы ақпаратты білу. Бұл үшін СУММА деп аталатын қосымша кесте құрамыз
  • New Expression батырмасын басыңыз. New View Column диолог терезесіндегі Name жолына СУММА атын енгізіңіз, Expression жолына Sum(Договор.СУММА_ДОГ) түрін таңдаңыз. ОК батырмасын басыңыз.
  • Where бумасына кіріңіз.
  • Group By жолына – Договор.КОД_ПОК  тобын жүзеге асы ратын жол атауын енгізіңіз
  • Having жолына Sum(Договор.СУММА_ДОГ)>10000 групп жазуын таңдаңыз
  • ОК кнопкасын басыңыз.
  • Жасалған жұмыстың нәтижесі бойынша жұмыстың физикалық моделі суреттегідей болады 2.1.

Сурет. 2.1. Деректердің физикалық моделі

  1. Деректер базасы каталогының жүйелік генерациясы
  • Деректер базасының физикалық схемасының генерациясын орындамас бұрын жаңадан Access деректер базасын құрыңыз.
  • Erwin бағдарламасына Tools | Forward Engineer/Schema Generation командасын орындаңыз.
  • Generate кнопкасын шертіңіз.
  • Берілген жолдардың барлығын толтырыпAccess Connection диолог терезесіне деректер базасымен байланыс орнатыңыз.
  • Database терезесіне деректер базасының жолын көрсетіңіз, system.mdw деп аталатын файлға деректер базасының жүйесіне System Database аркылы жол көрсету керек
  • Байланыс орнатылған жағдайда SQL-скрипт орындалады. Егер генерацияның процесiнде қате пайда болса, онда ол қателiк туралы хабарлама ашылып, терезе жұмыс істеуін тоқтатады