تطبيع أنظمة قاعدة بيانات ERP وتأثيرها على تطوير البرمجيات: افتح حانة على Tortuga

مرحبا! اسمي أندري سيمينوف ، وأنا محلل أول في Sportmaster. في هذا المنشور ، أود أن أثير قضية إلغاء تطبيع أنظمة قواعد البيانات ERP. سننظر في الشروط العامة ، بالإضافة إلى مثال محدد - لنفترض أنها ستكون حانة احتكار رائعة للقراصنة والبحارة. حيث يجب تقديم القراصنة والبحارة بشكل مختلف ، لأن الأفكار حول الأنماط الجميلة والمستهلكة لهؤلاء الأساتذة الجيدين تختلف اختلافًا كبيرًا.

كيف تجعل الجميع سعداء؟ كيف لا بالجنون في تصميم وصيانة مثل هذا النظام؟ ماذا تفعل إذا لم يبدأ القراصنة والبحارة المألوفون فقط في القدوم إلى الحانة؟ كل شيء تحت القطع. ولكن دعنا نذهب بالترتيب.





1. القيود والافتراضات


كل ما سبق ينطبق فقط على قواعد البيانات العلائقية. حسنًا ، بما في ذلك على الإنترنت ، لا يتم النظر في آثار إزالة التطبيع في شكل شذوذات التعديل والحذف والإدخال. خارج نطاق المنشور ، لا تزال هناك حالات يكون فيها عدم التطبيع أمرًا شائعًا ، مع أمثلة كلاسيكية: السلسلة ورقم جواز السفر والتاريخ والوقت ، وما إلى ذلك.

يستخدم المنشور تعريفات بديهية وقابلة للتطبيق عمليا للأشكال العادية ، دون الرجوع إلى المصطلحات الرياضية. في الشكل الذي يمكن تطبيقها على فحص العمليات التجارية الحقيقية (BP) وتصميم البرمجيات الصناعية.

هناك رأي مفاده أن تصميم مستودعات البيانات وأدوات إعداد التقارير واتفاقيات التكامل (التي تستخدم عرضًا جدوليًا للمعلومات) يختلف عن تصميم أنظمة قواعد بيانات تخطيط موارد المؤسسة في سهولة الاستهلاك وتطبيق إزالة الوعي الواعي لتحقيق ذلك يمكن أن يكون له الأسبقية على حماية النزاهة البيانات. أشارك هذا الرأي ، والوصف أدناه ينطبق حصريًا على نماذج البيانات الرئيسية وبيانات المعاملات لأنظمة تخطيط موارد المؤسسات.

يتم شرح الأشكال الطبيعية من خلال مثال يمكن فهمه على مستوى الأسرة لمعظم القراء. ومع ذلك ، كمثال توضيحي ، في الفقرات 4-5 ، تم استخدام المهمة "المخترعة" التي تم التأكيد عليها بشكل متعمد. إذا لم تفعل ذلك وأخذت بعض الأمثلة من الكتاب المدرسي ، على سبيل المثال ، نفس نموذج تخزين الطلب من البند 2 ، فقد تجد نفسك في موقف يتحول فيه انتباه القارئ من التحلل المقترح للعملية إلى نموذج ، إلى تجربة شخصية وتصور لكيفية ينبغي بناء عمليات ونماذج تخزين البيانات في IP. وبعبارة أخرى ، خذ محللان مؤهلان لتكنولوجيا المعلومات ، دع أحدهما يقدم خدمات لوجستيين ينقلون الركاب ، والآخر لوجستيين ينقلون آلات لإنتاج الرقائق الدقيقة. اطلب منهم ، دون مناقشة BP مسبقة الأتمتة ، إنشاء نموذج بيانات لتخزين المعلومات حول رحلة السكك الحديدية.

هناك احتمال غير صفري أن تجد في النماذج المقترحة مجموعة مختلفة من السمات بشكل ملحوظ ، ولكن أيضًا مجموعات مختلفة من الكيانات ، لأن كل محلل سيعتمد على عملياته ومهامه المعتادة. والقول في مثل هذه الحالة أي نموذج "صحيح" مستحيل ، لأنه لا يوجد معيار تقييم.

2. الأشكال العادية




