Chào mừng!

Các khái niệm NoSQL

Miriam Antona

Software engineer

Nội dung

  • Chương 1: NoSQL vs. quan hệ / key-value
  • Chương 2: CSDL tài liệu
  • Chương 3: CSDL họ cột
  • Chương 4: CSDL đồ thị
Các khái niệm NoSQL

Giới thiệu khóa học

  • Khóa luận khái niệm (không cần code)

Logo Datazy

Các khái niệm NoSQL

NoSQL vs. CSDL quan hệ

CSDL quan hệ

  • Dùng bảng/hàng/cột
  • Cần schema cố định/khó thay đổi
  • Truy vấn join nhiều bảng chậm
  • Mở rộng dọc
    • tăng CPU, RAM...
    • tốn kém hơn
  • Bảo đảm giao dịch ACID
  • Thường đóng nguồn

NoSQL

  • Ban đầu: non-SQL/phi quan hệ
  • Not only SQL
  • CSDL phi quan hệ
  • Không dùng bảng/hàng/cột
  • Không schema/dễ đổi
  • Truy vấn nhanh
  • Mở rộng ngang/rẻ hơn
  • Đa số không hỗ trợ ACID
  • Mã nguồn mở
Các khái niệm NoSQL

NoSQL vs. CSDL quan hệ

  • Bổ sung cho nhau
  • Có thể cùng tồn tại
Các khái niệm NoSQL

Các loại CSDL NoSQL

  • CSDL key-value
  • CSDL tài liệu
  • CSDL họ cột
  • CSDL đồ thị
Các khái niệm NoSQL

CSDL key-value

  • NoSQL đơn giản nhất
  • Lấy/Đặt giá trị theo khóa

Ví dụ trực quan về hai bộ key-value: Khóa đầu là K1, giá trị là Hello. Khóa thứ hai là K2, giá trị là Goodbye.

Các khái niệm NoSQL

Khóa

  • Ví dụ:
    • DataCampCourse:123:name
    • Client456
    • 123456789
    • [email protected]
    • C09113276F59B26EF3394D90CD31BAA90AA7B4BE
  • Bất kỳ dãy nhị phân
  • Duy nhất
  • Có thể tạo bằng thuật toán
  • Tránh khóa quá dài
Các khái niệm NoSQL

Giá trị

  • Gắn với một khóa
  • Lấy, đặt, xóa giá trị theo khóa
  • Số, chuỗi, JSON, ảnh...
  • Có giới hạn kích thước
Các khái niệm NoSQL

Giá trị

  • Gắn với một khóa
  • Lấy, đặt, xóa giá trị theo khóa
  • Số, chuỗi, JSON, ảnh...
  • Có giới hạn kích thước

$$

key value
dataCampCourses:123:name Cleaning data in a SQL Server database
dataCampCourses:123:softLaunchDate 10/01/2020
user:12:address ('123 Sesame Street', 'NY')
user:125:address {"street" : "123 Sesame Street" , "city" : "NY"}
Các khái niệm NoSQL

Ví dụ Datazy

Tùy chọn người dùng

key value
user:457:preferences {"language" : "en_US" , "color" : "green" , "timezone" : "GTM-4"}
user:458:preferences {"language" : "es_US" , "color" : "blue" , "timezone" : "GTM+2"}

 

  • Quy ước (:)
    • user:id:preferences
Các khái niệm NoSQL

CSDL key-value phổ biến

Logo của một số CSDL key-value phổ biến.

Các khái niệm NoSQL

Ayo berlatih!

Các khái niệm NoSQL

Preparing Video For Download...