Các đặc trưng cơ bảnDựa trên hệ quản trị mã nguồn mở PostgreSQL.Tăng hiệu suất, bảo mật và khả năng tương thích cơ sở dữ liệu đối với Oracle.Bao gồm các tính năng bổ sung dành cho phát t
Đặc điểm của EnterpriseDB
Các đặc trưng cơ bản
Dựa trên hệ quản trị mã nguồn mở PostgreSQL.
Tăng hiệu suất, bảo mật và khả năng tương thích cơ sở dữ liệu đối với Oracle.
Bao gồm các tính năng bổ sung dành cho phát triển và quản trị hệ cơ sở dữ liệu.
Hỗ trợ bộ công cụ quản lý tích hợp và phân tán có thể triển khai trên nhiều nền tảng truyền thống cũng như trên nền tảng đám mây.
PostgreSQL là một hệ thống cơ sở dữ liệu quan hệ đối tượng mã nguồn mở mạnh mẽ, sử dụng và mở rộng ngôn ngữ SQL kết hợp với nhiều tính năng giúp lưu trữ và chia tỷ lệ một cách an toàn các khối lượng công việc dữ liệu phức tạp nhất. Nguồn gốc của PostgreSQL có từ năm 1986 như một phần của dự án POSTGRES tại Đại học California ở Berkeley và đã có hơn 30 năm phát triển tích cực trên nền tảng cốt lõi PostgreSQL đã tạo được danh tiếng mạnh mẽ nhờ kiến trúc đã được chứng minh, độ tin cậy, tính toàn vẹn của dữ liệu, bộ tính năng mạnh mẽ, khả năng mở rộng và sự cống hiến của cộng đồng nguồn mở đằng sau phần mềm để liên tục cung cấp các giải pháp hiệu quả và sáng tạo PostgreSQL chạy trên tất cả các hệ điều hành chính, tuân thủ ACID và có các tiện ích bổ sung mạnh mẽ như bộ mở rộng cơ sở dữ liệu không gian địa lý PostGIS phổ biến Không có gì ngạc nhiên
4 khi PostgreSQL đã trở thành cơ sở dữ liệu quan hệ nguồn mở được nhiều người và tổ chức lựa chọn.
PostgreSQL đi kèm với nhiều tính năng nhằm giúp các nhà phát triển xây dựng ứng dụng, quản trị để bảo vệ tính toàn vẹn của cơ sở dữ liệu và xây dựng môi trường chịu lỗi, đồng thời giúp người sử dụng quản lý dữ liệu của mình bất kể tập dữ liệu lớn hay nhỏ.
Ngoài miễn phí và mã nguồn mở, PostgreSQL còn có khả năng mở rộng cao Ví dụ: bạn có thể xác định kiểu dữ liệu của riêng mình, xây dựng các chức năng tùy chỉnh, thậm chí viết mã từ các ngôn ngữ lập trình khác nhau mà không cần biên dịch lại cơ sở dữ liệu của bạn.
PostgreSQL cố gắng tuân thủ tiêu chuẩn SQL sao cho sự tuân thủ đó không mâu thuẫn với các tính năng truyền thống hoặc có thể dẫn đến các quyết định kiến trúc kém Nhiều tính năng theo yêu cầu của tiêu chuẩn SQL được hỗ trợ, mặc dù đôi khi có cú pháp hoặc chức năng hơi khác nhau.
Dưới đây là danh sách các tính năng được hỗ trợ trong PostgreSQL:
Kiểu dữ liệu: o Nguyên thủy: Số nguyên, số thực, chuỗi, boolean,
… o Cấu trúc: Ngày/giờ, mảng, phạm vi, UUID, … o Tài liệu: JSON, JSONB, XML, key-value, o Hình học: điểm, đường thẳng, hình tròn, đa giác, o Tùy chỉnh: tự định nghĩa với câu lệnh “CREATE TYPE”
Toàn vẹn dữ liệu: o Các ràng buộc về khóa chính, khóa ngoại, ràng buộc duy nhất, ràng buộc not null, đảm bảo chỉ những dữ liệu hợp lệ mới được lưu trữ. o PostgreSQL hỗ trợ đầy đủ cho các thuộc tính ACID và đảm bảo phân tách giao dịch hiệu quả bằng cách sử dụng hệ thống kiểm soát phiên bản đồng thời (MVCC) Phương pháp này cho phép tránh việc các luồng dữ liệu chặn nhau trong mọi trường hợp Đọc giao dịch không bao giờ chặn những người đang viết và viết không bao giờ chặc việc đọc. Đa luồng, hiệu suất: o Cấu hình: sử dụng các tham số GUC (Grand Unified Configuration Settings) để điều chỉnh hiệu suất. o Sử dụng truy vấn song song: PostgreSQL tận dụng lợi thế của kiến trúc của bộ xử lý đa lõi hiện đại Hiệu suất của nó phát triển gần như tuyến tính khi số lượng lõi tăng lên Bắt đầu từ phiên bản 9.6, PostgreSQL hỗ trợ đồng thời xử lí dữ liệu Phiên bản
10 cho phép đọc song song (bao gồm quét chỉ mục), nối và tổng hợp dữ liệu Phiên bản 11 hỗ trợ đầy đủ cho nối băm song song Phiên bản 12 cung cấp khả năng song song hóa truy vấn ở mức cách ly có thể tuần tự hóa, biên dịch JIT các truy vấn có thể tăng tốc độ hoạt động bằng cách sử dụng tốt hơn tài nguyên phần cứng và nhiều tối ưu hóa khác. Độ tin cậy, khôi phục sau lỗi: o Lưu trữ, quản lý các phiên bản thông qua hệ thống kiểm soát phiên bản đồng thời, từ đó nâng cao khả năng khôi phục lại dữ liệu khi xảy ra lỗi. o Cung cấp đa dạng các phương thức sao chép: đồng bộ, không đồng bộ và logic. o Lưu trữ nhật ký thay đổi để dễ dàng kiểm soát các phiên bản hơn. o Quản lý dữ liệu lưu trữ thông qua tablespace, giúp việc truy xuất dữ liệu được thực hiện dễ dàng và nhanh chóng.
PostgreSQL hỗ trợ các kết nối SSL an toàn và cung cấp các phương pháp xác thực khác nhau, chẳng hạn như xác thực mật khẩu (bao gồm SCRAM), chứng chỉ ứng dụng khách và dịch vụ xác thực (LDAP, RADIUS, PAM, Kerberos). Để quản lý người dùng và kiểm soát truy cập cơ sở dữ liệu, các tính năng sau được cung cấp: o Tạo và quản lý người dùng mới và vai trò nhóm o Kiểm soát truy cập dựa trên vai trò và nhóm đối với các đối tượng cơ sở dữ liệu o Bảo mật cấp hàng và cấp cột o Hỗ trợ SELinux thông qua chức năng SE- PostgreSQL tích hợp sẵn.
PostgreSQL cung cấp nhiều loại chỉ mục khác nhau Ngoài B-tree truyền thống, bạn có thể sử dụng nhiều phương pháp truy cập khác o Băm: một loại chỉ mục dựa vào hàm băm Không giống với B-tree, các chỉ mục loại này chỉ có thể kiểm tra bình đẳng, nhưng có thể chứng minh là nhỏ gọn và hiệu quả hơn trong một số trường hợp. o GiST: một cây tìm kiếm cân bằng tổng quát Phương thức truy cập này được sử dụng cho dữ liệu không thể sắp xếp. o SP-GiST: một cây không cân bằng tổng quát dựa trên việc chia phạm vi tìm kiếm thành các phân vùng lồng nhau không giao nhau. o GIN: một chỉ số đảo ngược tổng quát, được sử dụng cho hợp chất giá trị đa phần tử Nó chủ yếu được áp dụng trong tìm kiếm toàn văn bản để tìm tài liệu có chứa từ được sử dụng trong truy vấn tìm kiếm. o RUM: một cải tiến của phương pháp GIN để tìm kiếm toàn văn bản Có sẵn dưới dạng tiện ích mở rộng, loại chỉ mục này có thể tăng tốc độ tìm kiếm cụm từ và trả về kết quả được sắp xếp theo mức độ liên quan. o BRIN: một cấu trúc nhỏ gọn cung cấp sự cân bằng giữa kích thước chỉ mục và hiệu quả tìm kiếm Chỉ mục như vậy rất hữu ích cho các bảng lớn. o Bloom: một chỉ mục dựa trên bộ lọc Bloom Có một đại diện nhỏ gọn, chỉ mục này có thể nhanh chóng lọc ra các bộ giá trị, nhưng yêu cầu kiểm tra lại các bộ còn lại.
Một trong những lợi thế chính của kiến trúc
PostgreSQL là khả năng mở rộng Nếu không thay đổi mã hệ thống cốt lõi, người dùng có thể thêm các tính năng sau: o Định nghĩa kiểu dữ liệu mới o Các chức năng và toán tử để hỗ trợ kiểu dữ liệu mới o Các phương pháp truy cập bảng và chỉ mục o Ngôn ngữ lập trình máy chủ: PL/ PGSQL, Perl, Python, o Trình bao bọc dữ liệu ngoài: kết nối với cơ sở dữu liệu bên ngoài bằng giao diện SQL/MED tiêu chuẩn
( Nguồn tham khảo: https://www.postgresql.org/about https://edu.postgrespro.ru/introbook_v6_en.pdf )
EDB tránh việc hoàn toàn dựa vào nhà phát triển hoặc các tầng ứng dụng khách để thực thi các chính sách bảo mật, hỗ trợ tuân thủ các tiêu chuẩn GDPR, PCI và HIPAA.
Chính sách bảo mật của EDB được đảm bảo thông qua:
Chính sách quản lý tài khoản, mật khẩu người dùng. Kiểm tra thẻ phiên sử dụng.
Bảo vệ tấn công trực tiếp từ truy vấn SQL.
Bảo vệ mã ở phía máy chủ.
Hệ thống các công cụ mà EDB hỗ trợ để tích ứng với môi trường doanh nghiệp gọi là EDB Postgres Enterprise Manager (PEM). PEM cung cấp một số tính năng quản lý doanh nghiệp bổ sung sẽ hỗ trợ bạn quản lý, phân tích, sắp xếp hợp lý và triển khai chức năng của Postgres.
PEM giám sát các máy chủ được quản lý, truy xuất thông tin mà PEM sau đó phân tích để tạo trang tổng quan hiển thị thông tin hữu ích và thống kê về máy chủ và cơ sở dữ liệu
Trình quản lý nhật ký của PEM giúp bạn ghi lại nhật ký, và giúp bạn phân tích nội dung tệp nhật ký một cách khéo léo. Chuyên gia Postgres phân tích cấu hình máy chủ và đề xuất các thay đổi cải thiện hiệu suất, bảo mật hoặc độ tin cậy. Trình quản lý năng lực sử dụng dữ liệu thống kê để phân tích mức sử dụng trước đây và ngoại suy các số liệu thống kê sử dụng trong tương lai cho các đối tượng được giám sát.
PEM hỗ trợ sửa đổi cảnh báo do hệ thống xác định hoặc tạo cảnh báo tùy chỉnh thông báo cho quản trị viên hoặc nhóm có trách nhiệm trong một khoảng thời gian cụ thể.
PEM có thể lên lịch công việc trên các máy chủ được giám sát, và gửi thông báo về qua email cho nhóm đối tượng được giao công việc
Trình quản lý chuyển đổi dự phòng được hỗ trợ trong trường hợp cơ sở dữ liệu xảy ra sự cố.
Cài đặt, minh họa sử dụng
Click https://www.enterprisedb.com/software-downloads-postgres để tới home download của EDB.
Chọn vào phần download Databases: EDB Postgres Advanced Server Tại đây sẽ hiện ra các version và hệ điều hành tương thích với từng máy.
Click vào file edb-as12-server-12.4.5-1-windows-x64.exe vừa tải xuống để cài đặt Lưu ý hệ thống yêu cầu quyền truy cập của administrator Dưới đây là màn hình bắt đầu cài đặt của hệ thống Click nút Next. Đọc các yêu cầu của hệ thống, và click accept -> Next
Chọn thư mục nơi mà EDB Postgres Advanced Server sẽ được cài đặt -> Next
Chọn những component hỗ trợ mà bạn muốn sử dụng Bỏ chọn nếu bạn không muốn cài đặt nó Sau khi chọn xong click button Next để tiếp tục.
Chọn thư mục nơi sẽ lưu trữ data directory và write-ahead long(WAL) directory Click button Next.
Chọn cấu hình mong muốn EDB có thể được cấu hình bởi một trong 2 ‘Dialects’ là Oracle và Postgres Click phím Next để tiếp tục
Cài đặt password Click button Next.
Sau đó cài đặt port number và locale.
Chọn loại máy chủ để xác định lượng tài nguyên hệ thống có thể được sử dụng Click phím Next để tiếp tục.
Chọn loại công việc mà server được sử dụng Sau đó click phím Next.
Sau đó hệ thống sẽ hiện lên những thiết lập mà người dùng vừa chọn Thiết lập hiện đã sẵn sàng để bắt đầu cài đặt EDB trên máy tính Click phím Next để bắt đầu cài đặt.
Hệ thống bắt đầu trong quá trình cài đặt EDB.
3 Sau đó sẽ xuất hiện một hộp thoại để tạo một bảng mới Nhập tên của bảng vào ô ‘Name’,… Giải sử tạo bảng có tên ‘book_type’
4 Chọn vào tab ‘Columns’ và click vào button ’ ’ để cài đặt + các trường cho bảng.
5 Như ví dụ đã nêu ở trên, cài đặt 3 trường cho table
‘book_type’ bao gồm id, category, type Chọn các điều kiện phù hợp với yêu cầu
6 Click button ‘Save’ để hoàn tất quá trình tạo table.
7 Tạo table ‘book_list’ tương tự như tạo table ‘book_type ’ đến step 4.
8 Click tab ‘Constraints’ để cài đặt primary key và foreign keys Trong tab này sẽ có 5 mục khác nhau Đầu tiên là
‘Primary Key’ Trong tab này sẽ hiển thị thông tin primary key của bảng Người dùng có thể add or remove primary key trong tab này.
9 Click tab ‘Foreign Key’ để xác định các Foreign Key của bảng Click on ‘+’ button để thêm foreign key.
10 Click on symbol Edit button để mở tab tạo foreign key
11 Điền thông tin của foreign key trong trường ‘Name’ Ở đây, ‘book_type’ được đặt tên của khóa ngoại Sau đó, click tab Columns
12 Chọn Local Column, References Referencing và từ các dropdown list Trong bảng này, type_id là foreign key và được đặt làm Local Column ‘book_type’ được cài làm
References và trong ‘book_type’ được chọn là id Referencing Sau khi cài đặt xong, click button ‘+’ để thêm foreign key vào bảng.
13 Thông tin của foreign key đã thêm được add và hiển thị dưới bảng Click on ‘Action’ để thêm hành động cụ thể cho việc update và delete data của bảng tham chiếu.
14 Chọn ‘CASCADE’ option cho cả update và delete Khi giá trị của id trong bảng book_type update hoặc xóa thì sẽ kéo theo tác động tới bảng book_list Sau đó click ‘Save’ button để hoàn thành quá trình tạo bảng.
15 Sau khi hoàn thành các bước ở trên, phần Tables sẽ chứa 2 bảng ‘book_list’ và ‘book_type’ Nếu người dùng muốn thay đổi cấu trúc của bảng thì nhấp chuột phải vào tên bảng đó để mở hộp thoại sửa đổi cấu trúc của bảng.
Cách 2: Sử dụng câu lệnh truy vấn tạo bảng
( id serial primary key, category character varying(50) NOT NULL, type character varying(50) NOT NULL
( id serial primary key, book_name character varying(100) NOT NULL, author_name character varying(100) NOT NULL, edition character varying(5), type_id bigint NOT NULL, foreign key (id) references book_type(id) ON UPDATE CASCADE ON DELETE CASCADE
SỬ DỤNG CÂU LỆNH TRUY VẤN TRONG QUERY EDITOR o SELECT: Truy vấn dữ liệu từ các bảng cơ sở dữ liệu cụ thể.
Ex: Select * from book_type; o DISTINCT: loại bỏ các dữ liệu trùng lặp
Ex: Select distinct author_name from book_list o ORDER BY: cho phép sắp xếp các kết quả trên một hoặc nhiều cột trong kết quả của câu truy vấn theo thứ tự tăng dần hoặc giảm dần
ORDER BY [sort_expression1] [ASC | DESC],
[sort_expressionn] [ASC | DESC]; Ex: Select * from book_list order by book_name DESC; o WHERE: cho phép chọn các hàng cụ thể phù hợp với điều kiện hoặc tiêu chí tìm kiếm, sử dụng mệnh đề WHERE để lọc các bản ghi dựa trên một điều kiện nhất định
Ex: Select * from book_list where author_name = 'Nguyen Nhat Anh' o LIMIT: Giới hạn số lượng kết quả.
Ex: SELECT * from book_list LIMIT 5; o GROUP BY: Được sử dụng để gộp các bản ghi có cùng giá trị tại một hay nhiều cột thành một tập hợp
Truy vấn: SELECT column1, column2,
Ex: SELECT count(*) FROM book_list GROUP BY author_name; o HAVING: Điều kiện lọc trong một nhóm các bản ghi hoặc là kết quả của việc thực hiện hàm nhóm Having thường được sử dụng cùng với Group By Having được áp dụng trên các nhóm bản ghi, còn Where áp dụng trên từng bản ghi riêng lẻ.
Ex: SELECT depno, SUM(sal) as total FROM emp GROUP BY deptno HAVING SUM(sal)