JavaRush /مدونة جافا /Random-AR /الجزء الأول: مقدمة إلى SQL
Marat Sadykov
مستوى

الجزء الأول: مقدمة إلى SQL

نشرت في المجموعة

JDBC. توصيل قاعدة بيانات وإنشاء تطبيق وحدة تحكم Java في IntelliJ IDEA

مقدمة

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

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

هناك عدة أنواع من أنظمة إدارة قواعد البيانات (DBMS) بناءً على الطريقة التي تنظم بها تخزين البيانات:
  • الهرمية. يتم تنظيم البيانات في هيكل شجرة. ومن الأمثلة على ذلك نظام الملفات الذي يبدأ من جذر القرص ثم ينمو مع فروع الملفات من أنواع مختلفة ومجلدات بدرجات متفاوتة من التداخل.
  • شبكة. تعديل التسلسل الهرمي، يمكن أن يكون لكل عقدة أكثر من أصل واحد.
  • وجوه المنحى. يتم تنظيم البيانات في شكل فئات/كائنات مع سماتها ومبادئ التفاعل وفقًا لـ OOP.
  • العلائقية. يتم تنظيم بيانات هذا النوع من نظم إدارة قواعد البيانات في جداول. يمكن ربط الجداول ببعضها البعض، وتكون المعلومات الموجودة فيها منظمة.
في هذه السلسلة من المقالات، سنلقي نظرة على أنظمة إدارة قواعد البيانات العلائقية (باعتبارها الأكثر شيوعًا) باستخدام H2 كمثال وإنشاء تطبيق من البداية يحاكي شيئًا مشابهًا لكيفية عمل البورصة. سؤال: لماذا لا تستخدم PostgreSQL أو MySQL أو MSSQL أو Oracle؟ الإجابة: حتى لا تشتت انتباهك مشاكل تثبيت مجموعة منفصلة من البرامج. مزيد من التكوين، وإنشاء قاعدة بيانات، وتعقيدات العمل في أنظمة تشغيل مختلفة، والإصدارات. للعمل مع H2، تحتاج إلى تنفيذ الحد الأدنى من الإجراءات. ولكن لا شيء يمنعك من تغيير H2 JDBC الحالي إلى نظام إدارة قواعد البيانات العلائقي من شركة مصنعة أخرى (فقط سطر عنوان الخادم واسم فئة برنامج التشغيل يتغيران).

SQL

تقوم البرامج الخارجية بإنشاء استعلامات إلى نظام إدارة قواعد البيانات (DBMS) في لغة إدارة البيانات لغة الاستعلام الهيكلية. ما هو SQL وكيف يختلف عن لغات البرمجة التقليدية؟ إحدى ميزات SQL هي التصريح. أي أن SQL هي لغة تعريفية . هذا يعني أنه عند إدخال الأوامر، أي إنشاء استعلامات إلى خادم SQL، فإننا نصف ما نريد الحصول عليه بالضبط، وليس بأي طريقة. عن طريق إرسال طلب إلى الخادم SELECT * FROM CUSTOMER(ترجمة تقريبية من SQL إلى اللغة الروسية: "قم بالاختيار من جدول COSTUMER، يتكون التحديد من جميع الصفوف في الجدول" )، سنتلقى بيانات لجميع المستخدمين. لا يهم على الإطلاق كيف ومن أين يقوم الخادم بتنزيل البيانات التي نهتم بها وإنشاءها. الشيء الرئيسي هو صياغة الطلب بشكل صحيح.
  • ما هو SQL Server وكيف يعمل؟ يحدث التفاعل مع نظام إدارة قواعد البيانات (DBMS) على مبدأ خادم العميل. يرسل بعض البرامج الخارجية طلبًا على شكل عوامل تشغيل وأوامر بلغة SQL، ويقوم نظام إدارة قواعد البيانات (DBMS) بمعالجته وإرسال الاستجابة. من أجل البساطة، لنفترض أن SQL Server = DBMS.
إذا كنت تستطيع قيادة نوع واحد من السيارات، فمن المرجح أن تتمكن من قيادة سيارات أخرى دون أي مشاكل. أساسيات القيادة هي نفسها في كل مكان، باستثناء التفاصيل الصغيرة. وينطبق الشيء نفسه على خوادم SQL من مختلف الشركات المصنعة - كل واحد منهم لديه نسخته الخاصة من SQL، ولكنه يلبي المعايير المحددة (SQL92، SQL2003 ...). سوف نستخدم عوامل التشغيل والأوامر ضمن إطار عمل SQL92. تنقسم عبارات SQL الأساسية إلى المجموعات التالية:
  • لغة تعريف البيانات ( DDL ) – تعريفات البيانات. إنشاء هيكل قاعدة البيانات وكائناتها؛
  • لغة معالجة البيانات ( DML ) - التفاعل الفعلي مع البيانات: الإدراج والحذف والتعديل والقراءة؛
  • لغة التحكم في المعاملات ( TCL ) - إدارة المعاملات؛
  • لغة التحكم في البيانات ( DCL ) – إدارة حقوق الوصول إلى البيانات وهياكل قواعد البيانات.
