JavaRush /مدونة جافا /Random-AR /مقابلة المطور: تحليل أسئلة قاعدة البيانات

مقابلة المطور: تحليل أسئلة قاعدة البيانات

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

1. ما هي قواعد البيانات؟ وما هي الأنواع التي ينقسمون إليها؟

ما المقصود بنظام إدارة قواعد البيانات (DBMS)؟

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

أنواع قواعد البيانات

  1. قاعدة البيانات العلائقية عبارة عن مجموعة من البيانات ذات العلاقات المحددة مسبقًا فيما بينها. يتم تخزين البيانات كمجموعة من الجداول تتكون من أعمدة وصفوف. تقوم الجداول بتخزين معلومات حول الكائنات الممثلة في قاعدة البيانات. يخزن كل عمود في الجدول نوع بيانات محددًا، وتخزن كل خلية قيمة سمة.
  2. الأنظمة غير العلائقية (NoSQL) هي أنظمة مصممة لنماذج بيانات محددة ذات مخططات مرنة. بمعنى آخر، هذه هي قواعد البيانات التي تخزن البيانات ليس في شكل مخططات جدولية وصفوف وأعمدة، ولكن بتنسيقات أخرى.
يمكنك قراءة المزيد حول قواعد البيانات غير العلائقية في هذه المقالة: دليل NoSQL للمطورين . نظام إدارة قواعد البيانات (DBMS) عبارة عن مجموعة من البرامج التي يمكن للمستخدم من خلالها إنشاء قواعد بيانات (DBs) وتنفيذ عمليات مختلفة عليها: استكمال وتحديث وحذف واختيار وما إلى ذلك. ويضمن نظام إدارة قواعد البيانات سلامة البيانات وتكاملها وأمنها. التخزين ويسمح لك بمنح الوصول إلى إدارة قاعدة البيانات. على سبيل المثال، MySql هو نظام إدارة قواعد البيانات الذي يوفر الوصول إلى قاعدة بيانات علائقية أو MongoDB لقاعدة غير علائقية.

2. ما هو التطبيع؟ شكل طبيعي؟ كم عدد أشكال التطبيع الموجودة؟ اسم الثلاثة الأولى.

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

3. عدم التطبيع

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

4. الفهارس

الفهرس عبارة عن مجموعة مرتبة من القيم المرتبطة بجدول أو عرض بعمود محدد يعمل على تسريع عملية استرجاع البيانات. أي أن هذا نوع من الفهرس: مثل الأبجدية الموجودة في دليل الهاتف، مما يساعدنا عند البحث بالاسم الأخير. إذا تم استخدامها بشكل صحيح، فيمكن لهذه الميزة تحسين الأداء بشكل كبير عند العمل مع قواعد البيانات الكبيرة. أو يمكنك خفضه كثيرًا. لتسريع البحث، يتم تخزين هذه المفاتيح في بنية شجرة متوازنة يتم من خلالها إجراء البحث. كقاعدة عامة، يجب إدخال الفهارس في الحقول التي يتم البحث عنها غالبًا. يجب أن تفكر في إنشاء فهرس في موعد لا يتجاوز أن يكون لديك 10 آلاف سجل على الأقل. وإلا فلن ترى نتيجة ملحوظة، لأن التحسين المبكر هو الشر . وتتساءل كيف يمكن أن يؤثر الفهرس على أداء النظام؟ عند إدراج بيانات جديدة أو حذف بيانات قديمة، سيتم إعادة حساب بنية الشجرة المتوازنة. في الواقع، كلما زاد عدد البيانات والفهارس، زاد عدد الأشجار التي يجب حسابها. تخيل الموقف: لديك حوالي 20000 سجل و7 فهارس في هذا الجدول. أي أنه عند إدخال البيانات، تحتاج إلى إعادة حساب 7 أشجار، تحتوي كل منها على 20000 سجل. بالمعنى الدقيق للكلمة، لا يوصى على الإطلاق باستخدام فهارس الجداول التي سيتم إضافة/حذف البيانات إليها بشكل متكرر. أخيرًا، أود أن أشير إلى أن فهارس الأعمدة التي توجد فيها القيمة غالبًا nullلن تكون فعالة، لذا لا يستحق إضافتها إلى هذه الأعمدة.

ما الفرق بين الفهارس المجمعة وغير المجمعة في SQL؟

متجمعة:

  • يوفر الترتيب الفعلي للحقل المحدد؛
  • إذا كان الجدول يحتوي على فهرس متفاوت المسافات، فيقال أنه متفاوت المسافات؛
  • ليس هناك حاجة إلى أكثر من فهرس واحد لكل جدول؛
  • في MySQL، لا يتم تحديد الفهرس المجمع بشكل صريح من قبل المستخدم، لأنه إذا لم تقم بتعريف مفتاح أساسي على الجدول الخاص بك، فإن MySQL يعثر على الفهرس الأول UNIQUEحيث توجد جميع أعمدة المفاتيح NOT NULL، ويستخدمه InnoDB كفهرس متفاوت المسافات.

غير متجمعة:

  • يمكن توفير ما يصل إلى 999 فهارسًا غير متفاوتة المسافات لكل جدول؛
  • يحتوي على مؤشر للصفوف التي تحتوي على بيانات حقيقية في الجدول؛
  • لا يوفر النظام المادي؛
  • بالنسبة للفهارس غير المجمعة، توجد جداول منفصلة تحتوي على بيانات مصنفة، أي جدول واحد لعمود واحد يقع عليه الفهرس، لذلك عند طلب بيانات ليست جزءًا من حقل معين، سيتم تنفيذ الاستعلام أولاً على الفهارس في هذا الجدول، وعندها فقط سيتم الاستعلام الإضافي مقابل صف في الجدول الأصلي.
إنشاء فهرس غير متفاوت المسافات:
CREATE INDEX index_name ON table_name(column_name)

6. ما هو المؤشر المركب؟

الفهرس المركب - تم إنشاؤه من خلال الإرسال إلى عدة أعمدة في نفس الوقت. بمعنى آخر، إنه فهرس معقد يتكون من عدة أعمدة. يتم استخدام هذه الفهارس عند ظهور أكثر من عمود في استعلام واحد. إنشاء فهرس مركب:
CREATE INDEX index_name ON table_name(first_column_name, second_column_name, third_column_name)
عادةً ما يتم استخدام هذه الفهارس عندما تكون البيانات الموجودة في أعمدة متعددة مرتبطة منطقيًا.

7. ما هو مؤشر التغطية؟ مؤشر فريد؟

فهرس التغطية هو فهرس يكفي للإجابة على استعلام دون الوصول إلى الجدول نفسه. باستخدام هذا الفهرس، يمكنك الحصول على صف البيانات بأكمله، ولكن في الواقع هذا ليس ضروريًا. نظرًا لأنه ليس عليك الانتقال مباشرةً إلى الجدول المصدر ويمكنك الإجابة باستخدام الفهرس فقط، فإن استخدام الفهارس المغطاة يكون أسرع قليلًا. وفي الوقت نفسه، لا تنس أنه كلما زاد عدد الأعمدة، أصبح الفهرس نفسه أكثر تعقيدًا وبطءًا. لذلك يجب أن لا تسيء استخدام هذا. تحدثنا أعلاه عن الفهارس المجمعة وغير المجمعة، والتي يمكن أن تكون فريدة من نوعها . وهذا يعني أنه لا يوجد حقلين لهما نفس القيمة لمفتاح الفهرس. وبخلاف ذلك، لن يكون الفهرس فريدًا، لأن عدة صفوف قد تحتوي على نفس القيمة. مثال على إنشاء فهرس فريد غير مجمع:
CREATE UNIQUE INDEX index_name ON table_name(column_name)

8. ما هو المفتاح الأساسي

المفتاح الأساسي هو حقل في جدول يحدد كل صف في جدول قاعدة البيانات. يمكن أن يكون هناك حقل واحد فقط في الجدول، ويجب أن تكون جميع القيم فريدة. لم أذكرك بأي شيء؟ مقابلة المطور: تحليل أسئلة قاعدة البيانات - 3بعد كل شيء، المفتاح الأساسي ليس أكثر من مجرد فهرس مجمع فريد . كقاعدة عامة، يتم إنشاء المفاتيح الأساسية عند إنشاء جدول:
CREATE TABLE table_name(
column_name int PRIMARY KEY,..)
ستتم إضافة تقييد تلقائيًا إلى هذا العمود - NOT NULL. يمكنك أيضًا تعيين مفتاح لجدول تم إنشاؤه بالفعل:
ALTER TABLE table_name ADD PRIMARY KEY (column_name);
إذا تمت إضافة مفتاح أساسي بالطريقة الموضحة أعلاه، فسيتم column_nameالتحقق من قيم الحقول المحددة كمفتاح أساسي ( ) للتأكد من أنها لا تحتوي على قيم فارغة (سيتم إضافة قيد - أيضًا NOT NULL).

ما هو المفتاح الخارجي؟

المفتاح الخارجي هو خاصية تم إنشاؤها لتوفير علاقة بين الجداول. عادةً، يتم تعيين المفتاح الخارجي على أعمدة في جدول فرعي ويشير إلى أحد الأعمدة من الجدول الرئيسي. يمكن تحديده كما هو الحال عند إنشاء جدول:
CREATE TABLE table_name{
column_name int,..
FOREIGN KEY(column_name) REFERENCES another_table_name(another_table_column_name) }
لذلك بعد إنشاء الجدول:
ALTER TABLE table_name
ADD FOREIGN KEY(column_name) REFERENCES another_table_name(another_table_column_name));
يمكنك ضبط سلوك المفتاح الخارجي عند التعامل مع الحقل الذي يشير إليه. ON DELETEيمكن أن تكون التلاعبات من الأنواع التالية ON UPDATE: خيارات السلوك الممكنة:
  • CASCADE— باستخدام هذه الخاصية، سيتم حذف الصفوف من الجدول التابع أو تغييرها تلقائيًا عند حذف الصفوف المرتبطة أو تغييرها في الجدول الرئيسي؛
  • SET NULL— باستخدام هذه الخاصية، عند حذف صف ذي صلة أو تحديثه من الجدول الرئيسي، NULLسيتم تعيين قيمة عمود المفتاح الخارجي؛
  • NO ACTION- يرفض محاولات حذف أو تغيير الصفوف في الجدول الرئيسي إذا كانت هناك صفوف ذات صلة في الجدول التابع؛
  • RESTRICT- أي ما يعادل NO ACTION؛
  • SET DEFAULT- باستخدام هذه الخاصية، عند حذف صف ذي صلة أو تحديثه من الجدول الرئيسي، سيتم تعيين القيمة الافتراضية (إن وجدت) لعمود المفتاح الخارجي.
مثال الاستخدام:
CREATE TABLE table_name{
column_name int,..
FOREIGN KEY(column_name) REFERENCES another_table_name(another_table_column_name) ON UPDATE CASCADE ON DELETE CASCADE }
إذا لم يتم تعيين السلوك لـ ON DELETEو بشكل صريح ON UPDATE، فسيتم تعيين السلوك على RESTRICT.

10. أنواع الاتصالات بين الجداول (انضمام)

يتم توفير الاتصال بين الجداول بناءً على البيانات (الحقول) المشتركة. يحدث هذا باستخدام عامل التشغيل JOIN، وهي عملية تقوم بمطابقة الصفوف من جدول واحد مع الصفوف الموجودة في جدول آخر. يتم التعيين بحيث تكون أعمدة كلا الجدولين متجاورة، على الرغم من إمكانية الحصول عليها من جداول منفصلة. وإذا كان لدينا حقول مشتركة لثلاثة جداول، فيمكننا عرض بياناتها كجدول واحد مشترك. ومع ذلك، تجدر الإشارة إلى أنه كلما قل عدد الجداول المرتبطة، زاد تشغيل الاستعلام بشكل أسرع. إذن الأنواع JOIN:
  • INNER JOIN- اتصال يعرض فقط تلك البيانات من الجدول الأول التي تتوافق مع بعض البيانات من الجدول الثاني. الباقي ينزل.مقابلة المطور: تحليل أسئلة قاعدة البيانات - 4
  • LEFT JOIN- اتصال يظهر كافة البيانات من الجدول الأول والبيانات المقابلة من الجدول الثاني إن وجدت. إذا لم تكن هناك بيانات مقابلة، فستكون حقول البيانات من الجدول الثاني فارغة.مقابلة المطور: تحليل أسئلة قاعدة البيانات - 5
  • RIGHT JOIN- اتصال يوضح كافة البيانات من الجدول الثاني والبيانات المقابلة من الجدول الأول إن وجدت. إذا لم تكن هناك بيانات مقابلة، فستكون حقول البيانات من الجدول الأول فارغة.مقابلة المطور: تحليل أسئلة قاعدة البيانات - 6
  • FULL JOIN- اتصال يظهر كافة البيانات من الجدولين الأول والثاني. إذا لم تكن هناك بيانات ذات صلة في الجدول الآخر، فستكون حقول تلك البيانات فارغة.مقابلة المطور: تحليل أسئلة قاعدة البيانات - 7
  • CROSS JOIN- صلة متقاطعة يتم فيها ربط كل صف من الجدول الأول بكل صف من الجدول الثاني (كل صف). أي أنه إذا كان هناك جدولان يحتوي كل منهما على 3 صفوف، فبعد هذا الربط سنحصل على نتيجة 9 صفوف.مقابلة المطور: تحليل أسئلة قاعدة البيانات - 8
