Tables এবং Data Types ম্যানেজমেন্ট

এমএস এসকিউএল সার্ভার (MS SQl Server) - Microsoft Technologies

346

SQL ServerTables এবং Data Types ম্যানেজমেন্ট অত্যন্ত গুরুত্বপূর্ণ, কারণ এগুলি ডেটাবেসের মূল কাঠামো এবং ডেটা স্টোরেজের ভিত্তি। একটি টেবিল হল ডেটাবেসের একটি অংশ যা ডেটা সংরক্ষণের জন্য ব্যবহৃত হয়, আর ডেটা টাইপগুলি সেই ডেটার ধরন এবং গঠন নির্ধারণ করে।

এই টিউটোরিয়ালে আমরা SQL Server-এ Tables তৈরি করা, ম্যানেজমেন্ট এবং Data Types ব্যবহারের পদ্ধতি আলোচনা করব।


1. Tables ম্যানেজমেন্ট

Table হল SQL Server ডেটাবেসের একটি প্রধান উপাদান, যেখানে ডেটা রেকর্ড আকারে সংরক্ষিত থাকে। একটি টেবিলের প্রতিটি row (রেকর্ড) ডেটার এক একটি এন্ট্রি এবং প্রতিটি column (কলাম) একটি নির্দিষ্ট ধরনের তথ্য ধারণ করে।

1.1. Table তৈরি করা

SQL Server Management Studio (SSMS) ব্যবহার করে নতুন টেবিল তৈরি করার জন্য নিম্নলিখিত ধাপগুলো অনুসরণ করুন:

  1. SSMS ওপেন করুন এবং আপনার ডেটাবেসে Connect করুন।
  2. Object Explorer এ গিয়ে, আপনার ডেটাবেসের নামের উপর রাইট ক্লিক করুন এবং New Query নির্বাচন করুন।
  3. টেবিল তৈরি করার জন্য নিচের SQL কোড ব্যবহার করুন:
CREATE TABLE Employees (
    EmployeeID INT PRIMARY KEY, 
    FirstName NVARCHAR(50), 
    LastName NVARCHAR(50), 
    HireDate DATETIME,
    Salary DECIMAL(10, 2)
);

এই কোডে:

  • EmployeeID: একটি Primary Key হিসাবে কাজ করবে, যা ইউনিকভাবে প্রতিটি কর্মীকে চিহ্নিত করবে।
  • FirstName এবং LastName: NVARCHAR (Unicode string) ডেটা টাইপ ব্যবহার করে, যেখানে 50 অক্ষরের দৈর্ঘ্য সীমিত।
  • HireDate: DATETIME ডেটা টাইপ ব্যবহার করে, কর্মী নিয়োগের তারিখ সংরক্ষণ করা হবে।
  • Salary: DECIMAL ডেটা টাইপ ব্যবহার করে, যা 10টি ডিজিট ধারণ করতে পারে, যার মধ্যে 2টি ডিজিট ডেসিমাল পয়েন্টের পর থাকবে।

1.2. Table কলাম যোগ বা পরিবর্তন করা

আপনি যদি একটি টেবিলের মধ্যে নতুন কলাম যোগ করতে চান অথবা বিদ্যমান কলামের ডেটা টাইপ বা নাম পরিবর্তন করতে চান, তাহলে নিম্নলিখিত SQL কমান্ড ব্যবহার করতে পারেন:

  • কলাম যোগ করা:

    ALTER TABLE Employees
    ADD Department NVARCHAR(50);
    
  • কলামের নাম পরিবর্তন করা:

    EXEC sp_rename 'Employees.Salary', 'EmployeeSalary', 'COLUMN';
    

1.3. Table মুছে ফেলা

যদি কোনো টেবিল আর প্রয়োজন না থাকে, তবে আপনি সহজেই সেই টেবিলটি মুছে ফেলতে পারেন:

DROP TABLE Employees;

এটি সম্পূর্ণ টেবিল এবং তার সমস্ত ডেটা মুছে ফেলবে, তাই এটি ব্যবহার করার আগে সতর্ক থাকুন।


2. Data Types ম্যানেজমেন্ট

Data Types হল ডেটার ধরন যা টেবিলের প্রতিটি কলামে নির্দিষ্ট করা হয়। SQL Server বিভিন্ন ধরনের ডেটা টাইপ সাপোর্ট করে, যেমন Integer, String, Date/Time, Decimal, ইত্যাদি।

2.1. প্রধান Data Types

Numeric Data Types:

  • INT: পূর্ণসংখ্যা (Integer) মান সংরক্ষণ করতে ব্যবহৃত হয়।
  • DECIMAL(p, s): সংখ্যার নির্দিষ্ট স্থিতি (precision) এবং স্কেল (scale) সহ দশমিক মান সংরক্ষণ করতে ব্যবহৃত হয়।
  • FLOAT: ভাসমান দশমিক সংখ্যা সংরক্ষণ করার জন্য ব্যবহৃত হয়।

String Data Types:

  • CHAR(n): স্থির দৈর্ঘ্যের অক্ষর সন্নিবেশ করতে ব্যবহৃত হয় (এখানে n হল অক্ষরের সংখ্যা)।
  • VARCHAR(n): পরিবর্তনশীল দৈর্ঘ্যের অক্ষর সন্নিবেশ করতে ব্যবহৃত হয়।
  • NVARCHAR(n): Unicode অক্ষর সন্নিবেশ করতে ব্যবহৃত হয়, যা বিভিন্ন ভাষার অক্ষর সাপোর্ট করে।