في سلسلة من المقالات، سنلقي نظرة على المجموعات الثلاث الأولى، مع إيلاء اهتمام خاص لـ DML.

JDBC

في الثمانينيات من القرن الماضي، غزت أجهزة الكمبيوتر الشخصية من نوع PC XT/AT السوق. كان هذا يرجع إلى حد كبير إلى نمطية تصميمها. هذا يعني أنه يمكن للمستخدم بسهولة تغيير مكون أو آخر من مكونات جهاز الكمبيوتر الخاص به (المعالج، بطاقة الفيديو، الأقراص، إلخ). تم الحفاظ على هذه الخاصية الرائعة حتى يومنا هذا: نقوم بتغيير بطاقة الفيديو وتحديث برنامج التشغيل (في بعض الأحيان يقوم بتحديث نفسه تلقائيًا). في أغلب الأحيان، لا يحدث شيء سيء مع مثل هذه التلاعبات، وستستمر البرامج الموجودة في العمل مع النظام المحدث دون إعادة التثبيت. الأمر نفسه ينطبق على العمل في Java باستخدام نظام إدارة قواعد البيانات (DBMS). لتوحيد العمل مع خوادم SQL، يمكن إجراء التفاعل معها من خلال نقطة واحدة - JDBC (اتصال قاعدة بيانات Java). إنه تطبيق لحزمة java.sql للعمل مع نظام إدارة قواعد البيانات (DBMS). تقوم الشركات المصنعة لجميع خوادم SQL الشائعة بإصدار برامج تشغيل JDBC لها. النظر في الرسم البياني أدناه. يستخدم التطبيق مثيلات الفئات من java.sql . نقوم بعد ذلك بتمرير الأوامر اللازمة لاسترداد/تعديل البيانات. بعد ذلك، يتفاعل java.sql مع نظام إدارة قواعد البيانات (DBMS) من خلال برنامج تشغيل jdbc ويعيد النتيجة النهائية إلينا. الجزء 1. مقدمة إلى SQL - 2 للتبديل إلى نظام إدارة قواعد البيانات (DBMS) من شركة مصنعة أخرى، غالبًا ما يكفي تغيير JDBC وإجراء الإعدادات الأساسية. الأجزاء المتبقية من البرنامج لا تتغير.

البرنامج الأول

دعنا ننتقل إلى الجزء العملي. لنقم بإنشاء مشروع Java باستخدام JetBrains IntelliJ IDEA IDE . لاحظ أن الإصدار النهائي يحتوي على أداة رائعة للعمل مع SQL وقواعد البيانات - Data Grip . ومع ذلك، يتم دفعها لمعظم المستخدمين. لذلك، لأغراض تعليمية، يمكننا فقط استخدام إصدار IntelliJ IDEA Community Edition المتاح للعامة . لذا:
  1. قم بتشغيل IDE وإنشاء مشروع جديد:
    الجزء 1. مقدمة إلى SQL - 3

  2. حدد مشروع Java، وحدد إصدار SDK (في المثال JDK8، ولكن هذا ليس بالغ الأهمية):
    الجزء 1. مقدمة إلى SQL - 4

  3. في الخطوة التالية، حدد تطبيق وحدة التحكم كنوع :
    الجزء 1. مقدمة إلى SQL - 5

  4. نشير إلى اسم المشروع والحزمة وموقعه على القرص ( لقد قمت بإنشاء دليل منفصل خصيصًا لهذا):
    الجزء 1. مقدمة إلى SQL - 6

  5. لنضع IDE جانبًا لمدة دقيقة ونقوم بتنزيل ملف JDBC الضروري من www.h2database.com للعمل مع H2 DBMS (منصة التنزيل المستقلة ZIP):
    الجزء 1. مقدمة إلى SQL - 7

  6. نذهب إلى داخل الملف الذي تم تنزيله (نحن مهتمون بملف الجرة على طول المسار h2\bin ، والذي سنحتاج إليه لاحقًا، قم بنسخه):
    الجزء 1. مقدمة إلى SQL - 8

  7. نعود إلى IDE وننشئ أدلة في جذر المشروع: db ، حيث سيتم تحديد موقع الملفات التي تحتوي على بيانات DBMS؛ lib – هنا مكتبة JDBC JAR:
    الجزء 1. مقدمة إلى SQL - 9

  8. انقل ملف jar من الخطوة 6 إلى دليل lib وأضفه إلى المشروع كمكتبة:
    الجزء 1: مقدمة إلى SQL - 10

  9. دعنا نعيد تسمية ملف جافا إلى src/sql/demo إلى StockExchange.java (في حالة نسيانك، سنقوم بمحاكاة "تبادل") بسيط، وتغيير محتوياته وتشغيل:
    الجزء 1. مقدمة إلى SQL - 11
