# தரவுடன் வேலை செய்வது: தொடர்புடைய தரவுத்தளங்கள் |![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/05-RelationalData.png)| |:---:| | தரவுடன் வேலை செய்வது: தொடர்புடைய தரவுத்தளங்கள் - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | நீங்கள் கடந்த காலத்தில் தகவலை சேமிக்க ஒரு ஸ்பிரெட்ஷீட்டை பயன்படுத்தியிருக்க வாய்ப்பு உள்ளது. அங்கே வரிசைகள் மற்றும் நெடுவரிசைகள் இருந்தன, வரிசைகள் தகவலை (அல்லது தரவை) கொண்டிருந்தன, மற்றும் நெடுவரிசைகள் அந்த தகவலை விவரித்தன (சில சமயங்களில் மெட்டாடேட்டா என்று அழைக்கப்படுகிறது). தொடர்புடைய தரவுத்தளம் அட்டவணைகளில் நெடுவரிசைகள் மற்றும் வரிசைகள் என்ற அடிப்படைக் கொள்கையின் மேல் கட்டப்பட்டுள்ளது, இது பல அட்டவணைகளில் தகவலை பரவவைக்க அனுமதிக்கிறது. இது நீங்கள் மேலும் சிக்கலான தரவுடன் வேலை செய்ய, நகலெடுக்கல் தவிர்க்க, மற்றும் தரவை ஆராயும் முறையில் நெகிழ்வுத்தன்மையை வழங்குகிறது. தொடர்புடைய தரவுத்தளத்தின் கருத்துக்களை ஆராய்வோம். ## [முன்-பாடம் வினாடி வினா](https://ff-quizzes.netlify.app/en/ds/quiz/8) ## எல்லாம் அட்டவணைகளுடன் துவங்குகிறது ஒரு தொடர்புடைய தரவுத்தளத்தின் மையத்தில் அட்டவணைகள் உள்ளன. ஸ்பிரெட்ஷீட்டுடன் போல, ஒரு அட்டவணை நெடுவரிசைகள் மற்றும் வரிசைகளின் தொகுப்பு. வரிசை நாம் வேலை செய்ய விரும்பும் தரவோ அல்லது தகவலோ உள்ளது, உதாரணமாக ஒரு நகரத்தின் பெயர் அல்லது மழை அளவு. நெடுவரிசைகள் அவர்கள் சேமிக்கும் தரவை விவரிக்கின்றன. நகரங்களின் தகவலை சேமிக்க ஒரு அட்டவணையை துவங்குவோம். நாம் அவர்களின் பெயர் மற்றும் நாடு கொண்டு துவங்கலாம். இதை அட்டவணையில் பின்வருமாறு சேமிக்கலாம்: | நகரம் | நாடு | | -------- | ------------- | | டோக்கியோ | ஜப்பான் | | அட்லாண்டா | ஐக்கிய அமெரிக்கா | | ஆக்லாந்து | நியூசிலாந்து | **நகரம்**, **நாடு** மற்றும் **மக்கள் தொகை** என்ற நெடுவரிசை பெயர்கள் சேமிக்கப்படும் தரவை விவரிக்கின்றன, மற்றும் ஒவ்வொரு வரிசையிலும் ஒரு நகரத்தின் தகவல் உள்ளது. ## ஒரு அட்டவணை அணுகுமுறையின் குறைகள் மேலே உள்ள அட்டவணை உங்களுக்கு பரிச்சயமாக தோன்றும். நமது வளர்ந்து வரும் தரவுத்தளத்திற்கு கூடுதல் தரவைச் சேர்ப்போம் - வருடாந்த மழை (மில்லிமீட்டரில்). நாம் 2018, 2019 மற்றும் 2020 ஆண்டுகளுக்கு கவனம் செலுத்துவோம். டோக்கியோவுக்காக சேர்த்தால் இது பின்வருமாறு இருக்கும்: | நகரம் | நாடு | ஆண்டு | அளவு | | ----- | ------- | ---- | ------ | | டோக்கியோ | ஜப்பான் | 2020 | 1690 | | டோக்கியோ | ஜப்பான் | 2019 | 1874 | | டோக்கியோ | ஜப்பான் | 2018 | 1445 | நமது அட்டவணையில் என்ன கவனிக்கிறீர்கள்? நகரத்தின் பெயர் மற்றும் நாட்டை மீண்டும் மீண்டும் நகலெடுக்கிறோம். இது நிறைய சேமிப்பிடத்தை எடுத்துக்கொள்ளும், மேலும் பல நகல்கள் தேவையில்லை. டோக்கியோவுக்கு ஒரே பெயர் தான் முக்கியம். சரி, வேறு ஒரு முயற்சி செய்கிறோம். ஒவ்வொரு ஆண்டுக்கும் புதிய நெடுவரிசைகளைச் சேர்ப்போம்: | நகரம் | நாடு | 2018 | 2019 | 2020 | | -------- | ------------- | ---- | ---- | ---- | | டோக்கியோ | ஜப்பான் | 1445 | 1874 | 1690 | | அட்லாண்டா | ஐக்கிய அமெரிக்கா | 1779 | 1111 | 1683 | | ஆக்லாந்து | நியூசிலாந்து | 1386 | 942 | 1176 | இது வரிசை நகலை தவிர்க்கிறது, ஆனால் சில சவால்களை உருவாக்குகிறது. ஒவ்வொரு புதிய ஆண்டும் அட்டவணையின் அமைப்பை மாற்ற வேண்டியிருக்கும். மேலும், நமது தரவு வளர்ந்தால் ஆண்டுகளை நெடுவரிசைகளாக வைத்திருப்பது மதிப்புகளை மீட்டெடுக்க மற்றும் கணக்கிட கடினமாகும். இதனால் பல அட்டவணைகள் மற்றும் உறவுகள் தேவைப்படுகிறது. நமது தரவை பிரித்து நகலை தவிர்க்கவும், மேலும் நெகிழ்வுத்தன்மையை பெறவும் முடியும். ## உறவுகளின் கருத்துக்கள் நமது தரவுக்கு திரும்பி, எவ்வாறு பிரிக்க வேண்டும் என்று தீர்மானிப்போம். நகரங்களுக்கான பெயர் மற்றும் நாட்டை சேமிக்க வேண்டும் என்பதால், இது ஒரே அட்டவணையில் சிறந்ததாக இருக்கும். | நகரம் | நாடு | | -------- | ------------- | | டோக்கியோ | ஜப்பான் | | அட்லாண்டா | ஐக்கிய அமெரிக்கா | | ஆக்லாந்து | நியூசிலாந்து | ஆனால் அடுத்த அட்டவணையை உருவாக்குவதற்கு முன், ஒவ்வொரு நகரத்தையும் எவ்வாறு குறிக்க வேண்டும் என்று கண்டுபிடிக்க வேண்டும். ஒரு அடையாளம், ஐடி அல்லது (தொழில்நுட்ப தரவுத்தள சொற்களில்) முதன்மை விசை தேவை. முதன்மை விசை என்பது ஒரு அட்டவணையில் ஒரு குறிப்பிட்ட வரிசையை அடையாளம் காண பயன்படுத்தப்படும் மதிப்பு. இது ஒரு மதிப்பின் அடிப்படையில் இருக்கலாம் (உதாரணமாக நகரத்தின் பெயர்), ஆனால் அது பெரும்பாலும் எண் அல்லது வேறு அடையாளமாக இருக்க வேண்டும். ஐடி எப்போதும் மாறக்கூடாது, இல்லையெனில் உறவு முறிவு ஏற்படும். பெரும்பாலான சந்தர்ப்பங்களில் முதன்மை விசை அல்லது ஐடி தானாக உருவாக்கப்படும் எண் ஆக இருக்கும். > ✅ முதன்மை விசை பெரும்பாலும் PK என சுருக்கப்படுகிறது ### நகரங்கள் | city_id | நகரம் | நாடு | | ------- | -------- | ------------- | | 1 | டோக்கியோ | ஜப்பான் | | 2 | அட்லாண்டா | ஐக்கிய அமெரிக்கா | | 3 | ஆக்லாந்து | நியூசிலாந்து | > ✅ இந்த பாடத்தில் "id" மற்றும் "முதன்மை விசை" என்ற சொற்களை மாற்றி பயன்படுத்துகிறோம். இங்கு உள்ள கருத்துக்கள் DataFrames க்கு பொருந்தும், நீங்கள் பின்னர் ஆராய்வீர்கள். DataFrames "முதன்மை விசை" என்ற சொற்றொடரை பயன்படுத்தாது, ஆனால் அவை அதே விதமாக செயல்படுகின்றன. நமது நகரங்கள் அட்டவணை உருவாக்கப்பட்ட பிறகு, மழையை சேமிப்போம். நகரத்தின் முழு தகவலை நகலெடுக்காமல், id ஐ பயன்படுத்தலாம். புதிய அட்டவணைக்கும் *id* நெடுவரிசை இருக்க வேண்டும், ஏனெனில் அனைத்து அட்டவணைகளுக்கும் id அல்லது முதன்மை விசை இருக்க வேண்டும். ### மழை | rainfall_id | city_id | ஆண்டு | அளவு | | ----------- | ------- | ---- | ------ | | 1 | 1 | 2018 | 1445 | | 2 | 1 | 2019 | 1874 | | 3 | 1 | 2020 | 1690 | | 4 | 2 | 2018 | 1779 | | 5 | 2 | 2019 | 1111 | | 6 | 2 | 2020 | 1683 | | 7 | 3 | 2018 | 1386 | | 8 | 3 | 2019 | 942 | | 9 | 3 | 2020 | 1176 | புதிய **மழை** அட்டவணையில் உள்ள **city_id** நெடுவரிசையை கவனியுங்கள். இந்த நெடுவரிசை **நகரங்கள்** அட்டவணையில் உள்ள ஐடிகளை குறிக்கிறது. தொழில்நுட்ப தொடர்புடைய தரவுத்தள சொற்களில் இதை **வெளிப்புற விசை** என்று அழைக்கின்றனர்; இது மற்றொரு அட்டவணையின் முதன்மை விசை. இதை ஒரு குறிப்பு அல்லது பாயிண்டர் என்று நினைக்கலாம். **city_id** 1 என்பது டோக்கியோவை குறிக்கிறது. > [!NOTE] > வெளிப்புற விசை பெரும்பாலும் FK என சுருக்கப்படுகிறது ## தரவை மீட்டெடுப்பது நமது தரவை இரண்டு அட்டவணைகளாக பிரித்துள்ளோம், அதை எப்படி மீட்டெடுக்கலாம் என்று நீங்கள் ஆச்சரியப்படலாம். MySQL, SQL Server அல்லது Oracle போன்ற தொடர்புடைய தரவுத்தளத்தை பயன்படுத்தினால், Structured Query Language அல்லது SQL என்ற மொழியை பயன்படுத்தலாம். SQL (சில சமயங்களில் sequel என்று உச்சரிக்கப்படுகிறது) தொடர்புடைய தரவுத்தளத்தில் தரவை மீட்டெடுக்க மற்றும் மாற்ற பயன்படுத்தப்படும் ஒரு நிலையான மொழி. தரவை மீட்டெடுக்க `SELECT` என்ற கட்டளையை பயன்படுத்துகிறீர்கள். அடிப்படையில், நீங்கள் காண விரும்பும் நெடுவரிசைகளை **SELECT** செய்து, அவை உள்ள அட்டவணையை **FROM** குறிப்பிடுகிறீர்கள். நகரங்களின் பெயர்களை மட்டும் காட்ட விரும்பினால், பின்வருமாறு பயன்படுத்தலாம்: ```sql SELECT city FROM cities; -- Output: -- Tokyo -- Atlanta -- Auckland ``` `SELECT` என்பது நீங்கள் பட்டியலிடும் நெடுவரிசைகள், மற்றும் `FROM` என்பது நீங்கள் பட்டியலிடும் அட்டவணைகள். > [!NOTE] > SQL இலக்கணம் எழுத்து பெரிதும் சிறிதும் வேறுபடாது, அதாவது `select` மற்றும் `SELECT` ஒரே பொருளை குறிக்கின்றன. ஆனால், நீங்கள் பயன்படுத்தும் தரவுத்தள வகை அடிப்படையில் நெடுவரிசைகள் மற்றும் அட்டவணைகள் எழுத்து பெரிதும் சிறிதும் வேறுபடலாம். எனவே, நிரலாக்கத்தில் எல்லாவற்றையும் எழுத்து பெரிதாக கருதுவது சிறந்த நடைமுறை. SQL வினாக்களை எழுதும்போது பொதுவாக முக்கிய சொற்களை எல்லாம் பெரிய எழுத்துக்களில் எழுதுவது வழக்கம். மேலே உள்ள வினா அனைத்து நகரங்களையும் காட்டும். நியூசிலாந்தில் உள்ள நகரங்களையே மட்டும் காட்ட விரும்பினால், ஒரு வடிகட்டியை (filter) பயன்படுத்த வேண்டும். இதற்கான SQL முக்கிய சொல் `WHERE`, அல்லது "எங்கே ஏதாவது உண்மை" என்று பொருள். ```sql SELECT city FROM cities WHERE country = 'New Zealand'; -- Output: -- Auckland ``` ## தரவை இணைத்தல் இப்போது வரை நாம் ஒரு அட்டவணையிலிருந்து தரவை மீட்டெடுத்தோம். இப்போது **நகரங்கள்** மற்றும் **மழை** இரண்டையும் இணைக்க விரும்புகிறோம். இது அவற்றை *இணைத்து* செய்வதன் மூலம் செய்யப்படுகிறது. நீங்கள் இரண்டு அட்டவணைகளுக்கு இடையில் ஒரு இணைப்பு உருவாக்கி, ஒவ்வொரு அட்டவணையிலிருந்தும் ஒரு நெடுவரிசையின் மதிப்புகளை பொருத்துவீர்கள். எங்கள் உதாரணத்தில், **மழை** அட்டவணையில் உள்ள **city_id** நெடுவரிசையை **நகரங்கள்** அட்டவணையில் உள்ள **city_id** நெடுவரிசையுடன் பொருத்துவோம். இது மழை மதிப்பை அதன் நகரத்துடன் பொருத்தும். நாம் செய்யும் இணைப்பு வகை *உள்* (inner) இணைப்பு என்று அழைக்கப்படுகிறது, அதாவது மற்ற அட்டவணையில் பொருந்தாத வரிசைகள் காட்டப்பட மாட்டாது. எங்கள் வழக்கில் ஒவ்வொரு நகரத்துக்கும் மழை தரவு உள்ளது, எனவே அனைத்தும் காட்டப்படும். 2019 ஆண்டுக்கான அனைத்து நகரங்களின் மழையை மீட்டெடுப்போம். நாம் இதை படிகளாக செய்வோம். முதல் படி, இணைப்பை உருவாக்கி, இணைப்புக்கான நெடுவரிசைகளை குறிப்பிடுவது - முன்பு குறிப்பிடப்பட்ட **city_id**. ```sql SELECT cities.city rainfall.amount FROM cities INNER JOIN rainfall ON cities.city_id = rainfall.city_id ``` நாம் தேவையான இரண்டு நெடுவரிசைகளையும், மற்றும் அட்டவணைகளை **city_id** மூலம் இணைக்க விரும்புவதை குறிப்பிடியுள்ளோம். இப்போது `WHERE` வாக்கியத்தை சேர்த்து 2019 ஆண்டை மட்டும் வடிகட்டலாம். ```sql SELECT cities.city rainfall.amount FROM cities INNER JOIN rainfall ON cities.city_id = rainfall.city_id WHERE rainfall.year = 2019 -- Output -- city | amount -- -------- | ------ -- Tokyo | 1874 -- Atlanta | 1111 -- Auckland | 942 ``` ## சுருக்கம் தொடர்புடைய தரவுத்தளங்கள் பல அட்டவணைகளுக்கு இடையில் தகவலை பிரித்து, பின்னர் அதை திரும்ப இணைத்து காட்சிப்படுத்தும் மற்றும் பகுப்பாய்வு செய்யும் முறையில் மையமாக உள்ளன. இது கணக்கீடுகள் செய்ய மற்றும் தரவை மாற்றுவதற்கு அதிக நெகிழ்வுத்தன்மையை வழங்குகிறது. நீங்கள் தொடர்புடைய தரவுத்தளத்தின் அடிப்படைக் கருத்துக்களை மற்றும் இரண்டு அட்டவணைகளுக்கு இடையேயான இணைப்பை எப்படி செய்வது என்பதை கற்றுக்கொண்டீர்கள். ## 🚀 சவால் இணையத்தில் பல தொடர்புடைய தரவுத்தளங்கள் கிடைக்கின்றன. மேலே கற்றுக்கொண்ட திறன்களை பயன்படுத்தி தரவை ஆராயலாம். ## பாடம் முடிந்த பிறகு வினாடி வினா ## [பாடம் முடிந்த பிறகு வினாடி வினா](https://ff-quizzes.netlify.app/en/ds/quiz/9) ## மதிப்பாய்வு மற்றும் சுயபடிப்பு SQL மற்றும் தொடர்புடைய தரவுத்தளக் கருத்துக்களை தொடர்ந்தும் ஆராய [Microsoft Learn](https://docs.microsoft.com/learn?WT.mc_id=academic-77958-bethanycheum) இல் பல வளங்கள் உள்ளன - [தொடர்புடைய தரவின் கருத்துக்களை விவரிக்கவும்](https://docs.microsoft.com//learn/modules/describe-concepts-of-relational-data?WT.mc_id=academic-77958-bethanycheum) - [Transact-SQL உடன் வினாக்களைத் தொடங்கவும்](https://docs.microsoft.com//learn/paths/get-started-querying-with-transact-sql?WT.mc_id=academic-77958-bethanycheum) (Transact-SQL என்பது SQL இன் ஒரு பதிப்பு) - [Microsoft Learn இல் SQL உள்ளடக்கம்](https://docs.microsoft.com/learn/browse/?products=azure-sql-database%2Csql-server&expanded=azure&WT.mc_id=academic-77958-bethanycheum) ## பணிகள் [விமான நிலைய தரவை காட்சிப்படுத்துதல்](assignment.md) --- **குறிப்பு**: இந்த ஆவணம் AI மொழிபெயர்ப்பு சேவை [Co-op Translator](https://github.com/Azure/co-op-translator) மூலம் மொழிபெயர்க்கப்பட்டுள்ளது. நாங்கள் துல்லியத்திற்காக முயற்சித்தாலும், தானாக செய்யப்பட்ட மொழிபெயர்ப்புகளில் பிழைகள் அல்லது தவறுகள் இருக்கக்கூடும் என்பதை தயவுசெய்து கவனிக்கவும். அசல் ஆவணம் அதன் சொந்த மொழியில் அதிகாரப்பூர்வ மூலமாக கருதப்பட வேண்டும். முக்கியமான தகவல்களுக்கு, தொழில்முறை மனித மொழிபெயர்ப்பு பரிந்துரைக்கப்படுகிறது. இந்த மொழிபெயர்ப்பின் பயன்பாட்டால் ஏற்படும் எந்த தவறான புரிதல்கள் அல்லது தவறான விளக்கங்களுக்கும் நாங்கள் பொறுப்பேற்கமாட்டோம்.