Date/Time Data Types:

  • DATE: শুধুমাত্র তারিখ সংরক্ষণ করে (YYYY-MM-DD ফরম্যাটে)।
  • TIME: শুধুমাত্র সময় সংরক্ষণ করে।
  • DATETIME: তারিখ এবং সময় উভয়ই সংরক্ষণ করতে ব্যবহৃত হয়।

Boolean Data Type:

  • BIT: এই ডেটা টাইপটি 0 (false) বা 1 (true) মান ধারণ করে।

Other Data Types:

  • BLOB: Binary Large Object (বাইনারি ডেটা বা ছবি, অডিও ইত্যাদি সংরক্ষণ করতে ব্যবহৃত হয়)।
  • XML: XML ডেটা সংরক্ষণ করতে ব্যবহৃত হয়।
  • TEXT: বড় টেক্সট ডেটা সংরক্ষণ করতে ব্যবহৃত হয়।

2.2. Data Types নির্বাচন করার সময় কিছু টিপস:

  • String Data Types: যদি আপনার কলামে ছোট আকারের টেক্সট (যেমন নাম) থাকে, তবে CHAR বা VARCHAR ব্যবহার করুন, আর যদি আপনি Unicode সাপোর্ট চান, তবে NVARCHAR ব্যবহার করুন।
  • Numeric Data Types: ডেটাবেসের মধ্যে অঙ্কের গুণগত মান (ডেসিমাল/ফ্লোট) সংরক্ষণ করতে DECIMAL বা FLOAT ব্যবহার করুন।
  • Date/Time Data Types: যদি আপনি শুধু তারিখ বা সময় স্টোর করতে চান, তবে যথাক্রমে DATE বা TIME ব্যবহার করুন।

3. Data Types এর মধ্যে Conversion

SQL Server এ বিভিন্ন ডেটা টাইপের মধ্যে Implicit এবং Explicit কনভার্সন করা যায়। যেমন, একটি VARCHAR মানকে INT ডেটা টাইপে কনভার্ট করা।

3.1. Implicit Conversion

SQL Server নিজেই একটি ডেটা টাইপকে অন্য ডেটা টাইপে রূপান্তর করতে পারে। উদাহরণস্বরূপ, একটি INT মানকে VARCHAR এ কনভার্ট করা:

SELECT 'Employee ID: ' + CAST(EmployeeID AS VARCHAR) FROM Employees;

3.2. Explicit Conversion (CAST এবং CONVERT)

CAST এবং CONVERT ফাংশন ব্যবহার করে ডেটা টাইপ কনভার্ট করা হয়। উদাহরণ:

SELECT CAST(Salary AS DECIMAL(10,2)) FROM Employees;

এটি Salary কলাম থেকে মানকে DECIMAL টাইপে রূপান্তর করবে।


সারাংশ

SQL Server এ Tables এবং Data Types সঠিকভাবে ম্যানেজ করা ডেটাবেস ডিজাইন এবং কার্যকারিতার জন্য গুরুত্বপূর্ণ। আপনি যখন নতুন টেবিল তৈরি করেন, তখন ডেটা টাইপ নির্বাচন গুরুত্বপূর্ণ, কারণ এটি ডেটা সংরক্ষণের দক্ষতা এবং পারফরম্যান্সকে প্রভাবিত করে। SQL Server-এর বিভিন্ন টেবিল ম্যানেজমেন্ট এবং ডেটা টাইপ ব্যবহারের কৌশলগুলি সঠিকভাবে জানলে আপনি আরও কার্যকরী এবং স্থিতিশীল ডেটাবেস তৈরি করতে পারবেন।

Content added By

নতুন Table তৈরি এবং Alter করা

321

SQL Server তে Table একটি গুরুত্বপূর্ণ ডেটাবেস অবজেক্ট যা ডেটা সঞ্চয় এবং সংগঠিত করার জন্য ব্যবহৃত হয়। নতুন Table তৈরি করার সময় আপনি কলাম (Columns), ডেটা টাইপ (Data Types), এবং অন্যান্য সীমাবদ্ধতা (Constraints) নির্ধারণ করতে পারেন। এছাড়া, আগে থেকে তৈরি করা Table-এ পরিবর্তন আনার জন্য ALTER TABLE স্টেটমেন্ট ব্যবহার করা হয়।


1. নতুন Table তৈরি (Creating a New Table)

SQL Server এ একটি নতুন Table তৈরি করতে CREATE TABLE কমান্ড ব্যবহার করা হয়। এখানে Table এর নাম এবং কলামগুলো, তাদের ডেটা টাইপ এবং প্রয়োজনীয় সীমাবদ্ধতা নির্ধারণ করা হয়।

1.1. নতুন Table তৈরি করার উদাহরণ

ধরা যাক, আপনি একটি Employee নামের Table তৈরি করতে চান যেখানে কর্মচারীর আইডি, নাম, এবং তার বয়স থাকবে। নিচে উদাহরণ দেওয়া হলো:

