कैसे एक बड़े undocumented डेटाबेस से निपटने के लिए


10

मुझे हाल ही में एक निश्चित कंपनी एक्स में एकमात्र आईटी गाय के रूप में काम पर रखा गया है और मुझे उनके अनुप्रयोगों को ठीक करने का काम सौंपा गया है, और मेरी राय में, डेटाबेस को समझने का सबसे अच्छा तरीका है।

उनका वर्तमान डेटाबेस एक MySQL डेटाबेस है जिसमें 186 टेबल हैं (ध्यान दें कि कुछ टेबल भगवान के लिए खाली हैं क्यों पता है)। और एप्लिकेशन एमएस एक्सेस डेटाबेस इंटरफेस के माध्यम से डेटाबेस के साथ संचार कर रहा है। (मैं खुद से पूछता हूं कि डेवलपर्स ने ऐसा क्यों किया)

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

संबंधित प्रश्न: कैसे एक बदसूरत डेटाबेस में गोता लगाने के लिए?


5
खाली तालिकाओं के साथ शुरू, धीरे-धीरे एक के बाद एक टेबल गिराएं जब तक कि
डेवलपर्स

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

6
@ErwinSmout मेरा मानना ​​है कि रेने की टिप्पणी को हल्के दिल वाले जिबू के रूप में व्याख्यायित किया जाना था। मैंने इसे कैसे देखा।
मार्क स्टोरी-स्मिथ

जवाबों:


11

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

उपयोगकर्ता आधार के साथ परामर्श के माध्यम से आवेदन की सबसे अधिक बार उपयोग की जाने वाली सुविधाओं को समझने पर अपना ध्यान केंद्रित करें। प्रोफाइलिंग / लॉगिंग टूल के माध्यम से उन विशेषताओं के डेटाबेस इंटरैक्शन को ट्रेस करें ताकि आप मुख्य तालिकाओं और प्रक्रियाओं की पहचान कर सकें।

इस तरह से आपके शुरुआती प्रयास "सामान के लिए मायने रखते हैं", जो समय और तालिकाओं का उपयोग करने वाले प्रश्नों को बर्बाद करने के बजाय "कभी मायने नहीं रखता" के लिए विवश हैं। फ़ोकस को आपके बग फिक्सिंग प्रयासों पर नंगे करने के लिए पेरेटो सिद्धांत को भी लाना चाहिए ( जैसा कि Microsoft वैसे भी कहता है )।


महान जवाब के लिए धन्यवाद। मैंने ईमानदारी से ऐसा नहीं सोचा था और न ही मुझे पता था कि मैं सर्वर पर चलाए जा रहे प्रश्नों को लॉग कर सकता हूं। आपका बहुत बहुत धन्यवाद!
मारू

1

मैं संभवतः MySQL कार्यक्षेत्र प्राप्त करने और फिर डेटाबेस से एक ईईआर मॉडल बनाने की कोशिश करूंगा। इसका मतलब है कि आप देख सकते हैं कि क्या लिंक क्या हैं और यह पता करें कि डेवलपर्स क्या सोच रहे हैं। सभी आवेदन पर भी निर्भर करता है कि यह कैसे संरचित है।


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

कार्यक्षेत्र के साथ ऐसा करने का प्रयास करने से परेशान न हों क्योंकि यह दोष (कीड़े) से भरा हुआ है - इससे अधिक समय आप उन पर काबू पाने की कोशिश में बिताएंगे, जिससे आप कुछ भी पूरा कर पाएंगे। इसके बजाय, इस संक्षिप्त लेख: लिंक में बताए गए मॉडल में मौजूदा डेटाबेस को रिवर्स करने के लिए Microsoft Visio का उपयोग करने पर विचार करें: लिंक
KXNV-89.1FM

एक और एप्रोपोस लिंक: लिंक - "एक मौजूदा डेटाबेस को एक डेटाबेस मॉडल में रिवर्स करें" (Microsoft विसिओ के साथ)।
KXNV-89.1FM

1

मुझे डेटाबेस के साथ समस्याओं की पहचान के लिए DBLint उपयोगी लगता है । इसके निम्नलिखित अच्छे गुण हैं:

  1. यह उनके (व्यक्तिपरक) महत्व से निष्कर्षों को रैंक करता है, इसलिए आप मामूली चेतावनी की बाढ़ में नहीं डूबते हैं।
  2. महत्वपूर्ण निष्कर्ष अक्सर निर्विवाद और कार्रवाई योग्य होते हैं।
  3. यह एक एकल संख्या के साथ डेटाबेस को स्कोर करता है, जिससे आप अपनी प्रगति को माप सकते हैं और विभिन्न डेटाबेस की गुणवत्ता की तुलना कर सकते हैं। मुझे यह काफी प्रेरक लगता है।
  4. केवल स्कीमा-आधारित चेक का उपयोग करने के लिए DBLint को कॉन्फ़िगर करना आसान है। इसलिए, बड़े डेटाबेस पर भी इसे आज़माना आसान है। मेरे पास एकमात्र शिकायत यह हो सकती है कि मुझे DBLint चलाने के लिए विंडोज चलाना होगा।

MySQL डेटाबेस पर हॉटस्पॉट्स की त्वरित पहचान के लिए, Neor Profile SQL एक मुट्ठी भर प्रॉक्सी है जो एप्लिकेशन और डेटाबेस के बीच बैठता है। इसकी खूबी यह है कि यह सेटअप करने में तेज है।

डेटाबेस में तथ्यात्मक प्राथमिक और विदेशी कुंजियों की खोज के लिए, जो डेटाबेस में परिभाषित नहीं हैं, फिर भी, आप लिंकफ़ायर का उपयोग कर सकते हैं । ईआरडी प्लॉटिंग के लिए, अनुमानों को yEd में निर्यात किया जा सकता है , जिसमें तालिकाओं की स्थिति के लिए बहुत सारे लेआउट एल्गोरिदम हैं। BPMN ERDs के लिए मेरा पसंदीदा है।


0

My Sql डेटाबेस को एक्सेस करने के लिए ऑरेकल (My SQl कार्यक्षेत्र) का एक उपकरण है, यह एक इंटरफ़ेस है जो आपको डेटाबेस का ERD दे सकता है।


हाँ, मैं कार्यक्षेत्र से परिचित हूं, लेकिन यह रिवर्स इंजीनियर फ़ंक्शन कैनवास के केंद्र में सभी तालिकाओं को खोदता है ... 186 तालिकाओं को छांटने के लिए कष्टप्रद है। उस से एक रास्ता पता है?
मारू
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.