আমার ডাটাবেসটি তৃতীয় স্বাভাবিক ফর্মের মধ্যে স্বাভাবিক করা হয়েছে কিনা তা পরীক্ষা করার কোনও সরঞ্জাম আছে?


20

আমি সম্প্রতি নরমালাইজেশন সম্পর্কে শিখেছি এবং নতুন স্কিমার বাস্তবায়ন করার সময় এটি কতটা গুরুত্বপূর্ণ তা বুঝতে পেরেছি।

আমার ডাটাবেস 2NF বা 3NF অনুসারী কিনা তা আমি কীভাবে পরীক্ষা করতে পারি?

ম্যানুয়াল পর্যালোচনা একটি নিশ্চিত বিকল্প, তবে আমি এখানে একটি স্বয়ংক্রিয় সরঞ্জামের সন্ধান করছি।

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


1
আমি আশা করি এরকম একটি সরঞ্জামের অস্তিত্ব নেই। 2NF / 3NF প্রয়োগ করার দরকার নেই। একটি স্কিমা / মডেল ডিজাইনের ক্ষেত্রে প্রায়শই ব্যবহারিকতা এবং পারফরম্যান্স বিবেচনার বিষয়টি বিবেচনায় নিতে হয়, যা সাধারণত উইন্ডো থেকে এক্সএনএফকে চুক করে ফেলে
ফিলি

2
এর অর্থ কি সাধারণীকরণ বাস্তবায়িত হয় না? আমি এটিকে একটি প্রারম্ভিক পয়েন্ট হিসাবে ব্যবহার করার পরিকল্পনা করেছি এবং এটি কর্মক্ষমতা কমিয়ে দিলে অস্বীকৃতি বিবেচনা করবে।
ack__

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

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

উত্তর:


24

সাধারণীকরণ একেবারে বাস্তব বিশ্বে ব্যবহৃত হয় ... এবং আশা করি আপনি জানেন যে 3NF এর মধ্যে কেবল তৃতীয় ... এখন কী 8? তবে 3NF একটি সহজ লক্ষ্য হওয়া উচিত।

তবে ... আমি বলার উদ্যোগ নেব যে এমন কোনও সরঞ্জাম থাকতে পারে না।

সাধারণকরণ, প্রযুক্তিগতভাবে, প্রতিটি টেবিলের একটি বৈশিষ্ট্য। প্রদত্ত ডাটাবেসের মধ্যে বিভিন্ন টেবিলের বিভিন্ন স্তরের সাধারণকরণ থাকতে পারে।

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

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

সুতরাং, প্রকৃত তথ্যগুলির একটি বোধগম্যতা প্রয়োজন ... যা স্বয়ংক্রিয় সরঞ্জামগুলির সুযোগের বাইরে।

Q: Is a table with { student, subject, instructor } in 3NF?
A: What are students, subjects and instructors?

এমন একটি পৃথিবীতে যেখানে সমস্ত প্রশিক্ষকগণ সমস্ত বিষয় পড়াতেন এবং প্রতিটি শিক্ষার্থী প্রতিটি প্রশিক্ষকের কাছ থেকে প্রতিটি বিষয়ে একাধিক কোর্স না করে যে কোনও সংমিশ্রণ নিতে পারে, এই টেবিলটি সত্যই 3NF এ বলা যেতে পারে। বাস্তব বিশ্বে এই টেবিলের জন্য 3NF দাবি করা অযৌক্তিক।

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

একটি ডাটাবেস যত বেশি সাধারণ করা যায় ততই প্রকৃত বিশ্বের সাথে এবং নিজের সাথে আরও অন্তরঙ্গভাবে সুসংগত হয় এবং ডাটাবেসের তথ্যের জন্য অজান্তে অসত্য হওয়া তত বেশি কঠিন। ডাটাবেস ডিজাইন একটি শিল্প, তবে এটি অবশ্যই একটি বিজ্ঞান is

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


2
এই বিস্তারিত উত্তরের জন্য ধন্যবাদ। যাইহোক, আপনার উদাহরণ অনুসরণ করে, কোনও সরঞ্জাম যা নমুনা তথ্য বিশ্লেষণ করে তা সনাক্ত করতে পারে যে "প্রশিক্ষক" মানগুলি অনেক বার পুনরাবৃত্তি হয় এবং অন্য টেবিলে উপস্থিত হয়, সুতরাং এটি বিদেশী কী বা অন্য কোনও পরিবর্তনের প্রার্থী হতে পারে বলে মনে করে এই টেবিলটি 3nf এর সাথে সামঞ্জস্যপূর্ণ করে তুলবে, বা আমি কিছু মিস করছি?
ack__

2
সত্য, তবে মূল শব্দটি এখনও "প্রস্তাবিত"। একটি সরঞ্জাম আপাত অপ্রয়োজনীয়তা সন্ধান করে কাঠামোগত পরিবর্তনগুলির পরামর্শ দিতে পারে, তবে আমি এখনও বুঝতে পারি যে আসল অপ্রয়োজনীয়তা এবং পারস্পরিক সম্পর্কের একটি কাকতালীয় উপস্থিতি যেমন একটি সরঞ্জামের মধ্যে পার্থক্য করা কঠিন difficult তথ্যের বাস্তব-জগৎ প্রকৃতির জ্ঞান প্রয়োজন।
মাইকেল - sqlbot

@ack__: তৃতীয় স্বাভাবিক ফর্মের মধ্যে থাকা বা না হওয়া কোনও সম্পর্কের সম্পত্তি যা কোনও জুড়ি বা সম্পর্কের সেট নয়। সুতরাং আমি দেখতে পাচ্ছি না যে কোনও বিদেশী কী সম্পর্ক স্থাপনের তৃতীয় সাধারণ ফর্মের সাথে কোনও সম্পর্ক আছে।
चमत्कार 173

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

কেন কেউ ব্যাখ্যা করতে পারেন যে "এমন একটি পৃথিবীতে যেখানে একজন শিক্ষার্থী কেবল একটি বিষয়ে কোর্স করতে পারে এবং সমস্ত প্রশিক্ষকই সমস্ত বিষয় পড়াতেন, এই টেবিলটি সত্যই 3NF এ বলা যেতে পারে" এটি মনে হয় যে শিক্ষার্থীরা -> বিষয় এবং আরও কিছু নয়। এই টেবিলের কীটি অনুভূত হবে তখন (ছাত্র, প্রশিক্ষক) কি 3NF ব্রেক করবে না? প্রতিটি বিষয় শেখানো প্রতিটি শিক্ষক আমাদের কী সাহায্য করে?
ড্র ভেরলি

5

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

1980 এর দশকের শেষের দিকে বা 1990 এর দশকের প্রথম দিকে মুক্তিপ্রাপ্ত বেশ কয়েকটি CASE সরঞ্জামগুলি ইআর ডায়াগ্রামগুলি বিশ্লেষণ করে বা নমুনা তথ্যের পরিসংখ্যানগত বিশ্লেষণের মাধ্যমে প্রতিটি সম্ভাব্য 5NF স্কিমা অর্জন করতে পারে।

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


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

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

2
নমুনা ডেটা সহ টেবিলগুলির বিশ্লেষণ এবং সাধারণীকরণের জন্য পরামর্শগুলি অ্যাক্সেসের একটি বৈশিষ্ট্য ছিল এবং প্রারম্ভিক সংস্করণগুলিতে, যদি আমার ভাল মনে থাকে।
ypercubeᵀᴹ

@ ক্রিস: হ্যাঁ, আমি কেবল শব্দার্থক বিশ্লেষণের জন্য ইআর ডায়াগ্রামের কথা উল্লেখ করছিলাম।
ack__

@ টাইপ्यूब: টিপটির জন্য ধন্যবাদ, আমি অ্যাক্সেসটি একবার দেখব।
ack__

3

আমি খুব সন্দেহ করি যে আপনি এখনও একটি উত্তর প্রয়োজন, কিন্তু আপনি বা অন্য কেউ উপকৃত হতে পারে আপনি যদি এই সরঞ্জামটি চেষ্টা করে দেখতে পারেন: http://uisacad5.uis.edu/cgi-bin/mcrem2/ database_design_tool.cgi


2

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


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

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

2
কমপক্ষে একটি সরঞ্জাম পরামর্শ দিতে পারে যে কোনও সম্পর্ক সম্ভবত বিদ্যমান। যদি ডেটা নমুনার গুণমান এবং আকার যথেষ্ট বড় হয় তবে ব্যবহারিক উদ্দেশ্যে এই ধরণের অনুমানের যথার্থতা যথেষ্ট বেশি হবে।
चमत्कार 173

হতে পারে. তবে আসুন একটি আসল উদাহরণ নেওয়া যাক এটি বেশ নরকীয় সম্পর্কের নকশা ভিত্তিক: ঠিকানাগুলি। মেলিং ঠিকানাগুলি কীভাবে স্বাভাবিক করা উচিত? কত টেবিল পরামর্শ দেওয়া উচিত? 3NF সম্পর্কে আমার বোঝার দ্বারা আপনার দেশ, রাজ্য / প্রদেশ এবং শহরগুলির জন্য টেবিলগুলি দরকার। আমি জানি না যে ডাক কোড / শহর ভাঙ্গার ফলে কোন ধারণা তৈরি হয় তবে তারা সম্ভবত তা করে। তবে আপনি কীভাবে বিদ্যমান ডেটা বিশ্লেষণ করবেন এবং সেই (শহর, রাজ্য) -> দেশ নির্ধারণ করবেন? বিশ্বব্যাপী ডাক কোডগুলি এই নির্মাণগুলির সাথে সম্পর্কিত কিনা আপনি কীভাবে নির্ধারণ করবেন?
ক্রিস ট্র্যাভারস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.