கவிமொ(SQL) என சுருக்கமாக அழைக்கப்பெறும் கட்டமைக்கப்பட்ட வினவுமொழிகள் ( Strutured Query Languages) கவிமொஇல்லாதது( NoSQL) கட்டமைக்கப்படாத வினவுமொழிகள் (Not Only Strutured Query Languages) ஆகிய இரண்டு தரவுத்தளங்களும் தகவல்களை ஒழுங்கமைக்கப்பட்ட முறையில் சேகரிக்க பயன் படுத்தப் படுகின்றன .மேலும் SQL , NoSQL ஆகியஇவ்விரண்டும் தரவுகளை சேமிக்கவும், நிர்வகிக்கவும், அணுகவும் பயன்படுத்தப்படும் மிகவும் பிரபலமான தரவுத்தள தொழில்நுட்பங்களாகவும் அமைந்துள்ளன.
அதனால் பெரும்பாலான நிறுவனங்கள் தங்களுடைய தரவுகளை நிர்வகிக்க SQL அல்லது NoSQL ஆகிய இரண்டில் ஏதாவதொன்றினை பயன்படுத்திகொள்கின்றன.
கணினி அறிவியல் பின்னணியைச் சேர்ந்தவர் என்றால், இந்த SQL ,NoSQL ஆகிய இரண்டு சொற்களையும் அல்லது விதிமுறைகளையும் பற்றிய விவரங்கள்அவருக்கு ஏற்கனவே நன்கு அறிமுகமாகியிருக்கும்.
இருப்பினும், SQL அல்லது NoSQL என்றால் என்ன என்று தெரியாத புதியவர்கள் எனில், சரியான வரை யறையின் உதவியுடன் இவ்விரண்டையும் பற்றி அறிந்துகொள்க. இவ்விரண்டிற்கான வரையறை பின்வருமாறு
கவிமொ(SQL) என்பது கட்டமைக்கப்பட்ட வினவல் மொழிகளைக் ( Strutured Query Languages)குறிக்கிறது. அதாவதுதொடர்புடைய தரவுத்தளங்களில், தரவுகளை கையாளுவதற்கும்இந்த கவிமொ(SQL) என்பது பயன் படுத்தப்படுகிறது.
கவிமொஇல்லாதது( NoSQL) என்பதுகட்டமைக்கப்படாத வினவுமொழிகள் (Not Only Strutured Query Languages) அதாவது கவிமொஇல்லாதது( NoSQL) என்பதைகொண்டு SQL மட்டுமல்ல. ஒரு தொடர்புடைய தரவுத்தளத்தில் தரவுகளைக் கையாளுதல்,மட்டுமல்லாமல் அவ்வாறான தரவுகளைமீட்டெடுப்பதற்கும் பயன்படுத்தப்படுகிறது.
இப்போது SQL, NoSQL ஆகிய இரண்டின் வரையறை தெரிந்துகொண்டோம். அதனை தொடர்ந்து இவ்விரண்டு தொழில்நுட்பங்களுக்கிடையிலான வேறுபாடுகளை மட்டும் ஆழமாகப் பார்த்திடுவோம்,
1. வகைபடுத்துதல்( Category)
SQL , NoSQL ஆகியஇவ்விரண்டையும் வகைப்படுத்துவதற்கு முன், முதலில் தொடர்புடைய தரவுத்தளத்திற்கும் தொடர்பற்ற தரவுத்தளத்திற்கும் உள்ள வேறுபாட்டினை மட்டும் முதலில் புரிந்துகொள்க.
RDBMS எனசுருக்கமாக அழைக்கப்பெறும் தொடர்புடைய தரவுதளமானது ஒருவருக்கொருவர் தொடர்புடைய தரவுகளை சேமிக்கவும் நிருவகிக்கவும் பயன்படுத்தப்படுகிறது. மேலும் இது தொடர்புடைய மாதிரியை அடிப்படையாகக் கொண்டது.அதேசமயம் தொடர்புஅல்லாத தரவுத்தளமானது தொடர்புடைய மாதிரியைப் பயன்படுத்தாது மேலும் நெகிழ்வான தரவுகளின் மாதிரியைப் பின்பற்றுகிறது.
தொடர்ந்து SQL , NoSQL ஆகியவற்றின் தரவுகளின் அமைப்பு எந்த பிரிவின் கீழ் வரும் என ஒப்பிடும்போது
SQL என்பது தொடர்புடையதரவுதளநிருவாக அமைவை பின்தொடர்கிறது, அதே நேரத்தில் NoSQL என்பது தொடர்புஅல்லாத தரவுதளநிருவாகஅமைவைப் பின்பற்றுகிறது.
2. அளவிடுதல்(Scalability)
SQL செங்குத்து அளவைப் பயன்படுத்துகிறது, அதாவது இதனுடைய கணக்கீட்டு சக்தியை அதிகரிக்க ஒற்றை சேவையகத்தின் அல்லது தரவுத்தளத்தின் அளவை அதிகரிக்க வேண்டும். ஆனால் NoSQl கிடைமட்ட அளவைப் பயன்படுத்துகிறது, அதாவது இதனுடைய கணக்கீட்டு சக்தியை அதிகரிக்க ஒற்றை சேவையகத்திற்கு பதிலாக ஒன்றிற்கு மேற்பட்ட பல்வேறு சேவையகங்களாக அவைகளின் எண்ணிக்கையை அதிகரிக்க வேண்டும்.
3. அமைப்புமுறைகள்( Schema)
அமைப்புமுறைகள் என்பது தரவுத்தள பொருட்களின் தொகுப்பாகும், இது தரவுத்தளத்தின் தருக்க கட்ட மைப்பை தீர்மானிக்கிறது. அதனடிப்படையில் ஒப்பிடும்போது SQL ஆனது முன் வரையறுக்கப்பட்ட செயல்திட்டத்தைப் பயன்படுத்துகிறது. ஆனால் NoSQL தரவுத்தளத்திற்கான இயக்கநேர அமைப்புமுறைகளைப் பயன்படுத்துகிறது.
4. வகை(Type)
தரவை சேமிக்கவும், மீட்டெடுக்கவும் , நிருவகிக்கவும் SQL ஆனது அட்டவணைகளைப் பயன்படுத்துகிறது. எனவே, அடிப்படையில் SQL என்பது அட்டவணையின் அடிப்படையிலான தரவுத்தளமாகும். அதற்குபதிலாக NoSQL என்பது திறவுகோள் மதிப்பு(Key-value )தரவுகள், வரைபட தரவுத்தளங்கள், ஆவண தரவுத்தளங்கள் , நெடுவரிசை சார்ந்த தரவுத்தளங்கள்.ஆகிய நான்கு வகைகளாக இருக்கலாம்
5. படிநிலை தரவு சேமிப்பு
தரவுத்தளத்தில், படிநிலை தரவு சேமிப்பு என்பது ஒரு தரவுத்தள மாதிரியாகும், இது பெற்றோர்-பிள்ளை உறவு அல்லது மரம் போன்ற கட்டமைப்பைப் பின்பற்றுகிறது.அதனடிப்படையில் இவைகளை ஒப்பிடும்போது SQL ஆனது, படிநிலை தரவு சேமிப்பகத்திற்கு மிகவும் பொருத்தமானது அன்று. அதேசமயம், படிநிலை தரவு சேமிப்பகத்திற்கு NoSQL மிகவும் பொருத்தமானது.
6. வினவல் மொழி
எல்லா SQL தரவுத்தளங்களுக்கும், நாம் பயன்படுத்தும் வினவல் மொழி SQL (கட்டமைக்கப்பட்ட வினவல் மொழியாகும்).ஆனால், NoSQL க்கு குறிப்பிட்ட வினவல் மொழிகள் எதுவும் இல்லை, அடிப்படையில் NoSQL இல் தரவைக் கையாள பயன்படும் மொழியை UnQL (கட்டமைக்கப்படாத வினவல் மொழி) என்று அழைக்கப்படுகிறது.
7. சிக்கலான வினவல்கள்(Complex Queries)
சிக்கலான வினவல்களுடன் பணியாற்ற SQL சிறந்ததாகும். சிக்கலான வினவல்களைக் கையாள NoSQL ஆனது ஒரு நல்ல வழி அன்று.இதற்குப் பின்னால் உள்ள காரணங்கள் என்னவென்றால், SQL தரவுத்தளங்கள் கட்டமைக்கப்பட்டவை ,இதனுடைய அட்டவணைகள் நன்கு ஒழுங்கமைக்கப்பட்டுள்ளன. எனவே, இதில் சிக்கலான வினவல்களை (எடுத்துக்காட்டு – உள்ளமைக்கப்பட்ட வினவல்கள்) எளிதாக இயக்கலாம்.
ஆனால், NoSQL ஒரு கட்டமைக்கப்படாத தரவுத்தளமாகும், எனவே, சிக்கலான வினவல்களை இங்கு இயக்குவது மிகவும் கடினமாகும்.
8. பண்பியில்புகள்(Property)
SQL தரவுத்தளமானது சிறிய, நிலைத்தன்மையுடைய, தனிமைப்படுத்தப்பட்ட, நிலைத்த(Atomicity, Consistency, Isolation, Durability)(ACID)) எனும் மாதிரியைப் பின்பற்றுகிறது. அதற்குபதிலாக, NoSQL தரவுத்தளமானது அடிப்படையாக கிடைக்கிறது, மென்மையான நிலை, இறுதியில் நிலைத்தன்மை (Basically Available, Soft State, Eventually Consistency( Base))எனும் மாதிரியைபின்பற்றுகிறது.
9. சமூக ஆதரவு
SQL ஐ 1970 களில் ஐபிஎம் உருவாக்கியது. ஆனால், NoSQL ஐ 1998 இல் கார்லோ ஸ்ட்ரோஸி உருவாக்கியுள்ளார். SQL ஆனது NoSQL ஐ விட பழையது என்பதால் SQL இன் சமூக ஆதரவு NoSQL ஐ விட அதிகம். இதன் விளைவாக, NoSQL உடன் ஒப்பிடும்போது SQL தொடர்பான பல மன்றங்கள் , சமூககுழுக்கள் பயன்பாட்டில் இருப்பதை காணலாம்.
10. எடுத்துக்காட்டு
SQL தரவுத்தள மேலாண்மை அமைப்பில் MySQL, Oracle, Microsoft SQL Server , Sybase ஆகியவை நடைமுறை யில் உள்ள ஒருசில பிரபலமான எடுத்துக்காட்டுகளாகும் . அதற்குபதிலாக, NoSQL தரவுத்தள மேலாண்மை அமைப்பில் MongoDB, Neo4js, Hbase ஆகியவை நடைமுறையிலுள்ள ஒரு சில பிரபலமான எடுத்துக்காட்டுகளாகும் .