common.skill

DB2 এ ডেটাবেস তৈরি এবং ম্যানেজমেন্ট

Database Tutorials - ডিবি২ (DB2)
236
236

IBM DB2 একটি শক্তিশালী ডেটাবেস ম্যানেজমেন্ট সিস্টেম (DBMS) যা ডেটাবেস তৈরি, পরিচালনা এবং রক্ষণাবেক্ষণের জন্য অনেক শক্তিশালী টুলস এবং ফিচার সরবরাহ করে। এখানে DB2 এ ডেটাবেস তৈরি এবং ম্যানেজমেন্টের জন্য প্রয়োজনীয় ধাপগুলো বিস্তারিতভাবে আলোচনা করা হলো।


DB2 এ নতুন ডেটাবেস তৈরি করা

DB2 এ নতুন ডেটাবেস তৈরি করার জন্য প্রথমে DB2 ইনস্ট্যান্স শুরু করতে হবে এবং তারপর SQL কমান্ড ব্যবহার করে ডেটাবেস তৈরি করা যায়।

নতুন ডেটাবেস তৈরি করার পদক্ষেপ:

  1. ইনস্ট্যান্স চালু করুন:
    • ডেটাবেস তৈরি করার আগে, DB2 ইনস্ট্যান্সটি চালু করতে হবে। নিম্নলিখিত কমান্ড দিয়ে ইনস্ট্যান্স চালু করুন:

      db2start <instance_name>
      
  2. ডেটাবেস তৈরি করুন:
    • নতুন ডেটাবেস তৈরি করতে, CREATE DATABASE SQL কমান্ড ব্যবহার করতে হবে:

      db2 "CREATE DATABASE <database_name>"
      
    • এখানে <database_name> আপনার পছন্দের ডেটাবেসের নাম হতে হবে।
  3. ডেটাবেসের অপশন কনফিগার করুন:
    • ডেটাবেস তৈরি করার পর, আপনি ডেটাবেস টেবিল স্পেস, কনটেক্সট, ফাইলপথ, এবং অন্যান্য অপশন কনফিগার করতে পারেন।
  4. ডেটাবেস ব্যবহার শুরু করুন:
    • ডেটাবেস তৈরি হওয়ার পর, আপনি SQL কমান্ড দিয়ে ডেটাবেসে কাজ শুরু করতে পারবেন:

      db2 connect to <database_name>
      

DB2 টেবিল তৈরি এবং ম্যানেজমেন্ট

DB2 ডেটাবেসে ডেটা সংরক্ষণ করার জন্য টেবিল ব্যবহার করা হয়। টেবিল তৈরি, আপডেট এবং মুছে ফেলা ডেটাবেস ম্যানেজমেন্টের গুরুত্বপূর্ণ অংশ।

টেবিল তৈরি করার পদক্ষেপ:

  1. টেবিল তৈরি করুন:
    • একটি নতুন টেবিল তৈরি করার জন্য, CREATE TABLE SQL কমান্ড ব্যবহার করতে হবে। উদাহরণস্বরূপ:

      db2 "CREATE TABLE employee (
          id INT PRIMARY KEY,
          name VARCHAR(100),
          position VARCHAR(50),
          salary DECIMAL(10, 2)
      )"
      
    • এই কমান্ডে একটি employee নামক টেবিল তৈরি হবে যার মধ্যে id, name, position, এবং salary নামক কলাম থাকবে।
  2. টেবিলের স্কিমা তৈরি এবং ম্যানেজমেন্ট:
    • টেবিলের স্কিমা হলো টেবিলের কাঠামো, যার মধ্যে কOLUMNS এবং ডেটা টাইপ থাকে। টেবিল স্কিমা তৈরি করার সময়, আপনি নির্দিষ্ট ডেটা টাইপ এবং সীমাবদ্ধতা (constraints) সেট করতে পারেন।
    • উদাহরণস্বরূপ, যদি আপনি salary কলামের জন্য সীমাবদ্ধতা সেট করতে চান, তাহলে:

      db2 "ALTER TABLE employee ADD CONSTRAINT salary_check CHECK (salary > 0)"
      

DB2 এ ইনডেক্স তৈরি এবং ম্যানেজমেন্ট

ইনডেক্স হলো ডেটাবেসের একটি গুরুত্বপূর্ণ অংশ যা ডেটার দ্রুত অনুসন্ধান এবং অ্যাক্সেস নিশ্চিত করে। DB2 এ ইনডেক্স তৈরি করার জন্য বিভিন্ন অপশন রয়েছে।

