مقاله ای از مجموعه ای در مورد ایجاد پروژه جاوا. هدف آن تجزیه و تحلیل فناوری های کلیدی است که نتیجه آن نوشتن یک ربات تلگرام است. قسمت مقدماتی اینجاست . Aloha، مهندسان نرم افزار. امروز در مورد پایگاه داده ها و زبان SQL صحبت می کنیم. این مقاله برای چه کسانی در نظر گرفته شده است؟ برای همه علاقه مندان بله. برخی می توانند سفر خود را با این مقاله آغاز کنند، برخی دیگر می توانند حافظه خود را از حقایق جالب تجدید کنند. این بخش کاملاً تئوری خواهد بود. قبل از اینکه به شما بگوییم پایگاه های داده و نحو SQL چیست، باید بفهمیم و مشخص کنیم که چرا آنها را مطالعه می کنیم. در این مرحله، ما فقط در مورد پایگاه داده های SQL صحبت خواهیم کرد: ما NoSQL را در این سری مقالات در نظر نخواهیم گرفت.
پایگاه داده: چیست
پایگاه داده (از این پس DB نامیده می شود) مکانی است که در آن داده های ساخت یافته ذخیره می شود که می توان با استفاده از یک زبان پرس و جو به دست آورد. پایگاه های داده نه تنها می توانند اطلاعات را در حجم زیاد ذخیره کنند، بلکه می توانند پردازش و تغییر دهند. به عنوان یک نکته: سعی کنید به سرعت مجموعه ای از مقادیر را در اکسل بر اساس برخی معیارها تغییر دهید. در اصل، هیچ چیز پیچیده نیست. نه مانند دنیای واقعی غیر دیجیتالی ما. به عنوان مثال، تغییر نام خطوط، خیابان ها، شهرها. اگر همه چیز مجازی بود و وارد دیتابیس می شد، عادی می شد، یکی دو چیز کوچک بود. همانطور که هست، بسیاری از رسانه های ذخیره سازی آسیب می بینند زیرا نمی توانند به طور خودکار تغییر کنند. در این زمینه، SQL برای پایگاههای داده زبانی است که پایگاه داده آن را میفهمد و به آن پاسخ میدهد. بیایید بگوییم، تغییر نام شهر دشوار نخواهد بود؛ تغییر نام Dnepropetrovsk به Dnipro چیزی شبیه به این خواهد بود:UPDATE city SET name = “Днипро” WHERE id = 1231;
تمام درخواستهای بعدی به سیستم قبلاً نام مورد نیاز ما را تولید میکنند.
چرا پایگاه های اطلاعاتی مورد نیاز است؟
همانطور که قبلاً گفتم، با استفاده از پایگاه داده می توانید داده ها را ذخیره کنید. اما این داده ها چیست؟ برای درک استفاده از یک مثال واقعی، می توانیم در مورد برخی از کاربردها صحبت کنیم. مثلا در مورد همون ربات تلگرام. ما می خواهیم بدانیم چند نفر از ربات استفاده می کنند. چگونه می توان این را پیاده سازی کرد؟ در یک برنامه معمولی جاوا، می توانید عناصر منحصر به فرد زیادی ایجاد کنید - یک مجموعه، که نام مستعار یا شناسه چت کاربر را ذخیره می کند. آیا این کار خواهد کرد؟ اراده. دقیقاً تا زمانی که برنامه جاوا متوقف شود و به محض راه اندازی مجدد، مجموعه عناصر منحصر به فرد خالی خواهد بود. یعنی داده هایی که در برنامه در حال اجرا ذخیره شده بودند به سادگی ناپدید شدند. درباره آن چکار میتونید بکنید؟ می توانید ذخیره سازی وضعیت سیستم (داده ها) را از یک برنامه جاوا به جای دیگری منتقل کنید. می توانید آن را در قالب CSV در یک فایل معمولی در رایانه خود ذخیره کنید. می توانید این کار را در یک خط در یک فایل جداگانه انجام دهید. می توانید این کار را انجام دهید و سپس این داده ها را قبل از توقف برنامه جاوا بازنویسی کنید. اگرچه تضمین موفقیت آمیز بودن ضبط تقریباً نزدیک به 100٪ نیست زیرا می توانید به سادگی سیم برق سرور را بیرون بکشید و ضبط انجام نمی شود. این رویکرد یک اشکال قابل توجه دارد: هیچ عملکردی برای به دست آوردن، تجمیع و جستجوی اطلاعات در سطح فایل وجود ندارد. بله، البته، شما می توانید یک فایل را بخوانید و برای آن اشیاء ایجاد کنید، اما باید همه داده ها را هر بار به برنامه پمپ کنید. و می تواند تعداد زیادی از آنها وجود داشته باشد، به عنوان مثال، چند گیگابایت. با ذخیره داده ها در پایگاه داده می توان از این امر جلوگیری کرد. چگونه؟ از طریق جداول و روابط بین آنها. این همان چیزی است که همه پایگاه های داده رابطه ای بر آن بنا شده اند.SQL: زبانی که پایگاه های داده آن را می فهمند
سیستم های مدیریت پایگاه داده (از این پس DBMS نامیده می شود) وجود دارد و زبانی که آنها می فهمند SQL است. SQL یک زبان برنامه نویسی برای دستکاری و مدیریت پایگاه های داده است. برای درک نحوه کار، اجازه دهید به شکل نگاه کنیم: کاربر پرسوجوهای SQL را به DBMS میفرستد، DBMS میداند چه کاری باید انجام شود، آن را انجام میدهد و اگر درخواست برای به دست آوردن داده بود، آن را برمیگرداند. بنابراین، به عنوان توسعه دهندگان، باید به زبان پرس و جو SQL مسلط باشیم. ممکن است فکر کنید، "اوه، یک زبان دیگر. به کمک خدا، من اینجا جاوا را به سختی درک می کنم، و شما بلافاصله زبان دیگری را به من پیشنهاد می کنید. این درست نیست: SQL به عنوان یک زبان مشخصات یک DBMS اختراع شد تا حسابدارانی که از پایگاه داده ها و برنامه نویسی به طور کلی بسیار دور هستند بتوانند به این زبان بنویسند. این بدان معنی است که یادگیری آن چندان دشوار نخواهد بود. نکته اصلی تمرین-تمرین-تمرین است. امروز تئوری وجود خواهد داشت، اما مقاله بعدی در مورد عمل خواهد بود. از آنجایی که یک پایگاه داده رابطه ای مجموعه ای از جداول آرایه دو بعدی و روابط بین آنهاست، کار حول آنها کار خواهد کرد. اگر در مورد یک مثال صحبت کنیم، می توانیم دو جدول - "کشورها" و "شهرها" و نحوه اتصال آنها را نشان دهیم. در این مرحله، درک این نکته برای ما مهم است که رکوردهای جدول دادههایی درباره شیء از دنیای جاوا هستند. به عنوان مثال، این دو جدول را می توان در جاوا به صورت زیر توصیف کرد:public class Country {
private Long id;
private String name;
}
public class City {
private Long id;
private String name;
private Country country;
private Integer population;
}
خوب، زیبا نیست، نه؟ پایگاه داده می تواند هر تعداد جدول را ذخیره کند. در مورد ما دو مورد از آنها وجود دارد.
ساختار جدول
من فکر می کنم که همه به هر طریقی با جداول اکسل برخورد کرده اند و شما اصطلاحات سطر و ستون را درک می کنید . در پایگاه داده، ما بیشتر در مورد رکوردها و فیلدها صحبت می کنیم: بنابراین، معلوم می شود که هر شی از کلاس City یک رکورد در یک جدول در پایگاه داده است.کلید اصلی
اغلب اتفاق می افتد که فیلدهای پایگاه داده دارای مقادیر یکسان هستند. به عنوان مثال، شبکه های اجتماعی، که در آنها می توان بیش از یک نفر را با نام، نام خانوادگی و حتی نام خانوادگی پیدا کرد. و پایگاه داده های رابطه ای نیاز به یک فیلد منحصر به فرد دارند که می توان از آن برای دسترسی به یک رکورد استفاده کرد. به این کلید اول یا کلید اصلی می گویند. به طور معمول، فیلد ID(id) به عنوان چنین کلیدی استفاده می شود - این مختصر برای شناسه است. به همین دلیل است که باید یک فیلد ID به هر جدول اضافه کنید .کلید خارجی
در مثال ما، چنین فیلدی در جدول City است که از کلید کشور استفاده می کند. و به این صورت عمل می کند: هر شهر یک شناسه اطلاعاتی منحصر به فرد برای کشور خود می شناسد و اگر آن را برداریم و یک پرس و جو در پایگاه داده ایجاد کنیم، اطلاعات جامعی در مورد کشور دریافت خواهیم کرد. همانطور که در تصویر می بینید، بین دو جدول رابطه وجود دارد: اصل کلید خارجی در اینجا نشان داده شده است.چه بخش هایی در SQL وجود دارد؟
به هر حال، در طول مصاحبه ها اغلب از آنها پرسیده می شود که چه عملیاتی در SQL وجود دارد:- DDL (زبان تعریف داده ها) گروهی از عملگرها هستند که جداول، ساختار آنها و غیره را تغییر/ایجاد می کنند. یعنی ایجاد جدول، حذف آن، ایجاد/حذف فیلدها در جداول. ایجاد یک کلید اولیه جدید و غیره؛
- DML (زبان دستکاری داده ها) گروهی از اپراتورها است که اصلاح داده ها را مدیریت می کنند. اینها همه عملیاتی هستند که داده ها را در پایگاه داده تغییر می دهند: افزودن، دریافت، تغییر و حذف.
- DCL (زبان کنترل داده ها) وسیله ای برای تأیید حقوق کاربر برای انجام اقدامات است. عملیاتی برای ارائه دسترسی و حقوق به یک کاربر خاص به طوری که او بتواند عملیات DDL/DML را انجام دهد.
چه نوع داده ای در SQL وجود دارد
جداول می توانند انواع خاصی از داده ها را ذخیره و پردازش کنند. همه چیز در اینجا شبیه آنچه ما در جاوا استفاده می کنیم خواهد بود. بیایید در مورد موارد اصلی صحبت کنیم. تنها سه مورد از آنها وجود دارد، ما موارد دیگری را در صورت نیاز و/یا دلخواه اضافه خواهیم کرد: همانطور که از تصویر مشخص است، این موارد عبارتند از:- INT - مقادیر عدد صحیح. برای یک شناسه منحصر به فرد و برای یک عدد صحیح ساده استفاده می شود.
- VARCHAR رشته ماست .
- DATE LocalDate ما است.
GO TO FULL VERSION