• ভাষা:
  • English
  • বাংলা
হোম > 12c ওরাকল ডাটাবেজ ম্যানেজমেন্ট সিস্টেম পর্ব (৯)
লেখক পরিচিতি
লেখকের নাম: মিজানুর ইসলাম লস্কর
মোট লেখা:২
লেখা সম্পর্কিত
পাবলিশ:
২০১৯ - ফেব্রুয়ারী
তথ্যসূত্র:
কমপিউটার জগৎ
লেখার ধরণ:
ওরাকল
তথ্যসূত্র:
ওরাকল
ভাষা:
বাংলা
স্বত্ত্ব:
কমপিউটার জগৎ
12c ওরাকল ডাটাবেজ ম্যানেজমেন্ট সিস্টেম পর্ব (৯)
12c ওরাকল ডাটাবেজ ম্যানেজমেন্ট সিস্টেম পর্ব (৯)
মোহাম্মদ মিজানুর রহমান নয়ন

ইন্টিগ্রিটি কনস্ট্রেইন্ট
ইন্টিগ্রিটি কনস্ট্রেইন্ট হচ্ছে একসেট রুল, যা টেবিলের ডাটা ইনসার্ট, আপডেট ও ডিলিট প্রক্রিয়াকে নিয়ন্ত্রণ করে। ইন্ট্রিগ্রিটি কনস্ট্রেইন্ট ইনভেলিড ডাটাকে টেবিলে ইনসার্ট বা আপডেট করতে দেয় না। ইন্ট্রিগ্রিটি কনস্ট্রেইন্ট ব্যবহার করে টেবিলের কলাম লেভেলে বিভিন্ন ধরনের ভেলিডেশন দেয়া যায়।

ওরাকল ডাটাবেজে বিভিন্ন ধরনের Integrity Constraints ব্যবহার করা যায়। যেমন

* NOT NULL
* CHECK
* DEFAULT
* UNIQUE KEY
* PRIMARY KEY
* FOREIGN KEY

বিভিন্ন ধরনের ইন্টিগ্রিটি কনস্ট্রেইন্টস সম্পর্কে সংক্ষেপে বর্ণনা করা হলো।
* NOT ঘটখখ ইন্টিগ্রিটি কনস্ট্রেইন্ট সেট করা হলে টেবিলের কলামে কোনো ঘটখখ ডাটা ইনসার্ট করা যাবে না, অর্থাৎ যে কলামের জন্য ঘঙঞ ঘটখখ ইন্টিগ্রিটি কনস্ট্রেইন্ট সেট করা হবে, সেই কলামে ডাটা ইনসার্ট করার সময় অবশ্যই ডাটা দিতে হবে।

* চেক কনস্ট্রেইন্ট একটি টেবিলে এক বা একাধিক কলামে সেট করা যায়। প্রতিটি কলামে আলাদা আলাদা চেক কনস্ট্রেইন্ট সেট করা যায়। যেমন ধমব<১৮ হতে পারবে না অথবা ঝবী শুধু গধষব বা ঋবসধষব হবে প্রভৃতি।

* উঊঋঅটখঞ  ইন্টিগ্রিটি কনস্ট্রেইন্ট ব্যবহার করে টেবিলের কোনো কলামের জন্য ডিফল্ট ভ্যালু সেট করা যায়। ডিফল্ট ভ্যালু সেট করা হলে টেবিলে ডাটা ইনসার্ট করার সময় উক্ত কলামের জন্য কোনো ভ্যালু দেয়া না হলে এটি ডিফল্ট ভ্যালুকে ইনসার্ট করে।

* টেবিলের যে কলামে ইউনিক কী ইন্টিগ্রিটি কনস্ট্রেইন্ট ডিফাইন করা হবে, সেই কলামের প্রতিটি রো অবশ্যই একটি অন্যটি থেকে ইউনিক হতে হবে। অর্থাৎ উক্ত কলামে কোনো ডুপ্লিকেট ডাটা ইনসার্ট করা যাবে না। যেমন স্টুডেন্ট রেজিস্ট্রেশন নাম্বার কখনও ডুপ্লিকেট হতে পারে না। তাই রেজিস্ট্রেশন নাম্বার সংরক্ষণের জন্য নির্ধারিত কলামে ইউনিক কী ডিফাইন করা যায়। এতে উক্ত কলামে ডাটা ডুপ্লিকেট হওয়ার সম্ভাবনা থাকবে না।

* প্রাইমারি কী একটি বিশেষ ধরনের ইন্টিগ্রিটি কনস্ট্রেইন্ট, যা একটি টেবিলে শুধু একটিই থাকতে পারে। তবে একটি প্রাইমারি কী এক বা একাধিক কলামের সমন্বয়ে গঠিত হতে পারে। প্রাইমারি কী যেসব কলামের সমন্বয়ে গঠিত হয়, উক্ত কলামগুলোর রোগুলোর ভ্যালু একটি ইউনিক আইডেন্টিফায়ার হিসেবে কাজ করে। অর্থাৎ কলামের প্রাইমারি কী-এর ভ্যালু ডুপ্লিকেট হতে পারে না। প্রাইমারি কী-এর মাধ্যমে প্রতিটি রো-কে আলাদা আলাদাভাবে আইডেন্টিফাই করা যায়। এছাড়া প্রাইমারি কী-এর কলামগুলোতে নাল ভ্যালু ইনসার্ট করা যায় না। প্রাইমারি কী ডিক্লেয়ার করা হলে এর কলামগুলোর সমন্বয়ে একটি ইউনিক ইনডেক্স তৈরি হয়। ফলে প্রাইমারি কী ব্যবহার করে ডাটা দ্রুত সার্চ করা যায়।

* ফরেন কী-কে রেফারেন্সিয়াল ইন্টিগ্রিটি কনস্ট্রেইন্টস (জবভবৎবহঃরধষ ওহঃবমৎরঃু ঈড়হংঃৎধরহঃং) নামের অবহিত করা হয়। এটি দুটি টেবিলের মধ্যে প্যারেন্ট-চাইল্ড রিলেশন তৈরি করার জন্য ব্যবহার হয়। যে টেবিলে ফরেন কী ডিক্লেয়ার করা হবে, সেই টেবিলে এটি চাইল্ড হিসেবে কাজ করবে এবং যে টেবিলে তাকে প্রাইমারি কী হিসেবে ব্যবহার করা হবে, সে টেবিলটি প্যারেন্ট টেবিল হিসেবে ব্যবহার হবে। প্যারেন্ট টেবিলে কোনো ভ্যালু না থাকলে তাকে চাইল্ড টেবিলে ইনসার্ট বা আপডেট করা যাবে না। সাধারণত ডাটা ইন্টিগ্রিটি রক্ষা করার জন্য ফরেন কী ব্যবহার করা হয়।

NOT NULL কনস্ট্রেইন্ট তৈরি করা

NOT NULL কনস্ট্রেইন্ট টেবিলের কলামে নাল ভ্যালু ইনসার্ট অথবা আপডেট করতে দেয় না। এটি যে কলামের জন্য সেট করা হবে, উক্ত কলামে ডাটা ইনসার্ট করার সময় অবশ্যই কোনো ভ্যালু দিতে হবে। উদাহরণস্বরূপ এমপ্লয়ী আইডি, স্টুডেন্ট আইডি, রেজিস্ট্রেশন নাম্বার, রোল নাম্বার প্রভৃতি কলামে সাধারণত NOT NULL কনস্ট্রেইন্ট ব্যবহার করা হয়।
টেবিল তৈরি করার সময় NOT NULL কনস্ট্রেইন্ট তৈরি করার একটি উদাহরণ দেয়া হলো

CREATE TABLE NEW_EMPLOYEES(
EMP_ID NUMBER NOT NULL,
EMP_FIRSTNAME VARCHAR2(100) NOT NULL,
EMP_LASTNAME VARCHAR2(100),
EMP_ADDRESS VARCHAR2(200),
EMP_DEPT_ID VARCHAR2(4) NOT NULL,
EMP_MOBILE VARCHAR2(12));

টেবিল তৈরি করার পর তাতে ঘঙঞ ঘটখখ কনস্ট্রেইন্ট যুক্ত করতে হলে প্রথমে টেবিলটি তৈরি করতে হবে। এরপর তাতে অখঞঊজ ঞঅইখঊ কমান্ড ব্যবহার করে কনস্ট্রেইন্ট যুক্ত করতে হবে। যেমন

CREATE TABLE NEW_EMPLOYEES (
EMP_ID NUMBER,
EMP_FIRSTNAME VARCHAR2(100),
EMP_LASTNAME VARCHAR2(100),
EMP_ADDRESS VARCHAR2(200),
EMP_DEPT_ID VARCHAR2(4) ,
EMP_MOBILE VARCHAR2(12));
ALTER TABLE NEW_EMPLOYEES
MODIFY(
EMP_ID NOT NULL,
EMP_FIRSTNAME NOT NULL,
EMP_DEPT_ID NOT NULL);

টেবিলে NOT NULL কনস্ট্রেইন্ট তৈরি করার সময় এর নাম দেয়া যায়। এজন্য CONSTRAINT কী-ওয়ার্ডের পর কনস্ট্রেইন্টের নাম দিতে হবে। NEW_EMPLOYEES টেবিলের ওপর ঊওউথঘঘ নামে একটি NOT NULL কনস্ট্রেইন্ট তৈরি করার উদাহরণ দেয়া হলো।

ALTER TABLE NEW_EMPLOYEES
MODIFY EMP_ID CONSTRAINT EID_NN NOT NULL;
পত্রিকায় লেখাটির পাতাগুলো
লেখাটি পিডিএফ ফর্মেটে ডাউনলোড করুন
লেখাটির সহায়ক ভিডিও
২০১৯ - ফেব্রুয়ারী সংখ্যার হাইলাইটস
চলতি সংখ্যার হাইলাইটস