ডাটাবেস ডিজাইন করা কি প্রোগ্রামারদের কাজ?


16

আমি গত ছয় বছর ধরে একজন প্রোগ্রামার হয়েছি। আমার পুরো ক্যারিয়ার জুড়ে, আমি অনেক ওয়েব অ্যাপ্লিকেশনগুলিতে কাজ করেছি।

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

তবে প্রোগ্রামার হিসাবে আমরা কি নতুন অ্যাপ্লিকেশন তৈরি করতে হবে যেখানে ডেটা এত গুরুত্বপূর্ণ এবং জটিল ডেটা মডেলটির সাথে অগোছালো প্রয়োজনীয়তা আছে যখন আমরা শুরু থেকেই পুরো ডাটাবেসটি তৈরি করার কথা?

এটি কোনও বিশেষজ্ঞের দ্বারা সম্পন্ন করা কি অ্যাপ এবং সংস্থার পক্ষে সবচেয়ে ভাল নয়?

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


2
উত্তরটি হল হ্যাঁ. এখানে সঠিক উত্তরটি কি আপনার পরিচালনার মনোভাব পরিবর্তন করতে সহায়তা করবে? আমি তাই মনে করি না. এবং অন্যদিকে, এটি হওয়া খুব ভাল অভিজ্ঞতা হবে। এটি কেন ডেটা স্কিমা ডিজাইনের চেষ্টা করবেন না?
এমিনিমেেন্স

9
"ডিবি বিশেষজ্ঞ" এবং "প্রোগ্রামার" পারস্পরিক একচেটিয়া নয়। আপনি একটি বিশেষজ্ঞ ডাটাবেস ডিজাইন করতে চাইবেন। যে বিশেষজ্ঞ একটি প্রোগ্রামার হতে পারে।
লর্ড টাইডাস

10
কীভাবে ঘোড়া চালানো যায় তা জেনে সৈনিক হিসাবে কাজ করা কি আমার কাজ? এটি প্রশিক্ষণের অংশ হতে পারে বা নাও হতে পারে, তবে যদি কোনও কারণে আপনার বেঁচে থাকা ঘোড়ার উপর নির্ভর করে, তবে উত্তরটি সুস্পষ্ট। যদি আপনার কাজের বিবরণ পরিবর্তন হয়, অবাক হয় তবে সম্ভবত অন্য কোথাও তাকান। আমি অন্যের উপর নির্ভর করতে পছন্দ করি না বলে ব্যক্তিগতভাবে আমি এই ডিবি দক্ষতাগুলি গ্রহণ করব।
চাকরি 15

@Job এটা ভাল :) বলেন না পারে
Songo

উত্তর:


32

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

যদিও ডিবি ডিজাইনটি কোনও অ্যাপ্লিকেশনের একটি দুর্দান্ত কেন্দ্রীয় অংশ, অন্যান্য কেন্দ্রীয় অংশগুলির চেয়ে অনেক বেশি "নির্ভর করে" ঠিক করা অন্য কোন গুরুত্বপূর্ণ অংশের উপর নির্ভর করে on

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

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


আপনি যখন আমাকে ডাটাবেস ডিজাইনের কথা বলতে চান তখন ডিবিএ এবং ডেটাবেস বিকাশকারীদের মধ্যে পার্থক্য বলতে পারেন?
সানগো

@ সাঙ্গো: আইএমও-তে কোনও পার্থক্য করা উচিত নয়।
মাইকেল বর্গওয়ার্ট

1
সত্যি? আমি সবসময় ভেবেছিলাম যে একটি ডিবিএ ডেটাবেস চালানো এবং এটি টিউন করা সম্পর্কে আরও বেশি যখন ডেটাবেস বিকাশকারী ডেটাবেস মডেলিং এবং ডিজাইন সম্পর্কে বেশি উদ্বিগ্ন!
সানগো

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

1
@ কোড ওয়ার্কস: তারা অবশ্যই আলাদা, কিন্তু আইএমও এই ধরণের অত্যধিক বিশেষায়িত হওয়া জড়িত একটি সাংগঠনিক প্রতিষেধক, কারণ এটি কেবল তাদের বিশেষত্ব জানে এমন লোকদের মধ্যে সহযোগিতা করে যা খুব সমস্যাযুক্ত।
মাইকেল বর্গওয়ার্ট

4

প্রোগ্রামারদের পক্ষে ডাটাবেস তৈরি করা সাধারণ। খুবই প্রচলিত. দুর্ভাগ্যক্রমে অনেক প্রোগ্রামারদের ডিবি নিয়ে অভিজ্ঞতা নেই। তারা কীভাবে বড় ডেটা, ডেটা মার্টের ধারণা, স্টার স্কিমা ইত্যাদির বিরুদ্ধে কীভাবে রিপোর্ট করবেন বুঝতে পারে না Some

একজন ব্যক্তির যদি দক্ষ পর্যায়ে সমস্ত কিছু করার দক্ষতা থাকে তবে এটি খুব ভাল পণ্য তৈরি করে। এক গুণমানের সেনা 10 গুণমানের গুণমানের সাথে সময়ের একটি ভগ্নাংশে 10 জন দল যা করতে পারে তা করতে পারে। অত্যুক্তি নয়।

প্রোগ্রামার এটি করা (সবচেয়ে কম লোক) করার পক্ষে সবচেয়ে ভাল আগ্রহী, ধরে নিয়ে প্রোগ্রামার জানে যে সে কী করছে। অবশ্যই এখানে উল্লেখ করতে হাজার হাজার ব্যর্থতা রয়েছে।


আমি আমার সমস্ত ছোট দলগুলিতে এটি অনেক ঘটতে দেখছি। সামান্য ডিবি অভিজ্ঞতার সাথে বিকাশকারীরা তাদের কোডের আওতায় (পৃষ্ঠায় এত শক্ত নয়) এবং টিউন (অনেক শক্ত) ডাটাবেসগুলি আশা করবেন। সর্বদা আশা করি আমার ডিসকাউন্টে আমি একটি ডিবিএ করতে পারতাম।
রিগ

1
"অত্যুক্তি নয়।" এটি হ'ল যদি আপনি এই দাবিটিকে কোনওভাবে যোগ্যতা অর্জন করতে না পারেন।
বুরহান আলী

4

এটি একটি আকর্ষণীয় প্রশ্ন - একটি দৃ argument় যুক্তি রয়েছে যে বেশিরভাগ শালীন বিকাশকারীদের একটি সম্পর্কিত ডেটাবেস সঠিকভাবে কীভাবে গঠন করা উচিত তা বোঝা উচিত, তাদের বলা উচিত যে তারা একটি সাধারণীকরণের স্কিমা উত্পাদন করতে সক্ষম হতে হবে - এবং অভিজ্ঞতা এবং সাধারণ নিদর্শনগুলির ভিত্তিতে - যুক্তিসঙ্গত করতে কীভাবে ডেটা সংরক্ষণ করা উচিত সে সম্পর্কে সিদ্ধান্ত (আমার কাছে এটি বেশিরভাগ স্বতঃস্ফূর্ত, তবে আমি জানি যে সবাই এটি সেভাবে দেখে না)।

তদুপরি, আপনি যদি সত্ত্বা ফ্রেমওয়ার্ক কোড-প্রথমে লক্ষ্য করেন যা প্রস্তাব দেয় যে নিম্ন স্তরের ডেটা মডেল তৈরি করতে একই চিন্তাটি একটি যুক্তিসঙ্গত স্কিমা তৈরি করবে - বা কমপক্ষে একটিতে ইঙ্গিত।

সুতরাং না, আমি বিশেষত মনে করি না যে আপনার একটি ডেটাবেস স্কিমা ডিজাইন করার জন্য একটি ডাটাবেস বিশেষজ্ঞের প্রয়োজন - কমপক্ষে ছোট এবং মাঝারি আকারের ডাটাবেসগুলির জন্য নয় (যা আমি কাজ করেছি এমন জিনিসগুলি)।

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

একটি ভাল প্রোগ্রামার দক্ষতার একটি বিবিধ পোর্টফোলিও আনতে হবে - একটি [পছন্দসই সন্নিবেশ লোগেজ] কোডারের চেয়ে বেশি হওয়া উচিত এবং আমি সেই পোর্টফোলিওটিতে ডাটাবেসের বোঝাপড়া অন্তর্ভুক্ত করব।


4

আমি মনে করি যুক্তিসঙ্গত নন-জুনিয়র প্রোগ্রামারদের জন্য একটি যুক্তিসঙ্গত সম্পর্কিত ডেটাবেস ডিজাইন করার ক্ষমতা মূলত একটি প্রয়োজনীয়তা।

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


1
ডেটা বেস প্রশাসকগণ অগত্যা ডেটা বিশ্লেষক নন। এটি একটি ডেটাবেস টিউন করতে এবং যথাক্রমে রিলেশনাল ডেটা স্বাভাবিক করার জন্য বিভিন্ন দক্ষতার সেট প্রয়োজন।
গিলবার্ট লে ব্ল্যাঙ্ক

1

আমি এখানে দুটি প্রশ্ন দেখছি:

  • ডাটাবেস বিকাশকারীদের মডেল ব্যবসায় যুক্তি যুক্ত করা উচিত?
  • আমি কীভাবে ডেটাবেজে ডেটা চালিয়ে যেতে জানি?

ব্যবসায় যুক্তি

  • ব্যবসায়িক যুক্তি একটি ডাটাবেসে বাস করে না। এটি একটি ধারণাগত মডেল যা অবশ্যই আপনার সিস্টেমের মধ্যে অন্যান্য স্তরগুলির চেয়ে স্বতন্ত্র।

  • আপনি সর্বদা একটি ডাটাবেসকে অন্যের সাথে প্রতিস্থাপন করতে পারেন, বা আপনি সম্ভাব্য কার্য সম্পাদন সমস্যাগুলি সমাধান করার জন্য কোনও নোএসকিউএল সমাধান ব্যবহার করার সিদ্ধান্ত নিতে পারেন।

  • মডেলিং প্রক্রিয়া চলাকালীন ডেটাবেস বিকাশকারীরা জড়িত থাকতে পারে, তবে সাধারণত এটি কোনও সমস্যা ডোমেনের সম্পূর্ণ বোঝার লোকদের দ্বারা করা হয়। আমাদের সংস্থায় এটি সার্ভার পার্শ্ব বিকাশকারীরা করে।

  • অনেকে মনে করেন যে ডাটাবেস আপনার আবেদনের একটি ভিত্তি। দুর্বল ভিত্তি তৈরি করুন, এবং সিস্টেমটি পড়ে যাবে। আমি এর সাথে একমত নই। আমি স্টোরেজ মিডিয়াম হিসাবে ডেটাবেস দেখতে পাই যা সর্বদা প্রতিস্থাপন করা যায়।

উপস্থিত তথ্য

  • এসকিউএল এবং নোএসকিউএল সমাধান সহ বিভিন্ন স্টোরেজ মিডিয়ামগুলিতে কীভাবে ডেটা বজায় রাখা যায় তা আপনার জানা উচিত।

  • আপনি যে সিস্টেমে কাজ করছেন তার আকারের সাথে প্রয়োজনীয় দক্ষতার স্তর পৃথক হবে।

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

সংক্ষেপ:

  • ডোমেন মডেল আপনার সিস্টেমের একটি ভিত্তি, ডাটাবেস নয়।

  • আপনি যদি অপেক্ষাকৃত ছোট প্রকল্পে একটি ছোট সংস্থার হয়ে কাজ করেন তবে আপনার সম্ভবত ডাটাবেসটি নিজেই ডিজাইন করা উচিত।

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

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