ERP дерекқорларын нормадан шығару және оның бағдарламалық қамтамасыз етуді дамытуға әсері: Тортугадағы таверна ашу

Сәлеметсіз бе! Менің атым Андрей Семенов, мен Sportmaster компаниясының аға талдаушысымын. Бұл постта мен ERP жүйесінің деректер қорын нормадан шығару мәселесін көтергім келеді. Біз жалпы шарттарды, сондай-ақ нақты мысалды қарастырамыз - бұл қарақшылар мен теңізшілер үшін тамаша монополиялық таверна болар еді делік. Қарақшылар мен теңізшілерге басқаша қызмет көрсету керек, өйткені бұл жақсы мырзалардың сұлулық идеялары мен тұтынушылық үлгілері айтарлықтай ерекшеленеді.

Барлығын қалай бақытты етуге болады? Мұндай жүйені жобалау және оған қызмет көрсету арқылы ақылға қонымды болудан қалай аулақ бола аласыз? Тавернаға кәдімгі қарақшылар мен теңізшілер ғана келе бастаса не істеу керек?

ERP дерекқорларын нормадан шығару және оның бағдарламалық қамтамасыз етуді дамытуға әсері: Тортугадағы таверна ашу

Барлығы кесіндінің астында. Бірақ ретімен барайық.

1. Шектеулер мен болжамдар

Жоғарыда айтылғандардың барлығы тек реляциялық дерекқорларға қатысты. Модификация, жою және кірістіру аномалиялары түріндегі денормальизацияның салдары, оның ішінде Интернетте жақсы қамтылған, ескерілмейді. Осы жарияланым шеңберінен тыс классикалық мысалдармен денормальизация әдеттегі орын болып табылатын жағдайлар бар: төлқұжат сериясы мен нөмірі, күні мен уақыты және т.б.

Пост математикалық терминдерге сілтеме жасамай, қалыпты пішіндердің интуитивті және іс жүзінде қолданылатын анықтамаларын пайдаланады. Нақты бизнес-процестерді (BP) және өнеркәсіптік бағдарламалық қамтамасыз етуді жобалауды сараптау үшін оларды қолдануға болатын нысанда.

Деректер қоймаларының, есеп беру құралдарының және интеграциялық келісімдердің (ақпараттың кестелік көрсетілімдерін пайдаланатын) дизайны тұтынудың қарапайымдылығымен және оған қол жеткізу үшін саналы денормальизацияны қолданудың тұтастықтан басым болуы мүмкін болғандықтан, ERP жүйесінің деректер базасының дизайнынан ерекшеленеді деп айтылады. қорғау деректері. Мен бұл пікірді бөлісемін және төменде сипатталғандар тек негізгі деректерге және ERP жүйелерінің транзакциялық деректер үлгілеріне қатысты.

Қалыпты пішіндердің түсіндірмесі оқырмандардың көпшілігі үшін күнделікті деңгейде түсінікті мысал арқылы беріледі. Дегенмен, көрнекі иллюстрация ретінде 4-5-тармақтарда әдейі «ойдан шығарылған» тапсырма әдейі қолданылған. Егер сіз мұны жасамасаңыз және кейбір оқулық мысалын алсаңыз, мысалы, 2-тармақтағы бірдей тапсырысты сақтау үлгісі, сіз оқырман назары процестің ұсынылған декомпозициясынан модельге ауысатын жағдайға тап болуыңыз мүмкін, жеке тәжірибеге және АЖ-де деректерді сақтауға арналған процестер мен модельдерді қалай құру керектігін түсіну. Басқаша айтқанда, екі білікті IT-аналитик алыңыз, біреуі жолаушыларды тасымалдайтын логисттерге, екіншісі микрочиптерді өндіруге арналған машиналарды тасымалдайтын логисттерге қызмет көрсетсін. Олардан алдын ала автоматтандырылған АД-ны талқыламай-ақ, теміржол сапары туралы ақпаратты сақтау үшін деректер үлгісін жасауды сұраңыз.

Ұсынылған үлгілерде сіз атрибуттардың айтарлықтай әр түрлі жиынтығын ғана емес, сонымен қатар субъектілердің әртүрлі жиынын табатын нөлдік емес ықтималдық бар, өйткені әрбір талдаушы өзіне таныс процестер мен тапсырмаларға сүйенеді. Ал мұндай жағдайда қандай модель «дұрыс» екенін айту мүмкін емес, өйткені бағалау критерийі жоқ.

2. Қалыпты пішіндер

ERP дерекқорларын нормадан шығару және оның бағдарламалық қамтамасыз етуді дамытуға әсері: Тортугадағы таверна ашу

Мәліметтер қорының бірінші қалыпты формасы барлық атрибуттардың атомдылығын талап етеді.
Атап айтқанда, егер А объектісінде c=f(a,b) және А нысанын сипаттайтын кестеде c атрибутының мәнін сақтайтындай a және b негізгі емес атрибуттары болса, онда деректер қорында бірінші қалыпты пішін бұзылады. . Мысалы, егер тапсырыс спецификациясында өлшем бірліктері өнімнің түріне байланысты болатын шаманы көрсетсе: бір жағдайда ол дана, басқасында литр, үшіншіден бөліктерден тұратын қаптамалар болуы мүмкін (жоғарыдағы жақсы_санақ_WR үлгісінде) , содан кейін деректер базасында атрибуттардың атомдылығы бұзылады. Бұл жағдайда тапсырыс спецификациясының кестелік кластері қандай болуы керек екенін айту үшін АЖ-дағы жұмыс процесінің мақсатты сипаттамасы қажет және процестер әртүрлі болуы мүмкін болғандықтан, көптеген «дұрыс» нұсқалар болуы мүмкін.

Мәліметтер қорының екінші қалыпты формасы АЖ-дағы жұмыс процесіне қатысты әрбір субъект үшін бірінші нысанды және өз кестесін сақтауды талап етеді. Егер бір кестеде c=f1(a) және d=f2(b) тәуелділіктері болса және c=f3(b) тәуелділіктері болмаса, онда кестеде екінші қалыпты пішін бұзылған. Жоғарыдағы мысалда Тапсырыс кестесіндегі тапсырыс пен мекенжай арасында ешқандай тәуелділік жоқ. Көше немесе қала атауын өзгертсеңіз, тапсырыстың маңызды атрибуттарына әсер етпейсіз.

Үшінші қалыпты пішін дерекқоры екінші қалыпты форманың сақталуын және әртүрлі субъектілердің атрибуттары арасында функционалдық тәуелділіктің болмауын талап етеді. Бұл ережені былай тұжырымдауға болады: «есептеуге болатынның барлығын есептеу керек». Басқаша айтқанда, екі А және В нысаны болса. А нысанының атрибуттарын сақтайтын кестеде С атрибуты көрсетіледі, ал В нысанында c=f4(b) болатындай b атрибуты бар, онда үшінші қалыпты пішін бұзылады. Төмендегі мысалда тапсырыс жазбасындағы Дана саны атрибуты (Total_count_WR) үшінші қалыпты пішінді бұзғаны анық.

3. Нормализацияны қолданудағы менің көзқарасым

1. Тек мақсатты автоматтандырылған бизнес-процесс аналитикке деректерді сақтау үлгісін жасау кезінде нысандар мен атрибуттарды анықтау критерийлерін бере алады. Процесс моделін құру қалыпты деректер моделін құрудың алғы шарты болып табылады.

