ทำไม Windows / Linux ไม่ใช้ฐานข้อมูลเชิงสัมพันธ์ (RDBMS)


32

ทำไม Windows / Linux ไม่ใช้ฐานข้อมูลเชิงสัมพันธ์ ( RDBMS )

ฉันรู้ว่าพวกเขาใช้ระบบไฟล์เพื่อจัดเก็บข้อมูลทั้งหมด แต่คุณไม่คิดว่ามันจะมีประสิทธิภาพมากกว่าในการใช้ฐานข้อมูลเหมือนที่เราใช้ในเว็บไซต์ / เว็บแอพ

โปรดอธิบายอย่างละเอียดเกี่ยวกับการใช้ระบบไฟล์ผ่านฐานข้อมูลเพื่อการจัดเก็บ

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


32
ระบบไฟล์คือฐานข้อมูล

20
เพราะระบบไฟล์มีความจำเป็นที่จะต้องใช้ฐานข้อมูล
Kilian Foth

16
Windows ใช้ฐานข้อมูลชื่อ "Registry" หรือคุณหมายถึง "ฐานข้อมูลเชิงสัมพันธ์" นั่นเป็นคำถามที่แตกต่าง
Doc Brown

6
@ gnasher729 ระบบไฟล์เป็นฐานข้อมูลที่เฉพาะเจาะจงมากและเป็นสิ่งที่ดีสำหรับข้อมูลบางประเภทเท่านั้น ข้อมูลประเภทอื่นจะทำงานได้ดีขึ้นกับฐานข้อมูลประเภทต่างๆ (เช่นความสัมพันธ์)

6
@KilianFoth ไม่ได้จริงๆ คุณสามารถเขียนไปยังพาร์ทิชันดิสก์ดิบ (ซึ่งไม่เทียบเท่ากับไฟล์ OS)
พอลเดรเปอร์

คำตอบ:


60

วันนี้ระบบการจัดการฐานข้อมูลส่วนใหญ่(เช่นPostGreSQL , MongoDBและอื่น ๆ ) เก็บข้อมูลไว้ภายในไฟล์ OS (ในอดีต DBMS บางตัวใช้พาร์ติชันดิสก์ดิบโดยตรง)

ในคอมพิวเตอร์ล่าสุดที่ยังใช้ดิสก์หมุนอยู่ดิสก์นั้นช้ามากเมื่อเทียบกับ CPU หรือ RAM - ซึ่งการเพิ่มเลเยอร์ซอฟต์แวร์บางตัวนั้นไม่เกี่ยวข้องกัน เทคโนโลยีSSDอาจเปลี่ยนแปลงเล็กน้อยและระบบไฟล์บางระบบได้รับการปรับให้เหมาะกับ SSD

ไฟล์มีอยู่ในระบบปฏิบัติการส่วนใหญ่โดยทั่วไปด้วยเหตุผลทางประวัติศาสตร์และสังคม (โดยเฉพาะอย่างยิ่งคอมไพเลอร์ C และเครื่องมือส่วนใหญ่ - บรรณาธิการ, ลิ้งค์ - ต้องการไฟล์ดังนั้นจึงมีปัญหาไก่และไข่) และเนื่องจากมีไฟล์ที่ดีมากการใช้งานระบบ

BTW ระบบอำนวยความสะดวกที่จำเป็นบางอย่างสามารถใช้ฐานข้อมูล ตัวอย่างเช่นบน Linux PAMสามารถกำหนดค่าให้ใช้ข้อมูลในฐานข้อมูล (แต่ไม่ค่อยทำในทางปฏิบัติ) นอกจากนี้เมลเซิร์ฟเวอร์บางตัวอาจเก็บข้อมูลบางส่วนหรือส่วนใหญ่ไว้ในฐานข้อมูล (เช่นExim )

ไฟล์เป็น abstractions ที่ต่ำกว่าฐานข้อมูลเล็กน้อยดังนั้นจึงสามารถนำไปใช้งานได้ง่ายขึ้น (เนื่องจากระบบไฟล์ & เลเยอร์VFSในเคอร์เนล Linux) และใช้งานได้เร็วขึ้น โดยเฉพาะอย่างยิ่งการดำเนินการกับไฟล์นั้นถูก จำกัด มากกว่าในฐานข้อมูล ในความเป็นจริงคุณสามารถเห็นไฟล์หรือระบบไฟล์เป็นฐานข้อมูลที่ จำกัด มาก!

