آموزش هایبرنیت در جاوا - درس سوم - مفهوم SQL
Hibernate بازدید : 286 یکشنبه ۵ دی ۱۳۹۵

Standard (structured) Query Language یا به اختصار SQL یک زبانی استاندارد و ساخت یافته و بر اساس جبر رابطه ای برای ارتباط و دسترسی به پایگاه داده های رابطه ای است و کاربران بواسطه آن می وانند پایگاه داده ها و اطلاعات موجود در آن را مدیریت کنند. به عنوان مثال بتوانند پایگاه داده ها را ایجاد کنند، جدول ها و رابطه بین آنها تعریف کنند و از طرفی بتوانند اطلاعات را در آن ذخیره کنند و  در صورت نیاز اطلاعات را از پایگاه داده ها (DB) بخوانند و اعمالی از این قبیل را انجام دهند. قطعا با این زبان آشنا هستید.!!!

اما نکته اینجاست چرا زبان میگوییم زبان استاندارد؟

ما در درس گذشته با مفهوم DBMS آشنا شدیم. می دانیم DBMS های مختلفی از سوی شرکت های مستقل و مختلف ارائه شده است. DBMS ها وظیفه مدیریت و کنترل DB ها را داشتند. این کنترل به نحوی باید از طریق زبان برنامه نویسی خاصی انجام پذیرد.  یک ایده نامسناسب این است که هرکدام از شرکت ها یک زبان خاص و متفاوت  مختص به DBMS خود داشته باشند. مشکلی که در این حالت بوجود می آید این است که برنامه نویسان و توسعه دهندگان مجبورند برای کار با این DBMS ها زبان های مختلفی را یادبگیرند... چرا؟ پروژه ای را در نظر بگیرید که در ابتدای پروژه از DBMS شرکت Oracle استفاده کرده ایم. بنا به دلایلی قصد داریم که DBMS را تغییر دهیم(Migration)  ... مثلا PostgreSQL، در اینجا تیم توسعه دهنده ممکن است با مشکل مواجه شوند و لازم است زبان جدید دیگری برای ارتباط با پایگاه داده PostgreSQL را یاد بگیرند. برای جلوگیری از این قبیل مشکلات یک استانداردی در علم کامپیوتر تحت عنوان SQL مطرح شد که توسعه دهندگان برای مدیریت پایگاه داده های خود، هر DBMS ای  از این زبان استفاده کنند.

البته این استاندارد در برخی از Syntax  های دستوراتی میتوانند متفاوت باشد ولی شماتیک کلی یکسان و واحد میباشد.

در ادامه برخی دستورات پرکاربرد آورده شده است.




01- SELECT * FROM table_name; /// Retrieve all data from table
02- CREATE DATABASE database_bname; /// for create Database

/// for create table
03- CREATE TABLE table_name(column_name1 data_type(size),...);

/// for insert data into DB
04- INSERT INTO table_name VALUES (value1,value2,value3,...);

/// for remove an item from DB
05- DELETE FROM table_name WHERE some_column=some_value;

06- Group By:
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;

07- and etc ... .


قطعا این زبان هم یک سری مشکلات دارد و پیچیدگی هایی در پروژه های ما میتواند ایجاد کند. که یکی از دلایل استفاده ای ORM هایی نظیر هایبرنیت هم کاهش این پیچیدگی هاست.

به نحوی ORM  ها برای این مطرح شده اند که ما دستورات SQL را کنار بگذاریم (البته نه کاملا) و با تفکر و روشی دیگر، DB و اطلاعات آن را مدیریت کنیم.

دراین مجموعه درس های هایبرنیت قصد نداریم وارد جرئیات این زبان شویم و خود میتواند یک سرفصل مجزایی باشد. اما هدف این است که بتوانیم در تمام مثال هایی که ایجاد میکنیم یک تفاوت و مقایسه ای بین  این دو روش، یعنی استفاده از جاوای محض ( بدون استفاده از هیچ فریمورکی نظیر ORM ها ) به همراه دستورات SQL  و روش استفاده از ابزار هایی نظیر هایبرنیت داشته باشیم.

در ادامه با ما همراه باشید با مفاهیم پایه ای دیگر.



 



 







نوشتن دیدگاه