# ডাটাবেজ কি? ডাটাবেজ কত প্রকার ও কি কি? ডাটাবেজ সম্পর্ক

**ডাটাবেজ:** এক বা একাধিক data(তথ্য) টেবিল বা ফাইলের সমষ্টি হচ্ছে ডাটাবেজ যাদের মধ্যে পরস্পর সম্পর্ক বিদ্যামান।

ডাটাবেজ দুই ধরনের: **১. General Database ২.Relational Database**

১.General Database:

শুধুমাত্র একটি ফাইল বা পরম্পর সম্পর্কহীন একাধিক ফাইলের সমন্বয়ে যে ডাটাবেস গঠিত হয় তাকে সাধারণ ডাটাবেজ বলে।

২.Relational database:

পরস্পর সম্পর্কযুক্ত একাধিক ফাইলের বা টেবিলের সাহায্যে যে ডাটাবেজ গঠন করা হয় তাকে Relational Database বলে।

**ডাটাবেজ এর উপাদান সমূহ:**

1\. Field

2\. Record

3.Value

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1671702714815/S1JFhHzz8.png align="center")

Key Field: যে ফিল্ডের উপর ভিত্তি করে ডাটাবেজের রের্কড শনাক্ত, অনুসন্ধান, সম্পর্ক তৈরী করা যায় তাকে key field বলে।

**key ৩ প্রকার:**

Primary Key: যে ফিল্ডের সাহায্যে প্রতিটা রেকর্ডকে পৃথক পৃথকভাবে শনাক্ত করা যায় তাকে Primary Key বলে।

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1671707057948/aSlVFMLCA.png align="center")

Ex: ID একটি primary key field কারন এর প্রতিটি record unique

**Composit Key:**

অনেক সময় একটা ফিল্ডের সাহায্যে প্রতিটা রেকর্ডকেকে পৃথকভাবে শনাক্ত করা যায় না,তখন দুই বা ততোধিক key field এর সাহায্যে প্রতিটা record কে শনাক্ত করা যায়।

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1671705929766/TYgJLqKlr.png align="center")

**Foreign Key:** একটি টেবিলের প্রাইমারি key যদি অন্য টেবিলের সাধারণ key হিসেবে ব্যবহার করা হয়, তখন ঐ সাধারণ key কে foreign key বলে।

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1671705956609/Nowks6CLj.png align="center")

**Database Relation:**

দুই বা ততোধিক টেবিলের মধ্যে যে পদ্ধতিতে সম্পর্ক স্থাপন করে টেবিলের উপর বিভিন্ন query চালানো হয় তাকে Database Relation বলে

টেবিলের মধ্যে রের্কডগুলো কিভাবে সম্পর্কযুক্ত তার উপর নির্ভর করে Database Relation কে ৩ ভাগে ভাগ করা যায়।

১. One To One

২. one to many

৩. Many to Many

**One To One :**

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1671706261017/ZDSD4ThzE.png align="center")

কোন একটি টেবিলের একটি রের্কডের সাথে অন্য একটি টেবিলের একটি রেকর্ডের সম্পর্ক স্থাপন হলে তখন তাকে One To One relational database বলে।

**One To Many:**

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1671706277032/dpHnOskke.png align="center")

কোন একটি টেবিলের একটি রের্কডের সাথে অন্য একটি টেবিলের একাধিক রেকর্ডের সম্পর্ক স্থাপন হলে তখন তাকে One To Many relational database বলে।

একটি টেবিলের primary key এর সাথে অন্য টেবিলের foreign key এর সম্পর্ক হলে, তা one to many relation।

**Many To Many:**

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1671706299624/8vP7LAMVB.png align="center")

দুটি টেবিলের মধ্যে যদি একাধিক রের্কডের ম্যাচিং থাকে তাকে many to many relation বলে।

এই relation তৈরীর জন্য অতিরিক্ত একটি টেবিলের প্রয়োজন হয় তাকে pivit/join টেবিল বলে।

দুটি টেবিলের primary key, Join টেবিলের foreign key হিসেবে ব্যবহার করা হয়।
