2.1। ধারণাগত নকশা
ডাটাবেস ডিজাইন তিনটি পর্যায়ে বাহিত হয়:
- ধারণাগত নকশা;
- যৌক্তিক নকশা;
- শারীরিক নকশা.
ধারণাগত নকশা পর্বের উদ্দেশ্য হল বিষয় এলাকা সম্পর্কে ব্যবহারকারীদের ধারণার উপর ভিত্তি করে একটি ধারণাগত ডেটা মডেল তৈরি করা। এটি অর্জনের জন্য, ধারাবাহিক পদ্ধতির একটি সিরিজ সঞ্চালিত হয়। একটি সত্তা (ধারণাগত) স্কিমার উদাহরণ:
![](https://cdn.codegym.cc/images/article/f8e01a34-8cc9-49cd-a834-2941721c4c08/800.jpeg)
1. সত্তার সংজ্ঞা এবং তাদের ডকুমেন্টেশন। সত্তা সনাক্ত করতে, বস্তুগুলিকে সংজ্ঞায়িত করা হয় যা অন্যদের থেকে স্বাধীনভাবে বিদ্যমান। এই ধরনের বস্তু সত্তা. প্রতিটি সত্তাকে একটি অর্থপূর্ণ নাম দেওয়া হয় যা ব্যবহারকারীরা বুঝতে পারে। সত্তার নাম এবং বিবরণ ডেটা অভিধানে প্রবেশ করানো হয়। যদি সম্ভব হয়, প্রতিটি সত্তার দৃষ্টান্তের প্রত্যাশিত সংখ্যা সেট করা হয়।
2. সত্তা এবং তাদের ডকুমেন্টেশনের মধ্যে সম্পর্ক নির্ধারণ। শুধুমাত্র সত্তার মধ্যে সেই সম্পর্কগুলিকে সংজ্ঞায়িত করা হয়েছে যেগুলি ডাটাবেস ডিজাইনের প্রয়োজনীয়তাগুলি পূরণ করার জন্য প্রয়োজনীয়৷ প্রতিটির ধরন নির্ধারণ করা হয়েছে। সত্তার সদস্যপদ শ্রেণী প্রকাশ করা হয়. লিঙ্কগুলিকে ক্রিয়া দ্বারা প্রকাশ করা অর্থপূর্ণ নাম বরাদ্দ করা হয়। প্রতিটি সংযোগের একটি বিশদ বিবরণ, এটির ধরন এবং সংযোগে অংশগ্রহণকারী সত্তার শ্রেণী নির্দেশ করে, ডেটা অভিধানে প্রবেশ করানো হয়েছে।
3. বিষয় এলাকার একটি ER-মডেল তৈরি করা। ER ডায়াগ্রামগুলি সত্তা এবং তাদের মধ্যে সম্পর্ক উপস্থাপন করতে ব্যবহৃত হয়। তাদের উপর ভিত্তি করে, মডেল করা বিষয় এলাকার একটি একক চাক্ষুষ চিত্র তৈরি করা হয় - বিষয় এলাকার ER-মডেল।
4. বৈশিষ্ট্যের সংজ্ঞা এবং তাদের ডকুমেন্টেশন। তৈরি করা ER মডেলের সত্তা বর্ণনা করে এমন সমস্ত গুণাবলী প্রকাশ করা হয়েছে। প্রতিটি বৈশিষ্ট্যকে একটি অর্থপূর্ণ নাম দেওয়া হয় যা ব্যবহারকারীরা বুঝতে পারে। নিম্নলিখিত তথ্য প্রতিটি বৈশিষ্ট্যের জন্য ডেটা অভিধানে সংরক্ষণ করা হয়:
- বৈশিষ্ট্যের নাম এবং বিবরণ;
- মানগুলির ধরন এবং মাত্রা;
- বৈশিষ্ট্যের জন্য ডিফল্ট মান (যদি থাকে);
- অ্যাট্রিবিউটের NULL মান থাকতে পারে কিনা;
- অ্যাট্রিবিউটটি যৌগিক কিনা, এবং যদি তাই হয়, তাহলে এটিতে কী সাধারণ বৈশিষ্ট্য রয়েছে। উদাহরণস্বরূপ, "ক্লায়েন্টের পুরো নাম" বৈশিষ্ট্যটি "শেষ নাম", "প্রথম নাম", "প্যাট্রনিমিক" সাধারণ বৈশিষ্ট্যগুলি নিয়ে গঠিত হতে পারে বা এটি সহজ হতে পারে, যার মধ্যে একক মান রয়েছে, যেমন "সিডোরস্কি ইভজেনি মিখাইলোভিচ"। যদি ব্যবহারকারীর "নাম" এর পৃথক উপাদানগুলিতে অ্যাক্সেসের প্রয়োজন না হয়, তবে বৈশিষ্ট্যটি সহজ হিসাবে উপস্থাপন করা হয়;
- বৈশিষ্ট্য গণনা করা হয় কিনা, এবং যদি তাই হয়, কিভাবে এর মান গণনা করা হয়।
5. বৈশিষ্ট্যের মান এবং তাদের ডকুমেন্টেশনের সংজ্ঞা। ER মডেলে অংশগ্রহণকারী একটি সত্তার প্রতিটি বৈশিষ্ট্যের জন্য, বৈধ মানগুলির একটি সেট নির্ধারণ করা হয় এবং এটির জন্য একটি নাম বরাদ্দ করা হয়। উদাহরণস্বরূপ, অ্যাট্রিবিউট "অ্যাকাউন্ট টাইপ"-এ শুধুমাত্র "আমানত", "বর্তমান", "চাহিদা অনুযায়ী", "কার্ড অ্যাকাউন্ট" মান থাকতে পারে। বৈশিষ্ট্যগুলির সাথে সম্পর্কিত ডেটা অভিধান এন্ট্রিগুলি বৈশিষ্ট্য মান সেটগুলির নামের সাথে আপডেট করা হয়।
6. সত্তা এবং তাদের ডকুমেন্টেশনের জন্য প্রাথমিক কীগুলির সংজ্ঞা। এই পদক্ষেপটি একটি প্রাথমিক কী-এর সংজ্ঞা দ্বারা পরিচালিত হয় - একটি বৈশিষ্ট্য বা একটি সত্তার বৈশিষ্ট্যের সেট হিসাবে যা এর উদাহরণগুলির অনন্য সনাক্তকরণের অনুমতি দেয়। প্রাথমিক মূল তথ্য ডাটা অভিধানে রাখা হয়।
7. শেষ ব্যবহারকারীদের সাথে ধারণাগত ডেটা মডেলের আলোচনা। ধারণাগত ডেটা মডেলটি একটি ER মডেল দ্বারা উপস্থাপিত হয় যার সাথে ডকুমেন্টেশনের সাথে উন্নত ডেটা মডেলের বিবরণ রয়েছে। যদি ডোমেনের অসঙ্গতি পাওয়া যায়, তবে ব্যবহারকারীরা নিশ্চিত না হওয়া পর্যন্ত মডেলটিতে পরিবর্তন করা হয় যে তাদের দ্বারা প্রস্তাবিত মডেলটি তাদের ব্যক্তিগত মতামতকে পর্যাপ্তভাবে প্রতিফলিত করে।
2.2 লজিক ডিজাইন
লজিক্যাল ডিজাইন স্টেজের উদ্দেশ্য হল নির্বাচিত ডেটা মডেলের উপর ভিত্তি করে ধারণাগত মডেলকে একটি লজিক্যাল মডেলে রূপান্তর করা যা পরবর্তীতে ডাটাবেসের শারীরিক বাস্তবায়নের জন্য ব্যবহৃত DBMS-এর বৈশিষ্ট্যগুলির থেকে স্বাধীন। এটি অর্জন করতে, নিম্নলিখিত পদ্ধতিগুলি সঞ্চালিত হয়।
একটি লজিক্যাল ডাটাবেস স্কিমার উদাহরণ।
![](https://cdn.codegym.cc/images/article/1909a097-a8bd-47be-b164-6fb55d1af2b0/1024.jpeg)
1. একটি ডেটা মডেল নির্বাচন করা। প্রায়শই, ডেটার সারণী উপস্থাপনার স্পষ্টতা এবং তাদের সাথে কাজ করার সুবিধার কারণে একটি সম্পর্কযুক্ত ডেটা মডেল বেছে নেওয়া হয়।
2. ER মডেলের উপর ভিত্তি করে টেবিলের একটি সেট সংজ্ঞায়িত করা এবং তাদের নথিভুক্ত করা। ER মডেলের প্রতিটি সত্তার জন্য একটি টেবিল তৈরি করা হয়েছে। সত্তার নাম হল টেবিলের নাম। প্রাথমিক এবং বিদেশী কীগুলির প্রক্রিয়ার মাধ্যমে টেবিলের মধ্যে সম্পর্ক স্থাপন করা হয়। টেবিলের কাঠামো এবং তাদের মধ্যে প্রতিষ্ঠিত সম্পর্ক নথিভুক্ত করা হয়।
3. টেবিলের স্বাভাবিকীকরণ। সঠিকভাবে স্বাভাবিককরণ সঞ্চালনের জন্য, ডিজাইনারকে অবশ্যই ডেটার শব্দার্থবিদ্যা এবং ব্যবহারের ধরণগুলি গভীরভাবে বুঝতে হবে। এই ধাপে, তিনি পূর্ববর্তী ধাপে তৈরি করা টেবিলগুলির গঠনের সঠিকতা পরীক্ষা করে তাদের উপর স্বাভাবিকীকরণ পদ্ধতি প্রয়োগ করে। এটি প্রতিটি টেবিলকে অন্তত 3য় এনএফ-এ নিয়ে আসে। স্বাভাবিককরণের ফলস্বরূপ, একটি খুব নমনীয় ডাটাবেস ডিজাইন পাওয়া যায়, যা এটিতে প্রয়োজনীয় এক্সটেনশনগুলিকে সহজ করে তোলে।
4. ব্যবহারকারীদের দ্বারা প্রদত্ত সমস্ত লেনদেন সম্পাদন করার সম্ভাবনার জন্য যৌক্তিক ডেটা মডেল পরীক্ষা করা হচ্ছে৷ একটি লেনদেন একটি ডাটাবেসের বিষয়বস্তু পরিবর্তন করার জন্য একটি পৃথক ব্যবহারকারী বা অ্যাপ্লিকেশন প্রোগ্রাম দ্বারা সম্পাদিত কর্মের একটি সেট। সুতরাং, BANK প্রকল্পে একটি লেনদেনের একটি উদাহরণ হতে পারে একটি নির্দিষ্ট ক্লায়েন্টের অ্যাকাউন্টগুলি অন্য ক্লায়েন্টের কাছে পরিচালনা করার অধিকার হস্তান্তর। এই ক্ষেত্রে, ডাটাবেসে একবারে বেশ কয়েকটি পরিবর্তন করতে হবে। একটি লেনদেনের সময় একটি কম্পিউটার ক্র্যাশ হলে, ডাটাবেসটি একটি অসামঞ্জস্যপূর্ণ অবস্থায় থাকবে কারণ কিছু পরিবর্তন ইতিমধ্যেই করা হয়েছে এবং অন্যরা হয়নি৷ অতএব, ডাটাবেসকে তার আগের সামঞ্জস্যপূর্ণ অবস্থায় ফিরিয়ে আনতে সমস্ত আংশিক পরিবর্তন অবশ্যই পূর্বাবস্থায় ফিরিয়ে আনতে হবে।
লেনদেনের তালিকা বিষয় এলাকায় ব্যবহারকারীদের কর্ম দ্বারা নির্ধারিত হয়। ER মডেল, ডেটা অভিধান, এবং প্রাথমিক এবং বিদেশী কীগুলির মধ্যে সম্পর্ক স্থাপন করে, সমস্ত প্রয়োজনীয় ডেটা অ্যাক্সেস ক্রিয়াকলাপ ম্যানুয়ালি সম্পাদন করার চেষ্টা করা হয়। যদি কোনো ম্যানুয়াল অপারেশন ব্যর্থ হয়, তাহলে সংকলিত লজিক্যাল ডেটা মডেলটি অপর্যাপ্ত এবং এতে ত্রুটি রয়েছে যা অবশ্যই দূর করতে হবে। সম্ভবত তারা একটি সত্তা, সম্পর্ক, বা বৈশিষ্ট্যের মডেলের একটি ফাঁকের সাথে সম্পর্কিত।
5. ডেটা অখণ্ডতা সমর্থন প্রয়োজনীয়তা এবং তাদের ডকুমেন্টেশন নির্ধারণ। এই প্রয়োজনীয়তাগুলি হল বিধিনিষেধ যা ডাটাবেসে প্রবেশ করা থেকে বিরোধপূর্ণ ডেটা রোধ করার জন্য স্থাপন করা হয়। এই ধাপে, ডেটা অখণ্ডতার সমস্যাগুলি এর বাস্তবায়নের নির্দিষ্ট দিক বিবেচনা না করেই কভার করা হয়। নিম্নলিখিত ধরনের সীমাবদ্ধতা বিবেচনা করা উচিত:
- প্রয়োজনীয় তথ্য। শূন্য মান থাকতে পারে না এমন বৈশিষ্ট্য আছে কিনা তা খুঁজে বের করা;
- বৈশিষ্ট্য মান উপর সীমাবদ্ধতা. গুণাবলীর জন্য বৈধ মান সংজ্ঞায়িত করা হয়;
- সত্তা অখণ্ডতা এটি অর্জন করা হয় যদি সত্তার প্রাথমিক কীতে NULL মান না থাকে;
- উল্লেখ সততা. এটা বোঝা যায় যে বিদেশী কী মানটি মূল সত্তার জন্য টেবিলের সারির একটির প্রাথমিক কীতে উপস্থিত থাকতে হবে;
- ব্যবসায়িক নিয়ম দ্বারা আরোপিত বিধিনিষেধ। উদাহরণস্বরূপ, BANK প্রকল্পের ক্ষেত্রে, একটি নিয়ম গৃহীত হতে পারে যা ক্লায়েন্টকে তিনটির বেশি অ্যাকাউন্ট পরিচালনা করতে নিষেধ করে।
সমস্ত প্রতিষ্ঠিত ডেটা অখণ্ডতার সীমাবদ্ধতা সম্পর্কে তথ্য ডেটা অভিধানে স্থাপন করা হয়েছে।
6. লজিক্যাল ডেটা মডেলের চূড়ান্ত সংস্করণ তৈরি এবং ব্যবহারকারীদের সাথে আলোচনা। এই ধাপটি ইআর মডেলের চূড়ান্ত সংস্করণ প্রস্তুত করে, যা লজিক্যাল ডেটা মডেলকে উপস্থাপন করে। মডেল নিজেই এবং আপডেট করা ডকুমেন্টেশন, ডেটা অভিধান এবং রিলেশনাল টেবিল লিঙ্ক স্কিমা সহ, ব্যবহারকারীদের দ্বারা পর্যালোচনা এবং বিশ্লেষণের জন্য উপস্থাপিত হয়, যাদের অবশ্যই নিশ্চিত করতে হবে যে এটি বিষয় এলাকাকে সঠিকভাবে উপস্থাপন করে।
2.3। শারীরিক নকশা
শারীরিক নকশা পর্যায়ের উদ্দেশ্য হল একটি কম্পিউটারের বাহ্যিক মেমরিতে অবস্থিত একটি ডাটাবেসের একটি নির্দিষ্ট বাস্তবায়ন বর্ণনা করা। এটি ডাটা স্টোরেজ স্ট্রাকচার এবং ডাটাবেস ডেটা অ্যাক্সেস করার কার্যকর পদ্ধতির একটি বিবরণ। যৌক্তিক নকশায়, তারা প্রশ্নের উত্তর দেয় - কী করা দরকার এবং শারীরিক নকশায় - এটি কীভাবে করা যায় তা বেছে নেওয়া হয়। শারীরিক নকশা পদ্ধতি নিম্নরূপ.
1. নির্বাচিত DBMS ব্যবহার করে ডাটাবেস টেবিল ডিজাইন করা। মেশিন মিডিয়াতে হোস্ট করা একটি ডাটাবেস তৈরি করতে ব্যবহার করার জন্য একটি রিলেশনাল ডিবিএমএস নির্বাচন করা হয়েছে। টেবিল ডিজাইন করার জন্য এর কার্যকারিতা গভীরভাবে অধ্যয়ন করা হয়। তারপর টেবিলের নকশা এবং ডিবিএমএস পরিবেশে তাদের সংযোগের স্কিম সঞ্চালিত হয়। প্রস্তুত ডাটাবেস প্রকল্প সহগামী ডকুমেন্টেশনে বর্ণিত হয়েছে।
2. নির্বাচিত DBMS এর পরিবেশে ব্যবসায়িক নিয়মের বাস্তবায়ন। সারণীতে তথ্য আপডেট করা ব্যবসার নিয়ম দ্বারা সীমিত হতে পারে। তারা যেভাবে প্রয়োগ করা হয় তা নির্ভর করে নির্বাচিত ডিবিএমএসের উপর। বিষয় এলাকার প্রয়োজনীয়তা বাস্তবায়নের জন্য কিছু সিস্টেম বেশি বৈশিষ্ট্য অফার করে, অন্যরা কম। কিছু সিস্টেমে, ব্যবসার নিয়ম বাস্তবায়নের জন্য কোনো সমর্থন নেই। এই ক্ষেত্রে, অ্যাপ্লিকেশনগুলি তাদের সীমাবদ্ধতা বাস্তবায়নের জন্য তৈরি করা হয়।
ডোমেন ব্যবসার নিয়ম বাস্তবায়নের সাথে সম্পর্কিত সমস্ত সিদ্ধান্তগুলি সহগামী ডকুমেন্টেশনে বিশদভাবে বর্ণনা করা হয়েছে।
3. ডাটাবেসের শারীরিক সংগঠন ডিজাইন করা। এই ধাপটি টেবিলের জন্য সেরা ফাইল সংগঠন নির্বাচন করে। ডিজাইন করা ডাটাবেসে সঞ্চালিত লেনদেনগুলি চিহ্নিত করা হয় এবং তাদের মধ্যে সবচেয়ে গুরুত্বপূর্ণ হাইলাইট করা হয়। লেনদেন থ্রুপুট বিশ্লেষণ করা হয় - একটি নির্দিষ্ট সময়ের ব্যবধানে প্রক্রিয়া করা যেতে পারে এমন লেনদেনের সংখ্যা এবং প্রতিক্রিয়া সময় - একটি লেনদেন সম্পূর্ণ করার জন্য প্রয়োজনীয় সময়ের সময়কাল। তারা লেনদেন থ্রুপুট বৃদ্ধি এবং প্রতিক্রিয়া সময় কমানোর চেষ্টা করে।
এই সূচকগুলির উপর ভিত্তি করে, ডাটাবেসের কার্যকারিতা অপ্টিমাইজ করার সিদ্ধান্ত নেওয়া হয় টেবিলে সূচী নির্ধারণ করে যা ডাটাবেস থেকে ডেটা নির্বাচনের গতি বাড়িয়ে দেয়, বা টেবিলের স্বাভাবিককরণের স্তরের জন্য প্রয়োজনীয়তা হ্রাস করে। তৈরি ডাটাবেস মিটমাট করার জন্য প্রয়োজনীয় ডিস্ক স্থান অনুমান করা হয়। এটাকে কমানোর চেষ্টা করুন।
উপরোক্ত বিষয়ে করা সিদ্ধান্ত নথিভুক্ত করা হয়.
4. একটি ডাটাবেস সুরক্ষা কৌশল উন্নয়ন. ডাটাবেস একটি মূল্যবান কর্পোরেট সম্পদ, এবং এর সুরক্ষার জন্য অনেক মনোযোগ দেওয়া হয়। এটি করার জন্য, ডিজাইনারদের অবশ্যই নির্বাচিত ডিবিএমএস দ্বারা প্রদত্ত সমস্ত সুরক্ষার সম্পূর্ণ এবং স্পষ্ট ধারণা থাকতে হবে।
5. ডাটাবেস কার্যকারিতা পর্যবেক্ষণ এবং এর সমন্বয় সংগঠন। ডাটাবেসের ভৌত প্রকল্প তৈরির পরে, এর কার্যকারিতার ক্রমাগত পর্যবেক্ষণ সংগঠিত হয়। ডাটাবেসের কর্মক্ষমতা স্তর সম্পর্কে ফলাফল তথ্য এটি টিউন করতে ব্যবহার করা হয়. এ জন্য নির্বাচিত ডিবিএমএস-এর মাধ্যমগুলোও জড়িত।
একটি কার্যকরী ডাটাবেসে কোন পরিবর্তন করার সিদ্ধান্ত বিবেচনা করা উচিত এবং পুঙ্খানুপুঙ্খভাবে ওজন করা উচিত।
GO TO FULL VERSION