KHOA CÔNG NGHỆ THÔNG TIN
-o0o -BÁO CÁO BÀI TẬP LỚN
ĐÁNH GIÁ HIỆU NĂNG HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU POSTGRESQL
Giảng viên: TS Tạ Minh Thanh
Lê Thị Huế
Lớp: Hệ thống thông tin K27B
Hà Nội - 2016
Trang 23.Giới thiệu về công cụ HammerDB 7
4.Quá trình đo hiệu năng 8
5.Kết luận 10
2
Trang 31 Giới thiệu chung về PostgreSQL1.1.PostgreSQL là gì ?
PostgreSQL là hệ quản trị cơ sở dữ liệu được viết theo hướng mã nguồn mởvà rất mạnh mẽ Hệ quản trị cơ sở dữ liệu này đã có hơn 15 năm phát triển, đồngthời cấu trúc đã được kiểm chứng và tạo được lòng tin với người sử dụng về độtin cậy, tính toàn vẹn dữ liệu, và tính đúng đắn PostgreSQL có thể chạy trên tất cảcác hệ điều hành, bao gồm cả Linux, UNIX (AIX, BSD, HP-UX, SGI IRIX, Mac OS X,Solaris, Tru64), và Windows Có hỗ trợ đầy đủ các foreign keys, joins, views,triggers, và stored procedures (trên nhiều ngôn ngữ) Hệ quản trị này còn baogồm các kiểu dữ liệu SQL: 2008 như INTEGER, NUMBER, BOOLEAN, CHAR,VARCHAR, DATE INTERVAL, vàTIMESTAMPs PostgreSQL cũng hỗ trợ lưu trữ cácđối tượng có kiểu dữ liệu nhị phân lớn, bao gồm cả hình ảnh, âm thanh, hoặcvideo Hệ quản trị cơ sở dữ liệu này được sử dụng thông qua giao diện của cácngôn ngữ C / C + +, Java, Net, Perl, Python, Ruby, Tcl, ODBC
Là một hệ quản trị cơ sở dữ liệu mạnh, PostgreSQL có các tính năng phứctạp như kiểm soát truy cập đồng thời nhiều phiên bản (MVCC), khôi phục dữ liệutại từng thời điểm (Recovery), quản lý dung lượng bảng (tablespaces), sao chépkhông đồng bộ, giao dịch lồng nhau (savepoints), sao lưu trực tuyến hoặc nội bộ,truy vấn phức tạp và tối ưu hóa, và viết trước các khai báo để quản lý và gỡ lỗi.PostgreSQL hỗ trợ bộ ký tự quốc tế, hỗ trợ bảng mã nhiều byte, Unicode, và chophép định dạng, sắp xếp và phân loại ký tự văn bản (chữ hoa, thường).PostgreSQL còn được biết đến với khả năng mở rộng để nâng cao cả về số lượng
Trang 4dữ liệu quản lý và số lượng người dùng truy cập đồng thời Đã từng có những hệthống PostgreSQL hoạt động trong môi trường thực tế thực hiện quản lý vượt quá4 terabyte dữ liệu.
Sau đây là một số thông tin giới hạn khả năng của PostgreSQL:
Hàng tối đa mỗi Bảng Không giới hạn
Số cột tối đa của mỗi bảng 250 – 1600 tuỳ thuộc vào loại cộtChỉ số tối đa của mổi bảng Không giới hạn
1.2.Vài nét về lịch sử PostgreSQL
Hệ thống quản lý cơ sở dữ liệu đối tượng-quan hệ bây giờ được gọi làPostgreSQL có nguồn gốc từ các gói Postgres viết tại Đại học California ở Berkeley.Với hơn hai thập kỷ phát triển, PostgreSQL bây giờ là cơ sở dữ liệu mã nguồn mởtiên tiến nhất sẵn sàng ở bất cứ đâu
1.3.Dự án Postgres ở Berkeley
Dự án Postgres, do Giáo sư Michael Stonebraker dẫn dắt, được Cơ quan Dựán Nghiên cứu Cao cấp Quốc phòng - DARPA (Defense Advanced ResearchProjects Agency), Văn phòng Nghiên cứu Quân đội - ARO (Army Research Office),Quỹ Khoa học Quốc gia – NSF (National Science Foundation), và ESL Inc., tài trợ.Dự án Postgres bắt đầu triển khai vào năm 1986 Các khái niệm ban đầu cho hệthống đã được trình bày trong “Các thiết kế của Postgres- Stonebraker and Rowe,1986”, và định nghĩa của mô hình dữ liệu ban đầu đã xuất hiện trong “ Các môhình dữ liệu Postgres - Rowe and Stonebraker, 1987” Thiết kế của hệ thống cácqui tắc khi đó đã được mô tả trong “Các thiết kế của hệ thống quy tắc Postgres -Stonebraker, Hanson, Hong, 1987” Nhân tố căn bản và kiến trúc của người quảnlý kho lưu trữ đã được trình bày chi tiết trong “Các thiết kế của hệ thống lưu trữPostgres - Stonebraker, 1987”
4
Trang 5Postgres đã trải qua vài phiên bản chính kể từ đó Hệ thống “phần mềmtrình diễn” (demoware) đầu tiên đã hoạt động vào năm 1987 và đã được trìnhbày tại Hội nghị ACM-SIGMOD 1988 Phiên bản 1, được mô tả trong “Việc triểnkhai Postgres - Stonebraker, Rowe, Hirohama, 1990”, được phát hành với một vàingười dùng bên ngoài trong tháng 6 năm 1989 Để đáp ứng với một bài phê bìnhcủa hệ thống quy tắc đầu tiên, hệ thống quy tắc đã được thiết kế lại, và phiên bản2 đã được phát hành vào tháng Sáu năm 1990 với hệ thống qui tắc mới Phiênbản 3 xuất hiện vào năm 1991 và đã bổ sung hỗ trợ cho người quản lý nhiều kholưu trữ, thi hành truy vấn được cải thiện, và hệ thống quy tắc được viết lại Đốivới hầu hết các phần, phiên bản tiếp theo cho đến Postgres 95 (xem bên dưới) tậptrung vào tính di động và độ tin cậy.
POSTGRES đã dùng để thực hiện nhiều ứng dụng sản xuất và nghiên cứukhác nhau Chúng bao gồm: một hệ thống phân tích cơ sở dữ liệu tài chính, mộtgói giám sát hiệu năng của động cơ phản lực, một cơ sở dữ liệu theo dõi các hànhtinh nhỏ, một cơ sở dữ liệu thông tin y tế, và vài hệ thống thông tin địa lý,POSTGRES cũng đã được sử dụng như một công cụ giáo dục tại một số trường đạihọc Cuối cùng, Illustra Information Technologies (sau này sát nhập vào Informix,mà bây giờ thuộc sở hữu của IBM) đã chọn mã và thương mại hóa nó Vào cuốinăm 1992, POSTGRES đã trở thành trình quản lý cơ sở dữ liệu chính cho dự ántính toán khoa học Sequoia 2000.
Quy mô của cộng đồng người dùng bên ngoài tăng gần gấp đôi trong năm1993 Rõ ràng là việc bảo trì các mã mẫu và sự hỗ trợ đã chiếm rất nhiều thời gianmà lẽ ra phải được dành cho nghiên cứu cơ sở dữ liệu Trong nỗ lực để giảm bớtgánh nặng hỗ trợ này, các dự án Postgres ở Berkeley chính thức kết thúc vớiphiên bản 4.2.
Vào năm 1994, Andrew Yu và Jolly Chen đã bổ sung thêm một trình biêndịch ngôn ngữ SQL vào POSTGRES Dưới cái tên mới, Postgres95 sau đó đã đượcphát hành lên web để tìm ra cách đi của riêng mình trên thế giới như một hậu duệnguồn mở của mã POSTGRES ở Berkeley
Mã của Postgres95 đã hoàn toàn là ANSI C và được giảm kích thước tới25% Nhiều thay đổi nội bộ đã tăng hiệu suất và khả năng bảo trì Postgres95 phát
Trang 6hành bản 1.0.x chạy nhanh hơn khoảng 30-50% so với chuẩn Wisconsin so vớiPostgres, phiên bản 4.2 Ngoài việc sửa lỗi, sau đây là những cải tiến quan trọng:
- Ngôn ngữ truy vấn PostQUEL đã được thay thế bằng SQL (được triển khaitrong máy chủ).Các truy vấn phụ (Subqueries) đã được hỗ trợ cho tới PostgreSQL,nhưng chúng có thể được mô phỏng trong Postgres95 với các hàm SQL do ngườisử dụng định nghĩa Các hàm tổng hợp đã được tái triển khai Hỗ trợ cho câu truyvấn GROUP BY cũng đã được bổ sung
- Một chương trình mới (psql) đã được đưa ra cho các truy vấn SQL tươngtác, nó sử dụng GNU Readline Điều này đã thay thế phần lớn chương trình giámsát cũ.Một thư viện (front-end) mới, „libpgtcl‟, được các máy trạm dựa vào Tcl hỗtrợ Một trình biên dịch (shell) mẫu, pgtclsh, đã cung cấp các lệnh Tcl mới cho cácchương trình giao tiếp Tcl với máy chủ Postgres95
Giao diện đối tượng lớn đã được kiểm tra kỹ lưỡng Các đối tượng nghịchđảo lớn đã chỉ còn là cơ chế cho việc lưu trữ các đối tượng lớn (Hệ thống tệpnghịch đảo đã được loại bỏ)
Một sách chỉ dẫn ngắn gọn giới thiệu các tính năng SQL thông thường cũngnhư các tính năng của Postgres95 đã được phát hành cùng với mã nguồn
Tới năm 1996, rõ ràng cái tên “Postgres95” không phù hợp theo thời gian.PostgreSQL là tên mới được chọn, để phản ánh mối quan hệ giữa POSTGRES gốcban đầu và các phiên bản gần đây với SQL Đồng thời, thiết lập việc đánh số phiênbản bắt đầu từ 6.0, đưa con số trở lại trình tự xuất phát ban đầu của dự ánPOSTGRES ở Berkeley
Nhiều người vẫn coi PostgreSQL như "Postgres" vì truyền thống hay bởi vìnó dễ phát âm Việc sử dụng này được chấp nhận rộng rãi như một biệt danhhoặc bí danh
Điểm nhấn của Postgres95 trong quá trình phát triển là việc xác định vàhiểu được các vấn đề đang tồn tại trong mã của máy chủ Với PostgreSQL, trọngtâm chuyển sang nâng cao tính năng, mặc dù vẫn tiếp tục làm việc trong tất cả cáclĩnh vực
2 Ưu nhược điểm của PostgreSQL
6
Trang 7- Có hầu hết các truy vấn SQL với các kiểu dữ liệu như INTEGER, NUMERIC,BOOLEAN, CHAR, VARCHAR, DATE, INTERVAL, và TIMESTAMP
- Tạo chỉ mục giúp quá trình truy vấn đạt hiệu quả cao hơn
- Hỗ trợ các chức năng tìm kiếm tổng quát hóa có thể “gắn” các chỉ mụcvào giúp quá trình tìm kiếm được thực hiện trên phạm vi rộng hơn như: compound, unique, partial, and functional indexes
- Có thể tạo mới kiểu dữ liệu, các hàm, các thủ tục (procedure)
- Hỗ trợ đa người dùng: dữ liệu không gian có xu hướng là các dữ liệu thamchiếu, tức là được chia sẻ bởi nhiều người dùng Lưu trữ dữ liệu trong hệ quản trịcơ sở dữ liệu sẽ cung cấp những lợi ích như: truy cập từ xa thông qua các chuẩngiao tiếp như: JDBC, ODBC, PERL/DBI , làm tăng tính bảo mật cho dữ liệu như:một số người dùng có toàn quyền tuy nhiên một số người dùng chỉ có thể đọc haykhông được nhìn thấy
Trang 83 Cấu trúc của PostgresSQL
PostgreSQL sử dụng mô hình client/ server trong khi quản trị cơ sở dữ liệu.Mỗi phiên Postgres bao gồm những quá trình sau đây:
Postmaster: quản lý người dùng truy cập
User application: trình ứng dụng của người dùng
chính server.
Hình vẽ dưới đây mô tả cơ chế kết nối giữa server và client:
Trong sơ đồ trên Postmaster quản trị một tập các cơ sở dữ liệu có trên mộtclient host Tập cơ sở dữ liệu như thế gọi là cluster Một trình ứng dụng cóthể truy cập hệ cơ sở dữ liệu trên được gọi là library ( LIBP Q) Library gửiyêu cầu người dùng qua nối tới một frontend process Tại đây, frontendprocess sẽ trao đổi trực tiếp với backend process mà không cần thông quaPostmaster nữa Do đó Postmaster luôn chạy và chờ các yêu cầu khác tới.Thư viện LIBPQ cho phép một fronted tạo ra nhiều kết nối tới các backend.
4 Đặc điểm của PostgreSQL
4.1 Tính kế thừa
Để tạo hai bảng, ta có thể tạo một bảng trước, sau đó bảng sau có thể kếthừa lại bảng trước đó với thuộc tính của bảng trước Ví dụ ta tạo bảng city, bảngcapitals thừa kế lại bảng city
CREATE TABLE city (
8
Trang 9Name text,Population real,
Altitude int (in ft));
CREATE TABLE capitals (State char(2)) INHERITS (city);
Trong ví dụ này, các cột trong bảng capitals thừa kế lại toàn bộ các thuộctính về định dạng kiểu dữ liệu của bảng city.
Cho ví dụ, truy vấn sau tìm thấy cho những tên tất cả các thành phố, thànhphố được định vị ở độ cao trên 500 fit so với mặt biển:
SELECT name, altitudeFROM city
Where altitude > 500;Kết quả:
4.2 Những giá trị không nguyên tố
Một trong những nguyên tắc của mô hình quan hệ là cột của bảng lànguyên tố Còn PostgreSQL thì không có sự hạn chế này, cột có thể chứa đựngnhững mức dưới giá trị mà có thể được truy nhập từ ngôn ngữ hỏi Chẳng hạn,bạn có thể tạo ra những cột là những mảng của nhiều kiểu cơ sở dữ liệu.
PostgreSQL cho phép cột của một hàng sẽ được định nghĩa cố định Cácmảng có kiểu cơ sở dữ liệu bất kỳ hoặc kiểu do người dùng định ra có thể đượctạo ra Sau đây là 1 ví dụ:
Trang 10Trong ví dụ trên sẽ tạo ra một bảng có tên SAL_EMP với văn bản name, mộtmảng một chiều của số nguyên, mà đại diện tiền lương của người làm thuê bởiquý và một mảng hai chiều văn bản, mà đại diện chương trình hàng tuần củangười làm thuê Tiếp theo chúng ta xét tới ví dụ khởi tạo cấu trúc và việc chènbảng bằng ngôn ngữ lập trình C:
Ví dụ sau đây truy vấn này khôi phục những tên của người làm thuê của aithanh toán thay đổi vào quý hai:
5 So sánh PostgreSQL với một số hệ quản trị CSDL khác
5.1 Thông tin chung
Công tyNgày phát hành phiênbản đầu tiên
Phiên bản ổn
định mới nhấtGiấy phép sử dụng
Adaptive Server
Trang 11InterBase Borland19857.5.1Độc quyền
(2005) Độc quyền
PostgreSQL PostgreSQL Global Development
Group Tháng 6 năm 1989 8.1.3 BSD
Pyrrho DBMS University of PaisleyTháng 11 năm 20050.5Độc quyền
5.2 Hệ điều hành được hỗ trợ
5.3 Tính năng cơ bản
ACIDReferential integrityTransactionsUnicode
Trang 12Informix CóCóCóCó
MySQL Phụ thuộc Phụ thuộcPhụ thuộcCó / UTF-8(3-byte) & UCS-2
5.4 Table và View
Chỉ mục
Adaptive Server
12
Trang 13H2 KhôngKhôngKhôngKhôngKhôngKhông Không
r4 Không
Non/Cluster &
KhôngKhôngKhôngKhông Không
5.6 Các đối tượng khác
DomainCursorTriggerHàm 11Thủ tục11External routine 11
6 Cấu hình và cài đặt PostgreSQL
6.1 Cấu hình máy và phần mềm yêu cầuCấu hình máy:
Hệ điều hành: Chạy trên tất cả các hệ điều hành, bao gồm Windows,Linux,
UNIX (AIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64)
Trang 14 CPU: Intel Pentinum II 400Mhz trở lên. RAM: 128Mb trở lên.
Phần mềm yêu cầu: Hệ quản trị cơ sở dữ liệu PostgreSQL: Postgresql-9.4 (http://www.postgresql.org/download/windows/)
6.2 Cài đặt PostgreSQL
Download và cài đặt hệ quản trị cơ sở dữ liệu PostgreSQL.
Chạy file postgresql-9.6.1-1-windows-x64.exe.Nhấn Next để bắt đầu quá trình cài đặt.
14
Trang 167 Giới thiệu về công cụ HammerDB
HammerDB là một công cụ đo và kiểm tra các hệ quản trị cơ sở dữ liệu nhưOracle, SQLServer, TimesTen, PostgreSQL, Greenplum, Postgres Plus AdvancedServer, MySQL, Redis và Trafodion SQL trên Hadoop.
Hiện tại, HammerDB v2.21 là phiên bản mới nhất Có thể dễ dàng downloadtại địa chỉ http://www.hammerdb.com
HammerDB v2.21 làm việc tương thích với hệ quản trị cơ sở dữ liệuPostgreSQL
HammerDB tạo 1 môi trường ảo có Database, có các User và tạo cácTransaction
Database chứa dữ liệu của giao dịch hàng hóa: Bao gồm thông tin của Khochứa của khách hàng, giao dịch.
Các User được tạo ra dựa theo các kịch bản mô phỏng hệ thống.
16
Trang 178 Quá trình đo hiệu năng
Các tham số để đo hiệu năng hệ quản trị cơ sở dữ liệu PostgreSQL: Sốlượng user truy cập đồng thời, Số lượng giao dịch đồng thời.
Các tham số đánh giá hiệu năng: Số giao dịch/phút, khả năng chịu đựng củaCPU (hiển thị đo xung nhịp của CPU)
Trình tự để tiến hành đo hiệu năng: - Khởi động HammerDB
- Cấu hình HammerDB để đo hiệu năng với hệ quản trị CSDL PostgreSQL
Creating the test Schema