العلاقات في عالم البرمجة
- مفهوم العلاقات
- العلاقات في قواعد البيانات
- العلاقات في لغات البرمجة
- العلاقات بين الوحدات أو المكونات
مفهوم العلاقات
من أهم المواضيع التي يجب أن يحترفها مهندس البرمجيات هو موضوع العلاقات، فالعلاقات موجودة في كل شيء؛ و العلاقة تعني ارتباط شيء بشيء آخر لتحقيق غاية ما.
في حياتنا اليومية قد تكون العلاقة بين الأشخاص تتمثّل بصداقة، عائلة، زواج، علاقة مصلحة إلخ.. في قواعد البيانات و لغات البرمجة يوجد أيضاً أنواع مختلفةً من العلاقات سنتعرف عليها في هذا المقال.
فهم العلاقات في البرمجة أمر بالغ الأهمية لتصميم أنظمة برمجية قوية، قابلة للصيانة، و قابلة للتطوير. إنها تساعد المبرمجين على تنظيم الكود، و تقليل التكرار، و جعل البرامج أكثر و ضوحاً.
العلاقات في قواعد البيانات
العلاقات في جداول ( Tables ) قواعد البيانات يمكننا تصنيفها إلى ثلاثة أصناف كما يلي.
1- علاقة واحد إلى واحد ( One to One )
هذه العلاقة مميزة و تحدث بين كيانين حيث يرتبط الأول بالثاني و لا يمكن أن يرتبط بغيره و العكس صحيح.
مثال: الشخص يمكنه إمتلاك جواز سفر واحد في بلده. أي لا يمكن لشخصين أن يمتلكا نفس جواز السفر.
2- علاقة واحد إلى متعدد ( One to Many )
هذه العلاقة تعني ارتباط الكيان بأكثر من كيان، و هي أكثر أنواع العلاقات استخداماً.
مثال: الشخص يستطيع إمتلاك عدة شهادات، هواتف، سيارات، منازل إلخ..
3- علاقة متعدد إلى متعدد ( Many to Many )
هذه العلاقة تعني ان يرتبط الكيان بعدة كيانات و العكس صحيح.
مثال: يمكن لعدة أشخاص أن يعملوا معاً في كتابة أبحاث مختلفة أو في تطوير مشاريع مختلفة.
العلاقات في لغات البرمجة
العلاقات في لغات البرمجة تكون بين الكائنات ( Objects ) لذا فهي قريبة من علاقات البشر مع بعضهم.
1- الوراثة ( Inheritance )
الوراثة هي حين يرث كلاس خصائص ( Attributes ) و دوال ( Methods ) من كلاس آخر.
مثال: كلاس يمثّل سيارة Car
يرث من كلاس يمثّل مركبة Vehicle
مما يعني أن السيارة هي نوع خاص من المركبات.
2- التكوين ( Composition )
التكوين هو عندما يحتوي الكلاس على كائن من كلاس آخر كجزء منه. هذا يعني أن "الكل" لا يمكن أن يوجد بدون "الجزء".
مثال: كلاس خاص يمثّل سيارة Engine
و الذي هو جزء أساسي للسيارة حيث لا يمكن أن توجد السيارة بدون محرك.
3- التجميع ( Aggregation )
مشابه للتكوين، و لكن هنا "الكل" يمكن أن يوجد بدون "الجزء" حيث أن العلاقة تكون "يمتلك" أو "يحتوي على".
مثال: الفصل الدراسي Classroom
قد يحتوي على طلاب Students
. و لكن الفصل الدراسي يمكن أن يوجد بدون طلاب، و كذلك الأمر الطلاب يمكن أن يوجدوا بدون فصل دراسي معين.
4- الترابط ( Association )
الترابط هو الصلة المنطقية التي تكون موجودة بين الكلاسات. يمكن أن تكون هذه العلاقة أحادية الاتجاه أو ثنائية الاتجاه.
مثال: عميل Customer
ينشئ طلب Order
.
العلاقات بين الوحدات أو المكونات
الأنظمة البرمجية الكبيرة غالباً ما تتضمن وحدات ( Modules ) و مكونات ( Components ) و لكنها تعمل مع بعضها البعض أو تكمّل بعضها.
العلاقات بين الوحدات و المكونات تشمل ما يلي.
1- التبعيات ( Dependencies )
عندما يعتمد مكون واحد على مكون آخر لأداء وظيفته.
2- الاستدعاءات ( Calls )
عندما يستدعي مكون وظيفة أو خدمة من مكون آخر.