ما هو مطور ذكاء الأعمال (BI)؟

مطور ذكاء الأعمال (Business Intelligence)

مطور ذكاء الأعمال يركز على تحويل البيانات إلى رؤى قابلة للتنفيذ من خلال إنشاء تقارير ولوحات تحكم تفاعلية باستخدام أدوات مثل Power BI و Tableau.

تحليل البيانات

تحويل البيانات إلى رؤى قابلة للتنفيذ

التقارير

إنشاء تقارير ولوحات تحكم تفاعلية

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

استعلام وإدارة قواعد البيانات

تصور البيانات

عرض البيانات بشكل مرئي واضح

اللغات والأدوات المستخدمة

SQL

لإدارة قواعد البيانات واستعلامات البيانات

DAX

صيغ تحليل البيانات في Power BI

Power Query (M)

لتحويل البيانات في Power BI

Tableau

لإنشاء تقارير ولوحات تحكم تفاعلية

Power BI

أداة Microsoft لتحليل وتصور البيانات

Markdown

لإنشاء تقارير ووثائق تحليلية

مهارات مطور ذكاء الأعمال

1

SQL Programming

إتقان استعلامات قواعد البيانات والتحليل

2

Tableau

إنشاء لوحات تحكم وتقارير تفاعلية

3

Power BI

تحليل وتصور البيانات باستخدام DAX

4

تصور البيانات

مبادئ تصميم الرسوم البيانية والتقارير

5

تحليل البيانات

فهم الإحصائيات ومؤشرات الأداء KPIs

6

تصميم لوحات التحكم

إنشاء واجهات مستخدم فعالة للبيانات

خارطة التعلم خطوة بخطوة

1

الخطوة 1: تعلم SQL

SQL هي لغة البرمجة المستخدمة لإدارة قواعد البيانات واستعلامات البيانات

الأهمية:

الأساس لاستخراج البيانات من قواعد البيانات العلائقية وإعدادها للتحليل

الأدوات:

MySQL، PostgreSQL، SQL Server

مثال SQL أساسي:

-- إنشاء قاعدة بيانات
CREATE DATABASE company_db;

-- استخدام قاعدة البيانات
USE company_db;

-- إنشاء جدول الموظفين
CREATE TABLE employees (
    employee_id INT PRIMARY KEY AUTO_INCREMENT,
    first_name VARCHAR(50) NOT NULL,
    last_name VARCHAR(50) NOT NULL,
    department VARCHAR(50),
    salary DECIMAL(10, 2),
    hire_date DATE,
    email VARCHAR(100) UNIQUE,
    phone VARCHAR(20)
);

-- إنشاء جدول المبيعات
CREATE TABLE sales (
    sale_id INT PRIMARY KEY AUTO_INCREMENT,
    employee_id INT,
    product_name VARCHAR(100),
    quantity INT,
    unit_price DECIMAL(10, 2),
    sale_date DATE,
    region VARCHAR(50),
    FOREIGN KEY (employee_id) REFERENCES employees(employee_id)
);

-- إدخال بيانات الموظفين
INSERT INTO employees (first_name, last_name, department, salary, hire_date, email, phone) VALUES
('أحمد', 'محمد', 'المبيعات', 5000.00, '2022-01-15', 'ahmed@company.com', '0501234567'),
('سارة', 'علي', 'التسويق', 4500.00, '2021-03-20', 'sara@company.com', '0557654321'),
('خالد', 'عبدالله', 'المبيعات', 5200.00, '2020-11-10', 'khaled@company.com', '0549876543'),
('نورة', 'فهد', 'التطوير', 6000.00, '2023-02-05', 'noura@company.com', '0561112233');

-- إدخال بيانات المبيعات
INSERT INTO sales (employee_id, product_name, quantity, unit_price, sale_date, region) VALUES
(1, 'لابتوب', 5, 3000.00, '2024-01-10', 'الرياض'),
(1, 'طابعة', 3, 800.00, '2024-01-12', 'الرياض'),
(3, 'هاتف', 10, 2500.00, '2024-01-15', 'جدة'),
(2, 'كاميرا', 2, 1500.00, '2024-01-18', 'الدمام'),
(3, 'لابتوب', 7, 3000.00, '2024-01-20', 'جدة');

-- استعلامات أساسية
-- 1. عرض جميع الموظفين
SELECT * FROM employees;

-- 2. عرض الموظفين في قسم المبيعات
SELECT first_name, last_name, salary, hire_date 
FROM employees 
WHERE department = 'المبيعات';

-- 3. حساب متوسط الراتب لكل قسم
SELECT 
    department,
    COUNT(*) as employee_count,
    AVG(salary) as avg_salary,
    SUM(salary) as total_salary
FROM employees 
GROUP BY department 
ORDER BY avg_salary DESC;

-- 4. الاستعلام مع JOIN بين الجدولين
SELECT 
    e.first_name,
    e.last_name,
    e.department,
    COUNT(s.sale_id) as total_sales,
    SUM(s.quantity * s.unit_price) as total_revenue
FROM employees e
LEFT JOIN sales s ON e.employee_id = s.employee_id
GROUP BY e.employee_id
ORDER BY total_revenue DESC;

