database - সফটওয - ডেটাবেজ ম্যানেজমেন্ট সিস্টেম pdf




প্রতি বিকাশকারী ডাটাবেস সম্পর্কে কি জানা উচিত? (20)

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


ডেভেলপার এবং অন্যান্য সফ্টওয়্যার পেশাদার ডেটাবেস সম্পর্কে জানতে হবে গুরুত্বপূর্ণ ধারণা কি কি?


প্রতিক্রিয়া জন্য নির্দেশিকা:

আপনার তালিকা সংক্ষিপ্ত রাখুন।
উত্তর প্রতি একটি ধারণা শ্রেষ্ঠ।

নির্দিষ্ট হতে হবে
"ডেটা মডেলিং" একটি গুরুত্বপূর্ণ দক্ষতা হতে পারে, কিন্তু এর অর্থ কি সঠিকভাবে?

আপনার যুক্তি ব্যাখ্যা করুন।
কেন আপনার ধারণা গুরুত্বপূর্ণ? শুধু "সূচী ব্যবহার করুন না।" "ভাল অভ্যাস" মধ্যে পড়ে না। আরো শিখতে আপনার শ্রোতা convinces।

আপভোট উত্তরের সাথে আপনি একমত।
প্রথমে অন্যান্য মানুষের উত্তর পড়ুন। একটি উচ্চ-র্যাঙ্কযুক্ত উত্তর দুটি নিম্ন-র্যাঙ্কযুক্ত বেশী বেশী কার্যকর বিবৃতি। যদি আপনার আরো যোগ করার থাকে তবে একটি মন্তব্য যুক্ত করুন বা মূলটি উল্লেখ করুন।

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


সূচী কিভাবে কাজ করে

এটা সম্ভবত সবচেয়ে গুরুত্বপূর্ণ নয়, কিন্তু নিশ্চিতভাবে সবচেয়ে অবমূল্যায়ন বিষয়।

ইন্ডেক্সিংয়ের সমস্যাটি হল এসকিউএল টিউটোরিয়ালগুলি সাধারণত এগুলি উল্লেখ করে না এবং সমস্ত খেলনা উদাহরণগুলি কোন সূচী ছাড়াই কাজ করে।

এমনকি আরও অভিজ্ঞ ডেভেলপারগুলি " একটি সূচী দ্রুততর করে তোলে " এর চেয়ে সূচী সম্পর্কে আরও জানার পরে মোটামুটি ভাল (এবং জটিল) এসকিউএল লিখতে পারে।

কারণ এসকিউএল ডাটাবেসগুলি একটি খুব ভাল কাজ কালো-বক্স হিসাবে কাজ করছে:

আপনি কি প্রয়োজন আমাকে বলুন (এসকিউএল Gimme), আমি এটা যত্ন নিতে হবে।

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

যখন সূচী একটি বিষয় হয়ে ওঠে। কিন্তু এটি সাধারণত খুব দেরী এবং কেউ (কিছু কোম্পানি?) ইতিমধ্যে একটি বাস্তব সমস্যা ভোগ করছে।

এজন্য আমি বিশ্বাস করি যে ইন্ডেক্সিং সংখ্যা 1 টি বিষয় যা ডেটাবেসে কাজ করার সময় ভুলে যাওয়া যায় না । দুর্ভাগ্যবশত, এটা ভুলে খুব সহজ।

দাবি পরিত্যাগী

আর্গুমেন্ট আমার বিনামূল্যে ইবুক " সূচী, লুক ব্যবহার করুন " এর preface থেকে নেওয়া হয়। সূচীগুলি কীভাবে কাজ করে এবং সঠিকভাবে তাদের কীভাবে ব্যবহার করতে হয় তা ব্যাখ্যা করে আমি আমার অনেক সময় ব্যয় করছি।


নিয়মমাফিককরণ

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

আপনি যদি শুরুতে এবং সেই অনুযায়ী ডিজাইনটি বুঝতে পারেন তবে আপনি নিজেকে পরে অনেক কষ্ট দেবেন। আপনার স্বাভাবিককরণের পরে কার্য সম্পাদনের জন্য ডিফর্মালাইজ করা সহজ; এটি এমন একটি ডাটাবেস স্বাভাবিক করার পক্ষে এত সহজ নয় যা শুরু থেকে যেভাবে ডিজাইন করা হয়নি।

অন্তত, আপনি 3NF কি এবং কিভাবে পেতে হবে জানতে হবে। বেশিরভাগ লেনদেনযোগ্য ডাটাবেসগুলির সাথে, এটি ভাল কার্য সম্পাদন এবং বজায় রাখার জন্য সহজ প্রশ্নগুলির মধ্যে একটি খুব ভাল ভারসাম্য।


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

আপনি যদি সমস্যাটির মালিকানা নিয়েও কর্মক্ষমতা সমস্যা নিয়ে থাকেন তবে সমস্যাটিরও মালিক হন। কী হচ্ছে এবং কীভাবে তাদের সমাধানগুলি সমস্যার সমাধান করছে তা ব্যাখ্যা করার জন্য আপনার নিজস্ব গবেষণা করুন এবং DBA এর জন্য চাপ দিন।

আপনি গবেষণা করেছেন পরে খুব নিজের পরামর্শ সঙ্গে আসা। অর্থাৎ, আমি DBAs এ ডাটাবেস সমস্যাগুলি ছেড়ে দেওয়ার পরিবর্তে সমস্যার একটি সমবায় সমাধান খুঁজে বের করার চেষ্টা করি।


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


আমি মনে করি প্রত্যেক বিকাশকারী বুঝতে হবে যে ডেটাবেসগুলির একটি ভিন্ন দৃষ্টান্ত প্রয়োজন

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


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

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

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


একটি মধ্যম-দ্য-দ্য-রোড পেশাদার বিকাশকারী যারা ডেটাবেসগুলি অনেকগুলি ব্যবহার করে (দৈনিক বা প্রায় প্রতিদিনের প্রশ্নগুলি লেখার / বজায় রাখতে), আমি মনে করি অন্য কোনও ক্ষেত্রের মতো প্রত্যাশা একই রকম হওয়া উচিত: আপনি কলেজে একটি লিখেছেন

প্রতিটি সি ++ গাইক কলেজে একটি স্ট্রিং ক্লাস লিখেছেন। প্রতিটি গ্রাফিক্স গিক কলেজে একটি Raytracer লিখেছেন। প্রতিটি ওয়েব গাইক ইন্টারেক্টিভ ওয়েবসাইট লিখেছেন (সাধারণত আমাদের কাছে "ওয়েব ফ্রেমওয়ার্ক" ছিল)। প্রতিটি হার্ডওয়্যার নেরড (এবং এমনকি সফ্টওয়্যার nerds) কলেজে একটি CPU নির্মিত। কলেজের প্রতিটি চিকিৎসক চাদরকে সম্পূর্ণরূপে ছড়িয়ে দিয়েছিল, এমনকি যদি সে আমার রক্তচাপ নেবে এবং আমাকে বলবে আমার কলেস্টেরল আজ খুব বেশি। কেন ডাটাবেস কোনো ভিন্ন হবে?

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

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

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


একটি সম্ভাব্য দেবদূত হিসাবে শয়তান না Denormalization বিবেচনা করুন, এবং রিলেশনাল ডাটাবেস বিকল্প হিসাবে NoSQL ডাটাবেস বিবেচনা।

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


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

ডেভেলপারদের বোঝার আরেকটি বিষয় হল যে একটি ডেটাবেস ডিজাইন করার সময় আপনাকে তিনটি বিষয় মনে রাখতে হবে:

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

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

  3. নিরাপত্তা - এই তথ্যটি আপনার কোম্পানির জীবন-রক্ত, এটি প্রায়শই ব্যক্তিগত তথ্য রয়েছে যা চুরি করা যেতে পারে। এসকিউএল ইনজেকশন আক্রমণ এবং জালিয়াতি এবং পরিচয় চুরি থেকে আপনার তথ্য রক্ষা করতে শিখুন।

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

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

আপনার ডাটাবেস probelly দেখতে প্রয়োজন যে ক্ষেত্র প্রয়োজন হবে। প্রতিলিপি জন্য, GUIDs মত জিনিস, তারিখ ঢোকানো ক্ষেত্র। ইত্যাদি। এছাড়াও আপনাকে পরিবর্তনগুলির ইতিহাস সংরক্ষণ করতে হবে এবং যারা এই স্টোরহাউস থেকে খারাপ পরিবর্তনগুলি পুনরুদ্ধার করতে পারবে এবং কখন তা তৈরি করতে পারবে। আপনি কোনও ওয়েব সাইটকে কোন সমস্যাটি সমাধান করতে চান সে সম্পর্কে চিন্তা করুন যেখানে আপনি কোন আপডেটে কোনও বিভাগ স্থাপন করতে এবং সম্পূর্ণ টেবিলটি আপডেট করতে ভুলে গেছেন।