2. Қатаң мағынада үшінші қалыпты формаға жету ERP жүйелерін құрудың нақты тәжірибесінде практикалық болмауы мүмкін, егер келесі шарттардың кейбірі немесе барлығы орындалса:

  • автоматтандырылған процестер сирек өзгереді,
  • ғылыми-зерттеу және тәжірибелік-конструкторлық жұмыстардың соңғы мерзімдері тығыз,
  • деректер тұтастығына қойылатын талаптар салыстырмалы түрде төмен (өнеркәсіптік бағдарламалық қамтамасыз етудегі ықтимал қателер бағдарламалық қамтамасыз ету тұтынушысының ақшаны немесе клиенттерді жоғалтуына әкелмейді)
  • және т.б.

Сипатталған жағдайларда кейбір объектілердің және олардың атрибуттарының өмірлік циклін анықтау және сипаттау шығындары экономикалық тиімділік тұрғысынан ақталмауы мүмкін.

3. Қазірдің өзінде жасалған АЖ-де деректер үлгісін нормадан шығарудың кез келген салдарын кодты алдын ала мұқият зерделеу және тестілеу арқылы азайтуға болады.

4. Денормальизация – еңбек шығындарын деректер көздерін зерттеу және бизнес-процесті жобалау сатысынан әзірлеу кезеңіне, енгізу кезеңінен жүйені әзірлеу кезеңіне ауыстыру тәсілі.

5. Деректер қорының үшінші қалыпты формасына ұмтылған жөн, егер:

  • Автоматтандырылған бизнес-процестердің өзгеру бағытын болжау қиын
  • Іске асыру және/немесе әзірлеу тобында әлсіз еңбек бөлінісі бар
  • Интегралдық схемаға кіретін жүйелер өз жоспарлары бойынша дамиды
  • Деректер сәйкес келмеуі компанияның клиенттерін немесе ақшасын жоғалтуына әкелуі мүмкін

6. Деректер моделін жобалауды талдаушы тек мақсатты бизнес-үдеріс үлгілерімен және АЖ-дегі үдеріспен байланыстыруы керек. Егер әзірлеуші ​​деректер моделін құрастыратын болса, ол атомдық атрибуттарды оқшаулаудың қажетті шарты болып табылатын атрибут мәндерінің арасындағы айырмашылықты түсінетіндей пәндік аймаққа енуі керек. Осылайша, әдеттен тыс функцияларды қабылдау.

4 Көрнекілік үшін мәселе

Портта шағын роботты таверна бар делік. Сіздің нарық сегментіңіз: портқа келіп, демалуды қажет ететін теңізшілер мен қарақшылар. Теңізшілерге тимьян қосылған шай, ал қарақшыларға сақал тарауға арналған ром мен сүйек тарақтарын сатасыз. Тавернадағы қызметті робот иесі мен робот бармен көрсетеді. Сіздің жоғары сапаңыз бен төмен бағаларыңыздың арқасында сіз бәсекелестеріңізді қуып жібердіңіз, осылайша кемеден түскендердің бәрі порттағы жалғыз тавернаңызға келеді.

Тавернаның ақпараттық жүйелер кешені келесі бағдарламалық қамтамасыз етуден тұрады:

  • Сипаттамалық белгілерге негізделген оның санатын танитын клиент туралы алдын ала ескерту жүйесі
  • Робот-хостесстерге және робот-бармендерге арналған басқару жүйесі
  • Қойманы және сату орнына жеткізуді басқару жүйесі
  • Жеткізушімен қарым-қатынасты басқару жүйесі (SURP)

Процесс:

Алдын ала ескерту жүйесі кемеден кетіп бара жатқан адамдарды таниды. Егер адам таза қырылған болса, ол оны теңізші ретінде анықтайды, егер адамның сақалы бар екені анықталса, онда ол қарақшы деп танылады.

Тавернаға кіре отырып, қонақ робот иесінің өз санатына сәйкес сәлемін естиді, мысалы: «Хо-хо-хо, қымбатты қарақшы, № үстелге барыңыз...»

Қонақ көрсетілген үстелге барады, онда робот бармен оған санатқа сәйкес тауарлар дайындап қойған. Робот-бармен қойма жүйесіне жеткізудің келесі бөлігін көбейту керектігі туралы ақпаратты жібереді; қоймадағы АЖ сақтаудағы қалған қалдықтар негізінде басқару жүйесінде сатып алу сұранысын қалыптастырады.

Ерте ескерту жүйесін ішкі АТ әзірлеген болуы мүмкін, бар роботты басқару бағдарламасын сыртқы мердігер арнайы сіздің бизнесіңіз үшін жасаған болуы мүмкін. Ал қоймаларды басқару жүйелері және жеткізушілермен қарым-қатынастар нарықтың теңшелген пакеттелген шешімдері болып табылады.

5. Денормальизация мысалдары және оның бағдарламалық қамтамасыз етуді әзірлеуге әсері

Бизнес-процесті құрастыру кезінде сауалнама жүргізілген сарапшылар бірауыздан дүние жүзіндегі қарақшылар ром ішіп, сақалын сүйек тарақтарымен тарайтынын, ал теңізшілер тимьян қосылған шай ішетінін және әрқашан қырынғанын айтты.

Клиент түрлерінің каталогы екі мәнмен пайда болады: 1 - қарақшылар, 2 - матростар, компанияның бүкіл ақпараттық тізбегі үшін ортақ.

Клиенттің хабарландыру жүйесі суретті өңдеу нәтижесін танылған клиенттің идентификаторы (ID) және оның түрі: теңізші немесе қарақшы ретінде дереу сақтайды.

Танылған нысан идентификаторы
Клиент санаты

100500
Қарақшылар

100501
Қарақшылар

100502
Теңізшілердің

Мұны тағы да атап өтейік

1. Біздің теңізшілер шын мәнінде қырынған адамдар
2. Біздің қарақшылар шын мәнінде сақалды адамдар

Біздің құрылым үшінші қалыпты формаға ұмтылуы үшін бұл жағдайда қандай проблемаларды жою керек:

  • атрибуттың атомдылығын бұзу - Клиент санаты
  • талданған факті мен қорытындыны бір кестеде араластыру
  • әртүрлі нысандардың атрибуттары арасындағы бекітілген функционалдық қатынас.

Қалыпты түрде біз екі кестені аламыз:

  • белгіленген белгілер жиынтығы түріндегі тану нәтижесі,

Танылған нысан идентификаторы
Бет шашы

100500
сол

100501
сол

100502
жоқ

  • белгіленген сипаттамаларды интерпретациялау үшін АЖ енгізілген логика қолданбасы ретінде клиент түрін анықтау нәтижесі

Танылған нысан идентификаторы
Сәйкестендіру идентификаторы
Клиент санаты

100500
100001
Қарақшылар

100501
100002
Қарақшылар

100502
100003
Теңізшілердің

Нормаланған деректерді сақтау ұйымы IP кешенінің дамуына қалай ықпал ете алады? Сіз кенеттен жаңа клиенттер алдыңыз делік. Сақалы жоқ жапон қарақшылары болсын, бірақ олар иығында тотықұспен жүреді, ал эколог қарақшылар, оларды Гретаның сол жақ кеудедегі көк профилінен оңай тануға болады.

Экологиялық қарақшылар, әрине, сүйек тарақтарын пайдалана алмайды және қайта өңделген теңіз пластиктен жасалған аналогты талап етеді.

Жаңа кірістерге сәйкес бағдарлама алгоритмдерін қайта өңдеу керек. Егер қалыпқа келтіру ережелері сақталса, кейбір жүйелердегі кейбір процесс тармақтары үшін кірістерді ғана толықтырып, бет шаштары маңызды болатын жағдайлар мен АЖ үшін ғана жаңа тармақтарды жасау керек еді. Бірақ, ережелер сақталмағандықтан, клиент түрінің каталогының мәндері қолданылатын бүкіл схема бойынша бүкіл кодты талдауға және бір жағдайда алгоритм кәсіби маманды ескеруі керек екенін нақты анықтауға тура келеді. клиенттің белсенділігі және басқа физикалық ерекшеліктері.

