ডাটাবেস অখণ্ডতা প্রয়োগ করা


19

বিদেশী কী, চেক সীমাবদ্ধতা ইত্যাদির পরিবর্তে অ্যাপ্লিকেশনটি ডাটাবেস অখণ্ডতা প্রয়োগ করে তা বোধগম্য হতে পারে?

অভ্যন্তরীণ ডাটাবেস সরঞ্জামের মাধ্যমে ডাটাবেস অখণ্ডতা প্রয়োগ না করার জন্য কেউ কতটা পারফরম্যান্সের উন্নতি আশা করতে পারে?

উত্তর:


24

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

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

এবং এর কোনওটিই এই তথ্যের উল্লেখ করে না যে ডাটাবেসে ডেটা অখণ্ডতা আরও ভালভাবে পরিচালনা করা হয় যেহেতু আপনাকে কেবল একবার এটি তৈরি করতে হবে যেখানে আপনি কোডে সমস্ত কাজ করেন, আপনি একাধিক অ্যাপ্লিকেশানের জন্য একাধিক বার এটি করতে হতে পারেন (যদি না আপনি ডিজাইন করেন তবে আপনার ডেটা অ্যাক্সেস স্তরটি সাবধানতার সাথে এবং প্রতিটি অ্যাপ্লিকেশনটিকে একই স্তরের মধ্য দিয়ে যেতে ডিবি অ্যাক্সেসের প্রয়োজন হয়)।

আপনি যদি কোনও সম্পর্কিত সম্পর্কযুক্ত ডাটাবেস সিস্টেম ব্যবহার করেন তবে আমি বলছি কেন এটি সত্যই ব্যবহার করবেন না। আপনার যদি রিলেশনাল ডেটা প্রয়োজন না হয়, হাদুপ বা অন্য কোনও কিছুর সাথে যান।


2
আমি নিজেকে কী ভেবেছিলাম এবং প্রত্যাশা করেছি তার ধারাবাহিকতায় এটি বেশ সুন্দর। আমি জানতাম যে আমার আগের চাকরিতে ডিবিএ এ সম্পর্কে ভুল ছিল, কেবল এটির বিষয়ে একটি স্বাধীন মতামত পেতে চেয়েছিল। ধন্যবাদ!
রেন্যাটস স্টোজকভস

17

অ্যাপ্লিকেশন বিকাশকারীদের অনেক এটি মনে করেন।

আপনি যখন অ্যাপ্লিকেশন কোডে ডেটা অখণ্ডতা অর্পণ করার জন্য প্রলুব্ধ হন, তখন মনে করুন "প্রতিটি প্রোগ্রামার এবং প্রতিটি অ্যাপ্লিকেশন যা এই ডাটাবেসটিকে এখন থেকে শেষ পর্যন্ত অবধি আঘাত করে, প্রতিটি সময় একেবারে সঠিকভাবে পেয়ে যায়" "

মতভেদ কি?


5
+1 টি। মূলত এটি। আপনি একটি ভাল পরীক্ষিত এবং কেন্দ্রীয় সিস্টেম প্রতিস্থাপন টন প্রোগ্রামার মেনে চলতে হবে। প্রত্যেকবার. ঘটবে না - তাই আপনি সময়ের সাথে সাথে খারাপ ডেটা সহ ডাটাবেসগুলি পান।
টমটম

13

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

অনেক দিন চলে গেছে যেখানে ডেটাবেস বোবা ডেটা স্টোর। আরডিবিএমএসের প্রস্তাবিত পাওয়ারটি উত্তোলন করুন।

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


-1। লোকেরা ডাটাবেসে অ্যাপ্লিকেশন যুক্তি যুক্ত করার দিনগুলি অতি দীর্ঘ এবং পুরো স্ট্যাকের অংশ স্কেল করতে ব্যয়বহুল এবং এমসোট - আমার জন্য ডাটাবেসগুলি অ্যাপ্লিকেশন দ্বারা চালিত যুক্তির সাথে একটি ডাম্প স্টোর। যা বলেছেন: রেফারেন্সিয়াল অখণ্ডতা ডাটাবেস স্তরের সততা এবং খুব দরকারী।
টমটম

5
@ টমটম আপনার অ্যাপ্লিকেশনটিতে ডেটা অখণ্ডতার যুক্তিতে পুনর্লিখনের কাজটি পুনরায় করা হচ্ছে যা ইতিমধ্যে আরডিবিএমএসে করা হয়েছে। ডাটাবেসে ডেটা লজিক রাখুন।
থমাস স্ট্রিংগার

@ টমটম - ​​"তাত্ত্বিক অবৈধ ডেটা কখনও ডেটাবেসকে আঘাত করে না, তবে সততা প্রতিরক্ষার এক শেষ লাইন" " একমত। সেই অভিনব এজেএক্স ফর্মটি আপনার শেষ ব্যবহারকারীদের তাদের ইনপুটকে সামনে রেখে বৈধতা দিয়ে অনেক মাথাব্যথা বাঁচাবে। তেমনি, সেই ডাটাবেসের সীমাবদ্ধতাগুলি আপনার ব্যবসায় এবং আপনার প্রকৌশলীদের ঠিক সময়, অর্থ এবং শক্তি হিসাবে খারাপ কোডের পরে সাফ করা হারিয়ে ফেলবে ।
নিক চাম্মাস

6

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

পারফরম্যান্স কতটা প্রত্যাশা করে তা বলা অসম্ভব - প্রতিটি পরিস্থিতি অনন্য (ডেটা ধরণের, নকশা ইত্যাদি)। সত্যিকারের জানার একমাত্র উপায় হ'ল পরীক্ষা করা।


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

3

কিছু সময় আছে যখন প্রতিবন্ধকতাগুলি পথে আসে:

  1. যখন আপনার একক টেবিল উত্তরাধিকার (এসটিআই) ব্যবহার করতে হবে । কল্পনা করুন আপনি ব্যক্তি এবং সংস্থা উভয়কেই বিক্রি করেন। আপনার একটি একক "পার্টি" টেবিলের প্রয়োজন হবে যার সারিটি পৃথক বা একটি org is এসটিআই এর অর্থ আপনার এমন কিছু ক্ষুদ্র ক্ষেত্র দরকার যা শূন্য হওয়া উচিত নয়। ক্লাস টেবিল উত্তরাধিকারী এটি সমাধান করে তবে কিছু ওআরএম এর পক্ষে এটি আরও শক্ত। রুবির অ্যাক্টিভেকর্ড কেবলমাত্র এসটিআই সমর্থন করে, উদাহরণস্বরূপ।

  2. যখন আপনাকে কোনও সত্তার খসড়া সংস্করণগুলি সমর্থন করতে হবে, এটি সম্পূর্ণরূপে বৈধ হবে না। আপনি জসন হিসাবে একটি খসড়া সংরক্ষণ করতে পারেন তবে ক্লায়েন্টের কাছে একই শনাক্তকারীর পুনরায় ব্যবহার করা আরও শক্ত - ধারণা করুন এটি আইডি = 5 দিয়ে সংরক্ষণ করা হয়েছে, বৈধ নয় বলে সম্পাদনা করা হয়েছে এবং ড্রাফটিড = 99 হিসাবে স্বতঃ সংরক্ষণ করা হয়েছে। এক্ষেত্রে আপনার সমস্ত ক্ষেত্র সম্ভবত নলাবদ্ধ হতে হবে।

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