Tìm hiểu về cơ sở dữ liệu không gian [part 1]

Chào mọi người, trong bài viết này mình sẽ khái niệm cơ bản tới mọi người về cơ sở dữ liệu không gian. Mình thấy chủ đề này khá rộng rãi và hay cho những người nghiên cứu về hình học, không gian ứng dụng cho các bài toán về tính toán và lưu trữ dữ liệu không gian.

Tổng quan về cơ sở dữ liệu không gian

CSDL không gian:

  • Là một hệ thống csdl quan hệ cung cấp các kiểu dữ liệu không gian trong mô hình dữ liệu và các ngôn ngữ truy vấn. Các kiểu dữ liệu không gian như: Point, Line, Polygon... CSDL cung cấp mô hình trừ tượng cơ bản cho cấu trúc của thực thể hình học trong không gian cũng như mối quan hệ giữa chúng như: giao nhau, thuộc nhau...
  • Với CSDL không gian khi mà áp dụng với bất kỳ ngôn ngữ hay hệ quản trị nào thì việc đánh chỉ mục(index) cho loại dữ liệu này là khá quan trọng, nó giúp ích cho việc tối ưu hóa truy vấn dữ liệu, giảm thời gian truy vấn và giảm bộ nhớ lưu trữ..

Đặc trưng của CSDL không gian

  • Cơ sở dữ liệu không gian sử đụng đánh chỉ mục không gian để tăng tốc hoạt động của cơ sở dữ liệu
  • Ngoài các truy vẫn SQL điển hình như câu lệnh SELECT, CSDL không gian có thể thực thi đa dạng các thao tác không gian như:
  1. Đo lường không gian : nó có khả năng tìm khoảng cách giữa các điểm, các vùng...
  2. Hàm không gian : ví dụ như, sửa đối các hàm hiện thời để tạo ra những hình mới: hàm tìm điểm hay vùng giao nhau...
  3. Xác nhận không gian : nó cho phép thực hiện những truy vấn True/False.
  4. Hàm tạo : tạo ra các hình mới, như chỉ ra các điểm nút có thể tạo nên đường, hay nếu đỉnh đầu và đỉnh cuối trùng nhau, chúng có thể tạo nên một đa giác.
  5. Hàm theo dõi : các câu truy vấn trả về thông tin cụ thể như : vị trí tâm của một đường tròn hay điểm đầu, điểm cuối của một đường

Mô hình

Có hai đối tượng quan trọng cần được hiển thị đó là :

  1. Đối tượng trong không gian : đó là những đối tượng trong không gian, mô tả hình học của riêng chúng
  2. Không gian bao gồm các đối tượng đơn, một số đối tượng cơ bản như: Point, Line, Polygon 2.1 Point _ Là một điểm hiển thị một đối tượng mà chỉ có vị trí của nó trong không gian. và trên không gian 2 chiều được xác định với kinh độ(longitude) và vĩ độ(latitude). Một điểm sẽ không bao giờ thể hiện đc độ dài và diện tích hay bất cứ một phép đo nào cho điểm. Hình minh họa: 2.2 Line _ Được xác định bởi một tập hợp dãy các điểm(Point), mô tả đối tượng địa lý dạng tuyến tính. Bắt đầu và kết thúc là một điểm, các đường nối với nhau hoặc cắt nhau tại một điểm. Hình mình họa: 2.3 Polygon _ Được xác định bởi ranh giới các đường thẳng. Các đối tượng địa lý có diện tích và đóng kín bởi một đường được gọi là vùng. Được mô tả bằng tập các vùng và điểm hay có thể hiểu nó giống như là "line" khép kín. Vì có đặc điểm là vùng và khép kín nên có thể áp dụng các công thức tính diện tích, chu vi...
  3. Kết hợp hình học vào mô hình dữ liệu DBMS _ Ý tưởng chính của việc kết hợp các mô hình hình học vào trong mô hình dữ liệu DBMS để thể hiện các “đối tượng không gian”- các đối tượng có thể là dòng sông, đất nước, thành phố... bằng các đối tượng hình học trước tiên là thuộc tính của loại dữ liệu không gian. Về cơ bản, mô hình dữ liệu DBMS luôn hỗ trợ sẵn các kiểu dữ liệu như integer, string... Ngoài ra, với CSDL không gian, mô hình dữ liệu DBMS còn hỗ trợ một số kiểu khác như kiểu hình học như kiểu Point, kiểu Line... Ví dụ:
  • Để dữ liệu hóa một vị trí là trung tâm tòa nha keangnam ta sẽ phải lưu như sau: => (name: "keangnam", location: POINT (105.783478,21.017746)) _ ở đây một điểm được lưu với tên "keangnam" có kiểu dữ liệu là string và vị trí có kiểu dữ liệu là Point với giá trị kinh độ và vĩ độ.
  • Để lưu hóa một dòng sông ta sẽ thể hiện như sau: => (name: "Song Hong", route: LINE (105.753478 21.027746, 105.763478 21.037746, 105.773478 21.047746) _ ở ví dụ này dòng Sông Hồng được biểu diễn với vị trí có kiểu dữ liệu là Line chính là tập hợp của 3 điểm point bao gồm kinh độ và vĩ độ.

Trong bài chia sẻ này của mình chỉ dừng lại ở mức khái niệm cho mọi người hiểu và hình dung về csdl không gian như nào. Trong phần tiếp theo mình sẽ tìm hiểu kỹ hơn và giới thiệu tới mọi người một số hệ quản trị CSDL có hộ trợ lưu trữ và thao tác với dữ liệu không gian, chủ yếu đi vào các function của hệ quản trị làm sao để mọi người có thể sử dụng nó tốt và áp dụng vào các bài toán về diện tích, quãng đường đi hay xác định điểm trong không gian. Thanks for reading!