تمنياتي لنظام DBMS في المستقبل ، وكذلك لـ Rosreestr من حيث المعاملات

تمنياتي لنظام DBMS في المستقبل ، وكذلك لـ Rosreestr من حيث المعاملات
يتفاعل العميل مع قاعدة البيانات.
من الموقع http://corchaosis.ruبقلم جوناثان تيونج.

بالإضافة إلى أنني مبرمج (أساسًا دلفي + جميع أنواع أنظمة إدارة قواعد البيانات المختلفة، مؤخرًا ORACLE، + القليل من PHP)، لدي هواية - شراء وبيع الشقق. أشتري شقة في مرحلة البناء من مطور أكثر أو أقل موثوقية وبسعر جيد (على سبيل المثال، Samolet الآن مثل هذا المطور، والشقق القريبة من محطة مترو Nekrasovka معروضة للبيع)، وانتظر حتى يتم تسليم المنزل (غالبًا اثنين وبعد سنوات، يحدث هذا مع العروض الرخيصة)، أقوم بتجديده ثم بيعه مقابل 95-100% من سعره في السوق.

لذلك، واجهت (مثل أي شخص آخر) مشكلة افتقار RosReestr إلى المعاملات.

مشكلة افتقار Rosreestr إلى معاملات المعاملات

في البرمجة تسمى "المعاملة"، وفي العقارات هي "المعاملة مع البديل" (وكذلك، كجزء منها، "اتفاقية صندوق الإيداع الآمن")، وهي أكثر تعقيدًا بعض الشيء. أنا أخبرك.

جاء فاسيا لرؤية الشقة التي كانت بيتيا تبيعها. وقد أحب Vasya حقًا كل شيء، بما في ذلك السعر، لكن Vasya ليس لديه أموال. هكذا تبدأ قصتنا.

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

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

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

لذلك، يجد Vasya عميلا، Seryozha. الآن يجد بيتيا خيارين مناسبين له في مدينة فالينور. نحن على وشك الانتهاء من الصفقة. لنفترض من أجل التبسيط أن لا أحد من أطراف الصفقة يستخدم الرهن العقاري وليس لديه قاصرين كأصحاب أسهم. وبالتالي، يجب الآن تنفيذ الإجراءات التالية:
1. سريوزا يعطي المال لبيتيا.
2. يعطي فاسيا شقته لسريوزا.
3. بيتيا يعطي شقته لفاسيا.
4. يقوم ماجلور أو مايدروس بنقل شقتهما في فالينور إلى بيتا والحصول على أموال سريوزا.
5. يذهب مالكور ومايدهروس إلى موردور لخدمة ملكور.

سيكون من المثالي إرسال النص التالي إلى Rosreestr للتنفيذ:

ابدأ المعاملة
أعط شقة Vasya إلى Seryozha.
أعط شقة بيتيا لفاسيا.
بدأ
أعط شقة مالكور لبيتيا
أعط أموال سريوزا لمالكور
إذا_خطأ:
أعط شقة مايدروس لبيتيا
أعط أموال Seryozha إلى Maedhros
النهاية
ارتكاب المعاملات

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

ومع ذلك، Rosreestr لا يدعم المعاملات. سيتم تنفيذ جميع الإجراءات بشكل متسلسل ومستقل، واحدًا تلو الآخر، دون التراجع عن المعاملة ككل في حالة فشل أحدها. الحد الأقصى الذي يمكن تحقيقه - نظرًا لأن Rosreestr وMFC لا يعملان مع تحويل الأموال النقدية - هو إيداع الأموال في صندوق ودائع آمن، مع شروط الوصول إليها بواسطة Vasya وPetya وSeryozha (في حالة عدم وجود معاملة مسجل على الإطلاق)، والجهات الفاعلة الأخرى، عند تقديم العقود المسجلة من قبل Rosreestr. (وبالمناسبة، البنوك لا تتحقق بشكل مستقل من صحة العقود، أي أنها تثق في صحة أوراق أطراف المعاملة).

إلى جانب مخاطر عدم اكتمال الصفقة، هناك مشكلة أخرى وهي أنه إذا تمكن المشاركون الآخرون من الانتقال إلى منزلهم الجديد دون انتظار التسجيل الكامل (مرحبًا، مسألة الدفع الناقص لفواتير الخدمات!)، فلن يذهب ماجلور ومايدهروس قريبًا إلى خدمة Melkor، وربما لن يكون Maglor قادرًا على ذلك، لأنه لن يكون لديه الوقت الكافي لحمل Silmarils بين يديه. يتم تنفيذ المعاملات العقارية بشكل متسلسل، وسيستغرق تنفيذ كل معاملة 9 أيام عمل على الأقل.

بالإضافة إلى ذلك، لا تدعم Rosreestr أعباء بناء المساكن بموجب DDU، ولكن يمكنها ذلك، وهذا إجراء أولي فيما يتعلق بالعقود الآجلة البسيطة.

الآن دعنا ننتقل إلى أوجه القصور ورغباتي فيما يتعلق بنظام إدارة قواعد البيانات

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

2) والسبب الثاني هو عدم وجود جداول موحدة محددة مسبقًا تصف العالم الحقيقي. كل شركة عملت بها لديها تنسيق جدول خاص بها يصف الأسماء (باللغة الروسية و(على الأقل) الإنجليزية، في حالات مختلفة باللغة الروسية) لمدة اثني عشر شهرًا!

3) ثالثًا - وهنا سأستخدم مصطلحات Oracle - لا توجد طريقة لاستدعاء برنامج نصي بسيط للإدراج أو التحديث يستخدم الرجوع، بنفس الطريقة التي نسميها تحديد. ربما هذه ليست مشاكل أوراكل، ولكن مشاكل في واجهة دلفي + أوراكل.

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

المصدر: www.habr.com

إضافة تعليق