ডাটাবেস নরমালাইজেশন মারা গেছে? [বন্ধ]


16

আমাকে পুরানো স্কুল এনেছে - যেখানে আমরা অ্যাপ্লিকেশনটির ব্যবসায়ের স্তর (বা অন্য সব কিছুর জন্য OOAD ব্যবহার করে) আগে ডেটাবেস স্কিমা ডিজাইন করতে শিখেছি। আমি স্কিমার ডিজাইনিং (আইএমএইচও :) এর সাথে বেশ ভাল ছিলাম এবং কেবল অপ্রয়োজনীয় অপ্রয়োজনীয়তা অপসারণের জন্যই স্বাভাবিক করেছি তবে এটির গতি যেখানে প্রভাবিত করেছিল তা নয়, যদি যোগ দেয় কোনও পারফরম্যান্স হিট হয়, তবে অতিরিক্ত কাজটি জায়গায় রেখে দেওয়া হয়েছিল। তবে বেশিরভাগ ক্ষেত্রে তা ছিল না।

রুবির অ্যাক্টিভেকর্ড বা অ্যাক্টিভজেডিবিসি এর মতো কিছু ওআরএম ফ্রেমওয়ার্কের আবির্ভাবের সাথে (এবং আরও কয়েকজন যা আমি মনে করতে পারি না তবে আমি নিশ্চিত যে প্রচুর পরিমাণে আছে) মনে হয় তারা প্রতিটি টেবিলের জন্য একটি সার্গেট কী রাখা পছন্দ করেন যদিও কারও কাছে প্রাথমিক কী রয়েছে যেমন 'ইমেল' - সরাসরি 2NF ভঙ্গ করছে। ঠিক আছে, আমি খুব বেশি বুঝতে পারি না, তবে এই আমার কিছুটা ওআরএম (বা প্রোগ্রামার) 1-1 বা 1-0 | 1 (যেমন 1 থেকে 0 বা 1) স্বীকৃতি দেয় না তখন তা আমার স্নায়ুগুলিতে পড়ে (প্রায়)। তারা দৃp় প্রতিজ্ঞা করে যে এটি একটি বড় টেবিল হিসাবে সবকিছুই থাকা ভাল, যদি এটির একটি টন থাকে তবে nulls "আজকের সিস্টেমগুলি এটি পরিচালনা করতে পারে" মন্তব্যটি আমি প্রায়শই শুনেছি is

আমি একমত যে মেমরির প্রতিবন্ধকতাগুলি সাধারণীকরণের সাথে সরাসরি সম্পর্কযুক্ত ছিল (এর অন্যান্য সুবিধাগুলিও রয়েছে :) তবে সস্তার মেমোরি এবং কোয়াড-কোর মেশিনগুলির সাথে আজকের সময়ে ডিবি সাধারণীকরণের ধারণাটি কেবল পাঠ্যপুস্তকেই রেখে গেছে? ডিবিএ হিসাবে আপনি এখনও 3NF (বিসিএনএফ না হলে) এ স্বাভাবিককরণের অনুশীলন করেন? এটা কোন ব্যাপার? "নোংরা স্কিমা" ডিজাইন কি উত্পাদন সিস্টেমের জন্য ভাল? এখনও যদি এটি প্রাসঙ্গিক হয় তবে কীভাবে একজনকে "সাধারণ" করার জন্য মামলাটি করা উচিত।

( দ্রষ্টব্য: আমি ডেটাওয়ারহাউসের তারকারা / স্নোফ্লেক স্কিমার কথা বলছি না যার নকশার অংশ / প্রয়োজন হিসাবে অতিরিক্ত কাজ আছে তবে স্ট্যাকএক্সচেঞ্জের মতো ব্যাকএন্ড ডাটাবেসযুক্ত বাণিজ্যিক ব্যবস্থা রয়েছে)

উত্তর:


17

সাধারণকরণের একটি কারণ হ'ল ডেটা সংশোধন
ব্যঙ্গগুলি অপসারণ করা ওআরএমগুলি সাধারণত এটি সমর্থন করে না।

