سؤال

وفي العمل، وبدأنا مؤخرا مشروع باستخدام كاوتش دي بي (قاعدة بيانات موجهة ثيقة). لقد كان لديها صعوبة في برنامج الأمم المتحدة للتعلم كل من معرفتي ديسيبل العلائقية.

وكنت أتساءل كيف أن بعض تغلبت على هذه العقبة؟ كيف نتوقف عن التفكير علائقي والبدء في التفكير documentally (أعتذر لتشكيل تلك الكلمة).

وأي اقتراحات؟ تلميحات مفيدة؟

تحرير : إذا كان يجعل أي اختلاف، نستخدمه روبي وCouchPotato للاتصال قاعدة البيانات

.

تحرير 2 : SO كان الازعاج لي لقبول جوابا. اخترت واحدة التي ساعدتني تعلم أكثر، على ما أعتقد. ومع ذلك، لا يوجد الحقيقية "الصحيحة" الجواب، وأفترض.

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

المحلول

وأعتقد، بعد يلاحقونهم حول على بضع صفحات حول هذا الموضوع، كل هذا يتوقف على أنواع البيانات التي نتعامل معها.

تمثل

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

و"الغيمة" نوع قواعد البيانات باستخدام شيء من هذا القبيل مابريديوس، في قضيتك كاوتش دي بي، لا تجعل الافتراض أعلاه، وبدلا من أن ننظر في البيانات من أسفل إلى أعلى. البيانات هي مساهمة في الوثائق التي يمكن أن يكون أي عدد من سمات مختلفة. ويفترض أن البيانات الخاصة بك، بحكم تعريفها ذاته، متنوع في أنواع من السمات التي يمكن أن يكون. وتقول، "أنا أعرف أن لدي هذه الوثيقة في شخص قاعدة البيانات التي لديها سمة HomePlanet من" Eternium "والاسم الأول" سيد القاضم "ولكن لا اسم العائلة." هذا نموذج يناسب صفحات الويب: كل صفحات الويب هي وثيقة، ولكن الفعلية محتويات / علامات / مفاتيح الوثيقة تختلف سو على نطاق واسع أنه لا يمكن أن يصلح لهم في هيكل صلب أن الباباوات نظم إدارة قواعد البيانات من على ارتفاع. هذا هو السبب في جوجل يعتقد أن roxors نموذج مابريديوس soxors، لأن مجموعة بيانات Google هي متنوعة لذلك يحتاج إلى بناء في لالغموض من الحصول أولا بأول، ويرجع ذلك إلى مجموعات البيانات الضخمة تكون قادرة على الاستفادة من المعالجة المتوازية (وهو ما يجعل مابريديوس تافهة) . يفترض نموذج قاعدة بيانات ثيقة سمات البيانات الخاصة بك قد / لن يتغير الكثير، أو أن تكون متنوعة جدا مع "الثغرات" والكثير من الأعمدة ذات الكثافة السكانية المنخفضة التي يمكن للمرء أن يجد إذا تم تخزين البيانات في قاعدة بيانات علائقية. في حين يمكن استخدام RDBMS لتخزين البيانات مثل هذا، فإنه يحصل القبيح سريع حقا.

لإجابة على سؤالك ثم: لا يمكن التفكير "علائقي" على الإطلاق عند النظر في قاعدة بيانات يستخدم نموذج مابريديوس. لأنه لم يكن لديك فعلا علاقة القسري. انها سنام المفاهيمي عليك فقط للحصول على أكثر.


وهناك مادة جيدة جريت إلى أن يقارن ويتناقض قاعدتي بشكل جيد هو <وأ href = "http://www.databasecolumn.com/2008/01/mapreduce-a-major-step-back.html" يختلط = "noreferrer"> مابريديوس في خطوة كبيرة للخلف ، و التي تقول أن قواعد البيانات نموذج مابريديوس هي خطوة تكنولوجية إلى الوراء، وأقل شأنا من RDBMSes. وقد نختلف مع أطروحة المؤلف وسيقدم أن مصمم قاعدة البيانات سوف يكون ببساطة لتحديد حق واحد بالنسبة له / لها الوضع.

نصائح أخرى

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

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

وغير العلائقية / البيانات مثل وثيقة من المنطقي عندما تتم تسويته. وهو لا يغير كثيرا أو كنت لا تهتم الكثير عن الاتساق.

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

وهنا مقالة جيدة حول قواعد بيانات غير العلائقية .

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

في كاوتش دي بي، مثل لوتس نوتس، هل حقا لا ينبغي أن نفكر في الوثيقة بأنها مماثلة لصف واحد.

وبدلا من ذلك، الوثيقة هو بالنسبة (الجدول).

وكل وثيقة لديها عدد من الصفوف - قيم الحقول:

ValueID(PK)  Document ID(FK)   Field Name        Field Value
========================================================
92834756293  MyDocument        First Name        Richard
92834756294  MyDocument        States Lived In   TX
92834756295  MyDocument        States Lived In   KY

وكل عرض استعلام التبويب عبر أن يختار عبر UNION الهائل في ALL من كل وثيقة.

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

وقواعد البيانات الموجهة الوثيقة، لا يرفض مفهوم العلاقات، وانهم فقط في بعض الأحيان السماح التطبيقات dereference الروابط (كاوتش دي بي)، أو حتى الحصول على دعم مباشر للعلاقات بين المستندات (MongoDB). ما هو أكثر أهمية هو أن DODBs هي مخطط أقل. في المخازن على أساس الجدول يمكن أن يتحقق هذا العقار بواسطة فوق هام (انظر الإجابة من طرف richardtallent)، ولكن هنا يتم ذلك بشكل أكثر كفاءة. ما نحن حقا يجب ان تتعلم عند التبديل من RDBMS إلى DODB هو أن ننسى حول الجداول ونبدأ في التفكير في البيانات. وهذا ما يدعو sheepsimulator نهج "من القاعدة إلى القمة". انها مخطط المتطورة باستمرار، وليس سرير إكراه محدد مسبقا. طبعا هذا لا يعني أن المخطط ينبغي التخلي تماما بأي شكل من الأشكال. يمكن القيام بذلك عن طريق تنظيم الوثائق إلى مجموعات، من خلال جعل النماذج مع أساليب التحقق من صحة - - طلبك يجب تفسير البيانات، بطريقة أو بأخرى تقييد شكله. ولكن هذا هو الآن وظيفة التطبيق

قد يكون عليك أن تقرأ هذا http://books.couchdb.org/relax/getting-started

وانا نفسي سمعت فقط وأنها مثيرة للاهتمام لكن ليس لديهم فكرة عن كيفية تنفيذ ذلك في تطبيق العالم الحقيقي؛)

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

وهنا مقال جويل قليلا حول هذا الموضوع: HTTP: //www.joelonsoftware كوم / المواد / 2006/08 / 01.html

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