উত্পাদন সংস্করণ তুলনায় ডাটাবেসের একটি নতুন সংস্করণে বিকাশ না। কখনও কখনও, একটি উত্পাদন ডাটাবেস বিরুদ্ধে সরাসরি বিকাশ না।

আপনার যদি কোন ডাটাবেস প্রশাসক না থাকে, তবে নিশ্চিত হন যে কেউ ব্যাকআপ তৈরি করছে এবং কীভাবে সেগুলি পুনরুদ্ধার করবেন এবং তাদের পুনঃস্থাপন পরীক্ষা করেছেন তা নিশ্চিত করুন।

ডেটাবেস কোডটি কোড, বাকি কোডের মতই কেবল উৎস নিয়ন্ত্রণে রাখার জন্য কোনও অজুহাত নেই।


ডেটাবেসগুলি সম্পর্কে খুব প্রথম জিনিস ডেভেলপারদের জানা উচিত: এর জন্য ডেটাবেস কি ? তারা কীভাবে কাজ করে না বা কিভাবে আপনি এটি তৈরি করেন না, এমনকি কোন ডাটাবেসটিতে তথ্য পুনরুদ্ধার বা আপডেট করার জন্য আপনি কীভাবে কোড লিখবেন না। কিন্তু তারা কিসের জন্য?

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

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

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

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

ধারণামূলক তথ্য মডেলিং একটি তথ্য কেন্দ্রিক দৃষ্টিকোণ থেকে সত্যিই প্রয়োজনীয় বিশ্লেষণ।

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

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

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

অবশেষে, যে কেউ ডাটাবেসের সাথে messes বুঝতে হবে যে তথ্য মান প্রায়ই এটি অধিগ্রহণ সিস্টেম অতিক্রম করে

রক্ষে!


প্রথমত, ডেভেলপারদের বুঝতে হবে যে ডেটাবেস সম্পর্কে কিছু জানা আছে। তারা কেবলমাত্র জাদু ডিভাইসগুলি নয় যেখানে আপনি এসকিউএলটিতে ঢোকেন এবং ফলাফল সেটগুলি খুঁজে পান, বরং সফটওয়্যারগুলির খুব জটিল টুকরাগুলি তাদের নিজস্ব যুক্তি এবং কুইকগুলি সহ।

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

তৃতীয়, ডেভেলপারদের যোগদান সহ মৌলিক এসকিউএল বুঝতে হবে।

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

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

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

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

তারা কীভাবে একটি পরিকল্পনা পেতে হয় এবং এটি সাধারণভাবে কীভাবে পড়তে হয় তার মৌলিক জ্ঞান থাকা উচিত (অন্তত অ্যালগরিদম কার্যকর কিনা তা জানাতে যথেষ্ট)।

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

তারা অবশ্যই উৎপাদন ডেটা, বা উত্পাদন কোড, বা এর মতো কিছুতে হস্তক্ষেপ না করে জানা উচিত, এবং তাদের জানা উচিত যে সমস্ত সোর্স কোড একটি VCS তে চলে।

আমি সন্দেহহীনভাবে কিছু ভুলে গেছি, কিন্তু গড় বিকাশকারীকে একটি ডিবিএ হতে হবে না, যদি হাতে একটি বাস্তব DBA থাকে।


বিবর্তনীয় ডাটাবেস ডিজাইন। http://martinfowler.com/articles/evodb.html

এই চিত্তাকর্ষক পদ্ধতি ডাটাবেস পরিবর্তন প্রক্রিয়া পরিচালনাযোগ্য, predictable এবং testable করতে।

বিকাশকারীদের জানা উচিত, সংস্করণ নিয়ন্ত্রণ, ক্রমাগত ইন্টিগ্রেশন এবং স্বয়ংক্রিয় পরীক্ষার শর্তে একটি ডেটাবেস পুনর্বিবেচনার জন্য কী লাগে।

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

অন্তত জানি, যে ডাটাবেস Refactoring ধারণা এবং পদ্ধতি বিদ্যমান। http://www.agiledata.org/essays/databaseRefactoringCatalog.html

শ্রেণীবদ্ধকরণ এবং প্রক্রিয়া বর্ণনাগুলিও এই প্রতিক্রিয়াগুলির জন্য সরঞ্জামিং বাস্তবায়ন করা সম্ভব করে।


ভুল টেক্সট এনকোডিং দিয়ে তথ্য সন্নিবেশ করান না।

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


রিলেশনাল ডাটাবেসের সাথে আমার অভিজ্ঞতা থেকে, প্রত্যেক বিকাশকারীকে জানা উচিত:

- বিভিন্ন তথ্য প্রকার :

সঠিক কাজের জন্য সঠিক টাইপ ব্যবহার করে আপনার ডিবি নকশা আরো জোরালো, আপনার প্রশ্ন দ্রুত এবং আপনার জীবন আরও সহজ হবে।

- 1xm এবং MxM সম্পর্কে জানুন :

এই সম্পর্কীয় ডাটাবেস জন্য রুটি এবং মাখন। আপনি এক থেকে একাধিক এবং অনেক থেকে অনেক সম্পর্ক বুঝতে এবং তারপর উপযুক্ত যখন প্রয়োগ করা প্রয়োজন।

- " K.I.S.S. " নীতিটি K.I.S.S. প্রযোজ্য :

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

সূচকগুলি :

আপনি কি জানেন তা যথেষ্ট নয়। তাদের কখন এবং কখন ব্যবহার করা উচিত তা বুঝতে হবে।

এছাড়াও:

  • বুলিয়ান বীজগণিত আপনার বন্ধু
  • ছবিঃ ডিবিতে সেগুলি সংরক্ষণ করবেন না। জিজ্ঞাসা করবেন না কেন।
  • নির্বাচন সঙ্গে মুছে ফেলার পরীক্ষা

সিনট্যাক্স এবং ধারণাগত বিকল্পগুলি ব্যতীত তারা (যেমন যোগদান, ট্রিগার এবং সংরক্ষিত পদ্ধতিগুলি) কাজ করে, ডেটাবেস নিয়োগকারী প্রত্যেক বিকাশকারীর জন্য এটি একটি গুরুত্বপূর্ণ বিষয় যা এই:

আপনার ইঞ্জিনটি কীভাবে আপনি নির্দিষ্টতার সাথে লিখিত প্রশ্নটি সম্পাদন করতে চলেছেন তা জানুন।

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

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

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

আপনার ডাটাবেস ইঞ্জিন নির্বাহ প্রক্রিয়া এবং এটি জন্য পরিকল্পনা জানুন।


SQL injection এড়ানো এবং কিভাবে আপনার ডাটাবেস সুরক্ষিত


RDBMS সামঞ্জস্য

একাধিক RDBMS এ অ্যাপ্লিকেশন চালানোর জন্য এটি প্রয়োজন কিনা তা দেখুন। যদি হ্যাঁ হয় তবে এটি হতে পারে:

  • RDBMS এসকিউএল এক্সটেনশান এড়ানোর
  • ট্রিগার এবং দোকান পদ্ধতি মুছে ফেলুন
  • কঠোর এসকিউএল মান অনুসরণ করুন
  • ক্ষেত্র তথ্য ধরনের রূপান্তর
  • লেনদেন বিচ্ছিন্নতা মাত্রা পরিবর্তন

অন্যথায়, এই প্রশ্নগুলি আলাদাভাবে চিকিত্সা করা উচিত এবং অ্যাপ্লিকেশনটির বিভিন্ন সংস্করণ (বা কনফিগারেশন) উন্নত করা হবে।


আপনি ডাটাবেস প্রোগ্রাম ব্যবহার করতে যে সরঞ্জাম বুঝতে !!!

আমার কোড রহস্যজনকভাবে ব্যর্থ কেন বুঝতে চেষ্টা অনেক সময় নষ্ট।

আপনি যদি .NET ব্যবহার করছেন, উদাহরণস্বরূপ, আপনার System.Data.SqlClientনামস্পেসে বস্তুর সঠিকভাবে কীভাবে ব্যবহার করবেন তা জানতে হবে । SqlConnectionখোলা, বন্ধ, এবং যখন প্রয়োজন হয়, তখন সঠিকভাবে নিষ্পত্তি করা হবে কিনা তা নিশ্চিত করতে আপনার বস্তুগুলি কীভাবে পরিচালনা করবেন তা আপনাকে জানতে হবে।

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


কিছু প্রকল্পের জন্য, এবং বস্তু-ভিত্তিক মডেল ভাল।

অন্যান্য প্রকল্পের জন্য, একটি সম্পর্ক মডেল ভাল।


প্রতিবন্ধকতা দ্বিধা সমস্যা, এবং সাধারণ ঘাটতি বা ORMs জানি।







database-design