ডাটাবেস স্তরটিতে অ্যাপ্লিকেশন লজিকের বিরুদ্ধে বা যুক্ত করার পক্ষে কী যুক্তি রয়েছে? [বন্ধ]


45

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

ব্যক্তিগতভাবে ডিবাগ করা সহজতর করার জন্য এবং স্তরগুলির দায়িত্বগুলি পৃথক রাখার জন্য আমি অ্যাপ্লিকেশন স্তরে যথাসম্ভব বেশি রাখা পছন্দ করি।

এ সম্পর্কে আপনার মতামতগুলি কী এবং ডাটাবেস স্তরটিতে কোনটি প্রয়োগ করা উচিত?

সম্পাদনা করুন ডিবিএ দৃষ্টিকোণ থেকে, এই প্রশ্নটি dba.se এও আচ্ছাদিত । প্রোগ্রামারস.স ও ডিবিএ.এস-এর ভিন্ন ভিন্ন শ্রোতা এবং পক্ষপাতিত্ব রয়েছে বলে ভবিষ্যতের পাঠকরা তাদের পক্ষে কোনটি সবচেয়ে ভাল কাজ করে তা সিদ্ধান্ত নেওয়ার আগে উভয় জবাবের সেটগুলি পর্যালোচনা করতে চাইতে পারে।


13
আমি আগ্রহী যদি ডেটাবেস স্তরে অ্যাপ লজিক রাখার কোনও প্রবক্তারা সেই অ্যাপ্লিক যুক্তিকে ইউনিট পরীক্ষার পদ্ধতি সরবরাহ করতে পারে।
ক্রিস বালতি

@ ক্রিসবি: ওরাকল-এর জন্য প্লানিট ডটকম
টনি অ্যান্ড্রুজ

10
ব্যবসায়িক যুক্তি, দয়া করে অ্যাপ্লিকেশন যুক্তি নয় - লক্ষ্যটি হওয়া উচিত সমস্যাযুক্ত ডোমেন, প্রযুক্তি পছন্দ নয়!
ফিল লেলো

1
@ ক্রিসবি: আমি বাজি ধরতে পারি যে তারা করতে পারে - ডেটা সহ টেবিলগুলি বসায় (আপনাকে অ্যাপ স্তরে মক ক্লাস তৈরি করতে হবে), তারপরে স্ক্রিপ্ট দিয়ে স্বয়ংক্রিয়ভাবে এসপিকে কল করুন। পুরো জিনিসটি এসকিউএল স্টেটমেন্টগুলির স্ক্রিপ্ট হিসাবে লেখা যেতে পারে, পরিষ্কার হয় এবং এটি যায় সে হিসাবে সেট আপ হয়। 3 ইউনিট পরীক্ষার এসকিউএল সরঞ্জামগুলির জন্য এখানে একটি লিঙ্ক রয়েছে: toadworld.com/BLOGS/tabid/67/EntryId/67/…
gbjbaanb

আমি সম্প্রতি আমার ব্লগে
গাইস

উত্তর:


38

আমার মাথার উপরে, অ্যাপ্লিকেশন স্তরে যুক্তি স্থাপনের সুবিধা Off

  1. পরীক্ষাযোগ্যতা । এটি প্রকৃতপক্ষে এটির নিজের পক্ষে যথেষ্ট কারণ থাকতে হবে।
  2. আরও ভাল কোড কাঠামো । এসকিউএল সহ সঠিক ওও-আর্কিটেকচার অনুসরণ করা খুব কঠিন। এটি সাধারণত কোড বজায় রাখা সহজ করে তোলে।
  3. কোড করা সহজ । আপনি যে কোনও ভাষা ব্যবহার করছেন তাতে যে সমস্ত ভাষা ব্যবহার করা যায় সেগুলির জন্য অ্যাপ্লিকেশন স্তরে কোড করা সাধারণত সহজ।
  4. কোড পুনরায় ব্যবহার । ডাটাবেসে কোড ভাগ করে নেওয়ার চেয়ে লাইব্রেরির সাথে কোড ভাগ করা অনেক সহজ।

