اذهب إلى المحتوى

البحث في الموقع

المحتوى عن 'data'.

  • ابحث بالكلمات المفتاحية

    أضف وسومًا وافصل بينها بفواصل ","
  • ابحث باسم الكاتب

نوع المحتوى


التصنيفات

  • الإدارة والقيادة
  • التخطيط وسير العمل
  • التمويل
  • فريق العمل
  • دراسة حالات
  • التعامل مع العملاء
  • التعهيد الخارجي
  • السلوك التنظيمي في المؤسسات
  • عالم الأعمال
  • التجارة والتجارة الإلكترونية
  • نصائح وإرشادات
  • مقالات ريادة أعمال عامة

التصنيفات

  • مقالات برمجة عامة
  • مقالات برمجة متقدمة
  • PHP
    • Laravel
    • ووردبريس
  • جافاسكربت
    • لغة TypeScript
    • Node.js
    • React
    • Vue.js
    • Angular
    • jQuery
    • Cordova
  • HTML
  • CSS
    • Sass
    • إطار عمل Bootstrap
  • SQL
  • لغة C#‎
    • ‎.NET
    • منصة Xamarin
  • لغة C++‎
  • لغة C
  • بايثون
    • Flask
    • Django
  • لغة روبي
    • إطار العمل Ruby on Rails
  • لغة Go
  • لغة جافا
  • لغة Kotlin
  • لغة Rust
  • برمجة أندرويد
  • لغة R
  • الذكاء الاصطناعي
  • صناعة الألعاب
  • سير العمل
    • Git
  • الأنظمة والأنظمة المدمجة

التصنيفات

  • تصميم تجربة المستخدم UX
  • تصميم واجهة المستخدم UI
  • الرسوميات
    • إنكسكيب
    • أدوبي إليستريتور
  • التصميم الجرافيكي
    • أدوبي فوتوشوب
    • أدوبي إن ديزاين
    • جيمب GIMP
    • كريتا Krita
  • التصميم ثلاثي الأبعاد
    • 3Ds Max
    • Blender
  • نصائح وإرشادات
  • مقالات تصميم عامة

التصنيفات

  • مقالات DevOps عامة
  • خوادم
    • الويب HTTP
    • البريد الإلكتروني
    • قواعد البيانات
    • DNS
    • Samba
  • الحوسبة السحابية
    • Docker
  • إدارة الإعدادات والنشر
    • Chef
    • Puppet
    • Ansible
  • لينكس
    • ريدهات (Red Hat)
  • خواديم ويندوز
  • FreeBSD
  • حماية
    • الجدران النارية
    • VPN
    • SSH
  • شبكات
    • سيسكو (Cisco)

التصنيفات

  • التسويق بالأداء
    • أدوات تحليل الزوار
  • تهيئة محركات البحث SEO
  • الشبكات الاجتماعية
  • التسويق بالبريد الالكتروني
  • التسويق الضمني
  • استسراع النمو
  • المبيعات
  • تجارب ونصائح
  • مبادئ علم التسويق

التصنيفات

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

التصنيفات

  • الإنتاجية وسير العمل
    • مايكروسوفت أوفيس
    • ليبر أوفيس
    • جوجل درايف
    • شيربوينت
    • Evernote
    • Trello
  • تطبيقات الويب
    • ووردبريس
    • ماجنتو
    • بريستاشوب
    • أوبن كارت
    • دروبال
  • الترجمة بمساعدة الحاسوب
    • omegaT
    • memoQ
    • Trados
    • Memsource
  • برامج تخطيط موارد المؤسسات ERP
    • تطبيقات أودو odoo
  • أنظمة تشغيل الحواسيب والهواتف
    • ويندوز
    • لينكس
  • مقالات عامة

التصنيفات

  • آخر التحديثات

أسئلة وأجوبة

  • الأقسام
    • أسئلة البرمجة
    • أسئلة ريادة الأعمال
    • أسئلة العمل الحر
    • أسئلة التسويق والمبيعات
    • أسئلة التصميم
    • أسئلة DevOps
    • أسئلة البرامج والتطبيقات

التصنيفات

  • كتب ريادة الأعمال
  • كتب العمل الحر
  • كتب تسويق ومبيعات
  • كتب برمجة
  • كتب تصميم
  • كتب DevOps

ابحث في

ابحث عن


تاريخ الإنشاء

  • بداية

    نهاية


آخر تحديث

  • بداية

    نهاية


رشح النتائج حسب

تاريخ الانضمام

  • بداية

    نهاية


المجموعة


النبذة الشخصية

تم العثور على 5 نتائج

  1. نعيش حرفيًا في عالم من البيانات، فما نقرؤه وما نكتبه وما نفكر به أنواع من البيانات، وما تستند عليه أفعالنا اليومية وسلوكنا هي أنواع من البيانات. قد تقرر الذهاب إلى التسوق لأنك تحتاج إلى بعض الحاجيات التي سجلتها على قائمتك، إن ما سجّلته على قائمتك هي بيانات، ثم تمضي في طريقك لتقف عند إشارة مرور حمراء، إن وقوفك عند الإشارة الحمراء عائد إلى بيانات أيضًا، فالأحمر للوقوف والأخضر للمتابعة، ثم تصل بعد ذلك إلى المتجر لتتفقد ما تحتاج إليه، فقد تنظر إلى العلامة التجارية للمنتج وهذه بيانات قد تعطيك فكرة عن جودة المنتج، وقد تنظر إلى سعر المنتج وهذه أيضًا بيانات تستخدمها لاتخاذ قرار الشراء وفقًا لميزانيتك، وإن كان المنتج غذائيًا مثلًا ستهتم بتاريخ الإنتاج وتاريخ انتهاء الصلاحية والمكوّنات، فهي بيانات ستؤثر على صحتك، وأخيرًا عندما تنتهي من التسوق وتتوجه إلى كوة المحاسبة سيقرأ الماسح الضوئي رمز المنتج وهو نمط من البيانات التي تعرّف هذا المنتج وتحدد هويته وقد خُزّنت ضمن هذا الرمز وفق سلسلة من الأرقام أو الأحرف أو كليهما كما خزّنت على حاسوب كوة المحاسبة أيضًا بطريقة ما. ما هي البيانات إذًا وما هي أنواع البيانات؟ من أين تأتي البيانات؟ كيف نستقبلها وكيف نفهمها؟ كيف نصنّف أنواع البيانات المختلفة وأين نخزّنها وكيف نسترجعها ونحللها؟ وكيف نستفيد منها في المحصلة؟ سنحاول في هذا المقال الإجابة عن الأسئلة السابقة بشيء من التفصيل لتكون عونًا لك في تعاملك مع أنواع البيانات سواء كنت راغبًا في أن تكون مصممًا لقواعد البيانات أو محللًا لأنواع البيانات أو مبرمجًا لها. إليك فهرس بعناوين المقال لتسهيل الوصول إلى مختلف أجزاء المقال: تعريف البيانات الفرق بين البيانات والمعلومات من أين تأتي البيانات؟ أنواع تخزين البيانات تصنيف أنواع البيانات Data Types البيانات الكمية البيانات النوعية البيانات المنطقية أنواع البيانات في الحاسب تصنيفات البيانات الرقمية أنواع البيانات في لغات البرمجة أنواع البيانات المستخدمة في قواعد البيانات خاتمة تعريف البيانات البيانات Data تُعرَّف بأنها مقادير منفصلة على شكل رموز أو إشارات قابلة للتحليل والمعالجة، ويمكن للبيانات أن تكون واضحةً ومفهومة لنا دون سياق محدد -أي دون أي تسلسل أو ترابط- مثل مجموعة أرقام تمثل أحجية، فالأرقام مقاديرٌ مفهومةٌ بالنسبة لنا، لكن الربط بينها لحل الأحجية قد يكون عصيًا. وقد لا تكون البيانات مفهومةً كخطوط رمز الماسح الضوئي (بار كود). تُدعى النتيجة المستخلصة من تحليل مجموعة من البيانات والربط بينها بالمعلومة أو المعلومات عمومًا information، كما تُدعى أصغر وحدة من مجموعة بيانات يمكن أن تُستخدم أو تفهم باستقلالية بعنصر البيانات datum. عندما نجمع المعلومات المتعلقة بموضوع معين وننظمها ثم نفهمها من خلال التطبيق والممارسة، سيكون توثيق هذه المعلومات المصنّعة انطلاقًا من البيانات معرفةً knowledge، أما الأسلوب الأمثل في تطبيق هذه المعرفة فقد ندعوه حكمة wisdom. إذًا فالبيانات عمومًا هي وسيلة للحصول على معلومات أو وسيلة لتمثيلها بطريقة أفضل كي تُعالح وتُستخدم. وقد تكون هذه البيانات مجرّدة كأسماء علامات تجارية وقد تكون مقاسة كدرجات الحرارة أو نسبة الفائدة أو عدد الولادات خلال عام. تُنظم البيانات ضمن بنىً خاصة تسمى بنى البيانات أو هياكل البيانات data structure لتسهيل الوصول إليها واستخلاص المعلومات منها مثل الجداول، وقد جُمعت أنواع البيانات ما قبل الثورة الرقمية في مراجع وكتب ووثائق، لكن مع بزوغ فجر الحوسبة كان الانتقال إلى البيانات الرقمية أمرًا حتميًا لتقود بالفعل العالم الرقمي منتجات ومختصين نحو تقنيات أكثر قدرة وترابطًا ابتداءً بقواعد البيانات النمطية databases إلى تقنيات التعامل مع البيانات الضخمة Big data وصولًا إلى تطوير الذكاء الصنعي AI. الفرق بين البيانات والمعلومات يجري الخلط في مواضع عدة بين البيانات والمعلومات على أنها الشيء ذاته وهذا أمر خطأ، فهناك فرق بيّن بين المصطلحين تعريفًا وغاية، ولقد أشرنا سابقًا أن البيانات تعرّف حقائق مفردة، بينما تمثل المعلومات تنظيمًا لهذه الحقائق أو تفسيرًا لها. تأتي البيانات بأشكال مختلفة، نصوصًا وأرقام وأشكال وصور وتواريخ لكنها لا تحمل دلالات على أهميتها أو الحاجة لوجودها، فقد يشير جهاز قياس تردد الصوت إلى القيمة 12 كيلو هرتز عندما يعجز المريض عن سماع أي صوت في عيادة تخطيط السمع، إذ القراءة بحد ذاتها لا دلالة لها ولن يتمكن سوى المختص من تأويلها إلى المعلومة التالية "المريض يعاني نقصًا في السمع". وقد تجد أيضًا أن مقدار المبيعات من منتج ما هو 20 جهازًا في العام، لن يقدم كذلك عنصر البيانات هذا أي دلالة ما لم يحلل ويوازن ويتحول إلى معلومة مثل "حققت الشركة هذا العام نسبة مبيعات عالية!". وهكذا يمكن أن نلخص الفرق بين البيانات والمعلومات كالتالي: البيانات مجموعة من الحقائق غير المنظمة، أما المعلومات فهي من يضع تلك البيانات في سياقها الصحيح. البيانات مصدر خام للحقائق دون أية دلالات وقد لا تتمكن من قراءتها أحيانًا، أما المعلومات فهي التي توضّح أنواع البيانات وتستخلص منها ما يُفهم ويُطبق ويُختبر. البيانات حقائق مستقلة بذاتها وقد لا تربط بينها أية علاقات، بينما تجد المعلومات العلاقات التي تربط بين أنواع البيانات لعرض صورة أوسع عن الظاهرة المدروسة. لا تعتمد البيانات على المعلومات لكن العكس صحيح. لا يمكن الاعتماد على البيانات لاتخاذ القرارات، فلا بد من وجود معلومات حتى يُتّخذ القرار الصحيح. من أين تأتي البيانات؟ تأتي البيانات -والتي تتنوع إلى أنواع البيانات- من تطور الفهم البشري للبيئة المحيطة به، وبالتالي من تطور معارفه والحاجة إلى توثيق هذه المعارف ووضعها حيز التنفيذ بالأسلوب الأمثل والأكثر كفاءة من جميع النواحي تحليلًا ومعالجة وسرعة، لكن يمكننا القول أن الأساليب الأساسية التي نحوز بها على بيانات أو نحدّث الموجودة منها قد تنحصر بما يلي: الافتراض assumption المراقبة observations القياس measurement التحليل analysis الافتراض assumption عادة ما يكون الافتراض منهجيًا، أي يستند إلى أفكار مسبقة عن موضوع ما أو إلى معلومات غير دقيقة أو بياناتها غير كافية. عادة ما تكون أنواع البيانات المفترضة خطوة مرحلية تُلغى لاحقًا عند حيازة البيانات المطلوبة، إلا أن توثيقها ضروري جدًا. فلو أردنا مثلًا أن نقدّر عدد المشترين المتوقعين لمنتج جديد في مدينة ما لدراسة جدوى توزيعه فيها سيكون هذا الرقم مفترضًا والنتائج التي تتأتى عنه افتراضيةً أيضًا ستصحح مع الوقت لكن بالطبع سيكون عدد المشترين متوقعًا بناء على أفكار أو دراسات مشابهة. المراقبة observations وهي إحدى الطرق الإحصائية Statistics المتبعة في حيازة البيانات، إذ تجري مراقبة ظاهرة اجتماعية أو اقتصادية أو غيرها ضمن جماعة population محددة للحصول على أنواع بيانات محددة تتعلق بالحالة المدروسة، كأن نسجل بيانات عن عدد المتزوجين تحت سن الثلاثين في منطقة معينة مثل سن الزواج وتاريخه وعدد الأطفال. تقدم هذه البيانات قاعدة قوية للحصول على الكثير من المعلومات التي يحتاجها الإحصائي للإجابة عن الأسئلة التي صمم هذه الدراسة لأجلها. القياس measurement تُعنى هذه الطريقة بالحصول على بيانات كمية (سنتحدث عنها لاحقًا) ثابتة توصّف الحالة المدروسة، ويقصد بالحصول على قيمة: إجراء ما يلزم من الاختبارات لتحديد القيمة المقاسة بأقل خطأ ممكن. من الأمثلة على البيانات المحازة عن طريق القياسات درجات الحرارة في مدينة محددة أو منسوب المياه في نهر خلال العام أو كمية المشتريات من منتج محدد وغيرها. التحليل analysis تهدف هذه العملية إلى تفكيك ظاهرة مجهولة أو مجموعة معلومات مجهولة التكوين إلى بياناتها الأولية لفهمها والاستفادة منها كالبيانات الناتجة عن تحليل الطيف الضوئي لنجم بعيد أو تحليل إشارة لاسلكية مركبة إلى مكوناتها الأساسية للحصول على بيانات تتعلق بالتردد والشدة. إذًا فعمليات الحصول على أنواع البيانات أو حيازتها تتعلق بالظاهرة المدروسة والهدف النهائي من هذه الدراسة والمعلومات التي يجب الحصول عليها أو فهمها تمهيدًا لتخزينها أو وضعها حيز التطبيق. أنواع تخزين البيانات تخزن البيانات في وسائط تخزين والتي إما أن تكون فيزيائية باستعمال الأوراق والدفاتر وكل ما يصلح للكتابة عليه أو باستعمال وسائط تخزين رقمية عبر الحواسيب التي هي الأشيع حاليًا بما أنها تسهل عمليات البحث والفهرسة ومعالجة البيانات. فبالنسبة لتخزين البيانات في الحواسيب، فإنها تعتمد على وسائط تخزين رقمية مثل الأقراص المدمجة والأقراص الصلبة HDD وذواكر الحالة الصلبة SSD والتي تتطور تدريجيًا مع الزمن وفيها إما أن تخزن البيانات مباشرةً باستعمال نظام ملفات يوفره نظام التشغيل أو تخزن بطريقة مهيكلة عبر جداول مثلًا لتسهيل معالجتها والوصول إليها وهنا يمكن استعمال برامج بسيطة مثل برنامج إكسل من مايكروسوفت أوفيس وقواعد بيانات أكسس وحتى استعمال قواعد بيانات مخصصة تكون عادة الأساس الذي ترتكز عليه تطبيقات الحاسوب كلها. تصنيف أنواع البيانات Data Types أنواع البيانات Data Types تُصنّف ضمن ثلاثة فئات رئيسية هي: البيانات الكمية quantitative data البيانات النوعية qualitative data البيانات المنطقية logical data وسنشرح كل تصنيف منها. البيانات الكمية البيانات الكمية هي البيانات التي تأخذ قيمًا عددية أو ناتجة عن الموازنة مع مقاييس عددية ومن الأمثلة عليها ارتفاع بناء، فلا بد من أن يكون قيمة عددية محددة 30 متر مثلًا، أو أن تحدد مستوى مهارتك في لغة برمجة معينة على مقياس من 1 إلى 10. تنتج هذه البيانات عن طريق قياس المقادير عبر الأجهزة المختلفة كمقاييس الضغط والحرارة والارتفاع، وقد نحصل عليها من الاستبيانات questionnaire التي تُنشر وتتطلب الإجابة عنها عن طريقة التقييم العددي لأسئلتها. قد نجد أيضًا تصنيفات فرعية لهذا النوع من البيانات: بيانات منفصلة discrete data: وهي بيانات كمية تأخذ قيمها من مجموعة قيم محددة سلفًا كعدد الوجبات التي يمكن للمطاعم أن تقدمها أو عدد الأولاد في عائلة محددة. بيانات مستمرة continuous data: وتمثل عادة القيم التي تقيسها التجهيزات والتي يمكن أن تأخذ أي قيمة عددية ضمن مجال محدد مثل درجات الحرارة، ويمكن تصنيف هذه الأخيرة إلى: بيانات مجالية interval data: وهي بيانات تمثل قيم عددية مرتبة تزيد كل قيمة عن التي تسبقها بمقدار محدد تمامًا كأن نعرض تسلسل طلبات الشراء، أو أن نسجل ارتفاع بالون في الجو كلما ارتفع 10 أمتار عن سطح البحر. بيانات نسبية Ratio data: وهي بيانات مستمرة تمثل نسبة تكرار حالة إلى جميع الحالات الممكنة كأن تحدد احتمال إصابة هدف أو إمكانية ولادة طفل مصاب بمرض وراثي. بيانات إحصائية: وهي البيانات التي تنتج عن تطبيق العلاقات الرياضية الخاصة بالإحصاء ومن أنواع البيانات الإحصائية: المتوسط الحسابي mean: ويقيس مجموع عدة قراءات إلى عددها كأن نحسب المتوسط الحسابي لأطوال الذكور في بيئة معينة بجمع أطوال جميع الذكور المشاركين في الدراسة ثم تقسيم الناتج على عددهم. المتوسط الهندسي geometric mean: وهو الجذر من المرتبة n لجداء القراءات المتعلقة بظاهرة معينة. الوسيط median: ويحدد القيمة التي تأتي في وسط مجموعة قيم مرتبة أي بمعنى آخر القيمة التي تقسم مجموعة قيمة مرتبة إلى مجموعتين متساويتين. الانحراف المعياري standard deviation: ويمثل مقدار ابتعاد عينة عن المتوسط الحسابي. المدى range: الفرق بين أعلى وأدنى قراءة من مجموعة قراءات. المنوال mode: ويحدد القيمة أو القيم الأكثر ورودًا. البيانات النوعية البيانات النوعية هي البيانات التي تصف نوعية أو خصائص الظاهرة المدروسة وبالتالي هي غير قابلة للعد وصعبة القياس والتحليل الدقيق، كأن تكون ملاحظات مأخوذة عن نوعية الوجبات المقدمة في مطعم أو أسماء الناجحين في اختبار. قد تكون هذه البيانات على شكل كلمات تصف الظاهرة ولا تحتاج إلى تحليل أبعد أو يمكن أن تكون لهذه البيانات أنماط محددة أو معانٍ محددة لا بدّ من تحليلها للحصول على المعلومات المطلوبة مثل سمات السلوك العدواني لعينة من المرضى النفسيين أو الميزات الأنسب لأحد المرشحين للحصول على وظيفة معينة. كما قد تكتب البيانات النوعية على شكل بيانات رقمية لكنها لا تحتمل معنى الأعداد الرياضي ولا توازن بأعداد لا تماثلها كأن نجعل الرقم 1 يدل على جنس المولود إن كان أنثى و 0 إذا كان ذكرًا. وقد نجد أيضًا تصنيفات فرعية لهذا النوع من أنواع البيانات مثل: بيانات فئوية categorical data: وهي بيانات تمثل ميزة محددة للعينة المدروسة مثل العمر، والجنس، واللغة. بيانات مسماة nominal data: وهي بيانات نوعية تأخذ قيمها ضمن مجموعة محددة من الخيارات كأن تختار لغة من بين خمس لغات محددة سلفًا أو أن تختار تقييمًا لخدمة زبائن من بين عدة تقييمات متاحة. بيانات مرتبة ordinal data: وهي ببساطة بيانات مسماة لكنها مرتبة على أساس محدد كأن تحدد البيانات قائمة العقوبات التدريجية التي تطبق على مخالفي النظام الداخلي لمؤسسة او شركة أو تسلسل خطوات إصلاح خلل في برنامج. ما الفرق بين البيانات الكمية والنوعية؟ شرحنا ما هي البيانات الكمية والنوعية ويجدر الذكر أنه يمكن لعينة بيانات نفسها أن تنقسم إلى بيانات كمية ونوعية في الوقت نفسه مثل عينة بيانات من مجموعة مدارس، فقد تنقسم إلى بيانات كمية من عدد الطلاب وقد تنقسم إلى بيانات نوعية بناءً على جنس الطلاب بين ذكر وأنثى وهكذا لذا وجب التفريق جيدًا بين البيانات الكمية والنوعية. أمر آخر وهو أن العمليات المطبقة على البيانات الكمية قد تختلف أغلب الأحيان عن تلك المطبقة على البيانات النوعية فقد يصلح تطبيق عمليات إحصائية وعمليات رياضية على بيانات كمية في وقت لا يصلح تطبيقها على بيانات نوعية بما أن قيمة البيانات الكمية تمثَّل مباشرةً بعدد، وهذا خلاف البيانات النوعية فحتى لو مثلناها بعدد مثل تمثيل الطلاب الذكور بعدد 1 والطلاب الإناث بعدد 2 فهو طريقة لعرض البيانات بشكل آخر. البيانات المنطقية وهي أبسط أنواع البيانات، وتجيب عن سؤال ما بصحيح أو خاطئ، نعم أو لا وقد تأخذ إحدى القيمتين الرقميتين 0 أو 1، وتدعى أيضًا البيانات البوليانية نسبة إلى الجبر البولياني. قد تصنف هذه البيانات على أنها بيانات نوعيّة إذا جاءت على شكل "صحيح/خاطئ" أو "نعم/لا"، وقد تصنّف أنها بيانات كمية إن جاءت على شكل "0/1". أنواع البيانات في الحاسب عزز ظهور الحواسب قدرة البشر على حيازة وتخزين كميات هائلة من البيانات وأمنت الوسائل اللازمة لتحليلها واستخلاص المعلومات عنها والاستفادة من تلك المعلومات في عمليات اتخاذ القرار، ولا تختلف أنواع البيانات في الحاسب وفي العالم الرقمي من حيث التعريف والغاية لكنها تخزّن وتعالج بطريقة أفضل وأسرع، لهذا السبب وضعت بعض التصنيفات الفرعية وحددت أنواع للبيانات تلائم طريقة عمل الحواسيب. تمثّل البيانات في الحواسيب على شكل سلاسل من الواحدات والأصفار وهي ما يفهمه الحاسوب أولًا وآخرًا ويُدعى أصغر حجم لتخزين عنصر البيانات "بت Bit" ويخزن القيمة 0 أو 1 ومن البت يتكون البايت Byte الذي هو 8 بت والكيلو بايت والميغا بايت …إلخ. تصنيفات البيانات الرقمية تُدعى أنواع البيانات التي تُخزّن على شكل سلاسل من الأصفار والواحدات وتعالج وفق هذه الطريقة بالبيانات الرقمية digital data، وقد نجد أن البيانات الرقمية قد تأخذ أصنافًا جديدة منها: بيانات مهيكلة structured: تُرتب البيانات المهيكلة وفق نموذج بيانات محدد لتسهل معالجتها وتخزينها والوصول إليها مثل الجداول المكوّنة من أسطر وأعمدة والتي تُعد أساس قواعد البيانات العلاقيّة relational databases أو على شكل بنية هرمية متداخلة hierarchical data structure أو أنها قادرة على تخزين كائنات objects لها هيكليات محددة سلفًا. بيانات غير مهيكلة not structured: البيانات غير المهيكلة هي تلك التي تُنظّم فيها البيانات بطريقة محددة كأن توضع في ملفات نصية أو تُستخدم بعض اللغات التوصيفية في تنظيمها. بيانات وصفية metadata: وهي بيانات نصية تصف بيانات أخرى كأن تحدد إصدار برنامج وتاريخ الإصدار ومعلومات عن ترخيص الاستخدام وهكذا. بيانات خام raw Data: وهي تسلسل غير منسّق من الواحدات والأصفار يُخزّن للمعالجة اللاحقة. القواميس dictionary: وهي نوع من أنواع البيانات التي يمكن الوصول إليها بطريقة "مفتاح-قيمة" أي تُفهرس فيها بيانات "القيمة" وفقًا لبيانات "المفتاح" وللوصول إلى القيمة قراءةً أو تخزينًا لا بد من معرفة المفتاح المرتبط بها. البيانات الضخمة big data: ظهر هذا المصطلح في فترة قريبة نسبيًا ليدل على أنواع البيانات التي تتجاوز أحجامها البيتا بايت (1000 تيرا بايت)، وبالتالي سيصعب معالجة هذا الكم الهائل من البيانات من قبل حاسوب واحد أو تنظيمها باستخدام قواعد البيانات النمطية، لهذا توزّع المهام على عدة حواسب رئيسية تتمتع بقدرات كبيرة في المعالجة من خلال استخدام خوارزميات واختبارات متقدمة بغية استخلاص المعلومات والرؤى التي تقدمها تلك البيانات خلال فترة زمنية مقبولة. أنواع البيانات في لغات البرمجة تختلف أنواع البيانات التي تستخدمها لغات البرمجة للتعبير عن القيم التي تتعامل معها وفقًا للغة البرمجة نفسها فكل لغة برمجة لها مجموعة أنواع بيانات محددة تتعامل معها توضحها في توثيقها الرسمي فانظر مثلًا مقال أنواع البيانات في لغة بايثون في أكاديمية حسوب وقسم أنواع البيانات في لغة بايثون في توثيق موسوعة حسوب وكذلك صفحة أنواع البيانات في لغة PHP وصفحة أنواع البيانات الأساسية في لغة TypeScript وصفحة أنواع البيانات الأساسية في لغة كوتلن وغيرها، فكل لغة كما أشرنا تملك أنواع بيانات تحددها صراحة لما يترتب عليها لاحقًا من ضبط العمليات التي يمكن تنفيذها على كل نوع بيانات، فمثلًا الأعداد تطبق عليها عمليات رياضية من جمع وطرح وضرب والنصوص تطبق عليها عمليات القص والجمع مع نصوص أخرى والتنسيق وغيرها. دورة تطوير التطبيقات باستخدام لغة Python احترف تطوير التطبيقات مع أكاديمية حسوب والتحق بسوق العمل فور انتهائك من الدورة اشترك الآن وتنقسم لغات البرمجة في طريقة تحديد أنواع البيانات إلى قسمين إما بتحديدها صراحةً أثناء كتابة الشيفرة وتدعى آنذاك لغات برمجة صارمة في تحديد الأنواع Strongly typed language أو بترك الأمر للغة البرمجة لتحديدها أثناء تنفيذ الشيفرة وتدعى آنذاك لغات برمجة متهاونة في تحديد الأنواع Loosely typed language. أما في لغات البرمجة التي تعد صارمة في تحديد الأنواع مثل لغة سي C وجافا Java، فهي تفرض على المبرمج تحديد نوع المتغير عند تعريفه أول مرة ويبقى هذا النوع ملازمًا له طيلة عمل البرنامج ولا يمكن تغييره مطلقًا ولا يمكن استعماله إلا في العمليات المرتبطة بنوعه المحدد وغيرها من القواعد الأخرى التي تختلف باختلاف اللغة، فالمثال التالي من لغة سي يعرِّف ثلاثة متغيرات الأول عدد صحيح والثاني عدد عشري والثالث محرف واحد: int intNumber = 2; float floatNumber = 2.3; char character = 'e'; وإن لم يتبع المبرمج هذه القواعد فسيحصل على خطأ قبل تنفيذ الشيفرة وقت تصريفها (إن كانت اللغة مصرَّفة compiled مثلًا)، فستحصل على خطأ إن جربت جمع العدد الصحيح intNumber السابق مع الحرف character بالشكل intNumber + character مباشرةً وكذلك إن أردنا جمعه مع العدد العشري floatNumber وهنا يجب إجراء عملية تحويل صريحة للنوع انظر مثلًا: int intNumber = 2; float floatNumber = 2.3; int sum = intNumber + (int)floatNumber; printf("Value of sum : %d\n",sum); عندما جمعنا العدد الصحيح intNumber مع العدد العشري floatNumber حولنا الأخير إلى عدد صحيح عبر تحديد النوع بين القوسين قبل المتغير ثم جمعنا العدد لنحصل على الناتج التالي: Value of sum : 4 ولاحظ أن الفاصلة العشري قد أُهملَت بما فيها من أجزاء عشرية وهذا ناتج عملية التحويل. تختلف لغات البرمجة أيضًا من ناحية التصريح والتلميح في عمليات التحويل بين الأنواع casting ففي التصريح يضطر المبرمج إلى ذكر النوع المراد التحويل إليه صراحةً وسيحصل على خطأ إن لم يفعل، وفي التلميح تكون اللغات ذكية في استنتاج النوع المراد التحويل إليه وتدعى smart casting فمثلًا إن جربت ما يلي في لغة سي: int intNumber = 2; float floatNumber = 2.3; int sum = intNumber + floatNumber; printf("Value of sum : %d\n",sum); فستحصل على الناتج 4 كعدد صحيح لأن لغة سي مباشرةً حولت العدد العشري إلى صحيح بما أن المتغير الذي سنخزن فيه النتيجة من نوع عدد صحيح وكذلك العدد الأول عدد صحيح، أما إن جربنا ما يلي: int intNumber = 2; float floatNumber = 2.3; float sum = intNumber + floatNumber; printf("Value of sum : %f\n",sum); فستحصل على ناتج 4.3 حتى لو كان العدد الأول صحيح إلا أن المتغير المراد تخزين القيمة فيه اختلف نوعه فاختلفت عملية التحويل الآلية وجرى تحويل العدد الصحيح إلى عدد عشري. وأما في لغات البرمجة التي تعد متهاونة في تحديد النوع مثل جافاسكربت وبايثون ولغة PHP فلا حاجة لتحديد أنواع البيانات للمتغيرات ويكتفي المبرمج بالتصريح عن المتغير فقط دون نوعه، فانظر إلى المثال التالي في لغة جافاسكربت الذي يعرف المتغيرات الثلاثة كما في المثال السابق: let intNumber = 2; let floatNumber = 2.3; let character = 'e'; سيُترك الأمر إلى لغة البرمجة لتحديد نوع المتغير أثناء وقت تنفيذ الشيفرة runtime لتحديد العمليات التي يمكن تنفيذها مع كل متغير وفق نوع، ولاحظ أنه يمكن لمتغير أخذ نوع عدد صحيح أن يأخذ نوع آخر مثل عدد عشري أو نص ولا يُعد ذلك خطأ: let intNumber = 2; intNumber = 'e'; وأما بخصوص عمليات التحويل بين الأنواع فهو أمر متروك كليًا إلى لغة البرمجة وذكائها، فإن جربنا الجمع بين العدد الصحيح والعشري كما فعلنا مع لغة سي الصارمة في تحديد الأنواع: let intNumber = 2; let floatNumber = 2.3; let sum = intNumber + floatNumber; console.log('Value of sum: ' + sum) فسنحصل على النتيجة التالية: Value of sum: 4.3 لاحظ أن عملية التحويل مالت إلى كفة العدد العشري ولاحظ أيضًا أننا جمعنا نصًا 'Value of sum: ‎' مع عدد sum أثناء طباعة النتيجة وكان الناتج نصًا ولم نحصل على خطأ بل اجتهدت لغة جافاسكربت في عملية التحويل ما يمكنها قبل أن تطلق أي خطأ للمبرمج، وقد شاعت الكثير من الدعابات بين المبرمجين حول عثرات لغة جافاسكربت تحديدًا في ضبط عملية التحويل بين أنواع البيانات بدقة. وهذا الأمر يربك المبرمجين بعض الأحيان في اللغات المتهاونة في تحديد النوع لعدم معرفة نوع البيانات النهائي للعملية بالضبط، فتخيل مثلًا في تطبيق بنكي مبني بلغة متهاونة في ضبط النوع أو أن الأمر متروك للغة البرمجة لاستنتاج نوع البيانات أثناء وقت التنفيذ فيرسل مستخدمًا مبلغ 100.54 دولار لصديقه ليستلم الأخير مبلغ 100 فقط ويُعلل الأمر بأن لغة البرمجة قد أخطأت في عملية تحويل نوع البيانات لذا اختيار طريقة التعامل مع البيانات أمر مهم جدًا يعتمد على نوع التطبيق المراد العمل عليه! في النهاية، المتغيرات في لغات البرمجة هي حاويات للبيانات التي تصنف إلى أنواع وقد تُحدد أحجام تلك الحاويات وفقًا لحجم البيانات المخزنة فيها تلقائيًا كما في اللغات المتهاونة في تحديد النوع أو وفقًا لنوع البيانات المحدد لها ويحصل خطأ إن تجاوزت البيانات الحجم المضبوط بنوع البيانات ذاك كما في اللغات الصارمة في تحديد النوع فمثلًا يأخذ متغير بنوع بيانات short حجم 2 بايت من الذاكرة لتخزين أعداد تتراوح بين القيمة ‎-32768 والقيمة 32767 فقط بينما يأخذ متغير من النوع bool حجم 1 بت فقط في لغة سي. وأيًا كانت أنواع البيانات التي تُعرّفها لغات البرمجة المختلفة إلا أنها تشترك جميعها بأنواع بيانات عامة سنتحدث عنها بالتفصيل. الأعداد الصحيحة تعبّر الأعداد الصحيحة Integer عن البيانات بالأعداد الكاملة أي دون فواصل عشرية سواء كانت الأعداد موجبة أو سالبة مثل 5، 110-، 42345، وهكذا، وتُستخدم الأعداد الصحيحة لتمثيل مقادير مثل عدد الولادات في عام أو عدد مرات وقوع حدث معين أو الأرقام التسلسلية لمنتجات أو رقم جواز السفر وما شابه. تمثل لغات البرمجة الأعداد الصحيحة ببايت واحد أو 2 بايت أو 4 بايتات، ويعود السبب في ذلك إلى حجم البيانات التي تريد تمثيله فإن أردت أن تمثل أعدادًا صحيحة من 0 إلى 100 مثلًا لا حاجة عندها لأربعة بايتات ويُكتفى ببايت واحد، أما إن احتجت إلى تخزين أرقام ضخمة ككتلة الأرض مثلًا فستحتاج إلى عدد صحيح من أربع بتات بالتأكيد. إليك بعض الأمثلة: في اللغة C++/C: // متغير حجمه أربعة بايتات ويخزّن فيه بيانات عددية صحيحة سالبة وموجبة int a =0; // متغير حجمه بايت واحد ويخزّن فيه بيانات عددية صحيحة موجبة وسالبة int8_t a=0; // متغير حجمه بايتين ويخزّن فيه بيانات عددية صحيحة موجبة وسالبة int16_t a=0; // متغير حجمه بايت واحد ويخزّن فيه بيانات صحيحة موجبة فقط uint8_t a=0; في اللغة Java: // متغير حجمه بايت واحد ويخزّن فيه بيانات عددية صحيحة موجبة وسالبة byte x=0; // متغير حجمه بايتين ويخزّن فيه بيانات عددية صحيحة موجبة وسالبة short x=0; // متغير حجمه أربعة بايتات ويخزّن فيه بيانات عددية صحيحة موجبة وسالبة int a=0; إذًا تختلف طريقة تمثيل الأعداد الصحيحة وفقًا للحجم المحجوز من الذاكرة من لغة إلى أخرى ويمكنك العودة إلى ويكيبيديا لتتعرف على طريقة تمثيل البيانات الصحيحة في أكثر اللغات انتشارًا. الأعداد الحقيقية تمثل الأعداد الحقيقية Real numbers جميع الأعداد الصحيحة والعشرية ذات الفاصلة الموجبة منها والسالبة مثل 2.56 أو 2341.234- وهكذا، وتُستخدم هذه الأعداد عند الحاجة إلى تخزين قراءات لمقادير فيزيائية مثل درجات الحرارة أو نواتج العمليات الحسابية المتنوعة كناتج عملية قسمة أو حساب الجذور التربيعية وما شابه. تمثل لغات البرمجة الأعداد الحقيقية بكلمة ذات أربع بايتات 232 عددًا أو كلمة ذات ثمان بايتات 264 عددًا، وتختلف تسمية الأعداد الحقيقية من لغة إلى أخرى. إليك بعض الأمثلة: في اللغات #C++/Java/C: // متغير حجمه أربعة بايتات ويخزّن فيه بيانات عددية حقيقية بإشارة float a=0; // متغير حجمه ثمان بايتات ويخزّن فيه بيانات عددية حقيقية بإشارة double a=0; الاختلاف بين نوع البيانات float ونوع البيانات double هو في دقة الأجزاء العشرية أي الأرقام المخزنة بعد الفاصلة العشرية، فالثاني هو عدد عشري مضاعف الدقة عن الأول. البيانات المنطقية البوليانية تمثل هذه البيانات إحدى القيمتين 0 أو 1 وتحجز بتًا واحدًا من الذاكرة، تُستخدم هذه البيانات لتخزين البيانات الناتجة عن أسئلة تحتمل فقط جوابًا بنعم/لا أو صح/خطأ، كأن تكون غرفة في فندق ما محجوزة أو هل اشترى عميل منتج معين أم لا وهكذا. إليك بعض الأمثلة: في لغة JAVA: // متغير حجمه بت واحد ويخزّن فيه قيمة منطقية 0 أو 1 boolean a=1; في لغة ++C: // متغير حجمه بت واحد ويخزّن فيه قيمة منطقية 0 أو 1 bool a=0; المحارف والنصوص تُمثّل هذه البيانات محرفًا واحدًا character كحرفٍ "ب" مثلًا أو رمزٍ "#" مثلًا أو علامة ترقيمٍ ":" مثلًا أو بعض المحارف الخاصة (لها استخدامات خاصة ولا تطبع على الشاشة كالمحارف التي تهيئ موقع الحركات في اللغة العربية)، وتُمثّل المحارف بكلمة من بايت أو بايتين أو ثلاثة أو أربعة وذلك وفقًا لطريقة الترميز. فترميز ASCII مؤلف من 128 أو 256 محرفًا أي يستخدم بايت واحد وقد وُسِّعت إلى الترميز الموحد UTF-8 الذي يستخدم من بايتين إلى أربعة بايتات ويرمز ملايين المحارف التي تغطي معظم الرموز والحروف في جميع اللغات المعروفة كما ظهرت توسيعات أخرى لمحارف ASCII مثل ISO وOEM وwindows125x وغيرها. تتعامل مختلف لغات البرمجة مع المحارف وتعرفها بطرق مختلفة، وإليك بعض الأمثلة: في لغات ++JAVA/C#/C: // متغير يعبّر عن محرف واحد char ch="#"; هذا بخصوص المحارف ولكن ماذا لو أردنا تخزين نص في متغير؟ النص String هو في الواقع سلسلة متلاحقة من المحارف أو مصفوفة من المحارف array of characters وبالتالي تُشتق الأنواع النصية انطلاقًا من المحارف وتتعامل معها انطلاقًا من العمليات على المحارف أيضًا، وتُعرف معظم اللغات هذا النوع بالاسم string. إليك مثالًا: في لغة ++C: #include <string> //إدراج المكتبة المعيارية الخاصة بالتعامل مع النصوص using std::string // استخدام فضاء أسماء النوع النصي int main(){ string s1= "مرحبًا"; sting s2="أيها العالم"; cout<< s1+s2;// "ستكون النتيجة "مرحبًا أيها العالم return 0; } انتبه إلى أنَّ لغة البرمجة قد تعامل المحرف معاملة النص وتدخله ضمن نوع النص String مثل لغة جافاسكربت وقد تميز اللغة بين المحرف Char وبين النص أو السلسلة النصة String كما في لغة جافا وسي. أنواع البيانات مقابل هياكل البيانات تُدعى الأنواع المدمجة في أي لغة بالأنواع الأساسية basic أو البدائية primitive ويمكنك استخدامها مباشرة في تعريف المتغيرات دون أية مقدمات فلغة جافاسكربت مثلًا التي تتصف بأنها متهاونة في تحديد أنواع البيانات تملك الأنواع الأساسية التالية: String: يمثل النصوص والسلاسل النصية. Boolean: يمثل القيم المنطقية مثل صح/خطأ. Number: يمثل الأعداد. BigInt: يمثل الأعداد الكبيرة جدًا. Undefined: يمثل عدم التعريف. Null: يمثل القيمة الفارغة أو عدم وجود قيمة. Symbol: يمثل الرموز الفريدة الخاصة. Object: يمثل هيكلة لتخزين البيانات. ناقشنا بعض الأنواع السابقة في القسم السابق والتي قلنا أن أغلب لغات البرمجة تشترك فيها ولكن أريد التركيز على النوع الأخير Object فقد تطلق لغة البرمجة على طريقة وهيكلة محددة لتخزين البيانات بنوع بيانات وقد تكون من ضمن الأنواع الأساسية كما رأينا في لغة جافاسكربت التي هي عبارة عن طريقة تخزين بيانات على شكل مفتاح/قيمة key/value مثل: const colorsObj = { black: '#000000', white: '#ffffff', red: '#ff0000', cyan: '#00ffff', pink: '#ffc0cb' } لاحظ أننا ربطنا اسم كل لون بقيمته الست عشرية والتي تمثِّل سلسلة نصية string ويمكننا الوصول إلى قيمة اللون الأسود مثلًا بالشكل colorsObj.black، ويمكن وضع أي نوع بيانات من الأنواع السابقة مكان النص. ومن هذه الهيكلة تُشتق هياكل بيانات أخرى أشهرها على الإطلاق المصفوفات Arrays التي تمثل بالشكل التالي في جافاسكربت: const colorsObj = [ '#000000', '#ffffff', '#ff0000', '#00ffff', '#ffc0cb' ] ستجد الكثير من أشكال هياكل البيانات ولا يسعنا في هذا المقال حصرها كلها ولكن وجبت الإشارة إليه بأنه وسيلة مهمة جدًا لتنظيم البيانات وهيكلتها وقد يعدها البعض نوعًا من أنواع البيانات إلا أنها عبارة عن حاويات تحوي البيانات وتسهل الوصول إليها. أنواع البيانات المستخدمة في قواعد البيانات تحدد معظم قواعد البيانات -وهي برمجيات صممت لاحتواء البيانات وتنظيمها والتعامل معها- أنواع البيانات التي تخزّنها كي يسهل التعامل معها وتعديلها، وتستعمل قواعد البيانات جميع الأنواع التي تستخدمها لغات البرمجة أي: الأعداد الصحيحة integer. الأعداد العشرية (وهي أعداد حقيقية) ذات الفاصلة العائمة float. البيانات المنطقية (0 أو 1). المحارف character. القيم النصية string. ويضاف إليها: المحارف متغيرة الطول varchar: وتمثل مجموعة محددة الطول من المحارف المتتابعة فعندما نحدد نوع أحد البيانات على أنه varchar(20)‎ أي أن العدد الكلي للمحارف في هذا المتغير هو 20 محرفًا. القيم الزمنية والتاريخ date-time: وتخزن بيانات تتعلق بالتاريخ (يوم:شهر:سنة) والوقت (ساعة:دقيقة). إن كنت ستتخصص في قواعد البيانات وستعمل مع أحد أنظمة قواعد البيانات، فيمكنك آنذاك التحقق من توثيقات قاعدة البيانات التي ستستخدمها وما ستوفره من أنواع بيانات يمكن استخدامها، وعمومًا ننصحك بالاطلاع على مقال البيانات في SQL: أنواعها والقيود عليها وانظر أيضًا توثيق أنواع البيانات في لغة SQL العربي من موسوعة حسوب. ملاحظة: تطور حاليًا ما يُدعى بقواعد البيانات الكائنية OODB التي تخزّن بياناتها على شكل كائنات بدلًا من الأنواع الأساسية التي تعرفنا عليها وستجد لنفسها قريبًا مكانًا في عالم البيانات الضخمة المتغير. خاتمة رأينا في هذا المقال أن الأساس المتين للمعرفة البشرية مبني على البيانات التي نستخلصها من بيئتنا المحيطة عند محاولة فهم أو توصيف أو تحليل ما يجري حولنا. لقد حُفظت البيانات على جدران الكهوف وعلى جلود الحيوانات وعلى الأوراق وفي الكتب وصولًا إلى الخوادم المخصصة التي تخزن كميات هائلة من أنواع البيانات وتساعد عبر إمكاناتها التقنية في معالجة هذه البيانات وإيجاد الروابط فيما بينها والحصول على معارف ورؤىً جديدة. تحدثنا أيضًا عن طرق حيازة المعلومات وكيفية تصنيفها، وتعرفنا على الطريقة الرقمية في تخزين واسترجاع البيانات، وفصلنا الشرح في أنواع البيانات في لغات البرمجة وضربنا مختلف الأمثلة عليها لما لها من أهمية كبيرة في فهم أي لغة برمجة تريد أن تتعلمها. وهكذا نكون قد أحطنا ببعض المفاهيم الأساسية التي قد تجدها عونًا لك إن أردت الخوض في مجال البيانات المزدهر وسريع التطور كتحليل البيانات وتصميم قواعدها وتحليل الأنظمة والحوسبة الحدية والتنقيب في البيانات الضخمة أو حتى العمل في البرمجة التي ستعالج البيانات أولًا وآخرًا. اقرأ أيضًا تعلم البرمجة المدخل الشامل لتعلم علوم الحاسوب علم البيانات Data science: الدليل الشامل مفهوم علم البيانات Data Science المرجع الشامل إلى تعلم لغة بايثون
  2. بعد أن تعلمنا كيفية إنشاء الجدول في قواعد البيانات، وتعرفنا على أنواع البيانات المستخدمة غالبا، وكيفية إضافة القيود على الجدول، سوف نبدأ في هذا المقال التعرف على جمل التعامل مع البيانات Data Manipulation Language، بحيث ستكون لدينا في نهاية المقال المعرفة اللازمة لإضافة سجل بيانات على الجدول، تعديل سجل بيانات، وحذف سجل بيانات وذلك باستخدام جمل SQL اللازمة لذلك:UPDATE،INSERT وDELETE. تغيّر جمل التعامل مع البيانات على البيانات في الجدول، لذلك فإن مسؤول قواعد البيانات لا بدّ أن يدير الصلاحيّات اللازمة للتغيير على البيانات بطريقة مُثلى. لابد التنويه إلى أن جمل التعامل مع البيانات (UPDATE،INSERT وDELETE) لا تُرجع بيانات أو مُخرجات عند تنفيذها، ولكن أغلب أنظمة إدارة قواعد البيانات تطبع لك ملخص السجلات التي تأثرت بتنفيذ الجمل السابقة. هيكلية الجدول قبل البدء بشرح جمل التعامل مع البيانات ومعرفة كيفية تنفيذها، لابد أن تكون لدينا المعرفة الكاملة بهيكلية الجدول الذي نريد إضافة سجل إليه أو تعديله أو الحذف منه، والتعرف على هيكلية الجدول يتضمن: معرفة ترتيب الأعمدة الموجودة في الجدول، معرفة أسماء الأعمدة، معرفة نوع البيانات الخاصة بكل عمود، التعرف على الأعمدة المطبق عليها قيود ومعرفة هذه القيود وطبيعتها، معرفة القيم المبدئية إذا وجدت. تُقدم أغلب نظم إدارة قواعد البيانات الأمر اللازم لمعرفة هيكلية الجدول، والصيغة العامة لهذا الأمر تكون كالتالي: DESCRIBE table_name; أو تكون بالصيغة التالية: DESC table_name; دورة علوم الحاسوب دورة تدريبية متكاملة تضعك على بوابة الاحتراف في تعلم أساسيات البرمجة وعلوم الحاسوب اشترك الآن جُملة إضافة السجلات توجد طريقتان لإضافة سجلات البيانات على الجدول في قاعدة البيانات، الأولى تتضمن كتابة أسماء الأعمدة التي نريد إعطاءها قيمًا بالإضافة للقيم نفسها التي نريد حفظها، وتسمى هذه الطريقة الإضافة بأسماء الأعمدة، والطريقة الثانية، في حال أردنا أن نضيف بيانات لكل الأعمدة في الجدول بنفس الترتيب الموجود في الجدول، فهنا لا نكتب أسماء الأعمدة، وتسمى هذه الطريقة الإضافة بمواقع الأعمدة. الصيغة العامة للطريقة الأولى: INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...); الصيغة العامة للطريقة الثانية: INSERT INTO table_name VALUES (value1, value2, value3, ...); لنفترض وجود جدول Persons بالهيكلية والبيانات التالية: Person_ID First_Name Last_Name Age 101 Ibrahim Mohammed 31 102 Mohammed Khaled 25 لإضافة سجل إلى هذا الجدول نستخدم الجملة التالية: INSERT INTO Persons VALUES (103, 'Saleem', 'Yaser',20); ملاحظة: تُكتَب النصوص في بعض أنظمة قواعد البيانات بين علامتي التنصيص المزدوجة. فمثلا لكتابة اسم Ibrahim في جملة الإضافة نكتبها هكذا "Ibrahim"، بينما توجد أنظمة أخرى تعتمد التعامل مع النصوص بين علامتي تنصيص منفردة، هكذا 'Ibrahim'. في جملة إضافة السجل السابقة لم نذكر اسم أي من الأعمدة، لأننا أدخلنا قيمًا لكل الأعمدة. القيمة الأولى (103) هي للعمود الأول (Person_ID) والثانية ('Saleem') للعمود الثاني (First_Name) وهكذا. ولكن في بعض الحالات لا نضيف السجل بهذه الطريقة، ففي كثير من الأحيان نحتاج إلى إضافة قيم لأعمدة معينة. مثال على تحديد الأعمدة الأعمدة التي يكون عليها قيد مفتاح رئيسي غالبا لا تُدخَل قيم إليها في جمل الإضافة، ويُستخدم بدلاً لذلك طرق لتوليد قيم لها مثل طريقة جعل العمود (ذي النوع الرقمي) Auto Increment الذي يزيد آخر رقم في العمود بالعدد واحد ثم يستخدمه للعمود الذي يوجد عليه المفتاح الرئيسي. في هذه الحالة تكون جملة الإضافة بالصيغة التالية: INSERT INTO Persons (first_name, last_name, age) VALUES ('Aly',Mohammed',25); ويصبح الجدول بعد تنفيذ الجملتيْن السابقتيْن كالتالي: Person_ID First_Name Last_Name Age 101 Ibrahim Mohammed 31 102 Mohammed Khaled 25 103 Saleem Yaser 20 104 Aly Mohanmmed 25 نصيحة عملية: يُفضل أن تعتمد جمل الإضافة باستخدام أسماء الأعمدة وذلك لتجنب ظهور أخطاء عند تغيير هيكلية الجدول. القيم الفارغة لو افترضنا وجود قيد العمود غير الفارغ على الأعمدة First_Name وAge مع وجود قيد المفتاح الرئيسي على العمود Person_Id وخاصية Auto Increment عليه، فإن أي جملة إضافة لا تشتمل على قيم ل First_Name أو Age سوف تُظهِر خطأ عند تنفيذها، ولكن لأننا لم نضف قيد العمود غير الفارغ على عمود Last_Name، فإننا نستطيع تجاهل هذا العمود عند الإضافة كالتالي: INSERT INTO Persons (first_name, age) VALUES ('Reem', 20); تصبح البيانات في الجدول كالتالي عند تنفيذ الجملة السابقة: Person_ID First_Name Last_Name Age 101 Ibrahim Mohammed 31 102 Mohammed Khaled 25 103 Saleem Yaser 20 104 Aly Mohanmmed 25 105 Reem 20 من المهم فهم طبيعة القيم الفارغة Null في جداول قواعد البيانات، حيث إنها تختلف عن قيمة الصفر أو القيم النصية "". القيم الفارغة هي التي تُركت بدون اعتبار عند إضافة السجل أو تعديله، كما أن القيم الفارغة لا تخضع للفحص أو المقارنة باستخدام عمليات مثل = > < <>؛ ونستخدم بدلا منها عمليات IS NULL أو IS NOT NULL (هذه النقطة سوف نشرحها في درس جملة الاستعلام). جملة تعديل السجل نستخدم جملة تعديل السجل لإجراء عملية تغيير لقيم الأعمدة في سجل معين أو مجموعة سجلات أو على الجدول بأكمله. الصيغة العامة لجملة تعديل السجل كالتالي: UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition; ملاحظات هامة: في حالة تعديل أكثر من عمود، يجب وضع فاصلة بين القيم الجديدة للأعمدة. تُمثل column1وcolumn2 أسماء الأعمدة التي نريد تغيير قيمها، وتمثل value1 و value2 القيم الجديدة للأعمدة السابقة بالترتيب. نستطيع التعديل على أكثر من عمود في نفس جملة التعديل. لا بد من الحذر والانتباه الشديديْن عند تنفيذ جملة التعديل، حيث إن جملة الشرط (WHERE condition) تحدد السجلات التي سيُعدَّل عليها، وفي حالة عدم وجود جملة الشرط، فإن جميع السجلات في الجدول ستدخل في العملية. تعديل سجل واحد لتعديل سجل واحد، يجب أن نُحدد الشرط الذي يميز هذا السجل على نحو فريد في جملة الشرط، وغالبا يُستخدَم عمود قيد المفتاح الرئيسي في الجدول. فمثلا، إذا أردنا أن نُعدل قيمة العمر Age من 31 إلى 21 للشخص صاحب الرقم 101 في جدول Persons ننفذ الجملة التالية: UPDATE Persons SET Age = 21 WHERE Person_Id = 101; ويصبح السجل بالقيم التالية: Person_ID First_Name Last_Name Age 101 Ibrahim Mohammed 21 لاحظ أننا في جملة الشرط استخدمنا عملية المقارنة = لتحديد رقم Person_Id، وهنا يجب أن ننوه أننا نستطيع استخدام جميع عمليات المقارنة في جملة الشرط بشرط أن تكون منطقية ومكتوبة بطريقة صحيحة، فمثلا، لو أردنا أن نُعدل جميع أعمار الأشخاص الذين أعمارهم 20 أو أقل، لتصبح 25 ننفذ الجملة التالية: UPDATE Persons SET Age = 25 WHERE Age <= 20; السجلات التي لها القيمة 103 و105 في العمود Person_Id هي التي ستتأثر بالجملة السابقة عند تنفيذها، وتصبح البيانات في الجدول على النحو التالي: Person_ID First_Name Last_Name Age 101 Ibrahim Mohammed 21 102 Mohammed Khaled 25 103 Saleem Yaser 25 104 Aly Mohanmmed 25 105 Reem 25 جملة حذف السجل تُستخدَم جملة الحذف لإجراء عملية مسح بيانات موجودة في جدول معين وتتحكّم فيها جملة الشرط والتي تحدد السجل أو السجلات التي ستُحذَف. الصيغة العامة لجملة الحذف DELETE FROM table_name WHERE condition; لابد من الانتباه عند تنفيذ جملة الحذف، حيث إنه في حالة عدم تحديد جملة الشرط، فإن كل البيانات في الجدول ستُحذَف. حذف سجل واحد لحذف السجل الخاص بالشخص الذي رقمه 103 ننفذ الجملة التالية: DELETE FROM Persons WHERE Person_Id = 103; لحذف السجل الخاص بالشخص ذي القيمة الفارغة في الحقل Last_Name ننفذ الجملة التالية: DELETE FROM Persons WHERE Last_Name IS NULL; حذف بيانات الجدول لحذف البيانات بالكامل من الجدول Persons ننفذ إحدى الجملتيْن التاليّتيْن: DELETE FROM Persons; أو DELETE * FROM Persons; ملاحظة: العلامة * تعني جميع السجلات.
  3. الآن وقد تعلّمنا كيف نُجرِي أبحاث المُستخدمين، ونحدّد أهدافنا، ونضع هندسة المعلومات، ونلفت انتباه المُستخدمين، ونضع الرّسوم التّخطيطيّة، ونفهم عقليّة المُستخدم، حان وقت إطلاق الخدمة! وهذا يعني أنّنا سنحتاج إلى إجراء بعض القياسات. فهرس سلسلة مدخل إلى تجربة المستخدم: مدخل إلى تجربة المستخدم User Experience فهم ودراسة المستخدمين في مجال تجربة المستخدم دراسة الشريحة المستهدفة في مجال تجربة المستخدم كيفية التصميم للأجهزة المختلفة هندسة المعلومات في تجربة المستخدم تعرف على أنماط التصميم في مجال تجربة المستخدم أشياء لا يمكن اعتبارها رسوما تخطيطية (Wireframes) في مجال تجربة المستخدم تعرف على الرسوم التخطيطية (Wireframes) في مجال تجربة المستخدم مفهوم الثقل المرئي (Visual Weight) والألوان في مجال تجربة المستخدم التكرار ومخالفة الأنماط في مجال تجربة المستخدم المحاذاة والقرب في مجال تجربة المستخدم تعرف على أساليب مسح الواجهة والتراتب المرئي في مجال تجربة المستخدم أساليب الإطلاع في مجال تجربة المستخدم: التصفح، البحث والاكتشاف تصميم هيكل صفحة الويب والعناصر الأساسية في مجال تجربة المستخدم الأزرار، النماذج والدعوات إلى الإجراء في مجال تجربة المستخدم استخدام علم النفس في مجال تجربة المستخدم لتكييف المستخدم وإقناعه كيف تغير الخبرة من تجربة المستخدم؟ تصميم تجربة المستخدم من خلال بيانات وإحصائيات المستخدمين (هذا الدرس) تعرف على أنواع المخططات الإحصائية في مجال تجربة المستخدم اختبارات أ/ب (A/B Test) في مجال تجربة المستخدم البيانات موضوعية تحدّثنا في الدّروس الأولى من السّلسلة عن أبحاث المُستخدمين. البيانات مختلفة عن الأبحاث، فهي تقيس سلوك المُستخدم، أي ما يفعله، وكم مرّة، وكم دام هذا الفعل، وهكذا... تُجمع البيانات بواسطة حاسوب، فهي حياديّة لا تؤثّر في المُستخدم، وهامش الخطأ فيها صغير لأنّها ذات مقاييس مُعرَّفة بدقّة؛ ويمكن أن نقيس بها سلوك ملايين النّاس دون عناء، ويمكن أن تخبرنا بمتصفّح المُستخدم وبلده. البيانات لا تكذب، فهي علمٌ. لكنّها أيضًا لا تخبر شيئًا عن السياق، لذا كُن حذرًا. للأسف يقع عاتق تفسير هذه البيانات علينا نحن المُصمّمين، وهنا تقع الأخطاء. البيانات قائمة على الناس سيُغريك قول أنّ البيانات "ليست إلّا أرقامًا مُجرَّدة"، وهذا يعني أنّك ستفسرها كما تشاء. تذكّر أنّ هذه الأرقام تُمثّل أفعال أناسٍ حقيقيّن ذوي حياة مُعقّدة. لا تختزل ملايين النّاس في عدد مُفرد وتتوقّع أن تعتمد عليها في كلّ موقف. قد يغريك أيضًا أن تبحث عن أرقام "تُثبت" رأيك، لا تفعل ذلك! ولا تسمح لأحد أن يطلب منك ذلك! كلما زادت البيانات كانت أفضل إن قست نقرات 5 أشخاص، فلن تكون بياناتك تمثيليّة بما يكفي، أمّا إن قست بيانات 5 ملايين زائر، فلا بدّ أنّها تغطّي شرائح كبيرة من الزّوار. كلّما زادت أهمّيّة القرار الّذي تريد بناءه على أساس البيانات، احتجت إلى بيانات أكبر قبل اتّخاذه. طرق جمع بيانات موضوعية تتوفّر طرق كثير لجمع بيانات موضوعيّة: التحليلات (Analytics) توفّرها Google وغيرها بأسعار رخيصة أو مجّانًا، وتسمح بمتابعة ما يفعله المُستخدمون دون كشف هويّتهم. كلّما نقر المُستخدم زرًّا أو انتقل إلى صفحة جديدة، سيظهر لديك ذلك، ويمكنك تصميم قياسات خاصّة بك، ولا حدود لإمكانيّاتها! اختبارات أ/ب صمّم إصدارين من عنصر ما وأطلقهما معًا، ستعلم أيّ الاثنين أفضل، لأنّك تُجرّبهما على أناس حقيقيّن في فترة مناسبة، سيُخبرك البرنامج متى توقف الاختبار، لأنّه زيادة عدد الخاضعين للاختبار بعد حدّ معين أمرٌ غير مُجدٍ. متابعة العين يُجرى هذا الاختبار في مُختبر خاصّ، ولكن لا يستطيع المُستخدم التّحكّم به، لذا يُعتبر موضوعيًّا، وتُستخدم فيه برامج وأدوات خاصّة لقياس موضع نظر المُستخدمين أثناء استخدامهم لتصميم، لتستفيد من ذلك في معرفة سلامة الأساليب الّتي استخدمتها للفت نظرهم. ClickTale هذا مثال عن استخدام الخرائط الحراريّة لمتابعة النّقرات وتمرير الصّفحات والانتقال بينها، ولكنّ هناك أمثلة أخرى. يسمح برنامج ClickTale بجمع بيانات استخدام الواجهة للمُستخدمين الحقيقيّين دون كشف هوّيتهم، وبطريقة مخفيّة، ويسمح لك بمشاهدة مواضع نقراتهم وتحرّك مؤشّر الفأرة ومدى تمرير الصّفحة، وأيّ الصّفحات شاهدوها، وهو غايةٌ في الفائدة. سجلات البحث لا يُدرك كثيرٌ من النّاس أن حقل البحث في موقعك يمكنه أن يحتفظ بكلّ كلمة تُكتب فيها، فلو كان المُستخدمون يبحثون عن شيءٍ ما، فهذا يعني أنّهم لا يجدونه، وعندها تكون سجلّات البحث قيّمة جدًّا لتحسين هندسة معلوماتك وتخطيط الواجهة. التصميم اعتمادا على البيانات المجموعة إن كنت تُخطّط لتحليل استخدام موقعك، فلن يطول الأمر قبل أن تحتاج إلى فهم ما تعنيه إحصاءات Google، وتُجرى دراسة هذه الإحصاءات بأسلوب مُختلف عن خبراء التّسويق. هناك 7 إحصاءات تحتاج لفهمها قبل فعل أيّ شيء، لا أقصد فهم ما تقيسه فقط، بل ما تعنيه أيضًا. لا يمكن أن نقول عن الأرقام أنّها "جيّدة" أو "سيّئة"، فالأمر نسبيّ، ومليون مستخدم لا تعتبر جيّدة إلّا إن كانت أعلى من الشّهر الماضي، لو كنت فيسبوك وكان زوّارك هذا الشّهر مليونًا، فأنت في ورطة. قبل تحليل أي رقم، فكّر بما يجب أن يفعله موقعك، وافهم ما يجب أن تُشير إليه الأرقام عن سلوك المُستخدمين. الجلسات (الزيارات الكلية) والمستخدمون (الزيارات الفريدة) عبارة الزّيارات الكلّيّة تعني مجموع عدد زيارات الموقع (يا للمفاجأة!) أمّا الزّيارات الفريدة (Unique Visits) فهي مختلفة، فلو زرتُ أنا موقعك 50 مرّة، لاحتُسبتُ مُستخدمًا فريدًا واحدًا (unique visitor)، وللدّقّة، فإنّها من النّاحية التّقنيّة تقيس الأجهزة الفريدة وليس النّاس. معنى كلّ منهما: مقارنة هذين الرّقمين سيُقودك إلى استنتاج بعض الحقائق عن الزّيارات: جودة عالية: الكلّيّة أكبر بكثير من الفريدة. كميّة عالية: الكلّيّة مساوية تقريبًا للفريدة، والفريدة أكبر من الشّهر الماضي. كلاهما: الفريدة أعلى من الشّهر الماضي والكلّيّة أعلى بكثير من الفريدة. ليس أيّ منهما: الفريدة أقلّ من الشّهر الماضي والكُلّيّة مساويةً تقريبًا للفريدة. الزّيارات الفريدة تمثيل أكثر صدقًا للزّيارات، ولكنّني أفضّل أن يزور موقعي 1000 شخص كلّ يوم على أن يزوره 10 آلاف شخص مرّةً في الشّهر، ولكن مع ذلك، إن زار شخصٌ واحد موقعي مليون مرّة، فلن يكون هذا مُفيدًا، وربّما يُعاني هذا الشّخص من مشكلة ما! عدد مرات مشاهدة الصفحات (Pageviews) ما تقيسه: تزداد بمقدار 1 في كلّ مرّة يحمّل فيها أيّ زائر أيّ صفحة. ما تعنيه: يمكنك اعتبارها "مؤشِّرًا عامًّا" على الزّيارات، لأنّها تصف المقدار الكليّ للمحتوى المُشاهدة وتتجاهل معظم العوامل الأخرى. لو كان موقعك يعتمد على الإعلانات في أعلى الصّفحات فهذا رقم مهمّ. لو كان موقعك مُعتمدًا على المحتوى، كالأخبار، فقد تكون زيادة هذا الرّقم أكثر أهمّية. معدل عدد الصفحات في كل جلسة (Pages-per-Visit) ما يقيسه: متوسّط عدد الصّفحات الّتي يُشاهدها كلّ زائر، في كلّ زيارة، يمكن اعتبارها عدد "النقرات" في كلّ زيارة (ولكن هذا غير دقيق من النّاحية التّقنيّة). ما يعنيه: إن كان موقعك مُركّزًا على المّهامّ أو التّفاعلات الاجتماعيّة، فقد يكون هذا الرّقم أهمّ من مرّات مشاهدة الصّفحات (pageviews). خلافًا لذلك، إن كنت مُحرَّك البحث Google، فسترغب في تخفيض هذا الرّقم قدر الإمكان، لأنّ نتائج البحث الأكثر جودةً يجب أن تكون في الصّفحة الأولى. متوسط مدة الجلسة (Time-per-Visit) ما يقيسه: مدّة كلّ زيارة المتوسّط، قد تكون مقارنته مع الصّفحات/الجلسة مهمّة جدًا. ما يعنيه: في عالم مثالي، من المُفترض أن يقرأ الزّائر المقال بكامله في الموقع المُعتمد على المُحتوى، وأن يقرأ مقالات كثيرة، وهذا يعني رقمين كبيرين لكلّ من "متوسّط مدّة الجلسة" و"الصّفحات/الجلسة". لو كان الرّقم "الصّفحات/الجلسة" كبيرًا والآخر ("متوسّط مدّة الجلسة") صغيرًا، فقد يعني هذا أنّ الزّوّار يبحثون عن شيء ما ولا يجدون (وهذا سيّئ) أو أنّهم يُنجزون مهمّاتهم بسرعة شديدة (وهذا جيّد)، فالأمر نسبيّ كما ترى. لو كان "متوسّط مدّة الجلسة" كبيرًا والآخر ("متوسط عدد الصّفحات في كل جلسة") صغيرًا، فقد تكون عناصر التّنقّل في الموقع غير فعّالة (وهذا سيّئ)، أو أنّ المقالات طويلة والمُستخدمون مُهتمّون بقراءتها (وهذا جيّد). لو كان الرّقمان مُنخفضين فهذا مؤشّر سيّئ، إلّا إن كان هدف موقعك هو الدّخول والخروج بسرعة، مثل Google. معدل الارتداد (Bounce Rate) ما يقيسه: الزّوّار الّذين يُشاهدون صفحة واحدة ويُغادرون دون أن ينقروا أيّ شيء. ما يعنيه: بشكل عامّ يُعتبر هذا الرّقم رفضًا من الزّوّار لموقعك، ولكن هناك بعض الاستثناءات. تميل المُدوّنات إلى معدّل ارتداد عالٍ لأنّها مُصمّمة لمُشاهدة صفحة واحدة: إمّا مشاهدة صفحة آخر التّدوينات أو زيارة تدوينة مُعيّنة. يمكن أن يتأثر مُعدّل الارتداد بشدّة بِبُنية موقعك ومصدر زياراتك، فحتّى إن بدا الرّقم بسيطًا، فهو مؤشّر مُعقَّد. النسبة المئوية للزيارات الجديدة (New vs. Return Visitors) ما يقيسه: لو أنّ زائرًا (أو جهازًا) زار موقعك من قبل، فإنّه يُعتبر "عائدًا" (returning)، وإلّا فهو جديد. ما يعنيه: يعرف العائدون موقعك أكثر، ولهذا "يرتدّون" أقل ويشاهدون صفحات أكثر، فإن كانوا يعودون فهذا لأنّه ما تقدّمه يُعجبهم، ولهذا يقضون وقتًا أطول عادةً. أمّا الزّوّار الجدد فهم مؤشّر جيّد، لأنّ ذلك يعني أنّ موقعك يصل إلى أناس أكثر. الفكرة الأساسيّة هي نسبة الجُدد إلى العائدين، فلو لم يكن لديك زوّار عائدون فهذا يعني أنّ موقعك جديد، أو سيّئ، ولو لم يكن لديك إلّا زوّار عائدون فهذا يعني أنّ مُستخدميك مُخلصون، ولكنّ الموقع يحتضر. بشكل عامّ، كلّما كان الموقع أكثر "نُضجًا"، سيكون العائدون أكثر (كنسبة مئويّة)، لأنّ العائدين إلى موقعك بصورة مُتكرّرة أفشل من الزّيارات من خلال مُحرّكات البحث والحملات الإعلانيّة. ترجمة بتصرّف للدّرسين What is Data وSummary Statistics من سلسلة Daily UX Crash Course لصاحبها Joel Marsh. اقرأ أيضًا النسخة العربية الكاملة من كتاب مدخل إلى تجربة المستخدم (User Experience - UX) 1.0.0 تجربة المستخدم للهواتف المحمولة وتوقعات المستخدمين تجربتنا في إنشاء أداة تسجل تفاعلات المستخدم 150 خدعة للعمل بذكاء أكثر في مجال تجربة المستخدم UX كيف تصمم أسلوب عمل مرن في مجال تجربة المستخدم
  4. المسوّقون يعلمون تمامًا أنّ عملهم يؤثّرعلى أداء الشركة، ويظهر ذلك عادة في عدّة مظاهر كالزيادة الهائلة في عدد زوّار الموقع أو أعداد المشتركين. لكنّهم ربّما لا يعرفون دومًا على وجه التّحديد ما هي النشاطات والأعمال التي تصنع الأثر الأكبر. قبل أن أنضمّ إلى Intercom عملت في الإدارة الماليّة لشركة ناشئة، أضع خطط التّشغيل Operating plans، أجلب التّمويل، أراقب الأرقام، وأرفع التقارير لمجلس الإدارة. وكنتُ دومًا أطلب من فريق التّسويق أن يثبتوا أنّ جهودهم تجلب الأرباح فعلًا، ليس لأنّني كنت أظنّ أنّ ما يعملون عليه لا يضيف أيّة قيمة، إنّما يجب أن يكتب هذا التّقرير أحد لرفعه إلى مجلس الإدارة. والآن كوني أصبحت أنا مدير التّسويق فقد تبدّلت الأدوار، لازلت في عالم الشّركات النّاشئة حيث كلّ دقيقة لها وزنها وكلّ درهم يحتسب، لكنّني مازلت مضطرًّا للإجابة على أسئلتي السّابقة. بغضّ النّظر عن جودة المنتج، على الشّركة أن تشقّ طريقها إلى الحشود وتقنعهم بأن يصبحوا زبائن لها. المهمّة التي أقوم بها الآن، والتي يتطلب جزءً كبيرًا منها الإبداع، ليست سهلة القياس مثل باقي جوانب الشّركة، لكنّها تقع تمامًا في نفس درجة الأهميّة. لذلك حتى أتمكّن من استثمار المال والوقت بالشّكل الأمثل، قبل أن أبدأ بأيّ مهمّة أو مشروع أقف قليلًا وأسأل: ما الأثر الذي ستحدثه هذه المهمّة؟ بل الأهمّ، كيف سأثبت ذلك؟ الخطوة الأولى: حدد الهدف الصحيح الفوارق الدّقيقة تؤثّر أيضًا، فالتّحديد الصّحيح للمخرجات المطلوبة يوضّح لك كيف تصمّم وتنفّذ مشروعك. فبالحديث عن صفحة هبوط مثلًا، هل هدفك أن تساعد النّاس على فهم ما يقدمّه لهم المنتج أم المطلوب منهم أن يقوموا بتسجيل حساب في الموقع؟ إذا كان الهدف توضيح المنتج فعليك أن تسرد المزايا Feature dump وتخبر الزوّار بكلّ صغيرة وكبيرة يحتويها المنتج. بينما إذا كان الهدف زيادة المسجّلين فيجب أن يكون التّصميم مبنيًّا على أساس سرعة إيصال المشكلة التي يحلّها المنتج وعرض زر الدّعوة إلى الإجراء بشكل واضح. وعندما تقوم بالإعلان عن خاصّيّة جديدة، هل الهدف أن تحصل على زيارات أكثر أم على إعجابات كثيرة على الشّبكات الاجتماعية أم زيادة تحميلات/استخدام للمنتج؟ بالتّأكيد الكثير من الزّيارات هو أمر جيّد لكن ذلك لا يعني أنّه عليك أن تراسل جميع المشتركين في قائمتك البريديّة مع كل خاصّيّة جديدة تتم إضافتها. وصحيح أنّ الحصول على الإعجابات مفيد أيضًا لكنّ الصورة الجميلة الجذابة لا تساهم بالضّرورة في تحويل المعجبين إلى زبائن. عوضًا عن ذلك من الأفضل أن يكون هدفك مركّزًا على زيادة مُستخدمي المنتج، وكلّ عنصر من عناصر حملتك الدّعائيّة يجب أن يتمّ بناؤه ضمن هذه الرّؤية. واحرص على أن تستهدف في إعلانك أولئك المستخدمين الذين بإمكانهم فعلًا أن يستخدموا هذا المنتج الذي تقوم بالتّرويج له. مثال عملي: لنفرض أنّني أعلن عن ميّزة جديدة متاحة في برنامج Support Stand ستكون الأهداف التي أحدّدها على النّحو التّالي: الخطوة الثانية: قم بقياس الهدف ربّما سمعت بمقولة "ما يمكن قياسُه، يمكن تحسينه" فإنّك إن لم تتمكّن من إيجاد طريقة لقياس عملك ستظلّ تدور في مكانك بلا فائدة. هذه بعض الأساليب التي نتّبعها في Intercom: أضف رمز تتّبع UTM إلى الرّوابط التي تُروّج لها لتراقب مصدر الزيارات والحملات الدّعائيّة التّابعة لها. ضع هدفًا لقياس مدى تأثير الرّسالة التي توصلها. فعلى سبيل المثال عندما قمنا بالإعلان عن الخاصّيّة الجديدة لربط خدماتنا بفيسبوك، حدّدنا هدف "أن يقوم المشاهد باستخدام الأداة الجديدة"، وكان بإمكاننا حينها قياس مدى تأثير الرّسالة عبر قياس عدد مرّات استخدام الأداة الجديدة. لا تراقب عدد الحسابات الجديدة فحسب، وإنّما راقب أيضًا الصّفحات التي يقوم عليها الزّوار بإنشاء حسابات وفي أيّ جزء من الصّفحة تحديدًا. هذا السّياق الإضافي يعطيك بيانات جديدة، وسيسمح لك بالإجابة على استفسارات من قبيل: هل يقوم الزّوار بالتّسجيل مع أوّل زر تسجيل يُشاهدونه؟ ربّما الإجابة على هذا السّؤال ستدفعك إلى أن تخفّف من المحتوى في صفحة الهبوط، أن تعيد صياغة محتوياتها بأسلوب أبسط، أو أن تحسّن الصّفحة لتصبح سريعة بدل أن تكون جذّابة وبطيئة. الخطوة الثالثة: راقب الهدف لا يُعطي المُسوّقون التّحليلات Analytics اهتمامًا كبيرًا، ويعتقد الكثيرون منهم أن مهمّته انتهت بمُجرّد إطلاق المُنتج، لكن في حقيقة الأمر. يتطلّب الأمر الكثير من الاستثمار والمهارات والمساعدة من فرق أخرى كي تكوّن البنية التحتيّة الصّحيحة لتقيس (وتحسّن) عملك التّسويقي. إليك أربعة طرق يستخدمها فريق التّسويق لدينا لقياس أدائهم: أجر اختبار A/B على رسالتك وصفحات الهبوط لديك. إذا كان أداء الصّفحة التي تحتوي على فيديو أعلى من غيرها فستعلم أنّ عليك استثمار الوقت والمال أكثر على إنتاج مقاطع الفيديو. استخدم أداة Looker لمراقبة الزّيارات traffic ومعدّلات التّحول conversions و العائدات revenue. راقب خرائط تفاعل زوّار صفحات موقعك Heat maps باستخدام أداة Inspectlet. هل تخسر الزّبائن المُحتملين بسبب الصّفحات الطّويلة؟ جرب أن ترفع زر الدّعوة إلى الإجراء إلى الأعلى وراقب إن كان ذلك يحسّن معدّل التّحويل conversion. قم بإجراء دراسة للمستخدمين، من الجيّد أن تجري هذه الدّراسة بعد إحداث تغيير كبير، لكنّ الأفضل أن تجريها قبل ذلك. كثير من هذه الأساليب والأدوات يمكن تطبيقها ضمن ميزانيّة ومهارات محدودة. ومع زيادة الزّيارات traffic على موقعك فحتّى التحسينات الصّغيرة على معدّل التّحويل conversion يمكن أن تؤدي لزيادة كبيرة في عدد الزّبائن. التّسويق هو واحد من أكبر المجالات في عالم الأعمال. يتراوح ما بين المهام الإبداعيّة مثل التّصميم الجرافيكي والكتابة، إلى المهمّات التّقنيّة مثل الإعلانات المدفوعة وتحسين التّوافق مع محرّكات البحث SEO. ويؤثّر التّسويق في كلّ شخص يتفاعل مع علامتك التّجاريّة، وتقريبًا في كلّ فريق في مؤسّستك، لذلك فليس من المبالغة القول أنّ العاملين في مجال التّسويق لهم أكبر تأثير (سلبيّ أو إيجابيّ) على نموّ وأرباح الشّركة النّاشئة. خلاصة القول، أنّك إذا أردت الوصول إلى أفضل نتائج من جهودك التّسويقيّة، واستبدال الجهود غير المثمرة بأخرى أفضل، فكلّ ما عليك أن تفعله هو أن تعتمد مبدأ التّسويق المعتمد على البيانات وستحصل على أفضل ما يمكن الحصول عليه من طاقة الإبداع الكامنة في فريقك. ترجمة -وبتصرّف- للمقال The Power of Data-Informed Marketing لكاتبته Raechel Lambert.
  5. لقد دخل التسويق إلى العالم الرقمي شأنه في ذلك شأن جميع العناصر الأساسية في ريادة الأعمال، ونتيجة لهذا التحول، أصبح بالإمكان قياس جهودنا المبذولة في التسويق بشكل لم يسبق له مثيل ، الأمر الذي دفع المسوقين إلى الوقوع في حبّ المعلومات والبيانات - إن صح التعبير - وهو حبّ غامر من قمة الرأس إلى أخمص القدمين، ويتجاوز الحدود ليكون الموجّه الرئيسي لعملية التسويق بدلًا من أن تستند عملية التوجيه هذه إلى الأشخاص من مثلي ومثلك. ولأكون صريحًا معك، فإنّي أحب البيانات أيضًا، فأنا أحمل شهادة البكلوريوس في الهندسة، وشهادة الماجستير في إدارة الأعمال، وأعتبر البيانات درعًا واقية لي، ولكنّي لا أرغب في أن تكون الموجّه الوحيد لعملية التسويق في Wistia. أعتقد أنه يجدر بعملية التسويق أن تكون مطّلعة على البيانات Data-informed وليست موجّهة بها Data-driven. التسويق المطلع على البيانات Data-informed marketing في حالة التسويق المطّلع على البيانات، لا يتم التركيز على البيانات فقط، وإنّما تعدّ من أحد العوامل التي تؤخذ بنظر الاعتبار عند اتخاذ القرارات التسويقية، حيث يتم الاعتماد على البيانات المتعلّقة، والخبرات السابقة، والحدس والمدخلات النوعية لغرض الوصول إلى القرار التسويقي الأفضل. وبدلًا من التأمّل الطويل في البيانات أملًا في الحصول على إجابات، نبدأ بتطوير نظرية وفرضية بادئ الأمر، وتخضع هذه الفرضية للاختبار فيما بعد. كذلك نجبر أنفسنا على اتخاذ المزيد من القرارات الحدسية، ولكننا في نفس الوقت نثبت صحّة اختياراتنا بالاعتماد على البيانات ما أمكن ذلك، لتصبح قراراتنا الحدسية أكثر ذكاءً مع مرور الوقت. بعض المشاكل الشائعة المتعلقة بالبيانات إن المشاكل التي نواجهها في عملية التسويق الموجّه بالبيانات ناجمة عن وجود بعض المشاكل في طريقة استخدامنا للبيانات، ومنها: فخ سهولة القياس عندما نسمح للبيانات بتوجيه عملية التسويق، فإنّنا غالباً ما نكون متفائلين حيال الأشياء التي يمكن قياسها بسهولة، وليس الأمور ذات الأهمية العالية. هناك بعض النتائج التي يمكن قياسها بسهولة، وهناك بعض النتائج التي لا يخلو قياسها من شيء من الصعوبة. فعلى سبيل المثال: من السهل قياس عدد النقرات على رسالة إلكترونية، ولكن من الصعب قياس الأثر العميق الذي تركته صفحة هبوط ذات تصميم ممتاز. وقياس نسبة التحويل للزائرين الذين يصلون إلى صفحة الأسعار أمر سهل، ولكن من الصعب معرفة الكلام الدائر حول إحدى حملات الفيديو الخاصّة بك. كما ترى، فعلى الرغم من وجود بعض النتائج التي يسهل قياسها، إلا أنّ كلا النوعين من النتائج، أعني تلك النتائج سهلة القياس والأخرى التي يكون قياسها صعبًا، يعدّان أساسيين لتقدير أداء عملية التسويق. فخ التحسين المحلي local optimization يمكن الوقوع في فخ التحسين المحليّ عند محاولة تحسين جزء معيّن من قمع التسويق، ونحن نواجه هذا التحدي بشكل دائم في Wistia عندما نحاول زيادة معدل تحويل الزوّار الجدد. على أن تحسين معدل التسجيل في الموقع يعدّ مشكلة تحسين واضحة نسبيًا، ويمكن حلها بإجراء بعض الاختبارات الأساسية. غير أن المشكلة تكمن في أنّنا لا نرغب فقط في أن يسجل الزائر في خطّتنا المجانية، بل نرغب في أن يسجّل في الخطّة المجانية، ثم يستفيد من حسابه على الموقع، ثم يعبر للآخرين بعد ذلك عن مدى إعجابه بـ Wistia، ويشترك في نهاية المطاف في إحدى خططنا المدفوعة (وتتولّد لديه خلال هذه الفترة المزيد والمزيد من المشاعر الإيجابية تجاه علامتنا التجارية). وهذه مشكلة تحسين صعبة؛ ذلك لأنّ علينا متابعة زائر الموقع الإلكتروني بعد أن يتحوّل إلى مستخدم للتطبيق، ثم إلى عميل. ويجب علينا متابعة هذه العملية التي قد تستغرق أسابيع أو شهورًا، على العكس من عملية التسجيل التي تستغرق عادة دقائق معدودة. إن التحسين المحلي يجعل إدارة البيانات أكثر سهولة، ولكن الاستعجال في الحصول على المكاسب قد يدفعنا إلى تبسيط أهدافنا التسويقية بشكل كبير، لينتهي بنا الأمر إلى إجراء التحسينات لبعض النتائج الوسطية والتي قد لا تطابق بالضرورة أهدافنا الكبرى في مشروعنا التجاري. فخ جودة البيانات نادرًا ما نشكّك وننتقد بياناتنا الخاصة بالشكل الصحيح، خذ مثلًا اختبارات A/B والتي تحولت إلى المعيار الذهبي لاختبارات التسويق. يجب أن تنتج هذه الاختبارات من الناحية النظرية نتائج دقيقة وقابلة للتكرار، لأنّ توجيه الزوّار إلى كل بديل في الصفحة يكون بشكل عشوائي. هذا من الناحية النظرية، أما من الناحية العملية، فهناك العديد من الطرق التي تؤدي إلى إعطاء نتائج مضللة من أبسط أنواع اختبارات A/B. إن كان عدد الزوّار في موقعك مقاربًا لموقعنا، فإنّ الزوّار يصلون إليه من مصادر شتّى: عمليات البحث، زيارات مباشرة، الإحالات، البحث المدفوع وغيرها الكثير. وإن كانت نسبة التحويل لإحدى هذه المصادر أعلى من البقية، فستحصل وبكل سهولة على نتائج منحرفة وذلك بسبب التعامل مع الزوّار كجمهور مفرد ومنتظم. إن لم تكن مقتنعًا لحدّ الآن، جرّب إجراء اختبار A/A حيث تنشئ بديلين متطابقين، وبوجود عينة كبيرة بما فيه الكفاية، وستبشّر رئيسك في العمل بزيادة نسبة التحويل بمقدار 4% دون إحداث أي تغيير يذكر. الحذر من البيانات يجب علينا كمسوقين أن لا نتوقف عن اكتشاف طرق جديدة لاستغلال قوة البيانات، وفي نفس الوقت علينا توخّي الحذر من الاعتماد المفرط على هذه البيانات. يمكن للبيانات أن تكون مصدرًا كبيرًا للإلهام، وعليك استغلال هذا المصدر، ولكن لا تفرط في الاعتماد عليها. ترجمة -وبتصرّف- للمقال The Dangers of Data-Driven Marketing لصاحبه Ezra Fishman.
×
×
  • أضف...