এই প্রশ্নোত্তর থ্রেড সম্পর্কে আকর্ষণীয় হ'ল আসলে 3 টি প্রশ্ন রয়েছে। প্রত্যেকেই আলাদা আলাদা উত্তর দিয়েছে এবং প্রায় কেউই প্রথমটির উত্তর দেয়নি:
- বন্যের কিছু উপাত্ত কেন সাধারণ করা হয় না ?
- কেন / কখন একটি সাধারণীকরণ করা ডাটাবেসকে অস্বীকৃত করা উচিত ?
- কোন পরিস্থিতিতে প্রথমে স্বাভাবিক হওয়া ক্ষতিকারক বা অপ্রয়োজনীয়?
সতর্কতা পাঠকগণ নোট করবেন যে এগুলি খুব আলাদা প্রশ্ন এবং আমি খুব বেশি বিস্তারিত এড়াতে গিয়ে প্রত্যেকটির আলাদা করে উত্তর দেওয়ার চেষ্টা করব। "অত্যধিক" দ্বারা, আমি বোঝাতে চাইছি যে এটি যথাযথ প্রসঙ্গ বলে মনে হচ্ছে না যা সাধারণীকরণের পক্ষে বা বিপক্ষে বিভিন্ন যুক্তির যোগ্যতা নিয়ে বর্ধিত বিতর্ক চালাচ্ছে; আমি কেবল এই যুক্তিগুলি কী তা ব্যাখ্যা করতে যাচ্ছি, সম্ভবত কয়েকটি গুপ্তচর তালিকাবদ্ধ করুন, এবং দর্শনের আরও নির্দিষ্ট প্রশ্নের জন্য সংরক্ষণ করুন, যদি তারা কখনও আসে তবে।
এছাড়াও, এই উত্তরে আমি ধরে নিচ্ছি যে "নরমালাইজেশন" বলতে "বিসিএনএফ, 3 এনএফ, বা কমপক্ষে 2 এনএফ " বোঝায় , যেহেতু ডিজাইনাররা সাধারণত সাধারনতার যে স্তরটি অর্জন করেন। এটি 4NF বা 5NF ডিজাইন দেখতে বিরল; যদিও তারা অবশ্যই অসম্ভব লক্ষ্য নয়, তারা কেবল তাদের প্রতিনিধিত্বের চেয়ে সম্পর্কের শব্দার্থতত্ত্ব নিয়ে নিজেদের চিন্তিত করে , যার জন্য ডোমেন সম্পর্কে যথেষ্ট বেশি জ্ঞান প্রয়োজন।
সুতরাং, এগিয়ে এবং wardর্ধ্বমুখী:
1. বন্যের কিছু উপাত্ত কেন সাধারণ করা হয় না?
এর উত্তর হতে পারে "কারণ তাদের হওয়া উচিত নয়", তবে ব্যাট হাতে ঠিকই ধরে নেওয়া অনুমান করা বেশ প্রসন্ন-দরিদ্র গোয়েন্দা কাজ। আমরা যদি সর্বদা এই ধারণাটি নিয়ে চালিত থাকি যে আমরা যা হ'ব তা হওয়া উচিত, আমরা সমাজ হিসাবে খুব বেশি অগ্রগতি করব না।
প্রথম স্থানে ডাটাবেসগুলি স্বাভাবিক না হওয়ার আসল কারণগুলি আরও জটিল। এখানে শীর্ষ 5 রয়েছে যা আমি এসেছি:
বিকাশকারী যারা পরিকল্পিত এটা জানেন না বা বুঝতে পারে না কিভাবে স্বাভাবিক করবে। এর দৃ evidence় প্রমাণগুলি অন্যান্য অনেকগুলি সাথে খারাপ নকশার পছন্দগুলির মতো আকারে আসে, যেমন সমস্ত কিছুর জন্য ভারচার কলাম ব্যবহার করা বা অর্থহীন টেবিল এবং কলামের নামগুলির স্প্যাগেটি জগাখিচুড়ি থাকা । এবং আমি আপনাকে আশ্বস্ত করি, আমি "বাস্তব" ডাটাবেসগুলি দেখেছি যা টিডিডাব্লুটিএফ নিবন্ধগুলির মতো যতটা খারাপ।
বিকাশকারী যারা পরিকল্পিত এটা পরোয়া করা হয়নি বা ছিল নীতির উপর নিয়মমাফিককরণ বিরুদ্ধে সক্রিয়ভাবে । দ্রষ্টব্য, আমি এখানে এমন দৃষ্টান্তের কথা বলছি না যেখানে প্রসঙ্গগত বিশ্লেষণের ভিত্তিতে ইচ্ছাকৃত সিদ্ধান্ত গ্রহণের বিষয়টি স্বাভাবিক করা হয়নি, বরং এমন দল বা সংস্থাগুলি যেখানে সাধারণীকরণ আরও কম-বেশি বোঝা যায় তবে কেবল উপেক্ষা করা বা অভ্যাস থেকে দূরে সরে গেছে। আবার আশ্চর্যজনকভাবে সাধারণ।
সফটওয়্যারটি ব্রাউনফিল্ড প্রকল্প হিসাবে / করা হয়েছিল । অনেক পিউরিস্টরা সাধারণীকরণ না করার কারিগরি কারণের চেয়ে এই পুরোপুরি বৈধ ব্যবসাকে উপেক্ষা করেন । কখনও কখনও আপনি স্ক্র্যাচ থেকে নতুন ডেটাবেস ডিজাইন করতে চান না, আপনাকে একটি বিদ্যমান লিগ্যাসি স্কিমাতে বোল্ট করতে হবে, এবং সেই সময়ে স্বাভাবিক করার চেষ্টা করলে খুব বেশি ব্যথা জড়িত হতে পারে। 3 এনএফ একাত্তর অবধি আবিষ্কার হয়নি, এবং কিছু সিস্টেম - বিশেষত আর্থিক / অ্যাকাউন্টিং সিস্টেম - এর শিকড়গুলি তার থেকেও অনেক দূরে ফিরে আসে!
ডাটাবেসটি মূলত স্বাভাবিক ছিল , তবে দীর্ঘ সময় এবং / অথবা একটি বিস্তৃত বিতরণকারী দল নকলের সূক্ষ্ম ফর্মগুলি প্রবর্তন করে এবং সাধারণ ফর্মটি মূলত যা ছিল তার অন্যান্য লঙ্ঘনের সূচনা করে। অন্য কথায়, সাধারণীকরণের ক্ষতি দুর্ঘটনাক্রমে , এবং রিফ্যাক্টরিংয়ে খুব কম সময় ব্যয় করেছিল।
ব্যবসায়ের বিশ্লেষণ বা ডাটাবেস ডিজাইনে কোনও সময় ব্যয় না করা এবং কেবল "এটি সম্পন্ন করুন" এর জন্য ইচ্ছাকৃত ব্যবসায়ের সিদ্ধান্ত নেওয়া হয়েছিল। এটি প্রায়শই একটি মিথ্যা অর্থনীতি হয়ে থাকে এবং শেষ পর্যন্ত প্রযুক্তিগত ofণের এক উত্সাহরূপে পরিণত হয় , তবে কখনও কখনও যুক্তিযুক্ত সিদ্ধান্ত হতে পারে, সেই তথ্যের ভিত্তিতে কমপক্ষে সেই সময়টি জানা ছিল - উদাহরণস্বরূপ, ডাটাবেসটি একটি প্রোটোটাইপ হিসাবে চিহ্নিত হতে পারে তবে শেষ হয়েছিল সময় বাধা বা ব্যবসায়ের পরিবেশের পরিবর্তনের কারণে উত্পাদন ব্যবহারে পদোন্নতি দেওয়া হচ্ছে।
২. কেন / কখন একটি সাধারণীকরণ করা ডাটাবেসকে অস্বীকৃতি জানানো উচিত?
এই আলোচনা প্রায়ই আসে আপ যখন একটি ডাটাবেস হয় দিয়ে শুরু করতে স্বাভাবিক। হয় পারফরম্যান্সটি দুর্বল বা কোয়েরিতে (যোগ দেয়) অনেকগুলি সদৃশ রয়েছে এবং দলটি যথাযথভাবে বা ভুলভাবে অনুভব করে যে তারা বর্তমান নকশার সাথে তারা যতদূর যেতে পেরেছে। এটি লক্ষণীয় যে জেনারালাইজেশন বেশিরভাগ সময় পারফরম্যান্সের উন্নতি করে , এবং যখন নরমালাইজেশন আপনার বিরুদ্ধে কাজ করে বলে মনে হয় তখন অতিরিক্ত যোগদানের অপসারণের জন্য অনেকগুলি বিকল্প রয়েছে, যার মধ্যে বেশিরভাগই কেবল অস্বীকৃত মডেলটিতে পরিবর্তনের চেয়ে কম আক্রমণাত্মক এবং ঝুঁকিপূর্ণ:
সূচকযুক্ত দর্শনগুলি তৈরি করুন যা সর্বাধিক সাধারণ সমস্যার ক্ষেত্রগুলিকে সজ্জিত করে। আধুনিক ডিবিএমএস এগুলি সন্নিবেশযোগ্য বা আপডেটযোগ্য করতে সক্ষম (যেমন এসকিউএল সার্ভার INSTEAD OF
ট্রিগার)) অন্তর্নিহিত সারণী / সূচকগুলিতে এটি ডিএমএলের বিবৃতিতে সামান্য ব্যয়ে আসে তবে সাধারণত আপনার প্রথম চেষ্টা করা উচিত কারণ এটি স্ক্রু করা প্রায় অসম্ভব এবং বজায় রাখার জন্য প্রায় কিছুই খরচ হয় না। অবশ্যই, প্রতিটি ক্যোয়ারিকে সূচিযুক্ত দৃশ্যে রূপান্তরিত করা যায় না - সমষ্টিগত অনুসন্ধানগুলি সবচেয়ে সমস্যাযুক্ত ome যা আমাদের পরবর্তী আইটেমের দিকে নিয়ে যায় ...
ট্রেনারদের দ্বারা স্বয়ংক্রিয়ভাবে আপডেট হওয়া অস্বীকৃত সমষ্টি টেবিলগুলি তৈরি করুন। এই টেবিলগুলি সাধারণ টেবিলগুলি ছাড়াও বিদ্যমান এবং এক ধরণের সিকিউআরএস মডেল তৈরি করে। আর একটি সিকিউআরএস মডেল, আজকাল আরও জনপ্রিয়, ক্যোয়ারী মডেলগুলিকে আপডেট করার জন্য পাব / সাব ব্যবহার করা হয়, যা অ্যাসিনক্রোনির সুবিধা দেয়, যদিও এটি খুব বিরল উদাহরণগুলিতে উপযুক্ত নাও যেখানে ডেটা বাসি করা যায় না।
কখনও কখনও, সূচিযুক্ত ভিউগুলি সম্ভব হয় না, লেনদেনের হার এবং ডেটা ভলিউম গ্রহণযোগ্য পারফরম্যান্স সহ ট্রিগারগুলি স্বীকার করতে খুব বেশি হয় এবং কোয়েরিগুলি অবশ্যই সর্বদা রিয়েলটাইম ডেটা ফেরত দেয়। এই পরিস্থিতিগুলি বিরল - আমি এমন এক ঝুঁকির ঝুঁকি নিয়েছিলাম যে তারা উচ্চ-ফ্রিকোয়েন্সি ট্রেডিং বা আইন প্রয়োগকারী / গোয়েন্দা ডেটাবেসের মতো জিনিসগুলিতে প্রয়োগ করতে পারে - তবে তারা থাকতে পারে। এই ক্ষেত্রে আপনার কাছে আসল টেবিলগুলি অস্বীকার করা ছাড়া সত্যই কোনও বিকল্প নেই।
৩. কোন পরিস্থিতিতে প্রথমদিকে স্বাভাবিক হওয়া ক্ষতিকারক বা অপ্রয়োজনীয়?
বাস্তবে এখানে বেশ কয়েকটি ভাল উদাহরণ রয়েছে:
ডাটাবেসটি যদি কেবল রিপোর্টিং / বিশ্লেষণের জন্য ব্যবহৃত হয় । সাধারণত এটি বোঝায় যে ওলটিপি-র জন্য একটি অতিরিক্ত , সাধারণীকৃত ডাটাবেস ব্যবহৃত হচ্ছে যা পর্যায়ক্রমে ইটিএল বা বার্তাপ্রেরণের মাধ্যমে বিশ্লেষণ ডাটাবেসে সিঙ্ক্রোনাইজ করা হয়।
যখন একটি সাধারণীকরণ করা মডেলটি প্রয়োগ করা হয় তখন ইনকামিং ডেটারগুলির অহেতুক জটিল বিশ্লেষণ প্রয়োজন। এর উদাহরণ হতে পারে এমন একটি সিস্টেম যা ফোনের নম্বরগুলি সংরক্ষণ করতে হবে যা বেশ কয়েকটি বাহ্যিক সিস্টেম বা ডাটাবেস থেকে সংগ্রহ করা হয়। আপনি পারে কল কোড এবং এরিয়া কোড denormalize, কিন্তু আপনি বিভিন্ন সম্ভাব্য ফরম্যাটের, অবৈধ ফোন নম্বর, অসার সংখ্যা (1-800-get জিনিসপত্র) সকলের জন্য অ্যাকাউন্টে আছে চাই, বিভিন্ন লোকেল উল্লেখ না। এটি সাধারণত এটির চেয়ে বেশি ঝামেলা হয় এবং ফোন নম্বরগুলি কেবলমাত্র একটি একক ক্ষেত্রে স্থানান্তরিত হয় যদি না আপনার নিজের নিজের ক্ষেত্রের জন্য এরিয়া কোডের নির্দিষ্ট ব্যবসায়ের প্রয়োজন থাকে।
আপেক্ষিক ডাটাবেস যখন প্রাথমিকভাবে থাকে তখন অতিরিক্ত, অ-সম্পর্কযুক্ত ডাটাবেসের জন্য লেনদেনের সহায়তা সরবরাহ করে। উদাহরণস্বরূপ, আপনি প্রাথমিক ডেটা রেডিস বা মঙ্গোডিবি বা অন্য যে কোনও কিছুতে সংরক্ষণ করা হচ্ছে এমন সময় আপনি কোনও বার্তা সারি হিসাবে সম্পর্কিত ডেটাবেস ব্যবহার করতে পারেন বা কোনও লেনদেন বা কাহিনীর অবস্থান ট্র্যাক করার জন্য। অন্য কথায়, ডেটা হল "নিয়ন্ত্রণের ডেটা"। সাধারণত ডেটা স্বাভাবিক করার কোনও মানে হয় না যা আসলে ব্যবসায়িক ডেটা নয় ।
পরিষেবা-ওরিয়েন্টেড আর্কিটেকচারগুলি যা একটি শারীরিক ডাটাবেস ভাগ করে দেয়। এটি একটি অদ্ভুত এক একটি বিট, কিন্তু একটি সত্য এসওএ যুগ্মভাবে, আপনি হবে মাঝেমধ্যে শারীরিকভাবে সদৃশ কারণ পরিষেবা সরাসরি ক্যোয়ারী একে অপরের ডেটাতে অনুমতি দেওয়া হয় না ডেটা থাকতে হবে। যদি তারা ঘটতে একই শারীরিক ডাটাবেসের ভাগ করা, ডাটা করবে প্রদর্শিত স্বাভাবিক করা হবে না - কিন্তু সাধারণত, প্রত্যেক ব্যক্তির সেবা মালিকানাধীন ডেটা হয় এখনও স্বাভাবিক যদি না অন্য নির্বাপক কারণের এক জায়গায় হয়। উদাহরণস্বরূপ, একটি বিলিং পরিষেবাটি বিল সত্তার মালিক হতে পারে, তবে অ্যাকাউন্টিং পরিষেবাটি বছরের জন্য আয়ের অন্তর্ভুক্ত করার জন্য বিল তারিখ এবং পরিমাণ গ্রহণ ও সঞ্চয় করতে হবে।
আমি নিশ্চিত যে আরও অনেক কারণ রয়েছে যেগুলি আমি তালিকাভুক্ত করিনি; সংক্ষেপে আমি যা পাচ্ছি, তা হ'ল এগুলি বেশ নির্দিষ্ট এবং তারা যখন অনুশীলনে আসবে তখন মোটামুটি স্পষ্ট হবে। ওএলএপি ডাটাবেসগুলি স্টার স্কিমার ব্যবহার করার কথা , এসওএগুলিকে কিছু সদৃশ ইত্যাদি রয়েছে বলে মনে করা হয় যদি আপনি কোনও সুপরিচিত আর্কিটেকচার মডেল নিয়ে কাজ করছেন যা সাধারণীকরণের সাথে সহজভাবে কাজ করে না, তবে আপনি স্বাভাবিক করবেন না; সাধারণত বললে, আর্কিটেকচার মডেল ডেটা মডেলের চেয়ে বেশি অগ্রাধিকার নেয়।
এবং খুব শেষ প্রশ্নের উত্তর দিতে:
অভিজ্ঞ-অভিজ্ঞ বিকাশকারীরা বিপরীতটি বেছে নেওয়ার সময় কী স্থপতি এবং বিশেষজ্ঞরা একটি অস্বীকৃত নকশাকে বেছে নেন? আপনার নকশাটি সাধারণীকরণকে সামনে রেখে শুরু করার বিরুদ্ধে কী যুক্তি রয়েছে?
না, পরিপূর্ন বিএস এটা হয় এছাড়াও BS যে বিশেষজ্ঞদের সবসময় একটি চয়ন সাধারণ নকশা। বিশেষজ্ঞরা কেবল একটি মন্ত্র অনুসরণ করেন না। তারা গবেষণা করে, বিশ্লেষণ করে, আলোচনা করে, স্পষ্ট করে এবং পুনরাবৃত্তি করে এবং তারপরে তারা যে কোনও পদ্ধতিরই তাদের নির্দিষ্ট পরিস্থিতির জন্য সর্বাধিক বোধ তৈরি করে তা চয়ন করে।
3NF বা বিসিএনএফ ডাটাবেস বিশ্লেষণের জন্য সাধারণত একটি ভাল সূচনা পয়েন্ট হয় কারণ এটি চেষ্টা করা হয়েছিল এবং সারা বিশ্বজুড়ে কয়েক হাজার প্রকল্পে সফল প্রমাণিত হয়েছে, তবে আবারও, সি এর অর্থ এই নয় যে আমরা প্রতিটিটিতে স্বয়ংক্রিয়ভাবে সি ব্যবহার করি নতুন প্রকল্প. রিয়েল-ওয়ার্ল্ড পরিস্থিতিতে মডেলটিতে কিছু সংশোধন বা সম্পূর্ণ আলাদা মডেলের ব্যবহারের প্রয়োজন হতে পারে। যতক্ষণ না তুমি তুমি জানো না এ পরিস্থিতি।