يتطلب الشكل العادي الأول لقاعدة البيانات ذرية جميع السمات.
على وجه الخصوص ، إذا كان الكائن أ له سمات غير رئيسية a و b ، مثل c = f (a ، b) وفي الجدول الذي يصف الكائن A قمت بتخزين قيمة السمة c ، فسيتم انتهاك النموذج العادي الأول في قاعدة البيانات. على سبيل المثال ، إذا كانت مواصفات الطلب تحدد الكمية التي تعتمد وحدات القياس الخاصة بها على نوع المنتج: في حالة واحدة يمكن أن تكون قطعًا ، في اللترات الأخرى ، في الحزمة الثالثة التي تتكون من قطع (في النموذج أعلاه Good_count_WR) ، ثم يتم انتهاك ذرية السمات في قاعدة البيانات. في هذه الحالة ، لنقول كيف يجب أن تكون شجيرة الجداول لمواصفات الطلب ، تحتاج إلى وصف مستهدف لعملية العمل في IP ، وبما أن العمليات يمكن أن تكون مختلفة ، يمكن أن يكون هناك العديد من الإصدارات "الصحيحة".

النموذج العادي الثاني لقاعدة البياناتيتطلب الامتثال للنموذج الأول والجدول الخاص به لكل كيان يتعلق بعملية العمل في الملكية الفكرية. إذا كانت هناك تبعيات في أحد الجداول c = f1 (a) و d = f2 (b) ولم يكن هناك اعتماد c = f3 (b) ، فسيتم انتهاك النموذج العادي الثاني في الجدول. في المثال أعلاه ، في جدول "الطلب" ، لا توجد علاقة بين الطلب والعنوان. قم بتغيير اسم الشارع أو المدينة ولن تحصل على أي تأثير على السمات الأساسية للطلب.

الشكل العادي الثالث لقاعدة البياناتيتطلب الامتثال للصيغة العادية الثانية وغياب التبعيات الوظيفية بين سمات الكيانات المختلفة. يمكن صياغة هذه القاعدة على النحو التالي: "يجب حساب كل شيء يمكن حسابه." بمعنى آخر ، إذا كان هناك شيئان A و B. في الجدول الذي يخزن سمات الكائن A ، يتم عرض السمة C ، فإن الكائن B له السمة b ، مثل وجود c = f4 (b) ، ثم يتم انتهاك النموذج العادي الثالث. في المثال أدناه ، تدعي السمة "عدد القطع" (Total_count_WR) في سجل الطلبات بوضوح أنها تنتهك النموذج العادي الثالث

3. نهجي في تطبيق التطبيع


1. يمكن فقط لعمليات الأعمال التلقائية المستهدفة توفير تحليلات بمعايير لتحديد الكيانات والسمات عند إنشاء نموذج تخزين البيانات. يعد إنشاء نموذج العملية شرطًا أساسيًا لإنشاء نموذج بيانات عادي.

2. قد يكون تحقيق الشكل العادي الثالث بالمعنى الدقيق غير عملي في الممارسة الفعلية لإنشاء أنظمة تخطيط موارد المؤسسات عند استيفاء جزء من أو كل الشروط التالية:

  • العمليات المؤتمتة نادرا ما تخضع للتغيير ،
  • المواعيد النهائية للبحث والتطوير ضيقة ،
  • متطلبات سلامة البيانات منخفضة نسبيًا (الأخطاء المحتملة في البرامج الصناعية لا تؤدي إلى خسارة الأموال أو العملاء من قبل عميل البرنامج)
  • إلخ

في ظل الظروف الموصوفة ، لا يمكن تبرير تكاليف التعريف ووصف دورة حياة بعض الأشياء وخصائصها من وجهة نظر الكفاءة الاقتصادية.

3. يمكن إيقاف أي نتائج لعدم تطبيع نموذج البيانات في عنوان IP الذي تم إنشاؤه بالفعل من خلال دراسة أولية شاملة للرمز والاختبار.

4. يعد إلغاء التطابق طريقة لتحويل تكاليف العمالة من مرحلة البحث في مصادر البيانات وتصميم عملية الأعمال إلى مرحلة التطوير ، من فترة التنفيذ إلى فترة تطوير النظام.

5. من المستحسن السعي للحصول على الشكل العادي الثالث لقاعدة البيانات إذا:

  • من الصعب توقع اتجاه التغيير في العمليات التجارية المؤتمتة
  • هناك تقسيم نفاذ للعمل داخل فريق التنفيذ و / أو التطوير
  • يتم تطوير الأنظمة المدرجة في دائرة التكامل وفقًا لخططها الخاصة.
  • يمكن أن يؤدي عدم تناسق البيانات إلى فقدان العملاء أو المال من قبل الشركة

6. يجب أن يتم تصميم نموذج البيانات من قبل المحلل فقط فيما يتعلق بنماذج عملية الأعمال المستهدفة والعملية في الملكية الفكرية. إذا كان المطور متورطًا في تصميم نموذج بيانات ، فسيتعين عليه الغوص في مجال الموضوع إلى حد أنه ، على وجه الخصوص ، يحتاج إلى فهم الفرق بين قيم السمات - وهو شرط ضروري لتمييز السمات الذرية. وبالتالي ، تولي وظائف غير عادية.

4 مهمة للتوضيح


لنفترض أن لديك حانة روبوتية صغيرة في الميناء. قطاعك في السوق: البحارة والقراصنة الذين يتصلون في الميناء ويحتاجون للراحة. بالنسبة للبحارة ، تبيع الشاي بالزعتر ، وللقرصان ، وأمشاط الروم والعظام لتمشيط لحيتك. يتم تقديم الخدمة في الحانة نفسها بواسطة روبوت مضيفة وروبوت نادل. نظرًا للجودة العالية والأسعار المنخفضة ، فقد مزقت جميع منافسيك ، بحيث يأتي كل من يغادر السفينة إلى الحانة الخاصة بك ، وهي الوحيدة في الميناء.

يتكون مجمع نظم معلومات الحانة من البرامج التالية:

  • نظام الإنذار المبكر للعميل يتعرف على فئته من خلال السمات المميزة
  • نظام إدارة الروبوتات المضيفة والروبوتات نادل
  • نظام إدارة المستودعات ونقطة التسليم
  • نظام إدارة علاقات الموردين (SMSS)

العملية:

يكتشف نظام الإنذار المبكر الأشخاص الذين يغادرون السفينة. إذا كان الشخص حلقًا نظيفًا ، فتعرفه على أنه بحار ، إذا تم العثور على لحية في الشخص ، فيتم تعريفه على أنه قرصان.

عند دخول الحانة ، يسمع الضيف تحية من الروبوت المضيفة وفقًا لفئته ، على سبيل المثال: "Ho-ho-ho ، عزيزي القراصنة ، اذهب إلى الجدول رقم ..."

يذهب الضيف إلى الطاولة المشار إليها ، حيث أعد نادل الروبوت بالفعل البضائع حسب الفئة. ينقل روبوت النادل المعلومات إلى نظام المستودعات بأنه يجب زيادة الجزء التالي من التسليم ، ويشكل المستودع IS ، بناءً على التخزين المتبقي ، طلبًا للشراء في نظام التحكم.

دع تكنولوجيا المعلومات الداخلية الخاصة بك تطور نظامًا للإنذار المبكر ، وهو مقاول خارجي مصمم خصيصًا لعملك لإنشاء برنامج إدارة الروبوت. وأنظمة إدارة المستودعات وعلاقات الموردين هي حلول مخصصة من السوق.

5. أمثلة على عدم التطبيع وتأثيره على تطوير البرمجيات


عند تصميم عملية تجارية ، ذكر خبراء الموضوع الذين تمت مقابلتهم بالإجماع أن القراصنة حول العالم يشربون الروم ويمشطون لحاهم مع قمم العظام ، ويشرب البحارة الشاي مع الزعتر ويتم حلقهم دائمًا بسلاسة.

يظهر دليل أنواع العملاء من قيمتين: 1 - القراصنة ، 2 - البحارة ، المشتركون في دائرة المعلومات الكاملة للشركة.

يحفظ نظام إعلام العميل فورًا نتيجة معالجة الصور كمعرف (ID) للعميل المعترف به ونوعه: بحار أو قرصان.

معرف الكائن المعترف بهفئة العملاء
100500القرصان
100501القرصان
100502بحار


مرة أخرى ، نلاحظ أن

1. بحارنا هم حلق في الواقع
2. قراصنةنا هم في الواقع ملتحون

ما هي المشاكل في هذه الحالة التي يجب معالجتها بحيث يسعى هيكلنا إلى شكل عادي ثالث:

  • الانتهاك الذري للسمة - فئة العميل
  • خلط الحقيقة التي تم تحليلها والاستنتاج في جدول واحد
  • علاقة وظيفية ثابتة بين سمات الكيانات المختلفة.

في شكل عادي ، نحصل على جدولين:

  • نتيجة الاعتراف في شكل مجموعة من الميزات المعمول بها ،

