الروابط بين الجداول و انواعها في قواعد بيانات اوراكل الدرس |10| - Programmer Tech

Programmer Tech

تعلم البرمجة - علوم الكمبيوتر - أمن المعلومات - القرصنة الأخلاقية

إعلان اعلى المقالة

الثلاثاء، 22 ديسمبر 2020

الروابط بين الجداول و انواعها في قواعد بيانات اوراكل الدرس |10|



الربط بين الجداول في قواعد البيانات

هي عبارة عن وسيلة يتم من خلالها ربط بين جدولين او اكثر لتكوين العلاقة بين الجداول و ذلك لكي يسهل التعامل معها.

انواع الربط بين الجداول

يوجد عدة انواع من الربط في قواعد البيانات و هي كالتالي
 

الربط بالتساوي

يتم ربط جدولين او اكثر عن طريق عمودين متساويين, العمود الأول عادة ما يكون "مفتاح أساسي" Primary Key في الجدول الأول و العمود الثاني عمود ربط او مفتاح اجنبي Foreign Key في الجدول الثاني.

SQL> SELECT emp.empno , emp.ename , emp.deptno ,  dept.deptno , dept.loc 
2 FROM emp , dept
3 WHERE emp.deptno=dept.deptno ;         شرط الربط بين جدولين 
 
 
ملاحظة إذا أردنا عرض بيانات موظف واحد بأحرف كبيرة نضيف الأمر التالي إلى نهاية جملة الإستعلام.
AND emp.ename = upper('king') ; 

* في السطر الأول طلبت عرض رقم الموظف و إسم الموظف و رقم الإدارة من جدول الموظفين و تم طلب عرض رقم الإدارة من جدول الموظفين لأن رقم الإدارة مفتاح اجنبي في جدول الموظفين و يعتبر عمود في جدول في عمود الموظفين وكذلك عرض رقم الإدارة و موقعها من جدول الإداراة و تم تحديد من أين تأتي البيانات بكتابة إسم الجدول قبل كتابة إسم الحقل (emp.ename).
*في السطر الثاني تم تحديد الجداول التي سوف يتم عرض البيانات منها.
*في السطر الثالث في الجملة الشرطية Where تم كتابة شرط الربط بين جدولين و العلاقة بينهما و هذا مهم جداًً لإتمام عملية الربط.

الربط بعدم التساوي

يستخدم هذا الربط عندما لا يكون بين الجدولين علاقة مباشرة أي أنه لا يمكن إستخدام علامة (=).

الربط الخارجي

يستخدم هذا النوع من الربط عندما تكون بيانات في جدول و لكنها لا تظهر في رابط التساوي بين جدولين أي أنها غير مطابقة لربط التساوي ونحن بحاجه لعرضها, نقوم بإستخدام رابط التساوي و لكن نقوم بإضافة (+) بجانب العمود المفقود أو الفاقد للبيانات و يسمى هذا الربط خارجي.
SQL> SELECT emp.empno , emp.ename,emp.deptno , dept.deptno , dept.dname
 2 FROM emp  , dept 
 3 WHERE emp.deptno(+)=dept.deptno ;
 

في هذا المثال تم عرض ارقام اسماء الموظفين و كذلك ارقام و أسماء الإدارة من جداول الموظفين و الإداراة و قد تم إستخدام (+) بجانب العمود المشترك و ظهرت الإدارة رقم 40 برغم عدم مطابقتها لشرط التساوي.

الربط الداخلي في نفس الجدول

هي عبارة عن علاقة في جدول واحد مثل علاقة الموظف العادي بالمدير و هذه العلاقة في جدول الموظفين لأن الكل يعتبر موظف.
 
في الجداول السابقة تبين أن كل مدير يتبعه مجموعة معينة من الموظفين و ذلك يتم عبر علاقة بالتساوي في نفس الجدول, العمود MGR يمثل رقم المدير فنجد أن الموظف (BLAKE) مديره هو رقم(7839) الذي إسمه KING فالمدير نفسه عبارة عن موظف أي أنه يملك رقم موظف داخل الجدول EMP و ذلك يعني أننا نستطيع ربط الجدول بنفسه عن طريق العمودين (MGR) و (EMPNO)
و لعمل ذلك الربط لا بد من تقسيم جدول الموظفين إلى جدولين, الأول جدول العمال و الثاني جدول المدراء كما في الصورة و بعدها نقوم بربط الجدولين برابط التساوي و تم إستخدام أسماء مستعارة للتعبير عن الجداول 
SQL> SELECT WORKER.empno , WORKER.ename , MANAGER.ename manager
 2 FROM emp worker , emp manager 
 3 WHERE worker.mgr = manager.empno;      شرط الربط

الربط بين اكثر من جدول

لربط بين اكثر من جدول لا بد من توفر علاقة بين كل الجداول علماً بأن جمل الشرط المستخدمة في عملية الربط تساوي (عدد الجداول -1) اي تكون اقل من عدد الجداول برقم, إذا كان هناك ثلاثة جداول يكون لدينا جملتين شرطيتين و كذلك العامل AND يفصل بين جمل الشرط.
SQL> SELECT e.empno , e.ename , e.sal , d.dname , s.grade 
 2 FROM emp e , dept d , salgrade s 
 3 WHERE e.deptno=d.deptno شرط الربط بين جدول الموظفين وجدول الاداراة
 4 AND e.sal BETWEEN s.losal and s.hisal ; شرط الربط بين جدول الاداراة وجدول الفئاة 

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

ليست هناك تعليقات:

إرسال تعليق

facebook

نموذج الاتصال

الاسم

بريد إلكتروني *

رسالة *