วิธีจัดการกับฐานข้อมูลที่ไม่มีเอกสารขนาดใหญ่


10

ฉันเพิ่งได้รับการว่าจ้างให้เป็น IT Guy คนเดียวใน บริษัท X หนึ่งและฉันได้รับมอบหมายให้แก้ไขแอปพลิเคชันของพวกเขาและในความคิดของฉันวิธีที่ดีที่สุดในการเริ่มต้นคือการทำความเข้าใจฐานข้อมูล

ฐานข้อมูลปัจจุบันของพวกเขาคือฐานข้อมูล MySQL ที่มี 186 ตาราง (โปรดทราบว่าบางตารางว่างเปล่าสำหรับพระเจ้ารู้ว่าทำไม) และแอปพลิเคชั่นสื่อสารกับฐานข้อมูลผ่านส่วนต่อประสานฐานข้อมูล MS Access (ฉันถามตัวเองว่าทำไมนักพัฒนาถึงทำเช่นนั้นด้วย)

คำถามคือฉันจะเริ่มต้นจัดการฐานข้อมูลที่ไม่มีเอกสารขนาดใหญ่นี้ได้อย่างไร ใช่มันไม่มีเอกสารเนื่องจากผู้พัฒนาแอปพลิเคชันไม่เต็มใจที่จะให้ ERD หรือพจนานุกรมข้อมูลหรือข้อมูลใด ๆ เกี่ยวกับฐานข้อมูลเพื่อทำให้ชีวิตของฉันง่ายขึ้น คุณจะแนะนำให้ใช้ความพยายามที่เต็มไปด้วยอันตรายนี้ในการทำความเข้าใจซอกทุกซอกทุกมุมของฐานข้อมูลที่ค่อนข้างใหญ่ได้อย่างไร

คำถามที่เกี่ยวข้อง: วิธีการดำน้ำในฐานข้อมูลที่น่าเกลียด?


5
เริ่มต้นด้วยตารางที่ว่างเปล่าค่อยๆวางตารางหนึ่งไปเรื่อย ๆ จนกว่าผู้พัฒนาจะยินดีที่จะร่วมมือ ...
René Nyffenegger

คิดก่อนที่จะแสดงความคิดเห็น สหกรณ์ระบุไว้อย่างชัดเจนว่าเขาเป็นเพียงมันผู้ชาย ดังนั้นนักพัฒนาเหล่านั้นคือใคร? บางทีผู้รับเหมาภายนอกที่จ่ายเงินให้อะไรมากไปกว่าเวลาที่สร้างสิ่งนั้น? ทำไมผู้ที่ยินดีที่จะให้เวลาสำหรับการสนับสนุนเพิ่มเติมซึ่ง บริษัท X อาจไม่เต็มใจที่จะจ่ายสำหรับการเริ่มต้นด้วย? หรืออาจเป็นอดีตพนักงานที่ถูกปลดออกเพราะพวกเขาแพงเกินไป? เหตุใดพวกเขาจะใช้เวลาในการช่วยเหลือ บริษัท X ในเรื่องปัญหา? และใครจะได้รับบาดเจ็บจากการทิ้งโต๊ะ?
เออร์วิน Smout

6
@ErwinSmout ฉันเชื่อว่าความคิดเห็นของ Rene ตั้งใจที่จะตีความว่าเป็นความรู้สึกที่เบาสบาย นั่นคือสิ่งที่ฉันเห็น
Mark Storey-Smith

คำตอบ:


11

คำตอบที่เชื่อมโยงจะจัดการกับปัญหาจากล่างขึ้นบนฐานข้อมูลก่อน ในขณะที่ความรับผิดชอบของคุณครอบคลุมแอปพลิเคชันและฐานข้อมูลฉันมีแนวโน้มที่จะโจมตีจากบนลงล่างนี้เริ่มต้นที่แอปพลิเคชัน

มุ่งเน้นความสนใจของคุณในการทำความเข้าใจคุณสมบัติที่ใช้บ่อยที่สุดของแอปพลิเคชันผ่านการปรึกษากับฐานผู้ใช้ ติดตามการโต้ตอบของฐานข้อมูลของคุณสมบัติเหล่านั้นผ่านเครื่องมือทำโปรไฟล์ / การบันทึกเพื่อให้คุณสามารถระบุตารางสำคัญและขั้นตอน

วิธีนี้ทำให้ความพยายามในช่วงแรกของคุณถูก จำกัด ให้อยู่กับ "สิ่งที่มีความสำคัญ" แทนที่จะเสียเวลาในการบันทึกตารางและคิวรีที่อาจไม่ค่อยได้ใช้หรือไม่เคยใช้ การมุ่งเน้นควรนำหลักการ Paretoมาใช้ในการแก้ไขข้อผิดพลาดของคุณ ( เช่นบอกว่า Microsoft อยู่ดี )


ขอบคุณสำหรับคำตอบที่ดี ฉันไม่คิดอย่างนั้นและไม่รู้ว่าฉันสามารถบันทึกข้อความค้นหาที่เรียกใช้บนเซิร์ฟเวอร์ได้ ขอบคุณมาก!
maru

1

ฉันอาจลองรับ MySQL Workbench แล้วสร้างแบบจำลอง EER จากฐานข้อมูล ซึ่งหมายความว่าคุณสามารถดูว่าลิงก์ไปยังอะไรและค้นหาสิ่งที่นักพัฒนาอาจคิด ทั้งหมดขึ้นอยู่กับแอปพลิเคชันด้วยเช่นกันว่ามีโครงสร้างอย่างไร


ฉันพยายามไปตามเส้นทางนั้น แต่มันก็ค่อนข้างน่ารำคาญอยู่ตรงกลางเพราะมี 186 โต๊ะและโต๊ะทำงานแค่ตบโต๊ะทั้งหมดที่อยู่ตรงกลางผืนผ้าใบ และหน้าจอขนาดเล็กอสังหาริมทรัพย์ไม่ได้ช่วยให้สิ่งเล็กลง แต่จากรูปลักษณ์ของมันไม่มีการหลบหนีที่จะทำสิ่งที่ยากลำบาก
maru

อย่ากังวลกับการพยายามทำสิ่งนี้กับ Workbench เพราะมันเต็มไปด้วยข้อบกพร่อง (ข้อบกพร่อง) - คุณจะใช้เวลามากขึ้นในการพยายามเอาชนะพวกเขามากกว่าที่คุณจะประสบความสำเร็จในสิ่งที่มีประโยชน์ แต่พิจารณาการใช้ Microsoft Visio การวิศวกรรมย้อนกลับฐานข้อมูลที่มีอยู่ในรูปแบบตามที่อธิบายไว้ในบทความสั้น ๆ นี้: การเชื่อมโยง
KXNV-89.1FM

ลิงค์ apropos เพิ่มเติม: link - "ทำวิศวกรรมย้อนกลับฐานข้อมูลที่มีอยู่ในรูปแบบฐานข้อมูล" (ด้วย Microsoft Visio)
KXNV-89.1FM

1

ฉันพบว่าDBLintมีประโยชน์สำหรับการระบุปัญหากับฐานข้อมูล มันมีคุณสมบัติที่ดีต่อไปนี้:

  1. มันจัดอันดับการค้นพบตามความสำคัญ (ส่วนตัว) ของพวกเขาดังนั้นคุณจะไม่จมน้ำตายในคำเตือนเล็กน้อย
  2. การค้นพบที่สำคัญมักไม่สามารถโต้แย้งได้และดำเนินการได้
  3. มันให้คะแนนฐานข้อมูลด้วยตัวเลขเดียวดังนั้นคุณสามารถวัดความคืบหน้าของคุณและเปรียบเทียบคุณภาพของฐานข้อมูลต่างๆ ฉันคิดว่ามันเป็นแรงบันดาลใจมาก
  4. ง่ายต่อการกำหนดค่า DBLint ให้ใช้เฉพาะการตรวจสอบตามสคีมา ดังนั้นจึงเป็นเรื่องง่ายที่จะลองแม้ในฐานข้อมูลขนาดใหญ่ ข้อร้องเรียนเดียวที่ฉันอาจมีคือฉันต้องเรียกใช้ Windows เพื่อเรียกใช้ DBLint

เพื่อระบุฮอตสปอตอย่างรวดเร็วบนฐานข้อมูล MySQL Neor Profile SQLเป็นพร็อกซีจำนวนหนึ่งที่อยู่ระหว่างแอปพลิเคชันและฐานข้อมูล ความสวยงามของมันคือการติดตั้งอย่างรวดเร็ว

สำหรับการค้นพบของคีย์หลักและต่างประเทศที่เป็นข้อเท็จจริงในฐานข้อมูลซึ่งมี แต่ไม่ได้กำหนดไว้ในฐานข้อมูลที่คุณอาจจะใช้Linkifier สำหรับการวางผังERD การประมาณสามารถส่งออกไปยังyEdซึ่งมีอัลกอริธึมเลย์เอาต์มากมายสำหรับการวางตำแหน่งของตาราง BPMN เป็นรายการโปรดของฉันสำหรับ ERD


0

มีเครื่องมือของ oracle (My SQl workbench) เพื่อเข้าถึงฐานข้อมูล SQL ของฉันมันเป็นอินเตอร์เฟสที่สามารถให้ ERD ของฐานข้อมูลแก่คุณ


ใช่ฉันคุ้นเคยกับโต๊ะทำงาน แต่มันเป็นฟังก์ชั่นวิศวกรย้อนกลับเพียงแค่ทิ้งตารางทั้งหมดที่อยู่ตรงกลางผืนผ้าใบ ... 186 ตารางเป็นที่น่ารำคาญในการเรียงลำดับ รู้วิธีออกจากที่?
maru
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.