CREATE TABLE Employee (
    EmployeeID INT PRIMARY KEY,  -- EmployeeID হবে Primary Key
    FirstName NVARCHAR(50),      -- FirstName কলামে সর্বোচ্চ 50 ক্যারেক্টার থাকতে পারবে
    LastName NVARCHAR(50),       -- LastName কলামেও সর্বোচ্চ 50 ক্যারেক্টার
    BirthDate DATE,              -- BirthDate কলামটি DATE টাইপ হবে
    Salary DECIMAL(10, 2)        -- Salary কলামে দশমিক মান (10 আংশিক সংখ্যা এবং 2 দশমিক স্থান)
);
GO

এই কোডে:

  • EmployeeID কলামটি INT টাইপের এবং এটি PRIMARY KEY হিসেবে নির্ধারণ করা হয়েছে।
  • FirstName এবং LastName কলামটি NVARCHAR(50) টাইপের যা সর্বোচ্চ 50 ক্যারেক্টার ধারণ করতে পারে।
  • BirthDate কলামটি DATE টাইপের, যা জন্ম তারিখ ধারণ করবে।
  • Salary কলামটি DECIMAL(10, 2) টাইপের, যার মাধ্যমে দুই দশমিক স্থান সহ মোট 10 অঙ্কের স্যালারি ধারণ করা হবে।

1.2. Default Value সহ Table তৈরি

আপনি একটি DEFAULT মান সহ Table তৈরি করতে পারেন, যাতে কোন কলামে ডেটা না দিলে তা স্বয়ংক্রিয়ভাবে ডিফল্ট মান নিবে:

CREATE TABLE Product (
    ProductID INT PRIMARY KEY,
    ProductName NVARCHAR(100) NOT NULL,  -- ProductName কলামে মান অবশ্যই থাকতে হবে
    Price DECIMAL(10, 2) DEFAULT 0.00,    -- Price কলামে ডিফল্ট মান 0.00
    CreatedDate DATETIME DEFAULT GETDATE() -- CreatedDate কলামে ডিফল্ট মান হবে বর্তমান সময়
);
GO

এই উদাহরণে, যদি Price কলামে কোনো মান না দেওয়া হয়, তবে এটি স্বয়ংক্রিয়ভাবে 0.00 হবে এবং CreatedDate কলামে বর্তমান সময় নিবে।


2. Table পরিবর্তন (Altering a Table)

ALTER TABLE কমান্ড ব্যবহার করে আপনি একটি পূর্বে তৈরি করা Table এ পরিবর্তন আনতে পারেন। উদাহরণস্বরূপ, নতুন কলাম যোগ করা, বিদ্যমান কলাম পরিবর্তন করা, অথবা কলাম মুছে ফেলা ইত্যাদি।

2.1. নতুন কলাম যোগ করা (Adding a New Column)

কোনও Table-এ নতুন কলাম যোগ করতে ALTER TABLE ADD ব্যবহার করা হয়:

ALTER TABLE Employee
ADD Email NVARCHAR(100);
GO

এই কমান্ডে Email নামে একটি নতুন কলাম Employee টেবিলে যোগ করা হচ্ছে, যা NVARCHAR(100) টাইপের হবে।

2.2. বিদ্যমান কলাম পরিবর্তন (Modifying an Existing Column)

যদি আপনি একটি কলামের ডেটা টাইপ বা অন্যান্য বৈশিষ্ট্য পরিবর্তন করতে চান, তবে ALTER TABLE MODIFY বা ALTER COLUMN ব্যবহার করা হয়:

ALTER TABLE Employee
ALTER COLUMN Salary DECIMAL(15, 2);
GO

এখানে, Salary কলামের ডেটা টাইপ পরিবর্তন করে এটি DECIMAL(15, 2) করা হয়েছে, যাতে 15 অঙ্কের সংখ্যা এবং 2 দশমিক স্থান ধারণ করা যায়।

2.3. কলাম মুছে ফেলা (Dropping a Column)

যদি একটি Table থেকে কোনো কলাম মুছে ফেলতে চান, তবে ALTER TABLE DROP COLUMN ব্যবহার করতে পারেন:

ALTER TABLE Employee
DROP COLUMN BirthDate;
GO

এই কমান্ডের মাধ্যমে Employee টেবিল থেকে BirthDate কলামটি মুছে ফেলা হবে।

2.4. কলামের নাম পরিবর্তন (Renaming a Column)

SQL Server এ সরাসরি ALTER COLUMN দিয়ে কলামের নাম পরিবর্তন করা সম্ভব নয়। তবে, আপনি sp_rename সিস্টেম স্টোরড প্রোসিজার ব্যবহার করে কলামের নাম পরিবর্তন করতে পারেন:

EXEC sp_rename 'Employee.FirstName', 'First_Name', 'COLUMN';
GO

এখানে, FirstName কলামের নাম পরিবর্তন করে First_Name রাখা হয়েছে।

2.5. Table মুছে ফেলা (Dropping a Table)

কোনো Table পুরোপুরি মুছে ফেলতে DROP TABLE কমান্ড ব্যবহার করা হয়:

DROP TABLE Employee;
GO

এটি Employee টেবিলটি পুরোপুরি মুছে ফেলবে, এবং এর সমস্ত ডেটা হারিয়ে যাবে। তাই এটি ব্যবহারের আগে সতর্ক থাকতে হবে।


3. Table এর Constraints পরিবর্তন

3.1. Primary Key যোগ করা (Adding Primary Key)