5
আমরা কীভাবে অবজেক্টগুলিকে সংশোধন করার সাথে সাথে ফ্রিগিং সোর্স-নিয়ন্ত্রণের ক্ষমতা যুক্ত করতে পারি? হতে পারে এটি কেবল আমার ব্যক্তিগত গ্রিপ ... (হ্যাঁ, আমি সম্ভবত এটি করা যেতে পারে যে উপায়গুলি বাদ দিচ্ছি ...)
jcolebrand

6
Re: 4. দুর্দান্ত! আসুন আমার সোলারিস জাভা অ্যাপ্লিকেশনটিতে সেই ভিবি যুক্তি ব্যবহার করা যাক ... ওহ, স্তব্ধ থাকুন ...
ফিল লেলো

11
ফিল, দুর্দান্ত! আসুন আমার SQL সার্ভার অ্যাপ্লিকেশানে আপনার ওরাকল যুক্তিবিজ্ঞান ব্যবহার করুন ... ওহ, অপেক্ষা করুন ...
ক্রেগ

9
@ ক্রেইগ বাস্তবতা হ'ল সংস্থাগুলি অ্যাপ্লিকেশন বা ভাষাগুলি স্যুইচ করার চেয়ে ডাটাবেস বিক্রেতাকে অনেক কম পরিবর্তন করে। তবে, আমার বক্তব্যটি আরও ছিল যে এটি অ্যাপ্লিকেশন বনাম ডিবি-র কোনও সুবিধা নয়, এখানে ডিবি উচ্চতর নয়; এর উভয়
পক্ষেরই

1
@ জকোলেব্রান্ড - আচ্ছা, আপনি যদি ডেটাবেস ডেভেলপমেন্ট করেন , তবে ভিএস ২০১০ হচ্ছে বোমা bomb আমি আমাদের গ্রুপকে এসএসএমএস থেকে ভিএস-তে উন্নয়নের কাজের জন্য স্থানান্তরিত করছি এবং এই টিডিডি জিনিসটি অবলম্বন করতে দেখছি যা ডেভসের সাথে সমস্ত ক্রোধ। এটি উল্লেখযোগ্য ডাটাবেস বিকাশের কাজ (এবং অবশ্যই এসকিউএল সার্ভারের দিকে বাঁকানো) সহ যে কোনও দোকানের জন্য একটি উপযুক্ত বিনিয়োগ।
নিক চ্যামাস 21

11

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

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


4
"অ্যাপ্লিকেশন কোডের মতোই সোজা ফরোয়ার্ড নয়" কেন নয়?
নিমচিম্পস্কি

@ নিম - যতক্ষণ না আমি এটি ভুল করে চলেছি ততক্ষণ সোজা নিয়ন্ত্রণটি আপনার আইডিইতে সংহত হওয়ার পরে এটি পেতে "সাধারণ সম্পাদনা করুন এবং এটি পরীক্ষা করে নেওয়া হয়েছে" এর চেয়ে ডাটাবেস প্রকল্পগুলি জড়িত।
ChrisF

1
আমি অনুমান করব যে আপনি আপনার ডাটাবেসে সংস্করণ নিয়ন্ত্রণে প্রতিশ্রুতি না দিয়ে পরিবর্তন আনতে পারেন, তবে আপনি কোডের সাথে সত্যই তা করতে পারবেন না ...
জ্যাকো প্রিটোরিয়াস

5
@ জ্যাকো না, তবে আপনি এসসিএম এ না রেখে কোড চালাতে / মুক্তি দিতে পারবেন। স্লোপি রিলিজ ম্যানেজমেন্ট হ'ল ম্যাপ রিলিজ ম্যানেজমেন্ট যা আপনি প্রযুক্তি ব্যবহার করেন।
ফিল লেলো

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

8

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


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

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

5
@ জেফ ও ডিবিএ ডিজাইনের সাথে জড়িত ছিল না কেন? ডিবিএগুলি অন্যান্য বিকাশকারীদের তুলনায় ডাটাবেস অপ্টিমাইজেশন সম্পর্কে আরও অনেক কিছু জানার ঝোঁক রয়েছে এবং এটিকে দলের অংশ হিসাবে বিবেচনা করা উচিত।
ফিল লেলো

