Câu trả lời là không may: Việc xem xét của bạn hoàn toàn đúng ở mọi thời điểm. Bạn phải lưu trữ các nút (đỉnh) trong một bảng và các cạnh tham chiếu một mã từ và một nút để chuyển đổi cấu trúc dữ liệu biểu đồ thành cấu trúc dữ liệu quan hệ. Và bạn cũng đúng, điều này kết thúc trong một số lượng lớn tra cứu, bởi vì bạn không thể phân vùng nó thành đồ thị con, có thể được truy vấn cùng một lúc. Bạn phải chuyển từ Node sang Edge sang Node sang Edge sang Node ... và cứ tiếp tục (Recursively, trong khi SQL đang làm việc với Sets).
Vấn đề là ...
Relational, Graph định hướng, định hướng đối tượng, tài liệu dựa trên các loại khác nhau của các cấu trúc dữ liệu mà đáp ứng các yêu cầu khác nhau. Đó là tất cả những gì về nó và tại sao có rất nhiều cơ sở dữ liệu NoSQL khác nhau (hầu hết trong số đó là các kho tài liệu đơn giản) xuất hiện, bởi vì nó đơn giản là không tổ chức dữ liệu lớn một cách quan hệ.
Alternative 1 - Graph cơ sở dữ liệu theo định hướng
Nhưng cũng có cơ sở dữ liệu NoSQL hướng đồ thị, mà làm cho các mô hình dữ liệu đồ thị là một công dân hạng nhất như OrientDB mà tôi đang chơi xung quanh với một chút vào lúc này. Điều tốt đẹp về nó là, mặc dù nó vẫn tồn tại dữ liệu dưới dạng đồ thị, nó vẫn có thể được sử dụng trong một cách định hướng quan hệ hoặc hướng đối tượng hoặc tài liệu cũng (tức là bằng cách truy vấn với SQL cũ đơn giản). Tuy nhiên, Traversing the graph là cách tối ưu để lấy dữ liệu của nó.
Phương án 2 - làm việc với đồ thị trong bộ nhớ
Khi nói đến việc định tuyến nhanh, khuôn khổ định tuyến như Graphhopper xây dựng hoàn chỉnh các đồ thị (tỷ Nodes) bên trong bộ nhớ. Bởi vì Graphhopper sử dụng một MemoryMapped thực hiện của GraphStore của nó, mà thậm chí làm việc trên các thiết bị Android chỉ với một số MB bộ nhớ cần. Biểu đồ hoàn chỉnh được đọc từ cơ sở dữ liệu vào bộ nhớ khi khởi động, và định tuyến được thực hiện ở đó, vì vậy bạn không cần tra cứu cơ sở dữ liệu.
Nguồn
2013-11-30 19:19:43
Để cung cấp cho bạn lời khuyên hữu ích, tôi sẽ cần thêm thông tin từ phía bạn. Có bao nhiêu nút và bao nhiêu mối quan hệ chúng ta đang nói đến? –
Tôi muốn nói hàng tỷ nút. Giống như tôi đã nói điều này chủ yếu là khái niệm nhưng tôi tò mò làm thế nào để quy mô cho rất nhiều hồ sơ. Tôi đoán có rất nhiều đồ thị. –
Không phải mã nguồn mở mà chính xác là những gì bạn đang tìm kiếm: Aster 6.0 mới đi kèm với công cụ đồ thị trong cơ sở dữ liệu quan hệ - được gọi là SQL-GR và nhằm mục đích sử dụng các hàm hiện có và mới trên các biểu đồ được lưu trữ trong các bảng quan hệ (trong Aster): được biểu diễn với bảng nút và bảng cạnh. – topchef