الأساسيات النظرية لقواعد البيانات (مقدمة إلى SQL). الجبر العلائقي، عمليات الجبر العلائقية

02.08.2019

أفضل مكان لبدء تعلم SQL هو أساسيات قواعد البيانات العلائقية. سأشرح ما هي قاعدة البيانات العلائقية، وما هي العلاقة وما هي العمليات التي يمكن إجراؤها عليها.

يذهب …

ما هو SQL؟

SQL (لغة الاستعلام المنظمة)- لغة الاستعلام المنظمة، وهي لغة كمبيوتر عالمية تستخدم لإنشاء البيانات وتعديلها ومعالجتها في قواعد البيانات العلائقية

ما هي قاعدة البيانات العلائقية؟

هذه عبارة عن مجموعة من البيانات المترابطة المخزنة في شكل علاقات

ما هي العلاقة؟

العلاقة هي مجموعة معينة من البطاقات

ما هو الصفوف؟

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

سأعرض صفًا من عنصرين باستخدام الرسم البياني:

رؤوس الرسم البياني هي عناصر مجموعتها المحددة، في هذه الحالة، هذا هو العنصر a1من العديد أوالعنصر ب1من العديد ب. تشير الحافة بين القمم اتصالبين العناصر أو كما يقولون العنصر a1 بالنسبة إلى b1.

سأوضح نفس الصف باستخدام جدول:

رقم 1 في a1و ب1، تم اختياره عشوائيا.

لذلك، وصلنا إلى الطوب الأساسي، أي. قبل موكب، فلنبدأ في تفكيك منطقنا مرة أخرى لفهم ما هو عليه قاعدة بيانات علائقيةو SQL.

كما قلت، العلاقة هي مجموعة من الصفوفومحدودة (إذا ابتعدنا عن النظرية). يمكن تمثيل العلاقات في شكل مصفوفة أو رسم بياني أو جدول.

سأوضح كيفية تمثيل العلاقة كرسم بياني:

يوضح الرسم البياني أن هناك عدة صفوف، و أي الصفوف هي الأولى، وأيها الثانية والثالثة لا يهم، إنها مجرد مجموعة من الصفوف. في المجموعة لا يوجد مفهوم مثل "الأول" و"الثاني" و"الثالث"، فهي كلها في وقت واحد والترتيب ليس مهمًا.

اسمحوا لي أن أوضح كيفية تمثيل العلاقة في شكل جدول:

تسلسل الخطوطأو الصفوففي الطاولة غير مهملقد أخذتهم من الرسم البياني بترتيب عشوائي.

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

كما قيل في البداية، قاعدة البيانات العلائقية هي مجموعة من البيانات المترابطة المخزنة على شكل علاقات. إذا قمنا بتمثيل العلاقات في شكل جداول، إذن قاعدة البيانات العلائقية هي مجموعة من الجداول المترابطة. اتضح SQL هي لغة لإنشاء وتعديل وإدارة الجداول في قاعدة البيانات العلائقية.

لذلك، لقد اكتشفنا السلسلة المنطقية: SQL، قاعدة البيانات العلائقية، العلاقات، Tuple... الآن سوف نتطرق إلى لغة SQL، أي. من المهم فهم موضوع التلاعب بالعلاقات ما هي العمليات التي يمكننا القيام بها على العلاقات؟.

لا يمكن إظهار جميع العمليات، نظرا لعددها الكبير، سأقدم فقط العمليات الأساسية:

1. الاختيار (الأسماء الأخرى للعملية هي أخذ العينات، والتقييد)

عملية "اختيار"أو "عينة"إجراء على علاقة واحدة، معناه أنه بحسب في حالة معينة، يتم تحديد مجموعة فرعية من الصفوف. نتيجة العملية هي علاقة تختلف عن الأصل بعدد أقل من الصفوف. مثال:

لتكن هناك علاقة، فلنسميها "الجدول المصدر رقم 1":

نتيجة "عينات"من الجدول الأصلي رقم (1) بشرط ذلك أ=أ3

في لغة SQL:

بناء الجملة - حدد * من اسم الجدول حيث اسم العمود = القيمة

حدد * من source_table حيث А=a3

2. الإسقاط

عملية "تنبؤ"إجراء على علاقة واحدةونتيجة لذلك يتم تشكيل واحدة جديدة العلاقة مع أعمدة الجدول المحددة.

على سبيل المثال، هناك علاقة، دعنا نسميها "الجدول المصدر رقم 2":

دعونا نجري العملية على هذه العلاقة "تنبؤ"بالصفات أو مع، نتيجة:

ونتيجة لذلك، تلقينا خريطتين متطابقتين، وهذا لا يمكن أن يحدث في العلاقة، لذلك دعونا نختصرهما (في نظام إدارة قواعد البيانات، تحدث التخفيضات تلقائيًا):

اتضح أنه خلال الإسقاط نستطيع تقليل عدد الصفوف، هذا يحدث، لا ينبغي اعتبار هذا خطأ.

في لغة SQL:

بناء الجملة - حدد قائمة الأعمدة من اسم الجدول

التنفيذ لهذه الحالة - حدد أ، ج من source_table_№2

3. الاتصال الطبيعي

عملية " اتصال طبيعي" إجراء على علاقتين منطقيتين مرتبطتينونتيجة لذلك تتشكل علاقة جديدة مع أعمدة العلاقة الأولى والثانية ومع الصف الذي يتم الحصول عليه نتيجة ربط كل صف من العلاقة الأولى والثانية. يجب أن يكون الأمر أكثر وضوحًا بمثال، لنفترض أن هناك علاقتين، دعنا نسميهما الجدول المصدر رقم 3.1 والجدول المصدر رقم 3.2:

مصدر الجدول رقم 3_1

مصدر الجدول رقم 3_2

دعونا نجري العملية "روابط"العلاقة الأولى والثانية النتيجة:

ومن المثير للاهتمام أن نلاحظ أننا حصلنا على العلاقة الأصلية من القسم "2. الإسقاط"، لا يهم تسلسل الأعمدة في العلاقة.

في لغة SQL:

التنفيذ لهذه الحالة - SELECT source_table_№3_1.*، الجدول المصدر №3_2.В FROM source_table_№3_1، الجدول المصدر №3_2 حيث الجدول المصدر №3_1.A= الجدول المصدر №3_2.A

4. الجمعية

عملية "اتحاد"إجراء عبر علاقتين لهما نفس مجموعة الأعمدة ونفس نوع البيانات في هذه الأعمدة، نتيجة العملية جديدة علاقة تتضمن جميع مجموعات العلاقة "الأولى" و"الثانية".(يتم تقصير تلك المتكررة).