ইনডেক্স তৈরি করার পদক্ষেপ:

  1. ইনডেক্স তৈরি করুন:
    • নির্দিষ্ট কলামের জন্য ইনডেক্স তৈরি করতে, CREATE INDEX কমান্ড ব্যবহার করতে হয়। উদাহরণস্বরূপ:

      db2 "CREATE INDEX emp_idx ON employee(name)"
      
    • এই কমান্ডটি employee টেবিলের name কলামের জন্য একটি ইনডেক্স তৈরি করবে।
  2. ইনডেক্স ম্যানেজমেন্ট:
    • আপনি ইনডেক্স রিমুভ বা পুনর্গঠন করতে পারেন। উদাহরণস্বরূপ:

      db2 "DROP INDEX emp_idx"
      
    • অথবা, ইনডেক্স পুনর্গঠন করার জন্য:

      db2 "REORG INDEXES ALL"
      

DB2 এ টেবিল স্পেস ম্যানেজমেন্ট

টেবিল স্পেস হলো ডেটাবেসের একটি অংশ যেখানে ডেটা এবং ইনডেক্সগুলি সংরক্ষিত হয়। DB2 এ টেবিল স্পেস তৈরি এবং ম্যানেজমেন্ট একটি গুরুত্বপূর্ণ অংশ।

টেবিল স্পেস তৈরি এবং ম্যানেজমেন্ট:

  1. টেবিল স্পেস তৈরি করুন:
    • DB2 এ নতুন টেবিল স্পেস তৈরি করতে, CREATE TABLESPACE কমান্ড ব্যবহার করতে হয়:

      db2 "CREATE TABLESPACE employee_space MANAGED BY DATABASE USING ('/db2data/emp_data')"
      
  2. টেবিল স্পেসের অবস্থা পরীক্ষা করুন:
    • টেবিল স্পেসের অবস্থা পরীক্ষা করতে:

      db2 "LIST TABLESPACES"
      
  3. টেবিল স্পেসে ডেটাবেসের টেবিল স্থানান্তর:
    • টেবিল স্পেস পরিবর্তন বা টেবিল স্থানান্তর করতে:

      db2 "ALTER TABLE employee MOVE TO TABLESPACE new_space"
      

DB2 এ ডেটা ব্যাকআপ এবং রিকভারি

DB2 ডেটাবেসে ডেটা ব্যাকআপ এবং রিকভারি অত্যন্ত গুরুত্বপূর্ণ। এটি ডেটাবেসের ডেটা সুরক্ষিত রাখতে সাহায্য করে।

ব্যাকআপ এবং রিকভারি:

  1. ফুল ব্যাকআপ:
    • ডেটাবেসের সম্পূর্ণ ব্যাকআপ নিতে নিম্নলিখিত কমান্ড ব্যবহার করা হয়:

      db2 "BACKUP DATABASE <database_name> TO '/backup_directory'"
      
  2. ইনক্রিমেন্টাল ব্যাকআপ:
    • ইনক্রিমেন্টাল ব্যাকআপ নেয়ার জন্য:

      db2 "BACKUP DATABASE <database_name> ONLINE TO '/backup_directory' INCREMENTAL"
      
  3. ডেটাবেস রিকভারি:
    • ডেটাবেস পুনরুদ্ধার করতে:

      db2 "RESTORE DATABASE <database_name> FROM '/backup_directory'"
      

সারসংক্ষেপ

DB2 এ ডেটাবেস তৈরি এবং ম্যানেজমেন্ট একটি গুরুত্বপূর্ণ প্রক্রিয়া, যা ডেটাবেসের সঠিক কার্যক্রম এবং পারফরম্যান্স নিশ্চিত করতে সহায়ক। DB2 ডেটাবেসে টেবিল তৈরি, ইনডেক্স ম্যানেজমেন্ট, টেবিল স্পেস কনফিগারেশন এবং ব্যাকআপ/রিকভারি কৌশলগুলি বুঝে ডেটাবেস ব্যবস্থাপনা সহজ করা যায়। এর মাধ্যমে আপনি আপনার ডেটাবেসের সুরক্ষা, স্থিতিস্থাপকতা এবং কর্মক্ষমতা নিশ্চিত করতে পারবেন।

common.content_added_by

DB2 এ নতুন ডেটাবেস তৈরি করা

230
230

DB2-এ নতুন ডেটাবেস তৈরি করা একটি মৌলিক কিন্তু গুরুত্বপূর্ণ পদক্ষেপ, যেটি সঠিকভাবে সম্পন্ন হলে ডেটাবেসের কার্যকারিতা এবং ব্যবস্থাপনা সহজ করে। এখানে DB2-এ নতুন ডেটাবেস তৈরি করার প্রক্রিয়া ধাপে ধাপে বর্ণনা করা হলো।


DB2 ডেটাবেস তৈরি করার প্রাথমিক পদক্ষেপ

১. DB2 ইনস্ট্যান্স তৈরি বা চালু করা

DB2 ডেটাবেস তৈরি করার আগে প্রথমেই একটি DB2 ইনস্ট্যান্স তৈরি বা চালু করতে হবে। ইনস্ট্যান্স হল DB2 ডেটাবেস সার্ভারের মূল লজিক্যাল ইউনিট, যা ডেটাবেসের সব কনফিগারেশন এবং পরিচালনার দায়িত্ব পালন করে।

  • যদি আপনি একটি নতুন ইনস্ট্যান্স তৈরি করতে চান, নিম্নলিখিত কমান্ড ব্যবহার করুন:

    db2icrt <instance_name>
    
  • যদি ইনস্ট্যান্স ইতিমধ্যেই তৈরি থাকে, তাহলে নিম্নলিখিত কমান্ড দিয়ে ইনস্ট্যান্স চালু করুন:

    db2start <instance_name>
    

২. DB2 ক্লায়েন্ট বা কমান্ড লাইন ইন্টারফেস (CLI) ব্যবহার

DB2-এ নতুন ডেটাবেস তৈরি করার জন্য DB2 Command Line Processor (CLP) ব্যবহার করা হয়। CLI-এ প্রবেশ করতে নিম্নলিখিত কমান্ড ব্যবহার করুন:

db2

এটি DB2-এর CLI খোলবে এবং আপনি DB2 SQL কমান্ড লিখতে পারবেন।


৩. নতুন ডেটাবেস তৈরি করার জন্য SQL কমান্ড ব্যবহার

DB2-এ নতুন ডেটাবেস তৈরি করার জন্য CREATE DATABASE SQL কমান্ড ব্যবহার করা হয়। সাধারণ সিনট্যাক্স হলো:

db2 "CREATE DATABASE <database_name>"

উদাহরণস্বরূপ, যদি আপনি একটি নতুন ডেটাবেস নামকরণ করতে চান যেমন MyDB, তাহলে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

db2 "CREATE DATABASE MyDB"

এই কমান্ডটি DB2-এ নতুন ডেটাবেস তৈরি করবে। ডেটাবেস তৈরি হওয়ার পর, এটি ব্যবহারকারীদের ডেটা সংরক্ষণ এবং ম্যানেজমেন্টের জন্য প্রস্তুত হবে।


৪. ডেটাবেস তৈরির পর ইনডেক্স এবং টেবিল স্পেস কনফিগারেশন

ডেটাবেস তৈরি করার পর, এটি কার্যকরী করতে কিছু অতিরিক্ত কনফিগারেশন প্রয়োজন হতে পারে, যেমন ইনডেক্স তৈরি এবং টেবিল স্পেস কনফিগার করা।

  • টেবিল স্পেস তৈরি:

    db2 "CREATE TABLESPACE <tablespace_name> MANAGED BY DATABASE"
    
  • ইনডেক্স তৈরি: ইনডেক্স তৈরি করার জন্য SQL কমান্ড ব্যবহার করা হয়:

    db2 "CREATE INDEX <index_name> ON <table_name> (<column_name>)"
    

৫. ডেটাবেসের পারফরম্যান্স অপ্টিমাইজেশন

ডেটাবেস তৈরি হওয়ার পর, পারফরম্যান্স অপ্টিমাইজেশন অত্যন্ত গুরুত্বপূর্ণ। DB2 বিভিন্ন অপ্টিমাইজেশন কৌশল এবং কনফিগারেশন অপশন প্রদান করে, যেমন:

  • Buffer pool configuration
  • Cache tuning
  • Data compression settings

এই কনফিগারেশনগুলি পারফরম্যান্স এবং স্টোরেজ ব্যবস্থাপনা উন্নত করতে সহায়তা করে।


DB2 এ ডেটাবেস তৈরির পরবর্তী পদক্ষেপ

১. ডেটাবেসে টেবিল তৈরি করা

ডেটাবেস তৈরি করার পর, আপনি সেই ডেটাবেসে টেবিল তৈরি করতে পারবেন। উদাহরণস্বরূপ, একটি সাধারণ টেবিল তৈরি করার জন্য নিম্নলিখিত SQL কমান্ড ব্যবহার করা হয়:

db2 "CREATE TABLE <table_name> (<column_name> <data_type>, ...)"

২. ডেটাবেসে ডেটা ইনসার্ট করা

টেবিল তৈরি করার পর, আপনি ডেটাবেসে ডেটা ইনসার্ট করতে পারবেন:

db2 "INSERT INTO <table_name> (<column1>, <column2>, ...) VALUES (<value1>, <value2>, ...)"

সারসংক্ষেপ

DB2-এ নতুন ডেটাবেস তৈরি করা একটি সহজ প্রক্রিয়া, যা সঠিকভাবে অনুসরণ করলে দ্রুত ও কার্যকরী ডেটাবেস ম্যানেজমেন্ট নিশ্চিত করা যায়। ডেটাবেস তৈরি হওয়ার পর, টেবিল স্পেস কনফিগারেশন, ইনডেক্স তৈরি এবং ডেটাবেসের পারফরম্যান্স অপ্টিমাইজেশন করা অত্যন্ত গুরুত্বপূর্ণ। এই পদক্ষেপগুলি DB2 ডেটাবেস সিস্টেমের কার্যকারিতা এবং স্কেলেবিলিটি নিশ্চিত করতে সহায়ক।

common.content_added_by

DB2 এ টেবিল এবং স্কিমা তৈরি

209
209

IBM DB2-এ টেবিল এবং স্কিমা তৈরি করা ডেটাবেস ডিজাইন ও ম্যানেজমেন্টের একটি গুরুত্বপূর্ণ অংশ। টেবিলগুলি ডেটা সংরক্ষণের জন্য ব্যবহৃত হয় এবং স্কিমা একটি গোষ্ঠী হিসেবে টেবিল এবং অন্যান্য ডেটাবেস অবজেক্ট পরিচালনা করার জন্য ব্যবহৃত হয়। এখানে DB2-এ টেবিল এবং স্কিমা তৈরি করার বিস্তারিত পদক্ষেপ দেওয়া হলো।


DB2 এ স্কিমা তৈরি

স্কিমা হল একটি লজিক্যাল কনটেইনার যা ডেটাবেসের অবজেক্টগুলিকে সংরক্ষণ এবং সংগঠিত করতে সাহায্য করে। এটি একটি ডেটাবেসের মধ্যে টেবিল, ভিউ, স্টোরড প্রোসিডিউর, ইনডেক্স ইত্যাদি গঠন করতে ব্যবহৃত হয়।

স্কিমা তৈরি করার পদক্ষেপ:

  1. স্কিমা তৈরি করতে SQL ব্যবহার করুন: DB2-এ নতুন স্কিমা তৈরি করতে SQL কমান্ড ব্যবহার করতে হবে। স্কিমা তৈরির জন্য নিচের SQL কমান্ড ব্যবহার করা হয়:

    CREATE SCHEMA <schema_name>;
    

    উদাহরণ:

    CREATE SCHEMA SalesData;
    

    এই কমান্ডটি SalesData নামে একটি নতুন স্কিমা তৈরি করবে।

  2. স্কিমাতে টেবিল তৈরি করা: স্কিমা তৈরি করার পর, আপনি ওই স্কিমাতে টেবিল তৈরি করতে পারেন। স্কিমার নামের পরে ডট (.) ব্যবহার করে টেবিলের নাম নির্ধারণ করা হয়।

DB2 এ টেবিল তৈরি

টেবিল হল DB2 ডেটাবেসের মৌলিক অবজেক্ট যেখানে ডেটা সংরক্ষিত থাকে। একটি টেবিলের মধ্যে বিভিন্ন কলাম থাকে, যেগুলি ডেটার বিভিন্ন ধরন ধারণ করে।

টেবিল তৈরি করার পদক্ষেপ:

  1. টেবিল তৈরি করতে SQL ব্যবহার করুন: DB2-এ নতুন টেবিল তৈরি করার জন্য CREATE TABLE কমান্ড ব্যবহার করতে হয়। এই কমান্ডে টেবিলের নাম, কলামের নাম এবং তাদের ডেটা টাইপ উল্লেখ করা হয়।

    কমান্ডের সাধারণ সিনট্যাক্স:

    CREATE TABLE <schema_name>.<table_name> (
        <column_name> <data_type> [<constraints>],
        ...
    );
    

    উদাহরণ:

    CREATE TABLE SalesData.Products (
        ProductID INT PRIMARY KEY,
        ProductName VARCHAR(100),
        Price DECIMAL(10, 2),
        Quantity INT
    );
    

    এই কমান্ডটি SalesData স্কিমার অধীনে Products নামক একটি টেবিল তৈরি করবে, যেখানে ৪টি কলাম থাকবে:

    • ProductID: একটি ইনটিজার প্রাথমিক কী (Primary Key)
    • ProductName: একটি ভ্যারচার টাইপ কলাম
    • Price: একটি দশমিক মানের কলাম
    • Quantity: একটি ইনটিজার কলাম
  2. কলামের ডেটা টাইপ: DB2-এ টেবিলের কলামগুলোর জন্য বিভিন্ন ডেটা টাইপ ব্যবহার করা যেতে পারে, যেমন:
    • INT: পূর্ণসংখ্যা
    • VARCHAR: স্ট্রিং
    • DECIMAL: দশমিক সংখ্যা
    • DATE: তারিখ
  3. কনস্ট্রেইন্ট ব্যবহার: টেবিলের কলামগুলির জন্য কনস্ট্রেইন্ট যোগ করা যায়, যেমন:
    • PRIMARY KEY: টেবিলের একটি কলামকে প্রধান কী হিসেবে সেট করা হয়, যা ইউনিক এবং নাল (NULL) হতে পারে না।
    • NOT NULL: কলামে শূন্য (NULL) মান রাখা যাবে না।
    • CHECK: নির্দিষ্ট শর্তের উপর ভিত্তি করে ডেটা প্রবেশ করতে বাধ্য করা হয়।

DB2 টেবিল এবং স্কিমা তৈরি উদাহরণ

স্কিমা তৈরি:

CREATE SCHEMA EmployeeData;

টেবিল তৈরি:

CREATE TABLE EmployeeData.Employees (
    EmployeeID INT PRIMARY KEY,
    EmployeeName VARCHAR(100),
    HireDate DATE NOT NULL,
    Salary DECIMAL(10, 2) CHECK (Salary > 0)
);

এই উদাহরণে, EmployeeData স্কিমার অধীনে Employees নামের একটি টেবিল তৈরি করা হচ্ছে, যেখানে চারটি কলাম থাকবে:

  • EmployeeID: প্রাথমিক কী
  • EmployeeName: কর্মচারীর নাম
  • HireDate: কর্মচারী নিয়োগের তারিখ
  • Salary: কর্মচারীর বেতন (Salary > 0 শর্তযুক্ত)

DB2 টেবিল ম্যানেজমেন্ট

  • টেবিল মডিফাই করা: একটি টেবিল তৈরি করার পর, আপনি তা মডিফাই করতে পারেন যেমন কলাম যোগ করা বা নাম পরিবর্তন করা।

    ALTER TABLE <schema_name>.<table_name> ADD COLUMN <column_name> <data_type>;
    
  • টেবিল ড্রপ করা: একটি টেবিল মুছে ফেলতে DROP TABLE কমান্ড ব্যবহার করা হয়:

    DROP TABLE <schema_name>.<table_name>;
    

সারসংক্ষেপ

DB2-এ স্কিমা এবং টেবিল তৈরি করা ডেটাবেস ডিজাইনের একটি মৌলিক অংশ। স্কিমা ডেটাবেস অবজেক্টগুলিকে লজিক্যালভাবে সংগঠিত করে, এবং টেবিল হল ডেটা সংরক্ষণের জায়গা। DB2-এ সঠিকভাবে স্কিমা এবং টেবিল তৈরি করলে ডেটাবেসের পারফরম্যান্স এবং পরিচালনা সহজতর হয়।

common.content_added_by

Primary এবং Foreign Key ব্যবহার

246
246

ডেটাবেস ডিজাইন এবং সম্পর্কিত ডেটাবেস ব্যবস্থাপনা সিস্টেম (RDBMS) এ Primary Key এবং Foreign Key দুটি গুরুত্বপূর্ণ কনসেপ্ট। এগুলি ডেটাবেসের টেবিলের মধ্যে সম্পর্ক স্থাপন এবং ডেটার অখণ্ডতা নিশ্চিত করার জন্য ব্যবহৃত হয়। নিচে Primary Key এবং Foreign Key এর ব্যবহার এবং তাদের ভূমিকা বিস্তারিতভাবে আলোচনা করা হলো।


Primary Key

Primary Key হল একটি কলাম বা কলামগুলির একটি সেট যা একটি টেবিলের প্রতিটি রেকর্ডকে এককভাবে চিহ্নিত করে। এর মানে হল যে, প্রাইমারি কিকে কোনো ডুপ্লিকেট বা শূন্য মান থাকতে পারে না।

বৈশিষ্ট্য:

  • একক চিহ্নিতকরণ: প্রতিটি টেবিলের একটি প্রাইমারি কী থাকবে যা প্রতিটি রেকর্ডকে এককভাবে চিহ্নিত করবে।
  • অ্যাডমিনিস্ট্রেটিভ অ্যাক্সেস: ডেটা অ্যাক্সেস এবং আপডেটের সময়, প্রাইমারি কী ব্যবহার করে একক রেকর্ডকে সহজে চিহ্নিত করা যায়।
  • ডুপ্লিকেট রেকর্ড প্রতিরোধ: প্রাইমারি কী ডুপ্লিকেট রেকর্ড তৈরি হওয়া প্রতিরোধ করে, কারণ এটি একক হওয়া বাধ্যতামূলক।
  • নাল (NULL) নয়: প্রাইমারি কী কলামে NULL মান থাকতে পারে না।

উদাহরণ:

ধরা যাক, একটি Employee টেবিল রয়েছে যেখানে প্রতিটি কর্মচারীর তথ্য সংরক্ষিত থাকে। এখানে Employee_ID হবে প্রাইমারি কী, কারণ প্রতিটি কর্মচারী একটি অনন্য আইডি দিয়ে চিহ্নিত হবে।

CREATE TABLE Employee (
    Employee_ID INT PRIMARY KEY,
    Name VARCHAR(100),
    Age INT,
    Department VARCHAR(50)
);

এখানে Employee_ID কলামটি Primary Key হিসেবে সেট করা হয়েছে। এর মানে হল যে, Employee_ID কলামে কোনো ডুপ্লিকেট বা NULL মান থাকতে পারবে না।


Foreign Key

Foreign Key হল একটি কলাম বা কলামগুলির একটি সেট যা অন্য একটি টেবিলের প্রাইমারি কির সাথে সম্পর্ক স্থাপন করে। এটি দুটি টেবিলের মধ্যে সম্পর্ক তৈরি করে এবং রেফারেন্স করা ডেটার অখণ্ডতা নিশ্চিত করে।

বৈশিষ্ট্য:

  • রিলেশনশিপ তৈরি: Foreign Key দুটি টেবিলের মধ্যে সম্পর্ক তৈরি করে। এটি মূলত একটি টেবিলের কলামকে অন্য একটি টেবিলের প্রাইমারি কির সাথে সংযুক্ত করে।
  • ডেটার অখণ্ডতা: Foreign Key ডেটার অখণ্ডতা নিশ্চিত করে, কারণ এটি শুধুমাত্র রেফারেন্সযোগ্য রেকর্ডকে গ্রহণ করে। অর্থাৎ, বিদেশী কী কলামে শুধু সেই মানগুলো থাকতে পারে যা অন্য টেবিলের প্রাইমারি কিতে আছে।
  • NULL মান অনুমোদিত: Foreign Key কলামে NULL মান থাকতে পারে, তবে এটি রেফারেন্স করা মানের সাথে সঙ্গতিপূর্ণ হতে হবে।

উদাহরণ:

ধরা যাক, একটি Department টেবিল রয়েছে যেখানে ডিপার্টমেন্টের তথ্য সংরক্ষিত থাকে। এবং Employee টেবিলের Department_ID কলামটি Department টেবিলের Department_ID প্রাইমারি কির রেফারেন্স হিসেবে কাজ করবে।

CREATE TABLE Department (
    Department_ID INT PRIMARY KEY,
    Department_Name VARCHAR(50)
);

CREATE TABLE Employee (
    Employee_ID INT PRIMARY KEY,
    Name VARCHAR(100),
    Age INT,
    Department_ID INT,
    FOREIGN KEY (Department_ID) REFERENCES Department(Department_ID)
);

এখানে, Employee টেবিলের Department_ID একটি Foreign Key, যা Department টেবিলের Department_ID প্রাইমারি কির সাথে সম্পর্ক স্থাপন করে। এর মাধ্যমে, কর্মচারীরা শুধুমাত্র সেই ডিপার্টমেন্টে কাজ করতে পারে, যা Department টেবিলে ইতিমধ্যে সংজ্ঞায়িত রয়েছে।


