JavaRush /Курстар /All lectures for KY purposes /Маалымат базалары менен тереңирээк таанышуу

Маалымат базалары менен тереңирээк таанышуу

All lectures for KY purposes
Деңгээл , Сабак
жеткиликтүү

1.1 Лекцияларды түзүү принциптери

Биз сага менен маалымат базалары менен төмөндөн баштап тааныштык. Бул менин окутуудагы өзгөчө мамилем. Жаңы темаларды айта кетсем, ар дайым биринчи практикалык колдонуу тууралуу айтып берем. Анан мен билип алганда, адам аларды колдонууга үйрөнгөн учурда, мен түзүлүшүн айта баштайм.

Мындай мамиленин себеби бир нече, бирок негизгиси - окутуу процессинде эң баалуу жана эң жетишпей турган ресурс - бул студенттин мотивациясы.

Бул мамиле бизге көнүмүш болгон мектептерде жана университеттерде колдонулган ыкмага азыраак окшош. Бирок ал жакта бардыгы түшүнүктүү: мектепте же университетте окуп жатканда, сенин приоритеттери туура коюлган: окуу - ошол учурда эң маанилүү нерсе.

Эгерде сен чоң кишилерде өзүн өзү окутаткан болсоң, көп учурда окууну жумуш, үй иштер, балдар же карылар менен айкалыштырууга туура келет. Бул жерде көп учурда окуу биринчи орунда болбой калат.

Бул бардыгы приоритеттерде. Стартап дүйнөсүндө дагы ушундай концепция бар - Fail Fast, тезирээк кулап түш. Бул кызык угулат, бирок чындыгында бул көп мааниге ээ: стартаптын максаты - анын гипотезасын тезирээк текшерүү. Эгерде ал туура эмес болсо, анда ага жылдарды коротпой, эртерээк түшүнүп алганың жакшыраак болот, бул продукция же кызматка суроо-талап жок болушу мүмкүн.

Мен Java жана SQL окутууда ушул эле мамилени колдоном: мен мүмкүнчүлүк берем, сага программалоо жагат же жок экенин тезирээк түшүн. Эгерде жагат, жана программалоо сага жагат, жана сен өзүн өзү циклдар жана массивдер менен иштөөнү үйрөнсөң, анда менторлордун жана туура түзүлгөн программалардын жардамында сен окууну бүтүрүүгө жана жумуш табууга жакшы мүмкүнчүлүк бар.

Эки дем алыш күндө сен программалоо сага ылайык болбой турганын тушүнө аласың. Аны сага кызыксыз болушу мүмкүн, жана бул нормалдуу. Демек, ага өмүрүңдүн айларын коротууга кереги жок.

Окумуштуулар факультетинде окуган студенттердин 40% гана кесибинде иштейт. Ойлончу, адамдар 5-6 жыл окушкан, жана алардын 60%ы кесибинде иштебөөнү чечишкен. Ооба, алынган билимдердин бир бөлүгү дагы деле колдонулат, бирок жарымынан көбү колдонулбайт.

Бул Fail Fast концепциясынын баалуулугу - сага ылайыктуу эмес кесипти, адамды же хоббини эртерээк түшүнүп алуу керек. Жана аларга убактыңды жана күчүңдү коротпо. Узун мөөнөттө бул абдан жакшы стратегия.

1.2 SQL жана баары, баары, баары

Философиялык киришүүнү бүтүрдүк, эми SQLди үйрөнүүгө кайталы.

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

СУБД канчалык кымбат болсо, стандарттын функцияларын ошончолук көп ишке ашырат. Ошондой эле көптөгөн СУБДлер стандарттардан тышкары өздөрүнүн уникалдуу функцияларын ишке ашырышат. Кээде бул көйгөйлөргө алып келет: бир СУБД үчүн жазылган SQL суроолору башкасында начар иштейт.

Javaда да ушундай абал бар. Эгерде Java программасы Windows үчүн жазылса, ал Linuxта жакшы иштебейт. Бул көйгөйдү чечүү үчүн, Javaда ар түрдүү операциялык системалар үчүн ар түрдүү ишке ашырылыштарга ээ атайын класстар киргизилет. Мисал: класс Path, ал WindowsPath, LinuxPath жана башкаларга ээ.

Экинчи маселе версияциялоо менен чечилет. Ар түрдүү тилдерден же СУБДлерден бардык ийгиликтүү жаңылыктар JDK же SQL жаңы стандартына кошулат. Сен буга чейин ар кандай версиялары бар экенин билесиң, жана версия канчалык жаңы болсо, анда ошончолук көп функциялар бар. SQL тили менен деле ушундай.

SQL тилинде бир нече версиялары бар, алар жылдарына жараша аталып коюлган:

  • SQL:1999
  • SQL:2003
  • SQL:2006
  • SQL:2011
  • SQL:2016
  • SQL:2019

