Tìm hiểu cơ sở dữ liệu enterprisedb Tìm hiểu cơ sở dữ liệu enterprisedb Tìm hiểu cơ sở dữ liệu enterprisedb Tìm hiểu cơ sở dữ liệu enterprisedb Tìm hiểu cơ sở dữ liệu enterprisedb Tìm hiểu cơ sở dữ liệu enterprisedb Tìm hiểu cơ sở dữ liệu enterprisedb
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Vũ Thị Dịu Đỗ Thị Thu Hồi TÌM HIỂU CƠ SỞ DỮ LIỆU ENTERPRISEDB BÁO CÁO BÀI TẬP LỚN MƠN HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU Ngành: Cơng Nghệ Thông Tin Hà Nội – 2020 Mục Lục I Đặc điểm EnterpriseDB .4 Các đặc trưng 1.1 PostgreSQL 1.2 Bảo mật 1.3 Công cụ hỗ trợ .8 1.4 Hiệu Cài đặt, minh họa sử dụng 2.1 Cài đặt EnterpriseDB 2.2 Minh họa sử dụng pgAdmin .16 So sánh đánh giá với HQT CSDL khác tiêu biểu dòng 35 II Phân tích thiết kế hệ thống 36 Tổng quan hệ thống 36 Các công nghệ dự kiến sử dụng .37 Các chức dự kiến .37 Lược đồ CSDL 38 Mơ tả module (sơ đồ khối, định dạng liệu vào, ra, giải pháp dự kiến) 38 TĨM TẮT Tóm tắt: EnterpriseDB (EDB) hệ sở liệu mã nguồn mở, phát triển dựa tảng hệ sở liệu PostgreSQL EDB nghiên cứu phát triển công ty EDB, mắt lần đầu vào năm 2005 Sau nhiều lần cải tiến, đến EDB biết đến với tên thức EDB Postgres Advanced Server Từ khóa: EDB, EDB Postgres Advanced Server,… I Đặc điểm EnterpriseDB Các đặc trưng Dựa hệ quản trị mã nguồn mở PostgreSQL Tăng hiệu suất, bảo mật khả tương thích sở liệu Oracle Bao gồm tính bổ sung dành cho phát triển quản trị hệ sở liệu Hỗ trợ công cụ quản lý tích hợp phân tán triển khai nhiều tảng truyền thống tảng đám mây 1.1 PostgreSQL 1.1.1 Giới thiệu chung PostgreSQL hệ thống sở liệu quan hệ đối tượng mã nguồn mở mạnh mẽ, sử dụng mở rộng ngơn ngữ SQL kết hợp với nhiều tính giúp lưu trữ chia tỷ lệ cách an tồn khối lượng cơng việc liệu phức tạp Nguồn gốc PostgreSQL có từ năm 1986 phần dự án POSTGRES Đại học California Berkeley có 30 năm phát triển tích cực tảng cốt lõi PostgreSQL tạo danh tiếng mạnh mẽ nhờ kiến trúc chứng minh, độ tin cậy, tính tồn vẹn liệu, tính mạnh mẽ, khả mở rộng cống hiến cộng đồng nguồn mở đằng sau phần mềm để liên tục cung cấp giải pháp hiệu sáng tạo PostgreSQL chạy tất hệ điều hành chính, tuân thủ ACID có tiện ích bổ sung mạnh mẽ mở rộng sở liệu không gian địa lý PostGIS phổ biến Khơng có ngạc nhiên PostgreSQL trở thành sở liệu quan hệ nguồn mở nhiều người tổ chức lựa chọn 1.1.2 Tính PostgreSQL kèm với nhiều tính nhằm giúp nhà phát triển xây dựng ứng dụng, quản trị để bảo vệ tính tồn vẹn sở liệu 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ý liệu tập liệu lớn hay nhỏ Ngồi miễn phí mã nguồn mở, PostgreSQL cịn có khả mở rộng cao Ví dụ: bạn xác định kiểu liệu riêng mình, xây dựng chức tùy chỉnh, chí viết mã từ ngơn ngữ lập trình khác mà khơng cần biên dịch lại sở liệu bạn PostgreSQL cố gắng tuân thủ tiêu chuẩn SQL cho tn thủ khơng mâu thuẫn với tính truyền thống dẫn đến định kiến trúc Nhiều tính theo yêu cầu tiêu chuẩn SQL hỗ trợ, có cú pháp chức khác Dưới danh sách tính hỗ trợ PostgreSQL: Kiểu 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 liệu: o Các ràng buộc khóa chính, khóa ngoại, ràng buộc nhất, ràng buộc not null, đảm bảo liệu hợp lệ lưu trữ o PostgreSQL hỗ trợ đầy đủ cho thuộc tính ACID đảm bảo phân tách giao dịch hiệu cách sử dụng hệ thống kiểm soát phiên đồng thời (MVCC) Phương pháp cho phép tránh việc luồng liệu chặn trường hợp Đọc giao dịch không chặn người viết viết không chặc việc đọc Đa luồng, hiệu suất: o Cấu hình: sử dụng 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 kiến trúc xử lý đa lõi đại Hiệu suất phát triển gần tuyến tính số lượng lõi tăng lên Bắt đầu từ phiên 9.6, PostgreSQL hỗ trợ đồng thời xử lí liệu Phiên 10 cho phép đọc song song (bao gồm quét mục), nối tổng hợp liệu Phiên 11 hỗ trợ đầy đủ cho nối băm song song Phiên 12 cung cấp khả song song hóa truy vấn mức cách ly hóa, biên dịch JIT truy vấn tăng tốc độ hoạt động cách sử dụng tốt tài nguyên phần cứng 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ý phiên thơng qua hệ thống kiểm sốt phiên đồng thời, từ nâng cao khả khôi phục lại liệu xảy lỗi o Cung cấp đa dạng phương thức chép: đồng bộ, không đồng logic o Lưu trữ nhật ký thay đổi để dễ dàng kiểm soát phiên o Quản lý liệu lưu trữ thông qua tablespace, giúp việc truy xuất liệu thực dễ dàng nhanh chóng Bảo mật: PostgreSQL hỗ trợ kết nối SSL an toàn cung cấp phương pháp xác thực khác nhau, chẳng hạn xác thực mật (bao gồm SCRAM), chứng ứng dụng khách dịch vụ xác thực (LDAP, RADIUS, PAM, Kerberos) Để quản lý người dùng kiểm soát truy cập sở liệu, tính sau cung cấp: o Tạo quản lý người dùng vai trị nhóm o Kiểm sốt truy cập dựa vai trị nhóm đối tượng sở liệu o Bảo mật cấp hàng cấp cột o Hỗ trợ SELinux thông qua chức SEPostgreSQL tích hợp sẵn Các loại mục: PostgreSQL cung cấp nhiều loại mục khác Ngồi B-tree truyền thống, bạn sử dụng nhiều phương pháp truy cập khác o Băm: loại mục dựa vào hàm băm Không giống với B-tree, mục loại kiểm tra bình đẳng, chứng minh nhỏ gọn hiệu số trường hợp o GiST: tìm kiếm cân tổng quát Phương thức truy cập sử dụng cho liệu xếp o SP-GiST: không cân tổng quát dựa việc chia phạm vi tìm kiếm thành phân vùng lồng không giao o GIN: số đảo ngược tổng quát, sử dụng cho hợp chất giá trị đa phần tử Nó chủ yếu áp dụng tìm kiếm tồn văn để tìm tài liệu có chứa từ sử dụng truy vấn tìm kiếm o RUM: cải tiến phương pháp GIN để tìm kiếm tồn văn Có sẵn dạng tiện ích mở rộng, loại mục tăng tốc độ tìm kiếm cụm từ trả kết xếp theo mức độ liên quan o BRIN: cấu trúc nhỏ gọn cung cấp cân kích thước mục hiệu tìm kiếm Chỉ mục hữu ích cho bảng lớn o Bloom: mục dựa lọc Bloom Có đại diện nhỏ gọn, mục nhanh chóng lọc giá trị, yêu cầu kiểm tra lại lại Khả mở rộng: Một lợi kiến trúc PostgreSQL khả mở rộng Nếu không thay đổi mã hệ thống cốt lõi, người dùng thêm tính sau: o Định nghĩa kiểu liệu o Các chức toán tử để hỗ trợ kiểu liệu o Các phương pháp truy cập bảng mục o Ngôn ngữ lập trình máy chủ: PL/ PGSQL, Perl, Python, o Trình bao bọc liệu ngồi: kết nối với sở dữu liệu bên 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 ) 1.2 Bảo mật EDB tránh việc hoàn toàn dựa vào nhà phát triển tầng ứng dụng khách để thực thi sách bảo mật, hỗ trợ tuân thủ tiêu chuẩn GDPR, PCI HIPAA Chính sách bảo mật EDB đảm bảo thơng qua: Chính sách quản lý tài khoản, mật người dùng Kiểm tra thẻ phiên sử dụng Bảo mật mức hàng Bảo vệ công trực tiếp từ truy vấn SQL Bảo vệ mã phía máy chủ 1.3 Công cụ hỗ trợ Hệ thống công cụ mà EDB hỗ trợ để tích ứng với mơi trường doanh nghiệp gọi EDB Postgres Enterprise Manager (PEM) PEM cung cấp số tính quản lý doanh nghiệp bổ sung hỗ trợ bạn quản lý, phân tích, xếp hợp lý triển khai chức Postgres PEM giám sát máy chủ 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 thống kê máy chủ sở liệu Trình quản lý nhật ký PEM giúp bạn ghi lại nhật ký, giúp bạn phân tích nội dung tệp nhật ký cách khéo léo Chun gia Postgres phân tích cấu hình máy chủ đề xuất thay đổi cải thiện hiệu suất, bảo mật độ tin cậy Trình quản lý lực sử dụng liệu thống kê để phân tích mức sử dụng trước ngoại suy số liệu thống kê sử dụng tương lai cho đối tượng giám sát PEM hỗ trợ sửa đổi cảnh báo hệ thống xác định tạo cảnh báo tùy chỉnh thông báo cho quản trị viên nhóm có trách nhiệm khoảng thời gian cụ thể PEM lên lịch cơng việc máy chủ giám sát, gửi thơng báo qua email cho nhóm đối tượng giao cơng việc Trình quản lý chuyển đổi dự phòng hỗ trợ trường hợp sở liệu xảy cố 1.4 Hiệu EDB cho phép ưu tiên luồng công việc chẳng hạn phân vùng trình xử lý hàng loạt mà không gây nguy hiểm cho khả phản hồi giúp tiết kiệm thời gian khắc phục cố, giám sát bảo mật trì Điều tiết CPU I/O cấp quy trình Phân vùng liệu nhanh hơn: ghi nhanh 400 lần, thực truy vấn nhanh 76 lần Hơn 55 dạng xem danh mục mở rộng để lập hồ sơ tất đối tượng trình xử lý xảy sở liệu Trình tải liệu hàng loạt: nhanh lần ( Nguồn tham khảo: https://www.enterprisedb.com/edb-docs/p/edbpostgres-advanced-server/12 ) Cài đặt, minh họa sử dụng 2.1 Cài đặt EnterpriseDB Click https://www.enterprisedb.com/software-downloads-postgres để tới home download EDB Chọn vào phần download Databases: EDB Postgres Advanced Server Tại version hệ điều hành tương thích với 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 administrator Dưới hình bắt đầu cài đặt hệ thống Click nút Next Đọc yêu cầu hệ thống, click accept -> Next 10 CSE Programing MBBS Anatomy BBA Finance o Table ‘book_list’ có trường id, book_name, author_name, edition, type_id id, book_name, author_name type_id bắt buộc(not null) edition null id primary key type_id foreign key bảng Ví dụ: id book_name author_name edition type_id E001 Java the Herbert 7th complete Schildt reference M001 Anatomy Thomas 3rd W.Myers Cách 1: Sử dụng template có sẵn pgAdmin Click on ‘Schemas’ ‘library’ database Trong phần mở rộng phần ‘public’ tìm danh mục ‘Tables’ Chuột phải vào mục ‘Tables’ -> ‘Create’ -> ‘Tables…’ options Sau xuất hộp thoại để tạo bảng Nhập tên bảng vào ô ‘Name’,… Giải sử tạo bảng có tên ‘book_type’ Chọn vào tab ‘Columns’ click vào button ’+’ để cài đặt trường cho bảng 25 Như ví dụ nêu trên, cài đặt trường cho table ‘book_type’ bao gồm id, category, type Chọn điều kiện phù hợp với yêu cầu Click button ‘Save’ để hoàn tất trình tạo table 26 Tạo table ‘book_list’ tương tự tạo table ‘book_type’ đến step Click tab ‘Constraints’ để cài đặt primary key foreign keys Trong tab có mục khác Đầu tiên ‘Primary Key’ Trong tab hiển thị thông tin primary key bảng Người dùng add or remove primary key tab 27 Click tab ‘Foreign Key’ để xác định Foreign Key bảng Click on ‘+’ button để thêm foreign key 10 Click on symbol Edit button để mở tab tạo foreign key 28 11 Điền thông tin foreign key trường ‘Name’ Ở đây, ‘book_type’ đặt tên khóa ngoại Sau đó, click tab Columns 12 Chọn Local Column, References Referencing từ dropdown list Trong bảng này, type_id foreign key đặt làm Local Column ‘book_type’ cài làm References id ‘book_type’ chọn Referencing Sau cài đặt xong, click button ‘+’ để thêm foreign key vào bảng 29 13 Thông tin foreign key thêm add hiển thị bảng Click on ‘Action’ để thêm hành động cụ thể cho việc update delete data bảng tham chiếu 14 Chọn ‘CASCADE’ option cho update delete Khi giá trị id bảng book_type update xóa kéo theo tác động tới bảng book_list Sau click ‘Save’ button để hồn thành q trình tạo bảng 30 15 Sau hồn thành bước trên, phần Tables chứa bảng ‘book_list’ ‘book_type’ Nếu người dùng muốn thay đổi cấu trúc bảng nhấp chuột phải vào tên bảng để mở hộp thoại sửa đổi cấu trúc bảng Cách 2: Sử dụng câu lệnh truy vấn tạo bảng create table ‘book_type’ CREATE TABLE book_type ( id serial primary key, category character varying(50) NOT NULL, type character varying(50) NOT NULL ) create table ‘book_list’ CREATE TABLE book_list ( 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 31 ) SỬ DỤNG CÂU LỆNH TRUY VẤN TRONG QUERY EDITOR o SELECT: Truy vấn liệu từ bảng sở liệu cụ thể Truy vấn : SELECT column FROM table_name; Ex: Select * from book_type; o DISTINCT: loại bỏ liệu trùng lặp Truy vấn : SELECT DISTINCT column1 FROM table_name; Ex: Select distinct author_name from book_list o ORDER BY: cho phép xếp kết nhiều cột kết câu truy vấn theo thứ tự tăng dần giảm dần Truy vấn : SELECT column FROM table_name 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 hàng cụ thể phù hợp với điều kiện tiêu chí tìm kiếm, sử dụng mệnh đề WHERE để lọc ghi dựa điều kiện định Truy vấn: SELECT column FROM table_name WHERE condition; Ex: Select * from book_list where author_name = 'Nguyen Nhat Anh' o LIMIT: Giới hạn số lượng kết Truy vấn: SELECT column FROM table_name LIMIT 10; Ex: SELECT * from book_list LIMIT 5; o GROUP BY: Được sử dụng để gộp ghi có giá trị hay nhiều cột thành tập hợp Truy vấn: SELECT column1, column2, …, aggregate_function(column3) 32 FROM table_name GROUP BY column1, column2,… Ex: SELECT count(*) FROM book_list GROUP BY author_name; o HAVING: Điều kiện lọc nhóm ghi kết việc thực hàm nhóm Having thường sử dụng với Group By Having áp dụng nhóm ghi, cịn Where áp dụng ghi riêng lẻ Ex: SELECT depno, SUM(sal) as total FROM emp GROUP BY deptno HAVING SUM(sal)