يمكننا الآن الاتصال بنظام إدارة قواعد البيانات (DBMS) وقطع الاتصال به. تنعكس كل خطوة في وحدة التحكم. عند الاتصال لأول مرة بنظام إدارة قواعد البيانات (DBMS)، يتم إنشاء ملف قاعدة البيانات StockExchange.mv.db .

تحليل الكود

الكود الفعلي:
package sql.demo;

import java.sql.*;

public class StockExchangeDB {
    // Блок объявления констант
    public static final String DB_URL = "jdbc:h2:/c:/JavaPrj/SQLDemo/db/stockExchange";
    public static final String DB_Driver = "org.h2.Driver";

    public static void main(String[] args) {
        try {
            Class.forName(DB_Driver); //Проверяем наличие JDBC драйвера для работы с БД
            Connection connection = DriverManager.getConnection(DB_URL);//соединениесБД
            System.out.println("Соединение с СУБД выполнено.");
            connection.close();       // отключение от БД
            System.out.println("Отключение от СУБД выполнено.");
        } catch (ClassNotFoundException e) {
            e.printStackTrace(); // обработка ошибки  Class.forName
            System.out.println("JDBC драйвер для СУБД не найден!");
        } catch (SQLException e) {
            e.printStackTrace(); // обработка ошибок  DriverManager.getConnection
            System.out.println("Ошибка SQL !");
        }
    }
}

كتلة ثابتة:

  1. DB_Driver : قمنا هنا بتعريف اسم برنامج التشغيل، والذي يمكن العثور عليه، على سبيل المثال، من خلال النقر على المكتبة المتصلة وتوسيع بنيتها في دليل lib الخاص بالمشروع الحالي.
  2. DB_URL : عنوان قاعدة البيانات الخاصة بنا. يتكون من بيانات مفصولة بنقطتين:
  3. البروتوكول=jdbc
  4. البائع (الشركة المصنعة/الاسم) DBMS=h2
  5. موقع نظام إدارة قواعد البيانات (DBMS)، في حالتنا المسار إلى الملف (c:/JavaPrj/SQLDemo/db/stockExchange). بالنسبة لأنظمة إدارة قواعد البيانات الخاصة بالشبكة، تتم الإشارة هنا أيضًا إلى أسماء أو عناوين IP للخوادم البعيدة وأرقام منافذ TCP/UDP وما إلى ذلك.

معالجة الأخطاء:

قد تؤدي طرق الاتصال الموجودة في الكود الخاص بنا إلى ظهور أخطاء يجب عليك الانتباه إليها. في هذه المرحلة نقوم ببساطة بالإبلاغ عنها في وحدة التحكم. لاحظ أن الأخطاء عند العمل مع نظام إدارة قواعد البيانات (DBMS) غالبًا ما تكون SQLException .

منطق العملية:

  1. Class.forName (DB_Driver) - نتأكد من توفر برنامج تشغيل JDBC المقابل (الذي قمنا بتنزيله وتثبيته مسبقًا).
  2. DriverManager.getConnection (DB_URL) – إنشاء اتصال DBMS. باستخدام العنوان الذي تم تمريره، سيحدد JDBC نفسه نوع وموقع نظام إدارة قواعد البيانات لدينا ويعيد اتصالاً يمكننا استخدامه للتواصل مع قاعدة البيانات.
  3. Connection.Close () - أغلق الاتصال بنظام إدارة قواعد البيانات (DBMS) وانتهي من العمل مع البرنامج.
في الجزء التالي من السلسلة، سنتعرف على مشغلي DDL وأنواع بيانات SQL، وسنقوم أيضًا بإنشاء البنية الأولية لقاعدة البيانات الخاصة بنا وملؤها بالجداول. الجزء الثاني الجزء الثالث
تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION