JavaRush /مدونة جافا /Random-AR /نقوم بتحليل قواعد البيانات ولغة SQL - "مشروع جافا من الأل...
Roman Beekeeper
مستوى

نقوم بتحليل قواعد البيانات ولغة SQL - "مشروع جافا من الألف إلى الياء"

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

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

"مشروع جافا من الألف إلى الياء": تحليل قواعد البيانات ولغة SQL - 2قاعدة البيانات (المشار إليها فيما بعد بـ DB) هي مكان يتم فيه تخزين البيانات المنظمة ، والتي يمكن الحصول عليها باستخدام لغة الاستعلام. لا يمكن لقواعد البيانات تخزين المعلومات فحسب، بل يمكنها أيضًا معالجتها وتغييرها بكميات كبيرة. كملاحظة: حاول تغيير مجموعة القيم في Excel بسرعة بناءً على بعض المعايير. من حيث المبدأ، لا شيء معقد. ليس كما هو الحال في عالمنا الحقيقي غير الرقمي. على سبيل المثال، إعادة تسمية الممرات والشوارع والمدن. إذا كان كل شيء افتراضيًا وتم إدخاله في قاعدة البيانات، فسيتم تطبيعه، وسيكون ذلك بمثابة تفاهات. كما هو الحال، تعاني العديد من وسائط التخزين من عدم القدرة على التغيير تلقائيًا. في هذا السياق، SQL لقواعد البيانات هي لغة تفهمها قاعدة البيانات وتستجيب وفقًا لذلك. لنفترض أن إعادة تسمية المدينة لن تكون صعبة؛ وإعادة تسمية دنيبروبتروفسك إلى دنيبرو ستبدو كما يلي:
UPDATE city SET name = “Днипро” WHERE id = 1231;
جميع الطلبات اللاحقة للنظام ستنتج بالفعل الاسم الذي نحتاجه.

لماذا هناك حاجة لقواعد البيانات؟

كما قلت من قبل، باستخدام قواعد البيانات يمكنك تخزين البيانات. ولكن ما هي هذه البيانات؟ لفهم استخدام مثال واقعي، يمكننا التحدث عن بعض التطبيقات. على سبيل المثال، حول نفس بوت برقية. نريد أن نعرف عدد الأشخاص الذين يستخدمون الروبوت. كيف يمكن تنفيذ ذلك؟ في تطبيق Java العادي، يمكنك إنشاء العديد من العناصر الفريدة - مجموعة، والتي ستقوم بتخزين لقب المستخدم أو معرف الدردشة. هل سيعمل هذا؟ سوف. بالضبط حتى يتم إيقاف تطبيق Java، وبمجرد تشغيله مرة أخرى، ستكون مجموعة العناصر الفريدة فارغة. أي أن البيانات التي تم تخزينها في التطبيق قيد التشغيل اختفت ببساطة. ماذا يمكنك أن تفعل بهذا الشأن؟ يمكنك نقل تخزين حالة النظام (البيانات) من تطبيق Java إلى مكان آخر. يمكنك تخزين هذا بتنسيق CSV في ملف عادي على جهاز الكمبيوتر الخاص بك. يمكنك القيام بذلك في سطر واحد في ملف منفصل. يمكنك القيام بذلك ثم الكتابة فوق هذه البيانات قبل أن يتوقف تطبيق Java. على الرغم من أن ضمان نجاح التسجيل بعيد عن 100٪، لأنه يمكنك ببساطة سحب سلك الطاقة الخاص بالخادم ولن يحدث التسجيل. هذا الأسلوب له عيب كبير: لا توجد وظيفة للحصول على المعلومات وتجميعها والبحث عنها على مستوى الملف. نعم، بالطبع، يمكنك قراءة ملف وإنشاء كائنات له، ولكن سيتعين عليك ضخ جميع البيانات إلى التطبيق في كل مرة. ويمكن أن يكون هناك الكثير منهم، على سبيل المثال، بضعة غيغابايت. ويمكن تجنب ذلك عن طريق تخزين البيانات في قاعدة البيانات. كيف؟ من خلال الجداول والعلاقات بينهما. وهذا ما تعتمد عليه جميع قواعد البيانات العلائقية.

SQL: لغة تفهمها قواعد البيانات

هناك أنظمة إدارة قواعد البيانات (المشار إليها فيما يلي باسم DBMS) واللغة التي يفهمونها هي SQL. SQL هي لغة برمجة لمعالجة قواعد البيانات وإدارتها. لفهم كيفية عمل ذلك، دعونا نلقي نظرة على الشكل: "مشروع جافا من الألف إلى الياء": تحليل قواعد البيانات ولغة SQL - 3يرسل المستخدم استعلامات SQL إلى نظام إدارة قواعد البيانات (DBMS)، ويفهم نظام إدارة قواعد البيانات (DBMS) ما يجب القيام به، ويفعله، وإذا كان الطلب هو الحصول على البيانات، فإنه يعيدها. لذلك، كمطورين، نحتاج إلى إتقان لغة الاستعلام SQL. قد تفكر، "أوه، لغة أخرى. وبعون الله، أنا بالكاد أفهم لغة جافا هنا، وأنت تقدم لي على الفور لغة أخرى. هذا غير صحيح: لقد تم اختراع SQL كلغة مواصفات لنظام إدارة قواعد البيانات (DBMS) حتى يتمكن المحاسبون البعيدون جدًا عن قواعد البيانات والبرمجة بشكل عام من الكتابة بهذه اللغة. هذا يعني أن تعلمها لن يكون بهذه الصعوبة. الشيء الرئيسي هو الممارسة-الممارسة-الممارسة. اليوم سيكون هناك نظرية، ولكن المقالة القادمة ستكون عن الممارسة. نظرًا لأن قاعدة البيانات العلائقية عبارة عن مجموعة من جداول المصفوفات ثنائية الأبعاد والعلاقات بينها، فإن العمل سيعمل حولها. إذا تحدثنا عن مثال، يمكننا إظهار جدولين - "البلدان" و"المدن" وكيفية ارتباطهما. "مشروع جافا من الألف إلى الياء": تحليل قواعد البيانات ولغة SQL - 4في هذه المرحلة، من المهم بالنسبة لنا أن نفهم أن السجلات الموجودة في الجدول هي بيانات حول كائن ما من عالم Java. على سبيل المثال، يمكن وصف هذين الجدولين في Java على النحو التالي:
public class Country {
   private Long id;
   private String name;
}

public class City {

   private Long id;
   private String name;
   private Country country;
   private Integer population;
}
حسنًا، أليست جميلة، هاه؟ يمكن لقاعدة البيانات تخزين أي عدد من الجداول. في حالتنا هناك اثنان منهم.

هيكل الجدول

أعتقد أن الجميع قد صادفوا جداول Excel بطريقة أو بأخرى، وأنت تفهم مصطلحي الصف والعمود . في سياق قواعد البيانات، نتحدث أكثر عن السجلات والحقول: وهكذا يتبين أن كل كائن من فئة المدينة هو سجل في جدول في قاعدة البيانات."مشروع جافا من الألف إلى الياء": تحليل قواعد البيانات ولغة SQL - 5

المفتاح الأساسي

"مشروع جافا من الألف إلى الياء": تحليل قواعد البيانات ولغة SQL - 6غالبًا ما يحدث أن الحقول الموجودة في قواعد البيانات لها نفس القيم. على سبيل المثال، الشبكات الاجتماعية، حيث يمكن العثور على أكثر من شخص بالاسم واللقب وحتى اسم العائلة. وتتطلب قواعد البيانات العلائقية حقلاً فريدًا يمكن استخدامه للوصول إلى السجل. وهذا ما يسمى بالمفتاح الأول أو المفتاح الأساسي. عادةً، يتم استخدام حقل المعرف (المعرف) كمفتاح - وهذا اختصار للمعرف. ولهذا السبب تحتاج إلى إضافة حقل معرف إلى كل جدول ."مشروع جافا من الألف إلى الياء": تحليل قواعد البيانات ولغة SQL - 7

مفتاح خارجي

في مثالنا، يوجد هذا الحقل في جدول المدينة، والذي يستخدم المفتاح من البلد. ويتم الأمر على النحو التالي: تعرف كل مدينة معرف معلومات فريدًا لبلدها، وإذا أخذناه وأنشأنا استعلامًا في قاعدة البيانات، فسنتلقى معلومات شاملة عن البلد. كما ترون في الصورة، هناك علاقة بين جدولين: "مشروع جافا من الألف إلى الياء": تحليل قواعد البيانات ولغة SQL - 8يظهر هنا مبدأ المفتاح الخارجي.

ما هي الأقسام الموجودة في SQL؟

بالمناسبة، خلال المقابلات غالبا ما يتم سؤالهم عن العمليات الموجودة في SQL:
  • DDL (لغة تعريف البيانات) هي مجموعة من العوامل التي تقوم بتغيير/إنشاء الجداول وبنيتها والمزيد. أي إنشاء جدول، وحذفه، وإنشاء/حذف الحقول في الجداول؛ وإنشاء مفتاح أساسي جديد وما إلى ذلك؛
  • DML (لغة معالجة البيانات) هي مجموعة من المشغلين الذين يديرون تعديل البيانات. هذه كلها عمليات تغير البيانات في قاعدة البيانات: الإضافة والحصول والتغيير والحذف؛
  • تعد DCL (لغة التحكم في البيانات) وسيلة لتأكيد حقوق المستخدم في تنفيذ الإجراءات. عمليات لتوفير الوصول والحقوق لمستخدم معين حتى يتمكن من تنفيذ عمليات DDL/DML.

ما هي أنواع البيانات الموجودة في SQL

يمكن للجداول تخزين ومعالجة أنواع معينة من البيانات. كل شيء هنا سيكون مشابهًا لما نستخدمه في Java. دعونا نتحدث عن أهمها. هناك ثلاثة منها فقط، وسنضيف غيرها حسب الحاجة و/أو الرغبة: "مشروع جافا من الألف إلى الياء": تحليل قواعد البيانات ولغة SQL - 9كما يتبين من الصورة، فهي:
  • INT - قيم عددية. يُستخدم لمعرف فريد ولعدد صحيح بسيط؛
  • VARCHAR هي السلسلة الخاصة بنا ؛
  • DATE هو التاريخ المحلي الخاص بنا.
حتى الآن كل شيء بسيط، أليس كذلك؟ يتم تحديد أنواع الحقول عند إنشاء الجدول. من الواضح أنه لن يكون من الممكن كتابة قيمة من نوع مختلف في الحقل.

ما هي عوامل تشغيل SQL

عامل التشغيل هو أمر منفصل ينفذ بعض الإجراءات. تتكون عوامل التشغيل من جمل، والتي تتكون بدورها من الكلمات الأساسية المستخدمة في الاستعلامات. دعونا نلقي نظرة على مثال: "مشروع جافا من الألف إلى الياء": تحليل قواعد البيانات ولغة SQL - 10الأمر أكثر إثارة للاهتمام هنا، فقد تم إنشاء استعلام هنا بالفعل. ماذا يفعلون هناك؟ الأمر بسيط، فهو يقول: "خذ ثلاثة حقول (الاسم والعمر وتاريخ الإنشاء) من جدول العملاء، وحدد فقط تلك السجلات التي يكون فيها الاسم مساويًا للروماني."

خاتمة

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

العمل في المنزل

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

توجد قائمة بجميع المواد الموجودة في السلسلة في بداية هذه المقالة.

تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION