Java долбоорун түзүү жөнүндө бир катар макала. Анын максаты негизги технологияларды талдоо, натыйжасы телеграмма бот жазуу болуп саналат. Киришүү бөлүгү бул жерде . Aloha, программалык камсыздоо инженерлери. Бүгүн биз маалымат базалары жана SQL тor жөнүндө сөз болуп жатат. Бул макала кимге арналган? Ооба, кызыккандардын баарына. Кээ бирөөлөр сапарын ушул макаладан баштаса, башкалары кызыктуу фактыларды эстеп калууга мүмкүнчүлүк алышат. Бул бөлүгү таза теориялык болот. Маалымат базалары жана SQL синтаксиси эмне экенин айтуудан мурун, биз аларды эмне үчүн изилдей турганыбызды түшүнүп, аныкташыбыз керек. Бул этапта биз ГАНА SQL маалымат базалары жөнүндө сүйлөшөбүз : Бул макалалар сериясында биз NoSQLди карабайбыз.
Маалыматтар базасы: бул эмне
Маалыматтар базасы (мындан ары МБ) структураланган маалыматтар сакталган жер , аны суроо т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. Бул кантип иштээрин түшүнүү үчүн, келгиле, сүрөттү карап көрөлү: Колдонуучу СББЖга SQL суроо-талаптарын жөнөтөт, СББ эмне кылуу керек экенин түшүнөт, аны аткарат жана эгерде сурам маалыматтарды алуу үчүн болсо, анда аны кайтарып берет. Ошондуктан, иштеп чыгуучулар катары, биз SQL суроо тorн өздөштүрүшүбүз керек. Сиз ойлошуңуз мүмкүн: “О, башка тил. Кудайдын жардамы менен мен бул жерде Java тorн араң түшүндүм, сен мага дароо башка тилди сунуштап жатасың. Бул туура эмес: SQL маалымат базасынан жана жалпысынан программалоодон өтө алыс болгон бухгалтерлер бул тилде жаза алышы үчүн, DBMS үчүн спецификация тor катары ойлоп табылган. Бул аны үйрөнүү анчалык деле кыйын болбойт дегенди билдирет. Башкысы ПРАКТИКА-ПРАКТИКА-ПРАКТИКА. Бүгүн теория болот, бирок кийинки макала практика жөнүндө болмокчу. Реляциялык маалымат базасы эки өлчөмдүү массив-tableлардын жана алардын ортосундагы мамилелердин жыйындысы болгондуктан, иш алардын тегерегинде иштейт. Мисал жөнүндө айтсак, биз эки tableны көрсөтө алабыз - "Өлкөлөр" жана "Шаарлар" жана алардын кандайча байланышы бар. Бул этапта биз үчүн 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штер базаларынын контекстинде биз жазуулар жана талаалар жөнүндө көбүрөөк сүйлөшөбүз: Ошентип, City классынын ар бир an objectи маалымат базасындагы tableдагы жазуу экени белгилүү болду.Негизги ачкыч
Көп учурда маалымат базаларындагы талаалар бирдей мааниге ээ болот. Мисалы, бирден ашык адам аты, фамorясы жана ал тургай атасынын аты боюнча тапса болот социалдык тармактар. Ал эми реляциялык маалымат базалары жазууга кирүү үчүн колдонула турган уникалдуу талааны талап кылат. Бул биринчи ачкыч же Негизги ачкыч деп аталат. Эреже катары, ID(id) талаасы ушундай ачкыч катары колдонулат - бул идентификатордун кыскасы. Ошондуктан ар бир tableга ID талаасын кошушуңуз керек .Тышкы ачкыч
Биздин мисалда мындай талаа Өлкөнүн ачкычын колдонгон Шаар tableсында бар. Ал эми мындай иштейт: ар бир шаар өз өлкөсү үчүн уникалдуу маалыматтык идентификаторду билет жана аны алып, маалымат базасына суроо түзсөк, өлкө тууралуу толук маалымат алабыз. Сүрөттө көрүнүп тургандай, эки table ортосунда байланыш бар: Чет элдик ачкычтын принциби бул жерде көрсөтүлгөн.SQLде кандай бөлүмдөр бар?
Айтмакчы, интервью учурунда алардан SQLде кандай операциялар бар экенин көп сурашат:- DDL (Data Definition Language) — tableларды, алардын структурасын жана башкаларды өзгөртүүчү/түзүүчү операторлордун тобу. Башкача айтканда, table түзүү, аны өчүрүү, tableларда талааларды түзүү/өчүрүү; жаңы негизги ачкычты түзүү жана башкалар;
- DML (Data Manipulation Language) – маалыматтардын модификациясын башкарган операторлордун тобу. Мунун баары маалымат базасындагы маалыматтарды өзгөртүүчү операциялар: кошуу, алуу, өзгөртүү жана жок кылуу;
- DCL (Data Control Language) – колдонуучунун аракеттерди жасоо укугун ырастоочу каражат. Белгилүү бир колдонуучуга DDL/DML операцияларын аткара алышы үчүн ага жетүү жана укуктарды берүү операциялары.
SQLде кандай маалымат түрлөрү бар
Таблицалар маалыматтардын айрым түрлөрүн сактап жана иштете алат. Бул жерде бардыгы Java'да колдонгонубузга окшош болот. Негизгилери жөнүндө сүйлөшөлү. Алардын үчөө гана бар, биз башкаларды керектүү жана/же каалагандай кошобуз: Сүрөттөн көрүнүп тургандай, булар:- INT - бүтүн сандар. Уникалдуу идентификатор жана жөнөкөй бүтүн сан үчүн колдонулат;
- VARCHAR - бул биздин сап ;
- DATE биздин LocalDate.
GO TO FULL VERSION