You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Data-Science-For-Beginners/translations/ar/2-Working-With-Data/05-relational-databases
leestott 8029ff828a
🌐 Update translations via Co-op Translator
2 weeks ago
..
README.md 🌐 Update translations via Co-op Translator 2 weeks ago
assignment.md 🌐 Update translations via Co-op Translator 3 weeks ago

README.md

العمل مع البيانات: قواعد البيانات العلائقية

 رسم توضيحي بواسطة (@sketchthedocs)
العمل مع البيانات: قواعد البيانات العلائقية - رسم توضيحي بواسطة @nitya

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

اختبار ما قبل المحاضرة

كل شيء يبدأ بالجداول

تحتوي قاعدة البيانات العلائقية في جوهرها على جداول. تمامًا مثل جدول البيانات، الجدول هو مجموعة من الأعمدة والصفوف. يحتوي الصف على البيانات أو المعلومات التي نرغب في العمل معها، مثل اسم مدينة أو كمية الأمطار. تصف الأعمدة البيانات التي تخزنها.

لنبدأ استكشافنا بإنشاء جدول لتخزين معلومات حول المدن. قد نبدأ باسم المدينة والدولة. يمكنك تخزين ذلك في جدول كما يلي:

المدينة الدولة
طوكيو اليابان
أتلانتا الولايات المتحدة
أوكلاند نيوزيلندا

لاحظ أن أسماء الأعمدة المدينة، الدولة وعدد السكان تصف البيانات المخزنة، وكل صف يحتوي على معلومات عن مدينة واحدة.

عيوب نهج الجدول الواحد

من المحتمل أن يبدو الجدول أعلاه مألوفًا بالنسبة لك. دعونا نبدأ بإضافة بعض البيانات الإضافية إلى قاعدة البيانات الناشئة - كمية الأمطار السنوية (بالمليمترات). سنركز على السنوات 2018، 2019 و2020. إذا أردنا إضافتها لطوكيو، فقد يبدو الأمر كما يلي:

المدينة الدولة السنة الكمية
طوكيو اليابان 2020 1690
طوكيو اليابان 2019 1874
طوكيو اليابان 2018 1445

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

حسنًا، دعونا نجرب شيئًا آخر. لنضيف أعمدة جديدة لكل سنة:

المدينة الدولة 2018 2019 2020
طوكيو اليابان 1445 1874 1690
أتلانتا الولايات المتحدة 1779 1111 1683
أوكلاند نيوزيلندا 1386 942 1176

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

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

مفاهيم العلاقات

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

المدينة الدولة
طوكيو اليابان
أتلانتا الولايات المتحدة
أوكلاند نيوزيلندا

لكن قبل أن ننشئ الجدول التالي، نحتاج إلى معرفة كيفية الإشارة إلى كل مدينة. نحتاج إلى نوع من المعرف، ID أو (في مصطلحات قواعد البيانات التقنية) مفتاح أساسي. المفتاح الأساسي هو قيمة تُستخدم لتحديد صف معين في الجدول. بينما يمكن أن يكون ذلك بناءً على قيمة نفسها (يمكننا استخدام اسم المدينة، على سبيل المثال)، يجب أن يكون دائمًا تقريبًا رقمًا أو معرفًا آخر. لا نريد أن يتغير المعرف أبدًا لأنه سيؤدي إلى كسر العلاقة. ستجد في معظم الحالات أن المفتاح الأساسي أو المعرف سيكون رقمًا يتم إنشاؤه تلقائيًا.

المفتاح الأساسي يُختصر غالبًا بـ PK

المدن

city_id المدينة الدولة
1 طوكيو اليابان
2 أتلانتا الولايات المتحدة
3 أوكلاند نيوزيلندا

ستلاحظ أننا نستخدم المصطلحين "المعرف" و"المفتاح الأساسي" بالتبادل خلال هذا الدرس. تنطبق المفاهيم هنا على DataFrames، والتي ستستكشفها لاحقًا. لا تستخدم DataFrames مصطلح "المفتاح الأساسي"، ولكن ستلاحظ أنها تتصرف بنفس الطريقة تقريبًا.

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

الأمطار

rainfall_id city_id السنة الكمية
1 1 2018 1445
2 1 2019 1874
3 1 2020 1690
4 2 2018 1779
5 2 2019 1111
6 2 2020 1683
7 3 2018 1386
8 3 2019 942
9 3 2020 1176

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

[!NOTE] المفتاح الخارجي يُختصر غالبًا بـ FK

استرجاع البيانات

مع فصل بياناتنا إلى جدولين، قد تتساءل كيف نسترجعها. إذا كنا نستخدم قاعدة بيانات علائقية مثل MySQL، SQL Server أو Oracle، يمكننا استخدام لغة تُسمى لغة الاستعلام الهيكلية أو SQL. SQL (تُنطق أحيانًا "سيكويل") هي لغة قياسية تُستخدم لاسترجاع وتعديل البيانات في قاعدة بيانات علائقية.

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

SELECT city
FROM cities;

-- Output:
-- Tokyo
-- Atlanta
-- Auckland

SELECT هو المكان الذي تسرد فيه الأعمدة، وFROM هو المكان الذي تسرد فيه الجداول.

[NOTE] بناء جملة SQL غير حساس لحالة الأحرف، مما يعني أن select وSELECT لهما نفس المعنى. ومع ذلك، اعتمادًا على نوع قاعدة البيانات التي تستخدمها، قد تكون الأعمدة والجداول حساسة لحالة الأحرف. نتيجة لذلك، من الأفضل دائمًا التعامل مع كل شيء في البرمجة كما لو كان حساسًا لحالة الأحرف. عند كتابة استعلامات SQL، من الشائع وضع الكلمات الرئيسية بأحرف كبيرة.

سيعرض الاستعلام أعلاه جميع المدن. دعونا نتخيل أننا نريد عرض المدن في نيوزيلندا فقط. نحتاج إلى نوع من الفلتر. الكلمة الرئيسية في SQL لهذا هي WHERE، أو "حيث يكون شيء ما صحيحًا".

SELECT city
FROM cities
WHERE country = 'New Zealand';

-- Output:
-- Auckland

دمج البيانات

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

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

دعونا نسترجع بيانات الأمطار لعام 2019 لجميع المدن.

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

SELECT cities.city
    rainfall.amount
FROM cities
    INNER JOIN rainfall ON cities.city_id = rainfall.city_id

لقد أبرزنا العمودين اللذين نريدهما، وحقيقة أننا نريد دمج الجداول معًا باستخدام city_id. الآن يمكننا إضافة عبارة WHERE لتصفية السنة 2019 فقط.

SELECT cities.city
    rainfall.amount
FROM cities
    INNER JOIN rainfall ON cities.city_id = rainfall.city_id
WHERE rainfall.year = 2019

-- Output

-- city     | amount
-- -------- | ------
-- Tokyo    | 1874
-- Atlanta  | 1111
-- Auckland |  942

الملخص

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

🚀 التحدي

هناك العديد من قواعد البيانات العلائقية المتاحة على الإنترنت. يمكنك استكشاف البيانات باستخدام المهارات التي تعلمتها أعلاه.

اختبار ما بعد المحاضرة

اختبار ما بعد المحاضرة

المراجعة والدراسة الذاتية

هناك العديد من الموارد المتاحة على Microsoft Learn لتستمر في استكشافك لمفاهيم SQL وقواعد البيانات العلائقية

الواجب

عنوان الواجب


إخلاء المسؤولية:
تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية Co-op Translator. بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة.