ডাটাবেস কলামগুলি নকল করার বিরুদ্ধে আমি কীভাবে দৃinc়তার সাথে তর্ক করতে পারি?


47

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

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

আমার কাছে একটি ডেটা মডেল পরিষ্কার থাকার গুরুত্ব ঠিক তাই আমি এটি সম্পর্কে ভালভাবে ভাবতে পারি। অযথা জটিলতা হ'ল আমার সীমিত জ্ঞানীয় প্রক্রিয়াকরণের সময় নষ্ট করা। এটি একটি পদ্ধতিগত সমস্যা। লেখার সাথে যোগ দিতে স্বাচ্ছন্দ্যবোধ না করা একটি স্বীকৃত দক্ষতার সমস্যা issue আমি অগত্যা ফিরে গিয়ে স্কিমা পরিবর্তন করার পক্ষে পরামর্শ চাই না, তবে আমি এই ধরণের সদৃশতার সাথে দৃ conv়তার সাথে সমস্যাগুলি প্রকাশ করতে সক্ষম হতে চাই।


2
"লেখায় যোগ দিতে স্বাচ্ছন্দ্য বোধ করবেন না" এর অর্থ কী? তারা কীভাবে তা ব্যাখ্যা করবে?
স্ক্রিপ্টিন

9
এই লোকেরা কি আপনার জন্য কাজ করে? আপনি কি তাদের সুপারভাইজার? আপনার বেশিরভাগ ন্যায়সঙ্গততা এখানে পাওয়া যাবে: en.wikedia.org/wiki/Database_normalization । হ্যাঁ, যোগদানের ক্ষেত্রে তাদের আরও ভাল হওয়া দরকার।
রবার্ট হার্ভে

1
সাধারণকরণ কেন বাঞ্ছনীয় সে বিষয়ে আপনি কি সাহিত্যের সন্ধান করেছেন?
নাথান টগি

17
অভ্যন্তরীণভাবে লেখাগুলি কোয়েরিগুলি এত সহজ করে তোলে এমন দর্শনগুলি যুক্ত করবেন না? আপনি বিকল্প হিসাবে তাদের পরামর্শ দিতে পারে।
কোডসইনচাওস

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

উত্তর:


128

আপনার অপারেশনাল ডাটাবেসটিকে অত্যন্ত স্বাভাবিককরণ করা উচিত, যাতে অস্বাভাবিকতা কমে যায় ।

বিশ্লেষণকে সহজ করার জন্য আপনার বিশ্লেষণযোগ্য ডাটাবেস (গুদাম) অত্যন্ত অস্বীকৃত হওয়া উচিত।

আপনার যদি পৃথক বিশ্লেষণী ডেটাবেস না থাকে, আপনার কিছু উচ্চতর অস্বীকৃত [বস্তুগত] মতামত তৈরি করা উচিত।

আপনি যদি সিনিয়র ব্যবসায়িক বিশ্লেষক / পরিচালকদের একটি সাধারণ বিশ্লেষণের জন্য প্রচুর যোগদানের কথা বলেন, ভাল, আপনি বরখাস্ত হতে পারেন।

চতুর তথ্য গুদাম ডিজাইন একটি ভাল বই

আমার দ্রুত এন 'নোংরা ডেটা গুদাম টিপস এখানে দেখুন


9
এটি সঠিক পথে।
নিট

6
+1 ভিউজগুলি ঠিক এটির জন্যই হয়: সাধারণীকৃত ডেটাবেজে একটি অস্বীকৃত দৃশ্যের অনুমতি দেওয়া হয়।
Nzall

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

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

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

57

আমি বুঝতে পেরেছি, কেন যে কেউ প্রতিটি নির্বাচনের জন্য একটি জয় লেখা এড়াতে চায় ।

তবে আপনি একবার যোগদানের সাথে একটি দৃশ্য তৈরি করতে পারেন এবং এটি আপনার অস্বাভাবিক টেবিলের পরিবর্তে ব্যবহার করতে পারেন।

সুতরাং আপনি সাধারণ নির্বাচনের সুবিধার সাথে সাধারণকরণের সুবিধাটি একত্রিত করুন।


12
দর্শনগুলি আপনার বন্ধু। এগুলি উদারভাবে ব্যবহার করুন। এবং পারফরম্যান্সের জন্য, আপনি যদি আরডিবিএমএস তাদের সমর্থন করে তবে আপনি ধাতব দৃষ্টিভঙ্গিও ব্যবহার করতে পারেন।
VH-NZZ

13

যে উত্তরগুলি ইতিমধ্যে উত্সাহিত করা হয়েছে সেগুলি "কীভাবে অনুলিপি এড়ানো যায়" (দর্শনগুলি ব্যবহার করে) তবে কেন তা নয় cover তারা মূলত দেখায় যে কলামগুলির অনুলিপি করা প্রশ্নগুলি আরও সহজ করে দেওয়ার সমস্যার ভুল সমাধান। তবে প্রশ্ন "কেন কেবল কোনও হ্যাকের জন্য কোনও এলোমেলো কলামটি নকল করবেন না?" এখনও দাঁড়িয়ে আছে।

উত্তরটি "মারফি আইনের কারণে"। মারফির আইনতে বলা হয়েছে:

যদি কিছু ভুল হতে পারে তবে তা হবে।

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

এটি কীভাবে ঘটতে পারে তার উদাহরণ হিসাবে, কেবল সত্যটি বিবেচনা করুন যে সদৃশ কলামগুলি যাদু দ্বারা পূর্ণ হয় না; যে কোনও ব্যক্তিকে অবশ্যই সেই কোডটি লিখতে হবে যা মূল সারণীতে সারি তৈরি হওয়ার সাথে সাথে সেগুলিতে মানগুলি সংরক্ষণ করে এবং কারও অবশ্যই কোড লিখতে হবে যা যখনই অরিজিনালগুলি সংশোধিত হয় সেগুলি সেগুলি আপডেট করে রাখে। এটি ডাটাবেসে ডেটা প্রবেশ করে এমন কোডে অযৌক্তিক বোঝা যুক্ত করছে এই বিষয়টি নির্ধারণ করে, (এবং এটি সংজ্ঞা অনুসারে, যে কোনও কোড যা কেবল ডাটাবেসকে জিজ্ঞাসা করে, তার চেয়ে অনেক বেশি গুরুত্বপূর্ণ) কোথাও, কোথাও নির্দিষ্ট পরিস্থিতিতে ভুলতে পারে এই সদৃশটি সম্পাদন করতে। তারপরে, মানগুলি পৃথক হবে। অথবা তারা সদৃশটি সম্পাদন করতে মনে করতে পারে তবে কোনও লেনদেনের মধ্যে নয়, তাই এটি কিছু বিরল দোষের শর্তে বাদ দেওয়া যেতে পারে। তবে এই উদাহরণগুলি লেখার জন্য আমার সত্যিই সময় নষ্ট করার দরকার নেই,যদি এটি ভুল হতে পারে তবে তা হবে।


12

ভাল / খারাপের পরিবর্তে ট্রেড অফের ক্ষেত্রে এটি চিন্তা করা আরও ফলদায়ক হবে। তারা জিজ্ঞাসার ব্যবহারের সহজলভ্যতার সুবিধার জন্য স্বাভাবিককরণের সুবিধাগুলি (উদাহরণস্বরূপ ধারাবাহিকতা) বন্ধ করে দিচ্ছে।

এক পর্যায়ে, ডেটাবেস অকার্যকর হয়ে উঠবে যদি ডেটা মারাত্মকভাবে বেমানান হয়। অন্য চূড়ান্তভাবে, ডাটাবেসগুলি অকার্যকর হবে যদি লোকেদের পক্ষে প্রতিদিন এটির জিজ্ঞাসা করা দরকার যেগুলি তারা গণনা করতে পারে ফলাফল পেতে।

ঝুঁকি এবং ব্যয় হ্রাস করতে আপনি কী করতে পারেন?

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

6

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

অনুসন্ধানের কিছুটা আরও কঠিন পদ্ধতি সম্ভবত সম্ভাব্য ডেটা দুর্নীতির চেয়ে বেশি পছন্দনীয় হতে চলেছে।


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

4
সম্ভবত, তবে এটি সবই ঝুঁকির প্রশ্ন। তারা অনুসন্ধান সহজতর করে তোলে কারণ তারা ডাটাবেস কলুষিত করার ঝুঁকি গ্রহণ করতে ইচ্ছুক?
ওলেকসি

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

বা, এটি অন্য শর্তে বলতে গেলে, কেবলমাত্র সম্পর্কের নিখুঁততার চেয়ে ডেটা অখণ্ডতার আরও অনেক কিছু রয়েছে। সম্পূর্ণরূপে নরমাল ডাটাবেসের সাহায্যে, কেউ এখনও কোনও আপডেট মিসড করলেও আপনি নিখুঁত সম্পর্কযুক্ত অখণ্ডতা বজায় রাখতে পারেন, তবে এটি ভুলভাবে আপডেট হওয়া ডেটাটিকে কোনও কম আবর্জনা তৈরি করে না।
ইলমারি করোনেন

0

অন্যান্য ছেলেরা উপরে যে পরামর্শ দিয়েছে তাতে যুক্ত করতে। এটি একটি ডেটা প্রশাসনের সমস্যা। আপনাকে প্রাসঙ্গিক স্টেকহোল্ডারদের সাথে কাজ করতে হবে: ডেটা নীতি, নীতি এবং নামকরণ কনভেনশন বিকাশ করতে ডেটা আর্কিটেক্ট এবং ডেটা স্টুয়ার্ডস।

ধৈর্য ধরুন এবং পদ্ধতিগতভাবে কাজ করুন। রাতারাতি পরিবর্তন ঘটবে না।


0

ছাড়ো।

সত্যই, আপনি নিছক আলস্যতার কারণে সাধারনীকরণ, ধারাবাহিকতা এবং পাগল বাগগুলির বিরুদ্ধে লড়াই করতে কয়েক মাস ব্যয় করতে পারেন এবং তারপরে প্রস্থান করতে পারেন।

অথবা আপনি কেবল সময় এবং হতাশাকে বাঁচাতে এবং এখনই ছেড়ে দিতে পারেন।

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

সুতরাং আপনি এমন একটি জায়গায় কাজ করা আরও ভাল হতে পারেন যা বোঝা যায় এবং ভাল ইঞ্জিনিয়ারিংয়ের মূল্য দেয়।

শুভকামনা


চিন্তাভাবনা: সম্ভবত তাদের যা দরকার তা দ্বি / ওএলএপি সরঞ্জামগুলি ... http://en.wikedia.org/wiki/Online_analyical_processing

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