ماذا يعني "العلائقية" في "قاعدة البيانات العلائقية" بالنسبة لنا؟

StackOverflow https://stackoverflow.com/questions/1689867

  •  18-09-2019
  •  | 
  •  

سؤال

أعرف، قاعدة البيانات العلائقية هي قاعدة بيانات حيث تربط الحقول في جدول واحد بالصفوف في الآخرين، شيء من هذا القبيل.

لكنني لا أستطيع أن أفهم ما يعنيه بالنسبة لي كمطور ويب!

كما أعرف، يمكن أن يقلل الاستعلام مع JOINES و SELECT المتداخلة الحد من بروفومانس (خاصة استعلامات أسلوب Drupal مع عشرات الإنضمام). أكثر من ذلك، فإن أي استفسارات ل DB هي الاختناقات، ثم لديك الكثير من المستخدمين لديك لذاكرة التخزين المؤقت لكل طلب محدد.

إذا كنت ذاكرة التخزين المؤقت كل طلب محدد، فمن الأفضل أن تخبئ طلبات بسيطة بدلا من المعقدة. يمكنك إما ذاكرة التخزين المؤقت "حدد * من TBL1 حيث معرف = 123" و "حدد * من TBL2 حيث معرف = 456" أو "حدد * من TBL1، TBL2 حيث ..."، ولكن إذا اخترت الطريقة الثانية، فسوف تحتاج إلى ذاكرة التخزين المؤقت لكل مزيج من الكائنات - أنها ليست رائعة.

حسنا، الآن نستخدم فقط استفسارات بسيطة للغاية مثل "SELECT * من TBL1 حيث معرف = 123" من "معرف" من ترتيب TBL1 حسب حد المعرف 0 و 30 "وذاكرة التخزين المؤقت لهم (أو يمكننا ذاكرة التخزين المؤقت فقط النوع الأول من الاستفسارات فقط ). هناك استفسارات وليس أقل إدراجا بسيطا وحذف وتحديثا كل ما نحتاج إليه وكل ما نستخدمه!

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

أصبح هذا النوع من قواعد البيانات معيارا. لماذا ا؟ ليس لدي أي فكرة. لقد سمعت بالكاد عن شخص يستخدم قاعدة البيانات غير العلائقية، باستثناء في GAE.

هل فاتني شيء؟

هل كانت مفيدة؟

المحلول

إذا كنت ترغب في معرفة ما هي الوسائل العلائقية، أوصي الكتاب "SQL ونظرية العلائقية"بواسطة CJ Date.

العلائقية في هذا السياق لا الرجوع إلى العلاقات. تشير إلى علاقات التي هي أساسا ما هي الجداول التي يتم استدعاءها في النظريات الرياضية التي أدت إلى نموذج العلائقية.

والسبب في أن قواعد البيانات العلائقية قد أصبحت في كل مكان هي أنهم الحل الأكثر للأغراض العامة لتنظيم البيانات مع الحد الأدنى من التكرار.

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

يتم سرد التقنيات الأخرى المتوفرة حاليا التي لا تعتمد على النموذج العلائقي في "قواعد البيانات العامة القادمة."

نصائح أخرى

أنا مرتبك بسؤالك. ماذا تقترح عليك أن تتبع كيف تتعلق الجداول المختلفة ببعضها البعض؟

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

أيضا، أنت تقول أنك تريد ذاكرة التخزين المؤقت "جميع الاستعلامات هي الاختناقات" وتريد فقط استعلامات "استعلامات" بسيطة ". ومع ذلك، أنا متأكد 90٪ من أن جعل الاستفسارات الصغيرة المتعددة سيكون أكثر كثافة من الموارد من صنع عدة استفسارات أصغر. ليس لديك أيضا ذاكرة التخزين المؤقت لكل مجموعة، فقط تلك الموجودة بالفعل. في مثالي، ما هو الخطأ في استعلام مثل هذا؟

SELECT person.*, car.* from person left join on car where person.car_ID = car.ID

أصبحت قواعد البيانات العلائقية قاعدة بيانات De-Facto لعدة أسباب.

  1. إن إعداد قيود أساسية وأجنبية وفريدة من نوعها يفرض بعض قواعد الأعمال على أدنى مستويات، ويساعد على ضمان تكيف البيانات، ويجعل علاقات قاعدة البيانات مفهومة بسهولة عن أي مستوى من المحترفين.

  2. قاعدة بيانات العلائقية المصممة بشكل صحيح هي في الواقع بشكل أسرع وراء الكواليس للعديد من العملية (وليس كلها).

  3. الاستعلام عن قاعدة البيانات العلائقية سريعة إلى حد ما للتعلم، وسهلة القيام به.

  4. تساعد قواعد البيانات العلائقية على الحد من ازدواجية البيانات، ومن وجهة نظر هندسة البيانات، وهذا شيء رائع.

وغيرها الكثير، ولكن هذه قليلة.

إذا كنت لا تستخدم العلاقات، فأنت بحاجة إلى تخزين كل شيء في طاولة عملاقة مع العديد من الأعمدة. أو يمكنك استخدام Datacube (أعتقد؟)

يسمح لك بتطبيع بياناتك وإزالة التمرد. بدلا من تخزين جميع البيانات في طاولة مسطحة (مثل جدول بيانات Excel)، تقوم بتخزين البيانات المتباينة في طاولات منفصلة ثم تربطها ببعضها البعض.

على سبيل المثال، يمكنك تخزين المستخدمين في جدول المستخدم والمنتجات في جدول المنتجات ثم استخدم جدول العلاقة ليرقب المستخدم الذي أمر به المنتجات التي.

Usera -> productra

Usera -> productb

Usser -> productra

UserC -> Productb

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

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

العلاقة هي الكلمة الرياضية للجدول. الأعمدة فيما يتعلق ببعضها البعض، وإلا لم تكن في نفس الجدول.

على سبيل المثال، هناك رقمين فيما يتعلق ببعضهما البعض إذا اختلفت مضاعفة 3. دعونا نكتب عدد قليل منها أسفل: (0،0)، (1،4)، (2، -1)، إلخ. تظهر مجموعة من الصفوف، وهي طاولة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top