ডাটাবেস সীমাবদ্ধতার একটি পরিষ্কার সংজ্ঞা কী? কেন একটি ডাটাবেসের জন্য সীমাবদ্ধতা গুরুত্বপূর্ণ? বাধার ধরণগুলি কী কী?
ডাটাবেস সীমাবদ্ধতার একটি পরিষ্কার সংজ্ঞা কী? কেন একটি ডাটাবেসের জন্য সীমাবদ্ধতা গুরুত্বপূর্ণ? বাধার ধরণগুলি কী কী?
উত্তর:
সীমাবদ্ধতা একটি ডাটাবেস স্কিমা সংজ্ঞা অংশ।
একটি সীমাবদ্ধতা সাধারণত একটি টেবিলের সাথে যুক্ত হয় এবং এটি একটি CREATE CONSTRAINT
বা CREATE ASSERTION
এসকিউএল বিবৃতি দিয়ে তৈরি করা হয় ।
তারা নির্দিষ্ট বৈশিষ্ট্যগুলি সংজ্ঞায়িত করে যে কোনও ডাটাবেসের ডেটা মেনে চলতে হবে। তারা কলাম, পুরো টেবিল, একাধিক টেবিল বা একটি সম্পূর্ণ স্কিমাতে প্রয়োগ করতে পারে। একটি নির্ভরযোগ্য ডাটাবেস সিস্টেম নিশ্চিত করে যে সীমাবদ্ধতা সর্বদা ধরে রাখা হয় (সম্ভবত কোনও লেনদেনের অভ্যন্তরে তথাকথিত পেছনের সীমাবদ্ধতার জন্য)।
সাধারণ ধরণের বাধা হ'ল:
আমাদের কেন বাধা দরকার তা বোঝার জন্য আপনাকে প্রথমে ডেটা অখণ্ডতার মান বুঝতে হবে।
ডেটা ইন্টিগ্রিটি ডেটার বৈধতা বোঝায়। আপনার তথ্য বৈধ? আপনার ডেটা আপনি কি সেগুলি ডিজাইন করেছেন তা উপস্থাপন করছে?
আমি আপনাকে জিজ্ঞাসা করি কি অদ্ভুত প্রশ্নগুলি ভাবতে পারে, তবে দুঃখের বিষয় যথেষ্ট পরিমাণে, ডেটাবেসগুলি আবর্জনার ডেটা দ্বারা ভরা হয়, অন্যান্য সারণীতে সারিগুলির অবৈধ উল্লেখ, যা অনেক আগেই চলে গেছে ... এবং মানগুলি ব্যবসার যুক্তির কোনও মানে না আপনার সমাধান আর।
এই সমস্ত আবর্জনা আপনার কর্মক্ষমতা হ্রাস করার একা নয়, তবে এটি আপনার প্রয়োগ যুক্তির অধীনে একটি সময়-বোমা যা অবশেষে এমন ডেটা পুনরুদ্ধার করবে যা এটি বোঝার জন্য ডিজাইন করা হয়নি।
সীমাবদ্ধতাগুলি এমন নিয়ম যা আপনি ডিজাইন-সময়ে তৈরি করেন যা আপনার ডেটাটিকে দূষিত হওয়ার হাত থেকে রক্ষা করে। এটি একটি ডাটাবেস সমাধান আপনার হৃদয় সন্তানের দীর্ঘ সময় বেঁচে থাকার জন্য প্রয়োজনীয়। কোনও বাধা ছাড়াই আপনার সমাধান সময় এবং ভারী ব্যবহারের সাথে অবশ্যই পচে যাবে।
আপনাকে স্বীকার করতে হবে যে আপনার ডাটাবেস ডিজাইন করা আপনার সমাধানের জন্ম মাত্র। এখানে অবশ্যই এটি দীর্ঘ সময়ের জন্য বেঁচে থাকতে হবে এবং এর শেষ ব্যবহারকারীরা (যেমন ক্লায়েন্ট অ্যাপ্লিকেশন) দ্বারা সমস্ত ধরণের (অদ্ভুত) আচরণ সহ্য করতে হবে। তবে উন্নয়নের এই নকশা-পর্যায়টি আপনার সমাধানের দীর্ঘ সময়ের সাফল্যের জন্য গুরুত্বপূর্ণ! এটিকে সম্মান করুন এবং এটি প্রয়োজনীয় সময় এবং মনোযোগ দিন।
একজন জ্ঞানী ব্যক্তি একবার বলেছিলেন: "ডেটা অবশ্যই নিজেকে রক্ষা করবে!" । এবং এটিই সীমাবদ্ধতাগুলি করে। এটি এমন নিয়ম যা আপনার ডাটাবেসে ডেটা যতটা সম্ভব বৈধ রাখে।
এটি করার অনেকগুলি উপায় রয়েছে তবে মূলত তারা এগুলিতে সিদ্ধ হয়:
sys.check_constraints
অ্যাডভেঞ্চার ওয়ার্কসের নমুনা ডাটাবেসে চেক সীমাবদ্ধতার ব্যবহারের জন্য ধারণা পানআমি এখানে যেমন ইঙ্গিত দিয়েছি, এটি আপনার ডাটাবেস ডিজাইনের জন্য সবচেয়ে ভাল এবং সবচেয়ে প্রতিরক্ষামূলক সীমাবদ্ধতা তৈরির জন্য কিছু বিশদ বিবেচনা গ্রহণ করবে। আপনাকে প্রথমে উপরের বিভিন্ন সীমাবদ্ধতার ধরণের সম্ভাবনা এবং সীমাবদ্ধতাগুলি জানতে হবে। আরও পড়ার মধ্যে অন্তর্ভুক্ত থাকতে পারে:
বিদেশী কী সীমাবদ্ধতা - ডাব্লু 3 স্কুল
শুভকামনা! ;)
সীমাবদ্ধতাগুলি ডেটার নিয়ম ছাড়া কিছুই নয়। কোন ডেটা বৈধ এবং কোনটি অবৈধ তা সীমাবদ্ধতা ব্যবহার করে সংজ্ঞায়িত করা যায়। সুতরাং, ডেটা যে অখণ্ডতা বজায় রাখা যেতে পারে। নিম্নলিখিত ব্যবহৃত হয় ব্যাপকভাবে ব্যবহৃত প্রতিবন্ধকতা:
NOT NULL
। এখানে আমরা নির্দিষ্ট কলামের জন্য আমরা কী ডেটা প্রবেশ করতে পারি এবং সেই কলামটির জন্য কী প্রত্যাশা করা যায় তা নির্দিষ্ট করতে পারি।সীমাবদ্ধতা ডেটা নির্দিষ্ট বৈশিষ্ট্য প্রয়োগ করতে ব্যবহার করা যেতে পারে। একটি সাধারণ উদাহরণ হ'ল একটি মান কলাম [0-100000] এর মধ্যে সীমাবদ্ধ করা। এই ভূমিকা ভাল লাগছে।
সীমাবদ্ধতাগুলি নির্ধারণ করে যে ডাটাবেসের ডেটাগুলির জন্য কোন মানগুলি বৈধ। উদাহরণস্বরূপ, আপনি মানটি নাল নয় ( NOT NULL
বাধ্যবাধকতা) প্রয়োগ করতে পারেন , বা অন্য সারণিতে এটি একটি অনন্য বাধা হিসাবে উপস্থিত রয়েছে ( FOREIGN KEY
সীমাবদ্ধতা), বা এই টেবিলের মধ্যে এটি অনন্য (কোনও UNIQUE
বাধা বা সম্ভবত PRIMARY KEY
আপনার প্রয়োজনের উপর নির্ভর করে বাধা) depending )। সীমাবদ্ধতা ব্যবহার করে আরও সাধারণ বাধা প্রয়োগ করা যেতে পারে CHECK
।
এসকিউএল সার্ভার 2008 সীমাবদ্ধতার জন্য MSDN ডকুমেন্টেশন সম্ভবত আপনার সেরা শুরুর স্থান।
UNIQUE
সীমাবদ্ধতা (যার মধ্যে একটি PRIMARY KEY
প্রতিবন্ধকতা বৈকল্পিক)। প্রদত্ত ক্ষেত্রের সমস্ত মান সারণী জুড়ে অনন্য। এটি X
-অ্যাক্সিস সীমাবদ্ধতা (রেকর্ডস)
CHECK
সীমাবদ্ধতা (যার মধ্যে একটি NOT NULL
প্রতিবন্ধকতা বৈকল্পিক)। একটি নির্দিষ্ট শর্ত একই রেকর্ডের ক্ষেত্রগুলিতে প্রকাশের জন্য ধারণ করে holds এটি Y
-অ্যাক্সিস সীমাবদ্ধতা (ক্ষেত্র)
FOREIGN KEY
বাধা অন্য সারণীতে ক্ষেত্রের মানগুলির মধ্যে ক্ষেত্রের মান পাওয়া যায় তা পরীক্ষা করে। এটি Z
-অ্যাক্সিস সীমাবদ্ধতা (সারণী)।
CHECK
সীমাবদ্ধতা ব্যবহার করে লেখা যেতে পারে তবে কেন এটি আলাদাভাবে শ্রেণিবদ্ধ করুন? অর্থাত্ " Y
-axis" (যার অর্থ যাই হোক না কেন)।
FOREIGN KEY
ব্যবহার করে আপনি কীভাবে প্রয়োগ করবেন CHECK
?
SELECT
প্রশ্ন query CHECK
সীমাবদ্ধতায় আপনি সাবকুইরিগুলি (বা অন্য কোনও নির্মাণ বা বর্তমান রেকর্ডের বাইরে মানগুলি উল্লেখ করে) ব্যবহার করতে পারবেন না SQL Server
।
একটি ডাটাবেস হ'ল অনানুষ্ঠানিক ব্যবসায়িক বিধিগুলির একটি সেট সমন্বিত একটি ধারণাগত (বা ব্যবসা) মডেলের কম্পিউটারাইজড লজিক্যাল উপস্থাপনা। এই নিয়মগুলি হ'ল ডেটাটির ব্যবহারকারী-বোঝিত অর্থ। যেহেতু কম্পিউটারগুলি কেবল আনুষ্ঠানিক উপস্থাপনা বোঝে, ব্যবসায়ের নিয়মগুলি সরাসরি কোনও ডাটাবেসে প্রতিনিধিত্ব করা যায় না। তাদের অবশ্যই একটি আনুষ্ঠানিক উপস্থাপনা, লজিকাল মডেলটিতে ম্যাপ করা উচিত, যা অখণ্ডতার সীমাবদ্ধতার একটি সেট নিয়ে গঠিত। এই সীমাবদ্ধতাগুলি - ডাটাবেস স্কিমা - হ'ল ব্যবসায়ের নিয়মের ডেটাবেজে লজিক্যাল উপস্থাপনা এবং সুতরাং, ডেটাটির ডিবিএমএস-বোঝা অর্থ। এটি অনুসরণ করে যে যদি ডিবিএমএস অজানা থাকে এবং / অথবা ব্যবসায়ের নিয়মগুলি উপস্থাপন করে এমন প্রতিবন্ধকতার পুরো সেটটি প্রয়োগ করে না, তবে ডেটার অর্থ কী এবং এর জন্য এটির একটি অসম্পূর্ণ উপলব্ধি রয়েছে has
দ্রষ্টব্য: ডিবিএমএস- "বোঝা" অর্থ - অখণ্ডতার সীমাবদ্ধতা - ব্যবহারকারী-বোঝা অর্থ - ব্যবসায়িক বিধিগুলির সাথে এক নয় - তবে কিছু অর্থ হ্রাস সত্ত্বেও, আমরা ডেটা থেকে যৌক্তিক সূত্রগুলি যান্ত্রিক করার ক্ষমতা অর্জন করি।
ফ্যাবিয়ান প্যাসকালের লেখা "একটি পুরানো ক্লাসের ত্রুটি"
এসকিউএলটিতে মূলত 4 ধরণের মূল সীমাবদ্ধতা রয়েছে:
ডোমেন সীমাবদ্ধতা: নতুন টিপলের জন্য সরবরাহ করা বিশিষ্ট মানগুলির মধ্যে যদি কোনও নির্দিষ্ট অ্যাট্রিবিউট ডোমেন না হয়
কী বাধা: যদি কোনও নতুন টিপলে একটি মূল বৈশিষ্ট্যের মান ইতিমধ্যে সম্পর্কের অন্য টিপলে উপস্থিত থাকে
রেফারেন্সিয়াল ইন্টিগ্রিটি: যদি কোনও নতুন টিপলে কোনও বিদেশী কী মান একটি প্রাথমিক কী মানকে উল্লেখ করে যা রেফারেন্সযুক্ত সম্পর্কের মধ্যে নেই
সত্তার সংখণ্ডতা: যদি প্রাথমিক কী মানটি একটি নতুন টিপলে নাল হয়
সীমাবদ্ধতা শর্তাদি, যা নির্দিষ্ট শর্তটি বৈধ করতে পারে। ডাটাবেসের সাথে সম্পর্কিত সীমাবদ্ধতাগুলি হ'ল ডোমেন অখণ্ডতা, সত্তা অখণ্ডতা, রেফারেনশিয়াল ইন্টিগ্রিটি, ব্যবহারকারীর সংজ্ঞায়িত সংহততা বাধা ইত্যাদি etc.