مثال Join(inner):
SELECT *
FROM first_table
INNER JOIN second_table ON first_table.some_column = second_table.some_column

11. ما هي خاصية ACID في قاعدة البيانات؟

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

12. مستويات عزل المعاملات

كل مستوى من مستويات العزل يسمح/يمنع إجراءات معينة (فرص):
  • القراءة الوهمية - ضمن نفس المعاملة، يعطي نفس طلب البيانات نتائج مختلفة، ويحدث ذلك بسبب إضافة البيانات من خلال معاملة أخرى (موازية).
  • قراءة غير متكررة - في نفس المعاملة، يعطي نفس طلب البيانات نتائج مختلفة، والذي يحدث بسبب تغيير أو حذف البيانات من خلال معاملة أخرى (موازية).
  • القراءة "القذرة" - قراءة البيانات المضافة أو المتغيرة بواسطة معاملة لن يتم التراجع عنها لاحقًا؛
  • التحديث المفقود - عندما تقوم معاملات مختلفة بتغيير نفس كتلة البيانات في نفس الوقت، يتم فقدان جميع التغييرات باستثناء التغيير الأخير (على غرار "حالة السباق" في مؤشرات الترابط المتعددة).
للراحة، نأخذ في الاعتبار مستويات العزل وإمكانياتها في الجدول:
مستويات العزل القراءة الوهمية قراءة غير متكررة قراءة "قذرة" التحديث المفقود
قابل للتسلسل + + + +
REPEATABLE_READ - + + +
READ_COMMITTED - - + +
READ_UNCOMMITTED - - - +

13. ما هو حقن SQL؟

يعد حقن SQL إحدى طرق اختراق موقع الويب، ويتمثل جوهرها في حقن بعض أكواد SQL في البيانات من خلال GETالاستعلامات POSTأو ملفات تعريف الارتباط. إذا قام موقع ويب بإجراء مثل هذه عمليات الحقن، فمن الممكن الوصول إلى قاعدة البيانات واختراق التطبيق. على سبيل المثال، نحن نعرف اسم بعض المتغيرات. دعنا نقول column_nameمع النوع boolean. إذا كان النظام عرضة للحقن فيمكننا إضافة OR column_name=trueثم كتابة كل ما نحتاجه من قاعدة البيانات. ORسينشئ شرط OR، وسيكون تعبيرنا بعده دائمًا هو true، مما سيأخذنا إلى أبعد من ذلك. من الممكن حدوث هجوم على موقع ويب مثل حقن SQL بسبب المعالجة غير الصحيحة للبيانات الواردة المستخدمة في استعلامات SQL. عند الاتصال بقاعدة بيانات باستخدام JDBC ، يمكنك استخدام ملفات Statements. لزيادة الأمان، من الضروري استخدام PreparedStatementبدلاً من المعتاد Statement، لأنه عند الاستخدام، Statementتتم ببساطة إضافة سلاسل وقيم الاستعلام معًا، مما يجعل الحقن ممكنًا. يوجد بدوره PreparedStatementقالب طلب محدد، ويتم إدراج البيانات فيه مع انعكاس علامتي الاقتباس. ونتيجة لذلك، سيتم النظر إلى حقن SQL فقط على أنها تمثيل سلسلة لبعض الحقول. للحماية من حقن SQL، يمكنك استخدام عمليات التحقق المستندة إلى التعبيرات العادية (يمكنك قراءة المزيد عن التعبيرات العادية في هذه المقالة ). Собеседование разработчика: разбор вопросов по базам данных - 9هناك خيار آخر وهو تعيين حد لعدد أحرف المعلمات الواردة: على سبيل المثال، إذا كان من المفترض أن تتلقى رقمًا لا يزيد عن 9999، فسيتم إجراء حد أربعة أحرف واردة. سيقلل من مخاطر القرصنة باستخدام حقن SQL.يمكنك معرفة المزيد حول الأمان في Java من مقال "الأمان في Java: أفضل الممارسات" .

14. ما هي الإجراءات المخزنة؟ الوظائف المخزنة؟ مشغل؟

الإجراءات المخزنة في SQL هي كيان في قاعدة البيانات، وهي عبارة عن مجموعة من تعليمات SQL التي يتم تجميعها مرة واحدة وتخزينها على الخادم. في كلمة واحدة، هذا هو التناظرية للطرق في جافا. يمكن للإجراءات المخزنة تنفيذ إجراءات على البيانات، سواء الاستعلامات العادية أو بعض الإجراءات غير المتوفرة للاستعلامات العادية. الإجراء هو كيان SQL يتم إنشاؤه مرة واحدة ثم يتم استدعاؤه عن طريق تمرير الوسائط. وميزة هذا الأسلوب هو أنه يمكن إعادة استخدام هذه التعليمات أكثر من مرة. تعمل الإجراءات المخزنة على تحسين الأداء وتعزيز قدرات البرمجة ودعم ميزات أمان البيانات. دعونا نفكر في إنشاء إجراء:
CREATE PROCEDURE procedure_name (first_param some_type, second_param some_type..)
 begin
……...
 end
استدعاء الإجراء:
CALL procedure_name (first_param, second_param…..);
الوظيفة المخزنة هي نوع من الإجراء المخزن. الفرق بين الدالة هو أنها تُرجع دائمًا قيمة واحدة فقط، بينما يُرجع الإجراء مجموعة من القيم. لا يمكن خلط الإجراءات المخزنة مع لغة SQL العادية، ولكن يمكن دمج الوظيفة المخزنة - وهذه هي ميزتها. ومن ناحية أخرى، فإن الوظائف المخزنة لها قيود أكثر بكثير من الإجراءات. إنشاء وظيفة مخزنة:
CREATE FUNCTION function_name (first_param, second_param…..)
RETURNS some_type
 begin
……...
RETURN some_value;
end
استدعاء وظيفة مخزنة:
SELECT function_name(first_param, second_param…..);
المشغل هو نوع آخر من الإجراءات المخزنة التي لا يستدعيها المستخدم مباشرة، ولكن يتم تنشيطها عند تعديل البيانات. أي أنه يتم تفعيل هذا الإجراء عند استيفاء شروط معينة، مثل، INSERTأو DELETE، أو UPDATEالبيانات الموجودة في عمود معين من جدول معين. يتم تحديد وقت إطلاق المشغل باستخدام الكلمات الأساسية BEFORE(إطلاق المشغل قبل الحدث المرتبط) أو AFTER(بعد الحدث).
CREATE TRIGGER trigger_name
ON table_name
AFTER INSERT
 begin
……...
 end

15. الممارسة

مهما كان الأمر، فإن سؤال SQL الأكثر شيوعًا في المقابلة سيكون التدريب على حل المشكلات. لا فائدة من محاولة تخمين المهام التي ستواجهها، لأن كل شيء يعتمد على تعقيد خيال الشخص المقابل. ولذلك، فإن خيار العمل الوحيد سيكون تحسين استعلامات SQL ذات التعقيد المتفاوت. يمكن أن يكون sql-ex.ru بمثابة مورد للتدريب على المهام المختلفة . بعد الانتهاء من المهام العشرين الأولى، سيكون من الصعب جدًا على محاورك أن يخيفك بأي مهمة SQL. Собеседование разработчика: разбор вопросов по базам данных - 11هذا كل شيء لليوم: أتمنى بعد قراءة هذا المقال أن لا تسبب الأسئلة المتعلقة بقواعد البيانات أي صعوبات أو مشاكل. شكرا لاهتمامكم ونراكم مرة أخرى!
تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION