SQL là gì?

SQL (Structured Query Language) là viết tắt của Ngôn ngữ truy vấn có cấu trúc, là ngôn ngữ được tiêu chuẩn hóa để tương tác với các hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS). Cơ sở dữ liệu quan hệ là tập hợp dữ liệu được tổ chức thành các bảng, trong đó mỗi bảng có một tập hợp các cột và hàng.

SQL cho phép người dùng tạo, thao tác và phân tích dữ liệu được lưu trữ trong các bảng này. SQL được các nhà khoa học máy tính IBM phát triển vào những năm 1970 và đã trở thành một trong những ngôn ngữ phổ biến và được sử dụng rộng rãi nhất để quản lý và phân tích dữ liệu

SQL được hỗ trợ bởi nhiều RDBMS, chẳng hạn như MySQL, Oracle, PostgreSQL và Microsoft SQL Server.

SQL được dùng để:

  • Tạo và quản lý cấu trúc cơ sở dữ liệu (bảng, cột, chỉ mục…).
  • Thêm, sửa, xóa dữ liệu trong bảng.
  • Truy vấn (lấy) dữ liệu theo điều kiện cụ thể.
  • Phân quyền truy cập cơ sở dữ liệu cho người dùng.

Các nhóm lệnh trong SQL

Nhóm Tên gọi Chức năng Ví dụ
DDL Data Definition Language Định nghĩa cấu trúc cơ sở dữ liệu CREATE, ALTER, DROP
DML Data Manipulation Language Thao tác dữ liệu trong bảng INSERT, UPDATE, DELETE
DQL Data Query Language Truy vấn dữ liệu SELECT
DCL Data Control Language Cấp quyền truy cập GRANT, REVOKE
TCL Transaction Control Language Quản lý giao dịch COMMIT, ROLLBACK, SAVEPOINT

PostgreSQL là gì?

PostgreSQL là một hệ thống quản trị cơ sở dữ liệu quan hệ và đối tượng (object-relational database management system) miễn phí và nguồn mở (RDBMS) tiên tiến nhất hiện nay. khả năng mở rộng cao và tuân thủ các tiêu chuẩn kỹ thuật. Nó được thiết kế để xử lý một loạt các khối lượng công việc lớn, từ các máy tính cá nhân đến kho dữ liệu hoặc dịch vụ Web có nhiều người dùng đồng thời.

  • PostgreSQL được phát triển bởi PostgreSQL Global Development Group, Phát hành lần đầu: 08/07/1996
  • PostgreSQL linh động có thể chạy được trên nhiều nền tảng khác nhau như Mac OS X, Solaris và Windows.
  • PostgreSQL là một phần mềm mã nguồn mở miễn phí bởi vậy PostgreSQL có thể được dùng, sửa đổi và phổ biến bởi bất kỳ ai cho bất kỳ mục đích nào.
  • PostgreSQL có tính ổn định cao.
  • PostgreSQL là hệ thống quản lý cơ sở dữ liệu đầu tiên triển khai tính năng kiểm soát đồng thời nhiều phiên bản (MVCC).

Các tính năng hỗ trợ của PostgreSQL

  • Câu truy vấn phức hợp (complex query)
  • Thủ tục sự kiện (trigger)
  • Các khung nhìn (view)
  • Tính toàn vẹn của các giao dịch (integrity transactions)
  • Việc kiểm tra truy cập đồng thời đa phiên bản (multiversion concurrency control)
  • Truy vấn xử lý song song (parallel query)
  • Sao chép dữ liệu dạng luồng (Streaming replication)

Kiểu dữ liệu

  • Nguyên hàm: Số nguyên, số, chuỗi, Boolean
  • Cấu trúc: Date/Time, Array, Phạm vi, UUID
  • Document: JSON/JSONB, XML, Key-value (Hstore)
  • Hình học: Điểm, Đường thẳng, Vòng tròn, Đa giác
  • Tùy chỉnh: Composite, Các kiểu tùy chỉnh

toàn vẹn dữ liệu

  • UNIQUE, NOT NULL
  • Primary Keys
  • Foreign Keys
  • Ràng buộc loại trừ
  • Khóa hàm số, Khóa khuyến nghị
  • Đồng quy, hiệu suất
  • Lập danh mục: B-tree, Multicolumn, Expressions, Partial
  • Lập danh mục nâng cao: GiST, SP-Gist, KNN Gist, GIN, BRIN, Bloom filters
  • Trình lập kế hoạch / trình tối ưu hóa truy vấn phức tạp, quét index-only, thống kê số liệu trên nhiều cột.
  • Giao tác, Giao tác dạng nest (thông qua lưu điểm)
  • Điều khiển đồng thời nhiều phiên bản (MVCC)
  • Truy vấn đọc song song
  • Phân vùng bảng
  • Tất cả các mức độ giao dịch độc lập được xác định trong tiêu chuẩn SQL, bao gồm cả Serializable
  • Độ tin cậy, phục hồi sau thảm hoạ
  • Ghi nhật ký ghi trước (Write-ahead Logging – WAL)
  • Replication: Không đồng bộ, Đồng bộ, Logical
  • Khôi phục điểm-theo-thời gian (Point-in-time-recovery – PITR), active standbys
  • Không gian bảng

Bảo mật

  • Xác thực: GSSAPI, SSPI, LDAP, SCRAM-SHA-256, Certificate và các hình thức khác
  • Hệ thống kiểm soát truy cập mạnh mẽ
  • Bảo mật cấp độ cột và hàng

Khả năng mở rộng

  • Phương pháp lưu trữ
  • Ngôn ngữ thủ tục: PL / PGSQL, Perl, Python (và nhiều ngôn ngữ khác)
  • Trình wrapper dữ liệu ngoài: kết nối với các cơ sở dữ liệu hoặc luồng khác với giao diện SQL chuẩn
  • Và nhiều tiện ích mở rộng cung cấp chức năng bổ sung, bao gồm cả PostGIS
  • Tìm kiếm văn bản:
  • Hỗ trợ các bộ ký tự quốc tế, ví dụ: thông qua ICU collations
  • Tìm kiếm văn bản đầy đủ

Tham khảo: Tìm hiểu hệ quản trị cơ sở dữ liệu PostgreSQL

About the Author

Đức Phát

View all author's posts

Leave a Comment

Your email address will not be published. Required fields are marked *

Bài viết khác

So sánh giữa gorm vs go-pg vs bun

Trong thế giới phát triển Golang, việc tương tác với cơ sở dữ liệu là một phần không thể thiếu của hầu hết các ứng dụng. Để đơn giản hóa quy trình này, các thư viện ORM (Object-Relational Mapping) ra đời, giúp các nhà phát triển thao tác với database thông qua các đối tượng […]

So sánh GORM vs go-pg vs Bun

Cộng đồng GORM Là ORM phổ biến nhất trong cộng đồng Go. Có nhiều tài liệu, ví dụ, StackOverflow câu trả lời, và nhiều package hỗ trợ mở rộng. Nhiều developer đã từng dùng Gorm. go-pg Từng rất phổ biến khi chỉ dùng PostgreSQL, nhưng đang bị Bun thay thế dần. Ít được duy trì […]

clean architecture golang

  1.Clean Architecture là gì? Clean Architecture là một kiến trúc phần mềm được đề xuất bởi Robert C. Martin (Uncle Bob) nhằm mục tiêu tách biệt rõ ràng giữa các tầng trong ứng dụng, giúp mã nguồn dễ bảo trì, mở rộng, và kiểm thử. 2.Tổng quan kiến trúc Entity (Domain Model): Là tầng […]

Tìm hiểu Hexagonal Architecture

Hexagonal Architecture là gì? Hexagonal Architecture (tên gọi khác là ports and adapters architecture), là một mẫu kiến trúc được dùng trong thiết kế phần mềm. Nó hướng tới việc xây dựng ứng dụng xoay quanh business/application logic mà không ảnh hưởng hoặc phụ thuộc bởi bất kì thành phần bên ngoài, mà chỉ giao […]

Sử dụng Request/Response trong ứng dụng RESTful mô hình MVC

DTO là gì? DTO (Data Transfer Object) là một object trung gian dùng để truyền dữ liệu giữa client – server hoặc giữa các service trong ứng dụng web/API theo kiến trúc RESTful API. DTO chỉ chứa các thông tin cần thiết mà client hoặc service khác cần (ví dụ: Login Form chỉ cần thông […]

Docker

Docker là gì? Docker là một nền tảng mã nguồn mở cho phép bạn đóng gói, phân phối và chạy ứng dụng bên trong các “container” – những môi trường ảo nhẹ, cô lập nhưng vẫn chia sẻ nhân hệ điều hành của máy chủ. Khái niệm then chốt ở đây là “containerization”: thay vì […]