NoSQL தரவுத்தளங்களை கொண்டு கட்டமைக்கப்படாத தரவுகளைக் கையாள முடியும். மற்ற தரவுத்தளங்களிலிருந்து அவை எவ்வாறு வேறுபடுகின்றன, எப்போது, எங்கு பயன்படுத்தப்பட வேண்டும் என்பதைக் இந்த கட்டுரையில் கண்டறிந்திடுவோம்.
கட்டமைக்கப்பட்ட , கட்டமைக்கப்படாத ஆகியதரவுகளை நிர்வகிக்க தற்போது பயன்பாட்டில் உள்ள பல்வேறு வகையான தரவுத்தளங்களை பயன்படுத்தி கொள்ளலாம். தொடர்புடைய தரவுத்தளங்களானவை(Relational databases) கட்டமைக்கப்பட்ட தரவுகளுக்குப் பயன்படுத்தப்படுகின்றன, இவை வடிவமைக்கப் பட்டதும் நன்கு அறியப்பட்டதுமான வகைகளைக் கொண்டுள்ளன. NoSQL தரவுத் தளங்கள் கட்டமைக்கப்படாத தரவுகளுக்குப் பயன்படுத்தப்படுகின்றன. ஒரு தரவுத்தள மேலாண்மை அமைப்பு பொதுவாக ஒரு இடைமுகம், வினவல் செயலாக்க இயந்திரம், மீப்பெரும்தரவு செயலி (metadata processor),குறியீட்டு இயந்திரம்(indexing engine),சேமிப்பக மேலாளர் ஆகியவற்றைக் கொண்டுள்ளது. இந்த கூறுகள் DBMS இல் தரவை வினவுவதற்கும் சேமிப்பதற்கும் உதவுகின்றன. முன்னதாக, blobs (இருமஎண்களின் பெரிய பொருள்களின் ஒரு சுருக்கமாக) கட்டமைக்கப்படாத தரவைச் சேமிக்கப் பயன்படுத்தப்பட்டது. அட்டவணையான தரவுஅங்காடிகள், சாதாரணமாக ஆக்கப்படாத தரவைக் கையாள, நெடுவரிசை தரவுஅங்காடிகளாகப் பரிணமித்தன.
NoSQL தரவுத்தளங்களானவை SQL DBMS இலிருந்து கட்டமைக்கப்படாத அல்லது கட்டமைக்கப்பட்டவை ஆகியவாறான தரவுகளின் கிடைக்கின்ற விதத்தில் வேறுபடுகின்றன . SQL என்பது தொடர்புடைய தரவுத்தளங்களுக்கான வினவல் மொழியாகும். இவை நன்கு வரையறுக்கப்பட்ட schema கொண்டுள்ளன. பரிமாற்றங்கள் அல்லது அறிக்கையிடல் காட்சிகளில் தொடர்புடைய தரவுத்தளங்கள் பயன்படுத்தப்படுகின்றன. தரவுகளின் பெரிய ஏரிபோன்ற காட்சிகளில் கட்டமைக்கப்படாத தரவுத்தளங்களைக் கையாள NoSQL தரவுத்தளங்கள் பயன்படுத்தப்படுகின்றன. தரவு ஆவணம் முக்கிய மதிப்பு வகையாக இருக்கலாம் அல்லது வரைபட அடிப்படையிலானதாக இருக்கலாம். ஆவணத்தில் உள்ளதைப் போலவே புலங்களை மாறும் வகையில் சேர்க்கலாம்.
MongoDB, Apache CouchDB, Apache HBase, Oracle NoSQL, Apache Cassandra, Neo4j, BigTable, Riak, Objectivity Infinite Graph , MariaDB.ஆகியவை மிகவும் பிரபலமான NoSQL தரவுத்தளங்களாகும் பல நிறுவனங்கள் பல அலைவரிசை, பல்பொருள் இணைய(IoT) பயன்பாடுகளிலிருந்து தரவைக் கையாள NoSQL தரவுத்தளங்களைத் தேர்வு செய்கின்றன.
தரவுகளின் வகைகள்
முக்கிய மதிப்புமிக்க தரவு வகைகள், பரந்த நெடுவரிசை தரவு வகைகள், ஆவணங்கள், வரைபட தரவு வகைகள் ஆகியவற்றினைக் கையாள NoSQL தரவுத்தள மேலாண்மை அமைப்புகள் உருவாக்கப்பட்டன. ஒரு முக்கிய மதிப்பு மிக்க தரவு சேமிப்பகம் அகராதி/ hash அட்டவணைகளை அடிப்படையாகக் கொண்டது. ஆவண தரவு அங்காடிகளை கொண்டு XML, YAML , JSON போன்ற தரவு வடிவங்களைக் கையாள முடியும். வரைபட தரவுஅங்காடிகளைகொண்டு வரைபட அடிப்படையிலான தரவுகளைக் கையாள முடியும். NoSQL தரவுத்தளங்கள் செயல்திறனுடனும் அளவிடக்கூடியவைகளாகவும் உள்ளன. NoSQL தரவுத்தளங்க ளிலிருந்து தரவுகளை அணுக REST, Graph QL , போன்றபிற NoSQL வினவல் முறைகள் பயன்படுத்தி கொள்ளப்படுகின்றன.
SQL தரவுதளங்கள்(DBMS) int, char, varchar, binary, varbinary, float, decimal, double, bit, blob, bool, longtext, tinytext, mediumtext , text போன்ற தரவு வகைகளைக் கையாளுகின்றன. வர்த்தக வரிசைப்படுத்துதல், கணக்கியல் , கட்டண முறைகள் போன்ற பரிமாற்ற தரவுகளின் செயலாக்கத்திற்கு தொடர்புடைய தரவு வடிவம் பயன்படுத்தப்படுகிறது.
நிரலாக்க மொழி ஆதரவு
ஒரு கட்டமைக்கப்பட்ட வினவல் மொழியானது schema, தரவை உருவாக்குதல், மேம்படுத்துதல், மாற்றம் செய்தல் , நீக்குதல் ஆகியவற்றிற்குப் பயன்படுத்தப் படுகிறது. வடிவமைப்பு கட்டத்தில், ஒரு தொடர்புடைய தரவுத்தளம் (SQL DBMS) அதன் schema தரவுத்தள நடைமுறைகளுக்காக வடிவமைக்கப்பட்டுள்ளது. NoSQL DBMS ஆனது கட்டமைக்கப்படாத , பகுதி-கட்டமைக்கப்பட்ட தரவைக் கையாளுவதற்கான இயக்கநேர schemaவை அடிப்படையாகக் கொண்டது. நெடுவரிசைகளை மாறும் வகையில் சேர்க்கலாம் , NoSQL தரவுத்தளங்களில் தொடரியல் வேறுபட்டது. NoSQL க்கான வினவல் மொழிகள் ஆவணங்கள், நெடுவரிசைகள், வரைபடங்கள்,முக்கிய மதிப்பு தரவு வகைகளைக் கையாள முடியும்.
ஜாவா, சி#, பைதான் போன்ற பிற நிரலாக்க மொழிகள் SQL தரவுத்தளங்களுக்கான JDBC இயக்கிகள் மூலம் ஆதரவை வழங்குகின்றன. இதேபோன்று, அவை NoSQL தரவு அணுகலுக்கான ஆதரவை வழங்குகின்றன.
வினவல் மொழிகள்
வினவல் செயல்திறன்ஆனது ஒரு முக்கியமான வடிவமைப்பு ஆகும். சிக்கலான வினவல்களைக் கையாள, வினவல் மொழிகள் மேம்படுத்துதலுக்கான ஆதரவைக் கொண்டிருக்க வேண்டும். SQL சிக்கலான தரவு செயலாக்க நிரல்களைக் கையாள சேமிக்கப்பட்ட நடைமுறைகள் , கட்டுமானங்களை வழங்குகிறது. இது இலகுரக, அறிவிப்பு மொழியாகும். NoSQL இல், மீப்பெரும தரவுகளைக் கையாள வினவல் மொழிகள் உகந்ததாக இல்லை. மறுபுறம், ஒரு NoSQL தரவுத்தளம் அளவிடக் கூடியதும் நெகிழ்வானதுமாகும். Hadoop MapReduceபோன்ற பிற பெரிய தரவு கட்டமைப்புகள் NoSQL தரவுத்தளத்திற்கான சிக்கலான தரவு செயலாக்கத்தைக் கையாள உதவுகின்றன. இணையப் பயன்பாடுகளில், மேம்படுத்துநர்கள் பயன் பாட்டு அடுக்கில் சிக்கலான வினவல் செயலாக்கத்தைக் கையாளுகின்றார்கள், மேலும் தரவு அணுகல் அடுக்கினை சுத்தமாகவும் எளிமையாகவும் வைத்திருக்கின்றார்கள்.
செயல்திறன்
NoSQL தரவுத்தள மேலாண்மை அமைப்புகள் ஆவணங்களை உருவாக்குவதற்கும், schemaவில் நெடுவரிசைகளைச் சேர்ப்பதற்கும், ஆவணங்களைச் சேமிப்பதற்கும், சிக்கலான கட்டமைப்புகளைக் கையாளுவதற்கும் உள்ளடக்கத்திற்கும் பயன்படுத்தி கொள்ளலாம். NoSQL தரவுத்தளங்கள் – அடிப்படையில் கிடைக்கும் தன்மை, மென்மையான நிலை, இறுதியில் நிலைத்தன்மை ஆகிய BASE மாதிரியை கடைபிடிக்கின்றன. அவை தரவுகள் கிடைப்பதை உறுதிசெய்து கொண்டு, இந்தத் தரவுகளின் நிலையில் ஏற்படும் மாற்றங்களைக் கையாளுகின்றன. ஒரு NoSQL DBMS தரவுகளின் நிலைத்தன்மையை உறுதி செய்கிறது. SQL தரவுத்தளங்கள் ACID (அணு, நிலைத்தன்மை, தனிமைப்படுத்தல், ஆயுள்) எனும் பண்புகளால் கடைபிடிக்கப் படுகின்றன. ஒரு சில NoSQL தரவுத்தளங்களும் அவ்வாறு செய்கின்றன.
SQL ஆனது தரவு வினவலிற்கும், மாற்றத்திற்கும் பயன்படுத்தப்படுகிறது. வினவல் செயல்திறனை SQL தரவுத்தளங்களில் எளிதாக மேம்படுத்தலாம். NoSQL தரவுத்தள அடிப்படையிலான கட்டமைப்புகளில், வினவல் செயலாக்கமானது வணிக அடுக்கில் கையாளப்படுகிறது தரவு அணுகல் அடுக்கில் அன்று.
அளவிடுதல்
தொடர்புடைய DBMSகள் அளவிடக்கூடியவை, மேலும் செயலாக்க சக்தி, நினைவக சேமிப்பகத்தைச் சேர்ப்பதன் மூலம் தரவுகளின்சுமைகளைக் கையாள முடியும். sharding என்பதைப் பயன்படுத்தி தரவுகளின் போக்குவரத்தைக் கையாள புதிய தரவுத்தள முனையங்களைச் சேர்ப்பதன் மூலம் NoSQL DBMSகளை அளவிட முடியும். பெரிய தரவு , மாறிவரும் தரவைக் கையாள sharding உதவுகிறது.
பெரிய அளவிலான தரவுகளை அளவிடுவதன் மூலம் அதிவேகத்தில் செயலாக்க முடியும். NoSQL எனும் தரவுஅங்காடியைப் பயன்படுத்தி கட்டமைக்கப்படாத/பகுதி கட்டமைக்கப்பட்ட தரவைச் சேமிக்க முடியும். இந்த வகை DBMS சீரானது, செயல்திறனும் அளவிடக்கூடியதுமாகும். NoSQL, வரையறையின்படி, SQL-இணக்கமானது அன்று. தரவு செயலாக்கத்தைக் கையாளுவதற்கு அதன் சொந்த வினவல் மொழி உள்ளது. செங்குத்து அளவிடுதலில் செங்குத்தாக அதிக கணினி சக்தியைச் சேர்ப்பதாகக் காணலாம். கிடைமட்ட அளவீடு என்பது கிடைமட்டமாக அதிக சாதனங்களைச் சேர்ப்பதன் மூலம் ஒரு பண்ணையை வளர்ப்பது போன்றது.
ACID பண்புகள்
SQL தரவுத்தளங்களில் தரவுத்தள schemaஐ வடிவமைக்க அட்டவணைகள் பயன் படுத்தப்படுகின்றன. NoSQL தரவுத்தள மேலாண்மை அமைப்புகள் முக்கிய மதிப்பு தரவு வகைகள், ஆவணங்கள், வரைபடங்கள் , பரந்த நெடுவரிசை தரவு வகைகளைப் பயன்படுத்துகின்றன. SQL DBMS கள் தானியங்கதன்மை, நிலைத்தன்மை, தனிமைப்படுத்தல் , நீடித்து நிலைப்பு (ACID) பண்புகளை கடைபிடிக்கின்றன. ACID பண்புகள் தரவின் ஒருமைப்பாடு, செல்லுபடியாகும் தன்மையைப் பாதுகாக்க உதவுகின்றன. NoSQL DBMS கள் CAP தேற்றத்தை அடிப்படையாகக் கொண்டவை, இது நிலைத்தன்மை,கிடைக்கும் தன்மை, பகிர்வின் சகிப்புத்தன்மை பண்புகளில் அதிககவனம் செலுத்துவதற்காக Brewers ஆல் உருவாக்கப் பட்டது. விநியோகிக்கப்பட்ட தரவுத்தள அமைப்பானது நிலைத்தன்மை, கிடைக்கும் தன்மை , பகிர்வு சகிப்புத்தன்மை ஆகிய மூன்று பண்புகளில் இரண்டை மட்டுமே கொண்டிருக்க முடியும் என்று இந்த தேற்றம் கூறுகிறது.
எனவே இணையத்தில் கொள்முதல் உத்திரவு செய்யும் முறைகள் போன்ற பரிமாற்ற பயன்பாடுகளுக்கு SQL DBMS பொருத்தமானது.அதற்குபதிலாக NoSQL ஆனது கட்டமைக்கப்படாத தரவை கையாள நல்லது.
NoSQL, SQL ஆகியDBMSகளின் ஒருங்கிணைப்பு
சில NoSQL DBMSகள் ACID பண்புகள், CAP தேற்றத்துடன் இணங்குகின்றன, இது SQL , NoSQL DBMS களின் ஒருங்கிணைப்பைக் குறிக்கிறது. MySQL, பிற SQL தரவுத்தளங்கள் கட்டமைக்கப்படாத தரவைக் கையாள ஒரு ஆவணஅங்காடியை வழங்குகின்றன. மோங்கோடிபி, மறுபுறம், ACID அடிப்படையிலான பரிமாற்றங்களைக் கையாளும் வசதிகளை வழங்குகிறது. இதேபோல், AWS நிர்வகிக்கும் NoSQL, DynamoDB போன்ற பிற ACID பண்புகளை கடைபிடிக்கின்றன.
SQL NoSQL ஆகிய இரண்டுDBMSகளும் அவற்றின் சொந்த நன்மைகளுடனும் தீமைகளுடனும் வருகின்றன. ஒரு DBMS ஆனது தொடர்புடைய , கட்டமைக்கப்படாத தரவைக் கையாள முடிந்தால், அது செலவின் அடிப்படையிலும் செயல்பாட்டுத் திறனின் அடிப்படையிலும் சிறப்பாகச் செயல்படுகிறது என கொள்ளலாம்.