عمود افتراضي
في قواعد البيانات العلائقية، العمود الافتراضي هو عمود في الجدول تُحسب قيمته (قيمه) تلقائيًا باستخدام قيم أعمدة أخرى، أو تعبير حتمي آخر. تُعرَّف الأعمدة الافتراضية في SQL:2003 باسم "العمود المُولَّد " [ 1 ] ، وهي مُطبَّقة فقط في بعض أنظمة إدارة قواعد البيانات ، مثل MariaDB و SQL Server و Oracle و PostgreSQL و SQLite و Firebird (خادم قاعدة البيانات) (باستخدام صيغة COMPUTED BY).
تطبيق
يوجد نوعان من الأعمدة:
- أعمدة افتراضية
- أعمدة ثابتة
تُحسب قيم الأعمدة الافتراضية عند الحاجة ، مثلاً عند استرجاعها بواسطة عبارة SELECT. أما قيم الأعمدة الثابتة فتُحسب عند إدراج صف في جدول، وتُكتب كباقي القيم، ويمكن أن تتغير بتغير القيم الأخرى. لكل من الأعمدة الافتراضية والثابتة مزايا وعيوب: فالأعمدة الافتراضية لا تستهلك مساحة على القرص، ولكن يجب حسابها في كل مرة يُشير إليها استعلام؛ بينما لا تتطلب الأعمدة الثابتة أي وقت من وحدة المعالجة المركزية، ولكنها تستهلك مساحة على القرص. مع ذلك، قد لا يكون الخيار متاحًا دائمًا، لأن بعض أنظمة إدارة قواعد البيانات تدعم نوعًا واحدًا فقط من الأعمدة (أو لا تدعم أيًا منهما).
IBM Db2
يدعم IBM Db2 العمود الافتراضي من الإصدار 8 كعمود مُنشأ. [ 2 ]
MariaDB
MariaDB هي نسخة معدلة من MySQL . تمت إضافة الأعمدة الافتراضية في الإصدار 5.2. [ 3 ]
تتضمن التعبيرات التي يمكن استخدامها لحساب الأعمدة الافتراضية القيود التالية:
- يجب أن تكون حتمية
- لا يمكنهم إرجاع قيم ثابتة
- لا يمكنهم استخدام الدوال المعرفة من قبل المستخدم أو الإجراءات المخزنة
- لا يمكنها تضمين أعمدة افتراضية أخرى
- لا يمكنهم استخدام الاستعلامات الفرعية
يمكن فهرسة الأعمدة الثابتة ويمكن أن تكون جزءًا من مفتاح خارجي ، مع بعض القيود الصغيرة المتعلقة بفرض القيود.
لا يمكن استخدام الأعمدة الافتراضية إلا في الجداول التي تستخدم محرك تخزين يدعمها. محركات التخزين التي تدعم الأعمدة الافتراضية هي:
يمكن أن تستند جداول MRG_MyISAM إلى جداول MyISAM التي تتضمن أعمدة ثابتة؛ ولكن يجب تعريف عمود MRG_MyISAM المقابل كعمود عادي.
بناء الجملة
يمكن استخدام عبارة CREATE TABLE أو ALTER TABLE لإضافة عمود افتراضي. صيغة تعريف العمود الافتراضي هي كالتالي:
< النوع > [ مُنشأ دائمًا ] كـ ( < تعبير > ) [ افتراضي | دائم ] [ فريد ] [ مفتاح فريد ] [ تعليق < نص > ]- النوع هو نوع بيانات العمود
- التعبير هو تعبير SQL الذي يُرجع قيمة العمود لكل صف
- النص هو تعليق اختياري على العمود
MySQL
بدأ دعم الأعمدة الافتراضية، المعروفة في MySQL باسم الأعمدة المُولَّدة، في الإصدار 5.7 من MySQL. وقد تم تخفيف العديد من القيود المفروضة على استخدامها في الإصدارات اللاحقة. [ 4 ]
أوراكل
خادم SQL
يدعم خادم Microsoft SQL الأعمدة الافتراضية، ولكنها تسمى الأعمدة المحسوبة. [ 6 ]
يدعم SQL Server كلاً من الأعمدة المحسوبة المحفوظة وغير المحفوظة.
طائر النار
لطالما دعمت فايربيرد الأعمدة الافتراضية كما يدعمها سلفها إنتربيس ، والتي تسمى الأعمدة المحسوبة. [ 7 ]
يدعم Firebird الأعمدة الافتراضية، وليس الأعمدة الثابتة، ويسمح بالاستعلامات الفرعية، واستدعاء الوظائف المضمنة، والوظائف الخارجية، والروتينات المخزنة في تعبير العمود الافتراضي.
بناء الجملة
يمكن إنشاء عمود افتراضي أثناء إنشاء الجدول أو عند إضافة أعمدة إلى جدول موجود. الصيغة المستخدمة لتعريف عمود افتراضي هي كالتالي:
اسم_العمود [ النوع ] محسوب بواسطة ( التعبير )أو المعيار الصناعي
اسم_العمود [ النوع ] يتم إنشاؤه دائمًا كـ ( تعبير )PostgreSQL
منذ الإصدار 12، يدعم PostgreSQL الأعمدة الافتراضية، والمعروفة باسم الأعمدة المولدة. [ 8 ]
SQLite
منذ الإصدار 3.31.0 (22-01-2020)، يدعم SQLite الأعمدة الافتراضية، والمعروفة باسم الأعمدة المولدة. [ 9 ]
انظر أيضاً
مراجع
- ↑ تم نشر SQL:2003
- ↑ مرجع SQL المجلد 2 الإصدار 8
- ↑ أعمدة افتراضية
- ↑ "MySQL :: MySQL 5.7 Reference Manual :: 13.1.18.7 CREATE TABLE and Generated Columns" .
- ↑ "إدارة مخططات أوراكل 11g" . مؤرشف من الأصل بتاريخ 2017-08-06.
- ↑ "الأعمدة المحسوبة" . 4 أكتوبر 2012.
- ↑ "طاولة" .
- ↑ "5.3. الأعمدة المُنشأة" . 12 أغسطس 2021.
- ↑ "الأعمدة المُنشأة" .
روابط خارجية
- الأعمدة الافتراضية في وثائق MariaDB.
- MariaDB 5.2: ما هي استخدامات الأعمدة الافتراضية؟ مؤرشف بتاريخ 7 أبريل 2022 على موقع Wayback Machine على OpenLife.cc
- الأعمدة الافتراضية في قاعدة بيانات أوراكل 11g الإصدار 1
- الأعمدة المحسوبة في SQL Server 2008
- أنظمة إدارة قواعد البيانات