คุณสามารถออกแบบระบบปฏิบัติการโดยไม่ต้องไฟล์ใด ๆแต่มีบางฉากอื่น ๆติดตาเครื่องจักร (เช่นมีทุกกระบวนการจะขัดขืนแล้วคุณไม่สนใจมากอย่างชัดเจนเกี่ยวกับการจัดเก็บตั้งแต่ระบบปฏิบัติการคือการจัดการทรัพยากรถาวร) สิ่งนี้ทำในระบบปฏิบัติการทางวิชาการหลายระบบ(1) (และในเครื่อง Smalltalk และLispของทศวรรษ 1980 อย่างใดในระบบ IBM i , aka AS / 400และในบางโครงการของเล่นที่เชื่อมโยงจากosdev) แต่เมื่อคุณออกแบบระบบปฏิบัติการของคุณด้วยวิธีนี้คุณจะไม่สามารถใช้ประโยชน์จากเครื่องมือที่มีอยู่มากมาย (เช่นคุณต้องทำให้คอมไพเลอร์และส่วนต่อประสานผู้ใช้ของคุณเป็นรอยขีดข่วน

โปรดสังเกตว่าระบบปฏิบัติการmicrokernelอาจไม่ต้องการไฟล์ที่จัดทำโดยเคอร์เนลเลเยอร์เนื่องจากระบบไฟล์เป็นเพียงแอปพลิเคชันเซิร์ฟเวอร์ (เช่นตัวแปล Hurd ที่ทำงานใน userland) ดูวิธีunikernelในMirageOSของวันนี้ด้วย

Linux (และอาจเป็น Windows ซึ่งได้รับแรงบันดาลใจส่วนใหญ่จากVMS & Unix ) จำเป็นต้องใช้ไฟล์ในการทำงาน อย่างน้อยที่สุดที่initโปรแกรม (โปรแกรมแรกที่ตั้งขึ้นโดย kernel) ต้องเป็นผู้ที่ปฏิบัติการเก็บไว้ในแฟ้ม (มัก/sbin/initแต่มันอาจจะsystemdวันนี้) และ (เกือบ) โปรแกรมอื่น ๆ ทั้งหมดจะเริ่มต้นด้วยการexecve (2 ) syscall ดังนั้นจะต้องเก็บไว้ในไฟล์ อย่างไรก็ตามFUSEช่วยให้คุณสามารถให้ความหมายเหมือนไฟล์กับสิ่งที่ไม่ใช่ไฟล์

โปรดสังเกตว่าบน Linux (และบางทีแม้แต่ Windows ที่ฉันไม่รู้จักและไม่เคยใช้) sqliteเป็นห้องสมุดที่จัดการฐานข้อมูล SQL บางไฟล์ในไฟล์และให้ API สำหรับสิ่งนั้น เป็นที่ทราบกันดีว่าAndroid (ตัวแปร Linux) ใช้ไฟล์ sqlite จำนวนมาก (แต่ก็ยังมีระบบไฟล์เหมือน POSIX)

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

ที่จริงแล้วคำถามที่น่าสนใจคือทำไมระบบปฏิบัติการปัจจุบันยังใช้ไฟล์อยู่และคำตอบคือมรดกและเหตุผลทางเศรษฐกิจและวัฒนธรรม (น่าเศร้าภาษาโปรแกรมและไลบรารีส่วนใหญ่ในปัจจุบันยังต้องการไฟล์)


หมายเหตุ 1: ระบบปฏิบัติการทางวิชาการแบบถาวรรวมถึงLisaac & Grasshopperแต่โครงการทางวิชาการเหล่านี้ดูเหมือนจะไม่ทำงาน ดูที่http://tunes.org/ด้วย มันไม่ได้ใช้งาน แต่ได้รับการอภิปรายจำนวนมากรอบหัวข้อดังกล่าว

หมายเหตุ 2: ความคิดของไฟล์ที่มีการเปลี่ยนแปลงอย่างกว้างขวางในช่วงเวลา (ดูที่นี้คำตอบเกี่ยวกับประสบการณ์การเขียนโปรแกรมครั้งแรกของฉัน): ครั้งแรกMSDOSในปี 1980 ไอบีเอ็มพีซี (! ไดเรกทอรีไม่มี) ที่ VMS -ON 1978 Vaxen - (มีทั้งแบบคงที่บันทึก ไฟล์และไฟล์แบบเรียงลำดับที่มีระบบการกำหนดเวอร์ชันดั้งเดิม) เมนเฟรมในยุค 1970 ( IBM / 370 ที่มีOS / VS2 MVS ) มีความคิดที่แตกต่างกันมากในเรื่องของไฟล์และระบบไฟล์ เวลาในการเข้าถึงหน่วยความจำหลักเป็นสองสามพัน - ดังนั้นในเวลานั้นดิสก์ที่รันค่อนข้างเร็วกว่าวันนี้แม้ว่าดิสก์ของวันนี้จะเป็นอย่างแน่นอนเร็วกว่าในศตวรรษที่แล้ววันนี้อัตราส่วนความเร็ว CPU / ดิสก์ประมาณหนึ่งล้าน แต่ตอนนี้เรามี SSD) นอกจากนี้ไฟล์ยังมีประโยชน์น้อยกว่า (หรือแม้กระทั่งไม่ได้) เมื่อหน่วยความจำยังคงอยู่ (เช่นบนถังแม่เหล็กCAB500ยุค 1960 หรือคอมพิวเตอร์ในอนาคตที่ใช้MRAM )


9
มันก็คุ้มค่าที่จะชี้ให้เห็นว่าบางระบบไฟล์มีคุณสมบัติ RDBMS จำนวนมาก ตัวอย่างเช่นข้อมูลเมตาของไฟล์ (โดยเฉพาะอย่างยิ่งข้อมูลเมตาที่ขยายเพิ่ม) ใน BeFS ถูกทำดัชนีด้วย B + trees และตัวจัดการไฟล์ BeOS มีเอ็นจิ้นการค้นหาคล้าย SQL ที่ค้นหาเมตาดาต้าที่จัดทำดัชนีเพื่อค้นหาไฟล์
greyfade

2
ผมไม่กล้าที่วางไว้ในคำตอบของฉัน แต่ทั้งสองtunes.orgและบล็อก J.Pitrat ของสามารถขยายมุมมองของคุณเกี่ยวกับซอฟต์แวร์และระบบปฏิบัติการ
Basile Starynkevitch

4
@greyfade: ระบบไฟล์เป็นฐานข้อมูลวัตถุ ไม่มีระบบไฟล์ที่ฉันรู้ว่ามีความสามารถในการตอบแบบสอบถามเชิงสัมพันธ์ (เช่นไฟล์ที่มีเวลา mod ในช่วงที่กำหนด) คุณต้องทำอย่างนั้นโดยการสอบถามเวลา mod ของไฟล์ทั้งหมดและกรองตัวเอง ระบบไฟล์บางอย่างทำงานได้ดีเมื่อใช้โดยตรงเป็นฐานข้อมูลวัตถุ (จัดเก็บไฟล์ขนาดเล็กจำนวนมากนับล้านไฟล์โดยที่ชื่อไฟล์เป็นกุญแจสำคัญ) แต่คนอื่น ๆ ก็ทำงานได้ดีกับเวิร์กโหลดประเภทนี้
Peter Cordes

3
@PeterCordes: BeFS ทำเช่นนั้น เนื่องจากข้อมูลเมตาทั้งหมดเป็น B + ดัชนีแบบต้นไม้จึงสนับสนุนการสอบถามช่วงสัญลักษณ์การรวมและสิ่งสนุกอื่น ๆ ฉันจำได้ว่าเคยได้ยินว่า Microsoft กำลังทำสิ่งเดียวกันใน WinFS
greyfade

4
PalmOS เป็นระบบปฏิบัติการหลักที่ไม่มีระบบไฟล์ แต่มีฐานข้อมูลเชิงสัมพันธ์ที่นำไปใช้โดยตรงกับ RAM / แฟลช (ฮาร์ดแวร์ดั้งเดิมไม่ได้ใช้หน่วยความจำแฟลชเช่น iPhones วันนี้ แต่ใช้ RAM แบบคงที่แบตเตอรี่สำรองสำหรับทั้ง RAM และดิสก์)
slebetman

23

แม้ว่านี่จะอิงตามความคิดเห็น แต่ฉันคิดว่ามันเป็นเพียงสิ่งประดิษฐ์ทางประวัติศาสตร์อีกชิ้น ระบบปฏิบัติการก่อนหน้านั้นใช้การออกแบบระบบไฟล์อย่างง่ายเพื่อประสิทธิภาพที่เชื่อมโยงกับคุณสมบัติของฮาร์ดแวร์ที่มีอยู่ในเวลานั้นและมันก็เป็นเช่นเดียวกัน เป็นการยากที่จะเปลี่ยนไฟล์เก่าอ่าน / เขียน API สำหรับการสืบค้น / การแทรก APIs เมื่อทำธุรกรรมสำเร็จ

ระบบไฟล์ปัจจุบันทั้งหมดมีข้อกำหนดที่จะเข้ากันได้กับ API เก่าเหล่านี้

Microsoft คิดเกี่ยวกับการแทนที่ระบบไฟล์ด้วยRDBMSซึ่งเป็นระบบพื้นฐานในการพัฒนาLonghorn นั่นเป็นการเปลี่ยนแปลงที่มากเกินไปสำหรับพวกเขาที่จะดึงออก แต่คุณจะเห็นความพยายามของพวกเขาดำเนินการต่อในรูปแบบของการค้นหาของ Windows (ที่ RDBMS ใช้ในการจัดเก็บสำเนาของข้อมูลเมตา) และคุณสมบัติเช่นระบบFilestream ของ SQL Serverตารางฐานข้อมูลของข้อมูลไฟล์ถูกเปิดเผยต่อระบบปฏิบัติการในฐานะไดเรกทอรีทั่วไปที่อนุญาตให้ทั้งWindows Explorerเข้าถึงข้อมูลและแบบสอบถาม SQL ของข้อมูลเดียวกัน)

ระบบปฏิบัติการอื่น ๆ มีระบบไฟล์ RDBMS AS / 400เคยมีสิ่งเหล่านี้แม้ว่าฉันจะไม่เคยเรียนรู้เกี่ยวกับพวกเขามากพอ ฉันจำได้ว่ามันแปลก ๆ ในเวลานั้น) ฉันคิดว่าระบบเมนเฟรมอื่นมีวิธีการแบบเดียวกัน


1
หากหน่วยความจำรองรับคุณอาจคิดถึง DB2 UDB บน ​​OS / 400 aka i5 / OS (ตอนนี้เรียกว่า "IBM i" เท่านั้น): publib.boulder.ibm.com/iseries/v5r2/ic2924/info/rzamb/ ......
Brian ไคลน์

1
ใช่มันเป็นการดีมากที่จะเริ่มต้นการทำธุรกรรม / คอมมิชชันในการอนุญาตไฟล์แทนการใช้ "find with -exec" ระดับความสูงของระบบไฟล์ดั้งเดิมที่อยู่ในระดับต่ำไม่ได้ลงไปใน adminland เป็นไปโดยไม่ได้ตั้งใจและควรเป็นไปในทิศทางของปลั๊กอินการเขียนโปรแกรม "ระบบแฟ้ม" เป็นที่จัดเก็บ bytestream ที่เหมาะสมและระบบการจัดการข้อมูลเมตา (แม้ว่าการตีความเนื้อหา bytestream ควรจะยังคงอยู่ในเลเยอร์แอปพลิเคชันมิฉะนั้นจะเกิดอาการปวดหัว)? ใช่เราต้องการ!
David Tonhofer

12

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

มีข้อดีที่จะรวมเข้าด้วยกัน แต่จนถึงขณะนี้มีน้อยและมากพอที่การเคลื่อนไหวจะเติบโตอย่างช้าๆ พิจารณาว่ามันยากที่จะให้คนพูดว่า "ให้คอลัมน์ที่ 3 ของใบแจ้งหนี้ทุกใบที่ฉันได้รับตั้งแต่ปี 2010 และรวมเข้าด้วยกัน" หรือ "อย่าให้ฉันลบไฟล์นี้จนกว่าฉันจะลบมันออกจาก Excel สเปรดชีตด้วย "

ระบบไฟล์มีข้อได้เปรียบเล็กน้อยจากฐานข้อมูลเชิงสัมพันธ์ที่ทำให้พวกเขาดำเนินต่อไป:

  • มันง่ายกว่ามาก นี่เป็นเรื่องใหญ่เมื่อทำการบู๊ตเครื่องคอมพิวเตอร์ แม้กระทั่งบนAndroidที่พวกเขามี RDBMS สำหรับการจัดเก็บพวกเขามีภาพเก่าธรรมดาสำหรับการจัดการกระบวนการ bootloading เริ่มต้น
    • การกำหนดข้อ จำกัด ทำได้ง่ายกว่า ในเครื่องไม่ จำกัด RDBM ให้พลังงานค่อนข้างมาก อย่างไรก็ตามในโลกของระบบไฟล์มีข้อ จำกัด มากมายที่เกิดขึ้นจากการพยายามที่จะรวดเร็วเมื่อวางเลเยอร์โดยตรงบนดิสก์หมุน มันยากที่จะพิสูจน์ได้ว่าแบบสอบถาม RDBMS ไม่เกินข้อ จำกัด เหล่านั้นกว่าที่จะให้การรับประกันเดียวกันสำหรับระบบไฟล์
  • พวกเขาจัดการโครงสร้างแบบลำดับชั้นได้ดีขึ้น ในหลายกรณียังคงเป็นเรื่องปกติที่ผู้ใช้จะจัดเก็บไฟล์ในรูปแบบลำดับชั้น ใน RDBMS นั่นเป็นกรณีพิเศษ ระบบไฟล์ปรับให้เหมาะสมสำหรับกรณีพิเศษนั้น RDBMS ไม่ทำเช่นนั้น
  • ความเชื่อถือได้ มันง่ายกว่ามากในการพิสูจน์ว่าสองชั้นทำงานอย่างอิสระมากกว่าที่จะพิสูจน์ว่าระบบยักษ์หนึ่งระบบทำงานได้อย่างสมบูรณ์แบบ RAID arrays, เจอร์นัลที่ไม่ปลอดภัยในเวลาที่ไฟฟ้าขัดข้องและคุณสมบัติขั้นสูงอื่น ๆ นั้นง่ายต่อการติดตั้งในเลเยอร์ด้านล่างเลเยอร์ที่จัดการกับสิ่งต่าง ๆ เช่นกรดหรือข้อ จำกัด ของกุญแจต่างประเทศ

1
ความน่าเชื่อถือ: คุณสามารถเรียกใช้ฐานข้อมูลบน RAID เช่นเดียวกับที่คุณสามารถเรียกใช้ระบบไฟล์บนอุปกรณ์ RAID และใช้ดิสก์โดยตรง การทำเจอร์นัลจำเป็นต้องทำภายในระบบไฟล์ / ฐานข้อมูล (ยกเว้นว่าคุณต้องการให้การรับรองความถูกต้องโดยปิดการใช้งานการเขียนแคชและไม่เคยเรียงลำดับ I / Os. ​​เช่นsyncโหมด) +1 สำหรับประเด็นอื่น ๆ ทั้งหมดของคุณ ประสิทธิภาพการสืบทอดแบบรวดเร็วที่สิ่งต่าง ๆ มากมายในหนึ่งตำบลไม่ทำให้ประสิทธิภาพลดลงในอีกตำบลหนึ่ง เว้นแต่แต่ละ dir หรือแฟ้มเป็นตารางที่แตกต่างกัน ...
ปีเตอร์ Cordes

ความน่าเชื่อถือ: IBM i series OSes ได้รับการออกแบบให้มีความน่าเชื่อถือมากกว่าที่คุณจินตนาการได้รับการออกแบบสำหรับการใช้งานสไตล์เมนเฟรม ลำดับชั้นนั้นมีเพียงเพราะข้อ จำกัด ของระบบไฟล์ดังนั้น MS ต้องการค้นหาในภายหลังและการดำเนินการฐานข้อมูลบนระบบไฟล์ที่มีอยู่ ดู gmail เป็นตัวอย่างว่าคุณจะมีลำดับชั้นได้อย่างไรโดยไม่ต้องใช้ลำดับชั้น!
gbjbaanb

3

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

เห็นได้ชัดว่ามีเทคโนโลยีที่ช่วยให้คุณสามารถติดตั้งฐานข้อมูลเชิงสัมพันธ์เป็นระบบไฟล์เมื่อการใช้งานของพวกเขาเป็นธรรม Oracle DBFS (ระบบไฟล์ฐานข้อมูล)เป็นตัวอย่าง ตัวอย่างนี้จากเอกสารอธิบายถึงเหตุผลเบื้องหลังค่อนข้างดี:

Database File System (DBFS) ใช้ประโยชน์จากคุณสมบัติของฐานข้อมูลเพื่อจัดเก็บไฟล์และจุดแข็งของฐานข้อมูลในการจัดการข้อมูลเชิงสัมพันธ์อย่างมีประสิทธิภาพเพื่อใช้อินเตอร์เฟสระบบไฟล์มาตรฐานสำหรับไฟล์ที่จัดเก็บในฐานข้อมูล ด้วยอินเทอร์เฟซนี้การจัดเก็บไฟล์ในฐานข้อมูลจะไม่ จำกัด เฉพาะโปรแกรมที่เขียนขึ้นเพื่อใช้BLOBและCLOBอินเตอร์เฟสแบบเป็นโปรแกรม ขณะนี้ไฟล์ในฐานข้อมูลสามารถเข้าถึงได้อย่างโปร่งใสโดยใช้โปรแกรมระบบปฏิบัติการ (OS) ที่ทำงานกับไฟล์

โซลูชันจัดเตรียมชุดของอินเตอร์เฟส (ไคลเอ็นต์บรรทัดรับคำสั่งไลบรารีโค้ด) สำหรับข้อมูล LOB ที่เก็บไว้ในตารางฐานข้อมูล สิ่งนี้สามารถใช้กับระบบปฏิบัติการ Windows และ Linux (แม้ว่าเท่าที่ฉันจะบอกได้ระดับของการรวมจะแตกต่างกันระหว่างพวกเขา)

ส่วนประกอบ Oracle DBFS

ที่มา: docs.oracle.com

ตามเอกสารอธิบายระบบไฟล์ควรเป็นไปได้ที่จะใช้อย่างโปร่งใสบน Linux

บน Linux นั้นdbfs_clientยังมีอินเตอร์เฟสการเมานต์ที่ใช้ระบบไฟล์ใน User FUSEkernel ( ) โมดูลเคอร์เนลเพื่อใช้จุดเมานท์ระบบไฟล์ที่ให้การเข้าถึงไฟล์ที่เก็บไว้ในฐานข้อมูลอย่างโปร่งใสและไม่ต้องเปลี่ยนลินุกซ์เคอร์เนล ได้รับมาตรฐานสายระบบไฟล์จากFUSEเคอร์เนลโมดูลและแปลพวกเขาเข้าไปในOCIเรียกไปPL / SQLขั้นตอนในdBFS เก็บเนื้อหา

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


2

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

ดังนั้น .. ทำไม Windows / Linux OS จึงไม่ใช้ฐานข้อมูลเชิงสัมพันธ์ (RDBMS) นี่เป็นคำถามเกี่ยวกับสัดส่วนในพระคัมภีร์ แต่คำตอบสั้น ๆ คือ: ไม่มีประโยชน์ใด ๆ จริง ๆ ที่จะได้รับจากการใช้โครงสร้างที่ซับซ้อนเช่น rdbms เป็นระบบไฟล์

"Relational" เป็นคำที่ใช้ใน "ฐานข้อมูลเชิงสัมพันธ์" และข้อมูลส่วนใหญ่ที่เก็บไว้ในระบบไฟล์ไม่เกี่ยวข้องกับข้อมูลอื่น โดยทั่วไประบบไฟล์นั้นถูกนำไปใช้เป็นฐานข้อมูลที่ จำกัด ไม่ใช่แค่ระบบสัมพันธ์


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