การเปรียบเทียบฐานข้อมูลเชิงสัมพันธ์และฐานข้อมูลกราฟ


92

ใครช่วยอธิบายข้อดีและข้อเสียของฐานข้อมูลความสัมพันธ์เช่น MySQL เทียบกับฐานข้อมูลกราฟเช่น Neo4j ได้ไหม

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


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

คำตอบ:


119

มีเหตุผลเชิงแนวคิดอยู่เบื้องหลังทั้งสองสไตล์ Wikipedia เกี่ยวกับโมเดลเชิงสัมพันธ์และฐานข้อมูลกราฟให้ภาพรวมที่ดีของสิ่งนี้

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

สิ่งนี้มีการแบ่งส่วนที่สำคัญ:

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

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


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

4
คุณพูดว่า: "ในฐานข้อมูลกราฟต้องตรวจสอบแต่ละระเบียนทีละรายการในระหว่างการสืบค้นเพื่อกำหนดโครงสร้างของข้อมูล" นี่เป็นคุณสมบัติสากลของฐานข้อมูลกราฟหรือมากหรือน้อยจริงโดยทั่วไป? แล้ว OrientDb ที่รองรับ schema แบบเต็มสำหรับจุดยอดและขอบล่ะ?
Lodewijk Bogaards

@LodewijkBogaards ฐานข้อมูลกราฟบางอย่างเช่น Neo4j อนุญาตให้สร้างดัชนีพื้นฐาน หากข้อความค้นหาตรงกับดัชนีฉันเชื่อว่าไม่จำเป็นต้องกำหนดโครงสร้างของข้อมูลหลังดัชนี แต่ขึ้นอยู่กับแบบสอบถาม
VojtěchVít

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

3
@cegprakash คุณมีเอกสารที่เราสามารถสรุปได้ด้วยหรือไม่?
วิกเตอร์

100

ความแตกต่างที่สำคัญระหว่างกราฟและฐานข้อมูลเชิงสัมพันธ์คือฐานข้อมูลเชิงสัมพันธ์ทำงานร่วมกับชุดในขณะที่ฐานข้อมูลกราฟทำงานกับเส้นทาง

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