8
@ ফিল লেলো: কারণ বেশিরভাগ সফটওয়্যার বিকাশকারীরা অহংকারী কুসু যারা মনে করেন যে তারা নিজেরাই এটি শিখতে পারবেন। এ কারণেই অনেকগুলি ডাটাবেসই জাঙ্কের এই জাতীয় পাইলস।
আমার সঠিক মতামত

2
সুরক্ষিত রাখার জন্য আপনার ডিবি মত সুরক্ষিত ক্ষেত্রটির চারপাশে একটি বেড়া তৈরি করেছে ounds কৃতজ্ঞ!
জেমস অ্যান্ডারসন

7

ফেলে আবেদন ডিবি যুক্তি আমার কাছে একটি খারাপ ধারণা মত শোনাচ্ছে। OTOH ডিবিতে যুক্তি যুক্ত করা যা বিশেষত ডিবি রাষ্ট্র বজায় রাখার অংশ (যেমন ডি-নরমালাইজড টেবিলগুলি আপডেট করার জন্য ট্রিগার / স্প্রোকস) একটি ভিন্ন প্রস্তাব।


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


এই. আপনি চান যে আপনার ডাটাবেসটি নমনীয় হোক। সুতরাং আপনার ডেটার সাথে যুক্ত যুক্তিটি সেখানেই থাকা উচিত।
আরখ

6

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

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

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

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


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

5

লম্বাটে। নীচে সারাংশ দেখুন।

RDBMS

একটি আরডিবিএমএস মানে রিলেশনাল ডাটাবেস ম্যানেজমেন্ট সিস্টেম। এটি একটি আপেক্ষিক ডেটা বেস পরিচালনা করার সিস্টেম। তথ্য সেখানে সংরক্ষণ করা হয়। তথ্যটি. এটি ব্যবসায়ের যুক্তি বলে না।

ব্যবসায়িক প্রক্রিয়া

ব্যবসায়ের যুক্তি বলতে আসলে কী বোঝায়? আমার কাছে, এটি যৌক্তিক পদে ব্যবসায়িক প্রক্রিয়াগুলির বিবরণ।

প্রক্রিয়াগুলি হ'ল সেই ব্যবসায়িক ক্রিয়াকলাপগুলি যা নিয়মিত ঘটে থাকে, পর্যাপ্ত পরিমাণে তারা আর অ্যাড-হক হয় না। এগুলি প্রতিটি ব্যবসায়ের জন্য আলাদা।

আমাকে আমার ব্যবসায়ের ক্যাপ লাগাতে দিন এবং এখানে ব্যবসায়ের অর্থ কী তা বোঝাতে দিন। কারও কারও কাছে এটি চমক হিসাবে আসতে পারে।

ব্যবসায়

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

কুইক ডিটোর: আপনার 2 দিনের মধ্যে 40 মিলিয়ন রিভেট দরকার, আপনি কোনও পেপ্যাল ​​অ্যাকাউন্ট দিয়ে কোনও লোকের কাছ থেকে অর্ডার দিতে যাচ্ছেন না, তার মূল্য আপনার সাধারণ বিক্রেতার চেয়ে কতটা কম দামের বিষয় নয়।

প্রক্রিয়া জ্ঞান

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

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

সুতরাং শেষ পর্যন্ত, এটি অ্যাপ্লিকেশন লজিক যা সফ্টওয়্যারটিতে কোড করে। এবং লোকেরা এটি ডাটাবেসে রাখতে চায়, কারণ ডাটাবেস পরিচালন সিস্টেমের বিক্রেতারা দুর্দান্ত দাবি করেছেন।

অ্যাপ্লিকেশন লজিক

আমি না বলেছি. আমি বলছি অ্যাপ্লিকেশন যুক্তি অ্যাপ্লিকেশন ভিতরে থাকে। ডেটাবেস খুব সাধারণভাবে উপাত্তে যায় এবং তারপরে রিপোর্টিং এবং ড্রিলিং এবং রোলআপিং এবং পাইভোটিং এবং কিউবিংয়ের জন্য ডাটাওয়ারহাউসে ETL'd হয়ে যায়।

উপাত্ত

আমি আরও বলেছি যে ডেটা অ্যাপ্লিকেশনটিকে আউটলাইভ করে, তাই ডেটা স্বাভাবিককরণের প্রচেষ্টা অ্যাপ্লিকেশন নির্দিষ্ট হওয়া উচিত নয়, এমনকি ব্যবসায়-নির্দিষ্টও নয়, বরং ব্যবসায়-সাধারণ হওয়া উচিত। আপনি কি রাষ্ট্রের কোডগুলি সঞ্চয় করেন? আপনার INCITS 38: 2009 ব্যবহার করা উচিত (http://www.census.gov/geo/www/ansi/statetables.html) কারণ এটি ব্যবসায় জুড়ে বহনযোগ্য। এটি একাধিক অ্যাপ্লিকেশনগুলির জন্য ডেটা ম্যানিপুলেট করা সহজ করে তোলে।

NoSQL?

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

আসল কোড

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

ডাটাবেস অবক্ষয়

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

সারাংশ

ডেটা অবশ্যই অ্যাপ্লিকেশনকে আউটলাইভ করবে কারণ ব্যবসায়িক প্রক্রিয়াগুলি অ্যাপ্লিকেশনটিতে লাইভ করে এবং ব্যবসায়িক প্রক্রিয়াগুলি প্রায়শই পরিবর্তিত হয়। ডাটাবেসে ব্যবসায়ের যুক্তি অন্তর্ভুক্ত করা তার দীর্ঘায়ু এবং সামগ্রিক মানের জন্য খারাপ।

বিচারকার্য স্থগিত রাখার আদেশ

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

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

পরে, এটি সম্পর্কে চিন্তা করার পরে

আমার মনে হয় মাঝের স্থলটি একটি এপিআই তৈরি করা হবে এবং সেই এপিআইতে ডেটা প্রবাহকে সামান্য পরিচালনা করতে হবে। আপনি যদি অ্যাপ্লিকেশনগুলিকে সরাসরি টেবিলের সাথে সংযোগ স্থাপনের অনুমতি না দিতে পারেন তবে কমপক্ষে আপনি অ্যাক্সেস প্রক্রিয়াটি আধুনিক ভাষায় করতে পারেন be


5
আমি সত্যই ডাটাবেস অবক্ষয় বিন্দু অনুসরণ করি না; ডাটাবেসে যুক্তি রেখে, আপনাকে কেবলমাত্র এক জায়গায় নিয়ম পরিবর্তন করতে হবে (ডাটাবেস) অনেকগুলি ভাষায় লেখা অনেকগুলি অ্যাপ্লিকেশন নয়। তবে একটি ভাল চিন্তাভাবনা সাড়া জন্য +1।
ফিল লেলো

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

1
ডেটা প্রয়োগের মতোই ভাল। আবর্জনা আবর্জনা বাইরে এবং সমস্ত কি। আপনার কাছে যদি হুম, অ্যাপসটি কম-সুনির্দিষ্ট লোকেরা লিখে থাকেন তবে আবর্জনা সংশোধন করার জন্য আপনি খুব কম ডিবিএ হিসাবে করতে পারবেন।
ক্রিস্টোফার মাহান 15'12

1
ক্রিস্টোফারমাহান, ডেটাবেস ডিজাইনে খারাপ ডেটা রোধ করতে আপনি অনেক কিছুই করতে পারেন।
এইচএলজিইএম

4

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

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

ডিবিএ স্ট্যাক এক্সচেঞ্জের একজন ব্যবহারকারী এটি বলেছেন ...

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

সর্বশেষ 500 ফরচুনে আমি কাজ করেছি এমন অ্যাপ্লিকেশনগুলিতে কমপক্ষে 25 টি ভাষায় লিখিত ছিল তাদের ওলটিপি ডাটাবেস মারছে। Programs প্রোগ্রামগুলির মধ্যে কিছুগুলি 1970 এর দশকে প্রযোজনায় চলে এসেছিল।

... তার বিশ্বাস অনুসরণ করে যে এটি DRY নীতি লঙ্ঘনের ইঙ্গিত দেয়।

ব্যবসায়ের যুক্তির পুনরাবৃত্তি হওয়ার পরিবর্তে, আমি মনে করি এটি ব্যবসায়ের স্তর এবং ডেটা স্তরের মধ্যে দায়িত্বের একটি পৃথক বিভাগ দ্বারা সরবরাহিত নমনীয়তার একটি নিখুঁত উদাহরণ।

তাদের ওএলটিবি ডাটাবেসগুলি কয়েক দশক ধরে 25+ অ্যাপ্লিকেশনগুলিতে নির্ভরযোগ্য এবং দক্ষতার সাথে ডেটা সরবরাহ করে আসছে! এটা আশ্চর্যজনক! (যাওয়ার উপায়!)

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

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


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

3

ডাটাবেস অগ্নিস্টিক অ্যাপ্লিকেশনগুলির ডাটাবেসগুলির বাইরে সমস্ত যুক্তি প্রয়োজন। বিভিন্ন ডেটাবেস সরবরাহকারীদের কোড তৈরি করা এবং বজায় রাখা খুব কঠিন।


3
অ্যাপ্লিকেশন ভিত্তিক যুক্তি সহ অ্যাপ্লিকেশন
অজোনস্টিক

3

একটি ভাল বিকাশ ডাটাবেসে যুক্তিযুক্ত কিছু এবং অ্যাপ্লিকেশনটিতে বেশিরভাগ অংশ রেখে ডেটাবেস অখণ্ডতা এবং গতির প্রয়োজনের মধ্যে একটি ভাল ভারসাম্য রোধ করবে।

একই অ্যাপ্লিকেশনটি বার বার অনেকগুলি অ্যাপ্লিকেশন জুড়ে ব্যবহার করা হবে, তবে সম্ভবত এটি কোনও সঞ্চিত পদ্ধতিতে অন্তর্ভুক্ত।

সারি sertedোকানো এবং আপডেট করা হলে ঘর রক্ষার ক্ষেত্রগুলি সেট করা আছে তা নিশ্চিত করা ডিবিএর দায়িত্ব is একটি ট্রিগার ব্যবহার করা হবে।

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

এটি দলগুলির মধ্যে যোগাযোগের বিষয় এবং প্রতিটি সম্ভাবনার পক্ষে উপকারিতা এবং স্বীকৃতি দেওয়ার বিষয়টি।

আমার মতামত: ডিবি-তে অ্যাপ্লিকেশন যুক্তিটিকে খুব গভীরভাবে তৈরি করবেন না।


2

কিছু ট্রেডিং সিস্টেম মূলত ডেটাবেজে রাখা স্ক্রিপ্টগুলির সাথে বিদ্যমান কার্যকারিতা বাড়ানোর একটি উপায় সরবরাহ করে। এটির সাথে আমার অভিজ্ঞতা বরং নেতিবাচক, কমপক্ষে একটি বহু-ব্যবহারকারী সেটিংয়ে in

আপনি একটি ডাটাবেসে যুক্তি যুক্ত করতে চাইবেন, কারণ আপনি সেই যুক্তিকে সহজেই সংশোধন করতে সক্ষম হতে চাইবেন।

  • আপনি কীভাবে সংস্করণ নিয়ন্ত্রণ করবেন?
    • কোডের ইতিহাস কী? কি পরিবর্তন ছিল? কার দ্বারা?
    • আপনি একই কোড টুকরা পরিবর্তনগুলি কীভাবে পরিচালনা করবেন?
  • আপনি কীভাবে একটি সামঞ্জস্যপূর্ণ কোড রাষ্ট্রের সনাক্তকরণ এবং গ্যারান্টি পাবেন?

আপনি এটি একটি অতিরিক্ত ফাইল-ভিত্তিক ভিসিএসে ট্র্যাক করতে পারেন, তবে তারপরে ডাটাবেসের কী লাভ?


সমস্ত ডাটাবেস কোড কোনও ইভেন্টে উত্স নিয়ন্ত্রণে থাকা উচিত। এটি অন্য কোনও মত কোড।
এইচএলজিইএম

1

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

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