தரவு அருவமாக்கம் - பாடக் கண்ணோட்டம்
இந்த அத்தியாயம் கணினி அறிவியலில் மிகவும் சக்தி வாய்ந்த கோட்பாடான தரவு அருவமாக்கம் பற்றியது. இதில் அருவமாக்க தரவு வகைகள் (ADT), அவற்றை உருவாக்கப் பயன்படும் ஆக்கிகள் மற்றும் செலக்டர்கள் ஆகியவற்றை மாணவர் கற்றுக்கொள்வர். மேலும், இணைகள், லிஸ்டுகள், டூபுள்கள் மற்றும் இனக்குழுக்கள் போன்ற தரவுக் கட்டமைப்புகள் எவ்வாறு தரவு அருவமாக்கத்தை நடைமுறைப்படுத்துகின்றன என்பதையும் இது விளக்குகிறது.
இந்தப் பாடத்தைப் படியுங்கள்
தரவு அருவமாக்கம் பற்றி
நடுத்தரம் ~90 நிமிடப் படிப்பு
கணினி நிரலாக்கத்தில் சிக்கலான மென்பொருள்களை எளிமையாகவும், நேர்த்தியாகவும் கட்டமைக்க தரவு அருவமாக்கம் என்ற தத்துவம் மிகவும் இன்றியமையாததாகிறது. ஒரு மென்பொருள் திட்டத்தை உருவாக்க முற்படும்போது, அதன் விரிவான உள் செயல்பாடுகளைப் பற்றி கவலைப்படாமல், அது என்ன பணியைச் செய்கிறது என்பதில் மட்டும் கவனம் செலுத்துவதற்கு இது வழிவகுக்கிறது. இது பெரிய குழுக்களில் பணிபுரியும் நிரலர்கள் ஒருவருக்கொருவர் சுயாதீனமாக செயல்பட உதவுகிறது. இதனால் நிரலாக்கத் தரம் மேம்படுகிறது.
இந்த அத்தியாயத்தின் பல்வேறு கருத்துருக்கள் ஆக்கிகள் மற்றும் செலக்டர்கள் என்ற இரண்டு முக்கிய செயல்பாடுகளின் மூலம் அருவமாக்க தரவு வகைகளை (ADT) எவ்வாறு கட்டமைப்பது என்பதை விளக்குகின்றன. இக்கோட்பாடுகள் லிஸ்டுகள், டூபுள்கள் போன்ற எளிய தரவு அமைப்புகளுடன் இணைந்து, இறுதியில் பொருள் நோக்கு நிரலாக்கத்தின் அடிப்படையான இனக்குழுக்கள் மற்றும் பொருள்களை எவ்வாறு உருவாக்குகின்றன என்ற தர்க்கரீதியான இணைப்பை மாணவர்களுக்கு மிகத் தெளிவாகப் புரிய வைக்கிறது. மேலும், இது கணினித் தரவுகளை நினைவகத்தில் திறம்பட நிர்வகிக்க வழிவகுக்கிறது.
அரசு பொதுத்தேர்வு மற்றும் போட்டித் தேர்வுகளின் பார்வையில், இப்பாடப்பகுதி மிக முக்கியத்துவம் வாய்ந்ததாகக் கருதப்படுகிறது. ஆக்கிகள் மற்றும் செலக்டர்களின் வேறுபாடுகள், கான்கிரீட் மற்றும் அருவமாக்க தரவு வகைகளுக்கு இடையேயான வேறுபாடுகள், மற்றும் லிஸ்டுகள், டூபுள்களை அடையாளம் காணும் நடைமுறை வினாக்கள் ஆகியவை தேர்வில் தொடர்ந்து கேட்கப்பட்டு வருகின்றன. எனவே, கோட்பாடுகளையும் அதன் செயல்பாடுகளையும் ஆழமாகப் புரிந்துகொள்வது மாணவர்கள் தேர்வில் மிகச் சிறந்த மதிப்பெண்களைப் பெற பெரிதும் உதவும். இதன் மூலம் அவர்கள் நவீன நிரலாக்க மொழிகளை எளிதாகக் கற்க முடியும்.
நீங்கள் கற்பவை
- அறிந்துகொள்ளுதல்: தரவு அருவமாக்கத்தின் தத்துவம் மற்றும் அதன் அவசியத்தை விளக்குதல்.
- வேறுபடுத்துதல்: ஆக்கிகள் மற்றும் செலக்டர்களின் செயல்பாடுகளைத் துல்லியமாக ஒப்பிடுதல்.
- கட்டமைத்தல்: லிஸ்டுகள் மற்றும் டூபுள்களைப் பயன்படுத்தி நினைவகத்தில் தரவு இணைகளை உருவாக்குதல்.
- ஒப்பிடுதல்: அருவமாக்க தரவு வகைகளுக்கும் கான்கிரீட் தரவு வகைகளுக்கும் இடையே உள்ள வேறுபாடுகளைப் பகுப்பாய்வு செய்தல்.
- நடைமுறைப்படுத்துதல்: இனக்குழுக்களைப் பயன்படுத்தி புதிய தரவு வகைகளை நிரலாக்கத்தில் உருவாக்குதல்.
- பயன்படுத்துடுதல்: சிக்கலான கணினி நிரல்களில் கூறுநிலைத் தன்மையை வெற்றிகரமாக செயல்படுத்துதல்.
தொடங்குவதற்கு முன்
- செயற்கூறுகள்: அடிப்படை செயற்கூறுகளின் வரையறை மற்றும் அவற்றின் பயன்பாடுகள் பற்றிய அறிவு.
- தரவு வகைகள்: மாறிகள் மற்றும் அடிப்படை தரவு வகைகளின் செயல்பாடுகள் பற்றிய தெளிவு.
- நிரலாக்க அடிப்படை: கணினி நிரலாக்கத்தின் அடிப்படை தர்க்கக் கருத்துக்களைப் புரிந்துகொள்ளுதல்.
இந்த அத்தியாயத்தில் உள்ள தலைப்புகள்
தரவு அருவமாக்கம் — விரிவான விளக்கம்
பாடத்தின் முக்கியக் கண்ணோட்டம்
தரவு அருவமாக்கம் அறிமுகம்
தரவு அருவமாக்கம் என்பது கணினி அறிவியலில் மென்பொருள் குறியீடுகளை ஒரு குறிப்பிட்ட பொருளாகக் கருதி நிர்வகிக்கும் ஒரு மிக முக்கிய தத்துவமாகும். இது பெரிய மற்றும் சிக்கலான நிரல்களை உருவாக்கும்போது, அவற்றின் உள் செயல்பாடுகள் நினைவகத்தில் எவ்வாறு இயங்குகின்றன என்பதைப் பற்றி கவலைப்படாமல், குறியீடு என்ன பணியை மேற்கொள்கிறது என்பதில் மட்டும் கவனம் செலுத்த உதவுகிறது. இந்த உயர்மட்ட அணுகுமுறை நிரல் குறியீடுகளை பல தனித்தனி தொகுதிகளாகப் பிரித்து நிர்வகிக்கும் கூறுநிலை நிரலாக்கத்திற்கு வழியமைக்கிறது. இதனால் மென்பொருள் வடிவமைப்பில் ஏற்படும் சிக்கல்கள் பெருமளவு குறைகின்றன.
அருவமாக்க தரவு வகைகள்
அருவமாக்க தரவு வகை (ADT) என்பது தரவுகளின் மீதான செயல்பாடுகளின் தர்க்கரீதியான வரையறையாகும். இது என்ன வகையான செயல்பாடுகள் செய்யப்பட வேண்டும் என்பதைக் குறிப்பிடுகிறதே தவிர, அவை கணினியின் நினைவகத்தில் எவ்வாறு சேமிக்கப்படும் அல்லது எந்த நெறிமுறையின் மூலம் செயல்படுத்தப்படும் என்பதை விளக்குவதில்லை. விவரங்களை முழுமையாக மறைத்து, அவசியமான தகவல்களை மட்டும் பயனர் இடைமுகமாக வழங்குதால், மென்பொருளின் பாதுகாப்பும் நம்பகத்தன்மையும் உறுதி செய்யப்படுகிறது. கான்கிரீட் தரவு வகைகளுக்கு நேர்மாறாக, இதன் உள்வடிவமைப்பு பயனருக்குத் தெரியாது. இது மென்பொருள் வடிவமைப்பை எளிமையாக்குகிறது.
ஆக்கிகள் மற்றும் செலக்டர்கள்
தரவு அருவமாக்கத்தை நடைமுறைப்படுத்த ஆக்கிகள் (constructors) மற்றும் செலக்டர்கள் (selectors) என்ற இரண்டு செயற்கூறுகள் அடிப்படையாக அமைகின்றன. ஆக்கிகள் என்பவை அருவமாக்க தரவு வகையைக் கட்டமைக்க அல்லது புதிய பொருளை உருவாக்கப் பயன்படும் தனித்துவமான செயற்கூறுகளாகும். செலக்டர்கள் என்பவை அவ்வாறு கட்டமைக்கப்பட்ட தரவுப் பொருளிலிருந்து தேவையான குறிப்பிட்ட தகவல்களை மீட்டெடுக்கப் பயன்படுகின்றன. இந்த இரண்டு செயற்கூறுகளும் தரவு அமைப்பின் உள் கட்டமைப்பை நேரடியாக அணுகாமல் பாதுகாப்பாக நிர்வகிக்க உதவுகின்றன. இது நிரலின் நெகிழ்வுத்தன்மையை அதிகரிக்கிறது.
விகிதமுறு எண்கள் மற்றும் ADT வடிவமைப்பு
விகிதமுறு எண்களைக் கொண்டு அருவமாக்க தரவு வகையை வடிவமைப்பது இக்கோட்பாட்டிற்கு ஒரு சிறந்த எடுத்துக்காட்டாகும். விகிதமுறு எண்ணைக் குறிக்க தொகுதி மற்றும் பகுதி ஆகிய இரு எண்களின் இணைப்பு தேவைப்படுகிறது. இங்கு ஆக்கி செயற்கூறு இவ்விரண்டையும் இணைத்து ஒரு விகிதமுறு எண்ணை உருவாக்குகிறது. மேலும், செலக்டர் செயற்கூறுகள் அதிலிருந்து தனியாக தொகுதி மற்றும் பகுதியின் மதிப்புகளை மீட்டெடுக்கின்றன. இதன் மூலம் பயனர் கணிதச் செயல்பாடுகளை உள் செயல்பாடுகளைப் பற்றி கவலைப்படாமல் மிக எளிதாக மேற்கொள்ள முடிகிறது. இது தர்க்கரீதியான அணுகுமுறையை வலுப்படுத்துகிறது.
லிஸ்டுகள் மற்றும் டூபுள்கள்
தரவு இணைகளை நினைவகத்தில் கையாளுவதற்கு பைத்தான் போன்ற நவீன மொழிகளில் லிஸ்டுகள் (Lists) மற்றும் டூபுள்கள் (Tuples) முக்கியக் கட்டமைப்புகளாகப் பயன்படுகின்றன. சதுர அடைப்புக்குறிக்குள் காற்புள்ளியால் பிரிக்கப்பட்டு எழுதப்படும் லிஸ்டுகள் நினைவகத்தில் உள்ள மதிப்புகளை மாற்ற அனுமதிக்கும் மாறும் தன்மையைக் கொண்டுள்ளன. இதற்கு நேர்மாறாக, சாதாரண அடைப்புக்குறிக்குள் எழுதப்படும் டூபுள்கள் மாற்ற முடியாத மாறிலிகளாகச் செயல்படுகின்றன. இவை இரண்டும் தரவு அருவமாக்கத்தின் அடிப்படையான ஜோடிகளை உருவாக்க உதவுகின்றன. இவற்றின் மூலம் தரவுகளைக் கையாளுவது எளிதாகிறது.
இனக்குழுக்கள் மூலம் அருவமாக்கம்
மிகவும் சிக்கலான பன்முகத் தரவு கட்டமைப்புகளைக் கையாளுவதற்குப் பொருள் நோக்கு நிரலாக்க மொழிகளில் இனக்குழுக்கள் (classes) பயன்படுத்தப்படுகின்றன. இனக்குழு என்பது தொடர்புடைய பலதரப்பட்ட தரவுகளையும், அந்தத் தரவுகளின் மீது செயல்படும் செயற்கூறுகளையும் ஒரே தொகுதியாக இணைக்கும் ஒரு மேம்பட்ட அமைப்பாகும். இது பயனர் தனது தேவைக்கேற்ப புதிய தரவு வகைகளை வரையறுக்கவும், தரவு அருவமாக்கத்தை மிக உயர்ந்த மட்டத்திலும் கூறுநிலையிலும் முழுமையாகச் செயல்படுத்தவும் வழிவகுக்கிறது. இது மென்பொருள் மறுபயன்பாட்டை ஊக்குவிக்கிறது.
தவிர்க்க வேண்டிய பொதுவான தவறுகள்
- தவறு: ஆக்கிகள் மற்றும் செலக்டர்களை ஒரே மாதிரியான செயல்பாடுகளாகக் கருதுதல். திருத்தம்: ஆக்கிகள் தரவை உருவாக்குக்குகின்றன, செலக்டர்கள் தரவை மீட்டெடுக்கின்றன என்பதைப் புரிந்து கொள்ள வேண்டும்.
- தவறு: லிஸ்டுகள் மற்றும் டூபுள்களின் மாறும் தன்மையை மாற்றிப் புரிந்துகொள்ளுதல். திருத்தம்: லிஸ்டுகளின் மதிப்புகளை மாற்ற முடியும், ஆனால் டூபுள்களின் மதிப்புகளை மாற்ற முடியாது என்பதை நினைவில் கொள்ள வேண்டும்.
- தவறு: ADT-ஐ நினைவகக் கட்டமைப்பாகக் குழப்பிக் கொள்ளுதல். திருத்தம்: ADT என்பது ஒரு தர்க்கரீதியான வரையறையே தவிர, அது நேரடியாக நினைவகத்தில் சேமிக்கப்படும் வழிமுறை அல்ல என்பதை அறிய வேண்டும்.
- தவறு: அடைப்புக்குறிகளைப் பயன்படுத்துவதில் தவறு செய்தல். திருத்தம்: தரவு வகைக் குறிப்புகளை எழுதும்போது அடைப்புக்குறிகளை அவசியமாகப் பயன்படுத்த வேண்டும்.
இவற்றை பயிற்சித் தேர்வு மூலம் சோதித்துப் பாருங்கள்; பிறகு விடையுடன் கூடிய வினாக்கள் பகுதியில் விரிவான விளக்கத்தைப் படியுங்கள்.
அடிக்கடி கேட்கப்படும் கேள்விகள்
தரவு அருவமாக்கம் என்றால் என்ன?
தரவு அருவமாக்கம் என்பது நிரலாக்கத்தில் உள்ள சிக்கலான உள் நினைவக செயல்பாடுகளை முழுமையாக மறைத்து, அவசியமான தகவல்களை மட்டும் பொருளாகக் கையாளும் ஒரு கணினி அறிவியல் தத்துவமாகும். இது நிரலர்கள் நிரல் எவ்வாறு செயல்படுகிறது என்பதைப் பற்றி கவலைப்படாமல், அது என்ன பணியைச் செய்கிறது என்பதில் மட்டும் கவனம் செலுத்த உதவுகிறது. இதனால் கூறுநிலை நிரலாக்கம் எளிதாகிறது.
ஆக்கிகள் மற்றும் செலக்டர்கள் வேறுபாடு என்ன?
ஆக்கிகள் என்பது அருவமாக்க தரவு வகையைக் கட்டமைக்க அல்லது புதிய தரவுப் பொருளை உருவாக்கப் பயன்படும் செயற்கூறுகளாகும். இதற்கு நேர்மாறாக, செலக்டர்கள் என்பது கட்டமைக்கப்பட்ட அந்தத் தரவுப் பொருளிலிருந்து தேவையான குறிப்பிட்ட தகவல்களை மட்டும் மீட்டெடுக்கப் பயன்படும் செயற்கூறுகளாகும். இவை இரண்டும் தரவு அருவமாக்கத்தின் இரு முக்கிய தூண்களாகும்.
லிஸ்டுக்கும் டூபுளுக்கும் என்ன வித்தியாசம்?
பைத்தானில் லிஸ்டுகள் சதுர அடைப்புக்குறிக்குள் எழுதப்படுகின்றன, மேலும் அவற்றின் உறுப்புகளை நினைவகத்தில் மாற்ற முடியும். ஆனால் டூபுள்கள் சாதாரண அடைப்புக்குறிக்குள் எழுதப்படுகின்றன, மேலும் அவற்றின் உறுப்புகளை நினைவகத்தில் ஒருபோதும் மாற்ற முடியாது. லிஸ்டுகள் மாறும் தன்மை கொண்டவை, டூபுள்கள் மாறாத் தன்மை கொண்டவை. இவை இரண்டும் நினைவகத்தில் தரவு ஜோடிகளை அமைக்க உதவுகின்றன.
அருவமாக்க தரவு வகை என்றால் என்ன?
அருவமாக்க தரவு வகை என்பது ஒரு குறிப்பிட்ட தரவு வகையின் மீதான செயல்பாடுகளின் தர்க்கரீதியான வரையறையாகும். இது என்ன வகையான செயல்பாடுகள் செய்யப்பட வேண்டும் என்பதை மட்டுமே விளக்குகிறதே தவிர, அவை நினைவகத்தில் எவ்வாறு சேமிக்கப்படும் அல்லது செயல்படுத்தப்படும் என்பதை விளக்குவதில்லை. இது தரவுப் பாதுகாப்பை உறுதி செய்கிறது.
இனக்குழுக்கள் எவ்வாறு தரவு அருவமாக்கத்திற்கு உதவுகின்றன?
பொருள் நோக்கு நிரலாக்க மொழிகளில் இனக்குழுக்கள் என்பவை தரவுகளையும் அவற்றின் மீது செயல்படும் செயற்கூறுகளையும் ஒரே தொகுதியாக இணைக்கப் பயன்படுகின்றன. இது பயனர் தனது தேவைக்கேற்ப புதிய தரவு வகைகளை வரையறுக்கவும், தரவு அருவமாக்கக் கொள்கைகளை மென்பொருள் வடிவமைப்பில் மிக உயர்ந்த மட்டத்தில் முழுமையாகச் செயல்படுத்தவும் வழிவகுக்கிறது.
ஜோடிகள் அல்லது இணைகள் எதற்குப் பயன்படுகின்றன?
ஜோடிகள் அல்லது இணைகள் என்பவை இரண்டு தரவுப் பகுதிகளை ஒன்றாக நினைவகத்தில் சேமிக்கப் பயன்படும் எளிய கூட்டுத் தரவுக் கட்டமைப்பாகும். பைத்தான் போன்ற மொழிகளில் லிஸ்டுகள் மற்றும் டூபுள்களைப் பயன்படுத்தி இணைகளை நாம் எளிதாக உருவாக்கலாம். இவை ஆக்கிகள் மற்றும் செலக்டர்களைக் கட்டமைக்க மிகவும் அடிப்படையாக அமைகின்றன.
கடைசியாகப் புதுப்பிக்கப்பட்டது 21 ஆகஸ்ட் 2026