معرف الكائن المعترف بهشعر الرجه
100500نعم
100501نعم
100502لا

  • نتيجة تحديد نوع العميل كتطبيق للمنطق المضمن في IS لتفسير العلامات المحددة


معرف الكائن المعترف بهمعرف الهويةفئة العملاء
100500100001القرصان
100501100002القرصان
100502100003بحار


كيف يمكن لمنظمة التخزين العادية تسهيل تطوير مجمع IP؟ لنفترض أن لديك فجأة عملاء جدد. فليكن القراصنة اليابانيين الذين قد لا يكون لديهم لحية ، لكنهم يمشون بببغاء على أكتافهم ، والقراصنة البيئيين ، يمكنك التعرف عليهم بسهولة من خلال الملف الشخصي الأزرق لـ Greta على صدرهم الأيسر.

بالطبع ، لا يمكن للقراصنة البيئيين استخدام قمم العظام ويتطلبون نظيرًا من البلاستيك البحري المعاد تدويره.

تحتاج إلى إعادة صياغة خوارزميات البرامج وفقًا للإدخال الجديد. إذا تم استيفاء قواعد التطبيع ، فسيتعين عليك فقط إضافة مدخلات لبعض فروع العملية وإنشاء فروع جديدة فقط لتلك الحالات وفي تلك عناوين IP حيث يكون خط الشعر على الوجه مهمًا. ولكن نظرًا لعدم اتباع القواعد ، فسيتعين عليك تحليل الشفرة بالكامل ، في الدائرة بأكملها ، حيث يتم استخدام قيم دليل أنواع العملاء وتثبت بشكل لا لبس فيه أنه في حالة واحدة يجب أن تأخذ الخوارزمية في الاعتبار الأنشطة المهنية للعميل ، وفي الميزات المادية الأخرى.

في نظرة تميل إلى التطبيع ، سنحصل على جدولين ببيانات تشغيلية ودليلين:



  • نتيجة الاعتراف في شكل مجموعة من الميزات المعمول بها ،

100510111
100511001
10051210


  • ( , )

هل يعني الكشف عن عدم التطابق أنه لا يمكن تعديل الأنظمة في ظل ظروف جديدة؟ بالطبع لا. إذا كنت تتخيل أن جميع عناوين IP قد تم إنشاؤها من قبل فريق واحد مع عدم وجود دوران للموظفين ، فإن التطوير موثق جيدًا ويتم إرسال المعلومات في الفريق دون خسارة ، ثم يمكن أن تكون التغييرات المطلوبة منتجات ذات جهد منخفض بشكل مهم. ولكن إذا عدنا إلى الشروط الأولية للمهمة ، فلن يتم مسح سوى 1.5 لوحة مفاتيح و 0.5 لوحة تسجيل أخرى لإجراءات الشراء فقط لطباعة بروتوكولات المناقشات المشتركة.

في المثال أعلاه ، تم انتهاك جميع الأشكال العادية الثلاثة ، دعنا نحاول انتهاكها بشكل فردي.

انتهاك الشكل الطبيعي الأول:

افترض أن البضائع يتم تسليمها إلى المستودع الخاص بك من مستودعات الموردين على نفقتك الخاصة باستخدام غزال واحد 1.5 طن ينتمي إلى الحانة الخاصة بك. حجم طلباتك صغير جدًا بالنسبة لدوران الموردين بحيث يتم تنفيذها دائمًا من واحد إلى واحد دون انتظار الإنتاج. هل تحتاج إلى جداول منفصلة لمثل هذه PSU: المركبات وأنواع المركبات ، هل تحتاج إلى فصل الخطة والواقع في طلباتك للموردين المغادرين؟

فقط تخيل عدد الاتصالات "الإضافية" التي سيتعين على المبرمجين كتابتها إذا كنت تستخدم النموذج أدناه لتطوير برنامج.



لنفترض أننا اتخذنا قرارًا بأن البنية المقترحة معقدة بشكل غير ضروري ، بالنسبة إلى حالتنا ، فإن فصل الخطة والواقع في سجل الطلبات هو معلومات زائدة ، ويتم استبدال مواصفات الطلب التي تم إنشاؤها بواسطة نتائج قبول البضائع التي تم الوصول إليها ، ويتم تسوية عمليات إعادة الفرز النادرة ووصول السلع ذات الجودة غير المناسبة خارج IP.
ثم سترى يومًا ما كيف تمتلئ قاعة الحانة بالكامل بقراصنة ساخطين وغير مهذبين. ماذا حدث؟

