DATA DICTONARY – CONSTRAINT

DATA DICTONARY – CONSTRAINT

 

টেবিল তৈরীর সময়ে ভুলক্রমে বা ইচ্ছাকৃত ভাবে CONSTRAINT ADD না করলে নিম্নলিখিত উপায়ে ADD, DROP, ENABLE / DISABLE করা যাবে। তবে এই কাজগুলি করতে গেলে কিনামে, কোন কলামে এবং কোন্ প্রকারের CONSTRAINT ব্যবহার করা হয়েছে তা জেনে নিতে হবে।

 

সাধারন ভাবে DESC COMMAND দিলে প্রয়োগ করলে আমরা টেবিলের গঠন দেখতে পারি। সেই সংগে NOT NULL CONSTRAINT থাকলে তাও দেখা যায়। কিন্তু অন্যান্য CONSTRAINT দেখা যায় না। অন্যান্য CONSTRAINT দেখতে চাইলে CONSTRAINT সংক্রান্ত ওরাকলের বিভিন্ন টেবিল থেকে দেখা যাবে। এগুলি ওরাকলের ডিফল্ট টেবিল। এই সকল টেবিল বিভিন্ন ইউজারের তৈরীকৃত CONSTRAINT জমা থাকে। সুতরাং  CONSTRAINT নিয়ে কাজ করতে গেলে এই সকল টেবিল সম্পর্কে সম্যক ধারণা এবং টেবিল গুলি নিয়ে কাজ করার দরকার রয়েছে। কারণ এগুলি জানা না থাকলে CONSTRAINT মাছা যােেব না। নতুন  CONSTRAINT তৈরী বা CONSTRAINT পরিবর্তনের জন্য অবশ্য বিস্তারিত জানতে হবে। নিচে CONSTRAINT সংক্রান্ত কয়েকটি টেবিলের নাম য়ো হলো এবং কিভাবে তা ব্যবহার হয়, তাও দেখানো হলো।

 

আর তা জানার জন্য নিচের মত করে কমান্ড দিতে হবে। নিচের ছকের বামপাশে রয়েছে মূলতঃ টেবিলের নাম। সুতরাং টেবিল দেখার জন্য আমরা কমান্ড দিতে পারি।

 

ALL_CONSTRAINTS

All Constraint

ALL_CONS_COLUMNS

All Column Constraint

USER_CONS_COLUMNS

User Column Constraint

USER_CONSTRAINTS

User Constraint

 

 

 

 

SQL> desc ALL_CONSTRAINTS;

 Name                                      Null?    Type

 ----------------------------------------- -------- ----------------------------

 OWNER                                     NOT NULL VARCHAR2(30)

 CONSTRAINT_NAME                           NOT NULL VARCHAR2(30)

 CONSTRAINT_TYPE                                    VARCHAR2(1)

 TABLE_NAME                                NOT NULL VARCHAR2(30)

 SEARCH_CONDITION                                   LONG

 R_OWNER                                            VARCHAR2(30)

 R_CONSTRAINT_NAME                                  VARCHAR2(30)

 DELETE_RULE                                        VARCHAR2(9)

 STATUS                                             VARCHAR2(8)

 DEFERRABLE                                         VARCHAR2(14)

 DEFERRED                                           VARCHAR2(9)

 VALIDATED                                          VARCHAR2(13)

 GENERATED                                          VARCHAR2(14)

 BAD                                                VARCHAR2(3)

 RELY                                               VARCHAR2(4)

 LAST_CHANGE                                        DATE

 INDEX_OWNER                                        VARCHAR2(30)

 INDEX_NAME                                         VARCHAR2(30)

 INVALID                                            VARCHAR2(7)

 VIEW_RELATED                                       VARCHAR2(14)

 

 SQL> desc ALL_CONS_COLUMNS;

 Name                                      Null?    Type

 ----------------------------------------- -------- ----------------------------

 OWNER                                     NOT NULL VARCHAR2(30)

 CONSTRAINT_NAME                           NOT NULL VARCHAR2(30)

 TABLE_NAME                                NOT NULL VARCHAR2(30)

 COLUMN_NAME                                        VARCHAR2(4000)

 POSITION                                           NUMBER

 

SQL> desc USER_CONS_COLUMNS;

 Name                                      Null?    Type

 ----------------------------------------- -------- ----------------------------

 OWNER                                     NOT NULL VARCHAR2(30)

 CONSTRAINT_NAME                           NOT NULL VARCHAR2(30)

 TABLE_NAME                                NOT NULL VARCHAR2(30)

 COLUMN_NAME                                        VARCHAR2(4000)

 POSITION                                           NUMBER

 

যেহেতু আমরা টেবিলর গঠন জানতে পারলাম সেহেতু এখন যে কোন কলামের ডাটা দেখা যাবে। কি কি নামে CONSTRAINTS আছে তা জানা আমাদের জন্য খুবই সহজ, কাজেই যে কােন ধরনের CONSTRAINTS নিয়ে যেক কোন কাজনি করতে পারবো। নিচে কয়েকটি উদাহরন দেয়া যাক।


SYNTAX

 

SQL> SELECT CONSTRAINT_NAME, COLUMN_NAME

FROM USER_CONS_COLUMNS

WHERE TABLE_NAME = 'product'

 

SQL>SELECT CONSTRAINT_NAME, COLUMN_NAME

FROM USER_CONS_COLUMNS

WHERE TABLE_NAME='EMP'

 

CONSTRAINT_NAME  COLUMN_NAME

---------------- -----------

FK_DEPTNO         DEPTNO

PK_EMP            EMPNO

 

SQL> SELECT CONSTRAINT_NAME, CONSTRAINT_TYPE

FROM USER_CONSTRAINTS

WHERE TABLE_NAME='EMP';

 

CONSTRAINT_NAME                C

------------------------------ -

PK_EMP                         P

FK_DEPTNO                      R

 

উপরের কমান্ড থেকে আমরা কি দেখতে পাই? বামপাশের কলামে কলামের নাম এবং ডান পাশে C, P, R ইত্যাদি। আসলে এগুলি হচ্ছে CONSTRAINTS কলাম টাইপ। কোন ধরনের CONSTRAINTS বা কোন টাইপের CONSTRAINTS তা জানতে নিচের ছকটি লক্ষ করি।


C   =          CHECK AND NOT NULL ALSO SAME

P    =          PRIMARY KEY

R   =          REFERENTIAL / FOREIGN KEY

U   =          UNIQUE

 

** কলাম CONSTRAINTS তৈরী করলে কোন নাম দেয়া হয় না কিন্তু ওরাকল একটি নিজস্ব নাম দিয়ে ডাটা ডিকশনারীতে সংরক্ষন  করে থাকে। যা আমরা উপরোক্ত প্রক্রিয়ায় দেখতে পারি।

কোন মন্তব্য নেই:

একটি মন্তব্য পোস্ট করুন