MySQL – இன் வடிவமைப்பு

MySQL – இன் வடிவமைப்பு 

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

  • MySQL மற்றும் பிற RDBMS – இன் முக்கியமான logical components பற்றி தெரிந்து கொள்ளலாம்.
  • MySQL ஆனது எவ்வாறு அதன் சுற்றுப்புறத்தோடுத்  தொடர்பு கொண்டுள்ளது என்பதைப் பற்றிக் காணலாம்.

MySQL RDBMS – ஒரு சுருக்கமான வரைபடம்:

 

  1. ஒன்று அல்லது அதற்கு மேற்பட்ட MySQL clients ஆனது ஒரு (அல்லது அதற்கும் மேற்பட்ட) MySQL Server உடன் இணைக்கப்பட்டுள்ளது.
  2. ஒவ்வொரு client -வும் பின்வரும் வேலைகளைப் புரிகிறது:

    -> Authentication ஐத் தொடங்குதல், Password -ஐச் சரிபார்த்தல் போன்றவை

    -> Text Queries இனை எளிமையான Tokens ஆக மாற்றுதல்

    -> Queries ஐ Server க்கு வழங்குதல்

    -> Server இடம் இருந்து விடைகளைப் பெற்றுக்கொள்ளுதல்

    -> Compress அல்லது Encrypt செய்யப்பட்ட இணைப்புகளை கண்காணித்தல்

3. MySQL server ஆனது client இடமிருந்து request-ஐ பெற்றுக்கொண்டு அதற்குரிய

response-ஐத் திரும்பக்கொடுக்கும்.

4. முதலில், MySQL server- இன் co-ordinator எனப்படும் Management Layer தான், இந்த request-ஐ பெற்றுக்கொள்ளும். இது பின்வரும் வேலைகளைப் புரிகிறது.

-> இணைப்புகளை decrypt அல்லது decode செய்தல்

-> Queries ஐச் சரிபார்த்து parse செய்தல்

-> Query Cache -லிருந்து cached queries -ஐ எடுத்தல்

-> தகவல்களை சரியான Storage Engine-க்கு அனுப்புதல்

  1. Storage Engine ஆனது Memory மற்றும் disk level-ல் குறிப்பிடப்படுகின்ற databases, tables, indexes -ஐ நிர்வகிக்கின்றது. ஒவ்வொரு Storage Engine-ம் வெவ்வேறு வகையான databases, tables, indexes மற்றும் பலவற்றை நிர்வகிக்கின்றது. அவை ஒரு சில logs மற்றும் சில புள்ளிவிவரங்களையும் நிர்வகிக்கின்றது.

 

  1. Management Layer மற்றும் Storage Engine மிக அதிக அளவில் memory, disk மற்றும் network- வுடன் தொடர்பு கொள்ளும். இந்த Management Layer ஆனது disk-க்கு logs-ஐ எழுதுதல், Memory-ல் logs-ஐ சேமிக்கவும் எடுக்கவும் செய்கிறது. Network- லிருந்து binary logs-ஐப் படித்தல் மற்றும் பல வேலைகளை செய்கிறது. Storage Engine ஆனது data-வை (tables, logs போன்றவை) disk மற்றும் memory-ல் சேமிக்கிறது. Data-வைத் தொலைவில் உள்ள வேறு சில MySQL server-களுக்கு Network மூலமாக அனுப்புதல் போன்ற சில வேலைகளைச் செய்கிறது.

 

The LAMP Platform:

-> Linux, Apache, MySQL மற்றும் PHP போன்றவை ஒன்றாக சேர்ந்து LAMP STACK-ஐ உருவாக்குகிறது.

-> Linux ஆனது Network-லிருந்து வரும் requests-ஐப் பார்த்துக்கொள்ளும்.

-> இணையதள requests, Apache-க்கு அனுப்பப்படுகின்றன.

-> PHP பக்கங்களுக்கான requests, PHP Interpreter-க்கு ச் செலுத்தப்படுகின்றன.

-> MySQL Extensions ஆனது MySQL C API-யோடு தொடர்புகொண்டு requests-ஐ PHP மற்றும் MySQL C API-க்கு இடையே அனுப்பி வைக்கும்

-> இந்த MySQL C API ஆனது பிறகு MySQL server -ரோடு தொடர்புகொள்ளும்.

-> MySQL server இந்த requests-ஐ process செய்து data-வைத் திரும்ப அனுப்பி வைக்கும்.

-> இந்த இறுதி மதிப்புகள் எல்லாம் மீண்டும் PHP Pages-ல் Process செய்யப்பட்டு chain வழியாக மீண்டும் network-க்கு அனுப்பி வைக்கப்படும்.

 

MySQL Table Terminology:

MySQL Table-ன் பகுதிகள் பின்வருமாறு:

Table என்பது ஒருங்கிணைக்கப்பட்ட data-வின் தொகுப்புகள் ஆகும். அவை,

-> Body – இது row வரிசையில் data-வை உள்ளடக்கியது.

-> Table definition – இது அத்தகைய row-வில் எவ்வகையான data சேமித்து வைக்கப்பட்டுள்ளது என்பதை விவரிக்கும் Columns-ஐ உள்ளடக்கியது.

-> ஒவ்வொரு Column -ம் ஒரு Name(eg: book_id) மற்றும் Type(eg: Integer)-ஐ கொண்டிருக்கும். ஒவ்வொரு Type-ம் ஒரு வரையறுக்கப்பட்ட மதிப்புகளை உள்ளடக்கியது (Eg: முழு எண்கள் அல்லது Alphabets-ல் உள்ள எழுத்துக்கள்). Data இந்த வரையறுக்கப்பட்ட எல்லைக்குள் இருக்கும் மதிப்புகளைத்தான் பெற்றிருக்க வேண்டும். உதாரணத்திற்கு ஒரு Column, Integer வகையைச் சேர்ந்தது என

 

வரையறுக்கப்பட்ட பின், அதன் மதிப்புகளெல்லாம் 1 அல்லது 6502 என்று இருக்க வேண்டுமே தவிர 3.14 என்பது போன்ற தசம எண்களாக இருக்கக் கூடாது.

-> ஒவ்வொரு row-ம் தலைப்பில் உள்ள ஒவ்வொரு Column-ன் கீழ் ஒரு மதிப்பினைக் கொண்டிருக்கும். அந்த மதிப்புகள் அந்த Column-ல் வரையறுக்கப்பட்ட வகையைச் சேர்ந்தவையாக இருக்க வேண்டும். Book_id எனும் Column, SMALLINT எனும் Type-ஐ சேர்ந்தது எனில், இவ்வகையான data மட்டுமே அந்தrow-வில் சேமித்து வைக்கப்பட வேண்டும்.

-> ஒவ்வொரு Relation-ல் ஈடுபட்டுள்ள Columns-ன் எண்ணிக்கை அதன் degree-யைக் குறிப்பிடும்.

-> ஒவ்வொரு Relation-ல் ஈடுபட்டுள்ள Rows-ன் எண்ணிக்கை அதன் Cardinality-யைக் குறிப்பிடும்.

 

மாதிரி அட்டவணைகள்(Sample Tables):

 

 

நித்யா

 

இவர் cognizant நிறுவனத்தில் Data Warehouse Testing-ல் பணியாற்றி வருகிறார்.

%d bloggers like this: