SQL දත්ත සමුදායන් හා වගු නිර්මාණය කිරීම

දත්ත සමුදාය නිර්මාණය කිරීම

ව්යුහගත විමසුම් භාෂාව සමඟ දත්ත සමුදා සහ වගු නිර්මාණය කිරීමට ඔබ සූදානම්ද? මෙම ලිපියෙහි, අපි CREATE DATABASE සහ CREATE TABLE විධානයන් සමඟ වගු නිර්මාණය කරමින් ක්රියාවලිය පිරික්සා බලයි. ඔබ SQL වෙත අලුත් නම්, පළමුව අපගේ SQL Basics ලිපිය සමාලෝචනය කිරීමට ඔබ කැමති විය හැකිය.

ව්යාපාර අවශ්යතා

යතුරු පුවරුවෙහි ඉඳගන්නට පෙර, පාරිභෝගිකයාගේ අවශ්යතාවයන් පිළිබඳව අපට හොඳ අවබෝධයක් ඇති බව තහවුරු කර ගන්න. මෙම දෘෂ්ටිය ලබා ගැනීමට හොඳම ක්රමය කුමක්ද? ගනුදෙනුකරු සමඟ කතා කිරීම, ඇත්තෙන්ම! XYZ හි මානව සම්පත් අධ්යක්ෂකවරයා සමඟ වාඩිවීමෙන් පසුව ඔවුන් විජට් අලෙවි සමාගමක් වන අතර ඔවුන්ගේ විකුණුම් කාර්ය මණ්ඩලයේ තොරතුරු සොයා බැලීමට මූලිකවම උනන්දු වේ.

XYZ Corporation සිය විකුණුම් බලකාය නැගෙනහිර සහ බටහිර ප්රදේශවලට බෙදා වෙන් කරන අතර, ඒවා එක් එක් විකුණුම් නියෝජිතයන් විසින් ආවරණය කරන ලද බොහෝ ප්රදේශවලට බෙදා ඇත. එක් එක් සේවකයා විසින් ආවරණය කරන ලද භූමිය මෙන්ම එක් එක් සේවකයාගේ වැටුප් තොරතුරු සහ අධීක්ෂණ ව්යුහය ආවරනය කර ගැනීමට HR දෙපාර්තමේන්තුව කැමති වනු ඇත. මෙම අවශ්යතා සපුරාලීම සඳහා අපි මෙම පිටුවෙහි Entity-Relationship diagram හි දැක්වෙන දත්ත වගු තුනකින් සමන්විත වේ.

දත්තගබඩා වේදිකාව තෝරාගැනීම

ව්යුහගත Query Language (SQL) මත පදනම් වූ දත්ත සමුදා කළමණාකරණ පද්ධතියක් (හෝ DBMS) භාවිතා කිරීමට අපි තීරණය කර ඇත. එබැවින් අපගේ සියලුම දත්ත සමුදා සහ වගු නිර්මාණය කිරීමේ විධානයන්ට ANSI SQL සම්මතයෙන් ලිවිය යුතුය.

අතිරේක ප්රතිලාභයක් ලෙස, ANSI-අනුකූල SQL භාවිතයෙන් මෙම විධානයන් Oracle සහ Microsoft SQL සර්වර් වැනි SQL සම්මතයට අනුකූල කරන ඕනෑම DBMS මත කටයුතු කරනු ඇත. ඔබ තවමත් ඔබගේ දත්ත ගබඩාව සඳහා වේදිකාවක් තෝරා නොගන්නේ නම්, දත්ත සමුදා මෘදුකාංග විකල්පයන් මඟින් තේරීම් ක්රියාවලිය හරහා ඔබව ගමන් කරයි.

දත්ත සමුදාය නිර්මාණය කිරීම

අපගේ පළමු පියවර වන්නේ දත්ත සමුදාය නිර්මාණය කිරීමයි. බොහෝ දත්ත සමුදා කළමණාකරණ පද්ධති මෙම පියවරේදී දත්ත සමුදා පරාමිතීන් අභිරුචිකරණය කිරීමට විකල්ප මාලාවක් ඉදිරිපත් කරයි, නමුත් අපගේ දත්ත සමුදාය පමණක් දත්ත සමුදායක් සෑදීමට ඉඩ සලසයි. අපගේ සියලුම විධාන අනුව මෙන්, ඔබගේ විශේෂිත පද්ධතිය මඟින් අනුමත කරන ඕනෑම උසස් තත්ව පරාමිතීන් ඔබගේ අවශ්යතාවයන් සපුරාලීමට තීරණය කිරීමට ඔබේ DBMS සඳහා ලේඛනගත කිරීම සඳහා ඔබට අවශ්ය විය හැකිය. අපගේ දත්තගබඩාව සැකසීමට CREATE DATABASE විධානය භාවිතා කරමු.

දත්ත සමුච්චිත පුද්ගලයින් සෑදීම

ඉහත උදාහරණයේ භාවිතා කරන ප්රාග්ධනීකරණය පිළිබඳව විශේෂ අවධානයක් යොමු කරන්න. SQL හි පාඨමාලාවේ නිර්මාපකයෝ, "CREATE" සහ "DATABASE" වැනි සියළුම විශාල අකුරු භාවිතා කිරීම සඳහා භාවිතා කර ඇති පොදු "සාමාන්ය" භාවිතා කිරීමකි. මෙම සම්මුති මගින් පහසුවෙන් කියවිය හැකි වේ.

අපගේ දත්තගබඩාවට අප විසින් වගු නිර්මාණය කරන ලෙස මෙම නිබන්ධනය කියවන්න.

තව ඉගෙන ගන්න

ව්යුහගත Query Language පිළිබඳ වැඩි විස්තර දැන ගැනීමට, SQL හැඳින්වීම කියවන්න හෝ අපගේ නිදහස් ඉගෙනුම් SQL ඊ-මේල් පාඨමාලාවක් සඳහා ලියාපදිංචි වන්න.

දැන් අපි අපේ දත්තගබඩාව නිර්මාණය කර නිර්මාණය කර ඇති අතර, XYZ සංස්ථා සේවකයන්ගේ තොරතුරු ගබඩා කිරීම සඳහා භාවිතා කළ වගු තුන නිර්මාණය කිරීමට අපි සූදානමින් සිටින්නෙමු. අපි මෙම පාඩම් මාලාවේ පෙර කොටසෙහි සැලසුම් කළ මේස ක්රියාත්මක කරනු ඇත.

අපගේ පළමු වගුව නිර්මාණය කිරීම

අපගේ පළමු වගුව අපගේ සමාගමෙහි එක් එක් සේවකයා සඳහා පුද්ගලික දත්ත වලින් සමන්විත වේ. අපි සෑම සේවකයෙකුගේ නම, වැටුප්, හැඳුනුම්පත සහ කළමනාකරු ඇතුළත් කළ යුතුය. අනාගතයේ දී දත්ත සෙවීම සහ වර්ගීකරණය සරල කිරීම සඳහා, අන්තිම සහ පළමු නම් වෙන් වෙන් ක්ෂේත්රවලට වෙන් කිරීම සඳහා හොඳ සැලසුම් භාවිතයකි. එසේම, එක් එක් සේවක වාර්තාවේ කළමනාකරුගේ සේවක හැඳුනුම්පත යොමු කිරීම මගින් සෑම සේවකයකුම කළමනාකරුවකුගේම අවධානය යොමු කරමු. මුලින්ම අපි කැමති සේවක මේසය දෙස බලමු.

ReportsTo attribute සෑම සේවකයෙකු සඳහාම කළමනාකරු හැඳුනුම්පත ගබඩා කරයි. පෙන්නුම් කරන ලද නියැදි වාර්තා වලින්, ටෝ ක්වෙන්ඩෝල් සහ ජෝන් ස්මිත් යන දෙදෙනාගේ කළමනාකරු සූගේ ස්කැම්පි බව තීරණය කළ හැකිය. කෙසේ වෙතත්, Sue ගේ කළමනාකරු පිළිබඳ දත්ත සමුදායේ කිසිදු තොරතුරක් එහි NULL ඇතුලත් කර ඇති පේළියෙහි දැක්වෙන පරිදි දක්වයි.

දැන් අපගේ SQL දත්ත ගබඩාවේ වගුව නිර්මාණය කිරීමට SQL භාවිතා කළ හැකිය. අප එසේ කිරීමට පෙර, USE විධානයක් නිකුත් කිරීමෙන් නිවැරදි දත්ත සමුදාය තුළ ඇති බව සහතික කරමු.

භාවිතා කරන නිලධාරීන්;

විකල්පයක් ලෙස, "දත්ත සමුපකාර සේවකයින්"; විධානය ක්රියාත්මක වන්නේ එකම කාර්යයකි. දැන් අපගේ සේවක වගුව නිර්මාණය කිරීමට භාවිතා කරන SQL විධානය දෙස බලමු:

TABLE සේවකයින් නිර්මාණය කරන්න (සේවක INTEGER NOT NULL, අන්තිම නම VARCHAR (25) NOT NULL, මුල් නම VARCHAR (25) NOT NULL, වාර්තාගත INTEGER NULL);

ඉහත උදාහරණ ලෙස, වැඩසටහන්කරණ සංකල්පය මඟින් පරිශීලක නාමයෙන් තීරු සහ වගු සඳහා SQL මූලධර්ම සහ කුඩා අකුරු සඳහා සියලුම විශාල අකුරු භාවිතා කරමු. ඉහත විධානය මුලින්ම අවුල් සහගත බවක් පෙනෙන්නට ඇතත්, එය පිටුපස සරල ව්යුහයක් පවතී. මෙන්න ටිකක් දේවල් ටිකක් ඉවත් කළ හැකි පොදු අදහසක්:

TABLE TABLE වගු නාමය (attribribute_name datatype විකල්පයන්, ..., attribribute_name datatype විකල්පයන්);

ලක්ෂණ සහ දත්ත වර්ග

පෙර උදාහරණයක් ලෙස, වගුවේ නම සේවකයින් වන අතර අපි හතර ගුණාංග ඇතුළත් වේ: සේවකයකු, අන්තිම නම, පළමු නම සහ වාර්තා කරන්න. දත්ත කේතරය සෑම ක්ෂේත්රයකම ගබඩා කිරීමට බලාපොරොත්තු වන තොරතුරු වර්ගය පෙන්නුම් කරයි. සේවක හැඳුනුම් අංකය යනු සරල පූර්ණ සංඛ්යා අංකයක් වන නිසා, අපි සේවකයාගේ ක්ෂේත්රයේ හා වාර්තාකරණ ක්ෂේත්රයේ INTEGER datatype භාවිතා කරමු. සේවක නාමයන් විචල්ය දිගු චරිත අක්ෂර විය යුතු අතර, සේවකයකුට අකුරු 25 කට වඩා වැඩි නමක් හෝ අන්තිම නමක් තිබිය යුතුය. එබැවින්, අපි මෙම ක්ෂේත්ර සඳහා VARCHAR (25) වර්ගය භාවිතා කරනු ඇත.

NULL අගයන්

CREATE ප්රකාශයේ විකල්ප ක්ෂේත්රය තුළ NULL හෝ NOT NULL ලෙසද අපට විශේෂණය කළ හැකිය. දත්ත සමුදාය වෙත පේළි එකතු කිරීමේදී එම ගුණාංගයට NULL (හෝ හිස්) අගයන් අවසර දෙනු ලැබේ. අපගේ උදාහරණයෙහි, මානව සම්පත් දෙපාර්තමේන්තුවේ සේවක හැඳුනුම්පත හා සම්පූර්ණ නම එක් එක් සේවකයා සඳහා ගබඩා කළ යුතුය. කෙසේ වෙතත්, සෑම සේවකයෙකුටම කළමනාකරුවෙකු නැත - ප්රධාන විධායක නිලධාරියා කිසිවෙකුට නොකියයි! - එබැවින් එම ක්ෂේත්රය තුළ NULL ඇතුලත් කිරීම් අපි ඉඩ දෙමු. NULL යනු පෙරනිමි අගය වන අතර, මෙම විකල්පය ඉවත් කිරීමක් සඳහා නිශ්චිතව NULL අගයන් ලබා දෙනු ඇත.

ඉතිරි වගු ගොඩනැඟීම

දැන් බලමු දේශය වගුව දෙස බලමු. මෙම දත්ත ඉක්මන් පෙනුමෙන්, අපට පූර්ණ සංඛ්යාවක් සහ විචල්ය දිග සංඛ්යාවක් ගබඩා කිරීමට අවශ්ය බව පෙනී යයි. අපගේ පෙර උදාහරණය සමඟ, කලාපීය හැඳුනුම්පත 25 කට වැඩි අක්ෂර පරිභෝජනය කිරීම අප අපේක්ෂා නොකෙරේ. කෙසේ වෙතත්, අපගේ ඇතැම් ප්රදේශවලට දිගු නම් ඇත, එබැවින් අපි මෙම අක්ෂරයේ අනුපිළිවෙලට අක්ෂර 40 ක් දක්වා පුළුල් කළ හැකිය. අනුරූපී SQL බලන්න:

TABLE territures නිර්මාණය කරන්න (territoryid INTEGER NOT NULL, භූමි විස්තරය VARCHAR (40) NOT NULL, කලාපීය VARCHAR (25) NOT NULL);

අවසාන වශයෙන්, සේවකයින් සහ ප්රදේශයන් අතර ඇති සබඳතා ගබඩා කිරීම සඳහා සේවක ටේ්රරිටි වගුව භාවිතා කරනු ඇත. එක් එක් සේවකයාට සහ භූමිය පිළිබඳ විස්තරාත්මක විස්තර අපගේ පෙර දෙකේ වගු තුල ගබඩා කර ඇත. එමනිසා, අපි මේ වගුවේදී පූර්ණ සංඛ්යා හඳුනාගැනීමේ අංක දෙක ගබඩා කළ යුතුයි. අපි මෙම තොරතුරු පුළුල් කිරීමට අවශ්ය නම්, අපට බහු දත්ත වගු ලබා ගැනීමට අපගේ දත්ත තේරීම් විධානයන් තුළ JOIN භාවිතා කළ හැකිය. දත්ත ගබඩා කිරීම මෙම දත්ත ගබඩාව තුළ අතිරික්තතාව අඩු කර අපගේ ගබඩා ධාවකයේ අවකාශය උපරිම ලෙස භාවිතා කරයි. අනාගතයේ නිබන්ධනය තුළ අපි JOIN විධානය ගැඹුරින් අධ්යයනය කරන්නෙමු. පහත දැක්වෙන්නේ අපගේ අවසාන වගුව ක්රියාත්මක කිරීමට SQL කේතය:

TABLE කාර්යයාලයන් නිර්මිත (සේවක INTEGER NOT NULL, භූමි ප්රදේශය INTEGER NOT NULL);

නිර්මාණයේ SQL දත්ත ගබඩාවේ ව්යුහය වෙනස් කිරීම සඳහා වන යාන්ත්රණය SQL මඟින් සපයයි

ඔබ විශේෂයෙන් ම අදිනුයි නම්, අප විසින් දත්ත ගබඩා වගු ක්රියාත්මක කිරීමේදී අප විසින් "අහම්බෙන්" අප විසින් සැලසුම් කරන ලද ඉල්ලීමක් ඉවත් කර ඇති බව ඔබ දැක ඇති විය හැකිය. XYZ කෝපරේෂන් හි මානව සම්පත් අධ්යක්ෂකවරයා විසින් දත්ත සමුදායේ සේවක වැටුප් තොරතුරු ලබා දෙන ලෙස අපි ඉල්ලා සිටියෙමු. අප විසින් නිර්මාණය කරන ලද දත්ත ගබඩා වගු සඳහා අපි නොසලකා හැරියෙමු.

කෙසේ වෙතත්, සියල්ල අහිමි නොවේ. අපගේ පවතින දත්ත සමුදායට මෙම ගුණාංගය එකතු කිරීමට ALTER TABLE විධානය භාවිතා කළ හැකිය. අපි සම්පූර්ණ වටිනාකමක් ලෙස වැටුප ගබඩා කිරීමට අවශ්යයි. ආකෘතිය CREATE TABLE විධානයට සමාන ය, මෙන්න එය:

ALTER TABLE සේවකයින් ADD වැටුප INTEGER NULL;

මෙම ගුණාංගය සඳහා NULL අගයන් අනුමත කර ඇති බව සලකන්න. බොහෝ අවස්ථාවලදී පවතින වගුවක් සඳහා තීරුව එකතු කිරීමේදී විකල්පයක් නොමැත. මෙම වගුවේ මෙම වගුව සඳහා කිසිදු සටහනක් නොමැති පේළි ඇතුළු පේලි අඩංගු වේ. එමනිසා, DBMS ස්වයංක්රීයව NULL අගය ස්වයංක්රීයව වසා දමයි.

SQL SQL දත්ත ගබඩාව සහ වගු නිර්මාණය කිරීමේ ක්රියාවලිය දෙස බලන විට එය විසිරී යයි. අපගේ SQL හි නිබන්ධන මාලාව තුල නව වාරික සඳහා නිතරම පරීක්ෂා කරන්න. නව දත්ත පදනම් වූ දත්ත සමුදා වෙබ් අඩවියට එකතු කරන විට ඉ-තැපැල් පසුබිමකට ඔබ කැමති නම්, අපගේ පුවත් ලිපියට දායක වීමට වග බලා ගන්න!