sql course - شرح مبسط لأنواع العلاقات والمفاتيح و التكامل المرجعي وكيفية إضافة القيود المناسبة لتأمينه sql course - شرح مبسط لأنواع العلاقات والمفاتيح و التكامل المرجعي وكيفية إضافة القيود المناسبة لتأمينه - اقرا معي وتعلم على الانترنت

sql course - شرح مبسط لأنواع العلاقات والمفاتيح و التكامل المرجعي وكيفية إضافة القيود المناسبة لتأمينه

is sql easy to learn - شرح مبسط للمفتاح الرئيسي والاجنبي والعلاقات في قواعد البيانات

السلام عليكم ورحمة الله وبركاته اسعد الله اوقاتكم ايها الزوار الكرام بكل خير نواصل دروسنا في شرح sql بالعربي وصلنا في دروسنا الى sql server دروس - شرح القيد AUTO_INCREMENT و القيد IDENTITY وللانتقال اليه اضغط عليه ... اليوم سنقدم 

sql course شرح مبسط لأنواع العلاقات والمفاتيح ، ولمفهوم التكامل المرجعي ولكيفية إضافة القيود المناسبة لتأمينه و في هذا الدرس ستتعرف معي على :


  1. العلاقات في قواعد البيانات العلائقية.
  2.  التكامل المرجعي
  3. استخدام قيد المفتاح الأجنبي للمحافظة على التكامل المرجعي.

لنبدأ

التكامل المرجعي 1 :

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

الجداول قد ترتبط بعضها ببعض بعلاقات يمكن لهذه العلاقات أن تأخذ أحد الأشكال الاتية :

اولاً علاقة واحد لواحد أو سجل لسجل:

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

sql basic learning - شرح مبسط للمفتاح الرئيسي والاجنبي والعلاقات في قواعد البيانات

ثانياً علاقة واحد لعديد أو سجل لعدة سجلات

: يرتبط كل سجل من الجدول الأول مع مجموعة سجلات من الجدول الثاني وليس العكس. كما في الصورة التالية

sql basic learning - شرح مبسط للمفتاح الرئيسي والاجنبي والعلاقات في قواعد البيانات

ثالثاً علاقة عديد لعديد أو عدة سجلات لعدة سجلات:

ترتبط مجموعة من سجلات الجدول الأول مع مجموعة من سجلات الجدول الثاني.كما في الصورة التالية
is sql easy to learn - شرح مبسط للمفتاح الرئيسي والاجنبي والعلاقات في قواعد البيانات

 التكامل المرجعي 2 :

اولاً علاقة سجل لعدة سجلات:

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

is sql easy to learn - شرح مبسط للمفتاح الرئيسي والاجنبي والعلاقات في قواعد البيانات

ثانياً علاقة عدة سجلات لعدة سجلات

هي تطبَّق فعليًا على شكل علاقتين من نوع سجل لعدة سجلات مع استخدام جدول وسيط يحتوي مفتاح أساسي مركب يتكون من قيمة المفتاح الأساسي للسجل المراد ربطه من الجدول الأول مع قيمة المفتاح الأساسي للسجل المراد ربطه من الجدول الثاني. كما في الصورة التالية
is sql easy to learn - شرح مبسط للمفتاح الرئيسي والاجنبي والعلاقات في قواعد البيانات

التكامل المرجعي 3
لو فرضنا اننا نمتلك قاعدة بيانات علائقية مؤلفة من جدولين يرتبط الأول بالثاني بعلاقة واحد لعديد أي ان سجل من الأول مرتبط بعدة سجلات من الثاني.
سبق وأسلفنا أن طريقة حلّ العلاقة، تتلخص في إدراج مفتاح في الجدول الثاني يسمى المفتاح الثانوي مصدره قيم المفتاح الرئيسي للجدول الأول.
لكن ماذا لو اضطررنا إلى حذف أو تعديل أحد السجلات من الجدول الأول المرتبطة بعدد من السجلات من الجدول الثاني ؟ فعليًا ما سنحصل عليه هو قيم جديدة غير مترابطة ببعضها البعض. وهنا تكمن أهمية المحافظة على ما ندعوه التكامل المرجعي في قاعدة البيانات.

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

