আপনার স্পেসিফিকেশনগুলির আমার ব্যাখ্যা অনুসারে, আপনি দুটি পৃথক (তবে সংযুক্ত ) সুপার টাইপ-সাব-টাইপ কাঠামো বাস্তবায়নের জন্য একটি পদ্ধতি খুঁজে পেতে চান ।
অর্ডার aformentioned টাস্ক অর্জন করার একটি পন্থা এক্সপোজ করতে, আমি দুই সর্বোত্তম সমস্যাপূর্ণ দৃশ্যকল্প যোগ করতে যাচ্ছি প্রকল্পিত সত্তা ধরনের নামক Foo
এবং Bar
, যা আমি বিস্তারিত নিচে হবে।
ব্যবসার নীতি
এখানে কয়েকটি বিবৃতি দেওয়া হয়েছে যা আমাকে একটি লজিকাল মডেল তৈরি করতে সহায়তা করবে:
A Foo is either one Bar or one C
A Foo is categorized by one FooType
A Bar is either one A or one C
A Bar is classified by one BarType
যৌক্তিক মডেল
এবং তারপরে, ফলাফল IDEF1X [1] লজিকাল মডেলটি চিত্র 1 এ দেখানো হয়েছে (এবং আপনি এটি ড্রপবক্স থেকে পিডিএফ হিসাবেও ডাউনলোড করতে পারেন ):
ফু ও বার সংযোজন
আমি যোগ হয়নি Foo
এবং Bar
মডেল বর্ণন ভাল করতে, কিন্তু এটা আরো ভাবপূর্ণ করতে। আমি নিম্নলিখিতগুলির কারণে এগুলি গুরুত্বপূর্ণ বলে মনে করি:
নামযুক্ত বৈশিষ্ট্য হিসাবে A
এবং B
ভাগ করে নেওয়ার ফলে E
, এই বৈশিষ্ট্যটি বোঝায় যে এগুলি স্বতন্ত্রতা (তবে সম্পর্কিত) ধরণের ধারণা , ইভেন্ট , ব্যক্তি , পরিমাপ ইত্যাদির ধরণের, যা আমি Bar
উপজাতীয় ধরণের মাধ্যমে উপস্থাপন করি যা পরিবর্তিত হয় একটি subentity ধরণের Foo
, যা D
স্তরক্রমের শীর্ষে বৈশিষ্ট্যটি ধারণ করে ।
যেহেতু C
আলোচ্য সত্তা ধরনের, বাকি সঙ্গে শুধুমাত্র শেয়ার একটি অ্যাট্রিবিউট অর্থাত, D
এই দৃষ্টিভঙ্গি insinuates এটি আরেকটি ধরনের একটি subentity ধরনের ধারণা , ঘটনা , ব্যক্তি , পরিমাপ , ইত্যাদি আমি তাই শক্তি কর্মদক্ষতার দ্বারা এই পরিস্থিতিতে ফোটানো Foo
সুপার সত্তা প্রকার।
তবে এগুলি কেবল অনুমান, এবং যেহেতু একটি সম্পর্কিত সম্পর্কিত ডাটাবেস নির্দিষ্ট ব্যবসায়ের প্রসঙ্গের শব্দার্থকে সঠিকভাবে প্রতিফলিত করে তাই আপনাকে আপনার নির্দিষ্ট ডোমেইনের আগ্রহের সমস্ত বিষয় চিহ্নিত করতে এবং শ্রেণিবদ্ধ করতে হবে যাতে আপনি নিখুঁতভাবে আরও অর্থ ক্যাপচার করতে পারেন ।
নকশা পর্যায়ে গুরুত্বপূর্ণ বিষয়গুলি
এই সত্যটি সম্পর্কে সচেতন হওয়া বেশ কার্যকর যে সমস্ত পরিভাষা একপাশে রেখে একচেটিয়া সুপারটাইপ-সাব-টাইপ ক্লাস্টারটি একটি সাধারণ সম্পর্ক। আসুন পরিস্থিতিটি নিম্নলিখিত উপায়ে বর্ণনা করি:
- প্রতিটি এক্সক্লুসিভ সাপোরেন্টিটি টাইপ সংঘটন কেবলমাত্র একটি সাবেন্টিটি টাইপের পরিপূরক সম্পর্কিত।
সুতরাং, এই ক্ষেত্রে ওয়ান-টু-ওয়ান (1: 1) এর একটি চিঠিপত্র (বা কার্ডিনালিটি) রয়েছে।
আপনি আপনার পূর্ববর্তী পোস্ট থেকে জানি, discriminator অ্যাট্রিবিউট (কলাম, যখন বাস্তবায়িত) একটি প্যারামাউন্ট ভূমিকা পালন করে একটি তৈরি সমিতি এই প্রকৃতির, কারণ এটি সঠিক উপপ্রকার উদাহরণস্বরূপ যা দিয়ে supertype হয় ইঙ্গিত সংযুক্ত । (Ii) সুপারটাইপ থেকে (ii) উপপ্রকারগুলিতে প্রাথমিক কী এর স্থানান্তরও প্রধান তাত্পর্যপূর্ণ।
কংক্রিট ডিডিএল কাঠামো
এবং তারপরে আমি একটি ডিডিএল কাঠামো লিখেছি যা উপরের উপস্থাপিত যৌক্তিক মডেলের উপর ভিত্তি করে:
CREATE TABLE FooType -- Look-up table.
(
FooTypeCode CHAR(2) NOT NULL,
Description CHAR(90) NOT NULL,
CreatedDateTime DATETIME NOT NULL,
CONSTRAINT PK_FooType PRIMARY KEY (FooTypeCode),
CONSTRAINT AK_FooType_Description UNIQUE (Description)
);
CREATE TABLE Foo -- Supertype
(
FooId INT NOT NULL, -- This PK migrates (1) to ‘Bar’ as ‘BarId’, (2) to ‘A’ as ‘AId’, (3) to ‘B’ as ‘BId’, and (4) to ‘C’ as ‘CId’.
FooTypeCode CHAR(2) NOT NULL, -- Discriminator column.
D INT NOT NULL, -- Column that applies to ‘Bar’ (and therefore to ‘A’ and ‘B’) and ‘C’.
CreatedDateTime DATETIME NOT NULL,
CONSTRAINT PK_Foo PRIMARY KEY (FooId),
CONSTRAINT FK_from_Foo_to_FooType FOREIGN KEY (FooTypeCode)
REFERENCES FooType (FooTypeCode)
);
CREATE TABLE BarType -- Look-up table.
(
BarTypeCode CHAR(1) NOT NULL,
Description CHAR(90) NOT NULL,
CONSTRAINT PK_BarType PRIMARY KEY (BarTypeCode),
CONSTRAINT AK_BarType_Description UNIQUE (Description)
);
CREATE TABLE Bar -- Subtype of ‘Foo’.
(
BarId INT NOT NULL, -- PK and FK.
BarTypeCode CHAR(1) NOT NULL, -- Discriminator column.
E INT NOT NULL, -- Column that applies to ‘A’ and ‘B’.
CONSTRAINT PK_Bar PRIMARY KEY (BarId),
CONSTRAINT FK_from_Bar_to_Foo FOREIGN KEY (BarId)
REFERENCES Foo (FooId),
CONSTRAINT FK_from_Bar_to_BarType FOREIGN KEY (BarTypeCode)
REFERENCES BarType (BarTypeCode)
);
CREATE TABLE A -- Subtype of ‘Bar’.
(
AId INT NOT NULL, -- PK and FK.
X INT NOT NULL, -- Particular column.
CONSTRAINT PK_A PRIMARY KEY (AId),
CONSTRAINT FK_from_A_to_Bar FOREIGN KEY (AId)
REFERENCES Bar (BarId)
);
CREATE TABLE B -- (1) Subtype of ‘Bar’ and (2) supertype of ‘A’ and ‘B’.
(
BId INT NOT NULL, -- PK and FK.
Y INT NOT NULL, -- Particular column.
CONSTRAINT PK_B PRIMARY KEY (BId),
CONSTRAINT FK_from_B_to_Bar FOREIGN KEY (BId)
REFERENCES Bar (BarId)
);
CREATE TABLE C -- Subtype of ‘Foo’.
(
CId INT NOT NULL, -- PK and FK.
Z INT NOT NULL, -- Particular column.
CONSTRAINT PK_C PRIMARY KEY (CId),
CONSTRAINT FK_from_C_to_Foo FOREIGN KEY (FooId)
REFERENCES Foo (FooId)
);
এই কাঠামোর সাহায্যে আপনি আপনার বেস টেবিলগুলিতে (বা সম্পর্কগুলি ) নুল চিহ্নের সঞ্চয়স্থান এড়াতে পারবেন যা আপনার ডেটা বেসের সাথে অস্পষ্টতার পরিচয় দেবে।
নিখরচায়তা, ধারাবাহিকতা এবং অন্যান্য বিবেচনা
একবার আপনি আপনার ডাটাবেস বাস্তবায়ন করেন, তাহলে আপনি অবশ্যই নিশ্চিত করতে হবে যে (ক) প্রতিটি একচেটিয়া supertype সারি সবসময় তার সংশ্লিষ্ট দ্বারা complemented হয় উপপ্রকার সহযোগীর এবং, ঘুরে, নিশ্চয়তা (খ) উক্ত উপপ্রকার সারি মান সঙ্গে সামঞ্জস্যপূর্ণ supertype অন্তর্ভুক্ত discriminator কলাম । অতএব, TRANSACTIONS
এই শর্তগুলি আপনার ডাটাবেসে পূরণ হয়েছে তা নিশ্চিত করার জন্য এটি এসিডি নিয়োগ করা বেশ সুবিধাজনক ।
আপনার আপনার ডাটাবেসের যৌক্তিক দৃ sound়তা, স্ব-প্রকাশ এবং যথার্থতা ছেড়ে দেওয়া উচিত নয়, এগুলি এমন দিক যা স্থির করে আপনার ডাটাবেসটিকে আরও দৃ make় করে তোলে।
পূর্বে পোস্ট করা দুটি উত্তর ইতিমধ্যে প্রাসঙ্গিক পয়েন্টগুলি অন্তর্ভুক্ত করে যা আপনার ডেটাবেস এবং এর অ্যাপ্লিকেশন প্রোগ্রাম (গুলি) ডিজাইন, তৈরি ও পরিচালনা করার সময় অবশ্যই বিবেচনার জন্য উপযুক্ত।
দৃশ্য সংজ্ঞা দিয়ে ডেটা পুনরুদ্ধার করা
আপনি বিভিন্ন মতামত সেট করতে পারেন যা বিভিন্ন সুপার টাইপ-সাব-টাইপ গোষ্ঠীর কলামগুলিকে একত্রিত করে , যাতে আপনি হাতছাড়া করে ডেটা পুনরুদ্ধার করতে পারেন, যেমন প্রতিবার প্রয়োজনীয় জওআইএন ধারাগুলি লিখে। এই উপায়ে, আপনি সহজেই আগ্রহের ভিউ ( উত্পন্ন সম্পর্ক বা টেবিল ) থেকে সরাসরি নির্বাচন করতে পারেন ।
আপনি দেখতে পাচ্ছেন, "টেড" কোডড নিঃসন্দেহে একজন প্রতিভা ছিল। তিনি যে সরঞ্জামগুলি দান করেছিলেন সেগুলি বেশ শক্তিশালী এবং মার্জিত এবং অবশ্যই একে অপরের সাথে সুসংহত।
সম্পর্কিত সংস্থানসমূহ
আপনি যদি এমন কোনও বিস্তৃত ডাটাবেস বিশ্লেষণ করতে চান যা সুপারটাইপ-সাব-টাইপ সম্পর্কের সাথে জড়িত, আপনি নীচের স্ট্যাক ওভারফ্লো প্রশ্নগুলিতে @ পারফরম্যান্সডিবিএ প্রস্তাবিত অসাধারণ উত্তরগুলির মূল্য খুঁজে পাবেন :
বিঃদ্রঃ
1. তথ্য মডেলিং জন্য ইন্টিগ্রেশন সংজ্ঞা ( IDEF1X ) একটি অত্যন্ত সুপারিশের ডেটা মডেলিং পন্থা যা একটি প্রতিষ্ঠিত হয়েছিল মান স্ট্যান্ডার্ড মার্কিন যুক্তরাষ্ট্র ন্যাশনাল ইনস্টিটিউট ও প্রযুক্তি বিশ্ববিদ্যালয় (ডিসেম্বর 1993 সালে , NIST )। এটি দৃ ( ়ভাবে (ক) ডাঃ ইএফ কোডড দ্বারা রচিত প্রাথমিক তাত্ত্বিক উপাদানের উপর ভিত্তি করে ; উপর (খ) সত্তা-সম্পর্ক ডেটা, দ্বারা উন্নত দৃশ্যে ডঃ পিপি চেন ; এবং এছাড়াও (গ) রবার্ট জি ব্রাউন দ্বারা নির্মিত লজিকাল ডেটাবেস ডিজাইন প্রযুক্তি। এটি লক্ষণীয় যে আইডিইএফ 1 এক্স প্রথম অর্ডার যুক্তির মাধ্যমে আনুষ্ঠানিকভাবে তৈরি হয়েছিল।