Primary Key এবং Foreign Key এর মধ্যে সম্পর্ক

  • Primary Key: এটি একটি টেবিলের মধ্যে প্রতিটি রেকর্ডকে এককভাবে চিহ্নিত করতে ব্যবহৃত হয় এবং ডুপ্লিকেট মান বা NULL থাকতে দেয় না।
  • Foreign Key: এটি একটি টেবিলের রেকর্ডকে অন্য টেবিলের রেকর্ডের সাথে সম্পর্কিত করতে ব্যবহৃত হয়, এবং এটি অন্য টেবিলের প্রাইমারি কী বা ইউনিক কির রেফারেন্স হিসেবে কাজ করে।

এই সম্পর্কের মাধ্যমে, ডেটাবেসে অখণ্ডতা বজায় রাখা সম্ভব হয়, কারণ ডেটা একত্রিত এবং সঠিকভাবে রিলেটেড থাকে।


সারসংক্ষেপ

  • Primary Key একটি টেবিলের রেকর্ডকে এককভাবে চিহ্নিত করে এবং ডুপ্লিকেট রেকর্ড প্রতিরোধ করে।
  • Foreign Key দুটি টেবিলের মধ্যে সম্পর্ক তৈরি করে এবং রেফারেন্স করা ডেটার অখণ্ডতা নিশ্চিত করে।
  • প্রাইমারি কী এবং ফরেন কী একসাথে ব্যবহৃত হলে, ডেটাবেসে সম্পর্কিত ডেটার অখণ্ডতা বজায় থাকে এবং ডেটা ম্যানিপুলেশন আরও কার্যকরী ও সঠিক হয়।
common.content_added_by

Index এবং Constraints কনফিগার করা

232
232

DB2-এ Index এবং Constraints ব্যবহারের মাধ্যমে ডেটাবেসের পারফরম্যান্স এবং ডেটার এক্সেস কন্ট্রোল উন্নত করা যায়। Index ডেটা খুঁজে পাওয়ার সময়কে দ্রুত করে এবং Constraints ডেটাবেসে ডেটা ইন্টিগ্রিটি নিশ্চিত করে। এখানে Index এবং Constraints কনফিগার করার প্রক্রিয়া বিস্তারিতভাবে আলোচনা করা হলো।


Index কনফিগার করা

Index হলো এমন একটি ডেটাবেস অবজেক্ট, যা টেবিলের ডেটা দ্রুত এক্সেস করার জন্য ব্যবহার করা হয়। এটি মূলত টেবিলের একটি বা একাধিক কলামের উপর তৈরি হয় এবং সারি অনুসন্ধান, সাজানো, বা গ্রুপিং করার জন্য ব্যবহৃত হয়।

DB2-এ Index তৈরি করা

  1. Basic Index তৈরি করা:
    • সাধারণত একটি সিঙ্গেল কলামের উপর ইনডেক্স তৈরি করা হয়। নিচে এর স্নিপেট দেখানো হলো:

      CREATE INDEX index_name ON table_name (column_name);
      
  2. Multiple Column Index:
    • যদি আপনি একাধিক কলামের উপর ইনডেক্স তৈরি করতে চান, তাহলে একাধিক কলামের নাম কমা দিয়ে সন্নিবেশিত করতে হবে:

      CREATE INDEX index_name ON table_name (column1, column2);
      
  3. Unique Index:
    • যদি আপনি নিশ্চিত করতে চান যে, টেবিলের নির্দিষ্ট কলামের ডেটার মান অনন্য হবে, তাহলে UNIQUE ইনডেক্স ব্যবহার করা হয়:

      CREATE UNIQUE INDEX index_name ON table_name (column_name);
      
  4. Clustered Index:
    • Clustered Index এমন একটি ইনডেক্স যা টেবিলের ডেটা ফিজিক্যালি সাজায়। DB2-তে এটি ক্লাস্টারড ইনডেক্সের জন্য স্বতন্ত্রভাবে কাজ করে না, তবে অন্যান্য ইনডেক্সগুলোর জন্য একই সুবিধা প্রদান করে।

      CREATE INDEX index_name ON table_name (column_name) CLUSTER;
      
  5. Dropping an Index:
    • যদি ইনডেক্স মুছে ফেলতে চান, তাহলে নিচের SQL কোড ব্যবহার করতে হবে:

      DROP INDEX index_name;
      

Index অপটিমাইজেশন

  • Partial Index: শুধুমাত্র কিছু নির্দিষ্ট রেকর্ডের জন্য ইনডেক্স তৈরি করা। এটি ডেটাবেসের পারফরম্যান্স উন্নত করতে সাহায্য করে।

    CREATE INDEX index_name ON table_name (column_name) WHERE condition;
    
  • Bitmap Index: এটি বিশেষত বড় ডেটাবেসে, যেখানে খুব বেশি ইউনিক ভ্যালু থাকে না, খুব কার্যকরী। তবে এটি সাধারণত OLAP সিস্টেমে ব্যবহৃত হয়।