is sql easy to learn - شرح مبسط للمفتاح الرئيسي والاجنبي والعلاقات في قواعد البيانات

نلاحظ في المخطط اعلاه ان حذف السجل من الجدول Customers سيؤدي الى حذف مرجعية السجلات في الجدول Order .

التكامل المرجعي 4

لكي لا نكسر قاعدة التكامل المرجعي في SQL , علينا استخدام قيد يعرف احد الحقول في جدول على انه حقل مفتاح اجنبي لجدول اخر بحيث يفشل أي تعبير لا يحترم قاعدة التكامل المرجعي بعد استخدام هذا القيد .
ولكي يتم ذلك علينا استخدام الصيغة التالية :
CREATE TABLE myTable
(Column1 Column1Type PRIMARY KEY NOT NULL , Column2 Column2Type ,
Column3 Column3Type ,
CONSTAINT foreign_key_name FOREIGN KEY (Column3)
REFERENCES other_table (other_table_primary_key));

في الصيغة السابقة انشأنا الجدول myTable الذي يحتوي على Column1 كحقل لمفتاح رئيسي والحقل Column2 والحقل Column3 الذي تم تقييدة بالقيد FOREIGN KEY لجعلة مفتاح اجنبي مرتبط بالمفتاح الرئيسي للجدول other_table والذي يحمل اسم other_table_primary_key .

اليك بمثال لتوضيح ذلك :
اذا اردنا انشاء الجدول Brands والذي يحتوي على اسماء وارقام ماركات اجهزة الحواسب المتوفرة بمتجر ما, والجدول Models الذي يحتوي على الموديلات المتوفرة لكل ماركة من الماركات , واردنا ربط الجدول Brands مع الجدول Models بعلاقة سجل من جدول Brands الى عدة سجلات من الجدول Models مع ضمان التكامل المرجعي نكتب الصيغة التالية لانشاء الجدول Brands :
CREATE TABLE Brands
(brandID INT PRIMARY KEY NOT NULL ,
brandName varchar (50));

ولإنشاء الجدول Models نكتب الصيغة التالية :
CREATE TABLE Models
(modelID INT PRIMARY KEY NOT NULL ,
modelName varchar (50) ,
modelBrand INT ,
CONSTRAINT myFK FOREIGN KEY (modelBrand)
REFERENCES Brands (brandID));

هذه الصيغة صالحة في  Access و SQL Server, Oracle, DB 2
ويمكن كتابتها بشكل مختصر اكثر كما يلي :
CREATE TABLE Models
(modelID INT PRIMARY KEY NOT NULL,
modelName varchar (50) ,
modelBrand INT ,
FOREIGN KEY (modelBrand)
REFERENCES Brands (brandID));

التكامل المرجعي في MySQL

في MySQL تختلف الصيغة في نقطتين اساسيتين وهما :

الاولى هي

ان الجداول الداخلة في العلاقة يجب ان تكون من نوع الجداول الخاص في قواعد بيانات MySQL وهو InnoDB .

والثانية هي

ضرورة تعريف حقل المفتاح الاجنبي كفهرس فتصبح الصيغة كما يلي:
CREATE TABLE myTable
(Column1 Column1Type PRIMARY KEY NOT NULL , Column2 Column2Type ,
Column3 Column3Type ,
FOREIGN KEY (Column3)
REFERENCES other_table (other_table_primary_key)
INDEX myIndex (Column3))

Type = InnoDB;

اكتفي بهذا ونلتقي في الدرس من sql course القادم الى اللقاء 
لا تنسى الاشتراك في المدونة ليصلك كل جديدنا على بريدك الالكتروني 
كذلك لا تجعل الدرس يقف عندك قم بمشاركته الان 

دمت بالف خير عزيزنا الزائر 

شارك الموضوع
تعليقات
محتوى قد يهمك

.