JavaRush /وبلاگ جاوا /Random-FA /ما پایگاه داده ها و زبان SQL را تجزیه و تحلیل می کنیم - "...
Roman Beekeeper
مرحله

ما پایگاه داده ها و زبان SQL را تجزیه و تحلیل می کنیم - "پروژه جاوا از A تا Z"

در گروه منتشر شد
مقاله ای از مجموعه ای در مورد ایجاد پروژه جاوا. هدف آن تجزیه و تحلیل فناوری های کلیدی است که نتیجه آن نوشتن یک ربات تلگرام است. قسمت مقدماتی اینجاست . Aloha، مهندسان نرم افزار. امروز در مورد پایگاه داده ها و زبان SQL صحبت می کنیم. "پروژه جاوا از A تا Z": تجزیه و تحلیل پایگاه های داده و زبان SQL - 1این مقاله برای چه کسانی در نظر گرفته شده است؟ برای همه علاقه مندان بله. برخی می توانند سفر خود را با این مقاله آغاز کنند، برخی دیگر می توانند حافظه خود را از حقایق جالب تجدید کنند. این بخش کاملاً تئوری خواهد بود. قبل از اینکه به شما بگوییم پایگاه های داده و نحو SQL چیست، باید بفهمیم و مشخص کنیم که چرا آنها را مطالعه می کنیم. در این مرحله، ما فقط در مورد پایگاه داده های SQL صحبت خواهیم کرد: ما NoSQL را در این سری مقالات در نظر نخواهیم گرفت.

پایگاه داده: چیست

"پروژه جاوا از A تا Z": تجزیه و تحلیل پایگاه های داده و زبان SQL - 2پایگاه داده (از این پس DB نامیده می شود) مکانی است که در آن داده های ساخت یافته ذخیره می شود که می توان با استفاده از یک زبان پرس و جو به دست آورد. پایگاه های داده نه تنها می توانند اطلاعات را در حجم زیاد ذخیره کنند، بلکه می توانند پردازش و تغییر دهند. به عنوان یک نکته: سعی کنید به سرعت مجموعه ای از مقادیر را در اکسل بر اساس برخی معیارها تغییر دهید. در اصل، هیچ چیز پیچیده نیست. نه مانند دنیای واقعی غیر دیجیتالی ما. به عنوان مثال، تغییر نام خطوط، خیابان ها، شهرها. اگر همه چیز مجازی بود و وارد دیتابیس می شد، عادی می شد، یکی دو چیز کوچک بود. همانطور که هست، بسیاری از رسانه های ذخیره سازی آسیب می بینند زیرا نمی توانند به طور خودکار تغییر کنند. در این زمینه، SQL برای پایگاه‌های داده زبانی است که پایگاه داده آن را می‌فهمد و به آن پاسخ می‌دهد. بیایید بگوییم، تغییر نام شهر دشوار نخواهد بود؛ تغییر نام Dnepropetrovsk به Dnipro چیزی شبیه به این خواهد بود:
UPDATE city SET name = “Днипро” WHERE id = 1231;
تمام درخواست‌های بعدی به سیستم قبلاً نام مورد نیاز ما را تولید می‌کنند.

چرا پایگاه های اطلاعاتی مورد نیاز است؟

همانطور که قبلاً گفتم، با استفاده از پایگاه داده می توانید داده ها را ذخیره کنید. اما این داده ها چیست؟ برای درک استفاده از یک مثال واقعی، می توانیم در مورد برخی از کاربردها صحبت کنیم. مثلا در مورد همون ربات تلگرام. ما می خواهیم بدانیم چند نفر از ربات استفاده می کنند. چگونه می توان این را پیاده سازی کرد؟ در یک برنامه معمولی جاوا، می توانید عناصر منحصر به فرد زیادی ایجاد کنید - یک مجموعه، که نام مستعار یا شناسه چت کاربر را ذخیره می کند. آیا این کار خواهد کرد؟ اراده. دقیقاً تا زمانی که برنامه جاوا متوقف شود و به محض راه اندازی مجدد، مجموعه عناصر منحصر به فرد خالی خواهد بود. یعنی داده هایی که در برنامه در حال اجرا ذخیره شده بودند به سادگی ناپدید شدند. درباره آن چکار میتونید بکنید؟ می توانید ذخیره سازی وضعیت سیستم (داده ها) را از یک برنامه جاوا به جای دیگری منتقل کنید. می توانید آن را در قالب CSV در یک فایل معمولی در رایانه خود ذخیره کنید. می توانید این کار را در یک خط در یک فایل جداگانه انجام دهید. می توانید این کار را انجام دهید و سپس این داده ها را قبل از توقف برنامه جاوا بازنویسی کنید. اگرچه تضمین موفقیت آمیز بودن ضبط تقریباً نزدیک به 100٪ نیست زیرا می توانید به سادگی سیم برق سرور را بیرون بکشید و ضبط انجام نمی شود. این رویکرد یک اشکال قابل توجه دارد: هیچ عملکردی برای به دست آوردن، تجمیع و جستجوی اطلاعات در سطح فایل وجود ندارد. بله، البته، شما می توانید یک فایل را بخوانید و برای آن اشیاء ایجاد کنید، اما باید همه داده ها را هر بار به برنامه پمپ کنید. و می تواند تعداد زیادی از آنها وجود داشته باشد، به عنوان مثال، چند گیگابایت. با ذخیره داده ها در پایگاه داده می توان از این امر جلوگیری کرد. چگونه؟ از طریق جداول و روابط بین آنها. این همان چیزی است که همه پایگاه های داده رابطه ای بر آن بنا شده اند.

SQL: زبانی که پایگاه های داده آن را می فهمند

سیستم های مدیریت پایگاه داده (از این پس DBMS نامیده می شود) وجود دارد و زبانی که آنها می فهمند SQL است. SQL یک زبان برنامه نویسی برای دستکاری و مدیریت پایگاه های داده است. برای درک نحوه کار، اجازه دهید به شکل نگاه کنیم: "پروژه جاوا از A تا Z": تجزیه و تحلیل پایگاه های داده و زبان SQL - 3کاربر پرس‌و‌جوهای SQL را به DBMS می‌فرستد، DBMS می‌داند چه کاری باید انجام شود، آن را انجام می‌دهد و اگر درخواست برای به دست آوردن داده بود، آن را برمی‌گرداند. بنابراین، به عنوان توسعه دهندگان، باید به زبان پرس و جو SQL مسلط باشیم. ممکن است فکر کنید، "اوه، یک زبان دیگر. به کمک خدا، من اینجا جاوا را به سختی درک می کنم، و شما بلافاصله زبان دیگری را به من پیشنهاد می کنید. این درست نیست: SQL به عنوان یک زبان مشخصات یک DBMS اختراع شد تا حسابدارانی که از پایگاه داده ها و برنامه نویسی به طور کلی بسیار دور هستند بتوانند به این زبان بنویسند. این بدان معنی است که یادگیری آن چندان دشوار نخواهد بود. نکته اصلی تمرین-تمرین-تمرین است. امروز تئوری وجود خواهد داشت، اما مقاله بعدی در مورد عمل خواهد بود. از آنجایی که یک پایگاه داده رابطه ای مجموعه ای از جداول آرایه دو بعدی و روابط بین آنهاست، کار حول آنها کار خواهد کرد. اگر در مورد یک مثال صحبت کنیم، می توانیم دو جدول - "کشورها" و "شهرها" و نحوه اتصال آنها را نشان دهیم. "پروژه جاوا از A تا Z": تجزیه و تحلیل پایگاه های داده و زبان SQL - 4در این مرحله، درک این نکته برای ما مهم است که رکوردهای جدول داده‌هایی درباره شیء از دنیای جاوا هستند. به عنوان مثال، این دو جدول را می توان در جاوا به صورت زیر توصیف کرد:
public class Country {
   private Long id;
   private String name;
}

public class City {

   private Long id;
   private String name;
   private Country country;
   private Integer population;
}
خوب، زیبا نیست، نه؟ پایگاه داده می تواند هر تعداد جدول را ذخیره کند. در مورد ما دو مورد از آنها وجود دارد.

ساختار جدول

من فکر می کنم که همه به هر طریقی با جداول اکسل برخورد کرده اند و شما اصطلاحات سطر و ستون را درک می کنید . در پایگاه داده، ما بیشتر در مورد رکوردها و فیلدها صحبت می کنیم: "پروژه جاوا از A تا Z": تجزیه و تحلیل پایگاه های داده و زبان SQL - 5بنابراین، معلوم می شود که هر شی از کلاس City یک رکورد در یک جدول در پایگاه داده است.

کلید اصلی

"پروژه جاوا از A تا Z": تجزیه و تحلیل پایگاه های داده و زبان SQL - 6اغلب اتفاق می افتد که فیلدهای پایگاه داده دارای مقادیر یکسان هستند. به عنوان مثال، شبکه های اجتماعی، که در آنها می توان بیش از یک نفر را با نام، نام خانوادگی و حتی نام خانوادگی پیدا کرد. و پایگاه داده های رابطه ای نیاز به یک فیلد منحصر به فرد دارند که می توان از آن برای دسترسی به یک رکورد استفاده کرد. به این کلید اول یا کلید اصلی می گویند. به طور معمول، فیلد ID(id) به عنوان چنین کلیدی استفاده می شود - این مختصر برای شناسه است. به همین دلیل است که باید یک فیلد ID به هر جدول اضافه کنید ."پروژه جاوا از A تا Z": تجزیه و تحلیل پایگاه های داده و زبان SQL - 7

کلید خارجی

در مثال ما، چنین فیلدی در جدول City است که از کلید کشور استفاده می کند. و به این صورت عمل می کند: هر شهر یک شناسه اطلاعاتی منحصر به فرد برای کشور خود می شناسد و اگر آن را برداریم و یک پرس و جو در پایگاه داده ایجاد کنیم، اطلاعات جامعی در مورد کشور دریافت خواهیم کرد. همانطور که در تصویر می بینید، بین دو جدول رابطه وجود دارد: "پروژه جاوا از A تا Z": تجزیه و تحلیل پایگاه های داده و زبان SQL - 8اصل کلید خارجی در اینجا نشان داده شده است.

چه بخش هایی در SQL وجود دارد؟

به هر حال، در طول مصاحبه ها اغلب از آنها پرسیده می شود که چه عملیاتی در SQL وجود دارد:
  • DDL (زبان تعریف داده ها) گروهی از عملگرها هستند که جداول، ساختار آنها و غیره را تغییر/ایجاد می کنند. یعنی ایجاد جدول، حذف آن، ایجاد/حذف فیلدها در جداول. ایجاد یک کلید اولیه جدید و غیره؛
  • DML (زبان دستکاری داده ها) گروهی از اپراتورها است که اصلاح داده ها را مدیریت می کنند. اینها همه عملیاتی هستند که داده ها را در پایگاه داده تغییر می دهند: افزودن، دریافت، تغییر و حذف.
  • DCL (زبان کنترل داده ها) وسیله ای برای تأیید حقوق کاربر برای انجام اقدامات است. عملیاتی برای ارائه دسترسی و حقوق به یک کاربر خاص به طوری که او بتواند عملیات DDL/DML را انجام دهد.

چه نوع داده ای در SQL وجود دارد

جداول می توانند انواع خاصی از داده ها را ذخیره و پردازش کنند. همه چیز در اینجا شبیه آنچه ما در جاوا استفاده می کنیم خواهد بود. بیایید در مورد موارد اصلی صحبت کنیم. تنها سه مورد از آنها وجود دارد، ما موارد دیگری را در صورت نیاز و/یا دلخواه اضافه خواهیم کرد: "پروژه جاوا از A تا Z": تجزیه و تحلیل پایگاه های داده و زبان SQL - 9همانطور که از تصویر مشخص است، این موارد عبارتند از:
  • INT - مقادیر عدد صحیح. برای یک شناسه منحصر به فرد و برای یک عدد صحیح ساده استفاده می شود.
  • VARCHAR رشته ماست .
  • DATE LocalDate ما است.
تا اینجا همه چیز ساده است، درست است؟ انواع فیلدها هنگام ایجاد جدول مشخص می شوند. واضح است که امکان نوشتن مقداری از نوع متفاوت در فیلد وجود نخواهد داشت.

عملگرهای SQL چیست؟

اپراتور یک فرمان جداگانه است که عملی را انجام می دهد. عملگرها از جملاتی تشکیل شده اند که به نوبه خود از کلمات کلیدی تشکیل شده اند که در پرس و جوها استفاده می شوند. بیایید به یک مثال نگاه کنیم: "پروژه جاوا از A تا Z": تجزیه و تحلیل پایگاه های داده و زبان SQL - 10اینجا جالب تر است، یک پرس و جو قبلاً در اینجا ساخته شده است. آنها اینجا در حال چه کاری هستند؟ ساده است، می‌گوید: «سه فیلد (Name، Age و CreatedDate) را از جدول Clients بگیرید، فقط آن دسته از رکوردهایی را انتخاب کنید که نام آنها با Roman برابر است.»

نتیجه

در این مقاله شروع به مطالعه پایگاه داده ها کردیم. ما فهمیدیم که چیست و چرا به آن نیاز داریم. در ادامه به سراغ اولین نشانه های SQL رفتیم که در مقاله بعدی در مورد آنها با جزئیات بیشتر صحبت خواهیم کرد. طبق معمول، پیشنهاد می کنم در GitHub ثبت نام کنید و حساب کاربری من را دنبال کنید تا این مجموعه و پروژه های دیگری که در آنجا کار می کنم را دنبال کنید.

مشق شب

برای افزایش علاقه به این سری از مقالات در JRTB، هر از گاهی تکالیف درسی وجود خواهد داشت. به عنوان مثال، بدون تکلیف امروز، درک مقاله بعدی بسیار دشوارتر خواهد بود، زیرا در آنجا تمرین زیادی وجود خواهد داشت. بنابراین، وظیفه این است که MySQL DBMS را روی رایانه خود نصب کنید و از طریق کنسول یا از طریق راه حل های دیگر وارد پایگاه داده شوید. از همه شما برای خواندن متشکرم، به زودی شما را می بینیم!

فهرستی از تمام مواد این مجموعه در ابتدای این مقاله است.

نظرات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION