ACID
- ACID
ACID என்பது தரவுத்தள நிர்வாகத்தில் (Database Management) பயன்படுத்தப்படும் ஒரு முக்கியமான கருத்தாக்கம் ஆகும். இது தரவுத்தள பரிவர்த்தனைகளின் நம்பகத்தன்மை மற்றும் ஒருமைப்பாட்டை (Integrity) உறுதி செய்கிறது. ACID என்பது, அணுத்தன்மை (Atomicity), ஒருமைப்பாடு (Consistency), தனிமை (Isolation), நிலைத்தன்மை (Durability) ஆகிய நான்கு முக்கிய பண்புகளின் சுருக்கமாகும். பைனரி ஆப்ஷன் பரிவர்த்தனைகள் போன்ற நிதி சார்ந்த பரிவர்த்தனைகளில் இந்த பண்புகள் மிகவும் முக்கியமானவை. ஏனெனில், ஒரு சிறிய பிழை கூட பெரிய நிதி இழப்புகளுக்கு வழிவகுக்கும். இந்த கட்டுரையில், ACID பண்புகளைப் பற்றியும், அவை எவ்வாறு தரவுத்தள பரிவர்த்தனைகளை பாதுகாப்பாகவும் நம்பகத்தன்மையுடனும் செயல்பட வைக்கின்றன என்பதைப் பற்றியும் விரிவாகப் பார்ப்போம்.
அணுத்தன்மை (Atomicity)
அணுத்தன்மை என்பது ஒரு பரிவர்த்தனை (Transaction) முழுமையாக வெற்றிகரமாக முடிய வேண்டும் அல்லது தோல்வியடைய வேண்டும் என்பதை உறுதி செய்கிறது. பரிவர்த்தனையின் ஒரு பகுதி வெற்றிகரமாக முடிவடைந்து, மற்றொரு பகுதி தோல்வியடைந்தால், முழு பரிவர்த்தனையும் ரத்து செய்யப்பட்டு, தரவுத்தளம் அதன் முந்தைய நிலைக்குத் திரும்பும். இதை ரோல்பேக் (Rollback) என்று கூறுவோம்.
உதாரணம்: ஒரு வங்கிக் கணக்கிலிருந்து மற்றொரு வங்கிக் கணக்கிற்கு பணம் அனுப்பும் பரிவர்த்தனையை எடுத்துக் கொள்வோம். இந்த பரிவர்த்தனையில் இரண்டு முக்கிய செயல்பாடுகள் உள்ளன:
1. அனுப்புநரின் கணக்கிலிருந்து பணத்தை எடுத்தல். 2. பெறுநரின் கணக்கில் பணத்தை சேர்த்தல்.
இந்த இரண்டு செயல்பாடுகளும் அணுத்தன்மையுடன் நடைபெற வேண்டும். அதாவது, பணம் அனுப்புநரின் கணக்கிலிருந்து எடுக்கப்பட்டால், அது பெறுநரின் கணக்கில் சேர்க்கப்பட வேண்டும். ஒருவேளை பெறுநரின் கணக்கில் பணம் சேர்க்கும் செயல்பாடு தோல்வியடைந்தால், அனுப்புநரின் கணக்கிலிருந்து எடுக்கப்பட்ட பணம் திரும்ப சேர்க்கப்பட வேண்டும்.
அணுத்தன்மையை உறுதி செய்வதன் மூலம், தரவுத்தளத்தில் பாதி-முடிந்த பரிவர்த்தனைகள் ஏற்படுவதைத் தவிர்க்கலாம். இது தரவு ஒருமைப்பாட்டைப் பராமரிக்க உதவுகிறது.
ஒருமைப்பாடு (Consistency)
ஒருமைப்பாடு என்பது ஒரு பரிவர்த்தனை தரவுத்தளத்தை ஒரு நிலையான நிலையிலிருந்து மற்றொரு நிலையான நிலைக்கு மாற்ற வேண்டும் என்பதை உறுதி செய்கிறது. பரிவர்த்தனை முடிந்த பிறகு, தரவுத்தளத்தில் உள்ள அனைத்து கட்டுப்பாடுகளும் (Constraints) பூர்த்தி செய்யப்பட வேண்டும்.
உதாரணம்: ஒரு வங்கிக் கணக்கில், கணக்கின் இருப்பு எப்போதும் பூஜ்ஜியத்திற்கு மேல் இருக்க வேண்டும் என்ற கட்டுப்பாடு உள்ளது. ஒரு பரிவர்த்தனை இந்த கட்டுப்பாட்டை மீறினால், அந்த பரிவர்த்தனை தோல்வியடைய வேண்டும்.
ஒருமைப்பாட்டை உறுதி செய்வதன் மூலம், தரவுத்தளத்தில் தவறான அல்லது முரண்பாடான தரவு ஏற்படுவதைத் தவிர்க்கலாம். தரவு ஒருமைப்பாடு என்பது தரவு தரத்திற்கு மிக முக்கியமானது.
தனிமை (Isolation)
தனிமை என்பது ஒரே நேரத்தில் பல பரிவர்த்தனைகள் நடந்தாலும், ஒவ்வொரு பரிவர்த்தனையும் மற்ற பரிவர்த்தனைகளின் குறுக்கீடு இல்லாமல் தனித்தனியாக செயல்பட வேண்டும் என்பதை உறுதி செய்கிறது.
உதாரணம்: இரண்டு வாடிக்கையாளர்கள் ஒரே நேரத்தில் ஒரு பொருளை வாங்க முயற்சி செய்கிறார்கள் என்று வைத்துக்கொள்வோம். தனிமைப் பண்பு, இரு வாடிக்கையாளர்களும் பொருளை வாங்க முடியும் என்பதை உறுதி செய்கிறது. ஏனெனில், ஒவ்வொரு பரிவர்த்தனையும் மற்றொன்றின் குறுக்கீடு இல்லாமல் தனித்தனியாக செயல்படுகிறது.
தனிமையை உறுதி செய்வதன் மூலம், தரவுத்தளத்தில் தரவு இழப்பு அல்லது தரவு சிதைவு ஏற்படுவதைத் தவிர்க்கலாம். சமாந்தர செயலாக்கத்திற்கு இது மிகவும் முக்கியமானது.
தனிமை நிலைகள் (Isolation Levels): தனிமையை உறுதி செய்ய பல நிலைகள் உள்ளன. அவை:
- ரீட் அன் கமிட்டட் (Read Uncommitted): குறைந்தபட்ச தனிமை நிலை.
- ரீட் கமிட்டட் (Read Committed): பொதுவாக பயன்படுத்தப்படும் தனிமை நிலை.
- ரிப்பீட்டபிள் ரீட் (Repeatable Read): அதிக தனிமை நிலை.
- சீரியலைசபிள் (Serializable): மிக உயர்ந்த தனிமை நிலை.
நிலைத்தன்மை (Durability)
நிலைத்தன்மை என்பது ஒரு பரிவர்த்தனை வெற்றிகரமாக முடிந்தால், அதன் மாற்றங்கள் நிரந்தரமாக தரவுத்தளத்தில் சேமிக்கப்பட வேண்டும் என்பதை உறுதி செய்கிறது. கணினி செயலிழந்தாலும் அல்லது வேறு ஏதேனும் தோல்வி ஏற்பட்டாலும், தரவு இழக்கப்படக்கூடாது.
உதாரணம்: ஒரு வாடிக்கையாளர் ஒரு வங்கிக் கணக்கில் பணம் டெபாசிட் செய்கிறார் என்று வைத்துக்கொள்வோம். நிலைத்தன்மைப் பண்பு, பணம் டெபாசிட் செய்யப்பட்ட பிறகு, கணினி செயலிழந்தாலும் அந்த டெபாசிட் செய்யப்பட்ட பணம் நிரந்தரமாக சேமிக்கப்படுவதை உறுதி செய்கிறது.
நிலைத்தன்மையை உறுதி செய்வதன் மூலம், தரவு இழப்பைத் தவிர்க்கலாம். பேக்கப் மற்றும் மீட்பு செயல்முறைகள் நிலைத்தன்மையை உறுதி செய்ய உதவுகின்றன.
பைனரி ஆப்ஷன் பரிவர்த்தனையில் ACID இன் பங்கு
பைனரி ஆப்ஷன் பரிவர்த்தனைகள், நிதி சார்ந்த பரிவர்த்தனைகள் என்பதால், ACID பண்புகள் மிகவும் முக்கியமானவை. ஒரு பரிவர்த்தனை தோல்வியடைந்தால், அது பெரிய நிதி இழப்புகளுக்கு வழிவகுக்கும்.
- அணுத்தன்மை: ஒரு பைனரி ஆப்ஷன் பரிவர்த்தனை முடிந்ததும், அதன் முடிவு (வெற்றி அல்லது தோல்வி) நிரந்தரமாக பதிவு செய்யப்பட வேண்டும்.
- ஒருமைப்பாடு: பரிவர்த்தனையின் முடிவுகள், வர்த்தகரின் கணக்கில் சரியாக பிரதிபலிக்கப்பட வேண்டும்.
- தனிமை: ஒரே நேரத்தில் பல பரிவர்த்தனைகள் நடந்தாலும், ஒவ்வொரு பரிவர்த்தனையும் மற்றொன்றின் குறுக்கீடு இல்லாமல் தனித்தனியாக செயல்பட வேண்டும்.
- நிலைத்தன்மை: பரிவர்த்தனை முடிந்ததும், அதன் முடிவுகள் நிரந்தரமாக சேமிக்கப்பட வேண்டும்.
ACID பண்புகளை உறுதி செய்வதன் மூலம், பைனரி ஆப்ஷன் பரிவர்த்தனைகளின் நம்பகத்தன்மை மற்றும் பாதுகாப்பை அதிகரிக்க முடியும்.
தரவுத்தளத்தில் ACID ஐ செயல்படுத்துதல்
ACID பண்புகளை செயல்படுத்துவதற்கு பல தொழில்நுட்பங்கள் உள்ளன. அவற்றில் சில:
- லாக் மேனேஜ்மென்ட் (Lock Management): தரவுத்தளத்தில் உள்ள தரவை அணுகும் போது, லாக் பயன்படுத்தி மற்ற பரிவர்த்தனைகளின் குறுக்கீட்டைத் தடுக்கலாம்.
- ஜர்னலிங் (Journaling): பரிவர்த்தனைகளின் மாற்றங்களை ஜர்னலில் பதிவு செய்வதன் மூலம், தோல்வி ஏற்பட்டால் தரவை மீட்டெடுக்க முடியும்.
- டூ-பேஸ் கமிட் (Two-Phase Commit): பல தரவுத்தளங்களில் ஒரு பரிவர்த்தனை நிகழும்போது, அனைத்து தரவுத்தளங்களும் பரிவர்த்தனையை உறுதி செய்த பின்னரே பரிவர்த்தனை முடிக்கப்படும்.
டூ-பேஸ் கமிட் (Two-Phase Commit) செயல்முறை: 1. தயாரிப்பு கட்டம் (Prepare Phase): ஒருங்கிணைப்பாளர் (Coordinator) ஒவ்வொரு பங்கேற்பாளருக்கும் (Participant) பரிவர்த்தனையை உறுதி செய்யுமாறு கேட்கிறது. 2. கமிட் கட்டம் (Commit Phase): அனைத்து பங்கேற்பாளர்களும் பரிவர்த்தனையை உறுதி செய்த பிறகு, ஒருங்கிணைப்பாளர் பரிவர்த்தனையை முடிக்கிறது.
ACID மற்றும் NoSQL தரவுத்தளங்கள்
ACID பண்புகள் பாரம்பரிய தொடர்புடைய தரவுத்தளங்களில் முக்கியத்துவம் வாய்ந்தவை. ஆனால், NoSQL தரவுத்தளங்களில் ACID பண்புகள் பெரும்பாலும் தியாகம் செய்யப்படுகின்றன. NoSQL தரவுத்தளங்கள், பெரிய அளவிலான தரவை கையாளவும், அதிக செயல்திறனை வழங்கவும் வடிவமைக்கப்பட்டுள்ளன.
CAP தேற்றம் (CAP Theorem): CAP தேற்றம், ஒரு விநியோகிக்கப்பட்ட தரவுத்தளத்தில் (Distributed Database) ஒரே நேரத்தில் மூன்று பண்புகளை (தொடர்பு, கிடைக்கும் தன்மை, தரவு ஒருமைப்பாடு) அடைய முடியாது என்று கூறுகிறது. NoSQL தரவுத்தளங்கள், தரவு ஒருமைப்பாட்டை விட தொடர்பு மற்றும் கிடைக்கும் தன்மைக்கு முன்னுரிமை அளிக்கின்றன.
இருப்பினும், சில NoSQL தரவுத்தளங்கள் ACID பண்புகளை ஆதரிக்கின்றன.
ACID தொடர்பான தொழில்நுட்ப பகுப்பாய்வு
- பரிவர்த்தனை மேலாண்மை (Transaction Management): பரிவர்த்தனைகளை திறம்பட கையாளுதல்.
- கன் கரென்சி கண்ட்ரோல் (Concurrency Control): ஒரே நேரத்தில் பல பரிவர்த்தனைகளை நிர்வகித்தல்.
- ரிகவரி மேனேஜ்மென்ட் (Recovery Management): தோல்வி ஏற்பட்டால் தரவை மீட்டெடுத்தல்.
- லாக் மேனேஜ்மென்ட் (Lock Management): தரவு அணுகலை கட்டுப்படுத்துதல்.
- ஜர்னலிங் (Journaling): தரவு மாற்றங்களை பதிவு செய்தல்.
ACID தொடர்பான அளவு பகுப்பாய்வு
- பரிவர்த்தனை செயலாக்க நேரம் (Transaction Processing Time): பரிவர்த்தனையை முடிக்க ஆகும் நேரம்.
- பரிவர்த்தனை மூலம் (Transaction Throughput): ஒரு குறிப்பிட்ட நேரத்தில் முடிக்கப்பட்ட பரிவர்த்தனைகளின் எண்ணிக்கை.
- லாக் காத்திருப்பு நேரம் (Lock Wait Time): ஒரு பரிவர்த்தனை லாக் பெற காத்திருக்கும் நேரம்.
- ரோல்பேக் நேரம் (Rollback Time): பரிவர்த்தனையை ரத்து செய்ய ஆகும் நேரம்.
- தரவு இழப்பு விகிதம் (Data Loss Rate): தரவு இழக்கும் நிகழ்தகவு.
முடிவுரை
ACID பண்புகள் தரவுத்தள பரிவர்த்தனைகளின் நம்பகத்தன்மை மற்றும் ஒருமைப்பாட்டை உறுதி செய்கின்றன. பைனரி ஆப்ஷன் பரிவர்த்தனைகள் போன்ற நிதி சார்ந்த பரிவர்த்தனைகளில் இந்த பண்புகள் மிகவும் முக்கியமானவை. ACID பண்புகளைப் புரிந்து கொண்டு, தரவுத்தள அமைப்புகளை வடிவமைப்பதன் மூலம், தரவு இழப்பு மற்றும் தரவு சிதைவைத் தவிர்க்கலாம். மேலும், பாதுகாப்பான மற்றும் நம்பகமான பரிவர்த்தனைகளை உறுதிப்படுத்தலாம். தரவுத்தள பாதுகாப்பில் ACID இன் பங்கு இன்றியமையாதது.
இப்போது பரிவர்த்தனையை தொடங்குங்கள்
IQ Option-ல் பதிவு செய்யவும் (குறைந்தபட்ச டெபாசிட் $10) Pocket Option-ல் கணக்கு திறக்கவும் (குறைந்தபட்ச டெபாசிட் $5)
எங்கள் சமூகத்தில் சேருங்கள்
எங்கள் Telegram சேனலுக்கு சேர்ந்து @strategybin பெறுங்கள்: ✓ தினசரி பரிவர்த்தனை சமிக்ஞைகள் ✓ சிறப்பு உத்திகள் மற்றும் ஆலோசனைகள் ✓ சந்தை சார்ந்த அறிவிப்புகள் ✓ தொடக்க அடிப்படையிலான கல்வி பொருட்கள்