กลับไปหน้าบทความ

อ่าน 2 นาที

การออกแบบฐานข้อมูลเชิงวิวัฒนาการ

การออกแบบฐานข้อมูลเชิงวิวัฒนาการ เกี่ยวข้องกับการปรับปรุง โครงสร้างฐานข้อมูล ทีละน้อย เพื่อให้สามารถอัปเดตได้อย่างต่อเนื่องตามการเปลี่ยนแปลงที่สะท้อนถึงความต้องการของลูกค้า...

การออกแบบฐานข้อมูลเชิงวิวัฒนาการ

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

ประวัติศาสตร์

หลังจากใช้โมเดล Waterfallมาเป็นเวลานาน อุตสาหกรรมซอฟต์แวร์ได้เห็นการเพิ่มขึ้นของการนำวิธีการ Agile มาใช้ในการพัฒนาซอฟต์แวร์วิธีการ Agileไม่ได้ถือว่าข้อกำหนดจะคงที่ในทุกขั้นตอนของวงจรชีวิตซอฟต์แวร์วิธีการเหล่านี้ได้รับการออกแบบมาเพื่อรองรับการเปลี่ยนแปลงเป็นระยะๆ ซึ่งแตกต่างจากเทคนิคการออกแบบ Waterfall ส่วนสำคัญของแนวทางนี้คือการพัฒนาแบบวนซ้ำซึ่งวงจรชีวิตซอฟต์แวร์ทั้งหมดจะถูกดำเนินการหลายครั้งในระหว่างอายุของโครงการ การวนซ้ำแต่ละครั้งจะเห็นวงจรชีวิตการพัฒนาซอฟต์แวร์ที่สมบูรณ์ แม้ว่าการวนซ้ำจะมีระยะเวลาสั้น ซึ่งอาจแตกต่างกันไปตั้งแต่หลายสัปดาห์ถึงไม่กี่เดือน[ 1 ]

ก่อนที่จะนำวิธีการเหล่านี้มาใช้ ระบบทั้งหมดได้รับการออกแบบก่อนที่จะเริ่มพัฒนาโค้ด หลักการเดียวกันนี้ถูกนำมาใช้กับโครงสร้างฐานข้อมูลเช่นกัน โดยถือว่าโครงสร้างฐานข้อมูลนั้นได้มาจากข้อกำหนดของซอฟต์แวร์ซึ่งได้รับการพัฒนาโดยความร่วมมือระหว่างลูกค้า ผู้ใช้ปลายทาง นักวิเคราะห์ธุรกิจ ฯลฯ และข้อกำหนดเหล่านี้ไม่คาดว่าจะเปลี่ยนแปลงไปตามความคืบหน้าในการพัฒนาซอฟต์แวร์ แนวทางนี้พิสูจน์แล้วว่ายุ่งยาก เพราะเมื่อเวลาผ่านไป ความซ้ำซ้อนในโครงสร้างฐานข้อมูลที่มีอยู่ในรูปแบบของแถวหรือคอลัมน์ที่ไม่ได้ใช้งานก็ปรากฏชัด ความซ้ำซ้อนนี้รวมถึง ปัญหา ด้านคุณภาพข้อมูลกลายเป็นเรื่องที่มีค่าใช้จ่ายสูง สรุปได้ว่าการปฏิบัติที่ไม่ให้การออกแบบสลับกับการสร้างและการทดสอบนั้นไม่มีประสิทธิภาพอย่างมาก[ 1 ]

เทคนิค

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

มีเทคนิคการออกแบบฐานข้อมูลเชิงวิวัฒนาการห้าประการที่สามารถช่วยให้นักพัฒนาสร้างฐานข้อมูลของตนในลักษณะวนซ้ำได้ ภาพรวมโดยย่อของเทคนิคทั้งห้าประการมีดังต่อไปนี้

การปรับโครงสร้างฐานข้อมูลใหม่

การปรับโครงสร้างใหม่ (Refactoring)คือกระบวนการเปลี่ยนแปลงโปรแกรมโดยไม่กระทบต่อฟังก์ชันการทำงานของโปรแกรม การปรับโครงสร้างฐานข้อมูล (Database refactoring) คือเทคนิคในการเปลี่ยนแปลงโครงสร้างฐานข้อมูลเล็กน้อยโดยไม่กระทบต่อฟังก์ชันการทำงานและข้อมูลที่จัดเก็บในฐานข้อมูล[ 2 ]วัตถุประสงค์หลักของการปรับโครงสร้างฐานข้อมูลคือการปรับปรุงการออกแบบฐานข้อมูลเพื่อให้ฐานข้อมูลสอดคล้องกับความต้องการที่เปลี่ยนแปลงไปมากขึ้น ผู้ใช้สามารถแก้ไขตารางมุมมองขั้นตอนการจัดเก็บและทริกเกอร์ได้ ความสัมพันธ์ระหว่างฐานข้อมูล และแอปพลิเคชันภายนอกทำให้การปรับโครงสร้างฐานข้อมูลเป็นเรื่องท้าทาย

การสร้างแบบจำลองข้อมูลเชิงวิวัฒนาการ

การสร้างแบบจำลองข้อมูลเป็นเทคนิคการระบุเอนทิตีการเชื่อมโยงคุณลักษณะกับเอนทิตี และการตัดสินใจโครงสร้างข้อมูลเพื่อแสดงคุณลักษณะ[ 3 ]ในสถานการณ์ฐานข้อมูลแบบดั้งเดิม จะมีการสร้างแบบจำลองข้อมูลเชิงตรรกะขึ้นตั้งแต่เริ่มต้นเพื่อแสดงเอนทิตีและคุณลักษณะที่เกี่ยวข้อง ในการสร้างแบบจำลองข้อมูลเชิงวิวัฒนาการ เทคนิคการสร้างแบบจำลองข้อมูลจะดำเนินการในลักษณะวนซ้ำ กล่าวคือมีการพัฒนาแบบจำลองข้อมูลหลายแบบ โดยแต่ละแบบจำลองจะแสดงถึงแง่มุมที่แตกต่างกันของฐานข้อมูล เทคนิคการสร้างแบบจำลองข้อมูลประเภทนี้ใช้ในสภาพแวดล้อมแบบ Agile และเป็นหนึ่งในหลักการสำคัญของการพัฒนาแบบ Agile [ 4 ]

การทดสอบการถดถอยของฐานข้อมูล

เมื่อใดก็ตามที่มีการเพิ่มฟังก์ชันการทำงานใหม่ลงในระบบ จำเป็นอย่างยิ่งที่จะต้องตรวจสอบว่าการอัปเดตนั้นไม่ทำให้ระบบเสียหายหรือใช้งานไม่ได้ ในฐานข้อมูล ตรรกะทางธุรกิจจะถูกนำไปใช้ในขั้นตอนการจัดเก็บกฎการตรวจสอบความถูกต้องของข้อมูลและความสมบูรณ์ของการอ้างอิงและจะต้องได้รับการทดสอบอย่างละเอียดถี่ถ้วนทุกครั้งที่มีการเปลี่ยนแปลงใดๆ ในระบบ การทดสอบการถดถอยคือกระบวนการดำเนินการกรณีทดสอบ ทั้งหมด ทุกครั้งที่มีการเพิ่มฟีเจอร์ใหม่ลงในระบบการพัฒนาแบบทดสอบก่อน (TFD) เป็นรูปแบบหนึ่งของการทดสอบการถดถอยที่ใช้ในการออกแบบฐานข้อมูลเชิงวิวัฒนาการ ขั้นตอนที่เกี่ยวข้องในแนวทาง TFD คือ[ 3 ]

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

การจัดการการกำหนดค่าของส่วนประกอบฐานข้อมูล

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

แซนด์บ็อกซ์สำหรับนักพัฒนา

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

ข้อดีและข้อเสีย

ข้อดี

  1. การออกแบบฐานข้อมูลที่มีคุณภาพสูง: ในการออกแบบฐานข้อมูลแบบวิวัฒนาการ นักพัฒนาจะทำการเปลี่ยนแปลงโครงสร้างฐานข้อมูลทีละเล็กทีละน้อย ซึ่งจะทำให้ได้โครงสร้างฐานข้อมูลที่ได้รับการปรับให้เหมาะสม ที่สุด
  2. การรับมือกับการเปลี่ยนแปลง: ใน วิธี การฐานข้อมูลแบบดั้งเดิมจะใช้เวลามากในการปรับปรุงและจัดโครงสร้างฐานข้อมูลใหม่เมื่อความต้องการเปลี่ยนแปลงไป แต่ในเทคนิคฐานข้อมูลแบบวิวัฒนาการโครงสร้างของฐานข้อมูลจะถูกปรับเปลี่ยนเป็นระยะเพื่อให้ทันกับความต้องการที่เปลี่ยนแปลงไป ดังนั้น เทคนิคการออกแบบฐานข้อมูลแบบวิวัฒนาการจึงเหมาะสมกว่าในการรับมือกับความต้องการที่เปลี่ยนแปลงไป
  3. รับประกันการทำงานของระบบได้ตลอดเวลา: แนวทางการออกแบบฐานข้อมูลเชิงวิวัฒนาการนั้นยึด หลักการพัฒนาแบบ ทดสอบก่อน (test-first development model) ซึ่งจะทำการทดสอบการทำงานทั้งหมดของระบบทั้งก่อนและหลังการอัปเดต ดังนั้นจึงรับประกันได้ว่าระบบจะทำงานได้เสมอ
  4. สอดคล้องกับการพัฒนาซอฟต์แวร์: อุตสาหกรรมไอทีกำลังก้าวไปสู่แนวทางการพัฒนาซอฟต์แวร์แบบ Agile และการออกแบบฐานข้อมูลแบบวิวัฒนาการช่วยให้การพัฒนาข้อมูลสอดคล้องกับการพัฒนาซอฟต์แวร์
  5. ลดความพยายามโดยรวม: ในสภาพแวดล้อมแบบวิวัฒนาการ จะมีการใช้งานเฉพาะฟังก์ชันที่จำเป็นในขณะนั้นเท่านั้น และจะไม่ใช้งานฟังก์ชันอื่นใดเพิ่มเติม

ข้อเสีย

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

การเปรียบเทียบกับการออกแบบฐานข้อมูลแบบดั้งเดิม

เทคนิคการออกแบบฐานข้อมูลแบบดั้งเดิมไม่รองรับการเปลี่ยนแปลงเหมือนกับเทคนิคการออกแบบฐานข้อมูลเชิงวิวัฒนาการ 'น่าเสียดายที่ชุมชนข้อมูลแบบดั้งเดิมสันนิษฐานว่าการพัฒนาโครงสร้างฐานข้อมูลเป็นเรื่องยาก และด้วยเหตุนี้จึงไม่เคยคิดหาวิธีทำ' [ 1 ] ในแง่หนึ่ง การออกแบบเชิงวิวัฒนาการเหมาะสำหรับนักพัฒนาแอปพลิเคชันมากกว่า และการออกแบบแบบดั้งเดิมเหมาะสำหรับผู้เชี่ยวชาญด้านข้อมูลมากกว่า[ 6 ]

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

เครื่องมือ

ด้านล่างนี้คือรายชื่อเครื่องมือที่ช่วยในการออกแบบและพัฒนาฐานข้อมูลในลักษณะที่เป็นวิวัฒนาการ

ดูเพิ่มเติม

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Evolutionary_database_design&oldid=1306187700 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ การออกแบบฐานข้อมูลเชิงวิวัฒนาการ

การออกแบบฐานข้อมูลเชิงวิวัฒนาการ เกี่ยวข้องกับการปรับปรุง โครงสร้างฐานข้อมูล ทีละน้อย เพื่อให้สามารถอัปเดตได้อย่างต่อเนื่องตามการเปลี่ยนแปลงที่สะท้อนถึงความต้องการของลูกค้า...

ประวัติศาสตร์

หลังจากใช้ โมเดล Waterfall มาเป็นเวลานาน อุตสาหกรรมซอฟต์แวร์ได้เห็นการเพิ่มขึ้นของการนำวิธีการ Agile มาใช้ในการพัฒนาซอฟต์แวร์ วิธีการ Agile ไม่ได้ถือว่า ข้อกำหนด จะคงที่ในทุกขั้นตอนของ วงจรชีวิตซอฟต์แวร์...

เทคนิค

ดังที่กล่าวไว้ในหัวข้อก่อนหน้านี้ วิธีการวิวัฒนาการมีลักษณะเป็นการทำซ้ำ และวิธีการเหล่านี้ได้รับความนิยมอย่างมากในช่วงสองทศวรรษที่ผ่านมา การออกแบบฐานข้อมูลเชิงวิวัฒนาการมีเป้าหมายที่จะสร้างโครงสร้างฐานข้อมูลไปเรื่อยๆ ตลอดระยะเวลาของโครงการ...

การปรับโครงสร้างฐานข้อมูลใหม่

การปรับโครงสร้างใหม่ (Refactoring) คือกระบวนการเปลี่ยนแปลงโปรแกรมโดยไม่กระทบต่อฟังก์ชันการทำงานของโปรแกรม การปรับโครงสร้างฐานข้อมูล (Database refactoring)...