SQLAlchemy
مجموعة أدوات Python SQL ومخطط الارتباطات للكائنات
مقدمة
SQLAlchemy هي مجموعة أدوات Python SQL وObject Relational Mapper التي تمنح مطوري التطبيقات القوة والمرونة الكاملة لـ SQL. يوفر SQLAlchemy مجموعة كاملة من أنماط الثبات المعروفة على مستوى المؤسسة، والمصممة للوصول إلى قاعدة بيانات فعالة وعالية الأداء، ومكيفة مع لغة مجال بسيطة وبايثونية.
تتضمن ميزات SQLAlchemy الرئيسية ما يلي:
- ORM صناعي قوي، تم إنشاؤه من الأساس على خريطة الهوية ووحدة العمل وأنماط مخطط البيانات. تسمح هذه الأنماط بالثبات الشفاف للكائنات باستخدام نظام التكوين التعريفي. يمكن إنشاء نماذج المجال ومعالجتها بشكل طبيعي، وتتم مزامنة التغييرات مع المعاملة الحالية تلقائيًا.
- نظام استعلام موجه نحو العلائقي، يعرض النطاق الكامل لإمكانيات SQL بشكل صريح، بما في ذلك الصلات والاستعلامات الفرعية والارتباط ومعظم كل شيء آخر، فيما يتعلق بنموذج الكائن. تستخدم كتابة الاستعلامات باستخدام ORM نفس تقنيات التركيب العلائقي التي تستخدمها عند كتابة SQL. على الرغم من أنه يمكنك الانتقال إلى لغة SQL الحرفية في أي وقت، إلا أنه ليس هناك حاجة إليها أبدًا.
- نظام شامل ومرن للتحميل المتلهف للمجموعات والأشياء ذات الصلة. يتم تخزين المجموعات مؤقتًا خلال الجلسة، ويمكن تحميلها عند الوصول الفردي، كل ذلك مرة واحدة باستخدام الصلات، أو عن طريق الاستعلام لكل مجموعة عبر مجموعة النتائج الكاملة.
- نظام بناء SQL أساسي وطبقة تفاعل DBAPI. إن SQLAlchemy Core منفصل عن ORM وهو عبارة عن طبقة تجريد قاعدة بيانات كاملة في حد ذاته، ويتضمن لغة تعبير SQL قابلة للتوسيع تعتمد على Python، وبيانات تعريف المخطط، وتجميع الاتصال، وإكراه النوع، والأنواع المخصصة.
- من المفترض أن تكون جميع القيود الرئيسية الأولية والأجنبية مركبة وطبيعية. بالطبع لا تزال المفاتيح الأساسية ذات الأعداد الصحيحة البديلة هي القاعدة، لكن SQLAlchemy لا تفترض أبدًا هذا النموذج أو تقوم بتشفيره.
- استبطان قاعدة البيانات وتوليدها. يمكن أن "تنعكس" مخططات قاعدة البيانات في خطوة واحدة في هياكل بايثون التي تمثل البيانات الوصفية لقاعدة البيانات؛ يمكن لهذه الهياكل نفسها بعد ذلك إنشاء عبارات CREATE مباشرة - كل ذلك داخل النواة، بشكل مستقل عن ORM.
فلسفة SQLAlchemy:
- تتصرف قواعد بيانات SQL بشكل أقل فأقل مثل مجموعات الكائنات، حيث أصبح الحجم والأداء أكثر أهمية؛ تتصرف مجموعات الكائنات بشكل أقل فأقل مثل الجداول والصفوف كلما أصبح التجريد أكثر أهمية. يهدف SQLAlchemy إلى استيعاب هذين المبدأين.
- لا يحتاج ORM إلى إخفاء "R". توفر قاعدة البيانات العلائقية وظائف غنية قائمة على المجموعة والتي يجب عرضها بالكامل. يوفر ORM الخاص بـ SQLAlchemy مجموعة مفتوحة من الأنماط التي تسمح للمطور ببناء طبقة وساطة مخصصة بين نموذج المجال والمخطط العلائقي، مما يحول ما يسمى بمشكلة "الممانعة العلائقية للكائن" إلى ذاكرة بعيدة.
- يتخذ المطور، في جميع الحالات، جميع القرارات المتعلقة بالتصميم والبنية واصطلاحات التسمية لكل من نموذج الكائن وكذلك المخطط العلائقي. يوفر SQLAlchemy فقط الوسائل اللازمة لأتمتة تنفيذ هذه القرارات.
- مع SQLAlchemy، لا يوجد شيء اسمه "أنشأ ORM استعلامًا سيئًا" - فأنت تحتفظ بالتحكم الكامل في بنية الاستعلامات، بما في ذلك كيفية تنظيم الصلات، وكيفية استخدام الاستعلامات الفرعية والارتباط، والأعمدة المطلوبة. كل ما يفعله SQLAlchemy هو في النهاية نتيجة لقرار اتخذه المطور.
- لا تستخدم ORM إذا كانت المشكلة لا تحتاج إلى واحد. يتكون SQLAlchemy من مكون ORM أساسي ومنفصل. يقدم Core لغة تعبير SQL كاملة تسمح ببناء Pythonic لبنيات SQL التي تعرض مباشرة إلى سلاسل SQL لقاعدة بيانات مستهدفة، مما يؤدي إلى إرجاع مجموعات النتائج التي هي في الأساس مؤشرات DBAPI محسنة.
- يجب أن تكون المعاملات هي القاعدة. باستخدام ORM الخاص بـ SQLAlchemy، لا ينتقل أي شيء إلى التخزين الدائم حتى يتم استدعاء الالتزام (). تشجع SQLAlchemy التطبيقات على إنشاء وسيلة متسقة لتحديد بداية ونهاية سلسلة من العمليات.
- لا تقم أبدًا بتقديم قيمة حرفية في عبارة SQL. يتم استخدام المعلمات المرتبطة إلى أقصى درجة ممكنة، مما يسمح لمحسني الاستعلام بتخزين خطط الاستعلام مؤقتًا بشكل فعال ويجعل هجمات حقن SQL غير مشكلة.
التوثيق
أحدث الوثائق في:
https://www.sqlalchemy.org/docs/
التثبيت / المتطلبات
الوثائق الكاملة للتثبيت موجودة عند التثبيت.
الحصول على المساعدة / التطوير / الإبلاغ عن الأخطاء
يرجى الرجوع إلى دليل مجتمع SQLAlchemy.
مدونة لقواعد السلوك
قبل كل شيء، تركز SQLAlchemy بشكل كبير على التواصل المهذب والمدروس والبناء بين المستخدمين والمطورين. يرجى الاطلاع على قواعد السلوك الحالية لدينا في مدونة قواعد السلوك.
رخصة
يتم توزيع SQLAlchemy بموجب ترخيص MIT.