ALTER TABLE Employee
ADD CONSTRAINT PK_EmployeeID PRIMARY KEY (EmployeeID);
GO

এই কমান্ডের মাধ্যমে EmployeeID কলামে একটি Primary Key constraint যোগ করা হয়েছে।

3.2. Foreign Key যোগ করা (Adding Foreign Key)

ALTER TABLE Employee
ADD CONSTRAINT FK_Employee_Department FOREIGN KEY (DepartmentID)
REFERENCES Department(DepartmentID);
GO

এখানে Employee টেবিলের DepartmentID কলামকে Department টেবিলের DepartmentID কলামের সাথে সংযুক্ত করা হয়েছে একটি Foreign Key constraint এর মাধ্যমে।


সারাংশ

SQL Server এ নতুন Table তৈরি এবং বিদ্যমান Table পরিবর্তন করার জন্য CREATE TABLE এবং ALTER TABLE কমান্ড ব্যবহার করা হয়। এই কমান্ডগুলির মাধ্যমে আপনি কলাম যোগ, পরিবর্তন, মুছে ফেলা, এবং ডেটা টাইপ কাস্টমাইজ করতে পারবেন। Table-এ বিভিন্ন Constraints যেমন Primary Key, Foreign Key, Default value ইত্যাদি যোগ করা যেতে পারে ডেটার মান নিয়ন্ত্রণ এবং সম্পর্ক স্থাপনের জন্য।

Content added By

Data Types এর ব্যবহার এবং কনফিগারেশন

395

SQL Server এ ডেটাবেস তৈরি, ডেটা সংরক্ষণ এবং প্রক্রিয়া করার জন্য বিভিন্ন Data Types ব্যবহৃত হয়। প্রতিটি Data Type একটি নির্দিষ্ট ধরনের ডেটা সংরক্ষণ করতে সক্ষম, যেমন টেক্সট, নম্বর, তারিখ, বুলিয়ান (True/False) ইত্যাদি। সঠিক Data Type নির্বাচন করা খুবই গুরুত্বপূর্ণ, কারণ এটি ডেটাবেসের পারফরম্যান্স, নিরাপত্তা এবং স্থায়ীত্বের উপর প্রভাব ফেলে।

এখানে SQL Server-এ ব্যবহৃত বিভিন্ন Data Type এবং এগুলোর কনফিগারেশন ও ব্যবহার ব্যাখ্যা করা হলো।


1. Data Types এর শ্রেণীবিভাগ

SQL Server এ Data Types প্রধানত কয়েকটি ভাগে বিভক্ত:

1.1. Numeric Data Types

এই ধরনের ডেটা টাইপগুলি সংখ্যাসূচক মান সংরক্ষণ করে।

  • INT: 4 বাইটের পূর্ণসংখ্যা সংরক্ষণ করে। এর পরিসীমা -2,147,483,648 থেকে 2,147,483,647 পর্যন্ত।
  • BIGINT: 8 বাইটের পূর্ণসংখ্যা সংরক্ষণ করে। এর পরিসীমা অনেক বড়, প্রায় -9.2×10¹⁸ থেকে 9.2×10¹⁸ পর্যন্ত।
  • SMALLINT: 2 বাইটের পূর্ণসংখ্যা সংরক্ষণ করে। এর পরিসীমা -32,768 থেকে 32,767 পর্যন্ত।
  • TINYINT: 1 বাইটের পূর্ণসংখ্যা সংরক্ষণ করে, যার পরিসীমা 0 থেকে 255।
  • DECIMAL(p, s) এবং NUMERIC(p, s): এগুলি নির্দিষ্ট দশমিক স্থান সহ সংখ্যা সংরক্ষণ করতে ব্যবহৃত হয়, যেখানে p হল Precision (সর্বাধিক ডিজিটের সংখ্যা) এবং s হল Scale (ডেসিমাল পয়েন্টের পরে ডিজিটের সংখ্যা)।
  • FLOAT: ভাসমান দশমিক সংখ্যার জন্য ব্যবহৃত হয়। এর মান খুব বড় বা খুব ছোট সংখ্যার জন্য উপযুক্ত।

1.2. String Data Types

এই ধরনের ডেটা টাইপগুলি টেক্সট বা স্ট্রিং ডেটা সংরক্ষণ করতে ব্যবহৃত হয়।

  • CHAR(n): একটি স্থির দৈর্ঘ্যের স্ট্রিং (যেমন 10 চরিত্র)। এই ধরনের ডেটা টাইপ ব্যবহৃত হয় যখন স্ট্রিংয়ের দৈর্ঘ্য সর্বদা নির্দিষ্ট হয়।
  • VARCHAR(n): একটি ভেরিয়েবল দৈর্ঘ্যের স্ট্রিং (যেমন 50 চরিত্র)। যদি স্ট্রিং ছোট হয়, তাহলে কেবলমাত্র আসল দৈর্ঘ্য সঞ্চিত হয়, যা স্থান সাশ্রয়ী।
  • TEXT: দীর্ঘ স্ট্রিং সংরক্ষণের জন্য ব্যবহৃত হয়, তবে এটি বর্তমান ভার্সনে VARCHAR(MAX) দিয়ে প্রতিস্থাপিত হয়েছে।
  • NCHAR(n) এবং NVARCHAR(n): ইউনিকোড স্ট্রিং ডেটা সংরক্ষণ করে, যেখানে n হল স্ট্রিংয়ের দৈর্ঘ্য। এটি বিভিন্ন ভাষার অক্ষর সঠিকভাবে সংরক্ষণ করতে সহায়তা করে।

1.3. Date and Time Data Types

এই ধরনের ডেটা টাইপগুলি তারিখ এবং সময় সংরক্ষণ করতে ব্যবহৃত হয়।

  • DATE: কেবলমাত্র তারিখ সংরক্ষণ করে (যেমন 2024-11-30)।
  • TIME: কেবলমাত্র সময় সংরক্ষণ করে (যেমন 14:30:00)।
  • DATETIME: তারিখ এবং সময় উভয়ই সংরক্ষণ করে (যেমন 2024-11-30 14:30:00)।
  • DATETIME2: DATETIME এর উন্নত সংস্করণ, যা আরো বড় পরিসীমা এবং মাইক্রোসেকেন্ড পর্যন্ত সঠিকতা প্রদান করে।
  • SMALLDATETIME: ছোট সময়ের পরিসীমা এবং কম সঠিকতা, কিন্তু এটি কম জায়গা নেয়।

1.4. Boolean Data Types

বুলিয়ান ডেটা টাইপটি সাধারণত সত্য (True) বা মিথ্যা (False) মান ধারণ করে।

  • BIT: 0 (False) অথবা 1 (True) এর মান ধারণ করে। BIT ডেটা টাইপের জন্য 1 বা 0 এর মান ব্যবহৃত হয়।

1.5. Binary Data Types

এই ধরনের ডেটা টাইপগুলি বাইনারি ডেটা (যেমন ইমেজ, ফাইল) সংরক্ষণ করতে ব্যবহৃত হয়।

  • BINARY(n): নির্দিষ্ট দৈর্ঘ্যের বাইনারি ডেটা সংরক্ষণ করে।
  • VARBINARY(n): ভেরিয়েবল দৈর্ঘ্যের বাইনারি ডেটা সংরক্ষণ করে। এটি সাধারণত ফাইল সংরক্ষণ বা ইমেজ ডেটা ধারণ করতে ব্যবহৃত হয়।
  • IMAGE: বৃহৎ বাইনারি ডেটা সংরক্ষণ করে, তবে বর্তমানে এটি VARBINARY(MAX) দ্বারা প্রতিস্থাপিত হয়েছে।

2. Data Types কনফিগারেশন

SQL Server-এ সঠিক Data Type নির্বাচন করার সময়, কিছু গুরুত্বপূর্ণ বিষয় বিবেচনা করা উচিত:

2.1. Data Type নির্বাচন

  • পারফরম্যান্স: সঠিক Data Type নির্বাচন করলে পারফরম্যান্স উন্নত হয়, কারণ এটি কম জায়গা নেয় এবং দ্রুত ডেটা প্রক্রিয়াকরণ করতে সহায়তা করে।
  • স্টোরেজ: কিছু ডেটা টাইপ বড় আকারের স্টোরেজ প্রয়োজন হতে পারে, যেমন TEXT, IMAGE, BIGINT ইত্যাদি। এর ফলে, স্টোরেজ ব্যবস্থাপনায় সমস্যা হতে পারে।
  • ডেটার বৈশিষ্ট্য: যদি ডেটা সংখ্যা হয়ে থাকে, তবে INT, FLOAT বা DECIMAL ব্যবহার করা উচিত। যদি স্ট্রিং হয়, তবে VARCHAR বা TEXT উপযুক্ত।

2.2. Data Type কনফিগারেশনের উদাহরণ

  1. INT টাইপের কলাম তৈরি করা:

    CREATE TABLE Employee (
        EmployeeID INT,
        Name VARCHAR(100)
    );
    
  2. DECIMAL টাইপের কলাম তৈরি করা:

    CREATE TABLE Product (
        ProductID INT,
        ProductName VARCHAR(100),
        Price DECIMAL(10, 2)  -- 10 ডিজিটের মধ্যে 2 ডিজিট দশমিক স্থান
    );
    
  3. DATETIME টাইপের কলাম তৈরি করা:

    CREATE TABLE OrderDetails (
        OrderID INT,
        OrderDate DATETIME
    );
    

2.3. Data Types এর আকার পরিবর্তন

কিছু ডেটা টাইপের আকার পরিবর্তন করা সম্ভব, যেমন:

  • VARCHAR এর আকার পরিবর্তন করা:

    ALTER TABLE Employee
    ALTER COLUMN Name VARCHAR(200);
    
  • DECIMAL এর স্কেল পরিবর্তন:

    ALTER TABLE Product
    ALTER COLUMN Price DECIMAL(12, 4);
    

3. Data Types এর গুরুত্ব

SQL Server-এ সঠিক Data Type ব্যবহার করা গুরুত্বপূর্ণ, কারণ এটি:

  • স্টোরেজ অপটিমাইজেশন: সঠিক Data Type ব্যবহার করলে ডেটাবেসের স্টোরেজ পরিমাণ কমে।
  • পারফরম্যান্স উন্নয়ন: কম জায়গা নেওয়া ডেটা টাইপ ব্যবহারের ফলে সঞ্চালন এবং ডেটা প্রক্রিয়া দ্রুত হয়।
  • ডেটা সঠিকতা: সঠিক ডেটা টাইপ ডেটার সঠিকতা নিশ্চিত করে, যেমন একটি নাম্বার ফিল্ডে টেক্সট ডেটা সংরক্ষণ করা সম্ভব নয়।

সারাংশ

SQL Server-এ Data Types নির্বাচন এবং কনফিগারেশন অত্যন্ত গুরুত্বপূর্ণ, কারণ এটি আপনার ডেটাবেসের পারফরম্যান্স, সঠিকতা এবং স্টোরেজ ব্যবস্থাপনাকে প্রভাবিত করে। সঠিক Data Type নির্বাচন করে আপনি দ্রুত ডেটা প্রক্রিয়াকরণ এবং স্টোরেজ অপটিমাইজেশন নিশ্চিত করতে পারেন।

Content added By

Primary Key এবং Foreign Key তৈরি করা

329

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


1. Primary Key তৈরি করা

Primary Key টেবিলের মধ্যে প্রতিটি রেকর্ডকে অনন্যভাবে চিহ্নিত করে এবং এটি একটি কলাম বা একাধিক কলামের সমন্বয়ে হতে পারে। Primary Key কলামে NULL মান রাখা যায় না এবং এটি অবশ্যই unique হতে হবে।

1.1. SSMS এর মাধ্যমে Primary Key তৈরি করা

  1. SQL Server Management Studio (SSMS) ওপেন করুন এবং আপনার ডেটাবেস নির্বাচন করুন।
  2. Object Explorer তে ডেটাবেসের মধ্যে টেবিলটি সিলেক্ট করুন যেখানে আপনি Primary Key তৈরি করতে চান।
  3. টেবিলটির উপর রাইট ক্লিক করুন এবং Design নির্বাচন করুন।
  4. টেবিলের যে কলামটিকে আপনি Primary Key হিসেবে ব্যবহার করতে চান, সেই কলামে ক্লিক করুন।
  5. উপর থেকে Primary Key বাটনে ক্লিক করুন। এটি ওই কলামটি Primary Key হিসেবে সেট করবে।
  6. Save করুন।

1.2. T-SQL ব্যবহার করে Primary Key তৈরি করা

T-SQL কোডের মাধ্যমে আপনি একটি টেবিলের Primary Key কনফিগার করতে পারেন। নিচে একটি উদাহরণ দেওয়া হলো:

ALTER TABLE Employees
ADD CONSTRAINT PK_EmployeeID PRIMARY KEY (EmployeeID);

এই কোডটি Employees টেবিলের EmployeeID কলামটিকে Primary Key হিসেবে সেট করবে।

1.3. Primary Key তৈরি করার সময় কিছু নিয়ম

  • Unique Constraint: Primary Key থাকা কলামে যেকোনো মান পুনরাবৃত্তি হতে পারবে না।
  • Non-Nullable: Primary Key কলামে NULL মান রাখা যাবে না।

2. Foreign Key তৈরি করা

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

2.1. SSMS এর মাধ্যমে Foreign Key তৈরি করা

  1. SQL Server Management Studio (SSMS) ওপেন করুন এবং ডেটাবেস নির্বাচন করুন।
  2. Object Explorer তে দুইটি টেবিল নির্বাচন করুন, যেখানে একটি টেবিলের কলাম Foreign Key হিসেবে অন্য টেবিলের কলামকে রেফার করবে।
  3. প্রথম টেবিলের উপর রাইট ক্লিক করুন এবং Design নির্বাচন করুন।
  4. টেবিলের যে কলামটিতে Foreign Key সেট করতে চান, সেই কলামটি সিলেক্ট করুন।
  5. উপরের মেনু থেকে Relationships নির্বাচন করুন।
  6. Add বাটনে ক্লিক করুন এবং Primary Key Table নির্বাচন করুন যেটির কলামের সাথে Foreign Key সম্পর্কিত হবে।
  7. OK ক্লিক করুন এবং Save করুন।

2.2. T-SQL ব্যবহার করে Foreign Key তৈরি করা

T-SQL কোডের মাধ্যমে আপনি Foreign Key কনফিগার করতে পারেন। নিচে একটি উদাহরণ দেওয়া হলো:

ALTER TABLE Orders
ADD CONSTRAINT FK_CustomerID FOREIGN KEY (CustomerID)
REFERENCES Customers(CustomerID);

এই কোডটি Orders টেবিলের CustomerID কলামটিকে Customers টেবিলের CustomerID কলামের সাথে সম্পর্কিত করবে।

2.3. Foreign Key তৈরি করার সময় কিছু নিয়ম

  • Referential Integrity: Foreign Key এর মাধ্যমে দুটি টেবিলের মধ্যে সম্পর্ক স্থাপন করা হয়। এই সম্পর্কের মাধ্যমে যদি মূল টেবিলে (যে টেবিলের Primary Key রয়েছে) কোনো রেকর্ড মুছে ফেলা হয়, তবে সেটি Foreign Key টেবিলেও প্রভাব ফেলবে (আপনার ডিফাইন করা বিধির উপর নির্ভর করে)।
  • Cascade Delete/Update: Foreign Key সম্পর্ক স্থাপন করার সময়, আপনি Cascade Delete বা Cascade Update কনফিগার করতে পারেন। এর মানে হল, যদি মূল টেবিলে কোনো রেকর্ড মুছে ফেলা হয়, তবে সেটি Foreign Key টেবিলেও মুছে যাবে (বা আপডেট হবে)।
  • Action on Delete/Update: যদি কোনো রেকর্ড পরিবর্তন বা মুছে ফেলা হয়, তবে আপনি নির্ধারণ করতে পারবেন যে কী হবে, যেমন:
    • ON DELETE CASCADE: মূল টেবিল থেকে ডেটা মুছে ফেললে Foreign Key টেবিল থেকেও ডেটা মুছে যাবে।
    • ON UPDATE CASCADE: মূল টেবিল থেকে ডেটা আপডেট হলে Foreign Key টেবিল থেকেও ডেটা আপডেট হবে।

উদাহরণ:

ALTER TABLE Orders
ADD CONSTRAINT FK_CustomerID FOREIGN KEY (CustomerID)
REFERENCES Customers(CustomerID)
ON DELETE CASCADE
ON UPDATE CASCADE;

এই কোডটি Orders টেবিলের CustomerID কলামটিকে Customers টেবিলের CustomerID কলামের সাথে যুক্ত করবে, এবং যদি Customers টেবিলে কোনো CustomerID আপডেট বা মুছে ফেলা হয়, তবে তা Orders টেবিলেও প্রতিফলিত হবে।


3. Primary Key এবং Foreign Key এর মধ্যে পার্থক্য

  • Primary Key: একটি টেবিলের এক বা একাধিক কলামকে একটি নির্দিষ্ট মান দিয়ে প্রতিটি রেকর্ডকে অনন্যভাবে চিহ্নিত করে। এতে NULL মান রাখা যায় না।
  • Foreign Key: এটি দুটি টেবিলের মধ্যে সম্পর্ক তৈরি করে। Foreign Key কলাম একটি টেবিলের Primary Key বা Unique Key কলামের সাথে সম্পর্কিত থাকে।

Primary Key এবং Foreign Key ডেটাবেস ডিজাইন এবং রিলেশনাল ডেটাবেস ম্যানেজমেন্ট সিস্টেমের (RDBMS) অঙ্গীকারের অংশ। এগুলোর মাধ্যমে ডেটাবেসের মধ্যে সম্পর্ক স্থাপন, অখণ্ডতা রক্ষা এবং ডেটার সঠিকতা নিশ্চিত করা সম্ভব।

Content added By

Constraints (CHECK, DEFAULT, UNIQUE) ব্যবহার

352

SQL Server এ Constraints হলো ডেটাবেসে ডেটার অখণ্ডতা এবং সঠিকতা নিশ্চিত করার জন্য ব্যবহৃত নিয়মাবলী। এগুলি টেবিলের কলামগুলোর উপরে বিভিন্ন বিধি বা শর্ত আরোপ করে, যাতে ডেটাবেসে অবৈধ বা অপ্রত্যাশিত ডেটা প্রবাহিত না হয়। SQL Server এ বিভিন্ন ধরনের কনস্ট্রেইন্ট রয়েছে, যেমন CHECK, DEFAULT, এবং UNIQUE, যা বিভিন্ন ধরণের ডেটা সঠিকতা ও নিয়মবদ্ধতা নিশ্চিত করতে ব্যবহৃত হয়।

এই টিউটোরিয়ালে CHECK, DEFAULT, এবং UNIQUE কনস্ট্রেইন্ট ব্যবহার করার পদ্ধতি এবং উদাহরণ নিয়ে আলোচনা করা হবে।


1. CHECK Constraint

CHECK কনস্ট্রেইন্ট ব্যবহার করা হয় একটি কলামের মানের জন্য একটি শর্ত আরোপ করতে, যাতে সেই কলামে শুধুমাত্র নির্দিষ্ট মান বা শর্ত পূর্ণকরা ডেটা প্রবাহিত হয়।

1.1. CHECK কনস্ট্রেইন্ট ব্যবহার

  • CHECK কনস্ট্রেইন্ট সাধারণত একটি নির্দিষ্ট শর্ত বা এক্সপ্রেশন দিয়ে থাকে, যা কেবলমাত্র শর্ত পূর্ণ হলে ডেটা প্রবাহিত হতে দেয়।
  • এটি numeric, date, text ইত্যাদি ডেটা টাইপের জন্য শর্ত আরোপ করতে ব্যবহৃত হয়।

উদাহরণ:

ধরা যাক, আপনি একটি Employee টেবিল তৈরি করছেন এবং কর্মীর Salary শুধুমাত্র ১০,০০০ বা তার বেশি হওয়া উচিত। তাহলে CHECK কনস্ট্রেইন্ট ব্যবহার করে এটি নিশ্চিত করা যাবে।

CREATE TABLE Employees (
    EmployeeID INT PRIMARY KEY,
    EmployeeName NVARCHAR(100),
    Salary DECIMAL(10, 2),
    CONSTRAINT chk_salary CHECK (Salary >= 10000)
);

এখানে, chk_salary নামে একটি কনস্ট্রেইন্ট তৈরি করা হয়েছে যা Salary কলামের মান ১০,০০০ এর বেশি হতে হবে এমন শর্ত আরোপ করেছে।


2. DEFAULT Constraint

DEFAULT কনস্ট্রেইন্ট ব্যবহার করা হয় একটি কলামে ডিফল্ট মান সেট করার জন্য, যাতে যদি কোনও ডেটা ইনপুট না করা হয়, তবে স্বয়ংক্রিয়ভাবে একটি মান নির্ধারিত হয়। এটি তখন ব্যবহার হয় যখন ডেটাবেসে কোনো নির্দিষ্ট কলামে যদি মান না দেওয়া হয়, তখন সেটি স্বয়ংক্রিয়ভাবে একটি ডিফল্ট মান পায়।

2.1. DEFAULT কনস্ট্রেইন্ট ব্যবহার

  • DEFAULT কনস্ট্রেইন্ট সাধারণত NULL অথবা empty values দেওয়ার পরিবর্তে একটি প্রাক-নির্ধারিত মান ব্যবহার করে।
  • এটি সাধারণত text বা numeric ডেটা টাইপের জন্য ব্যবহৃত হয়।

উদাহরণ:

ধরা যাক, আপনি একটি Employees টেবিল তৈরি করছেন যেখানে কর্মীর HireDate কে ডিফল্ট ভাবে বর্তমান তারিখ দেয়া হবে যদি তারিখটি ইনপুট না দেওয়া হয়।

CREATE TABLE Employees (
    EmployeeID INT PRIMARY KEY,
    EmployeeName NVARCHAR(100),
    HireDate DATETIME DEFAULT GETDATE()
);

এখানে, HireDate কলামে কোনো মান ইনপুট না দিলে, তা স্বয়ংক্রিয়ভাবে GETDATE() ফাংশন ব্যবহার করে বর্তমান তারিখে পূর্ণ হবে।


3. UNIQUE Constraint

UNIQUE কনস্ট্রেইন্ট ব্যবহার করা হয় একটি কলামের মধ্যে ডুপ্লিকেট মান প্রবাহিত হওয়া বন্ধ করতে। এটি নিশ্চিত করে যে একটি টেবিলের নির্দিষ্ট কলামে প্রতিটি মান অনন্য (unique) হবে।

3.1. UNIQUE কনস্ট্রেইন্ট ব্যবহার

  • UNIQUE কনস্ট্রেইন্ট কলামের ডেটার মধ্যে পুনরাবৃত্তি এড়াতে ব্যবহৃত হয়।
  • এটি টেবিলের একাধিক কলামেও প্রয়োগ করা যেতে পারে, যেখানে সব কলামের সম্মিলিত মান অনন্য হতে হবে।

উদাহরণ:

ধরা যাক, আপনি একটি Employees টেবিল তৈরি করছেন যেখানে EmployeeEmail কলামটি অনন্য হতে হবে, যাতে কোনো দুই কর্মীর একই ইমেইল ঠিকানা না থাকে।

CREATE TABLE Employees (
    EmployeeID INT PRIMARY KEY,
    EmployeeName NVARCHAR(100),
    EmployeeEmail NVARCHAR(100) UNIQUE
);

এখানে, EmployeeEmail কলামে UNIQUE কনস্ট্রেইন্ট ব্যবহার করা হয়েছে, যাতে প্রতিটি ইমেইল অ্যাড্রেস টেবিলের মধ্যে একাধিকবার না আসে।

3.2. Multiple Columns Unique Constraint:

একাধিক কলামের সম্মিলিত মান অনন্য করতে UNIQUE কনস্ট্রেইন্ট ব্যবহার করা যেতে পারে।

CREATE TABLE Employees (
    EmployeeID INT PRIMARY KEY,
    EmployeeName NVARCHAR(100),
    DepartmentID INT,
    Email NVARCHAR(100),
    CONSTRAINT unique_employee_email UNIQUE (Email, DepartmentID)
);

এখানে, Email এবং DepartmentID কলামগুলোর সম্মিলিত মান অনন্য হতে হবে।


4. Constraints এর সংক্ষিপ্ত পরিচিতি

  • CHECK Constraint: এটি ডেটাবেসে একটি নির্দিষ্ট শর্ত আরোপ করে যা কলামের মান যাচাই করে। উদাহরণস্বরূপ, একটি বয়সের কলামে ১৮ বছরের নিচে মান থাকতে পারবে না।
  • DEFAULT Constraint: এটি কলামে কোনো মান ইনপুট না দেওয়া হলে একটি ডিফল্ট মান প্রযোজ্য করে। উদাহরণস্বরূপ, HireDate কলামে ডিফল্ট মান হিসাবে বর্তমান তারিখ সন্নিবেশিত হবে।
  • UNIQUE Constraint: এটি কলামের মধ্যে ডুপ্লিকেট মান প্রবাহিত হওয়া বন্ধ করে। উদাহরণস্বরূপ, Email কলামে ডুপ্লিকেট ইমেইল থাকতে পারবে না।

Conclusion

CHECK, DEFAULT, এবং UNIQUE কনস্ট্রেইন্ট SQL Server ডেটাবেসে ডেটা অখণ্ডতা নিশ্চিত করতে গুরুত্বপূর্ণ ভূমিকা পালন করে। সঠিকভাবে এই কনস্ট্রেইন্টগুলি ব্যবহার করে আপনি আপনার ডেটাবেসের ডেটাকে আরও নিরাপদ, সঠিক এবং পারফর্ম্যান্ট রাখতে পারবেন।

Content added By
Promotion

Are you sure to start over?

Loading...