Бұл формада іздейді қалыпқа келтіру үшін біз операциялық деректері мен екі каталогы бар екі кестені аламыз:

ERP дерекқорларын нормадан шығару және оның бағдарламалық қамтамасыз етуді дамытуға әсері: Тортугадағы таверна ашу

  • белгіленген белгілер жиынтығы түріндегі тану нәтижесі,

Танылған нысан идентификаторы
Грета сол жақ кеудеде
Иықта құс
Бет шашы

100510
1
1
1

100511
0
0
1

100512

1
0

  • клиент түрін анықтау нәтижесі (ол каталогтардағы сипаттамалар көрсетілетін реттелетін көрініс болсын)

Анықталған денормальизация жүйелерді жаңа шарттарға сәйкес өзгерту мүмкін емес дегенді білдіре ме? Әрине жоқ. Егер біз барлық ақпараттық жүйелерді кадрлардың нөлдік тұрақсыздығы бар бір команда жасағанын, әзірлемелер жақсы құжатталғанын және ақпарат команда ішінде жоғалтпай тасымалданатынын елестететін болсақ, онда қажетті өзгерістерді шамалы күшпен жасауға болады. Бірақ егер мәселенің бастапқы шарттарына оралсақ, бірлескен талқылау хаттамаларын басып шығару үшін 1,5 пернетақта және сатып алу процедураларын өңдеу үшін тағы 0,5 пернетақта өшіріледі.

Жоғарыда келтірілген мысалда барлық үш қалыпты форма бұзылған, оларды бөлек бұзуға тырысайық.

Бірінші қалыпты форманың бұзылуы:

Тавернаға тиесілі 1.5 тонналық бір қарақұйрық арқылы тауар жеткізушілердің қоймаларынан сіздің қоймаңызға жеткізілді делік. Тапсырыстарыңыздың көлемі жеткізушілердің айналымына қатысты соншалықты аз, олар әрқашан өндірісті күтпей-ақ жеке орындалады. Осындай бизнес-процесс кезінде сізге бөлек кестелер қажет пе: көліктер, көлік түрлері, кеткен жеткізушілерге тапсырыстарыңызда жоспар мен фактіні бөлектеу қажет пе?

Бағдарламаны әзірлеу үшін төмендегі үлгіні пайдалансаңыз, бағдарламашыларға қанша «қосымша» қосылым жазу керек болатынын елестетіп көріңіз.

ERP дерекқорларын нормадан шығару және оның бағдарламалық қамтамасыз етуді дамытуға әсері: Тортугадағы таверна ашу

Ұсынылған құрылым қажетсіз күрделі деп шештік делік; біздің жағдайда тапсырыс жазбасындағы жоспар мен фактіні бөлу артық ақпарат болып табылады, ал құрылған тапсырыс спецификациясы келген тауарларды қабылдау нәтижелері бойынша қайта жазылады, сирек қателер. -сапаға сәйкес келмейтін тауарлардың сортталуы және келуі АЖ-дан тыс реттеледі.
Сосын бір күні сіз тавернаның бүкіл залы ашулы және ыңғайсыз қарақшыларға толы екенін көресіз. Не болды?

Кәсібің өскен сайын тұтынуың да өскен екен. Бір кездері, егер қарақұйрық көлемі және/немесе салмағы бойынша шамадан тыс жүктелсе, бұл өте сирек кездесетін болса, жеткізуші сусындардың пайдасына жүктемені бірінші орынға қоятыны туралы басқару шешімі қабылданды.

Жеткізілмеген тауарлар келесі кезекпен аяқталып, жаңа рейске жіберілді, тавернадағы қоймада минималды қалдықтың болуы жетіспейтін жағдайларды байқамауға мүмкіндік берді.

Соңғы бәсекелес портта жабылды, ал көлік құралының ең төменгі балансының жеткіліктілігі және мерзімді түрде аз тиеу туралы болжамға негізделген басымдықты айналып өтіп, газельдің шамадан тыс жүктелуінің тесілген жағдайы әдеттегі тәжірибеге айналды. Құрылған жүйе оған енгізілген алгоритмдерге сәйкес тамаша жұмыс істейді және жоспарланған тапсырыстарды жүйелі түрде орындамауды қадағалаудың кез келген мүмкіндігінен айырылады. Тек бүлінген бедел мен қанағаттанбаған тұтынушылар ғана мәселені анықтай алады.

Мұқият оқырман 2-бөлімдегі және 5-бөлімдегі тапсырыс спецификациясындағы (T_ORDER_SPEC) тапсырыс саны бірінші қалыпты пішіннің талабына сай болуы немесе сәйкес келмеуі мүмкін екенін байқаған болуы мүмкін. Мұның бәрі тауарлардың таңдалған ассортиментін ескере отырып, әртүрлі өлшем бірліктерінің бір өріске түсуіне байланысты.

Екінші қалыпты форманың бұзылуы:

Сіздің қажеттіліктеріңіз өскен сайын сіз әртүрлі өлшемдегі тағы бірнеше көлік сатып аласыз. Жоғарыда аталған контекстте көлік анықтамалығын жасау артық деп саналды, нәтижесінде жеткізу және қойма қажеттіліктеріне қызмет ететін деректерді өңдеудің барлық алгоритмдері жүктің жеткізушіден қоймаға қозғалысын тек қана 1,5 тонналық жүктің ұшуы ретінде қабылдайды. қарақұйрық. Осылайша, жаңа көліктерді сатып алумен қатар, сіз әлі де көлік анықтамалығын жасайсыз, бірақ оны аяқтаған кезде әрбір нақты жерде сілтемелердің сипаттамаларға қатысты екенін білу үшін жүк қозғалысына сілтеме жасайтын барлық кодты талдауға тура келеді. бизнес басталған көлік туралы.

Үшінші қалыпты форманың бұзылуы:

Бір сәтте сіз адалдық бағдарламасын жасай бастайсыз, тұрақты тұтынушының жазбасы пайда болады. Неліктен, мысалы, егер адалдық бағдарламасының басында тұтынушыны қызықтыратын барлық нәрсе клиенттің жазбасына орналастырылуы мүмкін болса, есеп беруде пайдалану және аналитикалық жүйелерге беру үшін жеке клиентке сатылымдар туралы жинақталған деректерді сақтайтын материалдық көріністерді жасауға уақыт бөлу керек. ? Ал, шынында да, бір қарағанда, мағынасы жоқ. Бірақ сіздің бизнесіңіз, мысалы, жаңа сату арналарын қосқан сайын, сіздің талдаушыларыңыздың арасында мұндай біріктіру атрибутының бар екенін есте сақтайтын біреу болуы керек.

Әрбір жаңа процесті жобалау кезінде, мысалы, Интернеттегі сату, ортақ адалдық жүйесіне қосылған дистрибьюторлар арқылы сату, біреу барлық жаңа процестер код деңгейінде деректер тұтастығын қамтамасыз етуі керек екенін есте ұстауы керек. Мың кестеден тұратын өнеркәсіптік дерекқор үшін бұл мүмкін емес тапсырма сияқты көрінеді.

Тәжірибелі әзірлеуші, әрине, жоғарыда айтылған барлық проблемаларды қалай тоқтату керектігін біледі, бірақ менің ойымша, тәжірибелі талдаушының міндеті оларды жарыққа шығару емес.

Басылымды дайындау кезіндегі құнды пікірі үшін жетекші әзірлеуші ​​Евгений Ярухинге алғысымды білдіргім келеді.

Әдебиет

https://habr.com/en/post/254773/
Коннолли Томас, Бегг Кэролайн. Дерекқор. Жобалау, енгізу және қолдау. Теория және практика

Ақпарат көзі: www.habr.com

пікір қалдыру