اتضح أنه جنبًا إلى جنب مع نمو عملك ، نما الاستهلاك أيضًا. تم اتخاذ قرار إداري ذات مرة مفاده أنه إذا كان الغزال مثقلاً بالحجم و / أو الوزن ، وهو أمر نادر للغاية ، فقد أعطى المورد أولوية التحميل لصالح المشروبات.

سقطت البضائع غير المسلمة في الطلب التالي وغادرت على متن رحلة جديدة ، وقد أتاح وجود توازن غير قابل للاختزال في المستودع في الحانة عدم ملاحظة الحالات المثقوبة.

أغلق المنافس الأخير في الميناء ، وأصبحت حالة الحمل الزائد للغزال المثقوب ، التي تم التحايل عليها من خلال تحديد الأولويات على أساس افتراض كفاية الحد الأدنى للرصيد والوزن الناقص الدوري للسيارة ، ممارسة شائعة. يعمل النظام الذي تم إنشاؤه بشكل مثالي وفقًا للخوارزميات الموضحة فيه وسيتم حرمانه من أي فرصة لتتبع عدم الإنجاز المنهجي للأوامر المخططة. فقط السمعة المتضررة والعملاء غير الراضين سيتمكنون من اكتشاف المشكلة.

يجب أن يلاحظ القارئ اليقظ أن الكمية المطلوبة في مواصفات الطلب (T_ORDER_SPEC) في القسم 2 والقسم 5 قد تلبي أو لا تفي بمتطلبات النموذج العادي الأول. كل هذا يتوقف على ما إذا كانت مجموعة مختلفة من السلع ، في الأساس ، من أجل مجموعة مختارة من السلع ، يمكن أن تقع في نفس المجال.

انتهاك الشكل العادي الثاني:

مع نمو احتياجاتك ، تحصل على سيارتين إضافيتين بأحجام مختلفة. في السياق أعلاه ، تم اعتبار إنشاء دليل للمركبات زائدة عن الحاجة ، ونتيجة لذلك ، فإن جميع خوارزميات معالجة البيانات التي تخدم احتياجات التسليم والمستودع تعتبر حركة البضائع من المورد إلى المستودع بمثابة رحلة غزال حصرية 1.5 طن. لذلك ، إلى جانب شراء المركبات الجديدة ، لا يزال بإمكانك إنشاء دليل للمركبات ، ولكن عند الانتهاء منه ، سيكون عليك تحليل الرمز بالكامل الذي يشير إلى حركة البضائع لمعرفة ما إذا كانت الإشارات إلى خصائص السيارة التي منها بدأ العمل.

انتهاك الشكل العادي الثالث:

في مرحلة ما ، تبدأ في إنشاء برنامج ولاء ، يظهر سجل عميل منتظم. لماذا ، على سبيل المثال ، قضاء بعض الوقت في إنشاء عروض المواد التي تخزن بيانات المبيعات المجمعة للعميل الفردي لاستخدامها في إعداد التقارير ونقلها إلى الأنظمة التحليلية ، إذا كان في بداية برنامج الولاء ، يمكن وضع كل ما يهم العميل في سجلات العميل الخاصة؟ وبالفعل ، لا معنى للوهلة الأولى. ولكن في كل مرة يتصل فيها عملك ، على سبيل المثال ، بقنوات مبيعات جديدة ، يجب أن يكون هناك شخص من بين المحللين الذين يتذكرون أن هناك مثل هذه السمة التجميعية.

عند تصميم كل عملية جديدة ، على سبيل المثال ، البيع على الإنترنت ، والبيع من خلال الموزعين المرتبطين بنظام الولاء المشترك ، يجب على الشخص مراعاة أن جميع العمليات الجديدة يجب أن تضمن تكامل البيانات على مستوى الرمز. بالنسبة لقاعدة بيانات صناعية تحتوي على ألف جدول ، تبدو هذه مهمة مستحيلة.

بالطبع يعرف المطور المتمرس كيفية إيقاف جميع المشاكل المذكورة أعلاه ، ولكن في رأيي ، فإن مهمة المحلل المتمرس ليست لفت انتباههم إليه.

أود أن أعرب عن امتناني لردود الفعل القيمة خلال إعداد المنشور للمطور الرائد Evgeny Yarukhin.

المؤلفات


https://habr.com/en/post/254773/
كونولي توماس ، بيغ كارولين. قاعدة البيانات. التصميم والتنفيذ والصيانة. النظرية والتطبيق

All Articles