ดังที่ Dan1111 บอกใบ้ว่าฐานข้อมูลกราฟส่วนใหญ่ไม่ได้รับความเจ็บปวดจากการเข้าร่วมประเภทนี้เพราะพวกเขาแสดงความสัมพันธ์ในระดับพื้นฐาน นั่นคือความสัมพันธ์มีอยู่จริงบนดิสก์และมีการตั้งชื่อกำกับและสามารถตกแต่งตัวเองด้วยคุณสมบัติ (ซึ่งเรียกว่าโมเดลกราฟคุณสมบัติโปรดดู: https://github.com/tinkerpop/blueprints/wiki/Property-Graph - แบบจำลอง ) ซึ่งหมายความว่าหากคุณเลือกคุณสามารถดูความสัมพันธ์บนดิสก์และดูว่าเอนทิตี "เข้าร่วม" ได้อย่างไร ดังนั้นความสัมพันธ์จึงเป็นเอนทิตีชั้นหนึ่งในฐานข้อมูลกราฟและมีความหมายที่แข็งแกร่งกว่าความสัมพันธ์โดยนัยที่สร้างขึ้นที่รันไทม์ในที่เก็บเชิงสัมพันธ์

แล้วทำไมคุณต้องสนใจ? ด้วยเหตุผลสองประการ:

  1. ฐานข้อมูลกราฟเร็วกว่าฐานข้อมูลเชิงสัมพันธ์สำหรับข้อมูลที่เชื่อมต่อมากซึ่งเป็นจุดแข็งของโมเดลต้นแบบ เป็นผลมาจากนี้คือการที่แฝงแบบสอบถามในฐานข้อมูลของกราฟเป็นสัดส่วนเท่าใดของกราฟที่คุณเลือกที่จะสำรวจในแบบสอบถามและไม่ได้สัดส่วนกับปริมาณของข้อมูลที่จัดเก็บจึงขจัดภัยเข้าร่วมระเบิด
  2. ฐานข้อมูลกราฟทำให้การสร้างแบบจำลองและการสืบค้นข้อมูลมีความหมายที่น่าพอใจยิ่งขึ้นการพัฒนาที่รวดเร็วขึ้นและช่วงเวลา WTF น้อยลง ยกตัวอย่างเช่นการแสดงของเพื่อนของเพื่อนเครือข่ายสังคมทั่วไปในภาษาแบบสอบถาม Neo4j MATCH (me)-[:FRIEND]->()-[:FRIEND]->(foaf) RETURN foafของศูนย์เป็นเพียง

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

54
การเปรียบเทียบนี้ดูเหมือนจะลำเอียงเล็กน้อย สิ่งที่เกี่ยวกับข้อเสีย?
Kurren

12
เล็กน้อย? ลำเอียงเกินไปในความคิดเห็นที่ซื่อสัตย์ของฉัน ดูเหมือนโฆษณา "นี่คือผลิตภัณฑ์ที่ดีซื้อนี้" ให้ฉันดีที่สุด!
ilgaar

39
สิ่งนี้ต้องการข้อแม้ที่ยิ่งใหญ่ผู้ชายคนนี้คือ "หัวหน้านักวิทยาศาสตร์" ของ Neo Technology ซึ่งเป็นผู้สร้างฐานข้อมูลกราฟ Neo4J
Rob Grant

5
วิธีการค้นหาโดยพลการ ... ให้ฉันผู้ใช้ทั้งหมดที่อายุ 35 ถึง 55 ปีและซื้อสินค้าที่ walmart ใน 90 วันที่ผ่านมา
Matthew Whited

21

Dan1111 ได้ให้คำตอบแล้วว่าถูกต้อง คะแนนเพิ่มเติมสองสามจุดที่น่าสังเกตในการผ่าน

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

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

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

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

เมื่อหน้าเว็บถูกย้ายไปยัง URL อื่นโดยไม่ทิ้งที่อยู่สำหรับส่งต่อไว้ที่ URL เดิมการเชื่อมโยงหลายมิติที่ไม่รู้จักจะเสียไป ลิงก์เสียเหล่านี้ก่อให้เกิดความหวั่นใจข้อความ "Error 404: page not found" ที่ขัดจังหวะความสุขของนักเล่นจำนวนมาก


4
เฉพาะฐานข้อมูลกราฟส่วนใหญ่มีกฎความสมบูรณ์ที่ไม่อนุญาตให้ลิงก์เสีย
Michael Hunger

1
หาก DBMS ตรึงเป้าหมายสิ่งนี้จะป้องกันการแตกของลิงก์อย่างเห็นได้ชัดเนื่องจากการย้ายเป้าหมายของลิงก์ ฉันไม่ทราบฐานข้อมูลกราฟใด ๆ ที่ไม่ได้ตรึงระเบียนที่อาจเป็นเป้าหมายของลิงก์
Walter Mitty

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

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

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

7

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

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

ในบางสถานการณ์การเปลี่ยนโมเดลข้อมูลในฐานข้อมูลกราฟทำได้ง่ายกว่าใน RDBMS เช่นใน RDBMS ถ้าฉันเปลี่ยนความสัมพันธ์ของตารางจาก 1: n เป็น m: n ฉันจำเป็นต้องใช้ DDL กับการหยุดทำงานที่อาจเกิดขึ้น

ในทางกลับกัน RDBMS มีข้อดีในด้านอื่น ๆ เช่นการรวบรวมข้อมูลหรือการควบคุมเวอร์ชันที่ประทับเวลาบนข้อมูล

ฉันพูดถึงข้อดีข้อเสียอื่น ๆ ในบล็อกโพสต์ของฉันเกี่ยวกับฐานข้อมูลกราฟสำหรับคลังข้อมูล


"คำว่าเชิงสัมพันธ์ใน RDBMS เกิดจากพีชคณิตเชิงสัมพันธ์" - เรียงลำดับจาก "และไม่ใช่จากความสัมพันธ์" - ไม่ใช่ความสัมพันธ์ในความหมายของ FK แต่ใช่ความสัมพันธ์เนื่องจากความสัมพันธ์ในพีชคณิตเชิงสัมพันธ์ & RDBMS มาจากความสัมพันธ์ในความหมายของตารางที่แสดงถึงความสัมพันธ์ / การเชื่อมโยง FK ถูกเรียกอย่างผิด ๆ ว่าความสัมพันธ์โดยวิธีการที่เข้าใจผิดแบบจำลองเชิงสัมพันธ์ FK ไม่จำเป็นต้องเป็นที่รู้จักหรือมีอยู่เพื่อบันทึกหรือสอบถาม พวกเขามีไว้เพื่อความซื่อสัตย์ สิ่งที่จำเป็นและเพียงพอในการสืบค้นคือการทราบความสัมพันธ์ / การเชื่อมโยงที่ตาราง (ฐานหรือผลลัพธ์แบบสอบถาม) แสดงถึง
philipxy

4

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

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

ข้อมูลอ้างอิง: Next Generation Databases


0

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

ฐานข้อมูลเชิงสัมพันธ์จะเร็วกว่ามากเมื่อทำงานกับบันทึกจำนวนมาก (สัญลักษณ์แสดงหัวข้อย่อยแรกของ dan1111)

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

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

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


0

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

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

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