আমার কাছে হাইবারনেট-ডিজাইন করা ডাটাবেসের অনেকগুলি উদাহরণ রয়েছে যা এই নীতিটি ভঙ্গ করে:

  • ফুলে উঠেছে (কয়েক মিলিয়ন সারিতে স্ট্রিং পুনরাবৃত্তি হয়েছে)
  • কোন সারণী নেই (উপরে দেখুন)
  • কোনও ডিআরআই নেই (সীমাবদ্ধতা, কীগুলি)
  • বার্চ ক্লাস্টার ইনডেক্স
  • অপ্রয়োজনীয় লিঙ্ক টেবিলগুলি (উদাহরণস্বরূপ 1..0: 1 টি প্রয়োগ করা হবে যখন একটি অযোগ্য এফকে কলাম যথেষ্ট হবে)

সবচেয়ে খারাপ আমি দেখেছি 1TB মাইএসকিউএল ডাটাবেস যা সম্ভবত 75-80% এর চেয়ে বড় ছিল

আমি আরও পরামর্শ দিয়েছিলাম যে "আজকের সিস্টেমগুলি এটি পরিচালনা করতে পারে" এই বিবৃতিটি বেশিরভাগ মিকি মাউস সিস্টেমের ক্ষেত্রে সত্য। আপনি স্কেল হিসাবে, আজকের সিস্টেমগুলি না।

উপরের আমার উদাহরণে, রিফ্যাক্টর বা কীগুলি পরিবর্তন করতে বা ডেটা ফিক্স করার কোনও সন্ধান ছিল না: কেবল ডাটাবেস বৃদ্ধির হার এবং এর উপরে একটি অর্থবহ ডিডাব্লু নির্মাণে অক্ষমতা সম্পর্কে অভিযোগ করুন


13

দেখে মনে হচ্ছে যে তারা প্রতিটি টেবিলের জন্য একটি সার্গেট কী থাকা পছন্দ করে যদিও কারও কাছে 'ইমেল' - এর মতো প্রাথমিক কী থাকলেও 2NF একেবারে ভেঙে যায়।

সারোগেট কীগুলি 2NF ভাঙবে না। 2 এনএফ বলছে "যদি কোনও কলামটি বহুমূল্য কীটির কেবলমাত্র অংশের উপর নির্ভরশীল হয়, তবে কলামটি আলাদা টেবিলে সরান" "

তারা দৃp় প্রতিজ্ঞা করে যে এটি একটি বড় টেবিল হিসাবে সবকিছু আছে কেবল এটি ভাল যদি না এটি যদি এক টন নাল থাকে

সাধারণকরণের নিয়ম যতক্ষণ অনুসরণ করা হয় ততক্ষণ এক টেবিলের বেশ কয়েকটি কলাম থাকা বৈধ। যদি আপনি এসকিউএল এবং সাধারণকরণের সুবিধাগুলি তুলতে চান তবে বিশ্লেষণ ছাড়াই সারণীগুলিকে একীভূত করা ঠিক নয়।

আমি সম্মত হচ্ছি যে স্মৃতিবদ্ধতাগুলি সাধারণীকরণের সাথে প্রত্যক্ষ সম্পর্ক স্থাপন করে Re

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

সাধারণ উদাহরণ: বলুন যে আপনি বিদ্যালয়ের তথ্যটি বজায় রেখেছেন:

রেক 1: নর্থ রিজ হাই স্কুল, ক্যালিফোর্নিয়া, মার্কিন যুক্তরাষ্ট্র

আরসি ২: দক্ষিণ টরন্টো ব্র্যাভস হাই স্কুল, অন্টারিও, কানাডা

যদি আপনি আপনার সিস্টেমটিকে অন্টারিও কোথায় জিজ্ঞাসা করেন তবে আপনি এটি কানাডায় খুঁজে পেতে পারেন। কয়েক দিন পরে আপনি ২ য় সারিটি মুছুন এবং সিস্টেমকে একই প্রশ্ন জিজ্ঞাসা করুন এবং আপনি কিছুই পান না। এই উদাহরণস্বরূপ, কোন ডিস্ক কত ডিস্ক স্পেস বা মেমরি বা সিপিইউ, আপনি উত্তর পাবেন না।

এটি হ'ল এক বিপরীতমুখী সম্পর্ককে প্রতিরোধে সহায়তা করে।

সম্পাদনা করুন: নীচের মন্তব্য অনুসারে টরন্টো শব্দটি অন্টারিওয়ে পরিবর্তন করেছেন।


1
মন্তব্যগুলি বর্ধিত আলোচনার জন্য নয়; এই কথোপকথন চ্যাটে সরানো হয়েছে ।
পল হোয়াইট পুনর্নির্মাণ মনিকা

12

যত বেশি জিনিস পরিবর্তন হয় তত বেশি তারা একই থাকে। সর্বদা অলস বিকাশকারীরা রয়েছেন যারা কোণগুলি কাটেন বা কেবল জানেন না বা সেরা অনুশীলনগুলি অনুসরণ করতে চান। ছোট অ্যাপ্লিকেশনগুলিতে তারা এগুলি থেকে দূরে সরে যেতে পারে of

এটি প্রথম দিকে আরডিবিএমএসে কোবল-অনুপ্রাণিত ডেটা স্ট্রাকচারগুলিতে জ্যামিং করত, বা Bশ্বর-ভয়ঙ্কর গণ্ডগোল যা ডিবেস ছিল। এখন এটি ওআরএম এবং "কোড-ফার্স্ট"। শেষ পর্যন্ত, আপনি যা চাইছেন এবং কী করা উচিত তা নিয়ে কঠোর চিন্তা না করে "ব্যর্থ" না হয়ে কোনও কাজের ব্যবস্থা পাওয়ার রুপালি বুলেটটি সন্ধান করার চেষ্টা করা লোকগুলির এই সমস্ত উপায়। তাড়াহুড়ো করা সবসময়ই একটি সমস্যা এবং সর্বদা একটি সমস্যা হয়ে থাকবে।

যাদের সঠিক বুদ্ধি (এবং সৌভাগ্য) রয়েছে তারা সঠিকভাবে ডিজাইনের জন্য সময় নেওয়ার জন্য, ডেটা মডেলটি সর্বদা শুরু করার পক্ষে সবচেয়ে যুক্তিসঙ্গত জায়গা হবে। ডাটাবেসে যা যায় তা হ'ল জিনিসগুলি (স্পষ্ট এবং অদৃশ্য) যা আপনার ব্যবসায়ের যত্ন নেয় is আপনার ব্যবসা কীভাবে আপনার ব্যবসা পরিচালনা করে তার চেয়ে দ্রুত পরিবর্তনের বিষয়ে কী চিন্তা করে। এ কারণেই সাধারণত আপনার কোডের তুলনায় আপনার ডাটাবেস অনেক বেশি স্থিতিশীল।

ডাটাবেস হ'ল যে কোনও সিস্টেমের সঠিক ভিত্তি এবং আপনার ভিত্তি সঠিকভাবে স্থাপন করতে সময় নেওয়া অনিবার্যভাবে আপনাকে দীর্ঘমেয়াদে উপকৃত করবে। এর অর্থ হ'ল যে কোনও ওলটিপি টাইপ অ্যাপ্লিকেশনের জন্য স্বাভাবিককরণ সর্বদা একটি গুরুত্বপূর্ণ, দরকারী পদক্ষেপ।


9

আমি সম্মত হই যে স্মৃতিশক্তিগুলির প্রতিবন্ধকতাগুলি সাধারণীকরণের সাথে সরাসরি সম্পর্ক স্থাপন করে ...

স্মৃতি সীমাবদ্ধতা এখনও গুরুত্বপূর্ণ। পরিমাণ কোনও সমস্যা নয়, গতি।

  • সিপিইউগুলি এই মুহুর্তে দ্রুততর কিছু পাচ্ছে না (আমরা আরও বেশি কোর পাচ্ছি, প্রতি সেকেন্ডে চক্র নয়)
  • আধুনিক সিপিইউ আর্কিটেকচারগুলি প্রতিটি প্রসেসরের ( NUMA ) জন্য পৃথক মেমরি সরবরাহ করে গতির সীমাবদ্ধতা কাটিয়ে উঠার চেষ্টা করে ।
  • অন ​​ডাই ক্যাশে আকারগুলি মেমরির তুলনায় তুলনামূলক হারে বাড়ছে না।
  • মেমোরি থ্রুটপুট বেশিরভাগ লোকেরা প্রত্যাশা করে না। কিউপিআই 25 জিবি / সেকেন্ডের অঞ্চলে।

এই গ্রাউন্ডের কিছুটি কভারে আচ্ছাদিত হয়েছিল কখন INT এর উপরে TINYINT ব্যবহার করবেন? যা আপনি দরকারী মনে হতে পারে। আমি এসকিউএলএকেট টিম থেকে @ থমাসকেজার ( ব্লগ ) এর অ্যান্টিকগুলি অনুসরণ করার পরামর্শ দিচ্ছি , কারণ তারা ডেটাবেস কার্য সম্পাদনের তীক্ষ্ণ প্রান্তে রয়েছে। এক্সট্রিম ডিডাব্লু স্কেলের রিলেশনাল মডেলিংয়ের সিপিইউ ক্যাশস এবং মেমরি অ্যাক্সেস প্যাটার্নসের প্রভাব এবং এসকিউবিবিটস উপস্থাপনা সম্পর্কিত সাম্প্রতিক পোস্টটি ভাল উদাহরণ।


2

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

এটি এখনও যে বিতর্ক আপনি সময় দক্ষতা চান বা আপনি স্থান দক্ষতা চান। রিলেশনাল ডাটাবেস তত্ত্বটি যে সময়ে নিয়ে আসে, ডিস্কের সঞ্চয়স্থান ব্যয়বহুল, লোকে স্পষ্টতই এ জন্য এত বেশি অর্থ ব্যয় করতে চায় না, এ কারণেই সেই সময়ে সম্পর্কের মধ্যে থাকা ডাটাবেসগুলি হ'ল প্রতিকূলতার মাঝে দৃ firm়ভাবে দাঁড়িয়ে

এখনকার দিনে জিনিসগুলি বেশ আলাদা, স্টোরেজ খুব সস্তা। সুতরাং স্পষ্টতই আমরা পুরানো দিনের তুলনায় আরও বেশি বাড়াবাড়ি সহ্য করতে পারি, এটিই কেন বিরাট টেবিলটি উপস্থিত হয়েছিল appeared আরও সময়ের দক্ষতা সন্ধান করার জন্য, স্থান দক্ষতা ত্যাগ করতে হবে।

তবে, বিগ-টেবিল পদ্ধতির গল্পের শেষ নেই, এটি এখনও সময় এবং স্থানের মধ্যে ভারসাম্য রয়েছে, পিবি ভলিউমের ডেটা পরিচালনার ক্ষেত্রে, কিছু বিকাশকারীও স্থান দক্ষতার দিকে ফিরে ভারসাম্য খুঁজতে শুরু করেছিলেন, সে কারণেই সেখানে বড়-টেবিলের কাঠামোর মতো কিছু ডেটা স্বাভাবিক করার জন্য কাজ করা হয়।

এক কথায়, স্বাভাবিককরণের পদ্ধতিটি অবশ্যই মারা যায় না, তবে পুরানো দিনের তুলনায় এটি অবশ্যই উপেক্ষা করা হয়।


0

সিজে তারিখটি আপনার প্রশ্নের উত্তর এখানে দেয় - নরমালাইজেশন (প্রিলিম) ভিডিও বিনামূল্যে।

http://shop.oreilly.com/product/0636920025900.do

সংক্ষিপ্ত উত্তর: নরমালাইজেশন হল জিনিসগুলি করার গাণিতিকভাবে সঠিক উপায়। আপনি যদি সঠিকভাবে স্বাভাবিক না করেন তবে আপনার ডেটা মডেলটি কেবল ভুল simply

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.