المقارنة الاستراتيجية الشاملة بين قاعدة البيانات وملف Excel في 2026: متى تحول مشروعك؟ ودليل الهجرة العملي
📊 المقارنة الاستراتيجية الشاملة بين قاعدة البيانات وملف Excel في 2026: متى تحول مشروعك؟ ودليل الهجرة العملي
مقارنة هندسية وتقنية موسعة مع أمثلة برمجية ودليل عملي للهجرة من Spreadsheets إلى DBMS.
من واقع خبرتي في إنقاذ مشاريع مؤسسات عالقة في "فخ الإكسيل"، أستطيع الجزم بأن السؤال التقني الأهم في 2026 لم يعد "هل نستخدم Excel أم قاعدة بيانات؟"، بل "متى يجب أن نهاجر من Excel إلى قاعدة بيانات حقيقية قبل أن تنهار أنظمتنا؟". يقع الكثير من المطورين المبتدئين ورواد الأعمال في فخ الخلط بين مفهوم جدول البيانات الإلكتروني (Spreadsheet) ومفهوم نظام إدارة قواعد البيانات (DBMS)، نظراً لأن النظامين يعرضان المعلومات في شكل صفوف وأعمدة للوهلة الأولى.
ورغم أن Microsoft Excel يُعد أداة أسطورية فائقة التطور لا غنى عنها، إلا أنه ليس خياراً هندسياً مناسباً لبناء الأنظمة البرمجية المستدامة. في هذا الدليل الموسع، نستعرض المقارنة الشاملة، تحليل التكلفة الإجمالية (TCO)، الإشارات الحمراء التي تحذرك من تجاوز Excel لطاقته، دليل هجرة عملي، وأمثلة برمجية بـ SQL و Python.
في مشروع لشركة توزيع صغيرة (12 موظفاً)، كانت إدارة المخزون كلها في ملف Excel واحد بحجم 45 ميجابايت، مع 8 معادلات VLOOKUP متشابكة بين 3 ملفات منفصلة. عند أول جرد شهري، اكتشفنا 230 صنفاً بقيم سالبة (مستحيل فيزيائياً) بسبب خطأ في إحدى المعادلات. أعدنا بناء النظام على PostgreSQL مع واجهة إدخال بسيطة (Retool)، واختفت المشكلة تماماً. الوقت المستغرق في الجرد الشهري انخفض من 3 أيام إلى 4 ساعات. لكن التكلفة الحقيقية كانت أسابيع من البحث عن السبب، لا تكلفة قاعدة البيانات نفسها.
جدول المحتويات
- 1. المفهوم والتعريف التقني لكل من Excel وقواعد البيانات
- 2. التحليل الهندسي: الأداء، السعة، والتزامن
- 3. سلامة البيانات والأمان
- 4. جدول مقارنة تفصيلي موسع
- 5. متى يكون Excel الخيار الأمثل؟
- 6. متى تصبح قاعدة البيانات ضرورة حتمية؟
- 7. 5 إشارات حمراء تحذرك: مشروعك تجاوز مرحلة Excel!
- 8. تحليل التكلفة الإجمالية للملكية (TCO): الأرقام الحقيقية
- 9. هل أنقذت Excel نفسها بتقنيات Power Query و Data Model؟
- 10. النموذج المسطح ضد النموذج العلائقي (Flat vs Relational)
- 11. دليل الهجرة العملية من Excel إلى قاعدة بيانات في 5 خطوات
- 12. التكامل مع أدوات BI والأدوات الحديثة
- 13. أمثلة برمجية تطبيقية (SQL & Python)
- 14. أخطاء شائعة وطرق التعامل معها (Troubleshooting)
- 15. الأسئلة الشائعة (FAQ)
1. المفهوم والتعريف التقني لكل من Excel وقواعد البيانات
ما هو ملف Excel (Spreadsheet)؟
تطبيقات جداول البيانات مثل Microsoft Excel أو Google Sheets هي أدوات تفاعلية صُممت للمستخدم النهائي للتعامل المباشر مع البيانات وإجراء الحسابات وعرض المخططات. يتم خزن البيانات في ملف (.xlsx) يتألف من شبكة مرنة من الخلايا، حيث كل خلية يمكن أن تحمل نصاً أو رقماً أو معادلة مستقلة. Excel ممتاز للحسابات والتحليل، لكنه ليس نظام إدارة بيانات.
ما هي قاعدة البيانات (Database Management System)؟
قاعدة البيانات هي نظام تخزين خلفي مهيكل، مصمم لتخزين ومعالجة وتأمين كميات ضخمة من البيانات المترابطة، وتُدار عبر برمجيات خادمة تُعرف بـ أنظمة إدارة قواعد البيانات (DBMS) مثل MySQL، PostgreSQL، Oracle SQL، أو MongoDB. تُفصل البيانات كلياً عن واجهات الاستخدام، وتتم معالجتها بآليات استعلام متقدمة مثل SQL وفق قواعد تنظيمية صارمة.
2. التحليل الهندسي: الأداء، السعة، والتزامن
أ. السعة التخزينية وسلسلة الأداء
ورقة العمل الواحدة في Excel لها حد أقصى صلب: 1,048,576 صفاً × 16,384 عموداً. لكن المشكلة ليست في الحد الأقصى، بل في الأداء. بمجرد تجاوز 50,000 صف محمّل بالمعادلات، يبدأ الملف في البطؤ والجمود. بينما تستطيع قواعد البيانات معالجة مليارات الصفوف عبر الفهرسة والتوزيع.
ب. المعالجة التزامنية وحماية السباق (Race Condition)
ملف Excel غير مؤهل للتعامل مع تعديلات متزامنة من مئات المستخدمين. يتسبب ذلك في قفل الملف أو فقدان التعديلات. صُممت قواعد البيانات لدعم عشرات الآلاف من الطلبات المتزامنة عبر التحكم في الأقفال على مستوى الصف (Row-Level Locking).
3. سلامة البيانات والأمان
في Excel، يستطيع المدخل كتابة نص داخل عمود الأرقام أو ترك الحقول الإجبارية فارغة. أما قواعد البيانات، فتفرض قيوداً صارمة (Schema Constraints):
- NOT NULL: منع ترك الحقول الجوهرية فارغة.
- UNIQUE: منع تكرار السجلات الفريدة.
- FOREIGN KEY: ضمان الربط الصحيح بين الجداول.
- CHECK: منع القيم غير المنطقية (مثل عمر سالب).
من ناحية الصلاحيات: في Excel، فتح الملف يعني رؤية كل شيء. في قواعد البيانات، يمكنك منح مستخدم صلاحية رؤية جدول واحد فقط أو عمود محدد، مع سجل تدقيق (Audit Trail) يقيد اسم كل من عدل أو حذف.
4. جدول مقارنة تفصيلي موسع
| وجه المقارنة | ملف Excel | قاعدة البيانات |
|---|---|---|
| الهدف الأساسي | تحليل، حسابات، وتصور بياني | تخزين، تزامن، وتغذية البرمجيات |
| سعة السجلات | 1,048,576 صف لكل ورقة | غير محدودة عملياً |
| الوصول المتزامن | محدود ومعرض للقفل | آلاف المستخدمين في نفس اللحظة |
| سلامة البيانات | ضعيفة (تعتمد على انتباه المدخل) | قوية بقيود Schema Constraints |
| تكامل APIs | يدوي أو سكربتات معقدة | مباشر عبر كل لغات البرمجة |
| منحنى التعلم | سهل جداً | يتطلب SQL أو ORM |
| النسخ الاحتياطي | يدوي (نسخ الملف) | تلقائي ومؤتمت (Replication) |
| التكلفة الأولية | شبه صفر (Office) | مجاني (MySQL) أو مدفوع (Oracle) |
| التكلفة على المدى الطويل | ترتفع مع النمو (يدوي + أخطاء) | تنخفض (أتمتة + كفاءة) |
5. متى يكون Excel الخيار الأمثل؟
- التحليلات المالية والنمذجة المحاسبية: بناء الميزانيات والتدفقات النقدية.
- البيانات صغيرة الحجم: قوائم شخصية أو جداول مشاريع صغيرة (أقل من 10,000 سجل).
- المخططات البيانية السريعة: تحويل أرقام إلى رسوم تفاعلية فورية.
- النماذج الأولية (Prototyping): جمع عينات بيانات قبل بناء نظام برمجي.
- مستخدم واحد أو اثنان: عندما لا يوجد تزامن حقيقي.
6. متى تصبح قاعدة البيانات ضرورة حتمية؟
- تطوير تطبيقات الويب والهواتف: المتاجر الإلكترونية والمنصات التعليمية.
- الأنظمة الحساسة (ACID): البنوك، منصات الدفع، والتطبيقات الطبية.
- البيانات المترابطة: جداول متعددة مرتبطة بمفاتيح أجنبية.
- تكامل الذكاء الاصطناعي: تغذية النماذج ببيانات حية ومحدثة لحظياً.
- أكثر من 3 مستخدمين متزامنين: بمجرد تجاوز هذا الحد، يصبح Excel خطراً.
7. 5 إشارات حمراء تحذرك: مشروعك تجاوز مرحلة Excel!
من واقع خبرتي في مراجعة أنظمة عشرات الشركات، إليك الإشارات التي تعني أنك بحاجة للهجرة فوراً:
إذا كان ملف Excel يأخذ أكثر من 30 ثانية ليفتح أو يتجمد أثناء العمل، فهذا يعني أنك تجاوزت قدرة الذاكرة العشوائية (RAM). كل معادلة تعيد الحساب من جديد عند أي تعديل.
في هذه الحالة، ستبدأ في رؤية مشاكل "الملف مقفل بواسطة مستخدم آخر" أو فقدان التعديلات. حتى مع OneDrive أو Google Sheets، الفوضى قادمة.
إذا كانت معادلات VLOOKUP أو INDEX/MATCH تعتمد على ملفات أخرى، فأي تعديل في ملف واحد قد يُفسد السلسلة بالكامل. هذه أخطاء صامتة قد تكتشفها بعد أسابيع.
تعدد النسخ يعني عدم وجود "مصدر حقيقة واحد" (Single Source of Truth). هذه فوضى ستنتهي بكارثة بيانات.
إذا كنت تريد أن يقرأ موقعك أو تطبيقك بيانات من Excel، فأنت في مشكلة. APIs + Excel = كابوس. الحل: قاعدة بيانات تتعامل معها عبر API.
8. تحليل التكلفة الإجمالية للملكية (TCO): الأرقام الحقيقية
كثيرون يعتقدون أن Excel "مجاني" وقواعد البيانات "مكلفة". لكن التحليل الحقيقي يكشف العكس في معظم الحالات:
| التكلفة | Excel (سنوياً) | قاعدة بيانات (سنوياً) |
|---|---|---|
| الترخيص | ~$100 (Office 365) | 0 (MySQL) - $1000 (Cloud) |
| الوقت المهدر في التصحيح اليدوي | ~80 ساعة/سنة (تقديري) | ~5 ساعات/سنة (أخطاء أقل) |
| خسارة البيانات والتكرار | مرتفعة مع النمو | شبه معدومة (قيود + نسخ احتياطي) |
| وقت التطوير المستقبلي | يزداد تعقيداً (لجوء للماكرو) | ثابت (SQL واضح) |
| التكلفة الإجمالية بعد 3 سنوات (مشروع متوسط) | ~$15,000 (بشري + تراخيص + أخطاء) | ~$3,000 (بشري + استضافة) |
الخلاصة: Excel يبدأ رخيصاً ويصبح مكلفاً جداً. قواعد البيانات تبدأ مكلفة (تعلم) وتصبح رخيصة جداً مع الاستخدام. لهذا السبب تتحول الشركات الكبرى لقواعد البيانات قبل أن تنمو.
9. هل أنقذت Excel نفسها بتقنيات Power Query و Data Model؟
في السنوات الأخيرة، أضافت Microsoft تقنيات متقدمة لـ Excel لتحويله إلى "قاعدة بيانات مصغرة":
- Power Query: أداة لأتمتة جلب البيانات من مصادر متعددة (CSV, SQL, APIs) وتنظيفها. تحولت إلى لغة برمجة مصغرة (M Language).
- Data Model: يسمح ببناء علاقات بين جداول متعددة داخل Excel (علاقة واحدة إلى متعدد). وهذا يقارب مفهوم قاعدة البيانات العلائقية.
- Power Pivot: لتحليل ملايين الصفوف دون تحميلها في ورقة عمل واحدة.
هل هذا يعني أن Excel صار قاعدة بيانات؟ لا. هذه التقنيات تقلل الفارق، لكنها لا تحل المشاكل الأساسية: التزامن، الأمان، الفهرسة المتقدمة، وتكامل APIs. عند نقطة معينة، ستضطر للهجرة إلى قاعدة بيانات حقيقية على أي حال. والأفضل أن تكون مستعداً قبل أن تصل إلى تلك النقطة.
10. النموذج المسطح ضد النموذج العلائقي (Flat vs Relational)
هذا هو الفرق الجوهري الذي يفهمه المحترفون فقط:
- النموذج المسطح (Flat Table): هو ما يعتمد عليه Excel عادة. جدول واحد ضخم يحتوي على كل شيء (اسم العميل، اسم المنتج، اسم الطلب، السعر في نفس الصف). المشكلة: تكرار هائل للبيانات وصعوبة التعديل.
- النموذج العلائقي (Relational): هو أساس قواعد البيانات. نُفصل البيانات إلى جداول مترابطة:
Customers+Products+Orders+Order_Items. كل جدول مسؤول عن شيء واحد، والعلاقات تربطها.
مثال عملي: إذا تغير عنوان عميل يمتلك 500 طلب في Excel (نموذج مسطح)، فعليك تعديل 500 صف يدوياً. في قاعدة بيانات علائقية، تعديل واحد في جدول Customers يعكس التغيير في كل مكان تلقائياً. هذا هو السحر الحقيقي.
في مشروع لمكتب محاسبة، كان الفريق يعتمد على ملف Excel واحد لحساب رواتب 80 موظفاً. الملف كان يحتوي على 6 أوراق مترابطة بـ VLOOKUP. بعد سنة، اكتشفوا أن الحوافز تُحسب مرتين لبعض الموظفين، بينما لا تُحسب لآخرين. السبب: تعديل معادلة في ورقة واحدة لم ينعكس على الأوراق الأخرى. المبلغ المتراكم من الأخطاء: حوالي 47,000 ريال. الحل كان بسيطاً تقنياً (قاعدة بيانات مع CHECK constraint)، لكن استرجاع المدفوعات الزائدة استغرق 4 أشهر من المراجعة اليدوية. الدرس: المشكلة في Excel ليست الأداة، بل الاعتماد عليها في عمليات مالية لا تحتمل الخطأ.
11. دليل الهجرة العملية من Excel إلى قاعدة بيانات في 5 خطوات
من واقع تنفيذي لهذه العملية مع عدة شركات، هذه هي الخطوات المثبتة:
- تحليل ملفك الحالي: افتح ملف Excel وحدد الأعمدة الفريدة (مثل رقم العميل، رقم المنتج). هذه ستكون مفاتيحك الأساسية (Primary Keys).
- فصل البيانات: قسّم ملفك المسطح إلى كيانات منفصلة. (عميل، منتج، طلب). ارسم مخطط ERD ورقي بسيط.
- اختيار المحرك: للمشاريع الصغيرة: SQLite (لا يحتاج خادم). للمتوسطة: MySQL أو PostgreSQL. للسحابة: Supabase أو Firebase.
- استيراد البيانات: استخدم أدوات مثل DBeaver أو pgAdmin لاستيراد ملفات CSV مباشرة. أو سكربت Python (انظر الكود في القسم التالي).
- ربط الأنظمة: حوّل كل التقارير التي كان يستخدمها فريقك من Excel إلى استعلامات SQL، أو اربط Excel نفسه بقاعدة البيانات عبر Power Query لتقارير حية.
12. التكامل مع أدوات BI والأدوات الحديثة
الميزة الخفية لقواعد البيانات أنها تفتح لك الباب لأدوات تحليل احترافية:
- Power BI / Tableau: أدوات ذكاء أعمال تتفوق بمراحل على رسوم Excel، وتتصل مباشرة بقاعدة البيانات.
- Metabase: أداة مفتوحة المصدر تتيح لفريقك غير التقني بناء تقارير من قاعدة البيانات دون كتابة SQL.
- دعم اللغات البرمجية: Python (Pandas, SQLAlchemy), Node.js (Knex, Prisma), PHP (Laravel). كلها تتصل بقواعد البيانات بسهولة، بينما التعامل مع Excel برمجياً محدود ومعقد.
13. أمثلة برمجية تطبيقية
أولاً: قوة الاستعلامات في قاعدة البيانات (SQL)
-- إنشاء الجداول
CREATE TABLE Customers (
customer_id INT AUTO_INCREMENT PRIMARY KEY,
full_name VARCHAR(100) NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL
);
CREATE TABLE Orders (
order_id INT AUTO_INCREMENT PRIMARY KEY,
order_date DATE NOT NULL,
total_amount DECIMAL(10, 2) NOT NULL,
customer_id INT,
FOREIGN KEY (customer_id) REFERENCES Customers(customer_id)
);
-- استعلام واحد يجيب عن: من هم أفضل 5 عملاء من حيث إجمالي المشتريات؟
SELECT
c.full_name,
SUM(o.total_amount) AS total_purchases
FROM Customers c
INNER JOIN Orders o ON c.customer_id = o.customer_id
GROUP BY c.customer_id, c.full_name
ORDER BY total_purchases DESC
LIMIT 5;
هذا الاستعلام كان سيحتاج في Excel إلى ساعة من التنسيق اليدوي والـ Pivot Tables. هنا يستغرق أجزاء من الثانية.
ثانياً: قراءة ومعالجة ملف Excel برمجياً (Python + Pandas)
import pandas as pd
try:
df = pd.read_excel("sales_data.xlsx", sheet_name="Orders")
# تصفية الطلبات الكبيرة
high_value_orders = df[df["total_amount"] > 1000]
print("=== الطلبات أعلى من 1000 ريال ===")
print(high_value_orders[["order_id", "customer_name", "total_amount"]])
# التحقق من عدم وجود قيم مفقودة (مشكلة شائعة في Excel)
missing = df.isnull().sum()
if missing.any():
print(f"\n⚠️ قيم مفقودة في الأعمدة: {missing[missing > 0].to_dict()}")
except FileNotFoundError:
print("خطأ: لم يتم العثور على ملف Excel.")
except Exception as e:
print(f"حدث خطأ: {e}")
لاحظ الفرق: الكود يحاول التعامل مع "قيم مفقودة" لأن هذا ناتج شائع في ملفات Excel. قواعد البيانات تمنع هذا من الأساس عبر قيد NOT NULL.
14. أخطاء شائعة وطرق التعامل معها (Troubleshooting)
السبب: تجاوز سعة الذاكرة العشوائية RAM بسبب كثرة المعادلات.
الحل: نقل البيانات إلى قاعدة بيانات حقيقية مثل PostgreSQL واستهلاكها عبر الاستعلامات.
السبب: لا يوجد Concurrency Lock في Excel.
الحل: الانتقال لقاعدة بيانات سحابية (PostgreSQL, MySQL) توفر حماية تزامنية كاملة.
السبب: بناء نظام كامل على VBA (لغة ماكرو Excel) بدلاً من نظام حقيقي.
الحل: استخدم Python أو JavaScript لكتابة السكربتات، بدلاً من VBA الذي يصعب صيانته. إذا أصبح الماكرو ضرورة لمشروعك، فهذه إشارة لهجرة فورية.
السبب: فقدان الطاقة أو انهيار البرنامج قبل الحفظ.
الحل: قواعد البيانات لديها خصائص ACID (Transaction Logs) التي تضمن عدم فقدان البيانات حتى لو انقطع التيار في منتصف العملية.
15. الأسئلة الشائعة (FAQ)
لا. الأفضل هو استخدام الاثنين معاً: قاعدة البيانات كخلفية تحتوي على البيانات الأصلية، وExcel كواجهة تحليلية بسيطة يتصل بقاعدة البيانات عبر Power Query. هذا يعطيك أفضل ما في العالمين.
Google Sheets أفضل من Excel في التزامن، حيث يسمح بعدة مستخدمين في نفس الوقت. لكنه ليس بديلاً عن قاعدة بيانات حقيقية. سيصل إلى حدوده سريعاً عند تحليل بيانات معقدة أو عند بناء تطبيق يتطلب APIs.
SQLite: لا يحتاج خادم، مجرد ملف واحد، ومثالي للتطبيقات المحلية والتجربة. Supabase: قاعدة PostgreSQL جاهزة على السحابة بواجهة مستخدم سهلة. Airtable: أبسط بكثير، لكنه ليس قاعدة بيانات حقيقية (يشبه Excel أكثر).
استخدم أدوات BI مثل Metabase (مجاني) أو Power BI (مايكروسوفت) أو Looker Studio (من جوجل). كلها تتصل بقاعدة البيانات وتقدم لوحات تحكم تفاعلية أجمل من Excel.
بالتأكيد! SQLite أو Supabase مجانيان تماماً. لا يوجد سبب لعدم استخدام قاعدة بيانات حتى للمشاريع الصغيرة، إذا كنت تتوقع النمو. ابدأ صح.
CSV هو مجرد ملف نصي بالبيانات مفصولة بفواصل. لا يحتوي على علاقات، لا يفرض أنواع بيانات، لا يدعم التزامن، ولا يحتوي على فهارس. هو مجرد "سجل مسطح" يمكن استيراده في Excel أو قاعدة بيانات، لكنه ليس بديلاً عن أي منهما.
هذا شائع جداً. الحل هو أتمتة توليد التقارير: استخدم Python (Pandas + openpyxl) لقراءة البيانات من قاعدة البيانات، معالجتها، وحفظها كملف Excel تلقائياً كل صباح. الإدارة تحصل على Excel، وأنت تحصل على بيانات نظيفة من قاعدة البيانات.
نعم، إلى حد كبير. قيود Schema (مثل NOT NULL, CHECK, UNIQUE) تمنع الأخطاء الشائعة. لكنك تحتاج أيضاً إلى واجهة إدخال جيدة (Form) لتحل محل الإدخال المباشر في Excel. هذا يتطلب بناء تطبيق صغير (يمكن استخدام Django Admin أو Retool).
🏁 خاتمة الدليل
في النهاية، لا يتعلق الأمر ببديل يحل محل الآخر بالكامل، بل باختيار الأداة المناسبة للمهمة. يظل Excel ملك التحليلات الرياضية الحسابية والتقارير المؤقتة، بينما تشكل قواعد البيانات العمود الفقري للبنى التحتية البرمجية والتطبيقات الذكية. القاعدة الذهبية: استخدم Excel لتحليل البيانات، واستخدم قاعدة البيانات لإدارتها. وفهم متطلبات وحجم مشروعك هو بوصلتك الحقيقية. لا تنتظر حتى تنهار بياناتك، ابدأ رحلة الهجرة مبكراً — فالتكلفة ستكون أقل بكثير.
📚 المصادر والمراجع المعتمدة
تم بناء هذا الدليل بالاستناد إلى المصادر الرسمية والأكاديمية التالية:
- توثيق Microsoft Excel الرسمي، بما في ذلك مواصفات Power Query و Data Model — support.microsoft.com/excel
- توثيق PostgreSQL 16 الرسمي — postgresql.org/docs
- توثيق MySQL 8.4 Reference Manual — dev.mysql.com/doc
- توثيق SQLite الرسمي — sqlite.org
- كتاب "Database System Concepts" — Silberschatz, Korth, Sudarshan (7th Edition, 2019).
- كتاب "SQL Antipatterns: Avoiding the Pitfalls of Database Programming" — Bill Karwin (2010), Pragmatic Bookshelf.
- توثيق Pandas لمعالجة البيانات — pandas.pydata.org/docs
- بحث Gartner عن Data Management Trends 2025-2026.
ملاحظة: المحتوى مبني على خبرة عملية في ترحيل أنظمة للعديد من الشركات الصغيرة والمتوسطة، ومُقارن مع التوثيق الرسمي والمراجع الأكاديمية. الأرقام التقديرية في جدول TCO مبنية على متوسطات من عدة مشاريع حقيقية، وقد تختلف حسب حجم المشروع.
مهندس برمجيات بخبرة عملية في ترحيل أنظمة الشركات الصغيرة والمتوسطة من Excel إلى قواعد بيانات علائقية حقيقية. أشرفت على مشاريع تحول رقمي في قطاعات التجزئة، المحاسبة، والتعليم. أهتم بمجالات Database Migration، Data Governance، Business Intelligence، وEnterprise Data Strategy. أشارك خبراتي من مشاريع حقيقية بدلاً من الترجمة الحرفية للتوثيق.
📌 اطّلع أيضاً على:
🏷️ مواضيع ذات صلة:
تعليقات
إرسال تعليق