Tải bản đầy đủ (.pdf) (38 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.51 MB, 38 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>ĐẠI HỌC QUỐC GIA HÀ NỘITRƯỜNG ĐẠI HỌC CƠNG NGHỆ</b>

<b>Vũ Thị DịuĐỗ Thị Thu Hồi</b>

<b>TÌM HIỂU CƠ SỞ DỮ LIỆU ENTERPRISEDB</b>

<b>BÁO CÁO BÀI TẬP LỚN MÔN HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆUNgành: Công Nghệ Thông Tin</b>

<b>Hà Nội – 2020</b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

2.2. Minh họa sử dụng bằng pgAdmin...16

3. So sánh đánh giá với 3 HQT CSDL khác tiêu biểu cùng dịng...35

<b>II.Phân tích thiết kế hệ thống...36</b>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>TĨM TẮT </b>

<b>Tóm tắt: EnterpriseDB (EDB) là một hệ cơ sở dữ liệu mã nguồn mở, được phát </b>

triển dựa trên nền tảng là hệ cơ sở dữ liệu PostgreSQL. EDB được nghiên cứu và phát triển bởi công ty EDB, được ra mắt lần đầu vào năm 2005. Sau nhiều lần cải tiến, đến nay EDB được biết đến với cái tên chính thức là EDB Postgres Advanced Server.

Từ khóa: EDB, EDB Postgres Advanced Server,…

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

<b>I. Đặc điểm của EnterpriseDB</b>

1. 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.

1.1. PostgreSQL1.1.1. Giới thiệu chung

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ộtcá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 ở Berkeleyvà đã 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 tồ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ạytrên tất cả các hệ điều hành chính, tn 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

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

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.

1.1.2. Tính năng

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 tồ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ỏ.

Ngồ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êndị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ự tn 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:

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 ACIDvà đảm bảo phân tách giao dịch hiệu quả bằng cáchsử 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:

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

o Cấu hình: sử dụng các tham số GUC (Grand UnifiedConfiguration 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ản10 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 số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.

Bảo mật:

PostgreSQL hỗ trợ các kết nối SSL an toàn và cung cấpcá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ómo Kiểm số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ệuo Bảo mật cấp hàng và cấp cột

o Hỗ trợ SELinux thơng qua chức năng PostgreSQL tích hợp sẵn.

SE-Các loại chỉ mục:

6

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

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áptruy 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ệukhô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ụngcho hợp chất giá trị đa phần tử. Nó chủ yếu được ápdụng trong tìm kiếm tồ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 tồ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.

Khả năng mở rộng:

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ụco Ngơn ngữ lập trình máy chủ: PL/ PGSQL, Perl,

Python, ...

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

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: )1.2. Bảo mật

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.

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.

Chun gia Postgres phân tích cấu hình máy chủ và đề xuấtcá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ạocả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

8

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

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ố.

1.4. Hiệu năng

EDB cho phép ưu tiên luồng công việc chẳng hạn như phân vùng trong quá trình xử lý hàng loạt mà không gây nguy hiểm cho khả năng phản hồi giúp tiết kiệm thời gian khắc phục sự cố, giám sát bảo mật và duy trì

Điều tiết CPU và I/O cấp quy trình.

Phân vùng dữ liệu nhanh hơn: ghi nhanh hơn 400 lần, thực hiện truy vấn nhanh hơn 76 lần.

Hơn 55 dạng xem danh mục mở rộng để lập hồ sơ tất cả các đối tượng và quá trình xử lý xảy ra trong cơ sở dữ liệu.

Trình tải dữ liệu hàng loạt: nhanh hơn 2 lần.( Nguồn tham khảo: Cài đặt, minh họa sử dụng2.1. Cài đặt EnterpriseDB

Click 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.

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

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

10

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

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.

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

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

12

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

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.

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

Chọn loại công việc mà server được sử dụng. Sau đó click phím Next.

14

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

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.

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

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 ô ‘<b>Name</b>’,…. Giải sử tạo bảng có tên ‘book_type’

4. Chọn vào tab ‘<b>Columns’ </b>và click vào button ’ ’ để cài đặt <b>+</b>

các trường cho bảng.

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

5. Như ví dụ đã nêu ở trên, cài đặt 3 trường cho table

<b>‘book_type’ bao gồm id, category, type. Chọn các điều </b>

kiện phù hợp với yêu cầu

6. Click button ‘<b>Save’ </b>để hoàn tất quá trình tạo table.

26

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">

7. Tạo table ‘<b>book_list</b>’ tương tự như tạo table ‘<b>book_type </b>’ đến step 4.

8. Click tab ‘<b>Constraints</b>’ để cài đặt primary key và foreign keys. Trong tab này sẽ có 5 mục khác nhau. Đầu tiên là

<b>‘Primary Key’. Trong tab này sẽ hiển thị thông tin </b>

primary key của bảng. Người dùng có thể add or remove primary key trong tab này.

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">

<b>9. Click tab ‘Foreign Key’ để xác định các Foreign Key của </b>

bảng. Click on ‘+’ button để thêm foreign key.

10. Click on symbol Edit button để mở tab tạo foreign key

28

</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">

11. Điền thông tin của foreign key trong trường ‘<b>Name</b>’. Ở đây, ‘book_type’ được đặt tên của khóa ngoại. Sau đó,

<b>click tab Columns</b>

<b>12. Chọn Local Column, References Referencing </b>và từ các dropdown list. Trong bảng này, <b>type_id</b> là foreign key và được đặt làm <b>Local Column. ‘book_type</b>’ được cài làm

<b>References và trong ‘book_type’ được chọn là id Referencing . Sau khi cài đặt xong, click button ‘+’ để </b>

thêm foreign key vào bảng.

</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">

13. Thông tin của foreign key đã thêm được add và hiển thị dưới bảng. Click on ‘<b>Action</b>’ để thêm hành động cụ thể cho việc <b>update </b>và <b>delete </b>data của bảng tham chiếu.

14. Chọn ‘<b>CASCADE</b>’ 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 ‘<b>Save</b>’ button để hồn thành q trình tạo bảng.

30

</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">

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ảng1. create table ‘book_type’

CREATE TABLE book_type(

id serial primary key,

category character varying(50) NOT NULL, type character varying(50) NOT NULL)

2. 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

</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32">

<b>o DISTINCT: loại bỏ các dữ liệu trùng lặp</b>

Truy vấn : SELECT

DISTINCT column1 FROM table_name;

Ex: Select distinct author_name from book_list

<b>o ORDER BY: cho phép sắp xếp các kết quả trên một hoặc </b>

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

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;

<b>o WHERE: cho phép chọn các hàng cụ thể phù hợp với điều</b>

kiện hoặc tiêu chí tìm kiếm, sử dụng mệnh đề <b>WHERE </b>để lọc các bản ghi dựa trên một điều kiện nhất định

Truy vấn: SELECT column FROM table_name WHERE condition;

Ex: Select * from book_list where author_name = 'NguyenNhat Anh'

<b>o LIMIT: Giới hạn số lượng kết quả.</b>

Truy vấn: SELECT column FROM table_name LIMIT 10;

Ex: SELECT * from book_list LIMIT 5;

<b>o GROUP BY: Được sử dụng để gộp các bản ghi có cùng </b>

giá trị tại một hay nhiều cột thành một tập hợpTruy vấn: SELECT column1,

column2,…,

aggregate_function(column3)

32

</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">

FROM table_name

GROUP BY column1, column2,…Ex: SELECT count(*) FROM book_list GROUP BY author_name;

<b>o HAVING: Điều kiện lọc trong một nhóm các bản ghi hoặc</b>

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) <10000;

<b>o INNER JOIN (Phép nối trong) : Nối 2 bảng lại với nhau.</b>

Truy vấn: SELECT column1, column2,.. FROM table_name1

INNER JOIN table_name2 ON condition1 INNER JOIN table_name3 ON condition2…

WHERE conditions

Ex: SELECT * FROM book_list INNER JOIN book_type ON book_list.type_id = book_type.id

<b>o LEFT JOIN : cho phép chọn tất cả các hàng từ bên trái </b>

ngay cả kho khơng có bản ghi nào phù hợp với nó trong bảng bên phải

Truy vấn : SELECT column1, column2,.. FROM table_name1

</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="34">

LEFT JOIN table_name2 ON conditionEx: SELECT * FROM book_list LEFT JOIN book_type ON book_list.type_id = book_type.id

<b>o INSERT: cho phép thêm các dòng dữ liệu từ một bảng xác</b>

<b>o UPDATE: Được dùng để cập nhật dữ liệu đã tồn tại trong </b>

bảng của CSDL.

Truy vấn : UPDATE table_name SET column1 = value1,

column2 = value2,…WHERE condition;

Ex: UPDATE book_type SET category = 'MBBS' WHEREid = 3

3. So sánh đánh giá với 3 HQT CSDL khác tiêu biểu cùng dịngEDB

Mơ tả Nền tảng quảnlý dữ liệu dành cho doanh nghiệp dựa trên PostgreSQL với các tùy chọn được triển khai linhhoạt

Hệ quản trị cơ sở dữ liệu quan hệ được sử dụng rộngrãi

Nền tảng phần mềm phân tích dữ liệu đám mây kết hợp (Teradata Vantage)

Ứng dụng mã nguồn mở tương thích với MySQL, được tăng cường khả năng bảo mật, tương tác và hiệu suất cao. Hỗ trợ công cụ lưu trữ hướng cột có sẵn MariaDB ColumnStoreDbaaS

cung cấp

Azure Database for MySQLScaleGrid for MySQL

Azura Database for MariaDBSkySQLHệ điều

FreeDSBLinuxOS XSolarisWindows

34

</div>

×