Чоң энеңизге SQL менен NoSQL ортосундагы айырманы кантип түшүндүрсө болот

Чоң энеңизге SQL менен NoSQL ортосундагы айырманы кантип түшүндүрсө болот

Иштеп чыгуучу кабыл алган эң маанилүү чечимдердин бири - кайсы маалымат базасын колдонуу керек. Көп жылдар бою варианттар структураланган сурам тилин (SQL) колдогон ар кандай реляциялык маалымат базасынын варианттары менен чектелген. Аларга MS SQL Server, Oracle, MySQL, PostgreSQL, DB2 жана башка көптөгөн нерселер кирет.

Акыркы 15 жылдын ичинде көптөгөн жаңы маалымат базалары No-SQL ыкмасы менен рынокко кирди. Аларга Redis жана Amazon DynamoDB сыяктуу ачкыч-баалуу дүкөндөр, Cassandra жана HBase сыяктуу кеңири мамычалар базалары, MongoDB жана Couchbase сыяктуу документ дүкөндөрү, Elasticsearch жана Solr сыяктуу графикалык маалымат базалары жана издөө системалары кирет.

Бул макалада биз SQL жана NoSQLди алардын функционалдуулугуна кирбестен түшүнүүгө аракет кылабыз.
Мындан тышкары, биз жолдо бир аз кызыктуу болот.

Чоң энеге SQLди түшүндүрүү

Чоң эне, мен сенин жалгыз неберең эмесмин деп ойло. Тескерисинче, апам менен атам бири-бирин коёндой сүйүп, 100 балалуу болушту, анан дагы 50 бала асырап алышты.

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

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

Бир баракта биз тизмени түзөбүз "Неберелер". ар бала небере ал жөнүндө кээ бир маанилүү маалыматтар менен жазылган, анын ичинде азыр кантип көрсөтө турган уникалдуу сан небереси ал. Ошондой эле, уюштуруу максатында, тизмеде кандай маалымат камтылганын билүү үчүн, тизменин башына аталган атрибуттарды жазабыз.

id
ысым
туулган күн
акыркы сапар
кийим өлчөмү
сүйүктүү балмуздак
кабыл алынган

1
Jimmy
09-22-1992
09-01-2019
L
жалбыз шоколад
жалган

2
Джессика
07-21-1992
02-22-2018
M
Таштак жол
чыныгы

...биз тизмени улантабыз!

Неберелердин тизмеси

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

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

id
небере_ид
ысым
туулган күн

1
2
ЖАКАН жазган Жакшы Кабар
06-01-1988

2
9
Fernanda
03-05-1985

... дагы жубайлар!

Жубайлардын тизмеси

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

Бир нече ондогон печеньеден кийин, мен укташым керек. – Уланта аласызбы, чоң эне? Мен уйкуга кетип жатам.

Мен бир нече сааттан кийин кайтып келем. Сиз сонун экенсиз, чоң эне! Тизмеден башкасынын баары сонун көрүнөт эрмек. Тизмеде 1000ге жакын хобби бар. Алардын көбү кайталанып турат; эмне болду?

небере_ид
эрмек

1
велосипед тебүү

4
велосипед тебүү

3
велосипед тебүү

7
чуркоо

11
велосипед тебүү

…Биз улантабыз!

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

id
эрмек

1
велосипед тебүү

2
чуркоо

3
сүзүү

... көбүрөөк хобби!

Хоббилердин тизмеси

Биздин хобби тизмебиз болгондон кийин, биз экинчи тизмебизди түзүп, аны атайбыз "Неберелердин хоббиси«.

небере_ид
hobby_id

4
1

3
1

7
2

…дагы!

Неберелердин хоббилеринин жалпы тизмеси

Ушунун баарын аткаргандан кийин, чоң эненин эс тутуму бар, анын бүтүндөй укмуштуудай чоң үй-бүлөсүн көзөмөлдөй алат. Анан дагы - мени көпкө кармаш үчүн - ал сыйкырдуу суроо берет: "Мунун баарын жасоону кайдан үйрөндүң?"

Реляциялык маалымат базалары

Реляциялык маалымат базасы бул формалдуу сүрөттөлгөн таблицалардын жыйындысы (биздин мисалда бул барактар), алардан сиз кире аласыз. маалымат же таблицаларды кайра иретке келтирбестен, аларды ар кандай жолдор менен чогултуу маалыматтар базасы. Реляциялык маалымат базаларынын ар кандай түрлөрү бар, бирок тилекке каршы кагаздагы тизме алардын бири эмес.

Эң популярдуу реляциялык маалымат базаларынын өзгөчөлүгү - SQL (Structured Query Language) суроо тили. Анын аркасы менен чоң эне эс тутумун компьютерге өткөрсө, «өткөн жылы мага ким барган эмес, үйлөнгөн жана хоббиси жок?» деген суроолорго тез эле жооп ала алат.

Эң популярдуу SQL маалымат базасын башкаруу системаларынын бири ачык булак MySQL. Бул, биринчи кезекте, интернетке негизделген программалык тиркемелер үчүн реляциялык маалымат базасын башкаруу системасы (RDBMS) катары ишке ашырылат.

MySQL кээ бир негизги өзгөчөлүктөрү:

  • Бул абдан белгилүү, көп колдонулган жана көп сыноодон өткөн.
  • SQL жана реляциялык маалымат базалары менен тажрыйбасы бар көптөгөн тажрыйбалуу иштеп чыгуучулар бар.
  • Маалыматтар ар кандай таблицаларда сакталат, бул негизги жана чет өлкөлүк ачкычтарды (идентификаторлорду) колдонуу менен байланыштарды түзүүнү жеңилдетет.
  • Аны колдонуу оңой жана натыйжалуу, бул чоң жана чакан бизнес үчүн идеалдуу.
  • Булак коду GNU General Public License шарттарына ылайык.

Эми унут ALL.

Чоң энеге NoSQL түшүндүрүү

Чоң апа, биздин чоң үй-бүлөбүз бар. Анын 150 небереси бар! Алардын көбү үй-бүлөлүү, балалуу, бир нерсеге ынак ж.б.у.с. Сиздин жашыңызда баарыбыз жөнүндө баарын эстеп калуу мүмкүн эмес. Сизге эс тутум системасы керек!

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

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

{ 
  "_id":"dkdigiye82gd87gd99dg87gd",
  "name":"Cody",
  "birthday":"09-12-2006",
  "last_visit":"09-02-2019",
  "clothing_size":"XL",
  "favorite_ice_cream":"Fudge caramel",
  "adopted":false,
  "hobbies":[ 
     "video games",
     "computers",
     "cooking"
  ],
  "spouse":null,
  "kids":[ 

  ],
  "favorite_picture":"file://scrapbook-103/christmas-2010.jpg",
  "misc_notes":"Prefers ice-cream cake on birthday instead of chocolate cake!"
}

Я: "Баары даяр окшойт!"
тай эне: -Токто, калган неберелеричи?
Я: "Ооба так. Анан ар бирине бирден барак бөлүп бергиле».
тай эне: "Сизге жазгандай, бардыгы үчүн бирдей маалыматты жазуу керекпи?"
Я: "Жок, сен кааласаң гана. Көрсөтөм".
Чоң энемдин калемин колго алып, баракты барактап, эң жакшы көргөн жеңем тууралуу маалыматтарды тез эле жазып алам.

{ 
  "_id":"dh97dhs9b39397ss001",
  "name":"Tanner",
  "birthday":"09-12-2008",
  "clothing_size":"S",
  "friend_count":0,
  "favorite_picture":null,
  "remember":"Born on same day as Cody but not as important"
}

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

Баары бүткөндөн кийин, ал сыйкырдуу суроо берет: "Мунун баарын жасоону кайдан үйрөндүң?"

NoSQL маалымат базалары

Көптөр бар NoSQL маалымат базалары («SQL гана эмес»). Биздин мисалдарыбызда көрсөттүк документ базасы. NoSQL маалымат базалары реляциялык маалымат базаларында колдонулган таблица мамилелерин жокко чыгарган жол менен маалыматтарды моделдейт. Бул маалымат базалары 2000-жылдардын башында белгилүү масштабдуу талаптардан улам (Фейсбук сыяктуу) булут негизиндеги маалымат базасын кластерлөө керек болгон компаниялар менен популярдуу болуп калды. Мындай тиркемелерде берилиштердин ырааттуулугу аткарууга жана масштабдуулукка караганда анча маанилүү эмес.

Башында, NoSQL маалымат базалары көбүнчө niche маалыматтарды башкаруу милдеттери үчүн колдонулган. Негизинен, интернет жана булут тиркемелери жөнүндө сөз болгондо, NoSQL маалымат базалары олуттуу көлөмдөгү маалыматтарды иштетип, бөлүштүрөт. NoSQL инженерлерине ошондой эле ийкемдүү маалымат схемасы (же анын жоктугу) жакты, андыктан жаңыртылган тиркемелерде тез өзгөрүүлөр болушу мүмкүн.

NoSQL негизги өзгөчөлүктөрү:

  • Маалыматтарды сактоонун абдан ийкемдүү жолу
  • Кластерлерге горизонталдуу масштабдоо
  • Туруктуу/жайылышы боюнча мүмкүн болгон ырааттуулук
  • Уникалдуу ачкычтар менен аныкталган документтер

Детальдуу салыштыруу

MySQL аныкталган жана структураланган схеманы талап кылат.
NoSQL каалаган маалыматты "документте" сактоого мүмкүндүк берет.

MySQL чоң коомчулукка ээ.
NoSQL чакан жана тез өсүп жаткан коомчулукка ээ.

NoSQLди масштабдоо оңой.
MySQL көбүрөөк башкарууга муктаж.

MySQL маалымат базаларынын көптөгөн түрлөрүндө колдонулган SQLди колдонот.
NoSQL популярдуу ишке ашыруулар менен маалымат базасына негизделген дизайн.

MySQL стандарттык суроо тилин (SQL) колдонот.
NoSQL стандарттык суроо тилин колдонбойт.

MySQL көптөгөн мыкты отчеттук куралдары бар.
NoSQL стандартташтыруу кыйын болгон бир нече отчеттук куралдарга ээ.

MySQL чоң маалыматтар үчүн аткаруу маселелерин көрсөтө алат.
NoSQL чоң маалыматтар боюнча мыкты аткарууну камсыз кылат.

Ой 8база

Компанияда 8базамен иштеген жерде биз AWSде жайгашкан Aurora MySQL реляциялык маалымат базасы менен ар бир долбоор үчүн жумушчу мейкиндигин камсыз кылабыз. Сиздин тиркемеңиз жогорку өндүрүмдүүлүктү жана масштабдуулукту талап кылганда NoSQL логикалык тандоо болсо да, биз DBMS тарабынан берилген күчтүү маалыматтардын ырааттуулугу SaaS тиркемелерин жана башка бизнес программаларын курууда маанилүү деп эсептейбиз.

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

8base.com сайтында Aurora, Serverless жана GraphQL менен иштеп чыгуу жөнүндө көбүрөөк билиңиз бул жерде.

Source: www.habr.com

Комментарий кошуу