-- 5. استعلامات متقدمة مع شروط
SELECT 
    e.first_name,
    e.last_name,
    e.department,
    s.product_name,
    s.quantity,
    s.unit_price,
    (s.quantity * s.unit_price) as total_amount,
    s.sale_date,
    s.region
FROM employees e
INNER JOIN sales s ON e.employee_id = s.employee_id
WHERE s.sale_date >= '2024-01-01'
  AND s.region = 'الرياض'
ORDER BY s.sale_date DESC, total_amount DESC;

-- 6. استخدام وظائف التاريخ
SELECT 
    YEAR(sale_date) as sale_year,
    MONTH(sale_date) as sale_month,
    COUNT(*) as sales_count,
    SUM(quantity * unit_price) as monthly_revenue
FROM sales
GROUP BY YEAR(sale_date), MONTH(sale_date)
ORDER BY sale_year DESC, sale_month DESC;

-- 7. استخدام CASE للتقسيم
SELECT 
    product_name,
    SUM(quantity) as total_quantity,
    SUM(quantity * unit_price) as total_revenue,
    CASE 
        WHEN SUM(quantity * unit_price) > 10000 THEN 'ممتاز'
        WHEN SUM(quantity * unit_price) > 5000 THEN 'جيد'
        WHEN SUM(quantity * unit_price) > 1000 THEN 'متوسط'
        ELSE 'منخفض'
    END as performance_category
FROM sales
GROUP BY product_name
ORDER BY total_revenue DESC;

-- 8. الاستعلام مع Subquery
SELECT 
    first_name,
    last_name,
    department,
    salary,
    (SELECT AVG(salary) FROM employees) as company_avg_salary,
    salary - (SELECT AVG(salary) FROM employees) as salary_difference
FROM employees
WHERE salary > (SELECT AVG(salary) FROM employees)
ORDER BY salary_difference DESC;

-- 9. إنشاء View للتسهيل
CREATE VIEW employee_sales_summary AS
SELECT 
    e.employee_id,
    e.first_name,
    e.last_name,
    e.department,
    e.salary,
    COUNT(s.sale_id) as total_sales,
    COALESCE(SUM(s.quantity * s.unit_price), 0) as total_revenue,
    COALESCE(AVG(s.quantity * s.unit_price), 0) as avg_sale_amount
FROM employees e
LEFT JOIN sales s ON e.employee_id = s.employee_id
GROUP BY e.employee_id;

-- استخدام الـ View
SELECT * FROM employee_sales_summary 
ORDER BY total_revenue DESC;

-- 10. إجراءات مخزنة Stored Procedures
DELIMITER //
CREATE PROCEDURE GetSalesReport(
    IN start_date DATE,
    IN end_date DATE,
    IN dept_name VARCHAR(50)
)
BEGIN
    SELECT 
        e.first_name,
        e.last_name,
        e.department,
        s.product_name,
        s.quantity,
        s.unit_price,
        (s.quantity * s.unit_price) as total_amount,
        s.sale_date,
        s.region
    FROM employees e
    INNER JOIN sales s ON e.employee_id = s.employee_id
    WHERE s.sale_date BETWEEN start_date AND end_date
      AND (dept_name IS NULL OR e.department = dept_name)
    ORDER BY s.sale_date DESC;
END //
DELIMITER ;

-- استدعاء الإجراء المخزن
CALL GetSalesReport('2024-01-01', '2024-01-31', 'المبيعات');

-- 11. تحديث البيانات
UPDATE employees 
SET salary = salary * 1.10  -- زيادة 10%
WHERE department = 'المبيعات' 
  AND hire_date <= '2023-01-01';

-- 12. حذف البيانات
DELETE FROM sales 
WHERE sale_date < '2023-01-01';

-- 13. مؤشرات الأداء الرئيسية KPIs
SELECT 
    -- مؤشرات المبيعات
    COUNT(DISTINCT employee_id) as active_sales_people,
    COUNT(*) as total_sales,
    SUM(quantity) as total_items_sold,
    SUM(quantity * unit_price) as total_revenue,
    AVG(quantity * unit_price) as avg_sale_value,
    
    -- مؤشرات حسب المنطقة
    region,
    COUNT(*) as regional_sales,
    SUM(quantity * unit_price) as regional_revenue
FROM sales
WHERE sale_date >= DATE_SUB(CURDATE(), INTERVAL 30 DAY)
GROUP BY region
ORDER BY regional_revenue DESC;

-- 14. تحليل النمو
SELECT 
    DATE_FORMAT(sale_date, '%Y-%m') as month,
    COUNT(*) as sales_count,
    SUM(quantity * unit_price) as monthly_revenue,
    LAG(SUM(quantity * unit_price)) OVER (ORDER BY DATE_FORMAT(sale_date, '%Y-%m')) as prev_month_revenue,
    ROUND(
        ((SUM(quantity * unit_price) - LAG(SUM(quantity * unit_price)) OVER (ORDER BY DATE_FORMAT(sale_date, '%Y-%m'))) / 
        LAG(SUM(quantity * unit_price)) OVER (ORDER BY DATE_FORMAT(sale_date, '%Y-%m'))) * 100, 
        2
    ) as growth_percentage
FROM sales
GROUP BY DATE_FORMAT(sale_date, '%Y-%m')
ORDER BY month DESC;

-- 15. تقرير نهائي للتحليل
SELECT 
    -- معلومات المنتج
    product_name,
    
    -- مؤشرات الكمية
    SUM(quantity) as total_quantity,
    COUNT(DISTINCT employee_id) as unique_sales_people,
    
    -- مؤشرات القيمة
    SUM(quantity * unit_price) as total_revenue,
    AVG(unit_price) as avg_unit_price,
    
    -- مؤشرات الأداء
    ROUND(AVG(quantity), 2) as avg_quantity_per_sale,
    MAX(quantity) as max_quantity_sold,
    MIN(quantity) as min_quantity_sold,
    
    -- مؤشرات الزمن
    MIN(sale_date) as first_sale_date,
    MAX(sale_date) as last_sale_date,
    COUNT(*) as total_sales_count
    
FROM sales
GROUP BY product_name
HAVING total_revenue > 0
ORDER BY total_revenue DESC;
                        
2

الخطوة 2: تعلم Tableau

Tableau هي أداة تصور البيانات لإنشاء تقارير ولوحات تحكم تفاعلية

الأهمية:

ضروري لإنشاء تقارير تفاعلية يمكن مشاركتها مع الفرق الأخرى

الأدوات:

Tableau Desktop، Tableau Server

مثال Tableau خطوة بخطوة:

/*
Tableau Tutorial: إنشاء لوحة تحكم تفاعلية

الخطوة 1: استيراد البيانات
1. افتح Tableau Desktop
2. اضغط على "Connect to Data"
3. اختر نوع البيانات:
   - ملف Excel أو CSV
   - قاعدة بيانات SQL
   - خادم Tableau
4. استخدم "Sample - Superstore" للتدريب

الخطوة 2: تحضير البيانات
1. في Data Source، تأكد من أن أنواع البيانات صحيحة
2. استخدم Data Interpreter لتنظيف البيانات
3. أنشئ اتصالات بين الجداول (Joins)
4. أضف حقول محسوبة (Calculated Fields)

الخطوة 3: إنشاء ورقة عمل (Worksheet)

مثال 1: مخطط المبيعات الشهري
1. اسحب Order Date إلى Columns
2. اسحب Sales إلى Rows
3. غير نوع المخطط إلى Line Chart
4. أضف filter على السنة
5. أضف لون حسب Category

مثال 2: خريطة المبيعات الجغرافية
1. اسحب State إلى Detail
2. اسحب Sales إلى Color
3. اختر Map من علامة تبويب Marks
4. أضف City إلى Label

مثال 3: تحليل الربحية
1. اسحب Sub-Category إلى Rows
2. اسحب Profit إلى Columns
3. أضف Profit Ratio كحقل محسوب:
   SUM([Profit]) / SUM([Sales])
4. أضف Color حسب الربحية

الخطوة 4: إنشاء لوحة تحكم (Dashboard)
1. أنشئ Dashboard جديدة
2. اسحب Worksheets إلى لوحة التحكم
3. رتب العناصر بشكل منطقي
4. أضف Filters المشتركة
5. أضح Actions للتفاعل بين الرسوم

الخطوة 5: نشر التقرير
1. احفظ العمل كـ .twbx
2. انشر على Tableau Server أو Tableau Public
3. شارك الرابط مع فريقك
4. حدد أذونات الوصول

أمثلة على الحقول المحسوبة في Tableau:

1. معدل الربحية:
   SUM([Profit]) / SUM([Sales])

2. النمو السنوي:
   (SUM([Sales]) - LOOKUP(SUM([Sales]), -1)) 
   / ABS(LOOKUP(SUM([Sales]), -1))

3. تصنيف العملاء:
   IF [Sales] > 10000 THEN "مميز"
   ELSEIF [Sales] > 5000 THEN "نشيط"
   ELSE "عادي"
   END

4. هدف المبيعات:
   IF SUM([Sales]) > [Sales Target] THEN "محقق"
   ELSE "غير محقق"
   END

5. حساب العمر:
   DATEDIFF('year', [Birth Date], TODAY())

ميزات Tableau المتقدمة:
1. Level of Detail (LOD) Expressions
2. Table Calculations
3. Parameters
4. Sets
5. Groups

أفضل الممارسات في Tableau:
1. استخدم ألوان متسقة
2. حافظ على بساطة التصميم
3. أضح عناوين واضحة
4. استخدم Tooltips للمعلومات الإضافية
5. اختبر الأداء مع كميات كبيرة من البيانات

نصائح لتصميم لوحات تحكم فعالة:
1. ضع أهم المعلومات في أعلى يسار الشاشة
2. استخدم Grid للتخطيط المنظم
3. أضح عناصر التنقل بوضوح
4. اختر أنواع الرسوم البيانية المناسبة
5. اختبر مع المستخدمين النهائيين
*/
                        
3

الخطوة 3: تعلم Power BI

Power BI هي أداة Microsoft لتحليل وتصور البيانات وإنشاء التقارير

الأهمية:

ضروري لإنشاء تقارير تفاعلية يمكن مشاركتها مع الفرق عبر Power BI Service

الأدوات:

Power BI Desktop، Power Query، DAX، Power BI Service

مثال Power BI شامل:

/*
Power BI Tutorial: إنشاء تقرير تحليلي متكامل

الخطوة 1: استيراد البيانات في Power BI Desktop
1. افتح Power BI Desktop
2. اضغط على Get Data
3. اختر مصدر البيانات:
   - Excel / CSV
   - SQL Database
   - Web API
   - SharePoint

الخطوة 2: تحويل البيانات باستخدام Power Query
1. في Power Query Editor، نظف البيانات:
   - أزل الصفوف الفارغة
   - صحح أنواع البيانات
   - أضف أعمدة جديدة
   - دمج الجداول

مثال على صيغ Power Query (M Language):
*/
// إضافة عمود السنة
Year = Table.AddColumn(#"Changed Type", "Year", each Date.Year([OrderDate]), Int64.Type)

// إضافة عمود الربحية
Profitability = Table.AddColumn(#"Added Year", "Profitability", 
    each if [Profit] > 0 then "ربح" else "خسارة", type text)

// تجميع البيانات حسب الشهر
Grouped = Table.Group(#"Added Profitability", {"Year", "Month"}, 
    {{"Total Sales", each List.Sum([Sales]), type number}})

/*
الخطوة 3: إنشاء نموذج البيانات (Data Model)
1. أنشئ علاقات بين الجداول
2. حدد اتجاه المرشحات (Filter Direction)
3. أنشئ جداول التاريخ (Date Tables)

الخطوة 4: كتابة مقاييس DAX
*/
-- DAX (Data Analysis Expressions) أمثلة:

-- 1. إجمالي المبيعات
Total Sales = SUM(Sales[SalesAmount])

-- 2. إجمالي المبيعات للسنة السابقة
Sales LY = 
CALCULATE(
    [Total Sales],
    SAMEPERIODLASTYEAR('Date'[Date])
)

-- 3. نسبة النمو السنوي
Sales Growth = 
DIVIDE(
    [Total Sales] - [Sales LY],
    [Sales LY]
)

-- 4. متوسط المبيعات المتحرك (3 أشهر)
Rolling Avg 3M = 
AVERAGEX(
    DATESINPERIOD(
        'Date'[Date],
        LASTDATE('Date'[Date]),
        -3,
        MONTH
    ),
    [Total Sales]
)

-- 5. أعلى 5 عملاء
Top 5 Customers = 
CALCULATE(
    [Total Sales],
    TOPN(
        5,
        VALUES(Customer[CustomerName]),
        [Total Sales]
    )
)

-- 6. نسبة المساهمة
Sales Contribution = 
DIVIDE(
    [Total Sales],
    CALCULATE([Total Sales], ALL(Sales))
)

-- 7. ترتيب المنتجات حسب المبيعات
Product Rank = 
RANKX(
    ALL(Product[ProductName]),
    [Total Sales]
)

-- 8. نسبة تحقيق الهدف
Target Achievement = 
DIVIDE(
    [Total Sales],
    [Sales Target]
)

-- 9. عدد الأيام منذ آخر بيع
Days Since Last Sale = 
IF(
    ISBLANK(LASTDATE(Sales[OrderDate])),
    BLANK(),
    DATEDIFF(
        LASTDATE(Sales[OrderDate]),
        TODAY(),
        DAY
    )
)

-- 10. تجزئة العملاء
Customer Segment = 
SWITCH(
    TRUE(),
    [Total Sales] >= 10000, "Platinum",
    [Total Sales] >= 5000, "Gold",
    [Total Sales] >= 1000, "Silver",
    "Bronze"
)

/*
الخطوة 5: إنشاء التصورات البصرية
1. أضح visuals من Visualizations pane:
   - Column Chart للمقارنات
   - Line Chart للاتجاهات الزمنية
   - Pie Chart للنسب
   - Matrix للجداول التفاعلية
   - Map للبيانات الجغرافية

2. تخصيص التصميم:
   - اختر ثيم مناسب
   - ضبط الألوان والخطوط
   - أضح titles وتسميات

الخطوة 6: إنشاء لوحة تحكم (Dashboard)
1. نظم visuals بشكل منطقي
2. أضح slicers للتصفية
3. استخدم bookmarks للعروض التقديمية
4. أضح buttons للتنقل

الخطوة 7: نشر التقرير
1. سجل الدخول إلى Power BI Service
2. انشر التقرير من Desktop
3. أنشئ Workspace للفريق
4. حدد أذونات الوصول

الخطوة 8: المتابعة والتحديث
1. حدد جدول تحديث البيانات
2. راقب استخدام التقرير
3. أضح تحديثات بناء على ملاحظات المستخدمين

أفضل الممارسات في Power BI:
1. استخدم star schema لنموذج البيانات
2. قلل عدد المقاييس المعقدة
3. استخدم themes متسقة
4. اختبر التقرير على أجهزة مختلفة
5. وثق عملك في Report documentation

نصائح لأداء أفضل:
1. استخدم DirectQuery للبيانات الكبيرة
2. قلل عدد visuals في صفحة واحدة
3. استخدم aggregations للتحسين
4. نظم البيانات في Power Query قبل التحميل
*/
                        
4

الخطوة 4: تعلم تصور البيانات

تصور البيانات هو فن عرض البيانات بشكل بصري واضح وجذاب

الأهمية:

ضروري لتحويل البيانات إلى رسوم بيانية يسهل فهمها واتخاذ القرارات بناءً عليها

الأدوات:

Tableau، Power BI، Python (Matplotlib, Seaborn)

مبادئ وممارسات تصور البيانات:

/*
مبادئ تصور البيانات الفعال

1. مبادئ التصميم الأساسية:
   - البساطة: تجنب التعقيد غير الضروري
   - الوضوح: كن واضحاً في نقل الرسالة
   - الدقة: تأكد من دقة البيانات والمعروض
   - الجاذبية: اجعل التصميم جميلاً ومريحاً للعين

2. اختيار نوع الرسم البياني المناسب:

أ. للمقارنات:
   - Column Chart: لمقارنة فئات محددة
   - Bar Chart: للفئات ذات الأسماء الطويلة
   - Bullet Chart: لمقارنة الأداء مع الهدف

ب. للاتجاهات الزمنية:
   - Line Chart: لعرض الاتجاهات عبر الزمن
   - Area Chart: لإظهار الكمية مع الاتجاه

ج. للنسب والتوزيعات:
   - Pie Chart: للنسب البسيطة (≤ 6 شرائح)
   - Donut Chart: بديل للـ Pie مع مساحة للوسم
   - Treemap: للنسب مع هيكل هرمي
   - Sunburst: للتسلسل الهرمي متعدد المستويات

د. للعلاقات:
   - Scatter Plot: للعلاقة بين متغيرين
   - Bubble Chart: للعلاقة مع بعد ثالث (الحجم)
   - Heat Map: لكثافة البيانات في مساحة ثنائية

3. مبادئ الألوان في تصور البيانات:

أ. مخططات الألوان:
   - تسلسلية (Sequential): للقيم العددية
   - متباينة (Diverging): للانحراف عن نقطة متوسطة
   - نوعية (Qualitative): للفئات المختلفة

ب. قواعد استخدام الألوان:
   - استخدم ألواناً متباينة للفئات المختلفة
   - تجنب استخدام ألوان كثيرة (≤ 6 ألوان)
   - ضع في الاعتبار عمى الألوان
   - استخدم ألواناً متسقة عبر جميع الرسوم

4. مبادئ التخطيط والتركيب:

أ. تخطيط الصفحة:
   - ضع المعلومات الأهم في أعلى يسار الصفحة
   - استخدم التدرج البصري (visual hierarchy)
   - حافظ على التوازن في التصميم

ب. التراكيب:
   - استخدم grids للتنسيق المنظم
   - حافظ على تباعد متسق بين العناصر
   - استخدم محاذاة متسقة

5. مبادئ التفاعل (في الأدوات التفاعلية):

أ. عناصر التحكم:
   - Filters: لتصفية البيانات
   - Parameters: لضبط القيم
   - Tooltips: للمعلومات الإضافية
   - Drill-down: للتفاصيل

ب. التفاعل بين الرسوم:
   - Highlight: تمييز العناصر المترابطة
   - Cross-filtering: تصفية متعددة الاتجاهات
   - Actions: ربط الرسوم ببعضها

6. أمثلة عملية في Python:
*/
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
import numpy as np

# مثال 1: مخطط أعمدة بسيط
def create_bar_chart():
    categories = ['منتج أ', 'منتج ب', 'منتج ج', 'منتج د']
    sales = [150, 220, 180, 300]
    
    plt.figure(figsize=(10, 6))
    bars = plt.bar(categories, sales, color=['#3498db', '#2ecc71', '#e74c3c', '#f39c12'])
    
    # تخصيص المخطط
    plt.title('مبيعات المنتجات الربع سنوية', fontsize=16, fontweight='bold', pad=20)
    plt.xlabel('المنتجات', fontsize=12)
    plt.ylabel('المبيعات (ألف)', fontsize=12)
    plt.xticks(fontsize=11, rotation=0)
    
    # إضافة القيم على الأعمدة
    for bar in bars:
        height = bar.get_height()
        plt.text(bar.get_x() + bar.get_width()/2., height + 5,
                f'{height}', ha='center', va='bottom', fontsize=11)
    
    plt.tight_layout()
    plt.show()

# مثال 2: مخطط خطي للاتجاهات
def create_line_chart():
    months = ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو']
    sales_2023 = [150, 180, 220, 210, 250, 280]
    sales_2024 = [180, 210, 240, 230, 270, 300]
    
    plt.figure(figsize=(12, 6))
    plt.plot(months, sales_2023, marker='o', linewidth=2, label='2023', color='#3498db')
    plt.plot(months, sales_2024, marker='s', linewidth=2, label='2024', color='#2ecc71')
    
    # تخصيص المخطط
    plt.title('مقارنة المبيعات الشهرية', fontsize=16, fontweight='bold', pad=20)
    plt.xlabel('الشهر', fontsize=12)
    plt.ylabel('المبيعات (ألف)', fontsize=12)
    plt.grid(True, alpha=0.3)
    plt.legend(fontsize=12)
    
    # إضافة خط الهدف
    target = 250
    plt.axhline(y=target, color='#e74c3c', linestyle='--', linewidth=2, label=f'الهدف ({target})')
    plt.fill_between(months, target, sales_2024, where=(sales_2024 >= target), 
                     color='#2ecc71', alpha=0.2)
    plt.fill_between(months, target, sales_2024, where=(sales_2024 < target), 
                     color='#e74c3c', alpha=0.2)
    
    plt.tight_layout()
    plt.show()

# مثال 3: مخطط مبعثر مع انحدار خطي
def create_scatter_plot():
    np.random.seed(42)
    n = 100
    marketing_budget = np.random.uniform(10, 100, n)
    sales = 50 + 2 * marketing_budget + np.random.normal(0, 20, n)
    
    plt.figure(figsize=(10, 6))
    scatter = plt.scatter(marketing_budget, sales, alpha=0.6, 
                         c=marketing_budget, cmap='viridis', s=100)
    
    # خط الانحدار
    z = np.polyfit(marketing_budget, sales, 1)
    p = np.poly1d(z)
    plt.plot(marketing_budget, p(marketing_budget), "r--", linewidth=2, 
             label=f'خط الانحدار: y = {z[0]:.2f}x + {z[1]:.2f}')
    
    plt.colorbar(scatter, label='ميزانية التسويق')
    plt.title('العلاقة بين ميزانية التسويق والمبيعات', fontsize=16, fontweight='bold', pad=20)
    plt.xlabel('ميزانية التسويق (ألف)', fontsize=12)
    plt.ylabel('المبيعات (ألف)', fontsize=12)
    plt.grid(True, alpha=0.3)
    plt.legend(fontsize=10)
    
    plt.tight_layout()
    plt.show()

# مثال 4: heatmap للارتباط
def create_correlation_heatmap():
    # بيانات مثال
    data = pd.DataFrame({
        'المبيعات': np.random.normal(100, 20, 100),
        'المصاريف': np.random.normal(50, 10, 100),
        'الربح': np.random.normal(50, 15, 100),
        'العملاء': np.random.normal(200, 30, 100)
    })
    
    # حساب مصفوفة الارتباط
    correlation_matrix = data.corr()
    
    plt.figure(figsize=(10, 8))
    sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm', 
                center=0, square=True, linewidths=1, 
                cbar_kws={"shrink": 0.8}, fmt='.2f')
    
    plt.title('مصفوفة الارتباط بين المؤشرات', fontsize=16, fontweight='bold', pad=20)
    plt.xticks(rotation=45, ha='right')
    plt.tight_layout()
    plt.show()

# مثال 5: مخططات متعددة (subplots)
def create_dashboard():
    fig, axes = plt.subplots(2, 2, figsize=(14, 10))
    
    # 1. مخطط أعمدة
    categories = ['المنطقة أ', 'المنطقة ب', 'المنطقة ج']
    sales = [300, 450, 250]
    axes[0, 0].bar(categories, sales, color=['#3498db', '#2ecc71', '#9b59b6'])
    axes[0, 0].set_title('المبيعات حسب المنطقة')
    axes[0, 0].set_ylabel('المبيعات (ألف)')
    
    # 2. مخطط دائري
    sizes = [30, 25, 20, 15, 10]
    labels = ['منتج 1', 'منتج 2', 'منتج 3', 'منتج 4', 'منتج 5']
    axes[0, 1].pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90)
    axes[0, 1].set_title('توزيع المبيعات حسب المنتج')
    
    # 3. مخطط خطي
    months = ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو']
    revenue = [150, 180, 210, 190, 230]
    expenses = [80, 90, 100, 95, 110]
    axes[1, 0].plot(months, revenue, marker='o', label='الإيرادات', color='#2ecc71')
    axes[1, 0].plot(months, expenses, marker='s', label='المصاريف', color='#e74c3c')
    axes[1, 0].set_title('الإيرادات والمصاريف الشهرية')
    axes[1, 0].set_ylabel('القيمة (ألف)')
    axes[1, 0].legend()
    axes[1, 0].grid(True, alpha=0.3)
    
    # 4. مخطط مبعثر
    x = np.random.normal(50, 15, 100)
    y = 30 + 0.5 * x + np.random.normal(0, 10, 100)
    axes[1, 1].scatter(x, y, alpha=0.6, color='#3498db')
    axes[1, 1].set_title('العلاقة بين المتغيرين')
    axes[1, 1].set_xlabel('المتغير س')
    axes[1, 1].set_ylabel('المتغير ص')
    axes[1, 1].grid(True, alpha=0.3)
    
    plt.suptitle('لوحة تحكم تحليل البيانات', fontsize=18, fontweight='bold', y=1.02)
    plt.tight_layout()
    plt.show()

# تشغيل الأمثلة
if __name__ == "__main__":
    create_bar_chart()
    create_line_chart()
    create_scatter_plot()
    create_correlation_heatmap()
    create_dashboard()

/*
7. قائمة مراجعة لتصور البيانات الفعال:

✓ هل المخطط يخدم الغرض منه بوضوح؟
✓ هل البيانات معروضة بدقة؟
✓ هل الاختيارات اللونية مناسبة؟
✓ هل التسميات والأرقام واضحة؟
✓ هل هناك عناصر تشويش يمكن إزالتها؟
✓ هل التصميم جذاب ومريح للعين؟
✓ هل الرسالة الرئيسية واضحة للجمهور؟
✓ هل المخطط سهل الفهم دون تفسير؟

8. مصادر للتعلم:
   - كتاب "Storytelling with Data" لـ Cole Nussbaumer Knaflic
   - موقع Tableau Public للملهمات
   - مجتمع Power BI على Microsoft Learn
   - كورسات Data Visualization على Coursera و Udemy

9. أدوات مفيدة:
   - ColorBrewer: لاختيار مخططات الألوان
   - Datawrapper: لإنشاء رسوم بيانية بسيطة
   - Flourish: لتصورات تفاعلية
   - RAWGraphs: لتصورات البيانات المفتوحة
*/
                        
5

الخطوة 5: تعلم تصميم لوحات التحكم

تصميم لوحات تحكم فعالة وسهلة الاستخدام لعرض البيانات واتخاذ القرارات

الأهمية:

ضروري لإنشاء لوحات تحكم تساعد الشركات في اتخاذ قرارات أفضل

الأدوات:

Tableau, Power BI, أطر عمل التصميم

مبادئ تصميم لوحات التحكم:

/*
مبادئ تصميم لوحات التحكم الفعالة

1. فهم المستخدمين واحتياجاتهم:
   - حدد الجمهور المستهدف
   - فهم أهدافهم وقراراتهم
   - معرفة السياق الذي يستخدمون فيه اللوحة
   - تحديد المؤشرات الرئيسية (KPIs) المهمة لهم

2. مبادئ التصميم الأساسية:

أ. البساطة (Simplicity):
   - ركز على المعلومات الأكثر أهمية
   - تجنب الفوضى البصرية
   - استخدم مساحة بيضاء بشكل فعال
   - قلل عدد العناصر على الشاشة

ب. الوضوح (Clarity):
   - استخدم عناوين واضحة
   - اختر أنواع الرسوم البيانية المناسبة
   - استخدم تسميات واضحة
   - أضح وسائل مساعدة للفهم

ج. الاتساق (Consistency):
   - استخدم ألوان متسقة عبر جميع اللوحات
   - حافظ على تصميم موحد
   - استخدم رموز وأيقونات متسقة
   - التزم بأسلوب تسمية موحد

د. الكفاءة (Efficiency):
   - صمم للوصول السريع للمعلومات
   - قلل عدد النقرات للوصول للبيانات
   - استخدم الاختصارات والفلاتر الذكية
   - أضح بحث سريع

3. هيكلة لوحة التحكم:

أ. التخطيط العام (Layout):
   - ضع المعلومات الأهم في أعلى يسار الصفحة
   - استخدم grid system للتنسيق
   - حافظ على التوازن البصري
   - استخدم المساحة البيضاء للفصل بين العناصر

ب. التسلسل الهرمي البصري (Visual Hierarchy):
   - استخدم حجم الخط للتأكيد على الأهمية
   - استخدم الألوان للتمييز
   - استخدم المسافات للتنظيم
   - استخدم العناوين والعناوين الفرعية

4. عناصر لوحة التحكم الأساسية:

أ. مؤشرات الأداء الرئيسية (KPIs):
   - أضح KPIs في مكان بارز
   - استخدم تصميماً بسيطاً وواضحاً
   - أضح مقارنة مع الأهداف
   - استخدم الألوان للإشارة للحالة

ب. الرسوم البيانية (Charts):
   - اختر نوع الرسم البياني المناسب
   - حافظ على تناسق الألوان
   - أضح تفاصيل عند الطلب (tooltips)
   - استخدم القياس المناسب للمحاور

ج. الجداول (Tables):
   - استخدم pagination للجداول الكبيرة
   - أضح sorting و filtering
   - استخدم تنسيق شرطي (conditional formatting)
   - أضح summaries في الأسفل

د. عناصر التحكم (Controls):
   - أضح filters للتصفية
   - استخدم date pickers للفترات الزمنية
   - أضح dropdowns للاختيارات
   - استخدم buttons للعمليات

5. تصميم تجربة المستخدم (UX):

أ. سهولة الاستخدام (Usability):
   - صمم لوحة بديهية
   - اختبر مع المستخدمين النهائيين
   - أضح تعليمات وتلميحات
   - صمم لأجهزة مختلفة (responsive)

ب. التفاعل (Interactivity):
   - أضح drill-down للتفاصيل
   - استخدم cross-filtering بين الرسوم
   - أضح hover effects
   - استخدم animations للانتقالات

ج. الأداء (Performance):
   - صمم للتحميل السريع
   - قلل عدد visuals المعقدة
   - استخدم data aggregation
   - اختبر مع كميات كبيرة من البيانات

6. مثال: تصميم لوحة تحكم للمبيعات

مستوى 1: لوحة الإدارة التنفيذية
   - KPIs: إجمالي المبيعات، الربحية، النمو
   - الرسوم: المبيعات الشهرية، المبيعات حسب المنطقة
   - الفلاتر: السنة، المنطقة، المنتج

مستوى 2: لوحة مدير المبيعات
   - KPIs: المبيعات لكل مندوب، متوسط قيمة البيع
   - الرسوم: أداء المندوبين، المبيعات حسب المنتج
   - التفاصيل: قائمة المعاملات، تحليل العميل

مستوى 3: لوحة مندوب المبيعات
   - KPIs: المبيعات الشخصية، نسبة تحقيق الهدف
   - الرسوم: المبيعات اليومية، قائمة العملاء
   - المهام: قائمة المتابعات، التقويم

7. أفضل الممارسات:

أ. التصميم المرئي:
   - استخدم palette ألوان محدودة
   - اختر خطوط واضحة وسهلة القراءة
   - استخدم icons بشكل متناسق
   - حافظ على contrast كافي

ب. تنظيم المعلومات:
   - جمّع المعلومات المتعلقة ببعضها
   - استخدم tabs للفصل بين المحتوى
   - أضح breadcrumb للتنقل
   - استخدم accordions للاختصار

ج. إمكانية الوصول (Accessibility):
   - صمم بعمى الألوان في الاعتبار
   - استخدم alt text للصور
   - تأكد من قابلية القراءة للجميع
   - اختبر مع أدوات accessibility

8. أدوات وموارد للتصميم:

أ. أدوات التصميم:
   - Figma / Sketch للتصميم الأولي
   - Adobe Color لاختيار الألوان
   - Font Awesome للأيقونات
   - Google Fonts للخطوط

ب. مكتبات التصميم:
   - Material Design (Google)
   - Fluent Design (Microsoft)
   - Carbon Design (IBM)
   - Ant Design

9. عملية تصميم لوحة التحكم:

الخطوة 1: البحث والتحليل
   - مقابلة المستخدمين
   - تحليل احتياجات العمل
   - دراسة البيانات المتاحة
   - تحديد KPIs

الخطوة 2: التصميم الأولي
   - إنشاء wireframes
   - تحديد التخطيط العام
   - اختيار أنواع الرسوم البيانية
   - تصميم نظام الألوان

الخطوة 3: التطوير والبناء
   - بناء نموذج البيانات
   - إنشاء التصورات البصرية
   - تطوير التفاعلات
   - ربط البيانات

الخطوة 4: الاختبار والتكرار
   - اختبار الوظائف
   - اختبار مع المستخدمين
   - جمع التغذية الراجعة
   - إجراء التحسينات

الخطوة 5: النشر والصيانة
   - نشر اللوحة
   - تدريب المستخدمين
   - المراقبة والتتبع
   - التحديثات الدورية

10. نصائح نهائية:
    - ابدأ دائماً بفهم احتياجات المستخدم
    - حافظ على البساطة دائماً
    - اختبر بشكل متكرر مع المستخدمين الحقيقيين
    - كن مستعداً للتكرار والتحسين
    - وثق القرارات التصميمية
    - تابع التطورات في مجال تصور البيانات
*/
                        

هندسة ذكاء الأعمال

طبقة البيانات

قواعد البيانات، استعلامات SQL، ETL Processes

طبقة المعالجة

Power Query، DAX، تحليل البيانات

طبقة العرض

Tableau، Power BI، لوحات التحكم

أدوات ذكاء الأعمال

SQL

لغة البرمجة لاستعلام وإدارة قواعد البيانات

استعلام تحليل إدارة

Tableau

أداة تصور البيانات لإنشاء تقارير تفاعلية

تصور تفاعل تقارير

Power BI

أداة Microsoft لتحليل وتصور البيانات

DAX تحليل تكامل

المزايا والتحديات

المزايا

  • طلب عالي: هناك طلب كبير على مطوري ذكاء الأعمال خاصة في الشركات التي تعتمد على البيانات لاتخاذ القرارات
  • أدوات مجانية: معظم الأدوات المستخدمة مثل Tableau Public و Power BI مجانية أو تقدم خطط مجانية
  • مجتمع كبير: Tableau و Power BI لديهما مجتمعات نشطة توفر الدعم والموارد
  • إبداع لا محدود: يمكنك إنشاء تقارير ولوحات تحكم تفاعلية تساعد الشركات في اتخاذ قرارات أفضل
  • تأثير مباشر: يمكنك رؤية تأثير عملك مباشرة على قرارات العمل

التحديات

  • منحنى التعلم الحاد: يتطلب فهماً جيداً لـ SQL وأساسيات تحليل البيانات
  • حجم البيانات: قد تواجه تحديات في التعامل مع مجموعات بيانات كبيرة
  • تحديثات متكررة: الأدوات والتقنيات تتطور باستمرار مما يتطلب تحديث المعرفة بشكل منتظم
  • تحديات التكامل: قد يكون تكامل البيانات من مصادر مختلفة صعباً

أنواع مشاريع ذكاء الأعمال

لوحات تحكم المبيعات

تتبع المبيعات، الربحية، وأداء المنتجات

مبيعات أرباح منتجات

تقارير الأداء التشغيلي

مراقبة KPIs، الكفاءة، والإنتاجية

KPIs كفاءة إنتاجية

تحليلات العملاء

تحليل سلوك العملاء والاحتفاظ بهم

عملاء سلوك تحليل

الخلاصة

ذكاء الأعمال أصبح حجر الأساس للشركات الناجحة في العصر الرقمي. من خلال إتقان SQL، Tableau، Power BI، وتقنيات تصور البيانات، يمكنك تحويل البيانات الخام إلى رؤى قابلة للتنفيذ تساعد في اتخاذ قرارات أفضل.

نصائح للبدء:

  • ابدأ بتعلم SQL جيداً فهو الأساس لجميع أدوات BI
  • تعلم Tableau و Power BI معاً لتوسيع مهاراتك
  • تمرن على مجموعات بيانات حقيقية من Kaggle أو مواقع مفتوحة
  • أنشئ محفظة أعمال (portfolio) بمشاريع حقيقية
  • تابع التطورات في مجال تحليل وتصور البيانات