Constraints কনফিগার করা

Constraints হল ডেটাবেসে ডেটার একটি নির্দিষ্ট নিয়ম এবং শর্ত যা ডেটার ইন্টিগ্রিটি এবং সঠিকতা নিশ্চিত করে। DB2-এ বিভিন্ন ধরণের কনস্ট্রেইন্ট ব্যবহার করা যেতে পারে।

DB2-এ Constraints প্রকার

  1. Primary Key Constraint:

    • Primary Key একটি টেবিলের সুনির্দিষ্ট সারি চিহ্নিত করতে ব্যবহৃত হয়। এটি সুনির্দিষ্টভাবে একটি কলামের উপর ইউনিক মান নির্ধারণ করে এবং নাল (NULL) মান গ্রহণ করে না।
    CREATE TABLE table_name (
        column_name data_type PRIMARY KEY
    );
    
  2. Foreign Key Constraint:

    • Foreign Key একটি কলাম যা অন্য একটি টেবিলের Primary Key বা Unique Key কলামের সাথে সম্পর্ক স্থাপন করে। এটি ডেটার রেফারেনশিয়াল ইন্টিগ্রিটি বজায় রাখে।
    CREATE TABLE table_name (
        column_name data_type,
        FOREIGN KEY (column_name) REFERENCES other_table (other_column)
    );
    
  3. Unique Constraint:

    • Unique Constraint ডেটাবেসে প্রতিটি রেকর্ডের জন্য একটি নির্দিষ্ট কলামের ভ্যালুকে ইউনিক রাখতে সহায়ক। এটি Primary Key এর মতো কাজ করে কিন্তু NULL মান গ্রহণ করতে পারে।
    CREATE TABLE table_name (
        column_name data_type UNIQUE
    );
    
  4. Check Constraint:

    • Check Constraint টেবিলের একটি কলামে সুনির্দিষ্ট শর্তাবলী বা নিয়ম প্রয়োগ করে, যেমন কলামে কেবলমাত্র ধনাত্মক সংখ্যা থাকতে পারে।
    CREATE TABLE table_name (
        column_name data_type CHECK (column_name > 0)
    );
    
  5. Not Null Constraint:

    • Not Null কনস্ট্রেইন্ট নিশ্চিত করে যে একটি নির্দিষ্ট কলামে NULL মান থাকতে পারবে না। এটি ডেটাবেসে ডেটার পূর্ণতা নিশ্চিত করে।
    CREATE TABLE table_name (
        column_name data_type NOT NULL
    );
    
  6. Drop Constraints:

    • যদি আপনি কোনো কনস্ট্রেইন্ট মুছে ফেলতে চান, তাহলে নিচের কমান্ড ব্যবহার করতে হবে:
    ALTER TABLE table_name DROP CONSTRAINT constraint_name;
    

Index এবং Constraints-এর পারফরম্যান্স এবং নিরাপত্তা

  • Index Performance: ইনডেক্স তৈরি করা ডেটাবেসের পারফরম্যান্সকে উন্নত করে, তবে অতিরিক্ত ইনডেক্স ডেটাবেসের লিখন কার্যক্রমে (write operations) কিছুটা ধীর করতে পারে। তাই ইনডেক্স তৈরি করার সময় সঠিকভাবে নির্ধারণ করা গুরুত্বপূর্ণ।
  • Constraints and Data Integrity: কনস্ট্রেইন্ট ব্যবহারের মাধ্যমে ডেটার এক্সাক্টনেস এবং সঠিকতা নিশ্চিত করা হয়। এর মাধ্যমে অবাঞ্ছিত ডেটার প্রবাহ বন্ধ করা সম্ভব হয়।

সারসংক্ষেপ

DB2-এ Index এবং Constraints কনফিগার করার মাধ্যমে ডেটাবেসের পারফরম্যান্স এবং ডেটা সুরক্ষা নিশ্চিত করা সম্ভব হয়। Index ডেটার দ্রুত এক্সেস নিশ্চিত করে এবং Constraints ডেটাবেসের ডেটার ইন্টিগ্রিটি বজায় রাখে। ডেটাবেস ডিজাইন করার সময় এই দুটি উপাদান গুরুত্বপূর্ণ ভূমিকা পালন করে, যা দীর্ঘমেয়াদে ডেটাবেস ব্যবস্থাপনা এবং কার্যকারিতা উন্নত করে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion