اذهب إلى المحتوى
  • 0

الفرق بين mangodb و mysql

ساره ابوشعاله

السؤال

انا اقوم بعمل تطبيق ويب لحجز صالات المناسبات 

و اريد ان ابدا ببناء قاعدة البيانات و لكن الحيره هنا في ايهما سأستخدم mangodb و mysql و ميزات كل واحده منهما و ايضا اسعار الاستضافه مثل godaddy قواعد mysql مجانيه علي خلاف mangodb فهل سأستطيع ان اجد مشتضيف مجاني لقواعد mangodb

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

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

فمن مميزات MongoDB أنها تشمل تخزين البيانات بشكل مرن باستخدام الوثائق (documents) في صيغة JSON-like، مما يجعلها مناسبة للبيانات غير المتجانسة أو المتغيرة بسرعة، فهي تتصف بأن لها مرونة عالية في التوسع الأفقي أو ما يعرف ب (horizontal scaling) وعدم الحاجة إلى تحديد بنية البيانات مسبقا، مما يتيح تعديل البيانات بسهولة. كما يوفر أداءً جيدًا في العمليات التي تتطلب قراءة وكتابة بيانات كبيرة بشكل سريع. من العيوب أنها ليست مثالية للعلاقات المعقدة بين البيانات مثل العلاقات الموجودة في قواعد البيانات العلائقية.

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

يمكنك التوسع في الموضوع من هنا:

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

تعمل كل قاعدة بيانات بصورة مختلفة عن الأخرى للاختلاف في نوع قواعد البيانات التي يتعاملان معها ولكن يمكنك تحديد قاعدة البيانات المناسبة لك من خلال معرفة الفرق بينهما

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

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

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

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

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

  • معلومات عن الصالات: الموقع، السعة، السعر، الميزات.
  • معلومات عن العملاء: الاسم، البريد الإلكتروني، رقم الهاتف.
  • بيانات الحجوزات: تاريخ الحجز، وقت الحجز، نوع المناسبة.

بينما MongoDB (NoSQL) مصممة للتوسع الأفقي و التعامل مع كميات هائلة من البيانات، وتتيح لكِ تخزين مجموعة متنوعة من البيانات، بما في ذلك البيانات الغير منظمة مثل الصور والفيديوهات، وتتميز بالسرعة العالية في معالجة البيانات، خاصةً مع الاستعلامات التي تتطلب قراءة بيانات متعددة.

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

وللعلم MongoDB مجانية لكن ستحتاجين إلى استضافة VPS لتثبيتها، أما إذا أردتي خدمة سحابية فيوجد MongoDB  Atlas.

و MongoDB ستكون خيارًا أفضل في حال تتوقعين نموًا سريعًا لتطبيقك وتحتاجين إلى تخزين بيانات غير منظمة.

إذًا في مشروعك MySQL هي الخيار الأنسب.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ On 14‏/5‏/2024 at 18:06 قال Mustafa Suleiman:

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

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

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

  • معلومات عن الصالات: الموقع، السعة، السعر، الميزات.
  • معلومات عن العملاء: الاسم، البريد الإلكتروني، رقم الهاتف.
  • بيانات الحجوزات: تاريخ الحجز، وقت الحجز، نوع المناسبة.

بينما MongoDB (NoSQL) مصممة للتوسع الأفقي و التعامل مع كميات هائلة من البيانات، وتتيح لكِ تخزين مجموعة متنوعة من البيانات، بما في ذلك البيانات الغير منظمة مثل الصور والفيديوهات، وتتميز بالسرعة العالية في معالجة البيانات، خاصةً مع الاستعلامات التي تتطلب قراءة بيانات متعددة.

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

وللعلم MongoDB مجانية لكن ستحتاجين إلى استضافة VPS لتثبيتها، أما إذا أردتي خدمة سحابية فيوجد MongoDB  Atlas.

و MongoDB ستكون خيارًا أفضل في حال تتوقعين نموًا سريعًا لتطبيقك وتحتاجين إلى تخزين بيانات غير منظمة.

إذًا في مشروعك MySQL هي الخيار الأنسب.

عندما قمت بالمرور على اغلب المسارات وجدت انه معظمهم يستخدمون mango db مع بيئة عمل node.js t فهل تنصحني ان اكمل تعلمها و لماذا وجدت mysql مناسبة اكثر لمشروعي مع انك قمت بذكر مميزاتها و التي تعد افضل من mysql

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ On 23‏/5‏/2024 at 20:06 قال ساره ابوشعاله:

عندما قمت بالمرور على اغلب المسارات وجدت انه معظمهم يستخدمون mango db مع بيئة عمل node.js t فهل تنصحني ان اكمل تعلمها و لماذا وجدت mysql مناسبة اكثر لمشروعي مع انك قمت بذكر مميزاتها و التي تعد افضل من mysql

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

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

هيا إلى مثال عملي (فبالمثال يتضح المقال) وليكن المشروع الذي تقومين بالعمل عليه وهو تطبيق حجز قاعات المناسبات:

في هذا التطبيق يواجههنا احتمالان:

الاحتمال الأول: أن خصائص الحجز واضحة ومحددة وثابتة، بمعني كل حجز له تاريخ، عدد مدعويين، عدد مشروبات، عدد وجبات.

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

الاحتمال الثاني: خصائص الحجز تتنوع وتختلف بشكل كبير جدًا لكل حجز،

فهناك حجز يتم فيه تحديد التاريخ وعدد المدعويين فقط

وحجز آخر يتم فيه تحديد التاريخ واسم الفرقة وعدد الوجبات

وحجز ثالث يتم فيه تحديد التاريخ وعدد المدعويين ونظام الإضاءة وعدد الوجبات وفريق التصوير

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

وباتباع المثال السابق يمكن تحديد نوع قواعد البيانات في كل مشروع.

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ On 24‏/5‏/2024 at 21:56 قال El Sayed El Tohamy:

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

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

هيا إلى مثال عملي (فبالمثال يتضح المقال) وليكن المشروع الذي تقومين بالعمل عليه وهو تطبيق حجز قاعات المناسبات:

في هذا التطبيق يواجههنا احتمالان:

الاحتمال الأول: أن خصائص الحجز واضحة ومحددة وثابتة، بمعني كل حجز له تاريخ، عدد مدعويين، عدد مشروبات، عدد وجبات.

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

الاحتمال الثاني: خصائص الحجز تتنوع وتختلف بشكل كبير جدًا لكل حجز،

فهناك حجز يتم فيه تحديد التاريخ وعدد المدعويين فقط

وحجز آخر يتم فيه تحديد التاريخ واسم الفرقة وعدد الوجبات

وحجز ثالث يتم فيه تحديد التاريخ وعدد المدعويين ونظام الإضاءة وعدد الوجبات وفريق التصوير

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

وباتباع المثال السابق يمكن تحديد نوع قواعد البيانات في كل مشروع.

 

شكراً لك على الشرح الأكثر من رائع

 

بتاريخ On 24‏/5‏/2024 at 21:56 قال El Sayed El Tohamy:

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

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

هيا إلى مثال عملي (فبالمثال يتضح المقال) وليكن المشروع الذي تقومين بالعمل عليه وهو تطبيق حجز قاعات المناسبات:

في هذا التطبيق يواجههنا احتمالان:

الاحتمال الأول: أن خصائص الحجز واضحة ومحددة وثابتة، بمعني كل حجز له تاريخ، عدد مدعويين، عدد مشروبات، عدد وجبات.

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

الاحتمال الثاني: خصائص الحجز تتنوع وتختلف بشكل كبير جدًا لكل حجز،

فهناك حجز يتم فيه تحديد التاريخ وعدد المدعويين فقط

وحجز آخر يتم فيه تحديد التاريخ واسم الفرقة وعدد الوجبات

وحجز ثالث يتم فيه تحديد التاريخ وعدد المدعويين ونظام الإضاءة وعدد الوجبات وفريق التصوير

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

وباتباع المثال السابق يمكن تحديد نوع قواعد البيانات في كل مشروع.

 

يوجد لدي سؤال اخر 

اريد توضيح نقطة انه قاعدة البيانات ستكون في حالة تطوير مستمر و عندما قرأت عن القواعد البيانات العلائقيه ف هيا غير مناسبة لمثل هذا النوع من التطبيقات لانه ستسبب مشاكل على غرار قواعد البيانات الغير علائقيه ف كيف يمكنني من هده النقطه تحديد الأفضل بالنسبة لي!

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...