ในฐานะนักพัฒนาซอฟต์แวร์ฉันได้ทำงานในโครงการตั้งแต่แอพเล็ก ๆ ที่ทำที่บ้านไปจนถึงแอปพลิเคชันระดับองค์กร ในเกือบทุกโครงการฉันใช้ฐานข้อมูลหรือเสียใจที่เลือกที่จะไม่ใช้ตั้งแต่ต้น
ตอนนี้ฉันสงสัยบางอย่างเกี่ยวกับฐานข้อมูลและการใช้งานในแอปพลิเคชันทั่วไป:
- เหตุใด Windows จึงไม่ใช้ฐานข้อมูล SQL "กลาง" ใด ๆ ตัวอย่างเช่น:
- ข้อผิดพลาดข้อมูลการรายงานจะถูกเก็บไว้ในกลุ่มของไฟล์
- Windows Update เก็บทุกอย่างไว้ในรูปแบบไฟล์เดียว
- แคชไอคอนถูกเก็บไว้ในไฟล์เดียวที่แปลกมากซึ่งดูเหมือนจะไม่สามารถเข้าถึงได้ผ่านทาง SQL ฯลฯ
- เหตุใดแอปพลิเคชันขนาดใหญ่จำนวนมากจึงหลีกเลี่ยงการใช้ฐานข้อมูล ตัวอย่างเช่น Microsoft Outlook จะไม่ได้รับจากการใช้ฐานข้อมูลจริงแทนที่จะสร้างล้อใหม่โดยมีรูปแบบของตนเองสำหรับไฟล์. pst และจัดเก็บข้อมูลบางอย่างในรีจิสตรี
ถ้าฐานข้อมูลเพิ่มเลเยอร์เพิ่มเติมของความซับซ้อนโดยรวมและการสูญเสียประสิทธิภาพเพียงเล็กน้อยมันเป็นราคาที่ได้เปรียบอย่างมากในการทำให้โค้ดง่ายขึ้นในสถานการณ์ส่วนใหญ่โดยเฉพาะอย่างยิ่งเมื่อมันมาถึงการจัดเก็บข้อมูลขนาดเล็กที่จัดระเบียบแทนไบนารีขนาดใหญ่ ลำธาร เหตุใดจึงมีบางผลิตภัณฑ์ที่ใช้ฐานข้อมูลจริง อาจเป็นแอปพลิเคชั่นเดียวที่ฉันรู้ซึ่งจริงๆแล้วใช้ฐานข้อมูล Sqlite คือ Firefox และบางที Microsoft Exchange (แต่อันสุดท้ายไม่ใช่แอปพลิเคชันเดสก์ท็อป)?
นอกจากนี้จะไม่มีชุดของแอปพลิเคชันเช่น Microsoft Office หรือ Microsoft Expression ได้รับประโยชน์จากการมีฐานข้อมูล SQL แบบรวมทำให้ง่ายต่อการปรับใช้แอปพลิเคชันอัปเดต / อัปเกรดข้อมูลแบ่งปันข้อมูลระหว่างแอปพลิเคชันเหล่านั้น เป็นต้น