SQL لعلوم البيانات: فهم الصلات والاستفادة منها - KDnuggets

SQL لعلوم البيانات: فهم الروابط والاستفادة منها - KDnuggets

عقدة المصدر: 2805506

SQL لعلوم البيانات: فهم الصلات والاستفادة منها
صورة المؤلف
 

علم البيانات هو مجال متعدد التخصصات يعتمد بشكل كبير على استخلاص الأفكار واتخاذ قرارات مستنيرة من كميات هائلة من البيانات. إحدى الأدوات الأساسية في مجموعة أدوات عالم البيانات هي SQL (لغة الاستعلام الهيكلية)، وهي لغة برمجة مصممة لإدارة قواعد البيانات العلائقية ومعالجتها.

في هذه المقالة، سأركز على واحدة من أقوى ميزات SQL: الانضمام.

تسمح لك SQL Joins بدمج البيانات من جداول قاعدة بيانات متعددة بناءً على أعمدة مشتركة. وبهذه الطريقة، يمكنك دمج المعلومات معًا وإنشاء اتصالات مفيدة بين مجموعات البيانات ذات الصلة.

هناك العديد من أنواع صلات SQL:

  • صلة داخلية
  • ترك صلة خارجية
  • الصلة الخارجية اليمنى
  • صلة خارجية كاملة
  • تقاطع الانضمام

دعونا شرح كل نوع.

تقوم الصلة الداخلية بإرجاع الصفوف التي يوجد بها تطابق في كلا الجدولين المتصلين فقط. فهو يجمع صفوفًا من جدولين بناءً على مفتاح أو عمود مشترك، مع تجاهل الصفوف غير المتطابقة.

نحن نتصور هذا بالطريقة التالية.
 

SQL لعلوم البيانات: فهم الصلات والاستفادة منها
صورة المؤلف
 

في SQL، يتم تنفيذ هذا النوع من الارتباط باستخدام الكلمات الأساسية JOIN أو INNER JOIN.

تقوم الصلة الخارجية اليسرى بإرجاع كافة الصفوف من الجدول الأيسر (أو الأول) والصفوف المتطابقة من الجدول الأيمن (أو الثاني). إذا لم يكن هناك تطابق، فسيتم إرجاع قيم NULL للأعمدة من الجدول الأيمن.

يمكننا تصور الأمر هكذا.

 

SQL لعلوم البيانات: فهم الصلات والاستفادة منها
صورة المؤلف
 

عند الرغبة في استخدام هذه الصلة في SQL، يمكنك القيام بذلك باستخدام الكلمات الأساسية LEFT OUTER JOIN أو LEFT JOIN. إليك مقال يتحدث عنه الانضمام الأيسر مقابل الانضمام الخارجي الأيسر.

الصلة اليمنى هي عكس الصلة اليسرى. تقوم بإرجاع كافة الصفوف من الجدول الأيمن والصفوف المتطابقة من الجدول الأيسر. إذا لم يكن هناك تطابق، فسيتم إرجاع قيم NULL للأعمدة من الجدول الأيسر.

 

SQL لعلوم البيانات: فهم الصلات والاستفادة منها
صورة المؤلف
 

في SQL، يتم تنفيذ نوع الصلة هذا باستخدام الكلمات الأساسية RIGHT OUTER JOIN أو RIGHT JOIN.

تقوم الصلة الخارجية الكاملة بإرجاع كافة الصفوف من كلا الجدولين، ومطابقة الصفوف حيثما أمكن، وملء القيم الخالية للصفوف غير المتطابقة.

 

SQL لعلوم البيانات: فهم الصلات والاستفادة منها
صورة المؤلف
 

الكلمات الأساسية في SQL لهذا الارتباط هي FULL OUTER JOIN أو FULL JOIN.

يجمع هذا النوع من الصلة كافة الصفوف من جدول واحد مع كافة الصفوف من الجدول الثاني. بمعنى آخر، تقوم بإرجاع المنتج الديكارتي، أي جميع المجموعات الممكنة لصفي الجدولين.

إليك التصور الذي سيجعل من السهل فهمه.

 

SQL لعلوم البيانات: فهم الصلات والاستفادة منها
صورة المؤلف
 

عند الانضمام المتبادل في SQL، تكون الكلمة الأساسية هي CROSS JOIN.

لإجراء صلة في SQL، تحتاج إلى تحديد الجداول التي نريد ربطها، والأعمدة المستخدمة للمطابقة، ونوع الصلة التي نريد تنفيذها. بناء الجملة الأساسي لربط الجداول في SQL هو كما يلي:

SELECT columns
FROM table1
JOIN table2
ON table1.column = table2.column;

 

يوضح هذا المثال كيفية استخدام JOIN.

يمكنك الرجوع إلى الجدول الأول (أو الأيسر) في عبارة FROM. ثم تتبعه بـ JOIN وتشير إلى الجدول الثاني (أو الأيمن).

ثم يأتي شرط الانضمام في جملة ON. هذا هو المكان الذي تحدد فيه الأعمدة التي ستستخدمها لربط الجدولين. عادةً ما يكون عمودًا مشتركًا يمثل مفتاحًا أساسيًا في أحد الجداول والمفتاح الخارجي في الجدول الثاني.

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

إذا كنت تريد استخدام LEFT JOIN، أو RIGHT JOIN، أو FULL JOIN، فما عليك سوى استخدام هذه الكلمات الأساسية بدلاً من JOIN - كل شيء آخر في الكود هو نفسه تمامًا!

الأمور مختلفة قليلاً مع CROSS JOIN. بطبيعته يتم ضم جميع مجموعات الصفوف من كلا الجدولين. لهذا السبب ليست هناك حاجة إلى جملة ON، ويبدو بناء الجملة هكذا.

SELECT columns
FROM table1
CROSS JOIN table2;

 

بمعنى آخر، يمكنك ببساطة الإشارة إلى جدول واحد في FROM والثاني في CROSS JOIN.

وبدلاً من ذلك، يمكنك الإشارة إلى كلا الجدولين في FROM والفصل بينهما بفاصلة - وهذا اختصار لـ CROSS JOIN.

SELECT columns
FROM table1, table2;

هناك أيضًا طريقة واحدة محددة لربط الجداول، وهي ربط الجدول بنفسه. وهذا ما يسمى أيضًا الانضمام الذاتي إلى الجدول.

إنه ليس نوعًا مميزًا من الصلة، حيث يمكن أيضًا استخدام أي من أنواع الصلة المذكورة مسبقًا للانضمام الذاتي.

إن بناء جملة الانضمام الذاتي مشابه لما أظهرته لك سابقًا. والفرق الرئيسي هو أن نفس الجدول هو المشار إليه في FROM وJOIN.

SELECT columns
FROM table1 t1
JOIN table1 t2
ON t1.column = t2.column;

 

تحتاج أيضًا إلى إعطاء الجدول اسمين مستعارين للتمييز بينهما. ما تفعله هو ضم الجدول مع نفسه والتعامل معه كجدولين.

أردت فقط أن أذكر هذا هنا، لكنني لن أخوض في مزيد من التفاصيل. إذا كنت مهتمًا بالانضمام الذاتي، فيرجى الاطلاع على هذا الدليل المصور الانضمام الذاتي في SQL.

لقد حان الوقت لأوضح لك كيف يعمل كل ما ذكرته عمليًا. سأستخدم أسئلة مقابلة SQL JOIN من StrataScratch لعرض كل نوع مميز من الارتباطات في SQL.

1. مثال الانضمام

هذا السؤال من مايكروسوفت يريد منك إدراج كل مشروع وحساب ميزانية المشروع من قبل الموظف.

مشاريع باهظة الثمن

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

البيانات

السؤال يعطي جدولين.

ms_projects

الرقم: مادبا
العنوان: VARCHAR
الدخل: مادبا

ms_emp_projects

emp_id: مادبا
معرف المشروع: مادبا

الآن، معرف العمود في الجدول ms_projects هو المفتاح الأساسي للجدول. يمكن العثور على نفس العمود في الجدول ms_emp_projects، وإن كان باسم مختلف: project_id. هذا هو المفتاح الخارجي للجدول، حيث يشير إلى الجدول الأول.

سأستخدم هذين العمودين لربط الجداول في الحل الخاص بي.

رمز

SELECT title AS project, ROUND((budget/COUNT(emp_id)::FLOAT)::NUMERIC, 0) AS budget_emp_ratio
FROM ms_projects a
JOIN ms_emp_projects b ON a.id = b.project_id
GROUP BY title, budget
ORDER BY budget_emp_ratio DESC;

 

لقد انضممت إلى الجدولين باستخدام JOIN. الطاولة ms_projects تمت الإشارة إليه في FROM، بينما ms_emp_projects تتم الإشارة إليه بعد JOIN. لقد أعطيت كلا الجدولين اسمًا مستعارًا، مما يسمح لي بعدم استخدام الأسماء الطويلة للجدول لاحقًا.

