CodeGym/Java Course/All lectures for TA purposes/கட்டுப்பாடு: தரவுத்தள ஒருமைப்பாடு

கட்டுப்பாடு: தரவுத்தள ஒருமைப்பாடு

கிடைக்கப்பெறுகிறது

தரவுத்தள ஒருமைப்பாடு கட்டுப்பாடு

தரவுத்தளங்களைப் பற்றி தெரிந்து கொள்ள வேண்டிய மற்றொரு முக்கியமான விஷயம் கட்டுப்பாடுகள். கட்டுப்பாடுகளின் உதவியுடன், உங்கள் அட்டவணையில் தரவு மாற்றங்களைக் கட்டுப்படுத்தலாம் மற்றும் அவற்றின் ஒருமைப்பாடு மற்றும் நிலைத்தன்மையைப் பராமரிக்கலாம்.

தரவுத்தளத்தைப் பற்றி பேசும்போது தரவு நிலைத்தன்மை என்றால் என்ன ?

பணியாளர், தயாரிப்பு மற்றும் பணி அட்டவணைகளுடன் எங்கள் ஆன்லைன் ஸ்டோரை எடுத்துக்கொள்வோம் . பணி அட்டவணையில் யாருக்கும் ஒதுக்கப்படாத பணிகள் இருக்கக்கூடும் என்பதை நாங்கள் ஏற்கனவே அறிவோம்: அத்தகைய வரிசைகளின் பணியாளர்_ஐடி NULL ஆகும்.

ஆனால் பணி அட்டவணையில் 115 க்கு சமமான Employee_id உடன் உள்ளீடு இருந்தால் என்ன ஆகும்? எல்லாவற்றிற்கும் மேலாக, எங்களிடம் அத்தகைய பணியாளர் இல்லை. பணியாளர் அட்டவணையில் ஐடி = 115 கொண்ட பணியாளர் எங்களிடம் இல்லை. அதே நேரத்தில், இந்த ஐடியுடன் பணியாளருக்கான இணைப்பு பணி அட்டவணையில் உள்ளது. தரவு சீரற்ற தன்மைக்கு இது ஒரு எடுத்துக்காட்டு .

அப்படியானால், இந்தத் தரவை எவ்வாறு இணைப்பது? வெறுமனே, SQL சேவையகம், எந்த தரவு மாற்றத்துடனும், இந்த அனைத்து நுணுக்கங்களையும் கட்டுப்படுத்தும். அத்தகைய வாய்ப்பு உள்ளது, அது FOREIGN_KEY என்று அழைக்கப்படுகிறது.

உங்கள் அட்டவணையில் உள்ள சில நெடுவரிசையில் எண்கள் மட்டும் இல்லாமல், மற்றொரு அட்டவணையில் இருந்து ஐடி வரிசைகள் இருந்தால், இதை வெளிப்படையாகக் குறிப்பிடலாம்.

ஒரு வெளிநாட்டு விசையைச் சேர்த்தல்

அத்தகைய விசையை அதன் உருவாக்கத்தின் கட்டத்திலும், அதற்குப் பிறகு, ALTER TABLE ஐப் பயன்படுத்தி அட்டவணையில் சேர்க்கலாம். வடிவம் அடிப்படையில் வேறுபட்டதல்ல. இரண்டு விருப்பங்களையும் நாங்கள் முன்வைப்போம்.

அத்தகைய விசை/விதியின் பொதுவான வடிவம்:

FOREIGN KEY (column)
  	REFERENCES table(column)

அட்டவணையில் உள்ள அனைத்துப் பணியாளர்_ஐடிகளும் பணியாளர் அட்டவணையில் ஏற்கனவே உள்ள பதிவைக் குறிப்பிடுவதை உறுதிசெய்ய, பணி அட்டவணையில் இந்த விசை/விதியைச் சேர்ப்போம் . இந்த ஸ்கிரிப்ட் இப்படி இருக்கும்:

ALTER TABLE task
      ADD FOREIGN KEY (employee_id)
  	REFERENCES employee(id)

பணி அட்டவணையை உருவாக்கும் நேரத்தில் இந்த விதியைச் சேர்க்க முடிவு செய்தால், குறியீடு இப்படி இருக்கும்:

CREATE TABLE task (
      id INT,
      name VARCHAR(100),
      employee_id INT,
      deadline DATE,
 
      PRIMARY KEY (id),
  	  FOREIGN KEY (employee_id)  
	      REFERENCES employee(id)
);

சொல்லப்போனால், நாம் குறிப்பிடும் சரம் தனித்துவமான கூட்டு விசையைக் கொண்டிருக்கும் சூழ்நிலைகள் உள்ளன: எடுத்துக்காட்டாக, "பெயர் மற்றும் பிறந்த ஆண்டு" அல்லது "productCatogoryId மற்றும் productId". பின்னர் FOREIGN KEY ஐ இப்படி எழுதலாம்:

FOREIGN KEY (our_column1, our_column2)
  	REFERENCES table(their_column1, their_column2)

வெளிநாட்டு விசை மற்றும் தரவு மாற்றுதல்

பணியாளர் அட்டவணையில் சில தரவைப் புதுப்பிக்க நாங்கள் முடிவு செய்த சூழ்நிலையை இப்போது கற்பனை செய்து பாருங்கள், எங்கள் பணியாளர் ஐடி மாறிவிட்டது. பணி அட்டவணையில் உள்ள தரவுகளுக்கு என்ன நடக்கும்? அது சரி, அவை பொருத்தமற்றதாகிவிடும், மேலும் எங்கள் தரவுத்தளத்தின் ஒருமைப்பாடு மீறப்படும்.

இது நிகழாமல் தடுக்க, பணியாளர் அட்டவணையில் உள்ள ஐடி மாறும்போது, ​​குறிப்பிட்ட மாற்றப்பட்ட ஐடியைக் குறிக்கும் அனைத்து அட்டவணைகளிலும் உள்ள அனைத்து வரிசைகளின் பணியாளர்_ஐடியை மாற்றுமாறு நீங்கள் SQL சேவையகத்திடம் கூறலாம்.

இத்தகைய ஸ்கிரிப்டுகள் OnUpdate மற்றும் OnDelete என்று அழைக்கப்படுகின்றன . பதிவு ஐடி மாறினால் என்ன செய்வது, பதிவு நீக்கப்பட்டால் என்ன செய்வது?

அகற்றுவதன் மூலம், எல்லாம் அவ்வளவு எளிதல்ல. ஒருவரையொருவர் குறிப்பிடும் தரவுத்தளத்தில் சரங்களால் குறிப்பிடப்படும் சார்பு பொருள்கள் உங்களிடம் இருந்தால், ஒரு பொருளை நீக்கும் போது பலவிதமான நடத்தை காட்சிகள் சாத்தியமாகும்.

ஒரு தள பயனரை நீக்குகிறோம் என்று வைத்துக்கொள்வோம், அதாவது அவருடைய தனிப்பட்ட கடிதப் பரிமாற்றங்கள் அனைத்தையும் நீக்க வேண்டும். ஆனால் அவரது பொதுக் கருத்துகள் அனைத்தையும் நாம் நீக்குவது சாத்தியமில்லை.

அல்லது ஒரு ஊழியர் வெளியேறுகிறார். அவர் வெளியேறினால் அது விசித்திரமாக இருக்கும், அதே நேரத்தில் அவருக்கு ஒதுக்கப்பட்ட அனைத்து பணிகளும் தரவுத்தளத்திலிருந்து மறைந்துவிடும். ஆனால் அவர்கள் அவரால் நியமிக்கப்படாமல் இருந்திருந்தால், அதுவும் மோசமாக மாறியிருக்கும். பணியாளர் தனது அனைத்து பணிகளையும் மற்றவர்களுக்கு மறுஒதுக்கீடு செய்த பிறகு வெளியேறும் வகையில் அதை உருவாக்குவது மிகவும் சரியானது.

FOREIGN KEY ஐப் பயன்படுத்தி இந்தக் காட்சிகளை எப்படி விவரிக்கலாம் என்பது இங்கே. அத்தகைய விசை/விதியின் பொதுவான வடிவம்:

FOREIGN KEY (column)
  	REFERENCES table(column)
 	[ON DELETE reference_option]
 	[ON UPDATE reference_option]

பதிவுகளை நீக்கினால் (நீக்கும்போது) அல்லது மாற்றினால் (புதுப்பிக்கப்படுவதில்) என்ன செய்ய வேண்டும்? மொத்தத்தில், SQL சேவையகத்திற்கு இந்த ஒவ்வொரு சூழ்நிலையிலும் செயல்பட 5 விருப்பங்கள் இருக்கலாம்:

# குறிப்பு_விருப்பம் விளக்கம்
1 கட்டுப்படுத்து சரம் குறிப்புகள் கண்டறியப்பட்டால் செயலை முடக்கு
2 கேஸ்கேட் சார்பு வரிசைகளில் ஐடியை மாற்றவும்
3 NULL அமைக்கவும் ஐடியை சார்பு வரிசைகளில் NULLக்கு அமைக்கவும்
4 நடவடிக்கை இல்லை ஒன்றும் செய்வதற்கில்லை
5 இயல்புநிலை x ஐ அமைக்கவும் சார்பு சிங்க்களில் ஐடியை x ஆக அமைக்கவும்

எங்கள் பணி அட்டவணையை எவ்வாறு மாற்றுவது என்பது இங்கே:

ALTER TABLE task
  	ADD FOREIGN KEY (employee_id)
  	REFERENCES employee(id)
  	ON UPDATE CASCADE
  	ON DELETE RESTRICT;

இங்கே என்ன எழுதப்பட்டுள்ளது:

புதுப்பிப்பு கேஸ்கேடில் : பணியாளர் அட்டவணையில் உள்ள ஐடி விசை மாறினால், அதைக் குறிப்பிடும் பணி அட்டவணையில் உள்ள Employee_id ஐயும் மாற்றவும்.

நீக்குதல் கட்டுப்பாடு : பணியாளர் அட்டவணையில் இருந்து ஒரு வரிசை நீக்கப்பட்டு, பணி அட்டவணையில் இருந்து குறிப்பிடப்பட்டால், பணியாளர் அட்டவணையில் இருந்து வரிசை நீக்கப்படுவதைத் தடுக்கவும்.

கருத்துக்கள்
  • பிரபலமானவை
  • புதியவை
  • பழையவை
ஒரு கருத்தைத் தெரிவிக்க நீங்கள் உள்நுழைந்திருக்க வேண்டும்
இந்தப் பக்கத்தில் இதுவரை எந்தக் கருத்தும் வழங்கப்படவில்லை