مصدر الجدول رقم 4_1

مصدر الجدول رقم 4_2

دعونا نجري العملية "ذات الصلة"العلاقات رقم 4.1 والعلاقات رقم 4.2 النتيجة:

في لغة SQL:

بناء الجملة - حدد table_column_list1 من الجدول 1 الاتحاد حدد table_column_list2 من الجدول 2

التنفيذ لهذه الحالة - حدد A,B من source_table_№4_1 الاتحاد حدد A,B من source_table_№4_2

5. التقاطع

عملية "تداخل"تم تنفيذ العملية ونتيجة جديدة علاقة تتضمن نفس صفوف العلاقة "الأولى" و"الثانية"..

على سبيل المثال، لنفترض أن هناك علاقتين:

مصدر الجدول رقم 5_1

مصدر الجدول رقم 5_2

دعونا نجري العملية "تداخل"وبهذه العلاقات تكون النتيجة:

أولئك. في العلاقة الناتجة، حصلت تكرار الصفوفمن "أولاً"و "ثانية"علاقة.

في لغة SQL:

بناء الجملة - حدد one_of_table.column1، one_of_table.column2، ... من الجدول 1، الجدول 2 حيث table1.column1 = table2.column1 و table1.column2 = table2.column2 و ...

التنفيذ لهذه الحالة -

حدد source_table_No.5_1.A، source_table_No.5_1.B من source_table_No.5_2 حيث source_table_No.5_1.A وsource_table_No

6. الطرح (الفرق)

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

على سبيل المثال، لنفترض أن هناك علاقتين:

مصدر الجدول رقم 6_1

مصدر الجدول رقم 6_2

دعونا نجري العملية "اختلاف"، أي. من الجدول الأصلي رقم 6_1 نطرح الجدول الأصلي رقم 6_2 النتيجة:

أولئك. العلاقة الناتجة هي العلاقة "الأولى" بدون الصفوف المتكررة للعلاقة "الثانية".

في لغة SQL:

التنفيذ لهذه الحالة – ​​SELECT source_table_№6_1.А, source_table_№6_1.В FROM source_table_№6_1 حيث لا يوجد (SELECT source_table_№6_2.А, source_table_№6_2.В FROM source_table_№6_2
حيث source_table_No.6_2.A= source_table_No.6_1.A وsource_table_No.6_2.B= source_table_No.6_1.B)

7. المنتج الديكارتي

يتم تنفيذ الضرب الديكارتي على علاقتين اعتباطيتين، نتيجة العملية علاقة جديدة عدد أعمدةها يساوي مجموع عدد أعمدة العلاقات “الأولى” و”الثانية”، ويساوي عدد الصفوف إلى حاصل ضرب عدد صفوف العلاقات "الأولى" و"الثانية". يتم الحصول على صفوف العلاقة الناتجة، بعبارات بسيطة، من خلال الجمع بين كل صف من العلاقة "الأولى" مع صفوف العلاقة "الثانية".

على سبيل المثال، لنفترض وجود علاقتين اعتباطيتين:

مصدر الجدول رقم 7_1

مصدر الجدول رقم 7_2

سوف ننتج "المنتج الديكارتي"في ضوء العلاقتين، تكون النتيجة:

في لغة SQL:

التنفيذ لهذه الحالة - حدد source_table_No.7_1.A, source_table_No.7_1.B, source_table_No.7_2.B من source_table_No

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

ما هو المفتاح؟

المفتاح هو واحد أو أكثر من أعمدة الجدول, التي تحدد السجل (السلسلة) بشكل فريد. على سبيل المثال، لنفترض أن هناك علاقة مقدمة على شكل جدول:

مفتاحهذه العلاقة ربما العمود أ. لأن القيم لهذا العمود فقط متعلق، على سبيل المثال: a3يحدد سجلا "أ3 ب1 د3", a2سيحدد السجل "أ2 ب2 د3", a1يحدد سجلا "أ1 ب2 د1". لا يمكن للأعمدة الأخرى توفير هذه الوظيفة.

إذا كان المفتاح يتكون من عمود واحد، ثم يطلق عليه بسيط، إذا من عديديسمى مركب. في هذا الجدول، بالإضافة إلى المفتاح البسيط، هناك مفتاح آخر - مركب، يتكون من العمودين B وD. ستحدد قيم هذه الأعمدة السجل (الصف) بشكل فريد، مثال: ب1 و د3يحدد السجل بشكل فريد "أ3 ب1 د3", ب2 و د3يحدد الإدخال بشكل فريد "أ2 ب2 د3", ب2 و د1يحدد السجل بشكل فريد "أ1 ب2 د1".

في الممارسة العملية يتم اختياره عادة مفتاح واحد, وأبسط واحد، في هذه الحالة هذا هو العمود أ. ويسمى هذا المفتاح أيضًا " المفتاح الأساسي».

كنت قد تكون مهتمة في:

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

دعونا ننظر في عمليات الجبر العلائقي. حتى لا تشتت انتباهك بمحتويات الجداول التي ليست قواعد بياناتك، مثل "المنتجات"، "السائقون"، "الخوخ"، "الكمثرى"، "الشاي"، "القهوة"، "فلاديمير"، "سيرجي"، إلخ. سنقوم بإجراء عمليات على العلاقات (الجداول) مع البيانات المجردة، مثل R1 وR2 (أسماء الجداول - العلاقات) وما إلى ذلك. وA1 وA2 وA3 (أسماء السمات - الأعمدة) وh15 وw11 وما إلى ذلك. (محتويات سجلات جدول قاعدة البيانات).

أولويات إجراء عمليات الجبر العلائقي (بترتيب تنازلي لعناصر القائمة، وفي عنصر واحد - العمليات ذات الأولويات المتساوية):

  • الاختيار، الإسقاط
  • المنتج الديكارتي، الاتصال، التقاطع، القسمة
  • الاتحاد، الاختلاف.

عملية أخذ العينات

تعمل عملية التحديد على علاقة واحدة وتحدد العلاقة الناتجة ر، الذي يحتوي فقط على تلك الصفوف (أو الصفوف، أو السجلات)، والعلاقات التي تستوفي شرطًا معينًا (المسند ص ).

وبالتالي فإن عملية الجلب هي عملية أحادية ويتم كتابتها على النحو التالي:

أين ص- المسند (الشرط المنطقي).

استعلام SQL

الآن دعونا نرى ما يحدث عندما نقوم بتشغيل عملية الجبر العلائقية واستعلام SQL المقابل لها. يوضح الجدول أدناه علاقة واحدة تعمل عليها هذه العملية.

ر3
أ1أ2أ3A4
3 ح حيلآنسة
4 صa1ريال سعودى
1 صيلآنسة

ننظر إلى العمود A3 ونثبت أن المسند A3> "d0" يتم استيفاءه بالإدخالات الموجودة في الصفين الأول والثالث من العلاقة الأصلية (نظرًا لأن رقم الحرف y في الأبجدية أكبر من رقم الحرف d ). ونتيجة لذلك نحصل على العلاقة الجديدة التالية، والتي تحتوي على سطرين:

ر
أ1أ2أ3A4
3 ح حيلآنسة
1 صيلآنسة

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

استعلام SQL

حدد A1، A2، A3 من R1 UNION حدد A1، A2، A3 من R2

الآن دعونا نرى ما يحدث عندما نقوم بتشغيل عملية الجبر العلائقية واستعلام SQL المقابل لها. الآن يتم إعطاء علاقتين، لأن عملية الاتحاد هي عملية ثنائية:

ر1 R2
أ1أ2أ3أ1أ2أ3
Z7أأw11X8صك21
ب7ح حح15س2إيح15
X8صw11X8صw11

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

ر
أ1أ2أ3
Z7أأw11
ب7ح حح15
X8صw11
X8صك21
س2إيح15

ما يلي مهم: لا يمكن تنفيذ عملية الربط إلا عندما يكون لعلاقتين نفس عدد وأسماء السمات (الأعمدة)، أو، بشكل رسمي، متوافقتان مع الصلة.

عملية التقاطع

ستكون نتيجة تقاطع مجموعتين (العلاقات) A و B () مجموعة (علاقة) C تتضمن تلك العناصر الموجودة في كل من المجموعة A والمجموعة B فقط. عملية تقاطع الجبر العلائقي متطابقة إلى العملية.

استعلام SQL

حدد A1، A2، A3 من R1 INTERSECT حدد A1، A2، A3 من R2

لا تحتوي بعض لهجات SQL على الكلمة الأساسية INTERSECT. بديله، على سبيل المثال، في MySQL وغيرها، هو INNER JOIN. كيفية عمل عامل SQL JOIN بشكل عام وأصنافه INNER JOIN وLEFT OUTER JOIN وRIGHT OUTER JOIN وFULL OUTER JOIN - في الدرس SQL JOIN - الانضمام إلى جداول قاعدة البيانات .

استعلام MySQL

الآن دعونا نرى ما يحدث عندما نقوم بتشغيل عملية الجبر العلائقية واستعلام SQL المقابل لها. مرة أخرى، يتم إعطاء العلاقتين R1 وR2:

ر1 R2
أ1أ2أ3أ1أ2أ3
Z7أأw11X8صك21
ب7ح حح15س2إيح15
X8صw11X8صw11

نحن ننظر إلى جميع السجلات في علاقتين، ونجد أنه في كل من العلاقة الأولى والثانية يوجد صف واحد - وهو الصف الثالث في كل من العلاقة الأولى والثانية. نحصل على علاقة جديدة:

ر
أ1أ2أ3
X8صw11

عملية الفرق

يتكون الفرق بين العلاقتين R1 وR2 () من صفوف (أو سجلات أو صفوف) موجودة في العلاقة R1، ولكن ليس في العلاقة R2. يجب أن تكون العلاقات R1 وR2 متوافقة. عملية فرق الجبر العلائقية مطابقة للعملية.

استعلام SQL

حدد A1، A2، A3 من R2 باستثناء
حدد A1، A2، A3 من R1

دعونا نحدد ما يحدث نتيجة لتنفيذ عملية الجبر العلائقية واستعلام SQL المقابل. مرة أخرى، يتم إعطاء العلاقتين R1 وR2:

ر1 R2
أ1أ2أ3أ1أ2أ3
Z7أأw11X8صك21
ب7ح حح15س2إيح15
X8صw11X8صw11

من العلاقة R2 نستبعد الصف الموجود أيضاً في العلاقة R2 – الثالثة – ونحصل على علاقة جديدة:

ر
أ1أ2أ3
X8صw11
س2إيح15

عملية المنتج الديكارتي

تحدد عملية المنتج الديكارتي () علاقة جديدة R، وهي نتيجة لتسلسل كل مجموعة من العلاقة R1 مع كل مجموعة من العلاقة R2.

استعلام SQL

اختر * من R3، R4

دعونا نحدد ما يحدث نتيجة لتنفيذ عملية الجبر العلائقية واستعلام SQL المقابل. بالنظر إلى العلاقتين R3 وR4:

ر3 ر4
أ1أ2أ3A4أ5أ6
3 ح حيلآنسة3 ح ح
4 صa1ريال سعودى4 ص
1 صيلآنسة

يجب أن تحتوي العلاقة الجديدة على كافة السمات (الأعمدة) للعلاقتين. أولاً، يتم توصيل الصف الأول من العلاقة R3 مع كل صف من صفي العلاقة R4، ثم الصف الثاني من العلاقة R3، ثم الصف الثالث. يجب أن تكون النتيجة 3 × 2 = 6 صفوف (صفوف). نحصل على هذه العلاقة الجديدة:

ر
أ1أ2أ3A4أ5أ6
3 ح حيلآنسة3 ح ح
3 ح حيلآنسة4 ص
4 صa1ريال سعودى3 ح ح
4 صa1ريال سعودى4 ص
1 صيلآنسة3 ح ح
1 صيلآنسة4 ص
يضيف - إنشاء سجل في قاعدة البيانات، واعتمادًا على وضع التضمين، إما تضمينه في علاقة مجموعة، حيث يتم إعلانه تابعًا، أو عدم تضمينه في أي علاقة جماعية.
تضمين في علاقة المجموعة - ربط سجل ثانوي موجود بسجل المالك.
يُحوّل - ربط سجل ثانوي موجود بسجل مالك آخر في نفس علاقة المجموعة.
تحديث - تغيير قيمة عناصر السجل المستخرج سابقا.
يستخرج - استخراج السجلات بشكل تسلسلي حسب القيمة الرئيسية، وكذلك استخدام علاقات المجموعة - يمكنك الانتقال من المالك إلى سجلات الأعضاء، ومن سجل ثانوي إلى مالك المجموعة.
يمسح - إزالة سجل من قاعدة البيانات. إذا كان هذا السجل هو مالك علاقة المجموعة، فسيتم تحليل فئة العضوية للسجلات الثانوية. يجب أولاً استبعاد الأعضاء الإلزاميين من علاقة المجموعة، ويجب حذف الأعضاء الثابتين مع المالك، وسيظل الأعضاء الاختياريون في قاعدة البيانات.
استبعاد من علاقة المجموعة - قطع الاتصال بين سجل المالك وسجل العضو.

نموذج قاعدة البيانات العلائقية

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

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

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

نموذج موجه للكائنات.

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

معظم أنظمة OODBMS عبارة عن مكتبة يتم تضمين إجراءات إدارة البيانات الخاصة بها في برنامج التطبيق. على الرغم من مزايا الأنظمة الموجهة للكائنات - التنفيذ أنواع البيانات المعقدة, اتصالمع لغات البرمجة وغيرها - في المستقبل القريب تفوق العلائقية نظام إدارة قواعد البياناتمضمون.

نظام إدارة قواعد البيانات العلائقية للكائنات

الفرق بين الكائنات العلائقية والمبنية على الكائنات نظام إدارة قواعد البيانات: الأول عبارة عن بنية فوقية فوق المخطط العلائقي، في حين أن الأخير موجه للكائنات في البداية. الميزة الرئيسية والفرق بين الكائنات العلائقية (وكذلك الكائن) نظام إدارة قواعد البياناتمن العلائقية هو أن OR نظام إدارة قواعد البياناتمتكاملة مع لغة برمجة كائنية التوجه (OO)، داخلية أو خارجية مثل C++، جافا.

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

النهج العلائقي لبناء نموذج المجال.

· يتم تصميم مجال الموضوع من خلال مجموعة من كائنات المعلومات الفردية (الكيانات)، والتي يتم وصف كل منها بواسطة جدول ثنائي الأبعاد خاص بها؛

· هناك اتصالات بين الجداول.

· كل عنصر من عناصر الجدول هو عنصر بيانات واحد.

· جميع أعمدة الجدول متجانسة أي جميع العناصر الموجودة في العمود لها نفس النوع (الرقم، الحرف، إلخ) والطول؛

يصف كل عمود سمة واحدة للكيان؛

كل عمود له اسم فريد؛

· يحتوي السطر على قيم السمات لمثيل كيان واحد؛

· لا توجد صفوف متطابقة في الجدول (وجود مفتاح أساسي).

· ترتيب الصفوف والأعمدة يمكن أن يكون تعسفيا.

تطبيع العلاقات- جهاز رسمي لقيود تكوين العلاقات (الجداول)، مما يلغي الازدواجية، ويضمن اتساق تلك المخزنة في قاعدة البيانات، ويقلل من تكاليف العمالة لصيانة (إدخال، وتعديل) قاعدة البيانات.

الشكل العادي الأول

تسمى العلاقة (الجدول) بالتطبيع أو التخفيض إلى النموذج العادي الأول، إذا كانت جميع سماتها بسيطة (فيما يلي غير قابلة للتجزئة).

تحويل العلاقة إلى الأولى الشكل العاديقد يؤدي إلى زيادة عدد تفاصيل (حقول) العلاقة وتغيير المفتاح.

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

· يجب أن يحتوي الجدول على بيانات حول نوع واحد من الكائنات.

· يجب أن يحتوي كل جدول على حقل واحد أو عدة حقول تشكل معرفًا فريدًا (أو مفتاحًا أساسيًا) لكل صف؛

· يجب تعريف كافة الحقول غير الرئيسية بواسطة المعرف الفريد الكامل لهذا الجدول.

النموذج العادي الثالث

متطلبات النموذج العادي الثالثيأتي ذلك لضمان أن جميع الحقول غير الرئيسية تعتمد فقط على المفتاح الأساسي ولا تعتمد على بعضها البعض. بمعنى آخر، يجب أن تكون قادرًا على تغيير قيمة أي حقل غير رئيسي دون تغيير قيمة أي حقل آخر في قاعدة البيانات.

أنواع الاتصالات. خصائص العلاقات

· علاقة فردية(1:1) يعني أن كل سجل في جدول واحد يتطابق على الأكثر مع سجل واحد في جدول آخر.

· علاقة واحد إلى متعدد(1:M) يعني أنه لكل سجل في جدول واحد هناك 0 أو 1 سجل أو أكثر في جدول آخر.

· علاقة كثير لواحد(M:1) يشبه نوع واحد إلى متعدد الذي تمت مناقشته سابقًا. يعتمد نوع العلاقة بين الكائنات على وجهة النظر.

· علاقة كثير إلى كثير(مم). يحدث بين جدولين عندما يقابل كل سجل في جدول واحد 0 سجل أو أكثر في الجدول الآخر والعكس صحيح.

المفاتيح البسيطة والمركبة

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

لو طاولةلا يحتوي على مجال واحد فريد، المفتاح الأساسييمكن أن تتكون من عدة مجالات، مجموع قيمها يضمن التفرد.

هذه المفتاح الأساسيمُسَمًّى مفتاح مركب

يتم تنفيذ جميع أنواع العلاقات باستخدام المفاتيح الأساسية والروابط لقيمها في الجداول الأخرى. تسمى هذه الروابط، التي هي نسخ من المفاتيح الأساسية للجداول الأخرى، بالمفاتيح الخارجية.

يعتبر المثال الهرمي والشبكة قاعدة البيانات، التي تحتوي على معلومات حول أقسام المؤسسة والموظفين العاملين فيها، فيما يتعلق بالنموذج العلائقي سيكون على الشكل:

مع ضمد"الكثير للكثيرين" يتم تنفيذه من خلال جدول إضافي يتم بمساعدته هذا اتصالسيتم تقليله إلى اتصالين مثل " واحد لكثير".

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

لذا، إذا كنت ستبدأ دراستك في هذا المجال أو كنت مهتمًا فقط، يرجى النقر على القطة.

قاعدة البيانات العلائقية

أولاً، دعونا نقدم مفهوم قاعدة البيانات العلائقية التي سنقوم بتنفيذ جميع الإجراءات فيها.

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

جدول المنتجات

بطاقة تعريف اسم شركة سعر
123 بسكويت دارك سايد ذ.م.م 190
156 شاي دارك سايد ذ.م.م 60
235 أناناس OJSC "فروكتي" 100
623 طماطم جمعية ذات مسؤولية محدودة "الخضروات" 130

يتكون الجدول من 4 صفوف، الصف في الجدول عبارة عن صف في النظرية العلائقية. تسمى مجموعة من الصفوف المرتبة بالعلاقة.
قبل تحديد العلاقة، دعونا نقدم مصطلحًا آخر - المجال. المجالات المتعلقة بالجدول هي أعمدة.

من أجل الوضوح، نقدم الآن تعريفًا صارمًا للعلاقة.

دع N مجموعات D1، D2، ... تعطى. Dn (المجالات)، العلاقة R على هذه المجموعات هي مجموعة صفوف N المرتبة من النموذج ، حيث ينتمي d1 إلى D1، وما إلى ذلك. تسمى المجموعات D1، D2،..Dn مجالات العلاقة R.
يمثل كل عنصر من عناصر الصف قيمة إحدى السمات المقابلة لأحد المجالات.

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

طاولة السائقين

يمكن ملاحظة أن المؤسسة يمكن أن يكون لديها العديد من برامج التشغيل، ومن أجل تحديد برنامج التشغيل بشكل فريد، تكون القيمة من عمود "اسم المؤسسة" ومن عمود "اسم السائق" مطلوبة. يسمى هذا المفتاح بالمفتاح المركب.

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

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

عمليات الجبر العلائقي

العمليات الثمانية الأساسية للجبر العلائقي تم اقتراحها بواسطة E. Codd.
  • جمعية
  • تداخل
  • الطرح
  • المنتج الديكارتي
  • عينة
  • تنبؤ
  • مُجَمَّع
  • قسم
النصف الأول من العمليات مشابه لنفس العمليات على المجموعات. يمكن التعبير عن بعض العمليات من خلال عمليات أخرى. دعونا نلقي نظرة على معظم العمليات مع الأمثلة.

من أجل الفهم، من المهم أن نتذكر أن نتيجة أي عملية جبرية على العلاقات هي علاقة أخرى، والتي يمكن بعد ذلك استخدامها في عمليات أخرى.
لنقم بإنشاء جدول آخر سيكون مفيدًا لنا في الأمثلة.

جدول البائعين

بطاقة تعريف تاجر
123 أوو "دارت"
156 الشركة المساهمة "فيدرو"
235 الشركة المساهمة المشتركة "بازا الخضار"
623 الشركة المساهمة "شركة"

دعونا نتفق على أن المعرف الموجود في هذا الجدول هو مفتاح خارجي مرتبط بالمفتاح الأساسي لجدول المنتجات.

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

تنبؤ
الإسقاط هو عملية يتم فيها استخراج السمات من العلاقة فقط من المجالات المحددة، أي يتم تحديد الأعمدة الضرورية فقط من الجدول، وإذا تم الحصول على عدة صفوف متطابقة، فسيبقى مثيل واحد فقط من هذا الصف في العلاقة الناتجة.
على سبيل المثال، لنقم بإجراء إسقاط على جدول المنتجات عن طريق تحديد المعرف والسعر منه.

بناء جملة العملية:
π (المعرف، السعر) المنتجات

في حالة العينة، يمكننا استخدام أي تعبير منطقي. لنقم بإجراء تحديد آخر بسعر أكبر من 90 ومعرف منتج أقل من 300:

σ(السعر> 90^المعرف<300) PRODUCTS

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

نحصل على المنتج الديكارتي لجداول المنتجات والبائعين.
بناء جملة العملية:

المنتجات × البائعين
ستلاحظ أن هذين الجدولين لهما نفس مجال المعرف. في هذه الحالة، تكون المجالات التي لها نفس الاسم مسبوقة باسم العلاقة المقابلة، كما هو موضح أدناه.
للإيجاز، دعونا لا نضرب النسب الكاملة، بل العينات ذات معرف الشرط<235

(يتم تمييز نفس الصفوف بالألوان)

معرف المنتج اسم شركة سعر معرف البائع تاجر
123 بسكويت دارك سايد ذ.م.م 190 123 أوو "دارت"
156 شاي دارك سايد ذ.م.م 60 156 الشركة المساهمة "فيدرو"
123 بسكويت دارك سايد ذ.م.م 190 156 الشركة المساهمة "فيدرو"
156 شاي دارك سايد ذ.م.م 60 123 أوو "دارت"

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

π (البائع) σ (RODUCTS.ID=SELLERS.ID ^ السعر<90) PRODUCTS × SELLERS

ونتيجة لهذه العملية نحصل على العلاقة:

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

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

دعونا نحاول ربط العلاقات بين المنتجات والبائعين والحصول على علاقة.

معرف المنتج اسم شركة سعر معرف البائع تاجر
123 بسكويت دارك سايد ذ.م.م 190 123 أوو "دارت"
156 شاي دارك سايد ذ.م.م 60 156 الشركة المساهمة "فيدرو"
235 أناناس OJSC "فروكتي" 100 235 الشركة المساهمة المشتركة "بازا الخضار"
623 طماطم جمعية ذات مسؤولية محدودة "الخضروات" 130 623 الشركة المساهمة "شركة"

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

بناء جملة العملية:
المنتجات ⋈ البائعين.

تحصل على هذه العلاقة:

معرف المنتج اسم شركة سعر تاجر
123 بسكويت دارك سايد ذ.م.م 190 أوو "دارت"
156 شاي دارك سايد ذ.م.م 60 الشركة المساهمة "فيدرو"
235 أناناس OJSC "فروكتي" 100 الشركة المساهمة المشتركة "بازا الخضار"
623 طماطم جمعية ذات مسؤولية محدودة "الخضروات" 130 الشركة المساهمة "شركة"
التقاطع والطرح.
ستكون نتيجة عملية التقاطع علاقة تتكون من صفوف متضمنة بالكامل في كلتا العلاقتين.
ستكون نتيجة الطرح علاقة تتكون من صفوف هي صفوف من العلاقة الأولى وليست صفوف من العلاقة الثانية.
تشبه هذه العمليات نفس العمليات على المجموعات، لذلك أعتقد أنه ليست هناك حاجة لوصفها بالتفصيل.
مصدر المعلومات
  • أساسيات استخدام وتصميم قواعد البيانات - V. M. Ilyushechkin
  • دورة محاضرات مقدمة في قواعد البيانات - جنيفر ويدوم، جامعة ستانفورد

سأكون ممتنا للتعليقات المنطقية

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

ل عمليات تحديث قاعدة البياناتتتضمن تلك العمليات التي تقوم بإدراج صفوف جديدة، وإزالة تلك غير الضرورية، وضبط قيم السمات للصفوف الموجودة، وهي: هذه عمليات شغله, حذف، تحديث.

عملية شغلهيتطلب تحديد اسم العلاقة والتوليد الأولي لقيم السمات الخاصة بالصف الجديد. يجب تحديد مفتاح Tuple.

عملية يمسحيتطلب اسم العلاقة، بالإضافة إلى تحديد الصف أو مجموعة الصف المراد حذفها.

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

بخصوص عمليات المعالجة،ثم يتم استعارتها من الجبر العلائقي. وفقًا لمنهج إي كود، يتضمن الجبر العلائقي ثماني عمليات، خمس منها أساسية: عينة, الإسقاط، الضرب، الاتحاد، الطرح.

عينة- اختر من العلاقة فقط تلك الصفوف التي تحقق الشرط المحدد.

في التوقعاتفيما يتعلق بمجموعة معينة من سماتها، يتم الحصول على علاقة جديدة، يتم إنشاؤها عن طريق استخراج مجموعات تحتوي على السمات المحددة من العلاقة الأصلية.

في عمليه الضرب(الضرب الديكارتي) لعلاقتين، يتم الحصول على علاقة جديدة، تكون صفوفها عبارة عن سلسلة من صفوف العلاقتين الأولى والثانية.

نتيجة ل ذات الصلةعلاقتين، ويتم الحصول على علاقة ثالثة، بما في ذلك الصفوف المضمنة في علاقة واحدة على الأقل، أي تحتوي على جميع عناصر العلاقات الأصلية.

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

أما العمليات الثلاث الباقية فهي مشتقات ويمكن الحصول عليها من العمليات الرئيسية وتسمى إضافية: اتصال، تقاطع, قسم.

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

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

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

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

دعونا نلقي نظرة على بعض العمليات الأكثر استخدامًا في الجبر العلائقي بمزيد من التفصيل.

عملية جمعية- يتم إعطاء المدخلات علاقتين متوافقتين من نفس البعد: A و B. والنتيجة هي علاقة من نفس البنية، تحتوي على جميع الصفوف A وجميع الصفوف B

تداخليفترض وجود علاقتين من نفس البعد عند الإدخال: A وB. عند الإخراج، يتم إنشاء علاقة من نفس البنية، تحتوي فقط على تلك المجموعات A الموجودة في B.

قسم.عند إدخال العملية، يتم استخدام علاقتين: A وB. دع العلاقة A، تسمى قابلة للقسمة، تحتوي على سمات (A 1، A 2، A 3،...، A n). العلاقة B هي مقسوم عليها وتحتوي على مجموعة فرعية من السمات A: (A 1، A 2، ...، A k)، حيث k

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

عند تصميم قواعد البيانات والعمل معها، عادةً ما تكون هذه العمليات الثمانية غير كافية. ولذلك، تتم إضافة عمليات مثل إعادة تسمية السمات، وإنشاء سمات محسوبة جديدة، وعمليات التعيين، والمقارنات، وما إلى ذلك.

تعديل الشذوذ

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

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

إضافة الشذوذاتتنشأ في الحالات التي لا يمكن فيها وضع المعلومات في الجدول إلا بعد أن تكون غير مكتملة، أو أن إدراج سجل جديد يتطلب مسحًا إضافيًا للجدول

لتكن هناك علاقة تخزن معلومات عن الطلاب والدورات التي يدرسونها وتكلفة هذه الدورات. من هذه العلاقة، تتم إزالة صف يحتوي (بالإضافة إلى معلومات حول الطالب) على معلومات حول اسم وتكلفة الدورة التي يحضرها هذا الطالب. إذا تم تخزين معلومات حول اسم الدورة وتكلفتها في نسخة واحدة فقط في هذا الصف، فسوف تختفي بشكل نهائي من العلاقة. وتسمى هذه الحالة شذوذ الحذف. يؤدي تنفيذ عملية الحذف إلى فقدان معلومات حول كيانين.

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

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

نزاهة الكيانات -يجب ألا تحتوي قيمة المفتاح الأساسي على قيمة فارغة.

مراحل التصميم:

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

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

بدني -يتم تحويل البنية المنطقية لقاعدة البيانات إلى بنية مادية مع مراعاة جوانب الأداء. تتلقى عناصر البيانات في هذه المرحلة سمات ويتم تعريفها كأعمدة في جداول نظام إدارة قواعد البيانات (DBMS) المختارة لتنفيذ قاعدة البيانات. العلاقات الأساسية لتنظيم الملفات والفهرس، وقيود التكامل، والتدابير الأمنية.

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

طريقة العلاقة بين الكيان.

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

يمكن تمثيل أي جزء من مجال الموضوع على أنه مجموعة من الكيانات، والتي يوجد بينها بعض العديد من الاتصالات. دعونا نعطي التعريفات:

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

مجموعة الكيان- مجموعة من الكيانات من نفس النوع (لها نفس الخصائص). أمثلة: جميع الأشخاص والشركات والعطلات وما إلى ذلك.ليس من الضروري أن تكون مجموعات الكيانات منفصلة. على سبيل المثال، الكيان الذي ينتمي إلى مجموعة MAN ينتمي أيضًا إلى مجموعة PEOPLE.

الكيان هو في الواقع مجموعة صفات، والتي تصف خصائص جميع أعضاء مجموعة كيانات معينة. اِختِصاصكان أعلى بالفعل.

مفتاح الكيان- هي واحدة أو أكثر من السمات التي تحدد بشكل فريد كيانًا معينًا.

اتصالهي جمعية أنشئت بين عدة كيانات. أمثلة:

  • وبما أن كل موظف يعمل في قسم ما، فهناك علاقة "يعمل في" أو علاقة بين الموظف وكيانات الإدارة؛

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

يمكن أن تحتوي العلاقة أيضًا على سمات. على سبيل المثال، بالنسبة للعلاقة بين DEPARTMENT وEMPLOYEE، يمكنك تعيين السمة WORK_TERRENCE_IN_DEPARTMENT.

دور الكيان في العلاقة- الوظيفة التي يؤديها كيان في اتصال معين. على سبيل المثال، في علاقة PARENT-CHILD، قد يكون لكيانات PERSON الأدوار "الأصل" و"الطفل". يعد تحديد الأدوار في نموذج العلاقة بين الكيان أمرًا اختياريًا ويعمل على توضيح دلالات العلاقة.

مجموعة من الاتصالات- هذه هي العلاقة بين ننما لا يقل عن 2) كيانات ينتمي كل منها إلى مجموعة معينة من الكيانات.

على الرغم من أن مفهومي "الاتصال" و"مجموعة الروابط" مختلفان، بالمعنى الدقيق للكلمة، (الأول عنصر من عناصر الثاني)، إلا أنهما غالبًا ما يتم الخلط بينهما.

متى ن = 2، أي. عندما تجمع العلاقة بين كيانين، تسمى ثنائية. لقد ثبت ذلك ن- مجموعة اتصالات ( ن>2) يمكن دائمًا استبدالها بالعديد من الثنائيات، ولكن الأول يعكس بشكل أفضل دلالات مجال الموضوع.

يتم استدعاء عدد الكيانات التي يمكن ربطها من خلال مجموعة اتصالات مع كيان آخر درجة الاتصال. يعد النظر في الدرجات مفيدًا بشكل خاص للعلاقات الثنائية. يمكن أن توجد الدرجات التالية من الروابط الثنائية:

  • واحد إلى واحد (المشار إليه 1: 1 ). وهذا يعني أنه في مثل هذه العلاقة، تتوافق الكيانات التي لها دور دائمًا مع كيان واحد على الأكثر له دور آخر.

هناك سمة أخرى مهمة للاتصال إلى جانب درجته فئة العضويةالكيانات المدرجة فيه أو عدد العناصر في المجموعةمجال الاتصالات.

"الموظف" لديه فئة العضوية الإلزامية(تتم الإشارة إلى هذه الحقيقة أيضًا من خلال الإشارة إلى الفاصل الزمني لعدد التكرارات المحتملة للكيان في العلاقة، وهو في هذه الحالة هو 1.1)، والكيان "DEPARTMENT" لديه فئة العضوية الاختيارية(0،1). الآن يمكننا وصف هذه العلاقة بأنها 0,1:1,1 .

  • واحد لكثير ( 1: ن). في هذه الحالة، يمكن للكيان الذي له دور واحد أن يتوافق مع أي عدد من الكيانات التي لها دور آخر.

يوضح هذا الشكل أيضًا حقيقة أنه يمكن تعريف مجموعات متعددة من العلاقات بين كيانين.

  • كثير إلى واحد ( ن: 1). هذه العلاقة تشبه رسم الخرائط 1: ن.

في هذه الحالة، ولأسباب واضحة تماما (يتم إبرام كل عقد مع عميل معين، ولكل عميل عقد واحد على الأقل، وإلا فلن يكون كذلك)، فإن كل كيان لديه فئة عضوية إلزامية.

  • الكثير للكثيرين ( ن: ن). في هذه الحالة، يمكن تمثيل كل من الكيانات المرتبطة بأي عدد من الحالات.

إذا كان وجود الكيان x يعتمد على وجود الكيان y، فإن x يسمى كيان تابع(أحيانًا يُطلق على الكيان x اسم "ضعيف" ويُطلق على "الكيان" y اسم قوي). على سبيل المثال، خذ بعين الاعتبار العلاقة بين الكيانين الموصوفين مسبقًا WORKING_GROUP وCONTRACT. يتم إنشاء مجموعة العمل فقط بعد توقيع العقد مع العميل، وينتهي وجودها عند إتمام العقد. ثم تعتمد WORKING_GROUP على كيان العقد. سنشير إلى الكيان التابع بمستطيل مزدوج، وارتباطه بكيان قوي بخط به سهم ( كان لدينا شكل بيضاوي للمعتمد)

وستكون أصل الارتباط للكيان القوي دائمًا (1،1). يمكن أن تكون فئة العضوية ودرجة العلاقة لكيان تابع أي شيء.

12. نماذج البيانات الهرمية والشبكية.

النموذج الهرميعبارة عن مجموعة من العناصر مرتبة حسب ترتيب تبعيتها من العام إلى الخاص وتشكل شجرة (رسمًا بيانيًا) مقلوبًا في البنية.

تتضمن المفاهيم الأساسية للهيكل الهرمي المستوى والعقدة والعلاقة. عقدةعبارة عن مجموعة من سمات البيانات التي تصف كائنًا ما. في المخطط الشجري الهرمي، يتم تمثيل العقد كرؤوس في الرسم البياني. ترتبط كل عقدة في المستوى الأدنى بعقدة واحدة فقط في المستوى الأعلى. تحتوي الشجرة الهرمية على قمة واحدة فقط، وليست تابعة لأي قمة أخرى وتقع في الأعلى - المستوى الأول. العقد التابعة (التابعة) موجودة في المستوى الثاني والثالث وما إلى ذلك. يتم تحديد عدد الأشجار في قاعدة البيانات من خلال عدد السجلات الجذرية. لكل سجل قاعدة بيانات، يوجد مسار هرمي واحد فقط من السجل الجذر.

يتم تعريف تنظيم البيانات في نظام إدارة قواعد البيانات (DBMS) من النوع الهرمي من حيث: عنصر، إجمالي، سجل (مجموعة)، علاقة المجموعة، قاعدة البيانات.

  • السمة (عنصر البيانات)- أصغر وحدة في بنية البيانات. عادةً، يتم إعطاء كل عنصر في وصف قاعدة البيانات اسمًا فريدًا. ويشار إليه بهذا الاسم أثناء المعالجة. غالبًا ما يُطلق على عنصر البيانات أيضًا اسم الحقل.
  • سِجِلّ- مجموعة مسماة من السمات. يتيح لك استخدام السجلات الحصول على مجموعة معينة من البيانات المرتبطة منطقيًا في وصول واحد إلى قاعدة البيانات. وهي السجلات التي يتم تغييرها وإضافتها وحذفها. يتم تحديد نوع السجل من خلال تكوين سماته. مثيل السجل - سجل محدد بقيمة عنصر محدد
  • موقف المجموعة- العلاقة الهرمية بين السجلات من نوعين. يُطلق على السجل الأصلي (مالك علاقة المجموعة) اسم السجل المصدر، وتسمى السجلات الفرعية (أعضاء علاقة المجموعة) بالسجلات الثانوية. يمكن لقاعدة البيانات الهرمية تخزين هذه الهياكل الشجرية فقط.

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

عند تصويرها بيانيًا، يتم تمثيل علاقات المجموعة بواسطة أقواس الرسم البياني الموجه، ويتم تمثيل أنواع السجلات بواسطة القمم.

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

مثال:تتكون المؤسسة من الأقسام التي يعمل فيها الموظفون. يمكن أن يضم كل قسم عدة موظفين، لكن لا يجوز للموظف العمل في أكثر من قسم واحد.

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

لأتمتة محاسبة العقود مع العملاء، من الضروري إنشاء هيكل هرمي آخر: العميل - العقود معه - الموظفون المشاركون في العمل على العقد. ستتضمن هذه الشجرة سجلات العميل (CUSTOMER_NAME، العنوان)، CONTRACT (NUMBER، DATE، AMOUNT)، CONTRACTOR (SURNAME، POSITION، DEPARTMENT_NAME) - الشكل. ب.

عيوبقواعد البيانات الهرمية:

  • يتم تكرار المعلومات بين السجلات جزئيًا (تسمى هذه السجلات مقترنة)، ولا يوفر نموذج البيانات الهرمي دعمًا للمراسلات بين السجلات المقترنة.
  • ينفذ النموذج الهرمي العلاقة بين سجلات المصدر والسجلات الفرعية وفقًا لمخطط 1:N، أي أن سجل أصل واحد يمكن أن يتوافق مع أي عدد من الأطفال. لنفترض الآن أن المؤدي يمكنه المشاركة في أكثر من عقد واحد (أي تنشأ علاقة من النوع M:N). في هذه الحالة، من الضروري إدخال علاقة مجموعة أخرى في قاعدة البيانات، حيث سيكون المقاول هو السجل الأصلي، وسيكون العقد هو السجل الفرعي، وبالتالي، فإننا مضطرون مرة أخرى إلى تكرار المعلومات (الشكل ج).
  • اتصالات منطقية معقدة للغاية وما يقابلها من إرهاق في معالجة البيانات

مزايا:

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

العمليات على البيانات المحددة في النموذج الهرمي:

  • يضيفإدخال جديد إلى قاعدة البيانات. بالنسبة للسجل الجذر، من الضروري إنشاء قيمة مفتاح.
  • يتغيرقيمة البيانات للسجل الذي تم استرداده مسبقًا. لا ينبغي تغيير البيانات الرئيسية.
  • يمسحبعض السجلات وجميع السجلات التابعة لها.
  • يستخرج:
    • استخراج السجل الجذري حسب القيمة الرئيسية، كما يُسمح بالعرض التسلسلي للسجلات الجذرية
    • استرداد السجل التالي (يتم استرداد السجل التالي بترتيب الاجتياز الأيسر)

في عملية EXTRACT، من الممكن تحديد شروط الاختيار.

يتم تطبيق جميع عمليات التعديل على سجل "حالي" واحد فقط (والذي تم استرجاعه مسبقًا من قاعدة البيانات). يُطلق على هذا النهج في معالجة البيانات اسم "الملاحي".

قيود التكامل.

يتم الحفاظ فقط على سلامة العلاقات بين أصحاب وأعضاء علاقة المجموعة (لا يمكن أن يوجد سليل بدون سلف). لا يتم الحفاظ على مراسلات السجلات المقترنة التي تنتمي إلى تسلسلات هرمية مختلفة تلقائيًا.

أتاحت أنظمة إدارة قواعد البيانات الأولى، التي ظهرت في منتصف الستينيات، العمل مع قاعدة بيانات هرمية. أشهرها كان نظام IMS الهرمي من شركة IBM. الأنظمة الأخرى معروفة أيضًا: PC/Focus، وTeam-Up، وData Edge، وأنظمة Oka، وINES، وMIRIS.

نموذج بيانات الشبكة.

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

يتم تعريف نموذج بيانات الشبكة بنفس الشروط مثل النموذج الهرمي. ويتكون من العديد من السجلات التي يمكن أن تكون مالكة أو أعضاء في علاقة جماعية. العلاقة بين سجل المالك وسجل العضو هي أيضًا من النوع 1: ن.

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

الهيكل الهرمي من الصورة أعلاه. يتم تحويله إلى الشبكة على النحو التالي

يتم استبدال الشجرتين (أ) و(ب) ببنية شبكة واحدة يتم فيها تضمين إدخال الموظف في علاقتين جماعيتين؛ لعرض النوع M:N، أدخل سجل EMPLOYEE_CONTRACT، الذي لا يحتوي على حقول ويعمل فقط على ربط سجلي CONTRACT وEMPLOYEE

تتميز كل حالة من العلاقة الجماعية بالخصائص التالية:

  • طريقة تنظيم السجلات الثانوية:

اِعتِباطِيّ،

ترتيب زمني / قائمة الانتظار /،

عكس التسلسل الزمني /المكدس/،

متنوعة.

إذا تم الإعلان عن سجل تابع لعدة علاقات جماعية، فيمكن أن يكون لكل منها أسلوب ترتيب خاص بها.

  • وضع لتمكين السجلات الثانوية:

تلقائي - من المستحيل إدخال سجل في قاعدة البيانات دون تعيينه على الفور لمالك معين؛

يدوي - يسمح لك بتذكر سجل ثانوي في قاعدة البيانات وعدم تضمينه على الفور في مثيل علاقة المجموعة. يبدأ المستخدم هذه العملية لاحقًا).

  • وضع الاستثناءمن المعتاد التمييز بين ثلاث فئات من عضوية السجلات الثانوية في علاقات المجموعة:

مُثَبَّت.يرتبط السجل الثانوي ارتباطًا وثيقًا بسجل المالك ولا يمكن إزالته من علاقة المجموعة إلا عن طريق حذفه. عندما تقوم بحذف سجل مالك، يتم حذف كافة السجلات الثانوية تلقائيًا. في المثال، تفترض العضوية الثابتة علاقة المجموعة "CONCLUDES" بين السجلين "CONTRACT" و"CUSTOMER" لأن العقد لا يمكن أن يوجد بدون عميل.

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

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

العمليات على البيانات.

يضيف- إنشاء سجل في قاعدة البيانات، واعتمادًا على وضع التضمين، إما تضمينه في علاقة مجموعة، حيث يتم إعلانه تابعًا، أو عدم تضمينه في أي علاقة جماعية.

تضمين في علاقة المجموعة- ربط سجل ثانوي موجود بسجل المالك.

يُحوّل- ربط سجل ثانوي موجود بسجل مالك آخر في نفس علاقة المجموعة.

تحديث- تغيير قيمة عناصر السجل المستخرج سابقا.

يستخرج- استخراج السجلات بشكل تسلسلي حسب القيمة الرئيسية، وكذلك استخدام علاقات المجموعة - يمكنك الانتقال من المالك إلى سجلات الأعضاء، ومن سجل ثانوي إلى مالك المجموعة.

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

قيود التكامل.

كما هو الحال في النموذج الهرمي، يتم ضمان الحفاظ على التكامل المرجعي فقط (مالك العلاقة هو عضو في العلاقة).

الأساسيات كرامةنموذج الشبكة هو كفاءة الذاكرة العالية وكفاءتها. عيب– تعقيد وصلابة المخطط الأساسي، وكذلك صعوبة الفهم. بالإضافة إلى ذلك، تم إضعاف التحكم في السلامة في هذا النموذج، لأنه يسمح بإنشاء اتصالات عشوائية بين السجلات. تعقيد تنفيذ نظام إدارة قواعد البيانات (DBMS)، وتعقيد آلية الوصول إلى البيانات، والحاجة إلى تحديد اتصالات البيانات بوضوح على المستوى المادي

إلى أنظمة إدارة قواعد بيانات الشبكة المعروفةتشمل: DBMS، IDMS، TOTAL، VISTA، NETWORK، SETOR، COMPASS، إلخ.

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

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