الآن، أحتاج إلى تحديد الأعمدة التي أريد الانضمام إلى الجداول فيها. لقد ذكرت بالفعل أي الأعمدة هي المفتاح الأساسي في جدول واحد والمفتاح الخارجي في جدول آخر، لذلك سأستخدمهما هنا.

أقوم بمساواة هذين العمودين لأنني أريد الحصول على جميع البيانات التي يكون فيها معرف المشروع هو نفسه. لقد استخدمت أيضًا الأسماء المستعارة للجداول أمام كل عمود.

الآن بعد أن أصبح لدي إمكانية الوصول إلى البيانات في كلا الجدولين، يمكنني إدراج الأعمدة في SELECT. العمود الأول هو اسم المشروع، والعمود الثاني هو الحساب.

تستخدم هذه العملية الحسابية الدالة COUNT() لحساب عدد الموظفين لكل مشروع. ثم أقوم بتقسيم ميزانية كل مشروع على عدد الموظفين. أقوم أيضًا بتحويل النتيجة إلى قيم عشرية وتقريبها إلى منازل عشرية صفرية.

الناتج

إليك ما يعود به الاستعلام.

 

SQL لعلوم البيانات: فهم الصلات والاستفادة منها

2. مثال على الانضمام الأيسر

دعونا نتدرب على هذا الانضمام على سؤال مقابلة Airbnb. يريد منك العثور على عدد الطلبات وعدد العملاء والتكلفة الإجمالية للطلبات لكل مدينة.

طلبات العملاء والتفاصيل

"ابحث عن عدد الطلبات وعدد العملاء والتكلفة الإجمالية للطلبات لكل مدينة. قم بتضمين فقط المدن التي قدمت 5 طلبات على الأقل واحتساب جميع العملاء في كل مدينة حتى لو لم يقدموا طلبًا.

قم بإخراج كل عملية حسابية مع اسم المدينة المقابل.

البيانات

لقد أعطيت الجداول الزبائن، و الطلبات.

الزبائن

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

الطلبات

الرقم: مادبا
معرف_العميل: مادبا
تاريخ الطلب: التاريخ والوقت
تفاصيل الطلب: VARCHAR
Total_order_cost: مادبا

يتم تعريف الأعمدة المشتركة من الجدول الزبائن وcust_id من الجدول الطلبات. سأستخدم هذه الأعمدة للانضمام إلى الجداول.

رمز

إليك كيفية حل هذا السؤال باستخدام LEFT JOIN.

SELECT c.city, COUNT(DISTINCT o.id) AS orders_per_city, COUNT(DISTINCT c.id) AS customers_per_city, SUM(o.total_order_cost) AS orders_cost_per_city
FROM customers c
LEFT JOIN orders o ON c.id = o.cust_id
GROUP BY c.city
HAVING COUNT(o.id) >=5;

 

أشير إلى الجدول الزبائن في FROM (هذا هو الجدول الأيسر لدينا) ثم انضم إليه على اليسار الطلبات في أعمدة معرف العميل.

يمكنني الآن تحديد المدينة، واستخدام COUNT() للحصول على عدد الطلبات والعملاء حسب المدينة، واستخدام SUM() لحساب إجمالي تكلفة الطلبات حسب المدينة.

للحصول على كل هذه الحسابات حسب المدينة، أقوم بتجميع الناتج حسب المدينة.

هناك طلب إضافي واحد في السؤال: "تضمين فقط المدن التي قدمت 5 طلبات على الأقل..." أستخدم HAVING لإظهار المدن التي لديها خمسة طلبات أو أكثر فقط لتحقيق ذلك.

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

لو استخدمت JOIN، لكانت النتيجة خاطئة، لأنني كنت سأفتقد العملاء الذين لم يقدموا أي طلبات.

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

الناتج

الآن، دعونا نلقي نظرة على الناتج.

 

SQL لعلوم البيانات: فهم الصلات والاستفادة منها

3. مثال الانضمام الصحيح

إن RIGHT JOIN هي صورة معكوسة لـ LEFT JOIN. ولهذا السبب تمكنت من حل المشكلة السابقة بسهولة باستخدام RIGHT JOIN. اسمحوا لي أن أظهر لك كيفية القيام بذلك.

البيانات

تبقى الجداول كما هي. سأستخدم فقط نوعًا مختلفًا من الانضمام.

رمز

SELECT c.city, COUNT(DISTINCT o.id) AS orders_per_city, COUNT(DISTINCT c.id) AS customers_per_city, SUM(o.total_order_cost) AS orders_cost_per_city
FROM orders o
RIGHT JOIN customers c ON o.cust_id = c.id GROUP BY c.city
HAVING COUNT(o.id) >=5;

 

إليك ما تغير. نظرًا لأنني أستخدم RIGHT JOIN، فقد قمت بتبديل ترتيب الجداول. الآن الجدول الطلبات يصبح اليسار، والجدول الزبائن الشي الصحيح. شرط الانضمام يبقى كما هو لقد قمت للتو بتبديل ترتيب الأعمدة ليعكس ترتيب الجداول، ولكن ليس من الضروري القيام بذلك.

من خلال تبديل ترتيب الجداول واستخدام RIGHT JOIN، سأقوم مرة أخرى بإخراج جميع العملاء، حتى لو لم يقدموا أي طلبات.

بقية الاستعلام هو نفسه كما في المثال السابق. الشيء نفسه ينطبق على الإخراج.

ملاحظة: في الممارسة العملية، الانضمام الصحيح نادرا ما يستخدم نسبيا. تبدو LEFT JOIN أكثر طبيعية لمستخدمي SQL، لذلك يستخدمونها كثيرًا. أي شيء يمكن القيام به باستخدام RIGHT JOIN يمكن القيام به أيضًا باستخدام LEFT JOIN. ولهذا السبب، لا يوجد موقف محدد قد يكون من الأفضل فيه الانضمام إلى RIGHT JOIN.

الناتج

 

SQL لعلوم البيانات: فهم الصلات والاستفادة منها

4. مثال الانضمام الكامل

السؤال من Salesforce وTesla يريد منك أن تحسب صافي الفرق بين عدد شركات المنتجات التي تم إطلاقها في عام 2020 مع عدد شركات المنتجات التي تم إطلاقها في العام السابق.

منتجات جديدة

"يتم إعطاؤك جدولاً لإطلاق المنتجات حسب الشركة حسب السنة. اكتب استعلامًا لحساب صافي الفرق بين عدد شركات المنتجات التي تم إطلاقها في عام 2020 مع عدد شركات المنتجات التي تم إطلاقها في العام السابق. إخراج اسم الشركات وصافي فرق صافي المنتجات الصادرة لعام 2020 مقارنة بالعام السابق.

البيانات

يوفر السؤال جدولًا واحدًا يحتوي على الأعمدة التالية.

car_launches

السنة: مادبا
اسم الشركة: VARCHAR
اسم المنتج: VARCHAR

كيف بحق الجحيم سأقوم بضم الطاولات عندما يكون هناك طاولة واحدة فقط؟ حسنًا، دعونا نرى ذلك أيضًا!

رمز

هذا الاستعلام أكثر تعقيدًا بعض الشيء، لذا سأكشف عنه تدريجيًا.

SELECT company_name, product_name AS brand_2020
FROM car_launches
WHERE YEAR = 2020;

 

تعثر عبارة SELECT الأولى على اسم الشركة والمنتج في عام 2020. وسيتم تحويل هذا الاستعلام لاحقًا إلى استعلام فرعي.

يطلب منك السؤال إيجاد الفرق بين 2020 و2019. فلنكتب نفس الاستعلام ولكن لعام 2019.

SELECT company_name, product_name AS brand_2019
FROM car_launches
WHERE YEAR = 2019;

 

سأقوم الآن بتحويل هذه الاستعلامات إلى استعلامات فرعية والانضمام إليها باستخدام FULL OUTER JOIN.

SELECT *
FROM (SELECT company_name, product_name AS brand_2020 FROM car_launches WHERE YEAR = 2020) a
FULL OUTER JOIN (SELECT company_name, product_name AS brand_2019 FROM car_launches WHERE YEAR = 2019) b ON a.company_name = b.company_name;

 

يمكن التعامل مع الاستعلامات الفرعية كجداول، وبالتالي يمكن ضمها. لقد أعطيت الاستعلام الفرعي الأول اسمًا مستعارًا، ووضعته في جملة FROM. ثم أستخدم FULL OUTER JOIN لربطه بالاستعلام الفرعي الثاني في عمود اسم الشركة.

باستخدام هذا النوع من انضمام SQL، سأقوم بدمج جميع الشركات والمنتجات في عام 2020 مع جميع الشركات والمنتجات في عام 2019.

 

SQL لعلوم البيانات: فهم الصلات والاستفادة منها
 

الآن يمكنني إنهاء استفساري. دعونا نختار اسم الشركة. سأستخدم أيضًا الدالة COUNT()‎ للعثور على عدد المنتجات التي يتم إطلاقها في كل عام ثم طرحها للحصول على الفرق. أخيرًا، سأقوم بتجميع المخرجات حسب الشركة وفرزها أيضًا حسب الشركة أبجديًا.

هذا هو الاستعلام كله.

SELECT a.company_name, (COUNT(DISTINCT a.brand_2020)-COUNT(DISTINCT b.brand_2019)) AS net_products
FROM (SELECT company_name, product_name AS brand_2020 FROM car_launches WHERE YEAR = 2020) a
FULL OUTER JOIN (SELECT company_name, product_name AS brand_2019 FROM car_launches WHERE YEAR = 2019) b ON a.company_name = b.company_name
GROUP BY a.company_name
ORDER BY company_name;

الناتج

فيما يلي قائمة الشركات وفرق المنتجات التي تم إطلاقها بين عامي 2020 و 2019.

 

SQL لعلوم البيانات: فهم الصلات والاستفادة منها

5. مثال على الانضمام المتقاطع

هذا السؤال من ديلويت يعد أمرًا رائعًا لإظهار كيفية عمل CROSS JOIN.

الحد الأقصى لعددين

"بالنظر إلى عمود واحد من الأرقام، فكر في جميع التباديل الممكنة لعددين على افتراض أن أزواج الأرقام (x،y) و (y،x) هما تبديلان مختلفان. ثم، لكل تبديل، أوجد الحد الأقصى للرقمين.

"أخرج ثلاثة أعمدة: الرقم الأول، والرقم الثاني، والحد الأقصى للاثنين."

يطلب منك السؤال العثور على جميع التباديل الممكنة لعددين بافتراض أن أزواج الأرقام (x,y) و(y,x) هما تبديلان مختلفان. بعد ذلك، علينا إيجاد الحد الأقصى للأرقام لكل تبديل.

البيانات

يعطينا السؤال جدولًا واحدًا به عمود واحد.

deloitte_numbers

عدد: مادبا

رمز

هذا الرمز هو مثال على CROSS JOIN، ولكنه أيضًا مثال على الانضمام الذاتي.

SELECT dn1.number AS number1, dn2.number AS number2, CASE WHEN dn1.number > dn2.number THEN dn1.number ELSE dn2.number END AS max_number
FROM deloitte_numbers AS dn1
CROSS JOIN deloitte_numbers AS dn2;

 

أشير إلى الجدول الموجود في FROM وأعطيه اسمًا مستعارًا واحدًا. ثم أقوم بـ CROSS JOIN مع نفسه من خلال الرجوع إليه بعد CROSS JOIN وإعطاء الجدول اسمًا مستعارًا آخر.

أصبح من الممكن الآن استخدام جدول واحد كما لو كانا جدولين. أقوم باختيار رقم العمود من كل جدول. ثم أستخدم عبارة CASE لتعيين شرط يظهر الحد الأقصى لعدد الرقمين.

لماذا يتم استخدام CROSS JOIN هنا؟ تذكر أنه نوع من صلة SQL الذي سيُظهر جميع مجموعات جميع الصفوف من جميع الجداول. هذا بالضبط ما يطرحه السؤال!

الناتج

إليك لقطة لجميع المجموعات والعدد الأكبر من الاثنين.

 

SQL لعلوم البيانات: فهم الصلات والاستفادة منها

الآن بعد أن عرفت كيفية استخدام روابط SQL، فإن السؤال هو كيفية الاستفادة من هذه المعرفة في علم البيانات.

تلعب عمليات انضمام SQL دورًا حاسمًا في مهام علوم البيانات مثل استكشاف البيانات وتنظيف البيانات وهندسة الميزات.

فيما يلي بعض الأمثلة حول كيفية الاستفادة من عمليات انضمام SQL:

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

كما ذكرت سابقًا، لا يظهر تعقيد الصلات في تركيبها. لقد رأيت أن بناء الجملة واضح ومباشر نسبيًا.

تعكس أفضل ممارسات الصلات ذلك أيضًا، لأنها لا تهتم بالترميز نفسه ولكن بما تفعله الصلات وكيفية أدائها.

لتحقيق أقصى استفادة من الصلات في SQL، خذ في الاعتبار أفضل الممارسات التالية.

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

تعد عمليات انضمام SQL مفهومًا أساسيًا يمكّنك كعالم بيانات من دمج البيانات من مصادر متعددة وتحليلها. من خلال فهم الأنواع المختلفة لروابط SQL، وإتقان تركيبها، والاستفادة منها بشكل فعال، يمكن لعلماء البيانات فتح رؤى قيمة، والتحقق من جودة البيانات، ودفع عملية صنع القرار المستندة إلى البيانات.

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

الطابع الزمني:

اكثر من KD nuggets