لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 01/16/25 في كل الموقع
-
4 نقاط
-
انا جديد هنا . هل يوجد كورس مجاني لجافا سكربت في اكاديمية حاسوب2 نقاط
-
السلام عليكم مش البرمجه تبقى أداة رئيسية لبناء الحلول القوية والمبتكرة في عصر الذكاء الاصطناعي ؟2 نقاط
-
وعليكم السلام ورحمة الله، النماذج التنبؤية لا تفشل بالمعنى المطلق بل تعاني من قصور في معالجة الفجوات المتعلقة بهذه الحالات وهذا بسبب تحيزات في البيانات أو تصميم النماذج وهذا القصور يؤدي إلى نتائج غير دقيقة أو غير عادلة لفئات معينة مما يجعلها تبدو وكأنها "تفشل" في التعامل مع هذه الفجوات فعندما تكون البيانات المستخدمة لتدريب النماذج غير متنوعة أو تأتي بشكل رئيسي من فئات معينة، فإن النموذج يصبح أكثر دقة لتلك الفئات فقط، بينما يفشل في التعامل مع الفئات الأخرى وقد تتجاهل النماذج العوامل الاجتماعية والاقتصادية المهمة، مثل الفقر أو التمييز التاريخي، مما يؤدي إلى توقعات غير دقيقة أو غير عادلة. ولتحسين هذه النماذج، يجب ضمان تمثيل جميع الفئات في البيانات ومراعاة العدالة في تصميم الخوارزميات واختبار النماذج على مجموعات متنوعة لضمان دقتها وعدالتها للجميع.1 نقطة
-
السلام عليكم كنت اريد تحميل صورة لعبة المتاهة في برنامج سكراتش لكن البرنامج يرفض ثم وضعت الصورة تقريبا على جميع الصيغ لكنه يرفض ارجو المساعدة1 نقطة
-
لا يوجد حاليا خصومات أو عروض بخصوص الدورات التي تقدمها الأكاديمية ولكن دائما ما يتم توفير عروض في المناسبات . ويمكنك محادثة مركز الدعم للسؤال إذا كان هنا عروض متوفرة . ولكن توجد عدة مقالات ودروس كثيرة هنا مجانية على موقع الأكاديمية ومقسمة ومنظمة بشكل جيد ويمكنك الوصول إليها من خلال الرابط التالي : https://academy.hsoub.com/programming/ وأيضا يمكنك الذهاب إلى موسوعة حسوب حيث توجد دروس كثيرة أيضا متوفرة هناك بشكل مجاني : https://wiki.hsoub.com/الصفحة_الرئيسية1 نقطة
-
الدورات الموجودة بأكاديمية حسوب مدفوعة ومنها دورة جافاسكريبت ولكنها تقدم مقالات تعليمية مجانية تغطي العديد من المواضيع البرمجية بما في ذلك جافا سكريبت. ولذلك يمكنك الإطلاع على سلسلة الدروس الخاصة بجافاسكريبت ومكتباتها من خلال هذا الرابط كما يوجد كتاب البرمجة بلغة جافاسكربت من خلال أكاديمية حسوب من هذا الرابط1 نقطة
-
1 نقطة
-
وعليكم السلام ورحمة الله، هذا أكيد علي، فالبرمجة بلا شك هي أداة أساسية لبناء الحلول المبتكرة في عصرنا الحالي فهي تتيح لنا تطوير الخوارزميات ومنه بناء نماذج تعلم آلة متطورة، نستطيع من خلالها معالجة البيانات ومنه تحليل كميات كبيرة من البيانات ونحقق من خلالها التكامل من خلال دمج تقنيات وأدوات الذكاء الاصطناعي في مختلف التطبيقات التي نبرمجها. كما أنّ عامل التخصيص يساعدنا لتكييف الحلول حسب احتياجات محددة وهذا لا يمكن أن يتمّ دون برمجة، علاوة على ذلك تساعدنا في تحسين النماذج وهذا ما يؤدي لتطوير أداء وكفاءة الأنظمة الذكية، أي أنّ العلاقة بينهما ضرورية لتحقيق الابتكار واستمرارية التطوير في كلا المجالين، البرمجة والذكاء الاصطناعي. يمكنك البحث عن أيّ مقالة تريد في قسم المقالات "الذكاء الاصطناعي" وستجد معلومات مفيدة أكثر: https://academy.hsoub.com/programming/artificial-intelligence/1 نقطة
-
تمام جدا جدا الف شكراا لحضرتك1 نقطة
-
1 نقطة
-
السلام عليكم حاليا بحاول اطور تطبيق موبايل لمشروع شخصي ومحتاج اغير جهاز اللاب توب بس السؤال اني لو طورته فلاتر وقدرت اصممه android و iOS هل يشترط الجهاز لاداره المشروع فيما بعد يكون ماك او ويندوز بحيث قرار التغيير يكون بناء علي مستقبل التطبيق1 نقطة
-
ما يحدث هنا أن PyCharm يعمل بشكل افتراضي باستخدام البيئة الافتراضية المحددة في إعدادات المشروع، حتى لو لم تقم بتنشيط البيئة يدويا من الطرفية لكن إذا قمت بتشغيل الكود مباشرة من الطرفية باستخدام الأمر: python test.py فسيحاول بايثون استخدام المفسر الافتراضي للنظام وليس البيئة الافتراضية مما يؤدي إلى ظهور خطأ ModuleNotFoundError إذا كانت المكتبة غير مثبتة في المفسر الافتراضي ويحدث هذا لأنه في: في PyCharm: البيئة الافتراضية مهيأة في إعدادات المشروع لذلك يتم تشغيل الكود باستخدام المفسر المحدد (البيئة الافتراضية)، حتى إذا لم تقم بتفعيلها يدويا. في Terminal: عند تشغيل الكود باستخدام الأمر python يتم استخدام المفسر الافتراضي للنظام إذا لم تكن البيئة الافتراضية مفعّلة. لذا يجب التأكد من تفعيل البيئة الافتراضية عند العمل من الطرفية: .venv\Scripts\activate ثم تشغيل الملف.1 نقطة
-
ذلك يعتمد بشكل كبير على كمية البيانات المتبقية ونمط القيم المفقودة فإذا كانت القيم المفقودة عشوائية وتمثل نسبة صغيرة من الأعمدة أو الصفوف المتبقية، فإن التأثير قد يكون محدودا خاصة إذا تم استخدام تقنيات معالجة مثل إحلال القيم المفقودة (Imputation) باستخدام المتوسط، الوسيط، أو الفئة الأكثر شيوعا. وأما إذا كانت القيم المفقودة تتركز في أعمدة أو صفوف رئيسية ذات تأثير كبير على النموذج فإن ذلك سيؤدي إلى فقدان التمثيل السليم للبيانات مما يقلل من دقة النموذج ويزيد من التحيز فإذا كانت نسبة البيانات المفقودة مرتفعة للغاية، فإن كمية البيانات المستخدمة لتدريب النموذج قد تصبح غير كافية، مما يؤدي إلى ضعف التعميم عند التنبؤ بالبيانات الجديدة. للتخفيف من هذا التأثير، يمكنك حذف الأعمدة أو الصفوف ذات القيم المفقودة بشكل مفرط، أو استخدام تقنيات مثل النماذج التي تتحمل القيم المفقودة (مثل أشجار القرار)، مع التأكد من أن البيانات المتبقية تعكس التوزيع الأصلي لتجنب انحراف النتائج.1 نقطة
-
في هذه الحالة القيم NaN ظاهرة في الجدول لأن عملية groupby تقوم بإنشاء جدول تقاطعي ما يعرف ب cross-tabulation يحتوي على جميع التركيبات الممكنة بين year_hct و prim_disease_hct وعندما لا يوجد أي حالات لمرض معين في سنة معينة سيتم عرضها ك NaN أي Not a Number لذا إذا كنت تريد إزالة قيم NaN من الجدول يمكنك استخدام fillna(0) لاستبدال NaN بالقيمة 0 كالتالي: disease_year_distribution = data_train.groupby(['year_hct' , 'prim_disease_hct']).size().unstack().fillna(0) print(disease_year_distribution) هذا سيعرض نفس الجدول ولكن مع استبدال جميع قيم NaN بالصفر مما يعني أنه لم تكن هناك حالات لهذا المرض في تلك السنة المحددة.1 نقطة
-
وجود قيم NaN في الجدول الناتج يمكن أن يكون بسبب طبيعة عملية groupby و unstack، حتى لو قمت بمسح القيم الناقصة من البيانات الأصلية، فإن القيم الفارغة قد تظهر في النتيجة بسبب الطريقة التي ترتب بها البيانات عند تنفيذ العملية. حيث أن unstack يقوم بتحويل القيم الفريدة في عمود prim_disease_hct إلى أعمدة، و إذا لم يكن هناك أي بيانات مطابقة بين year_hct وقيمة معينة من prim_disease_hct في مجموعة بيانات معينة، فستظهر تلك الخلية كـNaN، لأن مكتبة pandas تتوقع وجود جميع القيم الممكنة لكنه لم يجدها.1 نقطة
-
نعم، لغة Python تعتبر مطلوبة جدًا في سوق العمل في تطوير الويب. Python هي إحدى اللغات البرمجية الشائعة والمستخدمة على نطاق واسع في تطوير تطبيقات الويب والمواقع الإلكترونية وتتميز Python بعدة مزايا تجعلها مناسبة لتطوير الويب سهولة تعلم اللغة بحيث تعتبر لغة Python لغة برمجة سهلة التعلم والفهم، مما يجعلها ملائمة للمبتدئين والمطورين الذين يرغبون في اكتساب مهارات برمجة الويب. الوفرة والقوة بحيث أن لغة Python توفر مكتبات وأطر عمل قوية مثل Django وFlask وPyramid وغيرها، التي تسهل وتسرع عملية تطوير تطبيقات الويب وتحسن من جودتها. قابلية الاندماج يمكن استخدام Python بسهولة في تطوير الويب بجانب تقنيات أخرى مثل HTML وCSS وJavaScript، مما يتيح إمكانية الاندماج مع العناصر الأخرى في تطبيقات الويب. مجتمع نشط تتمتع Python بمجتمع كبير ونشط من المطورين، مما يعني وجود العديد من المصادر والمكتبات المفتوحة المصدر والتوثيق المتاحة، وذلك يسهل عملية التطوير ويوفر دعمًا قويًا في حالة وجود أي استفسارات أو مشاكل. لهذه الأسباب وغيرها، فإن Python تظل لغة برمجة شائعة ومطلوبة في سوق العمل في تطوير الويب. اختيار بين Django و Flask يعتمد على الاحتياجات الخاصة بمشروع التطوير الخاص بك ومدى تعقيد المشروع ومستوى الخبرة الخاصة بك كمطور. Django Django هو إطار عمل قوي وشامل يهدف إلى تسريع عملية تطوير تطبيقات الويب. يوفر Django العديد من المكونات والميزات المدمجة مثل نظام إدارة قواعد البيانات ونظام التوثيق ونظام التوجيه وإنشاء واجهات المستخدم الإدارية. يوفر Django بنية تطوير معتمدة على المجلدات والملفات، مما يسهل إعادة استخدام الشفرة والتعاون في فرق التطوير. Django يعتبر مثاليًا لتطوير تطبيقات الويب الكبيرة والمعقدة التي تتطلب إدارة كبيرة للبيانات والمحتوى. Flask Flask هو إطار عمل صغير الحجم ومرن يركز على البساطة والمرونة في التطوير. يقدم Flask مجموعة من الأدوات الأساسية لتطوير تطبيقات الويب بما في ذلك نظام التوجيه ونظام القوالب والتكامل مع قواعد البيانات. يسمح Flask للمطورين بالتحكم الكامل في عملية التطوير وتنظيم الشفرة بطريقة مرنة وحسب احتياجات المشروع. Flask يعتبر مناسبًا لتطوير تطبيقات الويب الصغيرة والمشاريع البسيطة التي لا تتطلب الكثير من الأدوات والميزات المدمجة. إذا كنت تبحث عن إطار عمل قوي ومتكامل لتطوير تطبيقات الويب الكبيرة والمعقدة، فإن Django هو الخيار الأمثل. أما إذا كنت تفضل مرونة وبساطة الإطار العمل وترغب في التحكم الكامل في عملية التطوير، فإن Flask يمكن أن يكون الخيار الأفضل لك.1 نقطة
-
يمكن القول بأنَّ هناك طلب على مجالات مختلفة في سوق العمل، ويختلف الطلب بين المناطق. ولكن بشكل عام، فإنَّ تصميم وتطوير تطبيقات الهواتف المحمولة هو مجال يشهد طلبًا متزايدًا في الفترة الأخيرة، ويمكن اعتباره مجالًا مستقبليًا. وأنصحك بتصفح مواقع العمل الحر مثل موقع مستقل وسوف تري أن اغلب الوظائف هناك عن تطبيقات الموبيل وبالأخص باستخدام إطار العمل Flutter. أو تصفح مواقع العمل في الشركات مثل موقع LinkedIn. وبالنسبة للفرق بين لغة Dart و Python في تصميم تطبيقات الهواتف، فإنَّ Python هي لغة برمجة عامة تستخدم في مجالات مختلفة، بما في ذلك تصميم تطبيقات الهواتف المحمولة. أما Dart فهي لغة برمجة تستخدم بشكل أساسي في تطوير تطبيقات الهواتف المحمولة باستخدام إطار العمل Flutter. يمكن القول بأنَّ Python تستخدم بشكل أوسع في مجالات مختلفة خارج تصميم تطبيقات الهواتف، مثل تحليل البيانات والذكاء الاصطناعي والحوسبة العلمية وغيرها. أما Dart فهي لغة متخصصة بشكل أكبر في تصميم تطبيقات الهواتف المحمولة، وتستخدم بشكل أساسي مع إطار العمل Flutter.1 نقطة
-
كلاهما مطلوبان في سوق العمل، لكن لكل سوق عمل متطلباته فربما لديك المطلوب بكثرة هي لغة جافاسكريبت وإطارات العمل والمكتبات الخاصة بها مثل React و Node.js. لذلك لإتخاذ القرار بشكل سليم وليس بناءًا على تفضيلات شخصية أو إحصائيات عالمية، حدد ماذا تريد أنت بالضبط هل تريد العمل في السوق المحلي؟ إذًا توجه لمواقع التوظيف الشهيرة في بلدك مثل LinkedIn وغيرها أنت أدرى بهم، وتفقد هل هناك وظائف متاحة لمطور واجهات خلفية بلغة بايثون وإطار دجانغو قم بالبحث بأكثر من كلمة مفتاحية مثل backend developer أو Django developer أو python developer. فإن وجدت طلب على تلك المهارات فأنت في الطريق السليم، وإن لم تجد عليك بسؤال شخص له خبرة سواء من خلال جروب على فيسبوك يجمع مبرمجي بلدك أو شخص تعرفه يعمل في السوق المحلي لديك. وفي حال لم تكن مطلوبة، عليك باستكمال تعلم أساسيات بايثون فستحقق استفادة منها لا شك، بعد ذلك انتقل لتعلم جافاسكريبت والإطارات والمكتبات الخاصة بها، أو لغة PHP وإطار لارافيل ومنصة وورد بريس. وقبل أن تتعلم أي لغة سواء جافاسكريبت أو PHP عليك بالبحث والتأكد من أنها مطلوبة في سوق العمل لديك وليس التعلم لمجرد أنك تحب لغة معينة ضع شغفك جانبًا لحين الحصول على وظيفة. وإذا كنت تريد العمل على مواقع العمل الحر مثل خمسات ومستقل، عليك بتفقد المشاريع والمهارات الخاصة بها لتنفيذها، والأغلبية بحاجة إلى مبرمجين PHP وإطار لارافيل ومنصة وورد بريس وذلك على مواقع العمل الحر العربية. لا تستمتع لأحد ليس لديه خبرة، وتفقد أنت الوظائف وقرر بعد ذلك، وابحث بكلمات مختلفة مثل react developer أو node.js developer أو php developer أو laravel developer أو WordPress developer وطالما أنك تريد الواجهة الخلفية فقم بالبحث عن backend developer وتفقد ما هي اللغات وإطار العمل الأكثر طلبًا بالنسبة لمستوى Junior أو Entry level أو خبرة سنة.1 نقطة
-
للإجابة على ذلك يجب ذكر مثال لوصف وظيفة خاصة بمطور بايثون حيث ستجد وصف مشابه له على مواقع التوظيف مثل LinkedIn: معرفة عميقة بلغة بايثون وقدرة على استخدامها لبناء تطبيقات ويب. خبرة في استخدام إطار عمل مثل Django أو Flask لبناء واجهات المستخدم الخلفية. معرفة باستخدام مكتبات ORM للتعامل مع قواعد البيانات (مثل PostgreSQL أو MySQL) وقدرة على دمج مصادر بيانات متعددة. فهم جيد للمتعددات المتزامنة وكيفية التعامل معها بكفاءة في بايثون، أي كتابة أكواد بايثون تعمل على معالجة عدة مهام في نفس الوقت. خبرة في استخدام محركات قوالب مثل Jinja2 لإنشاء صفحات ديناميكية. فهم أساسي لـ HTML, CSS, و JavaScript لبناء واجهات مستخدم جذابة. معرفة بمبادئ الأمان، المصادقة، والتفويض. فهم المبادئ التصميمية الجيدة لبناء تطبيقات قابلة للتطوير والصيانة. خبرة في استخدام مكتبات لمعالجة الأحداث التي تسمح بتنفيذ أكواد معينة عند حدوث أحداث محددة. قدرة على بناء تطبيقات تعمل بكفاءة على منصات متعددة (جوال، سطح مكتب). القدرة على تصميم قواعد بيانات فعالة تلبي احتياجات العمل. مهارات قوية في اختبار الوحدات وتصحيح الأخطاء. خبرة في استخدام أدوات مثل Git لإدارة إصدارات الكود. ونظرًا إلى ما سبق أنت ستتعلم في الدورة التالي: الأسس البرمجية السليمة عبر لغة Python التعامل مع مختلف صيغ الملفات مثل إكسل Excel وورد Word وخدمات المستندات السحابية استخراج البيانات من صفحات الويب Web Scraping وتحليلها أساسيات التعامل مع قواعد البيانات عبر بايثون، والتعامل مع البريد الإلكتروني لإرسال الرسائل أساسيات إطار العمل جانغو Django بناء تطبيق إدارة المهام باستخدام إطار العمل جانغو Django تطوير متجر إلكتروني متكامل باستخدام إطار العمل جانغو Django وربطه مع وسائل الدفع باي بال PayPal وسترايب Stripe أساسيات إطار العمل فلاسك Flask، وبناء مدونة بسيطة تطوير تطبيقات أودو Odoo تطوير واجهة برمجية API اعتمادًا على نمط RESTful لمعالجة الصور وبالتالي أنت قد ألممت بجزء كبير من وصف الوظيفة، وتحتاج فقط إلى تعلم أساسيات تقنيات الواجهة الأمامية، مثل JavaScript و HTML5 و CSS3. وبالنسبة لطريقة التعلم المناسبة فأرجو منك قراءة النقاش التالي وقراءة النقاشات التي إرفاقها بداخله:1 نقطة
-
لا يمكن لأي دورة تعليمية واحدة أن تعطيك كل ما تحتاجه للحصول على وظيفة كمطور بايثون. ومع ذلك، فإن دورة تطوير تطبيقات البايثون يمكن أن تكون خطوة جيدة في الطريق الصحيح نحو تعلم البايثون وتطوير الويب، ولكن هناك الكثير من المهارات والمعرفة الأخرى التي قد تحتاج إليها. من أجل الحصول على وظيفة كمطور بايثون، يجب عليك تعلم البايثون جيدًا، وتطوير فهم قوي للمفاهيم الأساسية والمهارات اللازمة لتطوير تطبيقات الويب. يجب أن تكون لديك فهم جيد للعمليات الأساسية للتطبيقات الخلفية، مثل تخزين البيانات، والاتصال بقواعد البيانات، والتحكم في الخطأ والاستثناءات. بالإضافة إلى ذلك، يجب عليك أن تتعلم أدوات وتقنيات أخرى، مثل Django و Flask و SQL و Git والتصميم العام للتطبيقات ومفاهيم البرمجة الكائنية. إذا كنت قادرًا على تعلم هذه المهارات، فإنك ستكون على المسار الصحيح للحصول على وظيفة كمطور بايثون. بالنسبة لنصائحك خلال الدورة، فإليك بعض النصائح العامة: حافظ على التركيز: قسم الدورة إلى أجزاء لتسهيل مشاهدة الفيديوهات، ولكن لا تنسى التركيز على المفاهيم الأساسية والتمارين والتطبيقات العملية. تمرن على الكتابة: بالإضافة إلى مشاهدة الفيديوهات والحفظ، تمرن على كتابة الشفرة بنفسك وحل المشاكل البرمجية الصعبة. يمكنك استخدام مواقع التحديات البرمجية لتطبيق ما تعلمته في الدورة وتحسين مهاراتك. ابحث عن الاستشارة والمساعدة: إذا واجهتك مشاكل أثناء التعلم، لا تتردد في البحث عن المساعدة والاستشارة من المجتمعات البرمجية عبر الإنترنت، مثل Stack Overflow، أو المنتديات، أو المدونات التعليمية. قم بمشاريع عملية: بمجرد أن تكون على دراية بالمفاهيم الأساسية لتطوير تطبيقات الويب باستخدام البايثون، قم بعمل مشاريع عملية لتطبيق ما تعلمته وتحسين مهاراتك. يمكنك إنشاء تطبيقات ويب بسيطة ونشرها عبر الإنترنت، أو العمل على مشاريع مفتوحة المصدر مع المجتمعات البرمجية. لا تنس التعلم المستمر: يجب عليك الاستمرار في تعلم البايثون وتطوير الويب، ومتابعة أحدث التقنيات والأدوات. يمكنك الاشتراك في دورات تعليمية متقدمة، أو حضور الندوات البرمجية، أو الاشتراك في المجتمعات البرمجية عبر الإنترنت.1 نقطة
-
في مقال اليوم نقدم شرحًا وافيًا عن أنواع قواعد البيانات الأكثر شيوعًا والتي يحتاج أي مطور لمعرفتها لتطوير التطبيقات المختلفة ونوضح طريقة تخزين البيانات ضمنها وأبرز مميزاتها ونذكر أمثلة متنوعة عن كل نوع منها ونساعدك على اختيار نوع قاعدة البيانات الأنسب لتخرين بياناتك. فالبيانات اليوم عصب حياتنا المعاصرة ولا غنى عنها لتسيير أعمال الأنظمة الحديثة، وجميع النشاطات التجارية في مختلف المجالات باتت تحتاج إلى تخزين كم هائل من البيانات حول عملاءها وموظفيها ومعاملاتها ومنتجاتها وفواتيرها …إلخ. ولا تقتصر أهمية البيانات على الأنشطة التجارية بل حتى الحياة الشخصية حيث تخزن الأجهزة الإلكترونية المحيطة بنا الكثير من التفاصيل عنا. لذا، كان لابد من طريقة لتخزين وتنظيم هذه البيانات وإدارتها بشكل فعال، ومن هنا ظهر مفهوم قاعدة البيانات وابتكرت أنواع مختلفة من قواعد البيانات لكل منها منهجية مختلفة في تصميمها وطريقة تعاملها مع البيانات. ما هي قواعد البيانات؟ قبل أن نتعرف على أنواع قواعد البيانات المختلفة دعنا نعرف في البداية ما معنى البيانات وما هي قاعدة البيانات وما أهميتها. البيانات اليوم أحد الركائز الأساسية لأي مجال عمل معاصر، ولتنظيم هذه البيانات وتسهيل التعامل معها يتم تخزينها ضمن قواعد بيانات Database أو بالمعنى الأدق حاوية بيانات تسهل إدارة هذه البيانات وتحافظ على أمنها وسلامتها وبالتالي قاعدة البيانات هي بمثابة مستودع أو حاوية للبيانات. وتحتاج قاعدة البيانات إلى نظام خاص لإدارتها وهو ما يعرف بنظام إدارة قواعد البيانات Database Management System أو اختصارًا DBMS كي يسمح لنا بالاتصال المباشر مع قاعدة البيانات وتخزين البيانات فيها أو استخراج البيانات المخزنة فيها أو ما يعرف بالاستعلام عن البيانات Query بالإضافة إلى معالجتها من تحديث وحذف ونقل …إلخ. من المصطلحات الأساسية المرتبطة بقواعد البيانات كذلك مخطط قاعدة البيانات Database Schema وهو عبارة عن مخطط منطقي يشبه المخطط المعماري لأي بناء يصف هيكيلة قاعدة البيانات وبنيتها من جداول وأعمدة كل جدول ونوع البيانات الذي يأخذه كل عمود والارتباطات بين أعمدة الجداول والقيود المطبقة على البيانات المدخلة أو المعالجة وغيرها من التفاصيل. دورة علوم الحاسوب دورة تدريبية متكاملة تضعك على بوابة الاحتراف في تعلم أساسيات البرمجة وعلوم الحاسوب اشترك الآن أنواع قواعد البيانات هناك أنواع مختلفة من قواعد البيانات تعتمد على خصائص البيانات التي تخزنها وطريقة تخزين هذه البيانات ومن أهم أنواع قواعد البيانات التي يحتاج المبرمج لفهمها: قواعد البيانات العلاقية Relational Databases قواعد البيانات غير العلاقية Non-Relational Databases قواعد البيانات كائنية التوجه Object Oriented Databases قواعد البيانات السحابية Cloud Databases قواعد البيانات المركزية Centralized Databases قواعد البيانات الموزعة Distributed Databases سنتعرف في الفقرات التالية على شرح مفصل عن كل نوع من هذه الأنواع وأهم مميزاتها وحالات استخدامها. 1. قواعد البيانات العلاقية SQL قواعد البيانات العلاقية Relational Databases -أو العلائقية- أو تعرف أيضًا بقواعد بيانات SQL هي من أكثر أنواع قواعد البيانات شيوعًا واستخدامًا، وهي تخزن البيانات ضمن جداول منظمة لها مخطط ثابت، ويتكون كل جدول من مجموعة من الصفوف والأعمدة التي ترتبط بعلاقات مع بعضها البعض لتشكل قاعدة بيانات ومن هنا جاءت تسميتها بالعلاقية لتميزها بوجود تلك العلاقات بين الجداول. تمثل الأعمدة خصائص أو سمات الجدول ويمثل الصف القيمة الفعلية لهذه الخاصية ويمثل كل سطر في الجدول سجلًا ويتضمن كل جدول في قاعدة البيانات عمودًا يسمى المفتاح لا يتكرر بين سجل وآخر ويميز السجلات عن بعضها. كي تتعامل مع البيانات المخزنة في قواعد البيانات العلاقية تحتاج لاستخدام لغة الاستعلام الهيكلية SQL وهي عبارة عن لغة برمجة قياسية تستخدم للتخاطب مع قاعدة البيانات العلاقية وتخزين البيانات فيها ومعالجتها وصيانتها. تتميز قواعد البيانات العلاقية بأنها قابلة للتوسع وسهولة إضافة بيانات جديدة إلى الجداول دون التأثير على السجلات المخزنة مسبقًا كما أنها توفر حماية عالية للبيانات لأن البيانات مقسمة إلى جداول مما يمكننا من جعل بعض الجداول سرية وعدم السماح بالوصول إليها سوى من قبل مستخدمين بصلاحيات إدارية محددة. تستخدم قواعد البيانات العلاقية في العديد من التطبيقات إلا أنها تعد مناسبة أكثر لمجموعات البيانات التي لها بنية منظمة يمكن نمذجتها ضمن جداول محددة ومصممة مسبقًا، كما أنها تعتبر ملائمة لمستودعات البيانات لكونها تسهل تنفيذ استعلامات معقدة على بيانات من مصادر متعددة. من أبرز الأمثلة على قواعد البيانات العلاقية نذكر: أوراكل مايكروسوفت أكسس MySQL Microsoft SQL Serve IBM Db2 MariaDB PostgreSQL 2. قواعد البيانات غير العلاقية NoSQL نظرًا للزيادة الهائلة في حجم البيانات الموجودة والحاجة إلى تحليل البيانات الضخمة التي يتم إنشاؤها كل يوم في الشركات الكبرى وتطبيقات الويب والمتاجر الإلكترونية الضخمة، لم تعد قواعد البيانات العلاقية ملائمة للتعامل مع هذا الكم من البيانات ومعالجتها بسرعة ودعم الحوسبة السحابية لها دون تعزيزها بموارد إضافية. هذه القيود دفعت لظهور نوع جديد من أنواع قواعد البيانات عرف باسم قواعد البيانات غير العلاقية Non-Relational Database أو ما يعرف بقواعد بيانات Not Only SQL أو اختصارًا NoSQL كي تلائم مجموعات البيانات الكبيرة بشكل أفضل وسميت بهذا الاسم لأنها لا تخزن البيانات على شكل جداول فحسب بل تعتمد على طرق وأساليب مختلفة سنتعرف عليها بعد قليل، وهي قادرة على التعامل مع مشكلات الأداء في البيانات الضخمة big data وتستطيع تحليل ومعالجة كمٍّ هائل من البيانات بمرونة وكفاءة عالية. فقواعد البيانات غير العلاقية NoSQL Databases هي نوع من أنواع قواعد البيانات المستخدمة لتخزين مجموعة ضخمة من البيانات التي تتميز يكونها غير متجانسة وغير مرتبطة مع بعضها البعض وهي تعرف باسم البيانات غير المهيكلة Unstructured Data وهي بيانات يصعب الاحتفاظ بها في جداول لها مخطط ثابت ومنظم. من الأمثلة على البيانات غير المهيكلة رسائل البريد الإلكتروني وصفحات الويب التي تتضمن على كمية كبيرة من البيانات المتباينة على هيئة نصوص أو صور أو مقاطع فيديو أو روابط …إلخ. لهذا السبب برز استخدام قواعد بيانات NoSQL بشكل واسع في التطبيقات الحديثة التي تحتاج لمعالجة مثل هذه. كما تعد قواعد البيانات غير العلاقية مناسبة للاستخدام في تطبيقات نظم الزمن الحقيقي التي تتطلب سرعة في الاستجابة وتطبيقات الحوسبة السحابية وتستخدمها اليوم كبرى شركات الإنترنت مثل جوجل و أمازون لمعالجة الكم الهائل من البيانات الخاصة بها. وتتميز قاعدة بيانات NoSQL ببساطة بنائها فلا تحتاج إلى مخطط وبنية وروابط لذلك تجدها مستخدمة في التطبيقات البسيطة التي لا تحتاج إلى بناء مخطط وهيكل وروابط في قاعدة بياناتها حيث بناء قاعدة بيانات علائقية تحتاج إلى وقت وبعض الجهد بل وأحيانًا خبرة في وضع المخطط وتنفيذه فليست بالعملية السهلة مثل بناء قاعدة بيانات غير علائقية. ومن أبرز الأمثلة على قواعد بيانات غير علاقية نذكر: Redis MongoDB Oracle NoSQL HBase Neo4j OrientDB RavenDB Amazon S3 Cassandra توفر قواعد البيانات غير العلائقية عدة تنسيقات أو طرق لتخزين ونمذجة البيانات كالتالي: قواعد بيانات المفاتيح والقيمة A key-value database: وهي أبسط أنواع قواعد البيانات غير العلاقية وتعتمد على تخزين كل عنصر على شكل خاصية أو مفتاح وقيمة مرتبطة به الأمر الذي يسهل استرداد المعلومات منها من خلال استعلامات بسيطة، ومثال عليها Redis و DynanoDB. قواعد بيانات المستندات Document databases: نوع من أنواع قواعد البيانات المستخدمة لتخزين البيانات من مختلف الأنواع سواء كانت سلاسل نصية أو أرقام أو قيم منطقية أو مصفوفات أو كائنات بشكل مستندات بتنسيق JSON، وهذا النوع يساعد المطورين في تخزين البيانات باستخدام نفس تنسيق نموذج المستندات المستخدم في الشيفرات البرمجية للتطبيقات. ويعد MongoDB مثالًا شهيرًا عليها. قواعد بيانات المخطط البياني Graph Databases: يستخدم هذا النوع لتخزين كميات هائلة من البيانات ضمن رسم بياني مكون من عقد تخزن كيانات البيانات وروابط تعبر عن العلاقات بين هذه العقد، من الأمثلة عليه قواعد البيانات Neo4j و Janusgraph ومن أبرز تطبيقاتها مواقع التواصل الاجتماعي التي تربط المستخدمين فيما بينهم وتقترح الصداقات المناسبة بناء على هذه الروابط. قواعد بيانات الأعمدة Column Store Database يعرف هذا النوع كذلك باسم مخزن العمود العريض Wide column store وهو طريقة مشابهة لتمثيل البيانات في قواعد البيانات العلائقية إلا أن البيانات تخزن في جداول مكونة من صفوف وأعمدة عريضة أو ديناميكية قابلة للتوسع وتوفر قدرة تخزين إضافية فليس من الضروري أن يكون لكل صف نفس مجموعة الأعمدة، وتناسب أنواع محددة من البيانات مثل ملفات تعريف المستخدمين. ومن الأمثلة عليها Cassandra و HBase. النوعان السابقان هما أهم نوعان وأكثرهما استخدامًا، وسنتطرق لهما كثيرًا، أما الأنواع التالية فهي الأقل استخدامًا ومن الجيد التعرف عليهما عن قرب أيضًا. هل ترغب في برمجة قواعد بيانات وإدارتها بكفاءة وفاعلية؟ وظّف مبرمج قواعد بيانات محترف من مستقل أضف مشروعك الآن 3. قواعد البيانات كائنية التوجه قواعد البيانات كائنية التوجه Object Oriented Database هي نوع من قواعد البيانات قائم على مفهوم الكائنات وهو يجمع بين مبادئ البرمجة الكائنية (OOP) ومفاهيم قواعد البيانات العلاقية. ففي قاعدة البيانات العلاقية يتم تخزين البيانات في جداول مكونة من صفوف وأعمدة وبعدها تقوم لغات البرمجة الكائنية التوجه مثل Java و C++ بقراءة هذه البيانات وتحويلها إلى كائنات في الذاكرة ومعالجتها وإعادة تخزينها من جديد ما يتطلب وقتًا لذا تختصر قواعد البيانات كائنية التوجه الأمر وتعمل على مبدأ تخزين البيانات الكائنات مباشرة في التخزين الدائم وتخزن الكائنات بأكملها في قاعدة البيانات. ولكون البيانات تمثل وتخزن في نظام قاعدة البيانات كائنية التوجه بشكل كائنات تشبه كائنات العالم الحقيقي بشكل مشابه للأسلوب المستخدم في لغة البرمجة الكائنية وتعبر عن العلاقات بين هذه الكائنات فهذا يجعلها ملائمة لتصميم المشكلات المعقدة ويسهل عملية حفظ البيانات واسترجاعها بكفاءة ومرونة. تستخدم قواعد البيانات كائنية التوجه في التطبيقات التي تتطلب أداءً عاليًا وتحتاج لاسترداد البيانات بسرعة كالمجالات البحثية والعلمية وفي مجال الاتصالات وعلم الفلك وغيرها من المجالات التي تتطلب تخزين بيانات معقدة واسترجاعها بسرعة وإجراء حسابات معقدة عليها. هذا النوع من قواعد البيانات ليس شائع الاستخدام كقواعد البيانات العلاقية ومن أشهر قواعد البيانات كائنية التوجه هي: DB4o Objectivity/DB ObjectDB ObjectDatabase++ ObjectStore 4. قواعد البيانات السحابية قاعدة البيانات السحابية Cloud Database ما هي إلا قاعدة بيانات تقليدية تستفيد من ميزات الحوسبة السحابية حيث تخزن بياناتها ضمن بيئة افتراضية أو سحابة عامة أو خاصة أو هجينة ويتم تنفيذ العمليات عليها عبر منصة حوسبة سحابية عامة أو خاصة أو مختلطة تابعة لجهة خارجية. تتميز قواعد البيانات السحابية بمرونتها وقابليتها لزيادة أو إنقاص الموارد المخصصة لكل مستخدم كسعة التخزين وعرض النطاق الترددي بكل سهولة وحسب الحاجة فأنت تدفع فقط مقابل ما تحتاجه وهذا يوفر كلفة تخزين وصيانة البيانات. كما أنها تتيح للشركات دعم تطبيقات البرمجيات كخدمة SaaS والوصول لها عبر الإنترنت وتتميز بسهولة إدارتها وتوفير كلفة البنية التحتية والصيانة لأن مزود الاستضافة هو من يتولى هذا الأمر عادة لذا باتت الخيار المفضل للعديد من الشركات في الآونة الأخيرة لاسيما الشركات الناشئة التي لا تمتلك الميزانية الكافية لتنشئ بنية تحتية محلية خاصة بها. هناك العديد من المنصات والشركات الكبرى التي توفر خدمات إنشاء قواعد البيانات السحابية ومن أبرزها: خدمات أمازون ويب AWS منصة جوجل السحابية Oracle Database OpenStack *Kamatera Cloud 5. قواعد البيانات المركزية قاعدة البيانات المركزية Centralized Database هي قاعدة بيانات تخزن كافة بياناتها في مكان واحد مركزي يمكن للمستخدمين الذين يملكون الصلاحيات الوصول له من مواقع متفرقة وهذا بدوره يتيح لعدة أشخاص إمكانية العمل على نفس البيانات في الوقت ذاته. تستخدم الشركات الكبيرة قواعد البيانات المركزية لتخزين كافة البيانات التي تريد مشاركتها بين عدة مستخدمين، معلومات العملاء وبيانات المخزون والسجلات المالية للشركة. كما يمكن يتم استخدامها من قبل المؤسسات الحكومية وفي الجامعات لإنشاء قاعدة بيانات مركزية تضم كافة بيانات المكتبات لكافة الكليات ليصل لها الطلاب من مختلف التخصصات. تتميز قواعد البيانات المركزية بأنها تضمن جودة ودقة البيانات وتقلل من مخاطر التلاعب بها وتحافظ على اتساقها لأنها تدير البيانات في مستودع أو خادم مركزي شامل يتم الوصول له عادة عبر الاتصال بالإنترنت. وتكون كلفة صيانتها منخفضة، إلا أنها في ذات الوقت قد لا تكون فعالة من ناحية الوقت لأن حجمها قد يكون كبيرًا جدًا الأمر الذي يزيد من زمن الاستجابة لجلب البيانات منها كما أن حدوث أي فشل في الحاسوب المركزي الذي يخزن البيانات قد يسبب فقدان كافة البيانات. 6. قواعد البيانات الموزعة في قواعد البيانات الموزعة Distributed Database أو اختصارًا DDBs يتم تخزين البيانات في مواقع مادية مختلفة لكنها تكون متصلة ببعضها البعض بواسطة شبكة تتيح الوصول لكافة هذه البيانات المخزنة في عدة مواقع ما يجعل هذه القواعد الموزعة تبدو للمستخدمين النهائيين كأنها قاعدة بيانات مخزنة في مكان مادي واحد. تستخدم قواعد البيانات الموزعة لحل المشكلات التي قد تنشأ من استخدام جهاز واحد لتخزين قاعدة بيانات مركزية واحدة مثل زيادة الإنتاجية ووقت الاستجابة وقابلية التوسع. يمكن أن تصنف قواعد البيانات الموزعة إلى نوعين مختلفين هما: قواعد بيانات موزعة متجانسة Homogenous: تخزن قواعد البيانات في هذه الحالة على نفس أنواع الأجهزة التي تستخدم نفس أنظمة التشغيل وتستخدم برمجيات إدارة قواعد بيانات DBMS متطابقة ويكون كل موقع على علم بجميع المواقع الأخرى ويتعاون معها لمعالجة طلبات المستخدمين ويتم الوصول إلى قاعدة البيانات من خلال واجهة واحدة كما لو كانت قاعدة بيانات واحدة. قواعد بيانات موزعة غير متجانسة Heterogenous: تخزن قواعد البيانات في هذه الحالة في مواقع مختلفة وعلى أجهزة تعمل بأنظمة تشغيل متنوعة وقد تستخدم أنواع قواعد بيانات مختلفة كذلك مثل العلاقية أو كائنية التوجه كما أنها قد تستخدم برمجيات إدارة قواعد بيانات مختلفة عن بعضها البعض وقد لا يكون أحد المواقع على علم بوجود المواقع الأخرى للبيانات مما ينتج عنه محدودية في معالجة بعض الطلبات. الخلاصة تعرفنا في مقال اليوم على مفهوم قواعد البيانات وأنواعها المختلفة وألقينا نظرة متعمقة على الطرق المختلفة للتعامل كل نوع من هذه الأنواع مع البيانات وإدارتها وأسلوب تخزينها وتمثيل العلاقات فيما بينها. كما تعرفنا على حالات استخدام كل نوع من أنواع قواعد البيانات المختلفة، ولك أن تختار من بينها النوع الأنسب لمتطلبات عملك وللمزيد من المعلومات حول ماهية قواعد البيانات وأهميتها وأنواعها المختلفة يمكنك مطالعة مقال دليلك الشامل إلى قواعد البيانات. اقرأ أيضًا مدخل إلى تصميم قواعد البيانات المفاهيم الأساسية في قواعد البيانات وتصميمها1 نقطة