Жакшы жаңылык: биз бул стандарттарды окубайбыз. Биринчиден, мунун бардыгын үйрөнүү жана өздөштүрүү үчүн жылдар керектелет. Экинчиден, бул стандарттар - Android версиялары сыяктуу: стандарт чыгарылгандан кийин гана 5-10 жыл өтүп, кеңири таралууда болот.

Маалымат базаларында чоң көлөмдөгү маалыматтарда адамдарга ишеничтүүлүк жана туруктуулук керек. “Иштеп жатат – тийбегиле” — бул маалымат базалары менен иштегендердин урааны. Жаңы версияга өтүү 5 жыл сайын жасалат, эгеричтүү чечимдердин пайдастары билинген учурда.

1.3 Кыйытмалар боюнча

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

Дээрлик бардык заманбап маалымат базалары колдойт:

1 Procedural Language (PL)

СУБДлер SQL-серверде ишканаларды жана функцияларды жазуу мүмкүнчүлүгүн колдошот, алар суроо-талаптардын учурунда маалыматтар менен көп нерселерди жасай алышат. Мисалы, мен мурда Oracle серверине PL SQL суроолорун жазганмын, алар суроо-талапка жооп катары HTML баракча менен маалыматтарды генерациялачу. Мунун да мүмкүнчүлүгү бар.

2 Окуялар (Triggers)

Бардык заманбап СУБДлер окуялар механизмин колдошот, алар SQL тилинде триггерлер деп аталат. Триггер кандайдыр бир аракетке жооп катары пайда болот. Мисалы, базага жазуу аракеттерин кармап калуу жана жаңы саптарга алардын өзгөрүү убактысын кошуу мүмкүн.

3 Журналдоо (log)

Заманбап маалымат базалары тез аракеттенүүнү максат кылат, ошондуктан бардык өзгөрүүлөр (жаңы саптар, өчүрүлгөн, өзгөртүлгөн) адегенде атайын файлга, журналга жазылат. Анан убакыт өткөн сайын SQL-сервер бул жазууларды негизги маалымат базасына бириктирет.

Бул Javaдагы Garbage Collector жүрүм-турумуна окшош: ал да алгач объекттерди өчүрүлгөн деп белгилейт, анан бош убакытта тазалоо жана эстутумду оптималдаштыруу процессин жүргүзөт.

4 Кеңейтүүлөр (Plugins)

СУБДге, башка программалар сыяктуу эле, өз плагиндериңди жазууга болот. Мындай плагиндер уникалдуу маалымат типтерин, алар менен иштөө функцияларын кошууга же СУБДнын стандарттуу жүрүмүн өзгөртүүгө мүмкүнчүлүк берет. Өзгөчө ачык коддуу СУБД менен иштеп жатканда пайдалуу, анда кандайдыр бир каталар бар.

5 Таралган иштөө (кластеры)

Заманбап SQL-серверлерин иштетүүнүн типикалык сценарийи - бир нече серверден турган кластер. Эң жөнөкөй вариант - бул маалыматтар бир серверге жазылат, ал эми бир катар серверлерден окулат. Бул учурда ар кандай SQL-серверлердеги маалымат базаларынын синхрондоштуруу сценарийлерин жөндөөгө болот.

6 Шардирование

Маалымат абдан көп болгондо, аларды ар башка маалымат базаларына бөлө башташат. Андан тышкары, бир таблица ар башка маалымат базаларында бөлүктөрдө сакталат.

Шардирование вертикалдык жана горизонталдык болуп экиге бөлүнөт. Вертикалдык шардирование - бул таблицаны вертикалдык сызыктар менен кесиш сыяктуу, ал эми горизонталдык - горизонталдык жиптер боюнча.

Мисалы, биз таблицадагы бардык маалыматты жыл боюнча бөлүүнү чечтик: 2019 жылга бир таблица, 2020 жылдын маалыматтары үчүн экинчи жана башкалар. Бул горизонталдык шардирование болот.

7 Жаңы мүмкүнчүлүктөрдү кошуу

Маалымат базаларынын өнүгүүсүнүн белгилүү бир этабында аларга барган сайын көбүрөөк бизнес-логика кошула баштады. Бардыгы процедуралар, функциялар, серверлер тарабынан web-барактарды генерациялоо менен башталган жана СУБДга дээрлик бардык популярдуу тилдерди кошуу менен аяктаган: Python, JavaScript, жана Java жана C++ да.

Деталдарын изилдеп баштаганга чейин бул сонун угулат: сен чынында веб-тиркемеңдин бизнес-логикасын Javaда жазгың келеби, ал SQL-сервер ичинде аткарылат, ал жерде JDK, java- китепканалар, фреймворктар жок, аз эстутум жана дагы көп чектөөлөр?


MySQL жана Workbench орнотуу

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