April 22, 2014

Data Manipulation

Data Manipulation သည် Data Modeling ၏ အဓိက အစိတ်အပိုင်းတစ်ခုဖြစ်ပြီး၊ Data များအား အသုံးပြုရာတွင် ကျင့်သုံးသည့် နည်းနာတစ်ခု ဖြစ်ပါသည်။ Data များအား မည်ကဲ့သို့ ထည့်သွင်းမည်၊ မည်ကဲ့သို့ ပြုပြင်မည်ဆိုသည့် စည်းကမ်းများအား သတ်မှတ်ရေးသား နိုင်ပါသည်။

Relational Data Model တွင် အဓိကအားဖြင့်Data များအားအသုံးပြုနည်းနှစ်မျိုးရှိပါသည်။ ၎င်းတို့မှာ Reference နှင့် Update တို့ဖြစ်ကြသည်။ Reference သည် Relation အတွင်းမှ Tuple များအား ရှာဖွေရာတွင်၎င်း၊ Relation များမှ Data များအား ပူးတွဲ၍ ရှာဖွေရာတွင်၎င်း အသုံးပြုပါသည်။ Update လုပ်သည်ဆိုရာ၌၊ Relation အတွင်းသို့ Tuple အား အသစ် ဖြည့်စွက်ရာတွင်၎င်း၊ ရှိပြီးသား Tuple တို့အား ပြုပြင်ရာတွင်၎င်း၊ Tuple များအား ဖျက်ထုတ်ရာတွင်၎င်း အသုံးပြုနိုင်ပါသည်။ Update ပြုလုပ်ရာ၌ Relation များအတွင်း Data များမှန်ကန်မှု့ရှိရန် လိုက်နာစောင့်ထိမ်းသင့်သည့် အချက်များလည်း ရှိကြပါသည်။

Relational Data Model တွင် Data Manipulation အား ပြုလုပ်ရာ၌ Relational Algebra အား အသုံးပြုပါသည်။ Relational Algebra သည် သင်္ချာဘာသာရပ်ဆိုင်ရာ ဖော်ပြမှု့တွင် အတော်လေးကို ကောင်းမွန်သော်လည်း၊ ပရိုဂရမ်မာများက တိုက်ရိုက်ရေးသားရာတွင် အစဉ်ပြေလှသည်ဟု မဆိုနိုင်ပါ။ ထို့ကြောင့် Database Management System များတွင် Data Manipulation အား ပြုလုပ်ရန်အတွက် Query Language များအား ပံ့ပိုးထားလေ့ရှိပါသည်။ Query Language အဖြစ်အသုံးများသည်မှာ SQL ဖြစ်ပါသည်။

SQL အား အသုံးပြု၍ Data Manipulation တွင်အသုံးများသည့် Select, Insert, Update နှင့် Delete လုပ်ရုံသာမက၊ Relation ၏ ဖွဲ့စည်းပုံအား သတ်မှတ်ရာတွင်လည်း အသုံးပြုနိုင်ပါသည်။ Relation များ၏ ဖွဲ့စည်းပုံအား သတ်မှတ်ဖော်ပြရာတွင် အသုံးပြုသော SQL အား Data Definition Language (DDL) ဟု ခေါ်ပြီး၊ Relation များအား Manipulate ပြုလုပ်သော SQL အား Data Manipulation Language (DML) ဟု ခေါ်ဆိုပါသည်။ နောက်ပိုင်းတွင် အသေးစိတ် ဖော်ပြသွားပါဦးမည်။


Relational Algebra

Relational Algebra သည် Relational Data Model အား Manipulate လုပ်ရာတွင် အသုံးပြုသော တွက်ချက်နည်းဖြစ်ပြီး၊ ၎င်းတွင် Set Theory အား အခြေခံသောတွက်နည်းနှင့် Relational Database အတွက် တီထွင်ထားသော တွက်ချက်နည်းတို့ဖြင့် ဖွဲ့စည်းထားပါသည်။

Set Theory မှ အခြေခံထားသော တွက်ချက်နည်းတို့မှာ Union, Difference, Intersection နှင့် Cartesian Product တို့ ဖြစ်ကြပါသည်။ တဖန် Relational Database အတွက် တီထွင်ထားသော တွက်ချက်နည်းတို့မှာ Selection, Projection, Division နှင့် Join တို့ ဖြစ်ကြသည်။ ထို့အပြင် ၎င်းတို့အား ပြုပြင်ထားသော Outer Join နှင့် Outer Union တို့လည်း ရှိကြပါသည်။


Union

ကျွှန်တော်တို့သည် အစုတွက်နည်းအား အလယ်တန်းလောက်ကတည်းက သင်ကြားဖူးခဲ့ပါသည်။ ထိုစဉ်က သင်ကြားခဲ့သော Union ဖြစ်ပါသည်။ အစု A နှင့် အစု B အား Union လုပ်သည်ဆိုသည်ကို အောက်ပါအတိုင်း ရေးသားဖော်ပြခဲ့ဘူးသည်ကို သတိရမည် ဖြစ်ပါသည်။

အစုအတွင်းရှိ တန်ဖိုးများအား နှစ်ခု ဖော်ပြ၍ မရခဲ့ပါ။ ထို့ကြောင့် A နှင့် B တွင် 3, 4 သည် အသီးသီးပါဝင်သော်လည်း A ∪ B = {1,2,3,4,3,4,5,6} ဖြစ်မလာပဲ A ∪ B = {1,2,3,4,5,6} ဖြစ်ခြင်း ဖြစ်ပါသည်။ Relational Algebra တွင်လည်း အလားတူပင် ဖြစ်၏။

Relational Data Model တွင် Union အားအသုံးပြုလိုပါက Relation များ၏ ဖွဲ့စည်းပုံသည် အခြေခံအားဖြင့် တူညီရန်လိုအပ်ပါသည်။ ထိုမှသာ Union Algebra အား အသုံးပြု၍ ရနိုင်မည် ဖြစ်သည်။ ဥပမာအားဖြင့် ရန်ကင်းရုံးနှင့် လသာရုံးရှိ ဝန်ထမ်းများအား နမှုနာအနေနှင့် အသုံးပြုကြည့်ပါမည်။
အထက်ပါအတိုင်း U Ba သည် Yankin မှာကော Lathar မှာပါ Manager ဖြစ်သောကြောင့် Yankin_Lathar တွင် တစ်ခုတည်းသာပါဝင်ပါသည်။

Difference

Difference သည် Relation တစ်ခုအတွင်းမှ အခြားသော Relation တစ်ခု၏ Tuple များအား နှုတ်ထုတ်သည့် တွက်နည်း ဖြစ်ပါသည်။ အထက်ပါအတိုင်း Yankin နှင့် Lathar အား နမှုနာ အဖြစ်ပြန်လည် စဉ်းစားကြည့်ပါမည်။

Lathar တွင်ပါဝင်သော U Ba အား Yankin အတွင်းမှ နှုတ်ထုတ်သွားပါသည်။ တဖန် Lathar - Yankin အား စဉ်းစားကြည့်ပါမည်။
Yankin အတွင်းမှ Lathar တွင်ပါဝင်သော U Ba အား နှုတ်သွားပါမည်။ ဤနေရာတွင် သတိပြုရန်မှာ Yankin - Lathar သည် Lathar - Yankin နှင့် မတူညီသည့် အချက်ပင် ဖြစ်သည်။


Intersection

Relation နှစ်ခုလုံးတွင်ပါဝင်သော Tuple အား ရှာထုတ်ပေးနိုင်သော တွက်ချက်နည်း ဖြစ်ပါသည်။
အထက်ပါအတိုင်း Yankin နှင့် Lathar တွင်ပါဝင်သော U Ba အား ရှာဖွေပေးနိုင်ပါသည်။


Cartesian Product

Relation များတွင်ပါဝင်သော Tuple များ၏ တန်ဖိုးများအား ဆက်တွဲပူးပေါင်းပေးနိုင်ပါသည်။ ဥပမာအားဖြင့် Yankin နှင့် Product တို့၏ Tuple တို့အား အသုံးပြု၍ Cartesian Product တွက်နည်းဖြင့် တွက်ချက်ကြည့်ပါမည်။
Yankin တွင် Tuple ၄ခုပါ၍ Project တွင် Tuple ၃ခု ပါဝင်သောကြောင့် ရလဒ်သည် ၁၂ခု ဖြစ်နေမည် ဖြစ်ပါသည်။


Selection


Selection ဆိုသည်မှာ ရှာဖွေလိုသည့် Relation တစ်ခုမှ၊ ရှာဖွေလိုသည့် အကြောင်းအချက်နှင့် ကိုက်ညီသော Tuple များအား ရှာထုတ်၍ Relation အား ဖွဲ့စည်းပါသည်။ ရှာဖွေရန် အကြောင်းအချက်များအား ရေးသားရာတွင် Relation ၏ Attribute နှင့် တန်ဖိုးများအား၎င်း၊ Attribute အချင်းချင်းအား၎င်း နှိုင်းယှဉ်၍ ရေးသားရပါသည်။ အသုံးပြုနိုင်သော နှိုင်းယှဉ် Operator များမှာ =, <>, >, >=, <= တို့အား အသုံးပြုနိုင်သည်။ ထို့အပြင် Logical Operator များဖြစ်ကြသော AND, OR နှင့် NOT တို့အား အကြောင်းအချက်များအကြားတွင် အသုံးပြုနိုင်ပါသည်။



Projection


Relation တစ်ခုအတွင်းမှ ရှာဖွေလိုသည့် Attribute များအား ရွေးချယ်၍ အခြားသော Relation တစ်ခုအား ဖွဲ့စည်းထားခြင်းကို Projection ဟု ခေါ်ဆိုပါသည်။ မှုလ Relation များတွင် တူညီသော Tuple များမရှိသော်လည်း၊ Projection လုပ်၍ ရလာသော Relation များတွင် Tuple များ၏ တန်ဖိုးမှာ တူညီသွားနိုင်သော်လည်း၊ ထိုအခါမျိုးတွင် တူညီသော အခြား Tuple များအား ဖယ်ထုတ်၍ တစ်ခုတည်းကိုသာ ဖော်ပြပေးမည် ဖြစ်ပါသည်။



Join


Relation နှစ်ခုမှ သတ်မှတ်ချက်များနှင့် ကိုက်ညီသော Tuple များအား ရှာဖွေ၍ အခြားသော Relation တစ်ခုအား တည်ဆောက်သောနည်းအား Join ဟု ခေါ်ဆိုပါသည်။ Relation တစ်ခုအား Join လုပ်ရာတွင် Domain တစ်ခုအတွင်းမှ ဖြစ်သော Attribute များပါဝင်နေတတ်ပါသည်။ ထိုအခါမျိုးတွင် ၎င်းတို့အတွင်းမှ တစ်ခုတည်းကိုသာယူ၍ ဖွဲ့စည်းသော Relation အား Natural Join ဟု ခေါ်ဆိုပါသည်။





Outer Join


Relation များအား Join လုပ်ရာ၌ သတ်မှတ်ချက်နှင့် တူညီသော Tuple များကိုသာ ရှာဖွေ၍ Relation အား ဖွဲ့စည်းခဲ့၏။ ထို့ကြောင့် BRANCH b_name သည် Kamaryut နှင့် Bahan တို့သည် Join ရလဒ်တွင် ပါဝင်ခြင်းမရှိခဲ့ပါ။ သို့ရာတွင် ဘယ်ဘက်ရှိ Relation ရှိ Tuple များအား အားလုံးဖော်ပြ၍၊ ညာဘက် Relation ရှိ Attribute များအား NULL ဖြင့် ဖော်ပြသောနည်းအား LEFT OUTER JOIN ဟု ခေါ်ဆိုပြီး၊ ညာဘက်ရှိ Tuple များအား အားလုံးဖော်ပြ၍ ညာဘက်ရှိ Attribute များအား မပါဝင်ပါက NULL ဖြင့် ဖော်ပြသောနည်းအား RIGHT OUTER JOIN ဟု ခေါ်ဆိုပါသည်။ နှစ်ဘက်စလုံးမှ Tuple များအား ဖော်ပြ၍၊ ကိုက်ညီမှု့မရှိသော Attribute ၏ တန်ဖိုးများအား NULL ဖြင့် ဖော်ပြခြင်းအား FULL OUTER JOIN ဟု ခေါ်ဆိုပါသည်။



Outer Union


Relation များအား Union ပြုလုပ်ရန် ၎င်းတို့၏ ဖွဲ့စည်းထားသော ဖွဲ့စည်းပုံမှာတူညီဖို့လိုအပ်ပါသည်။ သို့ရာတွင် Outer Union အား အသုံးပြုပါက ဖွဲ့စည်းပုံမတူညီသော Relation များအားလည်း Union ပြုလုပ်၍ ရနိုင်ပါသည်။ ရလဒ် Tuple ၏ မပါဝင်သော Attribute ၏ တန်ဖိုးများအား NULL ဖြင့် ဖော်ပြမည် ဖြစ်ပါသည်။



ဆက်ပါဦးမည်။ လေးစားစွာဖြင့်။
မင်းလွင်

No comments:

Post a Comment