NoSQL ဆိုတာဘာလဲ။

NoSQL ဆိုတာဘာလဲ။ NoSQL (aka “Not Only SQL”, “Non SQL”) ဆိုတာကတော့SQL(Structured Query Language)support မပေးတဲ့ non-relational Database Enginesအမျိုးအစားတစ်ခုဖြစ်ပါတယ်။ structure ေတွ relationေတွ လုပ်လို့မရဘူးေပါ့။NoSQLက document, key-value type စတဲ့ data အမျိုးအစားေတွ ကိုလက်ခံပါတယ်။ သူရဲ့အားသာချက်ကတော့ Data အများကြီးသိမ်းထားလို့ရတာေပါ့။ #SQL vs NoSQL SQLနဲ့ NoSQL အဒီကဘာတွေကွာတာလဲ။ - SQLက relational database ဖြစ်ပါပြီ။ NoSQLကတော့ Non-Relational database ဖြစ်ပါတယ်။ - SQL မှာ schema (structure) ကရှိပြီးသားဖြစ်ပြီး၊ NoSQLက dynamic schema ဖြစ်ပါတယ်။ - SQL က vertically scalable ဖြစ်ပြီး NoSQLကတော့ Horizontally scalable ဖြစ်တယ်။ Vertical Scaling ဆိုတာကေတာ့ server တစ်လုံးထဲကိုပဲ powerမြင့်နိုင်တာမျိုးေပါ။ Horizontally scaling ကတော့ server နောက်တစ်လုံးနောက်တစ်လုံးတိုးတိုးသွားနိုင်တာပေါ့။ - SQL က table base ဖြစ်ပြီး၊ NoSQLက document, key-value, graph, wide-column stores - SQL က multiple rows transactionsအတွက်ကောင်းပြီး၊ NoSQLကတော့ unstructured data (JSON, documents) အတွက်အဆင်ေပြပါတယ် #History NoSQL က 1998 / 2000လောက်ကစပြီး ေပါ်ပေါက်လာတာပါ။ developer တွေ အတွက် ရှုပ်ထွေးတဲ့ data model တွေကြောင့် developmetn cost များလာစေပါတယ်။ ဒါကြောင့် NoSQLက developer Productivity ကို အများကြီးတိုးလာစေခဲ့ပါတယ်။ Mongodb, Apache CouchDB, Redid, InfinityDB, Amazon’s DynamoDB စတဲ့ document-oriented database၊ JSON, key-value database စသဖြင့်အမျိုးမျိုးရှိလာပါတယ်။ #Type of NoSQL databases #Key-value Database Data သိမ်းတဲ့အခါ key နဲ့value pair ကိုတွဲသိမ်းတာမျိးပေါ့။ Key တစ် ခုတိုင်းမှာသူ့ရဲ့ value ရှိနေတာမျိုးပေါ့။ Key မှာဆိုရင် JSON, XML, string စသဖြင့်အမျိုးမျိုးသုံးလို့ရပါတယ်။ ဥပမာအအားဖြင့်ဆိုရင် Name (key) => Peter (Value) စသဖြင့်ေပါ့။ data အများစုက related မဖြစ်တာမျိုး၊ data model များတာမျိုးကိုကောင်းကောင်းစိမန်နိုင်ပါတယ်။ Amazon DynamoDBm, Redis, ArangoDB စဖြင့် အမျိုးမျိုးရှိကြပါတယ်။ User personallization ၊ recomandation, ecomerce carts, Session စတဲ့ အလျင်အမြန်များသွားနညး်သွားမြန်တဲ့နေရာမျိုးမှာသုံးပါတယ်။ #Document database Data ကို document အမျိုးအစားတဲ့ သိမ်းတာမျိုးေပါ့။ JSON (JavaScript Object Notation) နဲ့သိမ်းတာမျိုးပါ။ document ထဲမှာလဲ field နဲ့ valueပါပါတယ်။ string, booleans, arrays, numbers, object စတာတွေ သုံးလို့ရပါတယ်။ MongoDB, Google Cloud Firestore, Amazon DynamoDB စတဲ့အမျိုး မျိုးရှိပါတယ်။ User Profiles, Content Managment စတဲ့ content type အမျိုးမျိုး(video,songs,etc)ကိုသိမ်းလိုတဲ့အခြေအနေမျိုးအတွက်သင့်လျော်ပါတယ်။ #Column Family Data stores or wide column data store Data တွေကို table, row, columnနဲ့ သိမ်းတာဖြစ်ပြီး row ကို key အဖြစ် ဘူစပြီး၊ column ကို dynamic column/ Name, Value အဖြစ် column( Name,Value) တိုးတိုးပြီးအများကြီး သိမ်းလို့ရအောင်လုပ်ထားတာပေါ့။ Relational Database နဲ့ယှဥ်ကြည့်မယ်ဆိုရင် RD ရဲ့ table တွေက ဒီမှာ row Key အဖြစ်ယူစနိုင်ပြီး၊ RD ရဲ့ table columnနဲ Rowက ဒီမှာ Column Nameနဲ့ Valueေပါ့။ အားသူချက်ကတော့ Multidimensional key store လုပ်လို့ရတယ်, semi structured data လိုေပြာလို့ရတာပေါ့။ Google’s Bigtable, Cassandra, HBase စတာတွေရှိပါတယ်။ Column Family Data stores မှာ ၂ ခု ပြန်ရှိပါတယ်။ 1) Standard Column Family 2) Super Column Family ဆိုပြီး နစ်ခုပြန်ရှိပါတယ်၊ Preferences, Business Intelligence, Reporting system စတဲ့ multidimensional data structure ကိုသုံးပြီးပိုကောင်းတဲ့ result ပေးနိုင်တာမျိုးပေါ့။ #Graph Databases Graph Database ဆိုတာကေတာ့ nodesနဲ့ relationships ကို tables, documents တွေအစားသုံးထားတာမျိုးပေါ့။ အရမ်းကိုကျယ်ပြန်ပြီး ရှုပ် ထွေးတဲ့ Connection မျိုးတွေကြားမှာချိတ်ဆက်ထားတဲ့အခါ တစ်ခြား databaseတွေအားလုံးရဲလုပ်ဆောင်နိုင်စွမ်းထက်သာလွန်နေပါတယ်။ အဲ့အခါ Graph Database ကသာလုပ်ဆောင်နိုင်တာပေါ့။ Flexible ဖြစ်ပြီး အရမ်းများပြီး ရှုပ်ထွေးတဲ့ data connectionတွေကြားမှာတောင် perfomance အရမ်းကောင်းတဲ့လုပ်ဆောင်ချက်တွေလုပ်ဆောင်နိုင်ပါတယ်။ Aligen Structure ဖြစ်ခြင်း၊ Powerfullအရမ်းဖြစ်ခြင်း၊ Realt time result ေပးနိုင်ခြင်းစတဲ့အားသာချက်တွေလဲအများကြီးရှိပါတယ်။ 360 Customer Views, Data science, Social Network, Recommendation Engines, Risk assessment, Fraud detection စတဲ့ နယ်ပယ်တွေမှာသုံးကြပါတယ်။ Neo4j, ArangoDB, DataStax စတဲ့ database အမျိုးမျိုးရှိပါတယ်။ ဟုတ်ပါပြီ ဒီနေတော့ NoSQL နဲ့ပတ်သက်ပြီး ဘာလဲသိသွားပြီထင်ပါတယ်။ NoSQLမသွားချင် SQLက အရင်လေ့လာဖို့တော့ recommend ပေးပါတယ်။ ဘာလို့ဆို relation တွေ joinတာတွေကလဲစိတ်ဝင်စားဖိုကောင်းပြီးအသုံးဝင်တာမို့ပါ။Facebook မှာရော Telegramမှာပါ ဝင်ရောက်ဆွေးနွေးပေးကြပါဗျ။Facebook page ၊ telegram channel နဲ့ Youtube Channel ကို follow subscribe လုပ်သွားနိုင်ပါတယ်ဗျ။ Facebook - @callmedevbypeter Telegram - @callmedevbypeter Youtube - Call Me Dev by Peter သိချင်တဲ့အကြောင်းအရာရှိရင် comment မှာရေးသွားပါဗျ။ Thanks you ပါ။ #callmedevbypeter #NoSQL #web_development #database

blog

NoSQL ဆိုတာဘာလဲ။

NoSQL ဆိုတာဘာလဲ။ NoSQL (aka “Not Only SQL”, “Non SQL”) ဆိုတာကတော့SQL(Structured Query Language)support မပေးတဲ့ non-relational Database Enginesအမျိုးအစားတစ်ခုဖြစ်ပါတယ်။ structure ေတွ relationေတွ လုပ်လို့မရဘူးေပါ့။NoSQLက document, key-value type စတဲ့ data အမျိုးအစားေတွ ကိုလက်ခံပါတယ်။ သူရဲ့အားသာချက်ကတော့ Data အများကြီးသိမ်းထားလို့ရတာေပါ့။ #SQL vs NoSQL SQLနဲ့ NoSQL အဒီကဘာတွေကွာတာလဲ။ - SQLက relational database ဖြစ်ပါပြီ။ NoSQLကတော့ Non-Relational database ဖြစ်ပါတယ်။ - SQL မှာ schema (structure) ကရှိပြီးသားဖြစ်ပြီး၊ NoSQLက dynamic schema ဖြစ်ပါတယ်။ - SQL က vertically scalable ဖြစ်ပြီး NoSQLကတော့ Horizontally scalable ဖြစ်တယ်။ Vertical Scaling ဆိုတာကေတာ့ server တစ်လုံးထဲကိုပဲ powerမြင့်နိုင်တာမျိုးေပါ။ Horizontally scaling ကတော့ server နောက်တစ်လုံးနောက်တစ်လုံးတိုးတိုးသွားနိုင်တာပေါ့။ - SQL က table base ဖြစ်ပြီး၊ NoSQLက document, key-value, graph, wide-column stores - SQL က multiple rows transactionsအတွက်ကောင်းပြီး၊ NoSQLကတော့ unstructured data (JSON, documents) အတွက်အဆင်ေပြပါတယ် #History NoSQL က 1998 / 2000လောက်ကစပြီး ေပါ်ပေါက်လာတာပါ။ developer တွေ အတွက် ရှုပ်ထွေးတဲ့ data model တွေကြောင့် developmetn cost များလာစေပါတယ်။ ဒါကြောင့် NoSQLက developer Productivity ကို အများကြီးတိုးလာစေခဲ့ပါတယ်။ Mongodb, Apache CouchDB, Redid, InfinityDB, Amazon’s DynamoDB စတဲ့ document-oriented database၊ JSON, key-value database စသဖြင့်အမျိုးမျိုးရှိလာပါတယ်။ #Type of NoSQL databases #Key-value Database Data သိမ်းတဲ့အခါ key နဲ့value pair ကိုတွဲသိမ်းတာမျိးပေါ့။ Key တစ် ခုတိုင်းမှာသူ့ရဲ့ value ရှိနေတာမျိုးပေါ့။ Key မှာဆိုရင် JSON, XML, string စသဖြင့်အမျိုးမျိုးသုံးလို့ရပါတယ်။ ဥပမာအအားဖြင့်ဆိုရင် Name (key) => Peter (Value) စသဖြင့်ေပါ့။ data အများစုက related မဖြစ်တာမျိုး၊ data model များတာမျိုးကိုကောင်းကောင်းစိမန်နိုင်ပါတယ်။ Amazon DynamoDBm, Redis, ArangoDB စဖြင့် အမျိုးမျိုးရှိကြပါတယ်။ User personallization ၊ recomandation, ecomerce carts, Session စတဲ့ အလျင်အမြန်များသွားနညး်သွားမြန်တဲ့နေရာမျိုးမှာသုံးပါတယ်။ #Document database Data ကို document အမျိုးအစားတဲ့ သိမ်းတာမျိုးေပါ့။ JSON (JavaScript Object Notation) နဲ့သိမ်းတာမျိုးပါ။ document ထဲမှာလဲ field နဲ့ valueပါပါတယ်။ string, booleans, arrays, numbers, object စတာတွေ သုံးလို့ရပါတယ်။ MongoDB, Google Cloud Firestore, Amazon DynamoDB စတဲ့အမျိုး မျိုးရှိပါတယ်။ User Profiles, Content Managment စတဲ့ content type အမျိုးမျိုး(video,songs,etc)ကိုသိမ်းလိုတဲ့အခြေအနေမျိုးအတွက်သင့်လျော်ပါတယ်။ #Column Family Data stores or wide column data store Data တွေကို table, row, columnနဲ့ သိမ်းတာဖြစ်ပြီး row ကို key အဖြစ် ဘူစပြီး၊ column ကို dynamic column/ Name, Value အဖြစ် column( Name,Value) တိုးတိုးပြီးအများကြီး သိမ်းလို့ရအောင်လုပ်ထားတာပေါ့။ Relational Database နဲ့ယှဥ်ကြည့်မယ်ဆိုရင် RD ရဲ့ table တွေက ဒီမှာ row Key အဖြစ်ယူစနိုင်ပြီး၊ RD ရဲ့ table columnနဲ Rowက ဒီမှာ Column Nameနဲ့ Valueေပါ့။ အားသူချက်ကတော့ Multidimensional key store လုပ်လို့ရတယ်, semi structured data လိုေပြာလို့ရတာပေါ့။ Google’s Bigtable, Cassandra, HBase စတာတွေရှိပါတယ်။ Column Family Data stores မှာ ၂ ခု ပြန်ရှိပါတယ်။ 1) Standard Column Family 2) Super Column Family ဆိုပြီး နစ်ခုပြန်ရှိပါတယ်၊ Preferences, Business Intelligence, Reporting system စတဲ့ multidimensional data structure ကိုသုံးပြီးပိုကောင်းတဲ့ result ပေးနိုင်တာမျိုးပေါ့။ #Graph Databases Graph Database ဆိုတာကေတာ့ nodesနဲ့ relationships ကို tables, documents တွေအစားသုံးထားတာမျိုးပေါ့။ အရမ်းကိုကျယ်ပြန်ပြီး ရှုပ် ထွေးတဲ့ Connection မျိုးတွေကြားမှာချိတ်ဆက်ထားတဲ့အခါ တစ်ခြား databaseတွေအားလုံးရဲလုပ်ဆောင်နိုင်စွမ်းထက်သာလွန်နေပါတယ်။ အဲ့အခါ Graph Database ကသာလုပ်ဆောင်နိုင်တာပေါ့။ Flexible ဖြစ်ပြီး အရမ်းများပြီး ရှုပ်ထွေးတဲ့ data connectionတွေကြားမှာတောင် perfomance အရမ်းကောင်းတဲ့လုပ်ဆောင်ချက်တွေလုပ်ဆောင်နိုင်ပါတယ်။ Aligen Structure ဖြစ်ခြင်း၊ Powerfullအရမ်းဖြစ်ခြင်း၊ Realt time result ေပးနိုင်ခြင်းစတဲ့အားသာချက်တွေလဲအများကြီးရှိပါတယ်။ 360 Customer Views, Data science, Social Network, Recommendation Engines, Risk assessment, Fraud detection စတဲ့ နယ်ပယ်တွေမှာသုံးကြပါတယ်။ Neo4j, ArangoDB, DataStax စတဲ့ database အမျိုးမျိုးရှိပါတယ်။ ဟုတ်ပါပြီ ဒီနေတော့ NoSQL နဲ့ပတ်သက်ပြီး ဘာလဲသိသွားပြီထင်ပါတယ်။ NoSQLမသွားချင် SQLက အရင်လေ့လာဖို့တော့ recommend ပေးပါတယ်။ ဘာလို့ဆို relation တွေ joinတာတွေကလဲစိတ်ဝင်စားဖိုကောင်းပြီးအသုံးဝင်တာမို့ပါ။Facebook မှာရော Telegramမှာပါ ဝင်ရောက်ဆွေးနွေးပေးကြပါဗျ။Facebook page ၊ telegram channel နဲ့ Youtube Channel ကို follow subscribe လုပ်သွားနိုင်ပါတယ်ဗျ။ Facebook - @callmedevbypeter Telegram - @callmedevbypeter Youtube - Call Me Dev by Peter သိချင်တဲ့အကြောင်းအရာရှိရင် comment မှာရေးသွားပါဗျ။ Thanks you ပါ။ #callmedevbypeter #NoSQL #web_development #database

Call Me Dev by Peter Logo

CallMeDevbyPeter

Since 2022