छोड़कर सामग्री पर जाएँ
Read this post in: de_DEen_USes_ESfr_FRhi_INid_IDjapl_PLpt_PTru_RUvizh_CNzh_TW
Home » Data Modeling / Database » एक लाइब्रेरी सिस्टम का डिज़ाइन: ERD से नॉर्मलाइज़ेशन तक डेटाबेस स्कीमा तक

एक लाइब्रेरी सिस्टम का डिज़ाइन: ERD से नॉर्मलाइज़ेशन तक डेटाबेस स्कीमा तक

परिचय

एक विश्वसनीय और कुशल डेटाबेस सिस्टम का डिज़ाइन लाइब्रेरी प्रबंधन सिस्टम विकसित करने के लिए एक महत्वपूर्ण चरण है। इस प्रक्रिया में कई चरण शामिल हैं, जिनमें एंटिटी-रिलेशनशिप डायग्राम (ERD) डिज़ाइन से शुरू होता है, फिर नॉर्मलाइज़ेशन आता है, और अंत में डेटाबेस स्कीमा का निर्माण किया जाता है। इस लेख में, हम इनमें से प्रत्येक चरण के माध्यम से गुजरेंगे, एक अवधारणा को एक अच्छी तरह से संरचित और अनुकूलित लाइब्रेरी सिस्टम डेटाबेस में बदलने के तरीके को दिखाएंगे।

ERD, नॉर्मलाइज़ेशन और डेटाबेस स्कीमा से डेटा मॉडलिंग प्रक्रिया

  1. एंटिटी-रिलेशनशिप डायग्राम (ERD)

लाइब्रेरी सिस्टम डेटाबेस के डिज़ाइन का पहला चरण एंटिटी-रिलेशनशिप डायग्राम (ERD) बनाना है। एक ERD सिस्टम के भीतर डेटा एंटिटी और उनके संबंधों का दृश्य प्रतिनिधित्व है। यहां कुछ महत्वपूर्ण घटक हैं जिन पर विचार करना चाहिए:

a. एंटिटी: अपने लाइब्रेरी सिस्टम में मुख्य एंटिटी की पहचान करें। इनमें किताबें, लेखक, उपयोगकर्ता, कर्मचारी और लेनदेन शामिल हो सकते हैं।

b. गुण: प्रत्येक एंटिटी के लिए गुण या विशेषताओं को परिभाषित करें। उदाहरण के लिए, एक “किताब” एंटिटी में ISBN, शीर्षक, लेखक, प्रकाशन तिथि आदि गुण हो सकते हैं।

c. संबंध: एंटिटी के बीच संबंधों को निर्धारित करें। उदाहरण के लिए, एक “उपयोगकर्ता” एंटिटी को “किताब” एंटिटी के साथ “उधार लेना” संबंध हो सकता है, जो किताबों के उधार लेने का प्रतिनिधित्व करता है।

d. कार्डिनैलिटी: संबंधों की कार्डिनैलिटी निर्दिष्ट करें, जो एक एंटिटी के कितने उदाहरण दूसरे एंटिटी से संबंधित हैं, इसका संकेत करता है। उदाहरण के लिए, एक उपयोगकर्ता एक से अधिक किताबें उधार ले सकता है, लेकिन प्रत्येक किताब केवल एक उपयोगकर्ता द्वारा एक समय में उधार ली जा सकती है।

  1. नॉर्मलाइज़ेशन

नॉर्मलाइज़ेशन डेटाबेस में डेटा को व्यवस्थित करने की प्रक्रिया है, जिसका उद्देश्य अतिरिक्त डेटा को दूर करना और डेटा अखंडता को बेहतर बनाना है। उद्देश्य डेटा की दोहराव को कम करना और सुनिश्चित करना है कि प्रत्येक जानकारी सबसे उपयुक्त स्थान पर संग्रहीत हो। लाइब्रेरी सिस्टम डेटाबेस को नॉर्मलाइज़ करने में शामिल चरण निम्नलिखित हैं:

a. कार्यात्मक निर्भरता की पहचान करें: अपनी एंटिटी में गुणों का विश्लेषण करें और निर्धारित करें कि कौन से गुण दूसरों पर निर्भर हैं। उदाहरण के लिए, “किताब” एंटिटी में लेखक का नाम किताब के ISBN पर निर्भर है।

b. नॉर्मलाइज़ेशन नियमों को लागू करें: नॉर्मलाइज़ेशन नियमों (उदाहरण के लिए, पहला सामान्य रूप, दूसरा सामान्य रूप, तीसरा सामान्य रूप) का उपयोग करके जटिल एंटिटी को सरल एंटिटी में बदलें और संबंधित जानकारी के लिए अलग-अलग टेबल बनाएं।

c. संबंध बनाएं: प्राथमिक और विदेशी कुंजियों का उपयोग करके नॉर्मलाइज़ किए गए टेबल के बीच संबंध स्थापित करें, ताकि डेटा अखंडता बनी रहे।

d. अतिरिक्तता को दूर करें: सुनिश्चित करें कि प्रत्येक डेटा को केवल एक ही स्थान पर संग्रहीत किया जाए। उदाहरण के लिए, लेखक की जानकारी को अलग “लेखक” टेबल में संग्रहीत किया जाना चाहिए, बजाय इसके कि प्रत्येक किताब के लिए दोहराया जाए।

  1. डेटाबेस स्कीमा

जब आपका डेटाबेस पूरी तरह से नॉर्मलाइज़ कर लिया जाता है, तो आप डेटाबेस स्कीमा बनाने के लिए आगे बढ़ सकते हैं। स्कीमा डेटाबेस की संरचना को परिभाषित करता है, जिसमें टेबल, कॉलम, डेटा प्रकार और प्रतिबंध शामिल हैं। लाइब्रेरी सिस्टम के लिए डेटाबेस स्कीमा बनाने के चरण निम्नलिखित हैं:

a. टेबल परिभाषित करें: ERD और नॉर्मलाइज़ किए गए डेटा में पहचाने गए एंटिटी के आधार पर टेबल बनाएं। प्रत्येक टेबल को एक विशिष्ट एंटिटी का प्रतिनिधित्व करना चाहिए (उदाहरण के लिए, “किताबें,” “लेखक,” “उपयोगकर्ता”)।

b. कॉलम परिभाषित करें: प्रत्येक टेबल के लिए कॉलम निर्दिष्ट करें, जो ERD में पहचाने गए गुणों का प्रतिनिधित्व करते हैं। सुनिश्चित करें कि डेटा प्रकार और प्रतिबंध (उदाहरण के लिए, प्राथमिक कुंजी, विदेशी कुंजी, अद्वितीय प्रतिबंध) सही तरीके से परिभाषित हों।

c. संबंध स्थापित करें: विदेशी कुंजियों का उपयोग करके टेबल के बीच संबंध स्थापित करें, संबंधित डेटा को जोड़ें। उदाहरण के लिए, “किताबें” टेबल में “लेखक” टेबल को संदर्भित करने वाली विदेशी कुंजी हो सकती है।

d. इंडेक्सिंग: खोज के लिए अक्सर उपयोग किए जाने वाले कॉलम पर इंडेक्सिंग लागू करें, ताकि प्रश्न प्रदर्शन में सुधार हो।

केस स्टडी: लाइब्रेरी सिस्टम

एंटिटी संबंध डायग्राम

हमने चार टेबल परिभाषित किए हैं: लेखक, किताबें, उपयोगकर्ता और लेनदेन। यहां प्रत्येक टेबल का अर्थ है:

  1. लेखक: किताबों के लेखकों के बारे में जानकारी संग्रहीत करता है। इसमें AuthorID प्राथमिक कुंजी के रूप में है और एक नाम विशेषता है।
  2. किताबें: किताब के विवरण का प्रतिनिधित्व करती है। इसमें ISBN (प्राथमिक कुंजी), शीर्षक, प्रकाशन तिथि और एक लेखक कुंजी (विदेशी कुंजी) है, जो लेखक टेबल को संदर्भित करती है, ताकि किताबों और लेखकों के बीच संबंध स्थापित किया जा सके।
  3. उपयोगकर्ता: लाइब्रेरी उपयोगकर्ताओं के बारे में जानकारी संग्रहीत करता है। इसमें PatronID प्राथमिक कुंजी के रूप में है और एक नाम विशेषता है।
  4. लेनदेन: यह टेबल उपयोगकर्ताओं द्वारा किताबें उधार लेने के लेनदेन को रिकॉर्ड करता है। इसमें TransactionID (प्राथमिक कुंजी), BookID (Books को संदर्भित करने वाली विदेशी कुंजी), PatronID (Patrons को संदर्भित करने वाली विदेशी कुंजी) और DueDate शामिल है।

इन टेबलों के बीच संबंध निम्नलिखित तरीके से प्रदर्शित किए गए हैं:

  • लेखक और पुस्तकों के बीच एक से बहुत संबंध है, जो इंगित करता है कि एक लेखक एक से अधिक पुस्तकें लिख सकता है।
  • पुस्तकों और लेनदेन के बीच संबंध है, जो तथ्य को दर्शाता है कि प्रत्येक पुस्तक एक से अधिक लेनदेन का हिस्सा हो सकती है, लेकिन प्रत्येक लेनदेन एक पुस्तक से संबंधित होता है।
  • दर्शक और लेनदेन के बीच संबंध है, जो इंगित करता है कि प्रत्येक दर्शक के एक से अधिक लेनदेन हो सकते हैं, लेकिन प्रत्येक लेनदेन एक दर्शक से संबंधित होता है।

नॉर्मलाइजेशन प्रक्रिया

आइए हम तालिकाओं के उपयोग से हमारे पुस्तकालय प्रणाली डेटाबेस के लिए नॉर्मलाइजेशन प्रक्रिया के माध्यम से चलें। हम प्रारंभिक सेट तालिकाओं से शुरुआत करेंगे और धीरे-धीरे उन्हें पहले सामान्य रूप (1NF), दूसरे सामान्य रूप (2NF) और तीसरे सामान्य रूप (3NF) तक नॉर्मलाइज़ करेंगे।

प्रारंभिक तालिकाएँ:

  1. पुस्तकें
    • ISBN (प्राथमिक कुंजी)
    • शीर्षक
    • प्रकाशन तिथि
    • लेखक ID (विद्यालय कुंजी)
  2. लेखक
    • लेखक ID (प्राथमिक कुंजी)
    • नाम
  3. दर्शक
    • दर्शक ID (प्राथमिक कुंजी)
    • नाम
  4. लेनदेन
    • लेनदेन ID (प्राथमिक कुंजी)
    • पुस्तक ID (विद्यालय कुंजी)
    • दर्शक ID (विद्यालय कुंजी)
    • मिति

पहला सामान्य रूप (1NF):

पहले सामान्य रूप में, प्रत्येक तालिका में प्राथमिक कुंजी होनी चाहिए, और किसी भी कॉलम में दोहराए जाने वाले समूह या ऐरे नहीं होने चाहिए। हमारी प्रारंभिक तालिकाएँ पहले सामान्य रूप (1NF) को पूरा करती हैं क्योंकि उनमें प्राथमिक कुंजी है, और प्रत्येक सेल में एक ही मान होता है।

दूसरा सामान्य रूप (2NF):

2NF प्राप्त करने के लिए, हमें यह सुनिश्चित करना होगा कि गैर-कुंजी विशेषताएँ पूर्ण प्राथमिक कुंजी पर निर्भर हों। हमारी प्रारंभिक तालिकाओं में, पुस्तकों की तालिका में आंशिक निर्भरता है क्योंकि शीर्षक और प्रकाशन तिथि केवल ISBN पर निर्भर हैं, पूर्ण प्राथमिक कुंजी पर नहीं। हम पुस्तकों की तालिका को दो तालिकाओं में विभाजित करेंगे:

पुस्तकें (2NF):

  • ISBN (प्राथमिक कुंजी)
  • लेखक ID (विद्यालय कुंजी)

पुस्तक विवरण (2NF):

  • ISBN (प्राथमिक कुंजी)
  • शीर्षक
  • प्रकाशन तिथि

अब, प्रत्येक तालिका में वे गुण होते हैं जो पूरी प्राथमिक कुंजी पर निर्भर करते हैं।

तृतीय सामान्य रूप (3NF):

3NF में, हम स्थानांतरित निर्भरता को दूर करते हैं। पाठकों की तालिका में कोई स्थानांतरित निर्भरता नहीं है, लेकिन लेनदेन तालिका में बुकआईडी के माध्यम से पुस्तकों पर एक स्थानांतरित निर्भरता है। इस निर्भरता को दूर करने के लिए, हम लेनदेन के लिए एक नई तालिका बनाएंगे:

लेनदेन (3NF):

  • लेनदेन पहचान (प्राथमिक कुंजी)
  • पाठक पहचान (प्राथमिक कुंजी)
  • मिति

उधार ली गई पुस्तकें (3NF):

  • लेनदेन पहचान (प्राथमिक कुंजी)
  • पुस्तक पहचान (प्राथमिक कुंजी)

अब, लेनदेन तालिका केवल पाठक पहचान पर निर्भर करती है, और उधार ली गई पुस्तकें तालिका लेनदेन और पुस्तकों के बीच संबंध को प्रबंधित करती है।

हमारी 3NF में सामान्यीकृत तालिकाएं निम्नलिखित हैं:

पुस्तकें (3NF):

  • ISBN (प्राथमिक कुंजी)
  • लेखक पहचान (प्राथमिक कुंजी)

पुस्तक विवरण (3NF):

  • ISBN (प्राथमिक कुंजी)
  • शीर्षक
  • प्रकाशन तिथि

लेखक (3NF):

  • लेखक पहचान (प्राथमिक कुंजी)
  • नाम

पाठक (3NF):

  • पाठक पहचान (प्राथमिक कुंजी)
  • नाम

लेनदेन (3NF):

  • लेनदेन पहचान (प्राथमिक कुंजी)
  • पाठक पहचान (एफके)
  • मिति निर्धारित

उधार ली गई पुस्तकें (3NF):

  • लेनदेन पहचान (एफके)
  • पुस्तक पहचान (एफके)

3NF तक नॉर्मलाइजेशन प्रक्रिया का अनुसरण करके, हमने डेटा अखंडता में सुधार किया है, अतिरिक्तता को कम किया है, और अनचाहे निर्भरताओं को दूर कर दिया है, जिससे एक अच्छी तरह से संरचित और नॉर्मलाइज्ड पुस्तकालय प्रणाली डेटाबेस बना है।

डेटाबेस स्कीमा

— लेखकों के लिए तालिका
तालिका Authors बनाएं (
लेखक पहचान INT प्राथमिक कुंजी,
नाम VARCHAR(255)
);

— पुस्तकों के लिए तालिका
तालिका Books बनाएं (
ISBN VARCHAR(13) प्राथमिक कुंजी,
लेखक पहचान INT,
विदेशी कुंजी (लेखक पहचान) लेखकों(लेखक पहचान) के संदर्भ में
);

— पुस्तक विवरण के लिए तालिका
तालिका पुस्तक विवरण बनाएं (
ISBN VARCHAR(13),
शीर्षक VARCHAR(255),
प्रकाशन तिथि DATE,
विदेशी कुंजी (ISBN) पुस्तकों(ISBN) के संदर्भ में
);

— पाठकों के लिए तालिका
तालिका पाठक बनाएं (
पाठक पहचान INT प्राथमिक कुंजी,
नाम VARCHAR(255)
);

— लेनदेन के लिए तालिका
CREATE TABLE लेनदेन (
लेनदेनID INT प्राथमिक कुंजी,
दाताID INT,
मिति DATE,
विदेशी कुंजी (दाताID) दाता(दाताID) के संदर्भ में
);

— उधार ली गई पुस्तकों के लिए तालिका (लेनदेन और पुस्तकों के बीच बहु-से-बहु संबंध का प्रतिनिधित्व करने के लिए)
CREATE TABLE उधार ली गई पुस्तकें (
लेनदेनID INT,
ISBN VARCHAR(13),
विदेशी कुंजी (लेनदेनID) लेनदेन(लेनदेनID) के संदर्भ में,
विदेशी कुंजी (ISBN) पुस्तकें(ISBN) के संदर्भ में
);

निष्कर्ष

एक पुस्तकालय प्रबंधन प्रणाली के लिए डेटाबेस का डिज़ाइन करना एक जटिल लेकिन आवश्यक कार्य है। एक एरडी से शुरू करके, डेटा को सामान्यीकृत करके, और फिर एक अच्छी तरह से संरचित डेटाबेस स्कीमा बनाकर, आप डेटा अखंडता सुनिश्चित कर सकते हैं, अतिरिक्तता को कम कर सकते हैं, और डेटाबेस प्रदर्शन को अनुकूलित कर सकते हैं। इस संरचित दृष्टिकोण के आधार पर एक विश्वसनीय और कुशल पुस्तकालय प्रणाली का निर्माण किया जा सकता है जो पुस्तकों, लेखकों, दाताओं और लेनदेनों को प्रभावी ढंग से प्रबंधित कर सकती है।

प्रातिक्रिया दे