Calm Hill My Random Thoughts

Designing Data-Intensive Applications - Reviews

လွန်ခဲ့တဲ့ ၁၀ နှစ်လောက်ကနေ အခုအချိန်အထိ Forum တခုမှာ Database နဲ့ ပတ်သက်ပြီးတော့ အတော်များများ ဖြေပေးခဲ့ဖူးတဲ့အတွက် ကိုယ့်ကို Database နဲ့ တွဲပြီးတော့ သိကြတဲ့လူတွေရှိသလို Data Modeling နဲ့ပတ်သက်ပြီးတော့ အရေးကြီးတယ်ဆိုပြီး ပညာပေးဖို့လည်း ကြိုးစားခဲ့ဖူးတယ် ဒါပေမယ့် လူအများစုကလည်း စိတ်မဝင်စားတော့ ဆက်မလုပ်ဖြစ်ပါဘူး။ လူအများက Database ဆိုတာက Query ရေးတာပဲလို့ တရားသေမှတ်ထားတာလည်း အဆိုးတော့လည်း မဆိုသာပါဘူး အခုအချိန်အထိ Forum တွေမှာ ဖြေပေးခဲ့ဖူးသမျှမှာ နေစဉ်သုံးနေတဲ့ Query တွေကလွဲရင် သိပ်ပြီးတော့ စဉ်းစားရတဲ့ပြဿနာ အကြံပေးခဲ့ရဖူးတာ မရှိသလောက်နည်းပါတယ်။ Database ဆိုတာ Query လိုယူဆပြီးတဲ့နောက် NoSQL သုံးလိုက်ရင် Data Modeling မလိုတော့ဘူးဆိုတဲ့ လေဖမ်းဒန်းစီးတဲ့ အယူအဆတွေတောင်မှ မြင်ခဲ့ဖူးပါတယ်။

ကွန်ပျူတာပရိုဂရမ်ဆိုတာ Data တွေကိုဖတ်တယ် Process လုပ်တယ် Results တွေကို သင့်လျော်သလို ပြပေးတယ် Results တွေကိုပြန်ပြီးတော့ သိမ်းထားပေးတယ်ဆိုပြီး အလုပ်အမျိုးအစားက ၃-၄ မျိုးပဲရှိတဲ့အထဲမှာ ဖတ်တာနဲ့ သိမ်းတာက Database ဖြစ်တဲ့အတွက် Database မပါဘူးဆိုတဲ့ ပရိုဂရမ်ဆိုတာ မရှိသလောက်ရှားတယ်။ Partition ခွဲတဲ့ Utility ပရိုဂရမ်တောင်မှ Partition Table မှာ လိုအပ်သလို ရေးဖို့ဖတ်ဖို့ လိုအပ်ပါတယ်။ ကိုယ့်ရဲ့ Database ဆိုတဲ့ Definition ဆိုတာမှာ Disk/Memory/Media တခုထဲမှာ Data အရေးအဖတ်လုပ်တဲ့ ပရိုဂရမ်ကနေစပြီး Antivirus Definition ဆိုတာလည်း ကိုယ့်အမြင်မှာက Database ပဲဖြစ်လို့ Server ကြီးတွေကို Connect လုပ်ပြီး ရေးမှဖတ်မှ Database လို့ ယူဆကြတဲ့လူတွေနဲ့ အယူအဆခြင်းတော့ ကွာခြားပါလိမ့်မယ်။

Database နဲ့ ပတ်သက်ပြီးတော့ ဘာတွေလေ့လာရမလဲ မေးလာတယ်ဆိုရင် အတော်လေးဖြေရခက်တယ်။ အရင်ကတော့ Relational Model ပဲ အသုံးများခဲ့တော့ Logical Modeling အတွက်က Relational အနေနဲ့က ညွှန်းစရာစာအုပ်က ခက်ခက်ခဲခဲမရှာရဘူး ၁-၂ အုပ် ပေးလိုက်ရင် လုံလောက်တယ်။။ အခုနောက်ပိုင်းမှာ Document Database တွေ အသုံးများလာတော့ Relational Model ကို ဖတ်ခိုင်းပြန်ရင်လည်း လက်တွေ့နဲ့ ကွာဟမှုတွေ ဖြစ်လာတဲ့အတွက် ဖတ်ခိုင်းလည်း ဖတ်ကြမှာမဟုတ်ပါဘူး။ ခက်တာက Document Database တွေအနေနဲ့ကျ သီးသန့်အနေနဲ့ Model ရယ်လည်း မရှိတဲ့အတွက် ညွှန်းဖို့စာကလည်း မရှိသလောက်ရှားတယ်။ ဘာပဲသုံးသုံးပါ နောက်ဆုံးမှာတော့ ရေးတာများမှာလား ဖတ်တာများမှာလား အပြိုင်ရေးတာ ဘယ်လောက်ရှိမှာလဲ အပြိုင်ဖတ်တာ ဘယ်လောက်ရှိမှာလဲ အခြေခံပြီးတော့ သင့်လျော်တဲ့ Data Model ကိုပဲ သတ်မှတ်ရတာပါ။ Physical Model အတွက်လည်း Data တွေကို Physically အနေနဲ့ စက်တလုံးထဲကနေ စက်အများကြီးမှာ နေရာချထားမလဲ စဉ်းစားရတာတွေလည်း ဘာပဲသုံးသုံး အတူတူတွေပါ Implementation ပဲ Product တခုအလိုက် ကွာခြားတာပဲ ရှိလိမ့်မယ်။ ဆက်ပြီးတော့ ပြောမယ်ဆိုရင် Fields တွေ အများကြီးကို ဆက်စပ်ပြီးတော့ ထပ်ပြောရလိမ့်မယ်။

Database အတွက် ဘာတွေလေ့လာရမလဲ မေးလာတယ်ဆိုရင် သိဖို့လိုအပ်တာတွေက ချဲ့ရင်ချဲ့သလောက် ကြီးတဲ့အတွက် Client Programming ကနေစပြီးတော့ Operating System အလုပ်လုပ်ပုံ အပါအဝင် Networking အထိ လေ့လာဖို့လိုတာရှိတယ်။ အကြံပေးပါဆိုလို့ စာတွေအများကြီး ဖတ်ခိုင်းလိုက်ရင် လူအတော်များများက အဲဒါတွေအားလုံး သက်ဆိုင်တယ်ဆိုတာ မဖြစ်နိုင်ပါဘူး ဒီလူကြီးဟာ အင်မတန်ချဲ့တယ်လို့ ဆင်ခြေပေးစရာရပြီး ပျင်းကြတဲ့အတွက် မဖတ်ကြတာများတယ်။ စာအုပ်တအုပ်ထဲ ဖတ်ခိုင်းပြီးတော့ အဲဒါတွေအကုန်လုံး ခြုံငုံမိတဲ့စာအုပ်မျိုး လိုက်ရှာခဲ့ဖူးတယ် မတွေ့ခဲ့ဖူးဘူး။ လွန်ခဲ့တဲ့ ၃-၄ လလောက်က Designing Data-Intensive Applications ဆိုပြီး စာအုပ်တအုပ်တွေ့တယ် ဘာမှသိပ်ထူးမယ် မထင်ခဲ့မိဘူး။ အရင် ၂-၃ ပတ်လောက်ကမှ ဖတ်စရာမရှိလို့ ဖတ်ကြည့်လိုက်မိတော့ ပထမဆုံးအခန်းမှာပဲ ဒီစာအုပ်ဟာ အဆုံးအထိ ဖတ်သင့်တယ်လို့ ယူဆလို့ရလိုက်လို့ ဖတ်ဖြစ်လိုက်သလို တခြားလူတွေကိုလည်း ညွှန်းသင့်တဲ့ စာအုပ်တအုပ်လို့လည်း ယူဆလိုက်မိတယ်။ စာအုပ်အကြောင်းကတော့ အောက်မှာပြထားတဲ့ စာအုပ် Website မှာ အသေးစိတ်ကိုကြည့်ကြပါ။

https://dataintensive.net

Reviews ရေးမယ်ဆိုတော့ ဘာတွေရေးထားလဲ သိချင်ကြလိမ့်မယ် ဘာတွေရေးထားလဲ သိချင်တယ်ဆိုရင် ကိုယ်တိုင်ပဲဖတ်ပါ။ ဖတ်ပြီးရင်ဘာတွေ တတ်လာမှာလဲမေးရင် ကြိုပြီးပြောနိုင်တာက ဘာမှမတတ်လာနိုင်ပါဘူး မသိတာတွေများရင်တော့ စိတ်ဓာတ်ပဲကျဖို့ရှိလိမ့်မယ်။ ပြင်ဆင်ထားရမှာက ဖတ်ပြီးတဲ့အချိန်မှာ အခန်းတိုင်းကို ကိုယ်တကယ်နားလည်လား စဉ်းစားကြည့်ပါ မသိဘူးဆိုရင်တော့ အခန်းတိုင်းရဲ့ References တွေကို အကုန်လုံးဖတ်ဖို့လိုတယ်။ ဒီစာအုပ်ဟာ Database တွေ Data Intensive အသုံးပြုတဲ့ Software တွေနဲ့ အလုပ်လုပ်နေတဲ့ လူတွေအတွက် ကိုယ်ဘယ်လောက်သိလဲ ခေတ်မှီသေးရဲ့လား ဆန်းစစ်ဖို့အတွက် အသုံးဝင်တယ်။ မသိတသိလူတွေအတွက် ဘာတွေဆက်ပြီး လေ့လာဖို့လိုတယ် သိနိုင်ဖို့အတွက် အသုံးတည့်ပါလိမ့်မယ်။ မသိသေးတဲ့ လူတွေအတွက်လည်း ရက်စက်ရာတော့ကျနိုင်ပေမယ့် မသက်ဆိုင်ဘူးလို့ထင်ရတဲ့ Fields တွေဟာ ဆက်စပ်နေတယ်ဆိုတာ Overview အနေနဲ့ ဖတ်ခိုင်းလို့ရတဲ့ စာအုပ်တအုပ်အနေနဲ့ သုံးလို့ရပါလိမ့်မယ်။