JavaRush /Java блогы /Random-KK /Біз деректер базасын және SQL тілін талдаймыз - «Java жоб...
Roman Beekeeper
Деңгей

Біз деректер базасын және SQL тілін талдаймыз - «Java жобасы А-дан Я-ға дейін».

Топта жарияланған
Java жобасын жасау туралы сериядан мақала. Оның мақсаты – негізгі технологияларды талдау, нәтижесі – телеграмма ботын жазу. Кіріспе бөлімі осында . Сәлем, бағдарламалық жасақтама инженерлері. Бүгін біз мәліметтер базасы және SQL тілі туралы айтып отырмыз. «А-дан Я-ға Java жобасы»: мәліметтер қорын және SQL тілін талдау - 1Бұл мақала кімге арналған? Иә, қызығушылық танытқандардың барлығына. Кейбіреулер саяхатын осы мақаладан бастай алады, ал басқалары қызықты фактілер туралы есте сақтай алады. Бұл бөлім таза теориялық болады. Дерекқорлар мен SQL синтаксисі деген не екенін айтпас бұрын, біз оларды не үшін зерттейтінімізді түсініп, анықтауымыз керек. Бұл кезеңде біз ТЕК SQL деректер базасы туралы айтатын боламыз: Біз мақалалардың осы сериясында NoSQL-ті қарастырмаймыз.

Деректер базасы: бұл не

«А-дан Я-ға Java жобасы»: мәліметтер қорын және SQL тілін талдау - 2Мәліметтер қоры (бұдан әрі – ДҚ) – сұрау тілі арқылы алуға болатын құрылымдық деректер сақталатын орын . Мәліметтер базасы үлкен көлемдегі ақпаратты сақтап қана қоймай, өңдеп, өзгерте алады. Ескертпе ретінде: кейбір критерийлер негізінде Excel бағдарламасындағы мәндер жинағын жылдам өзгертуге тырысыңыз. Негізінде, күрделі ештеңе жоқ. Біздің цифрланбаған нақты әлеміміздегідей емес. Мысалы, жолақтардың, көшелердің, қалалардың атын өзгерту. Егер бәрі виртуалды болса және деректер базасына енгізілсе, ол нормаланар еді, бұл бір-екі ұсақ-түйек болар еді. Көптеген жад құралдары зардап шегеді, себебі олар автоматты түрде өзгермейді. Осы контексте дерекқорларға арналған SQL дерекқор түсінетін және сәйкесінше жауап беретін тіл болып табылады. Айталық, қаланың атын өзгерту қиын болмас еді, Днепропетровск атауын Днепрге өзгерту келесідей болады:
UPDATE city SET name = “Днипро” WHERE id = 1231;
Жүйеге кейінгі барлық сұраулар бізге қажет атауды шығарады.

Деректер базасы не үшін қажет?

Жоғарыда айтқанымдай, дерекқорды пайдалану арқылы деректерді сақтауға болады. Бірақ бұл деректер қандай? Нақты өмірлік мысалды пайдалануды түсіну үшін кейбір қолданбалар туралы айтуға болады. Мысалы, сол телеграмма боты туралы. Біз ботты қанша адам пайдаланып жатқанын білгіміз келеді. Мұны қалай жүзеге асыруға болады? Кәдімгі Java қолданбасында сіз көптеген бірегей элементтерді жасай аласыз - пайдаланушының лақап атын немесе чат идентификаторын сақтайтын жиын. Бұл жұмыс істей ме? Will. Дәл Java қолданбасы тоқтатылғанша және ол қайта іске қосылғанда бірегей элементтер жиынтығы бос болады. Яғни, жұмыс істеп тұрған қолданбада сақталған деректер жай жоғалып кетті. Сіз бұл туралы не істей аласыз? Жүйе күйінің (деректер) сақтау орнын Java қолданбасынан басқа жерге жылжытуға болады. Мұны CSV пішімінде компьютеріңіздегі кәдімгі файлда сақтауға болады. Оны бөлек файлда бір жолда орындауға болады. Сіз мұны жасай аласыз, содан кейін Java қолданбасы тоқтамай тұрып осы деректерді қайта жаза аласыз. Жазудың сәтті болатынына кепілдік 100% жақын емес, себебі serverдің қуат сымын жай ғана суырып алуға болады және жазба орындалмайды. Бұл тәсілдің айтарлықтай кемшілігі бар: файл деңгейінде ақпаратты алу, жинақтау және іздеу функционалдығы жоқ. Иә, әрине, сіз файлды оқи аласыз және ол үшін нысандар жасай аласыз, бірақ барлық деректерді қолданбаға ӘР БОЙЫНША жіберуге тура келеді. Және олардың көп болуы мүмкін, мысалы, бірнеше гигаbyte. Дерекқорда деректерді сақтау арқылы мұны болдырмауға болады. Қалайша? Кестелер және олардың арасындағы байланыстар арқылы. Барлық реляциялық деректер базалары осыған негізделген.

SQL: мәліметтер базасы түсінетін тіл

Деректер қорын басқару жүйелері (бұдан әрі – ДҚБЖ) бар және олар түсінетін тіл – SQL. SQL - мәліметтер қорын өңдеуге және басқаруға арналған бағдарламалау тілі. Бұл қалай жұмыс істейтінін түсіну үшін суретті қарастырайық: «Java жобасы А-дан Я-ға»: мәліметтер қорын және SQL тілін талдау - 3Пайдаланушы ДҚБЖ-ға SQL сұрауларын жібереді, ДҚБЖ не істеу керектігін түсінеді, оны жасайды және егер сұрау деректерді алу үшін болса, оны қайтарады. Сондықтан әзірлеушілер ретінде біз SQL сұраныс тілін меңгеруіміз керек. Сіз: «О, басқа тіл. Құдайдың көмегімен мен бұл жерде Java тілін әрең түсінемін, ал сіз бірден басқа тілді ұсынып жатырсыз». Бұл дұрыс емес: SQL дерекқордан және жалпы бағдарламалаудан өте алыс бухгалтерлер осы тілде жаза алатындай ДҚБЖ үшін спецификация тілі ретінде ойлап табылған. Бұл оны үйрену соншалықты қиын болмайды дегенді білдіреді. Ең бастысы ПРАКТИКА-ПРАКТИКА-ПРАКТИКА. Бүгін теория болады, бірақ келесі мақала тәжірибе туралы болмақ. Реляциялық деректер базасы екі өлшемді массив кестелерінің және олардың арасындағы қатынастардың жиынтығы болғандықтан, жұмыс олардың айналасында жұмыс істейді. Мысал туралы айтатын болсақ, біз екі кестені көрсете аламыз - «Елдер» және «Қалалар» және олардың байланысы. «А-дан Я-ға Java жобасы»: мәліметтер қорын және SQL тілін талдау - 4Бұл кезеңде біз үшін кестедегі жазбалар Java әлеміндегі кейбір an objectілер туралы деректер екенін түсіну маңызды. Мысалы, бұл екі кестені 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 кестелерімен бір жолмен кездесті және сіз жол және баған терминдерін түсінесіз . Мәліметтер қоры контекстінде біз жазбалар мен өрістер туралы көбірек айтамыз: «А-дан Я-ға Java жобасы»: мәліметтер қорын және SQL тілін талдау - 5Осылайша, City класының әрбір нысаны мәліметтер қорындағы кестедегі жазба болып табылады.

Негізгі кілт

«А-дан Я-ға Java жобасы»: мәліметтер қорын және SQL тілін талдау - 6Дерекқорлардағы өрістердің бірдей мәндері болатыны жиі кездеседі. Мысалы, бірнеше адамды аты, тегі және тіпті әкесінің аты бойынша табуға болатын әлеуметтік желілер. Ал реляциялық дерекқорлар жазбаға қол жеткізу үшін пайдаланылатын бірегей өрісті қажет етеді. Бұл бірінші кілт немесе Негізгі кілт деп аталады. Әдетте, ID(id) өрісі осындай кілт ретінде пайдаланылады - бұл идентификатордың қысқартылған нұсқасы. Сондықтан әрбір кестеге ID өрісін қосу керек .«А-дан Я-ға Java жобасы»: мәліметтер қорын және SQL тілін талдау - 7

Сыртқы кілт

Біздің мысалда мұндай өріс Ел кілтін пайдаланатын Қала кестесінде орналасқан. Және ол былай жұмыс істейді: әр қала өз елі үшін бірегей ақпараттық идентификаторды біледі және оны алып, мәліметтер базасында сұраныс жасасақ, біз ел туралы жан-жақты ақпарат аламыз. Суретте көріп отырғаныңыздай, екі кесте арасында байланыс бар: «А-дан Я-ға Java жобасы»: мәліметтер қорын және SQL тілін талдау - 8Сыртқы кілт принципі мұнда көрсетілген.

SQL тілінде қандай бөлімдер бар?

Айтпақшы, сұхбат кезінде олардан SQL-де қандай операциялар бар екендігі жиі сұралады:
  • DDL (Data Definition Language) – кестелерді, олардың құрылымын және т.б. өзгертетін/құратын операторлар тобы. Яғни, кесте құру, оны жою, кестелерде өрістерді құру/жою; жаңа бастапқы кілтті құру және т.б.;
  • DML (Data Manipulation Language) – деректерді өзгертуді басқаратын операторлар тобы. Бұл мәліметтер қорындағы деректерді өзгертетін барлық операциялар: қосу, алу, өзгерту және жою;
  • DCL (Data Control Language) – пайдаланушылардың әрекеттерді орындау құқықтарын растау құралы. Белгілі бір пайдаланушыға DDL/DML әрекеттерін орындай алатындай рұқсат пен құқықтарды беру операциялары.

SQL тілінде қандай деректер түрлері бар

Кестелер белгілі бір деректер түрлерін сақтай және өңдей алады. Мұнда барлығы Java-да қолданатынымызға ұқсас болады. Негізгілеріне тоқталайық. Олардың үшеуі ғана бар, біз басқаларды қажетіне қарай және/немесе қалауымызша қосамыз: «А-дан Я-ға Java жобасы»: мәліметтер қорын және SQL тілін талдау - 9Суреттен көрініп тұрғандай, мыналар:
  • INT – бүтін мәндер. Бірегей идентификатор үшін және жай бүтін сан үшін қолданылады;
  • VARCHAR - бұл біздің жолымыз ;
  • DATE – біздің жергілікті күн.
Әзірге бәрі қарапайым, солай емес пе? Кестені құру кезінде өріс түрлері көрсетіледі. Өріске басқа түрдегі мәнді жазу мүмкін болмайтыны анық.

SQL операторлары дегеніміз не

Оператор - бұл қандай да бір әрекетті орындайтын жеке команда. Операторлар сөйлемдерден тұрады, олар өз кезегінде сұрауларда қолданылатын түйінді сөздерден тұрады. Мысалға қарайық: «А-дан Я-ға дейін Java жобасы»: мәліметтер қорын және SQL тілін талдау - 10Бұл жерде қызық, мұнда сұрау салынған. Олар онда не істеп жүр? Бұл қарапайым, ол былай дейді: «Клиенттер кестесінен үш өрісті (Аты, Жасы және Жасалған күні) алыңыз, аты римдікке тең болатын жазбаларды ғана таңдаңыз.»

Қорытынды

Бұл мақалада біз мәліметтер қорын зерттей бастадық. Біз оның не екенін және бізге не үшін қажет екенін түсіндік. Әрі қарай, біз келесі мақалада толығырақ айтатын SQL-тің алғашқы белгілерін қарастырдық. Әдеттегідей, мен GitHub сайтында тіркелуді және осы серияны және мен онда жұмыс істейтін басқа жобаларымды қадағалау үшін тіркелгімді орындауды ұсынамын.

Үй жұмысы

JRTB-дегі осы мақалалар сериясына қызығушылықты арттыру үшін мезгіл-мезгіл үй тапсырмалары болады. Мысалы, бүгінгі тапсырма болмаса, келесі мақаланы түсіну әлдеқайда қиын болады, өйткені ол жерде тәжірибе көп болады. Сондықтан компьютерге MySQL ДҚБЖ орнату және консоль арқылы немесе басқа шешімдер арқылы дерекқорға кіру міндеті. Оқығандарыңызға рахмет, жақын арада кездескенше!

Сериядағы барлық материалдардың тізімі осы мақаланың басында.

Пікірлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION