You are on page 1of 11

‫‪23/09/1442‬‬

‫‪Advanced Database Systems-IT319‬‬


‫قواعـد البيانات المتقدمة‬

‫كمال وسالمة قواعد البيانات‬


‫‪Data base Integrity‬‬
‫‪Department : Software Engineering – SE : 5‬‬
‫(‪Amal Saad )MSc of Computer Science )Information System)- UM‬‬
‫الخريف ‪2021-2020‬‬

‫كمال قاعدة البيانات‬


‫‪ ‬يقصد به دقة المعلومات وصحتها ويتوجب على مدير النظام أو مدير‬
‫قاعدة البيانات وضع آليات التأكد دائما من شروط محددة ومعرفة بشكل‬
‫مسبق لتفيد مستخدمي قاعدة البيانات ( من أشخاص أو برمجيات ) لعدم‬
‫اإلخالل بقواعد البيانات‪.‬‬

‫‪ ‬وهي مهمة مصمم قاعدة البيانات بالدرجة األولى لوضع آليات عمل من‬
‫قوانين وشروط للتأكد من أن كل تغيير أو إجراء على قاعدة البيانات ال‬
‫يؤدي إلى إخالل أو تناقض في البيانات‪.‬‬

‫‪1‬‬
‫‪23/09/1442‬‬

‫شروط كمال البيانات وسالمتها‬

‫‪ ‬شروط كمال البيانات وسالمتها على عدة مستويات أهمها ‪:‬‬


‫‪ .1‬شروط كمال المجال وسالمته ‪:Domain Integrity Constraints‬‬
‫وهو تحديد مجال القيم المحتمل بحيث ترتبط بكل عمود مجال قيم ال يمكن تجاوزه‬
‫ويعتبر هذا النوع من الشروط والقيود األساسية في كمال قواعد البيانات وسالمتها‪.‬‬
‫)‪Student_Name varchar(30‬‬ ‫‪ ‬مثالا‪:‬‬
‫‪ ‬يدل هذا المثال على أن مجال القيم المحتمل أن تأخذها صفة ‪ Student_Name‬هي‬
‫من نوع ‪ varchar‬بطول ‪ 30‬من األحرف وبالطريقة نفسها يمكن تعريف مجال قيم‬
‫لكل أنواع البيانات المعرفة في قواعد البيانات العالئقية من بينها ‪ real‬و ‪integer‬‬
‫وغيرهما ‪.‬‬
‫في المثال التالي تم تحديد نوع مجال قيم ‪ gender‬وكذلك تحديد مجموعة‬ ‫‪‬‬
‫القيم المقبولة بحيث يجب أن تكون ‪ female or male‬كالتالي ‪:‬‬
‫;‪gender varchar(1) not null‬‬
‫;)'‪constraint Ck_Gender check(gender='F' or gender='M‬‬

‫‪ .2‬كمال شكل القيم وسالمتها ‪:Domain Forms Integrity‬‬


‫‪ ‬هنا يتم وضع القيم في نسق أو صيغة ثابتة ومثال ذلك أن تعتمد صيغة محددة‬
‫لترميز أرقام ضمن نسق خاص كما يلي ‪:‬‬
‫‪Tel – Number‬‬
‫‪999-999-999‬‬
‫‪004-987-7765‬‬

‫‪ ‬أو وضع إشارة النقود مثال حساب في بنك قد يكون ضمن الشكل التالي ‪:‬‬
‫‪Balance‬‬
‫‪$ 540.50‬‬
‫‪$ 1,000.00‬‬
‫‪$ 9,835,00‬‬

‫‪2‬‬
‫‪23/09/1442‬‬

‫‪ .3‬كمال مدى القيم وسالمتها ‪:Domain Range‬‬


‫‪ ‬هنا يتم اعتماد مدى للقيم المقبولة ومثال ذلك عالمة الطلبة يجب أن تكون محصورة‬
‫بين عالمة صفر وعالمة مئة ‪.‬‬
‫‪0 <= Mark <= 100‬‬

‫‪ ‬كيف يتم تمثيل ذلك في ‪:SQL Server‬‬

‫‪mark int not null‬‬


‫)‪constraint ck_mark check (mark >= 0 && mark <= 100‬‬

‫‪ .4‬شروط كمال الكينونة وسالمتها ‪:Entity Integrity Constraints‬‬


‫يقوم هذا النوع من الشروط بواجب التحقق من أن أي مفتاح رئيسي يجب أن ال‬ ‫‪‬‬
‫يحتوي على قيمة ‪.NULL‬‬
‫بمعنى آخر أنه يجب أن يدخل إلى السجالت في لحظة اإلدخال وهذا بسبب أن‬ ‫‪‬‬
‫المفتاح الرئيسي يجب وجوده لتحديد السجالت بشكل مفرد لمتابعة عمليات‬
‫البحث والتعديل المحتمل إجراؤها على النظام‪.‬‬
‫ويجب دائما تعريف المفاتيح الرئيسية عند استخدام لغة ‪ SQL‬وعدم السماح‬ ‫‪‬‬
‫بإدخال قيمة ‪ NULL‬كما يوضح المثال التالي ‪:‬‬

‫; ) )‪Create Employee ( Empno Int NOT NULL , Ename char (20‬‬

‫نلحظ هنا أنه تم تعريف المفتاح ‪ Empno‬من نوع ‪ Integer‬وبشرط ال يقبل قيمة ‪ NULL‬أي‬ ‫‪‬‬
‫أن وجوده أساسي ويجب إدخاله كقيمة رقمية ‪.‬‬

‫‪3‬‬
‫‪23/09/1442‬‬

‫‪ .5‬شروط سالمة المفتاح وكماله ‪Key Constraints‬‬


‫‪ ‬يعتمد هذا النوع من الشروط على نظرية العالقات حيث يعتبر العالقة أو الجدول مجموعة رياضية‬
‫ومن أسس المجموعة أن عناصرها غير متكررة وفي حال وجود تكرار مسوغ في بعض القيم‬
‫للسجالت ( جزئيا ) فإنه ال يسمح بتكرار السجل كامال ونستطيع التأكد من ذلك بوضع شروط على‬
‫مفتاح السجل وهو بدوره سيكون مفتاح العالقة أو الجدول وهكذا فإنه من البديهي عدم تكرار قيم المفتاح‬
‫األعظم ‪.Super Key‬‬
‫‪ ‬كما يوضح الجدول التالي ‪:‬‬
‫‪Stno‬‬ ‫‪Name‬‬ ‫‪Age‬‬ ‫‪Address‬‬ ‫‪H_phone‬‬
‫‪9230‬‬ ‫‪Eman‬‬ ‫‪20‬‬ ‫‪12345‬‬
‫‪9242‬‬ ‫‪Hani‬‬ ‫‪19‬‬ ‫‪Zarqa‬‬ ‫‪79910‬‬
‫‪..........‬‬ ‫‪........‬‬ ‫‪........‬‬ ‫‪...........‬‬ ‫‪...........‬‬

‫‪ ‬في هذا الجدول بإمكاننا الوصول إلى مفتاح أعظم وهو ‪ Stno‬وحده وذلك ألننا إذا حذفنا قيم ‪Age‬‬
‫‪ Name‬يبقى باإلمكان تحديد السجل الواحد بشكل مفرد من بين السجالت األخرى وفي حال استخدامنا‬
‫لغة ‪ SQL‬نستطيع تحديد المفتاح األعظم أو الرئيسي كما يبين المثال التالي ‪:‬‬
‫‪Create Student (Stno Int NOT NULL , Name char (20) , H_phone Int‬‬
‫‪Address char (15) , Age Int,‬‬
‫)) ‪constraint pk_stno Primary Key ( Stno‬‬

‫‪ .6‬سالمة المفاتيح المرجعية وكمالها ‪Referential Integrity‬‬


‫‪ ‬بعض أنواع المفاتيح تعتبر مفاتيح أجنبية ‪ Foreign Key‬على جدول ألنها في األصل معرفة كمفاتيح‬
‫رئيسية في جدول آخر وتلعب دور الرابط فقط بين الجداول ‪.‬‬
‫‪ ‬وال بد من التأكد دائما من كمال البيانات المرجعية وسالمتها أي الرابطة بين الجداول‪.‬‬
‫‪ ‬وهي عملية التأكد من أن أي قيمة في جدول أو عالقة ما لمجموعة محددة من األعمدة تظهر في جدول أو‬
‫عالقة أخرى فإنها يجب أن تحافظ على وجودها لتعريف القيم المتناظرة في عمليات الحذف والتغيير وتحديدها‬
‫أما اإلضافة فهي مهمة إال أنها أقل خطورة من الحذف والتغيير ويمكن التأكد من ذلك أيضا‬
‫‪ ‬تعريف المفتاح األجنبي وأسلوب التأكد من كمال المفاتيح المرجعية وسالمتها بلغة ‪ SQL‬كما هو‬
‫موضح في المثال التالي ‪:‬‬
‫( ‪CREATE TABLE item2‬‬ ‫( ‪CREATE TABLE order‬‬

‫‪item_id int NOT NULL,‬‬ ‫‪orde_id int NOT NULL,‬‬


‫‪quintity int ,‬‬ ‫‪item_id int ,‬‬
‫‪qya_s int ,‬‬ ‫‪constraint fk_cons5‬‬
‫‪constraint pk_cons4‬‬ ‫)‪foreign key (item_id‬‬
‫)‪primary key (item_id‬‬
‫‪references item2 on delete NO ACTION‬‬
‫)‬
‫) ‪on update cascade‬‬

‫‪4‬‬
‫‪23/09/1442‬‬

‫مثال ‪:‬‬
‫‪ ‬في هذا المثال سندرس جميع الحاالت المحتملة للتأكد من سالمة المفاتيح المرجعية‬
‫وكمالها كما يبين الشكل‪:‬‬

‫‪P#‬‬ ‫‪Pname‬‬ ‫‪S#‬‬ ‫‪Sname‬‬

‫‪Part‬‬ ‫‪R1‬‬ ‫‪Supplier‬‬

‫‪ ‬لنفرض اآلن أنه تم تحويل المخطط في الشكل إلى جداول قاعدة البيانات التالية ‪:‬‬
‫‪P#‬‬ ‫‪Pname‬‬ ‫‪S#‬‬ ‫‪S#‬‬ ‫‪Sname‬‬
‫‪P1‬‬ ‫‪al‬‬ ‫‪S10‬‬ ‫‪S10‬‬ ‫‪Eman‬‬
‫‪P2‬‬ ‫‪D‬‬ ‫‪S40‬‬ ‫‪S20‬‬ ‫‪Sami‬‬
‫‪P3‬‬ ‫‪B‬‬ ‫‪S30‬‬ ‫‪S30‬‬ ‫‪Hani‬‬
‫‪P4‬‬ ‫‪C‬‬ ‫‪S10‬‬ ‫‪S40‬‬ ‫‪Lila‬‬

‫‪ ‬واآلن يمكن تعريف بعض القوانين للتأكد من كمال قاعدة البيانات وسالمتها حسب‬
‫النماذج التالية ‪:‬‬
‫‪ .1‬قواعد اإلضافة ‪: Insertion Rules‬‬
‫‪ ‬يقوم هذا النوع من القواعد بالتأكد من عدم إضافة سجالت في جدول ‪ Part‬إال إذا وجد‬
‫مزود في جدول ‪ Supplier‬وهذا منطقي حيث ال يمكن إضافة قطع ال يوجد لها مزود‪.‬‬
‫‪ ‬ومثال ذلك محاولة إضافة قطعة جديدة ‪ p5‬في جدول القطع ‪ part‬زودنا بها ‪ Supplier‬رقم‬
‫‪ ،S70‬هنا واضح أن المزود رقم ‪ S70‬ليس أحد المزودين في جدول ‪Supplier‬‬

‫‪ .2‬قواعد الحذف ‪: Deletion Rules‬‬


‫‪ ‬هذا النوع من القوانين يؤكد على منع حذف أي من سجالت المزودين ‪ Supplier‬إذا كان‬
‫لديهم معلومات في سجل القطع ويتم ذلك من خالل إتباع أحد األساليب التالية ‪:‬‬
‫‪ :Restrict‬منع عمليات الحذف عن الجدول المطلوب باستخدام أحد أوامر سحب‬ ‫المنع‬ ‫‪.1‬‬

‫العمليات‪.‬‬ ‫الصالحية أو تفويض‬

‫; ‪Revoke Delete on Supplier from ALL‬‬


‫ولكن هذا الحل غير مفيد ألنه يقيد التطبيقات بدرجة كبيرة‬

‫‪5‬‬
‫‪23/09/1442‬‬

‫تابع ‪...‬‬
‫‪ .2‬إضافة قيمة ‪:NULL‬‬
‫هنا قد نسمح بعمليات الحذف ولكنها مقننة بحيث نقوم بعمليات حذف جزئي ليس على مستوى‬
‫السجل حيث نضع قيمة ‪ NULL‬فقط في األماكن المرتبطة بعملية الحذف‪.‬‬
‫مثال ‪:‬عند حذف المزود رقم ‪ S10‬من جدول المزودين ‪ supplier‬نالحظ أنه ما زال له‬
‫وجود كمفتاح أجنبي في جدول القطع ‪ part‬فيمكن عندها أن نسمح بذلك الحذف مع إضافة‬
‫‪ NULL‬في موقع ‪ S10‬في جدول ‪ part‬كما يلي ‪:‬‬

‫‪P#‬‬ ‫‪Pname‬‬ ‫‪S#‬‬ ‫‪S#‬‬ ‫‪Sname‬‬


‫‪P1‬‬ ‫‪al‬‬ ‫‪Null‬‬ ‫‪S20‬‬ ‫‪Sami‬‬
‫‪P2‬‬ ‫‪D‬‬ ‫‪S40‬‬ ‫‪S30‬‬ ‫‪Hani‬‬
‫‪P3‬‬ ‫‪B‬‬ ‫‪S30‬‬ ‫‪S40‬‬ ‫‪Lila‬‬
‫‪P4‬‬ ‫‪C‬‬ ‫‪Null‬‬

‫وهذا الحل أيضا غير مجد ألنه ال يمكن قبول ‪ NULL‬في مجال قيم لصفة هي في األساس مفتاح جدول‬
‫مثل ‪S#‬‬

‫الشروط الملزمة ‪Assertions‬‬ ‫‪.5‬‬


‫‪ ‬وهي عبارة عن شروط تصاغ بتعليمات معينة نرغب أن نلزم قاعدة البيانات بإتباعها دائما وقد‬
‫شاهدنا أنواعا منها مثل شروط سالمة المجال وشروط التحقق من المرجعية إال أنها تختلف هنا‬
‫بطريقة صياغتها حيث نضعها بصيغة شرط ملزم ‪.‬‬

‫‪ ‬الشرط ملزم يجب تحقيقه بمنطق صحيح وتسمح هذه القوانين بعمليات التعديل واإلضافة على قاعدة‬
‫البيانات طالما أن الشروط الملزمة تبقى صحيحة‪.‬‬

‫‪ ‬الشرط ملزم قد يؤدي إلى إبطاء النظام عند التطبيق بوجود عدد كبير من القوانين أما الصيغة العامة‬
‫لهذا النوع من القوانين فهي ‪:‬‬
‫‪SQL > Assert < assertion > on <Relation name > : < Predicate > .‬‬
‫‪ ‬أمثلة‪:‬‬
‫يمكن تعريف شرط ملزم على عالقة اإليداع بحيث يبقى الرصيد دائما ا أكبر من الصفر‬ ‫‪.1‬‬
‫; ‪SQL > Assert Balance – constraint on Ownership : Balance > = 0‬‬
‫يمكن تعريف شرط ملزم على جدول العمالء لشركة الكهرباء بحيث ال يمكن أن يكون الجابي محصل عداد بيته‬ ‫‪.2‬‬

‫‪SQL > Assert Collector – constraint on client :‬‬


‫‪Customer . name != Employee . name‬‬

‫‪6‬‬
‫‪23/09/1442‬‬

‫تابع ‪...‬‬
‫‪ ‬استخدام قوانين اإلسقاط ‪:Cascade Rules‬‬
‫‪ ‬باستخدام هذا النوع من قوانين اإلسقاط فإن أي عملية أو إجراء يتم على بيانات في‬
‫جدول يمكن إسقاطها لتتم أيضا على مكان تكرارها في جدول آخر كما هو موضح في‬
‫الخطوات التالية ‪:‬‬
‫‪ ‬إذا تم حذف مزود رقم ‪ S10‬من جدول المزودين‬
‫‪ ‬حذف أي قطعة في جدول القطع تابعة لهذا المزود ‪S10‬‬
‫‪ ‬واصبح باإلمكان استخدام مثل هذه القوانين في لغة ‪ SQL‬كجزء من ‪ DDL‬أو باستخدام‬
‫الصيغ التالية ‪:‬‬
‫‪‬‬ ‫‪When EVENTS -‬‬ ‫‪After EVENTS - Before EVENTS‬‬
‫‪ .3‬قوانين التعديل ‪:Update Rules‬‬
‫‪ ‬وهي مشابهة لقوانين الحذف حيث يمكن استخدام إجراءات مشابهة مثل المنع أو اإلسقاط‬
‫وتقوم هذه القوانين بالتأكد من أن أي تعديل يحصل على بيانات جدول يتم التأكد من البيانات‬
‫المتكررة بالجداول األخرى‬
‫‪ ‬ومثال على ذلك فإن تعديل رقم المزود ‪ S10‬وجعله ‪ S11‬في جدول المزودين يجب أن‬
‫ينعكس بالضرورة على جدول القطع وأن يتم تغيير رقم المزود ‪ S10‬وجعله ‪ S11‬في جدول‬
‫القطع‬

‫كمال القيم التي تتعلق بالمعنى وسالمتها ‪:Semantic Integrity Constraints‬‬ ‫‪.4‬‬

‫‪ ‬هذا النوع من الشروط له مدلوالت ذات معنى ويتبع التطبيقات وبيئتها فمثال ما يكون‬
‫شرطا متعلقا بمعنى في بيئة قد ال يصلح وال يعطي نفس المدلول في بيئة أخرى ومثال‬
‫ذلك ‪:‬‬
‫‪ ‬في إحدى المؤسسات ال يجوز أن يزيد راتب الموظف عن راتب مديره وعدا ذلك فهو‬
‫إخالل بشروط سالمة قاعدة البيانات وكمالها ‪.‬‬
‫‪ ‬ال يجوز أن تزيد أيام العطل واإلجازات لموظف عن ثالثين يوما إال في الحاالت المرضية‬
‫وعدا ذلك فهو إخالل بقوانين سالمة قاعدة البيانات وكمالها ‪.‬‬
‫‪ ‬سن التقاعد يبدأ بسن ‪ 60‬عاما لإلناث و‪ 65‬عاما للذكور ويعتبر إخالال بقاعدة بيانات وجود‬
‫شخص تجاوز سن التقاعد ‪.‬‬

‫ويمكن استخدام القوانين أو أوامر لغات قواعد البيانات البرمجية أو لغات العليا للتأكد من كمال‬
‫البيانات وسالمتها في هذا المجال‬

‫‪7‬‬
‫‪23/09/1442‬‬

‫النوابض المتحفزة ‪:Triggers‬‬ ‫‪.6‬‬

‫‪ ‬وهي عبارة عن قوانين يتم تنفيذها بشكل آلي ( أوتوماتيكي ) بواسطة نظام قاعدة البيانات كأثر‬
‫جانبي لتنفيذ بعض اإلجراءات على قاعدة البيانات مثل الحذف والتعديل واإلضافة وعند تصميم‬
‫هذا النوع من القوانين يجب تحديد الشروط الالزمة لتنفيذ هذه النوابض وزمن وجوب تنفيذها‬
‫لتقوم بواجبها للحفاظ على كمال البيانات وسالمتها ‪:‬‬

‫‪ .1‬استخدام النوابض ‪:‬‬


‫‪ ‬قد تستخدم النوابض المتحفزة في نظام قاعدة البيانات العالئقية ‪ SQL Server‬للتأكد من كمال‬
‫البيانات وسالمتها في األمور التالية ‪:‬‬
‫‪ ‬للتأكد من كمال المفاتيح المرجعية وسالمتها ‪.‬‬

‫‪ ‬إلعادة تعريف بعض مفاتيح لوحة المفاتيح ‪ key Board‬للقيام بواجبات محددة ‪.‬‬

‫‪ ‬للتأكد من كمال الحقول المدخلة وسالمتها ‪.‬‬

‫‪ ‬للتأكد من كمال الحقول ذات البعد المعنوي وسالمتها ‪.‬‬

‫‪ .2‬أنواع النوابض ‪ :‬تقسم النوابض إلى ثالثة أقسام رئيسية هي ‪:‬‬


‫‪ .1‬نوابض المفاتيح ‪key Triggers‬‬
‫‪ ‬هذا النوع يبدأ بكلمة ‪ key‬وإذا تم تعريفه على أحد المفاتيح من لوحة المفاتيح يقوم بتنفيذ الوظيفة‬
‫الخاصة به عند الضغط على ذلك المفتاح وعادة يكون لكل مفتاح نابض خاص به ومن أمثلة ذلك ‪:‬‬
‫‪Key-down , key-up , key-next-field‬‬

‫نوابض بتعريف المستخدم ‪User Defined Triggers‬‬ ‫‪.2‬‬


‫‪ ‬وهذا النوع يتم تعريفه من قبل المستخدم ألداء وظائف خاصة بالتطبيقات يحتاجها المستخدم ويتم تنفيذه‬
‫بواسطة الجملة التالية ‪:‬‬
‫) ‪Execute trigger ( trigger-name‬‬
‫} ‪If true { procedure‬‬
‫} ‪If false { procedure‬‬

‫نالحظ ‪ :‬خيارين في التنفيذ إما التنفيذ باالتجاه ‪ true‬وإذا فشل شرط النابض فسيتم تنفيذ الجزء اآلخر للداللة‬
‫على أن الشرط خطأ ‪.‬‬

‫‪8‬‬
‫‪23/09/1442‬‬

‫تابع‪...‬‬
‫‪ .3‬نوابض ومحفزات األحداث ‪Event Triggers‬‬
‫‪ ‬وهذا النوع من النوابض يترقب حدثا معينا ينفذ ضمن شروط معينة في قاعدة‬
‫البيانات ثم يتم تنفيذه ويأخذ هذا النابض عدة صيغ تضاف إلى اسم النابض للداللة‬
‫على اللحظة والوقت المناسب لتنفيذه وتتضمن التالي ‪:‬‬
‫‪ ‬قبل الحدث – مثال ‪PRE-change :‬‬
‫‪ ‬عند الحدث – مثال ‪ON-change :‬‬
‫‪ ‬بعد الحدث – مثال ‪POST-change :‬‬

‫• نوابض التصحيح ‪Validation Triggers‬‬


‫• يمكن تعريف نوابض التصحيح على عدة مستويات أصغرها مستوى الحقل ويتم‬
‫تنفيذها عند إجراء تغيير على الحقل للحفاظ على صحة المعلومات باإلضافة إلى‬
‫استخدامات أخرى متقدمة‬

‫تابع‪...‬‬
‫• نوابض االسترجاع ‪ :Query Triggers‬وينقسم هذا النوع إلى قسمين ‪:‬‬
‫نابض قبل االسترجاع ‪ :Pre-Query‬هذا النوع من النوابض ينفذ طلب االسترجاع ولكن قبل‬ ‫‪.1‬‬
‫القيام بتنفيذ االسترجاع ومثال ذلك ‪:‬‬
‫• مثال‪ :‬لمنع المستخدم من عمل استرجاع إال إذا قام بإدخال رقم الطالب ‪ Student-no‬ألنه‬
‫المفتاح لذلك الجدول ‪:‬‬
‫‪Pre-Query on student Block‬‬
‫‪If : student . Student_no IS NULL‬‬
‫‪Then‬‬
‫) " ‪Message ( " Empty Student No‬‬
‫‪Raise from-Triggers-failuer‬‬
‫; ‪Endif‬‬
‫‪ .2‬نوابض بعد االسترجاع ‪ : Post-Query Triggers‬هذا النوع من النوابض ينفذ بعد تنفيذ‬
‫االسترجاع ولكن عادة قبل عرض البيانات للمستخدم ومثال ذلك ‪:‬‬
‫لحساب عدد الطالب في قسم معين يتم إدخال رمز ذلك القسم من قبل المستخدم‬
‫‪Post-Query on student Block‬‬
‫‪Select count ( student _no ) into countV From student‬‬
‫‪Where Dep_no = student . Dep_no‬‬

‫‪9‬‬
‫‪23/09/1442‬‬

‫تابع‪...‬‬
‫‪ ‬نوابض النماذج ‪Form Triggers‬‬
‫‪ ‬تنفذ هذه النوابض عند وقوع أحداث متعلقة بالنماذج التي تعرض على الشاشة‬
‫وتنقسم إلى نوعين ‪:‬‬
‫‪ .1‬نابض قبل النموذج ‪Pre – form Trigger‬‬
‫‪ ‬وينفذ قبل لحظات تنفيذ عرض النموذج ويقوم بعدة وظائف منها ‪:‬‬
‫‪ ‬عمليات تحديد الصالحيات والتفويض باستخدام النموذج وذلك لتوثيق األمان والسرية في‬
‫نظام قاعدة البيانات‪.‬‬
‫‪ ‬وضع قيم مبدئية في حقول النموذج ‪Initialization‬‬

‫‪ .2‬نابض بعد النموذج ‪Post – form – Triggers‬‬


‫‪ ‬وينفذ بعد لحظات تنفيذ عرض النموذج وقد يقوم بعدة وظائف منها ‪:‬‬
‫‪ ‬التحقق من البيانات المدخلة وترتيب تسلسل األحداث‬
‫‪ o‬مثالا عند إدخال رقم مودع في أحد النماذج الخاصة بنظام بنكي قد يتطلب األمر استرجاع‬
‫نموذج توقيع هذا المودع وعرضه على الشاشة للتأكد من التوقيع قبل صرف الشيك‬

‫كمال األمن والسرية وسالمتها في المعلومات ‪:‬‬

‫‪ ‬يعتبر الحفاظ على األمن والسرية من األمور المهمة جدا في كمال‬


‫البيانات وسالمتها وهو مهم بسبب أن محاولة تغيير حالة قاعدة البيانات‬
‫أو اختراقها بدون تفويض قد يكون متعمدا وليس عفويا وهناك عدة‬
‫طرق للحفاظ على جوانب األمن والسرية في قواعد البيانات‪.‬‬

‫‪10‬‬
23/09/1442

Questions?

21

11

You might also like