Trong dự án , tưởng của Codd là sử dụng một bảng các bản ghi có độ dài cố định, với mỗi bảng được sử dụng cho một loại thực thể khác nhau, ông đã mô tả một hệ thống mới để lưu trữ và làm
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-
PHAN TRỌNG PHÚC
NGHIÊN CỨU CÁC HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU VÀ ÁP DỤNG VÀO BÀI TOÁN LƯU TRỮ VÀ TRUY VẤN
KHO SỐ/THẺ ĐIỆN THOẠI
LUẬN VĂN THẠC SỸ KỸ THUẬT CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
NGƯỜI HƯỚNG DẪN KHOA HỌC
TS NGUYỄN THANH HÙNG
Trang 2LỜI CAM ĐOAN
Tôi tên là: Phan Trọng Phúc , học viên lớp 2016A CNTT – Trường Đại học Bách Khoa Hà Nội Tôi xin cam đoan toàn bộ nội dung của luận văn do tôi tự học tập, nghiên cứu trên Internet, sách báo, các tài liệu trong và ngoài nước có liên quan Không sử dụng bài làm của bất kỳ ai khác, mọi tài liệu đều được trích dẫn cụ thể Tôi xin chịu hoàn toàn trách nhiệm về lời cam đoan của mình trước Quý Thầy
Cô, Khoa và Nhà trường
Hà Nội, ngày … tháng … năm 2019
Người cam đoan
Phan Trọng Phúc
Trang 3LỜI CẢM ƠN
Lời đầu tiên, xin phép cho tôi gửi lời cảm ơn trân trọng nhất tới Thầy giáo
TS Nguyễn Thanh Hùng, người đã luôn chỉ bảo, hướng dẫn tôi tận trong suốt quá trình học tập cũng như thực hiện luận văn cao học
Tôi xin chân thành cảm ơn các Thầy, các Cô trong trường Đại học Bách Khoa Hà Nội đã cho tôi một môi trường rất tốt để học tập và nghiên cứu Các Thầy
Cô đã luôn truyền đạt cảm hứng, cho tôi những kiến thức quý báu, làm nền tảng để tôi hoàn thành luận văn cũng như công việc trong tương lai
Tôi cũng xin gửi lời tri ân tới các anh, chị, bạn học viên khoá 2016 đã luôn sát cánh cùng nhau trong suốt quá trình học tập tại trường Lời cuối, tôi muốn gửi lời cảm ơn tới gia đình và bạn bè, những người thân yêu luôn ở bên, khuyến khích
và động viên tôi trong cuộc sống cũng như trong học tập
Tôi xin chân thành cảm ơn!
Trang 4MỤC LỤC
DANH MỤC CHỮ VIẾT TẮT 6
DANH MỤC CÁC HÌNH 7
DANH MỤC CÁC BẢNG 9
PHẦN MỞ ĐẦU 10
CHƯƠNG I: TỔNG QUAN VỀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU(DBMS) 12
1.1.Lịch sử phát triển và ứng dụng 12
1.2.So sánh giữa lưu trữ bằng hệ thống file cổ điển với hệ quản trị cơ sở dữ liệu 14
1.3.Những lợi ích của hệ quản trị cơ sở dữ liệu 15
1.4 Biểu diễn và lưu trữ dữ liệu trong hệ quản trị cơ sở dữ liệu 15
1.5.Đ c điểm của một hệ quản trị cơ sở dữ liệu 21
1.5.1 Sự tr u tượng hoá dữ liệu 21 1.5.2 Ngôn ngữ cơ sở dữ liệu 22
1.5.3 Xử l c u h i 22
1.5.4 Quản trị giao dịch 23
1.5.5 Quản l lưu trữ 23
1.6.Kiến tr c của một hệ quản trị cơ sở dữ liệu 24
1.7.Kết luận chương 1 25
CHƯƠNG 2: PHÂN LOẠI HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU, ĐÁNH GIÁ ƯU NHƯỢC ĐIỂM 26
2.1 Hệ quản trị cơ sở dữ liệu quan hệ 26
2.1.1.Các khái niệm trong mô hình dữ liệu quan hệ 26
2.1.2.Kiến trúc của hệ quản trị cơ sở dữ liệu quan hệ 31
2.1.3.Các thao tác với hệ quản trị cơ sở dữ liệu quan hệ 32
2.1.4.Ưu - nhược điểm của cơ sở dữ liệu quan hệ 35
2.2.Hệ quản trị cơ sở dữ liệu không quan hệ 35
2.2.1 Giới thiệu về hệ quản trị cơ sở dữ liệu không quan hệ 35
Trang 52.2.2 Một số đ c điểm 37
2.2.3 Phân loại và cấu tr c lưu trữ 37
2.2.3 Ưu nhược điểm của NoSQL 44
2.3.Cơ sở dữ liệu hiện đại (NEWSQL) 44
2.3.1.Giới thiệu về cơ sở dữ liệu hiện đại 44
2.3.2.Đ c điểm của NEWSQL 46
2.3.4.Ưu nhược điểm NEWSQL 48
2.4 Kết luận chương 2 48
CHƯƠNG 3 : XÂY DỰNG HỆ THỐNG TRUY VẤN KHO SIM SỐ/THẺ ĐIỆN THOẠI 49
3.1 Ý tưởng bài toán 49
3.2 Đề xuất giải pháp sử dụng công nghệ 49
3.3.Phân tích và thiết kế hệ thống xếp truy vấn khi số SIM/ thẻ điện 51
3.3.1.Tổng quan hệ thống 51
3.3.2.Use case hệ thống 53
3.3.3.Ph n tích cơ sở dữ liệu 57
3.4 Kết luận chương 3 59
CHƯƠNG 4: TRIỂN KHAI THỬ NGHIỆM HỆ THỐNG TRUY VẤN SIM SỐ/THẺ ĐIỆN THOẠI TRÊN GOOGLE CLOUD VỚI CÁC HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU KHÁC NHAU 60 4.1.Hệ quản trị cơ sở dữ liệu NoSQL MogoDB 60
4.2.Hệ quản trị cơ sở dữ liệu MySql 60
4.3.Hệ quản trị cơ sở dữ liệu Datastore 61
4.4.Giới thiệu về dịch vụ Google Cloud 62
4.5.Giới thiệu về NodeJS 62
4.6.Các yêu cầu cài đ t 63
4.6.1 Cài đ t IDE Visual Studio Code 63
4.6.2.Cài đ t Google Cloud 63
4.6.3 Cài đ t MySql 64
Trang 64.6.5.Cài đ t Datastore 64
4.6.6.Cài đ t NodeJs 65
4.6.7.Ngôn ngữ xây dựng website 65
4.7.Cài đ t ứng dụng và kết quả 65
4.7.1.Cài đ t ứng dụng 65
4.7.2.Kết quả 69
4.7.3.Tiến hành thử nghiệm thực tế 73
Bảng 4: Bảng kết quả đo thực nghiệm 74
4.8.Đánh giá 76
4.9.Kết luận chương 4 77
KẾT LUẬN 78
TÀI LIỆU THAM KHẢO 79
Trang 7DANH MỤC CHỮ VIẾT TẮT
IBM International Business Machines
ANSI American National Standards
Institute ISO International Standards Organization
ORM Object-relational mapping
system
Trang 8DANH MỤC CÁC HÌNH
Hình 1: Các ký hiệu trong mô hình liên kết thực thể
Hình 2: Sự trìu tượng hoá dữ liệu của hệ quản trị CSDL
Hình 3: Kiến trúc một hệ quản trị cơ sở dữ liệu
Hình 4: Kiến trúc của hệ quản trị CSDL quan hệ
Hình 5: Cấu tr c lưu trữ dữ liệu của cơ sở dữ liệu cột
Hình 6: Cấu tr c lưu trữ dữ liệu của cơ sở dữ liệu khoá-giá trị Hình 7: Cấu tr c lưu trữ dữ liệu của cơ sở dữ liệu hướng tài liệu Hình 8: Cấu tr c lưu trữ dữ liệu của cơ sở dữ liệu đồ thị
Hình 9: Tổng quan chức năng của hệ thống
Hình 10: Use case tổng quan hệ thống
Hình 11: Use case quản trị sim thẻ
Hình 12: Use case thêm sửa xoá sim thẻ
Hình 13: Use case quản trị khách hàng
Hình 14: Use case thêm sửa xoá khách hàng
Hình 15: Use case quản trị hợp đồng
Hình 16: Use case thêm sửa xoá hợp đồng
Hình 17: Thiết kế CSDL trên MySql
Hình 18: Thiết kế cơ sở dữ liệu trên MongoDB
Hình 19: Thiết kế cơ sở dữ liệu trên Datastore
Hình 20: Cấu tr c project phía client
Hình 21: Cấu tr c project phía server bằng NodeJs
Hình 22: Giao diện hệ thống truy cập số sim/thẻ điện thoại
Trang 9Hình 24: Giao diện tạo và sửa thông tin sim thẻ
Hình 25: Giao diện quản l thông tin khách hàng
Hình 26: Giao diện tạo và sửa thông tin khách hàng
Hình 27: Giao diện quản l thông tin hợp đồng
Hình 28: Giao diện tạo và sửa thông tin hợp đồng
Hình 29: Giao diện so sánh hiệu năng các hệ quản trị CSDL Hình 30: Biểu đồ thời gian tìm kiếm trên 10 ngàn bản ghi Hình 31: Biểu đồ thời gian tìm kiếm trên 50 ngàn bản ghi Hình 32: Biểu đồ thời gian tìm kiếm trên 100 ngàn bản ghi
Trang 10DANH MỤC CÁC BẢNG
Bảng 1: Bảng chứa thông tin sim SimInfo
Bảng 2: Bảng chứa thông tin người dùng UserInfo
Bảng 3: Bảng chứa thông tin người sử dụng sim UserSim Bảng 4: Bảng kết quả đo thực nghiệm
Bảng 5: Bảng kết quả thời gian đo trung bình 100 lần đo
Trang 11PHẦN MỞ ĐẦU
Ngày nay công nghệ thông tin phát triển rất nhanh chóng, nắm giữ vai trò quan trọng trong việc th c đẩy sử tăng trưởng kinh tế, với sự ra đời của rất nhiều công nghệ mới, các dịch vụ CNTT đáp ứng nhu cầu của người dùng cũng như các doanh nghiệp,… Khai thác dữ liệu - chìa khóa để thành công, thật vậy thông tin có vai trò vô cùng quan trọng đối với tất cả các doanh nghiệp Việc khai thác tốt nguồn thông tin này chính là chìa khóa giúp doanh nghiệp thành công Khai thác dữ liệu chìa khóa để thành công, với khối lượng dữ liệu được sản sinh tăng chóng m t như hiện nay chắc chắn nếu là một chủ doanh nghiệp, bạn sẽ biết được doanh nghiệp mình sẽ g p những khó khăn gì khi không tự cứu mình bằng những công cụ hỗ trợ, cách thức tiên tiến để xử lý khối lượng thông tin khổng lồ có được Do vậy, khi lựa chọn một giải pháp phần mềm quản trị tổng thể doanh nghiệp, khách hàng sẽ ưu tiên chọn những nhà cung cấp giải quyết được cho họ bài toán “dữ liệu lớn”
Bài toán đ t ra cho các doanh nghiệp, làm sao để lưu trữ một lượng thông tin khổng lồ nhưng vẫn phải đảm bảo việc truy cập các dữ liệu đó nhanh nhất có thể cũng như việc mở rộng hệ thống sau này Trong đề tài tốt nghiệp cao học của mình,
em chọn đề tài “Nghiên cứu các hệ quản trị cơ sở dữ liệu và áp dụng vào bài toán truy vấn kho số/thẻ điện thoại” để đưa ra giải pháp tối ưu cho việc lưu trữ dữ liệu lớn của doanh nghiệp
Trang 12Nội dung luận văn gồm 4 chương như sau:
Chương 1: Tổng quan về hệ quản trị cơ sở dữ liệu
Chương này trình bày lịch sử hình thành của hệ quản trị cơ sở dữ liệu, một số khái niệm, đ c điểm cơ bản, chức năng của hệ quản trị cơ sở dữ liệu
Chương 2: Phân loại hệ quản trị cơ sở dữ liệu, đánh giá ưu nhược điểm
Chương này so sánh chi tiết các hệ quản trị cơ sở dữ liệu, đánh giá ưu nhược điểm và ứng dụng của t ng hệ quản trị cơ sở dữ liệu vào các bài toán lưu trữ khác nhau
Chương 3: Xây dựng hệ thống truy vấn kho số/thẻ điện thoại
Nội dung chương này đi vào phân tích, thiết kế xây dựng hệ thống truy vấn
kho số/thẻ điện thoại
Chương 4: Tìm hiểu về hệ quản trị cơ sở dữ liệu mysql, mongodb, datastore, cloud
server, nodejs …, trên cơ sở đó áp dụng triển khai, thử nghiệm “ Hệ thống truy vấn kho số/thẻ điện thoại” Kết luận chương là một số đánh giá kết quả đạt được
Kết luận và hướng phát triển
Phần cuối cùng là kết luận và hướng phát triển của toàn bộ luận văn bao gồm một vài kết luận sau khi nghiên cứu các hệ quản trị cơ sở dữ liệu và triển khai ứng dụng thử nghiệm “ Hệ thống truy vấn kho số/thẻ điện thoại “, bên cạnh đó cũng nêu lên một số vấn đề còn tồn tại trong các hệ quản trị cơ sở dữ liệu và đề xuất để ứng dụng sâu rộng hơn nữa trong các lĩnh vực xã hội có áp dụng kỹ thuật công nghệ thông tin góp phần th c đẩy ứng dụng công nghệ thông tin trong nước
Trang 13CHƯƠNG I: TỔNG QUAN VỀ HỆ QUẢN TRỊ CƠ SỞ DỮ
Năm 1970, Edgar Codd thuộc phòng nghiên cứu của IBM, ông không hài lòng với mô hình điều hướng, đã đưa ra một một hình biểu diễn mới gọi là mô hình dữ liệu quan hệ Trong dự án , tưởng của Codd là sử dụng một bảng các bản ghi có
độ dài cố định, với mỗi bảng được sử dụng cho một loại thực thể khác nhau, ông đã
mô tả một hệ thống mới để lưu trữ và làm việc với các cơ sở dữ liệu lớn Trong mô
hình quan hệ, các bản ghi được liên kết bằng các khóa ảo không được lưu trữ trong
cơ sở dữ liệu nhưng được xác định là cần thiết giữa các dữ liệu có trong các bản ghi
Mô hình quan hệ cũng cho phép nội dung của cơ sở dữ liệu phát triển mà không cần viết lại liên kết và con tr Phần quan hệ xuất phát t các thực thể tham chiếu đến các thực thể khác trong mối quan hệ được gọi là mối quan hệ một-nhiều, như mô hình phân cấp truyền thống và mối quan hệ nhiều-nhiều, như mô hình điều hướng
Do đó, một mô hình quan hệ có thể biểu thị cả mô hình phân cấp và điều hướng, cũng như mô hình bảng gốc của nó, cho phép mô hình thuần túy ho c kết hợp theo
ba mô hình này, như ứng dụng yêu cầu Với những ưu điểm trên, hệ quản trị cơ sở
dữ liệu cho quản lý dữ liệu dần trở thành chuẩn mực
Những năm 1990, cùng với sự gia tăng trong lập trình hướng đối tượng, đã chứng kiến sự tăng trưởng về cách xử lý dữ liệu trong các cơ sở dữ liệu khác nhau Các lập trình viên và nhà thiết kế bắt đầu coi dữ liệu trong cơ sở dữ liệu của họ là đối tượng Điều đó có nghĩa là nếu dữ liệu của một người nằm trong cơ sở dữ liệu,
Trang 14các thuộc tính của người đó, như địa chỉ, số điện thoại và tuổi của họ, giờ đ y được coi là thuộc về người đó thay vì dữ liệu không liên quan Điều này cho phép các mối quan hệ giữa dữ liệu là quan hệ với các đối tượng và thuộc tính của chúng chứ không phải cho các trường riêng lẻ Cơ sở dữ liệu đối tượng và cơ sở dữ liệu quan
hệ đối tượng cố gắng giải quyết vấn đề này bằng cách cung cấp ngôn ngữ hướng đối tượng (đôi khi là phần mở rộng cho SQL) mà các lập trình viên có thể sử dụng thay thế cho SQL hoàn toàn quan hệ Về phía lập trình, các thư viện được gọi là ánh xạ quan hệ đối tượng (ORM) cố gắng giải quyết vấn đề tương tự
SQL được chuẩn hóa vào cuối những năm 80 và SQL92 đã thành ngôn ngữ chuẩn hiện nay Hệ quản trị cơ sở dữ liệu ngày càng quan trọng khi càng nhiều các
hệ thống trực tuyến, website, giao dịch và những truy cập được thực hiện thông qua mạng máy tính
Những năm 2000, NoQuery và NewQuery ra đời Cơ sở dữ liệu XML là một loại cơ sở dữ liệu hướng tài liệu có cấu trúc, cho phép truy vấn dựa trên các thuộc tính tài liệu XML Cơ sở dữ liệu XML chủ yếu được sử dụng trong các ứng dụng
mà dữ liệu được xem thuận tiện như một bộ sưu tập tài liệu, với cấu trúc có thể thay đổi t rất linh hoạt đến rất cứng nhắc
Cơ sở dữ liệu NoQuery thường rất nhanh, không yêu cầu các lược đồ bảng cố định, tránh các hoạt động tham gia bằng cách lưu trữ dữ liệu không chuẩn hóa và được thiết kế để mở rộng theo chiều ngang
NewQuery là một lớp cơ sở dữ liệu quan hệ hiện đại nhằm cung cấp hiệu năng
có thể mở rộng tương tự của các hệ thống NoQuery để xử lý khối lượng công việc
xử lý giao dịch trực tuyến (đọc-ghi) trong khi vẫn sử dụng SQL
Trang 151.2 So sánh giữa lưu trữ bằng hệ thống file cổ điển với hệ quản trị cơ sở dữ liệu
Để hiểu được sự cần thiết của hệ quản trị cơ sở dữ liệu, chúng ta cùng nhau xem xét ví dụ nếu một công ty có một tập hợp dữ liệu lớn như Facebook, Google… với lượng người dùng lên đến hàng tỉ người, việc lưu trữ thông tin của người dùng
có thể lên đến hàng trăm GB ho c hàng TB …Bài toán đ t ra phải đáp ứng được các yếu tố sau:
o Phải được đáp ứng nhanh chóng, những thay đổi trên dữ liệu được thực hiệnbằng những người dùng khác nhau
o Phải đảm bảo được tính nhất quán của dữ liệu
o Phải có phân quyền truy cập đến các phần dữ liệu khác nhau đối với ngườidùng khác nhau
Khi lưu tất cả dữ liệu vào một file, chúng ta không thể đảm bảo được phân quyền truy cập, vì vậy chúng ta có thể giải quyết các vấn đề về quản lý dữ liệu bằng việc lưu trữ dữ liệu trên hệ thống file riêng rẽ Tuy nhiên, cách này sẽ g p các vấn đề khó khăn sau:
o Mỗi lần truy cập dữ liệu chúng ta phải đọc ghi một dữ liệu vài trăm GB làcực lớn và tốn rất nhiều thời gian
o Phải đảm bảo rằng dữ liệu được lưu trữ phải có tính chất nhất quán ho c nóđược hoàn tất trọn vẹn ho c không có gì cả
o Khi nhiều người truy cập đồng thời và tác động lên dữ liệu, hệ thống phảibảo đảm sự đ ng đắn của dữ liệu
o Những chương trình được viết cho phép truy cập đồng thời vào hệ thống filethì nó thực sự rất phức tạp, thường các hệ thống bây giờ cũng chỉ xử lý ởmức thông báo xung đột
o Phải rất tốn công sức mới có thể định vị được tất cả dữ liệu
o Phải có các chương trình đ c biệt để trả lời t ng câu h i của người sử dụngđối với dữ liệu vì dữ liệu đang được tập trung tại một chỗ Những chươngtrình này rất phức tạp vì không gian tìm kiếm quá lớn vì lượng dữ liệu lên
Trang 16o Không thể cung cấp quyền cho các đối tượng người dùng khác nhau để họchỉ được phép thực hiện trên các vùng dữ liệu nào đó của cơ sở dữ liệu.
Hệ thống quản l cơ sở dữ liệu (DBMS) là phần mềm tương tác với người dùng cuối, ứng dụng và chính cơ sở dữ liệu để thu thập và phân tích dữ liệu Phần mềm DBMS bao gồm các tiện ích cốt lõi được cung cấp để quản trị cơ sở dữ liệu Tổng cộng của cơ sở dữ liệu Lưu trữ dữ liệu trên DBMS thay vì việc lưu trữ vào các file riêng rẽ gi p như truy xuất dữ liệu, xử l đồng thời, an toàn bảo mật, phân quyền chúng ta có thể sử dụng các chức năng của DBMS để quản lý dữ liệu dễ dàng Với dung lượng dữ liệu rất lớn và cho phép nhiều người sử dụng đồng thời, những tính năng mà DBMS hỗ trợ đã trở nên vô cùng quan trọng và không thể thiếu
1.3 Những lợi ích của hệ quản trị cơ sở dữ liệu
Sử dụng DBMS để quản lý dữ liệu có rất nhiều lợi ích:
o Độc lập dữ liệu: Các giá trị dữ liệu được lưu trữ trong cơ sở dữ liệu phải
thoả mãn một số các ràng buộc về tính nhất quán của dữ liệu Hệ thống xử lýtệp thông thường rất khó khăn để thay đổi các chương trình để thoả mãn cácyêu cầu thay đổi ràng buộc Nếu các ràng buộc liên quan đến các hạng mục
dữ liệu nằm trong các tệp khác nhau thì sẽ khó khăn hơn nhiều
o Truy cập dữ liệu hiệu quả: Cung cấp giao diện lập trình dễ sử dụng với một
ngôn ngữ lập trình cơ sở dữ liệu, giao diện tương tác d ng lệnh (commandline , đồ họa (GUI
o Toàn vẹn và an toàn dữ liệu: ho c nó được hoàn tất trọn vẹn ho c không có
gì cả Một người sử dụng hệ cơ sở dữ liệu không cần thiết và cũng không cóquyền truy xuất tất cả các dữ liệu Vấn đề này đ i h i hệ thống phải đảm bảođược tính phân quyền, chống truy xuất trái phép, ph n quyền gi p kiểm soát
tốt những người dùng hợp pháp của hệ thống Hỗ trợ các phương pháp mã
hóa dữ liệu để ngăn ch n các tấn công của những đối tượng tin t c Hệ quảntrị cơ sở dữ liệu có thể thiết đ t các ràng buộc toàn vẹn trên dữ liệu
o Quản trị dữ liệu: Đăng k và giám sát người dùng, thực thi bảo mật dữ liệu,
giám sát hiệu suất, duy trì tính toàn vẹn dữ liệu, xử lý kiểm soát đồng thời và
Trang 17khôi phục thông tin đã bị h ng do một số sự kiện như lỗi hệ thống không mong muốn
o Truy cập đồng thời và khôi phục dữ liệu: Việc nhiều người truy cập vào
hệ thống luôn là bài toán ưu tiên bởi hệ thống phải đảm bảo được nhiềungười sử dụng cập nhật dữ liệu đồng thời, có thể dẫn đến kết quả là dữ liệukhông nhất quán Điều này đ i h i phải có sự giám sát ch t chẽ t hệ thống
Dữ liệu được truy xuất có thể được cung cấp ở dạng cơ bản giống như đượclưu trữ trong cơ sở dữ liệu ho c ở dạng mới thu được bằng cách thay đổi
ho c kết hợp dữ liệu hiện có t cơ sở dữ liệu
o Giảm thời gian phát triển ứng dụng: Hệ quản trị cơ sở dữ liệu hỗ trợ rất
nhiều các tính năng quan trọng được sử dụng trong rất nhiều các ứng dụngtruy cập tới dữ liệu được lưu trữ trong hệ quản trị cơ sở dữ liệu
1.4 Biểu diễn và lưu trữ dữ liệu trong hệ quản trị cơ sở dữ liệu
Người sử dụng của hệ quản trị cơ sở dữ liệu chỉ tập trung vào biểu diễn thế giới thực và các ràng buộc trong đó Mô hình dữ liệu là tập hợp những cấu trúc biểu diễn dữ liệu ở mức cao, nó đã ẩn đi phần chi tiết dữ liệu được lưu trữ ở mức thấp như thế nào Một mô hình dữ liệu gồm các thành phần như: Cấu trúc (các luật của
cơ sở dữ liệu), Thao tác (cập nhật, thay đổi), Tập các luật về tính toàn vẹn…Có thể xác định được 3 loại mô hình dữ liệu:
o Mô hình dữ liệu ngoài
o Mô hình dữ liệu ngữ nghĩa
o Mô hình dữ liệu trong
Khi làm việc với cơ sở dữ liệu ở mức ngữ nghĩa, chúng ta sử dụng một môhình rất phổ biến Mô hình dữ liệu thực thể liên kết (Entity – Relationship) hay còn gọi là Mô hình ER Đ y là mô hình dùng để trao đổi giữa người thiết kế CSDL và người dùng, bởi tính đơn giản của nó
Trang 18Trong quá trình thiết kế CSDL, người thiết kế cần tuân thủ 6 bước để tạo ra một CSDL hoàn chỉnh
o Bước 2: Thiết kế CSDL mức khái niệm
Mô tả tổng quát hơn dữ liệu được lưu
o Bước 4: Cải tiến, chuẩn hoá lược đồ
Sử dụng các logic toán học, thuật toán để chuẩn hoá lược đồ, tránh cáctiềm ẩn
o Bước 5: Thiết kế CSDL vật lý
Mô ph ng CSDL thật để phát hiện các tiềm ẩn Nếu không đạt chuẩn
có thể xây dựng lại
o Bước 6: Bảo mật
Định nghĩa người dùng, các phương pháp truy nhập CSDL
Chỉnh sửa, cải tiến để đáp ứng nhu cầu sử dụng
Trang 19Mô hình thực thể – liên kết
o Thực thể: Thực thể là một sự vật, sự việc trong thế giới thực, có sự tồn tại
độc lập, chúng ta có thể cảm nhận được bằng các giác quan, ho c chúng takhông cảm nhận được bằng các giác quan nhưng có thể nhận biết được bằngnhận thức
o Tập thực thể: là một nhóm các thực thể cùng thuộc tính Ví dụ: tập tất cả
sinh viên của lớp học có thể định nghĩa là tập sinh viên Các tập thực thểkhông cần phải tách biệt nhau Ví dụ trong một công ty, có thể có tập thựcthể nhân viên, tập thực thể khách hàng Một tập người nào đó có thể là mộtnhân viên, một khách hàng ho c là cả hai, ho c không phải cả hai
o Thuộc tính: là đ c điểm của một đối tượng, nó có các đ c tính sau:
Tên gọi: Là một dãy ký tự, bạn phải đ t sao đọc tên thuộc tính là sẽ gợi được nghĩa của nó
Kiểu dữ liệu: thuộc tính phải xác định kiểu dữ liệu lưu trữ
Mỗi thuộc tính có giá trị giới hạn, cho phép Gọi là miền trị Một cơ sở dữ liệu là một tập các thực thể liên kết, quan hệ với nhau
Trang 20Thuộc tính trong mô hình thực thể - liên kết
o Thuộc tính đơn, thuộc tính kép: Thuộc tính đơn là thuộc tính không thể phânchia ra được thành các thành phần nh hơn Thuộc tính kép là thuộc tính cóthể ph n chia được thành các thành phần nh hơn, biểu diễn các thuộc tính
cơ bản hơn với các nghĩa độc lập Giá trị của một thuộc tính là sự kết hợpkết hợp các giá trị của các thuộc tính thành phần tạo nên nó Việc phân chiamột thuộc tính phức hợp thành các thuộc tính đơn tùy thuộc vào hoàn cảnh
cụ thể
o Thuộc tính đơn trị, Thuộc tính đa trị: Những thuộc tính có giá trị duy nhất
cho một thực thể cụ thể gọi là các thuộc tính đơn trị Một thuộc tính có thể cómột tập giá trị cho cùng một thực thể Những thuộc tính như vậy gọi là thuộctính đa trị
o Thuộc tính dẫn xuất: Giá trị được dẫn xuất t các giá trị của các thuộc tính
ho c thực thể liên quan Giá trị của thuộc tính này có thể được tính bằng cáchđếm số lượng m t hàng đã mua liên quan đến khách hàng
o Thuộc tính rỗng: ột thực thể cụ thể có thể không có các giá trị áp dụng được
cho một thuộc tính Giá trị không xác định được tạo ra khi một thuộc tính cógiá trị không áp dụng được ho c khi không biết
Liên kết trong mô hình thực thể - liên kết
o Liên kết: là mối liên hệ giữa một ho c nhiều thực thể Cũng có thể gọi là mộtquan hệ giữa thực thể
o Thể hiện quan hệ: Mối liên hệ giữa thực thể trong mô hình ER xác định quan
hệ trong thế giới thực của chúng Một thể hiện của mối quan hệ có thể có cácthuộc tính mô tả cho nó Ví dụ mối quan hệ mượn giữa sinh viên và thư viện
có thể được mô tả thêm thuộc tính ngày mượn
Ràng buộc trong mô hình thực thể - liên kết
Các giá trị lưu trữ trong CSDL có những ràng buộc để đảm bảo chính xác với thế giới thực Dựa vào mô hình ER, ta có thể mô hình hoá những ràng buộc đó
Trang 21Trong đó có 2 loại ràng buộc quan trọng: ánh xạ lực lượng liên kết và các ràng buộc tham gia
Ánh xạ lực lượng liên kết: Thể hiện số lượng các thực thể mà thực thể khác có thể liên kết đến thông qua một quan hệ nào đó Cho một quan hệ hai ngôi R, tập thực thể A và B có các loại ánh xạ liên kết:
o 1:1 một tới một t A đến B
o 1:N một tới nhiều t A đến B
o N:1 nhiều tới một t A đến B
o N:N nhiều tới nhiều t A đến B
Các ràng buộc tham gia: Sự tham gia của tập thực thể E trong quan hệ R được coi là đầy đủ nếu tất cả các thực thể của E tham gia ít nhất một quan hệ trong R Gọi là một phần nếu chỉ vài thực thể tham gia
Khoá của tập thực thể
Trong một tập thực thể, để phân biệt các thực thể với nhau, người ta xác định một tập các thuộc tính đủ để phân biệt Gọi là khoá Khoá dùng để phân biệt thực thể, cũng để xác định mối quan hệ giữa các thực thể
o Siêu khoá: là một tập gồm một ho c nhiều thuộc tính cho phép xác định duynhất thực thể trong tập thực thể
o Khoá dự bị: là các siêu khoá mà không có tập con nào của nó là siêu khoá.Với một tập thực thể cho trước, tồn tại một ho c nhiều khoá dự bị Trong quátrình thiết kế, người thiết kế CSDL chọn một khoá dự bị làm khoá chính haycòn gọi là khoá cho tập thực thể
o Ràng buộc khoá: Hai thực thể khác nhau sẽ không được trùng giá trị trên tất
cả các thuộc tính của khoá được chọn tại cùng một thời điểm Do đó, ngườithiết kế CSDL cần chọn cẩn thân các thuộc tính cấu thành khoá Khoá sẽ cốđịnh và xác định duy nhất thực thể
Trang 221.5 Đ c điểm của một hệ quản trị cơ sở dữ liệu
Hình 2: Sự trìu tượng hoá dữ liệu của hệ quản trị CSDL
Mức vật l : Chứa toàn bộ các tệp dữ liệu, người dùng cơ sở dữ liệu không
nhất thiết phải nắm được cấu trúc tổ chức của các tệp dữ liệu vật lý khi sử dụng
Mức logic: Cấu trúc dữ liệu tr u tượng được tạo thành t lớp vật lý Lớp
logic có thể chứa tập hợp các bảng hai chiều, một cấu trúc phân cấp tương tự như sở
đồ tổ chức của một công ty hay một vài cấu trúc khác
Mức hung nh n: Đây là mức cao nhất của sự tr u tượng mô tả chỉ một
phần của toàn bộ cơ sở dữ liệu Tuy sử dụng các cấu tr c đơn giản mức logic, một
số phức tập vẫn c n tồn tại do kích thước lớn của cơ sở dữ liệu Thực tế những người sử dụng chỉ cần truy nhập đến một phần cơ sở dữ liệu, sự tương tác của họ
Trang 23với hệ thống này là đơn giản hoá và mức khung nhìn của sự tr u tượng được xác định Hệ thống có thể được cung cấp nhiều khung nhìn đối với cùng một cơ sở dữ liệu
1.5.2 Ng n ngữ cơ sở dữ liệu
Ngôn ngữ cơ sở dữ liệu là ngôn ngữ có mục đích đ c biệt, cho phép một ho c nhiều tác vụ sau, đôi khi được ph n biệt là ngôn ngữ con:
o Ngôn ngữ kiểm soát dữ liệu
o Ngôn ngữ định nghĩa dữ liệu
o Ngôn ngữ thao tác dữ liệu
o Ngôn ngữ truy vấn dữ liệu
Ngôn ngữ cơ sở dữ liệu là cụ thể cho một mô hình dữ liệu cụ thể Các ví dụ đáng
ch bao gồm:
o SQL kết hợp các vai tr của định nghĩa dữ liệu, thao tác dữ liệu và truy vấntrong một ngôn ngữ
o OQL là một tiêu chuẩn ngôn ngữ mô hình đối tượng
o XQuery là ngôn ngữ truy vấn XML tiêu chuẩn được triển khai bởi các hệthống cơ sở dữ liệu XML như MarkLogic và eXist
Một hệ quản trị cơ sở dữ liệu thường bao gồm 2 kiểu ngôn ngữ khác nhau đó là: Ngôn ngữ mô tả sơ đồ và ngôn ngữ biểu diễn các truy vấn và các cập nhật
1.5.3 ử l c u h i
Công việc của bộ xử l c u h i là biến đổi một truy vấn hay một thao tác cơ
sở dữ liệu có thể được biểu diễn ở các mức cao thành một dãy các yêu cầu đối với các dữ liệu lưu trữ trong cơ sở dữ liệu
Thường phần khó nhất của nhiệm vụ xử l c u h i là tối ưu hoá c u h i, có nghĩa là lựa chọn một kế hoạch tốt nhất đối với hệ thống lưu trữ để trả lời truy vấn này nhanh nhất
Trang 241.5.4 Quản trị giao dịch
Thông thường một số công việc trên cơ sở dữ liệu hình thành một đơn vị logic công việc Có nghĩa là ho c tất cả các công việc được thực hiện hết ho c không bất kỳ công việc nào được thực hiện Hơn nữa sự thực hiện các công việc này phải đảm bảo tính nhất quán của cơ sở dữ liệu Một giao dịch là một tập hợp các công việc mà xử l như một đơn vị không chia cắt được Các hệ quản trị cơ sở
dữ liệu điển hình cho phép người sử dụng một hay nhiều nhóm công việc tra cứu hay thay đổi cơ sở dữ liệu thành một giao dịch
1.5.5 Quản l lưu trữ
Các cơ sở dữ liệu thường cần một khối lượng lớn không gian lưu trữ Khi xử
l dữ liệu, hệ thống cần phải di chuyển dữ liệu t ổ đĩa vào bộ nhớ chính; công việc này là khá chậm so với tốc độ xử l của bộ nhớ trung t m, do vậy các hệ cơ sở dữ liệu phải tổ dữ liệu vật l sao cho tốt, tối thiểu hoá số yêu cầu chuyển dữ liệu giữa ổ cứng vào bộ nhớ chính
Trang 251.6 Kiến tr c của một hệ quản trị cơ sở dữ liệu
Hình 3: Kiến trúc một hệ quản trị cơ sở dữ liệu
Dữ liệu si u dữ liệu: Mô tả cấu tr c lưu trữ vật l cơ sở dữ liệu Siêu dữ liệu
tức là thông tin cấu tr c của cơ sở dữ liệu
Bộ quản l lưu trữ: Nhiệm vụ là lấy ra các thông tin được yêu cầu t những
thiết bị lưu trữ dữ liệu và thay đổi những thông tin này khi được yêu cầu bởi các mức trên nó của hệ thống
Bộ ử l c u h i: Xử lý các c u h i, các yêu cầu thay đổi dữ liệu hay siêu dữ
liệu Nhiệm vụ của nó là thao tác được yêu cầu và phát ra lệnh đối với bộ quản l lưu trữ và thực thi thao tác đó
Trang 26Bộ quản trị giao dịch: Có nhiệm vụ đảm bảo tính toàn vẹn dữ liệu Có nghĩ
là một số thao tác thực hiện đồng thời không làm ảnh hưởng đến mỗi thao tác khác
và hệ thống không mất dữ liệu thậm chí cả khi lỗi hệ thống xảy ra
1.7 Kết luận chương 1
Hệ quản trị cơ sở dữ liệu được thiết kế để có thể thực hiện các công việc nói trên một cách dễ dàng Bằng việc lưu trữ dữ liệu trên hệ quản trị cơ sở dữ liệu, chúng ta có thể quản lý dữ liệu một cách dễ dàng với các tính năng mà hệ quản trị
cơ sở dữ liệu cung cấp Với dung lượng dữ liệu khổng lồ và số lượng rất lớn những người sử dụng đồng thời, Hệ quản trị cơ sở dữ liệu đã trở nên vô cùng quan trọng và không thể thiếu
Ngày nay hệ quản trị cơ sở dữ liệu là một phần tất yếu của hệ thống phần mềm vì tính tiện lợi của nó Chương tiếp theo chúng ta sẽ so sánh ưu nhược điểm của các hệ quản trị cơ sở dữ liệu
Trang 27CHƯƠNG 2: PHÂN LOẠI HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ĐÁNH
GIÁ ƯU NHƯỢC ĐIỂM
2.1 Hệ quản trị cơ sở dữ liệu quan hệ
Hệ quản trị cơ sở dữ liệu quan là một hệ quản trị cơ sở dữ liệu dựa trên mô hình quan hệ được Edgar F Codd giới thiệu đầu tiên Hầu hết các cơ sở dữ liệu sử dụng rộng rãi ngày nay đều dựa trên mô hình cơ sở dữ liệu quan hệ của ông
Hệ quản trị cơ sở dữ liệu quan hệ là một lựa chọn phổ biến cho việc lưu trữ thông tin trong cơ sở dữ liệu được sử dụng cho hồ sơ tài chính, thông tin sản xuất và hậu cần, dữ liệu nhân sự và các ứng dụng khác t những năm 1980 Cơ sở dữ liệu quan hệ thường thay thế cơ sở dữ liệu phân cấp cũ và cơ sở dữ liệu mạng vì chúng
dễ triển khai và quản trị hơn
Một số cơ sở dữ liệu quan hệ rất phổ biến hiện nay như Cơ sở dữ liệu MySQL, Oracle, MS SQL Server, Sybase, …
2.1.1 C c h i niệm trong m h nh dữ liệu quan hệ
Miền: Một miền mô tả tập hợp các giá trị
Thực thể: Là một đối tượng, một địa điểm, con người, sự vật, sự việc … trong thế
giới thực được lưu trữ thông tin trong cơ sở dữ liệu Mỗi thực thể bao gồm một ho c nhiều thuộc tính
Trang 28Thuộc tính dẫn xuất: Một thuộc tính có thể được bắt nguồn t các thuộc tính khác của loại thực thể được gọi là thuộc tính dẫn xuất
Một quan hệ: Mối quan hệ là một kết nối hợp lý giữa các bảng khác nhau, được
thiết lập trên cơ sở tương tác giữa các bảng này
C c li n ết: là sự kết hợp giữa một số thực thể
M h nh dữ liệu quan hệ: Mô hình này tổ chức dữ liệu thành một ho c nhiều bảng
của cột và hàng, với một khóa duy nhất xác định mỗi hàng Các hàng cũng được gọi
là bản ghi ho c bộ dữ liệu Cột cũng được gọi là thuộc tính
Mức độ của một tập hợp mối quan hệ: Số lượng các tập thực thể khác nhau tham
gia vào một tập hợp mối quan hệ được gọi là mức độ của một tập hợp mối quan hệ
Mối quan hệ đơn phương: Khi chỉ có một thực thể được thiết lập tham gia vào một mối quan hệ, mối quan hệ được gọi là mối quan hệ đơn phương
Mối quan hệ nhị phân: Khi có hai thực thể được thiết lập tham gia vào một mối quan hệ, mối quan hệ được gọi là mối quan hệ nhị phân
Quan hệ n-n: Khi các thực thể trong tất cả các tập thực thể có thể tham gia nhiều hơn một lần trong số các mối quan hệ
C c phép to n tr n cơ sở dữ liệu quan hệ:
1 Phép toán cập nhật
Phép chèn (INSERT): Là phép bổ xung thêm một bộ vào quan hệ r cho trước + Biểu diễn: INSERT(r; A1=d1,A2=d2, ,An=dn) với Ailà thuộc tính, di
Trang 29thuộc dom(Ai), i=1, ,n Nếu thứ tự các trường là cố định, có thể biểu diễn phép chèn dưới dạng không tường minh INSERT(r; d1,d2, , dn) Kết quả của phép chèn
có thể gây ra một số sai sót là
o Bộ mới được thêm không phù hợp với lược đồ quan hệ cho trước
o Một số giá trị của một số thuộc tính nằm ngoài miền giá trị của thuộc tính đó
o Giá trị khoá của bộ mới có thể là giá trị đã có trong quan hệ đang lưu trữ.Phép loại b (DEL): Là phép xoá một bộ ra kh i một quan hệ cho trước - Biểu diễn : DEL(r; A1=d1,A2=d2, ,An=dn) hay DEL((r, d1,d2, , dn) Nếu K=(E1,E2, ,Em) là khoá thì có thể viết DEL(r; E1=e1,E2=e2, ,Em=em)
Phép cập nhật (UPDATE : Là phép tính dùng để sửa đổi một số giá trị nào
đó tại một số thuộc tính + Biểu diễn : UPD (r; A1=d1,A2=d2, ,An=dn; B1=b1,B2=b2, ,Bk=bk) Với {B1,B2, ,Bk} là tập các thuộc tính mà tại đó các giá trị của bộ cần thay đổi {B1,B2, ,Bk} ứng với tập thuộc tính {A1,A2, ,An} Hay UPD(r; E1=e1,E2=e2, ,Em=e; B1=b1,B2=b2, ,Bk=bk) với K=(E1,E2, ,Em) là khoá
2 Phép toán đại số quan hệ
Đại số quan hệ gồm một tập các phép toán tác động trên các quan hệ và cho kết quả
là một quan hệ Có 8 phép toán được chia làm 2 nhóm : Nhóm các phép toán tập hợp (hợp, giao, tr , tích đề các), nhóm các phép toán quan hệ ( chọn, chiếu, kết nối, chia)
Định nghĩa : Hai quan hệ r và s được gọi là khả hợp nếu ch ng được xác định trên cùng một tập các miền giá trị (Có nghĩa là ch ng được xác đinh trên cùng một tập các thuộc tinh)
Phép hợp: Phép hợp của hai quan hệ khả hợp r U s = {t / t thuộc r ho c t thuộc s} Phép hợp của hai quan hệ là phép gộp các bộ của hai bảng của một quan
hệ thành một bảng và b đi các bộ trùng
Trang 30Phép giao: Phép giao của hai quan hệ khả hợp r ∩ s ={t / t thuộc r và t thuộc s} Phép giao của hai quan hệ là lấy ra các bộ cùng có m t ở cả hai bảng của một quan hệ
Phép tr : Phép tr của hai quan hệ khả hợp r - s = {t / t thuộc r và t không thuộc s} Phép tr của hai quan hệ A và B là lấy các bộ có trong bảng A mà không
có trong bảng B
Phép tích đề các: Cho quan hệ r(R), R={A1,A2, ,An} và quan hệ s(U), U={B1,B2, ,Bm} Tích đề các : r x s ={t=(a1,a2, ,an, b1,b2, ,bm /a1,a2, ,an Єr
và b1,b2, ,bmЄs} Bậc k = bậc r + bậc s , lực lƣợng k = lực lƣợng r x lực lƣợng s Phép tích đề các là phép toán đắt nhất trong các phép toán của đại số quan hệ
o Phép toán logic: AND (và), OR (ho c), NOT (phủ định)
Trang 31r > lực lƣợng của k Phép chiếu trên quan hệ là lấy một số cột (thuộc tính nào đó của bảng quan hệ
Phép kết nối - 2 ngôi bao gồm:
o Phép kết nối: Cho hai quan hệ r(R), R={A1,A2, ,An} và quan hệ s(U),U={B1,B2, ,Bm} Phép xếp cạnh nhau: cho hai bộ d = (d1,d2, ,dn) và e =(e1,e2, ,em) phép xếp cạnh nhau của d và e là : (d^e) = (d1,d2, ,dn,e1,e2, ,em) Phép kết nối giữa quan hệ r có thuộc tính A và quan hệ s cóthuộc tính B với một phép so sánh θ là : r >< s = {a^b / a thuộc r, b thuộc s
và a(A θ b(B }
o Phép kết nối tự nhiên: Phép toán kết nối bằng trên những thuộc tính cùng têncủa hai quan hệ và sau khi kết nối thì cắt b đi một thuộc tính cùng tên bằngphép chiếu của đại số quan hệ đƣợc gọi là phép kết nối tự nhiên ký hiệu *.Phép chia: Cho r là một quan hệ n- ngôi, s là quan hệ m- ngôi (n>m, s khác rỗng) Phép chia quan hệ r cho quan hệ s là tập tất cả các n-m bộ t sao cho với mọi
bộ u thuộc s thì bộ (t^u) thuộc r : r ÷ s = {t / với mọi u thuộc s thì (t^u) thuộc r}
Trang 322.1.2 Kiến trúc của hệ quản trị cơ sở dữ liệu quan hệ
Hình 4: Kiến trúc của hệ quản trị CSDL quan hệ
Tầng giao diện: Cung cấp các góc nhìn cho t ng người sử dụng hay quản l
giao diện với các ứng dụng
Tầng điều hiển: Điều khiển các c u truy vấn đảm bảo kiểm soát toàn vẹn
ngữ nghĩa, kiểm định cấp quyền
Tầng ử l vấn tin: Vấn đề xử lý truy vấn có thể phân tách thành một số bài
toán con, tương ứng với các lớp khác nhau Tầng này chịu trách nhiệm ánh xạ c u vấn tin thành chuỗi thao tác đã được tối ưu ở mức thấp hơn, liên quan đến vấn đề
Trang 33hiệu năng Kết quả xử lý của tầng xử lý vấn tin là c u vấn tin diễn tả bằng đại số quan hệ ho c một dạng mã ở mức thấp
Tầng thực thi: Quản l giao dịch và động bộ hoá các phép đại số quan hệ
Tầng này thông dịch các phép toán đại số quan hệ bằng cách gọi tầng truy xuất dữ liệu
Tầng tru uất dữ liệu: Quản l các cấu tr c dữ liệu, các vùng đệm bằng
cách lưu tạm các dữ liệu thường được truy xuất đến nhiều nhất Tầng này làm giảm thiểu việc truy xuất đến đĩa, tăng hiệu năng cho việc thực thi giao dịch
Tầng du tr nhất qu n: Điều khiển các hoạt động đồng thời và việc ghi
vào nhật k các yêu cầu cật nhật, cho phép khôi phục lại giao dịch, hệ thống và thiết
bị sau khi bị sự cố
2.1.3 Các thao tác với hệ quản trị cơ sở dữ liệu quan hệ
o Tạo cơ sở dữ liệu
Tạo cơ sở dữ liệu : “CREATE DATABASE database_name;”
database_name : Tên của cơ sở dữ
Tạo bảng: Để tạo một bảng ta phải khai báo cấu trúc bao gồm các bướcsau:
Đ t tên trường
Chỉ định kiểu dữ liệu cho trường
Khai báo kích thước cho trường
Chọn khoá chính cho bảng bằng cách để hệ quản trị cơ sở dữliệu tự đánh ho c ta xác định khoá thích hợp trong các khoá làm khoá chính
Đ t tên bảng và lưu cấu trúc bảng
Câu lệnh :
“CREATE TABLE table_name ( column1 data_type(size),
Trang 34column3 data_type(size),
); “ Trong đó table_name: Tên của bảng
column1: Tên của cột đầu tiên
data_type: Loại dữ liệu muốn lưu trữ trong cột cụ thể Ví dụ: int cho dữ liệu số nguyên kích thước: Kích thước của dữ liệu chúng ta có thể lưu trữ trong một cột cụ thể Ví dụ nếu cho một cột chỉ định data_type là int và kích thước là 10 thì cột này có thể lưu trữ một số nguyên số lượng tối đa 10 chữ số
Tạo liên kết: Các bảng có liên kết với nhau, ta xác định khoá ngoài và tạoliên kết giữa các bảng
o Cập nhật cơ sở dữ liệu
Phần lớn các hệ quản trị cơ sở dữ liệu quan hệ cho phép tạo ra biểu mẫunhập dữ liệu để nên dễ dàng hơn, nhanh hơn và hạn chế bớt khả năngnhầm lẫn
Dữ liệu nhập vào có thể được chỉnh sửa thêm xoá
Thêm bản ghi bằng các bổ sung một ho c một vài bộ dữ liệu vào
Câu lệnh:
“lNSERT INTO table_name VALUES (value1, value2, value3, );” Trong đó:
table_name: Tên của bảng
value1, value2, : Giá trị tương ứng của cột 1 cột 2
Chỉnh sửa dữ liệu là việc thay đổi các giá trị của một bộ mà không phảithay đổi toàn bộ giá trị các thuộc tính còn lại của bộ đó
Câu lệnh :
“UPDATE table_name SET column1 = value1, column2 = value2, WHERE condition;”
Trong đó
Trang 35table_name: Tên của bảng
column1, column2…:Tên cột 1, Tên cột 2
value1, value2: Giá trị mới cột 1, cột 2
condition: Điều kiện đi kèm
Xoá bản ghi là việc xoá một ho c một số bộ của bảng
Để phục vụ được việc truy vấn CSDL, thông thường các hệ QTCSDL chophép nhận các biểu thức hay các tiêu chí nhằm các mục đích sau: Định vịcác bản ghi, Thiết lập mối quan hệ hay các liên kết giữa các bảng để kếtxuất thông tin, Liệt kê một tập con các bản ghi, Thực hiện các phép toán,Xóa một số bản ghi, Thực hiện các thao tác quản lí dữ liệu khác
Cấu trúc câu lệnh:
“SELECT/FROM/WHERE”
SELECT: Đ y là một trong những lệnh truy vấn cơ bản của SQL Nó tương
tự như phép toán chiếu của đại số quan hệ Nó chọn các thuộc tính dựa trên điều kiện được mô tả bởi mệnh đề WHERE
FROM: Mệnh đề này lấy một tên quan hệ làm đối số mà t đó các thuộc tính
sẽ được chọn / chiếu Trong trường hợp có nhiều hơn một tên quan hệ được
Trang 36WHERE: Điều khoản này xác định vị ngữ ho c điều kiện, phải phù hợp để
đủ điều kiện các thuộc tính được chiếu
Ví dụ: SELECT * FROM Student WHERE age=20;
2.1.4 Ưu - nhược điểm của cơ sở dữ liệu quan hệ
o Cơ sở dữ liệu quan hệ rất khó để mở rộng
o Cơ sở dữ liệu quan hệ truyền thống được xây dựng trên tưởng "one size fitall", application thông thường thì sử dụng tốt nhưng sẽ g p vấn đề khi cơ sở
dữ liệu phình to
o Điều chỉnh tham số rất phức tạp vì phải định nghĩa giới hạn ngay t ban đầu
và thường yêu cầu chuyên gia để cân bằng giữa hiệu năng, an toàn dữ liệu vàlượng dữ liệu sử dụng
2.2 Hệ quản trị cơ sở dữ liệu không quan hệ
2.2.1 Giới thiệu về hệ quản trị cơ sở dữ liệu không quan hệ
Định nghĩa
Cơ sở dữ liệu không quan hệ (NoSQL) cung cấp cơ chế lưu trữ và truy xuất dữ liệu được mô hình hóa theo các phương tiện khác với quan hệ dạng bảng được sử dụng trong cơ sở dữ liệu quan hệ Cuối những năm 60, Cơ sở dữ liệu không quan hệ đã được hình thành nhưng phải cho đến đầu thế kỷ 21, một số công ty Facebook, Google và Amazon.com đã triển khai NoSQL cho hệ thống của họ thì các cơ sở dữ liệu NoSQL mới được sử dụng ngày càng nhiều trong các ứng dụng dữ liệu lớn và ứng dụng nền web thời gian thực Các hệ thống NoSQL cũng có thể hỗ trợ các ngôn ngữ truy vấn dạng như SQL
Trang 37Một số thuật ngữ
o Non-relational: không sử dụng các ràng buộc dữ liệu
o Mô hình lưu trữ phân tán: Có cơ chế xử l song song và ph n mảnh dữ liệu theo ứng dụng làm cực đại hóa tính cục bộ của ứng dụng
o Nhất quán cuối: Có nghĩa là tính nhất quán của dữ liệu không cần phải đảm bảo ngay lập tức nhưng cuối cùng dữ liệu trên hệ thống sẽ trở lại trạng thái nhất quán
o Khả năng mở rộng chiều dọc: Dữ liệu ngày càng lớn, chúng ta tăng cường khả năng lưu trữ và xử lý bằng việc cải tiến phần mềm và nâng cấp phần cứng trên một máy tính đơn lẻ được gọi là khả năng mở rộng chiều dọc
o Khả năng mở rộng chiều ngang: Dữ liệu ngày càng lớn, chúng ta tăng cường khả năng lưu trữ và xử lý bằng việc dùng nhiều máy tính phân tán
Cơ sở dữ liệu NoSQL đã chứng kiến sự gia tăng trong năm năm qua Ngày càng có nhiều công ty có ít nhất một cơ sở dữ liệu NoSQL như một phần của bối cảnh dữ liệu doanh nghiệp của họ, việc sử dụng cơ sở dữ liệu NoSQL để phát triển ứng dụng được coi là một lợi thế rất lớn trong việc đẩy nhanh thời gian tiếp thị sản phẩm phần mềm
Các nhà phát triển đã nhanh chóng chấp nhận cơ sở dữ liệu NoSQL do lược
đồ linh hoạt, xử l và lưu trữ hiệu quả dữ liệu phi cấu trúc bán cấu trúc và khả năng
hỗ trợ các truy vấn hiệu suất cao trong môi trường quy mô Trong trường hợp của một số công nghệ NoSQL, các nhà phát triển có thể tạo lược đồ và thiết kế cơ sở dữ liệu thông qua mã ứng dụng của họ mà không cần sự tham gia của nhóm dữ liệu Tuy nhiên, việc thiếu thiết kế chính thức và các quy trình không đầy đủ xung quanh việc thực thi có thể gây ra hậu quả không lường trước cho ứng dụng và có thể ảnh hưởng đến việc quản trị dữ liệu chung cho doanh nghiệp
Trang 382.2.2 Một số đ c điểm
o Khả năng mở rộng cao: Có thể mở rộng một cách dễ dàng, gần như không có một giới hạn cho dữ liệu và người dùng trên hệ thống
o Tính sẵn sàng cao
o Tính nguyên tử: ho c nó được hoàn tất trọn vẹn ho c không có gì cả
o Tính nhất quán dữ liệu không cần phải đảm bảo ngay lập tức nhưng cuối cùng dữ liệu trên hệ thống sẽ trở lại trạng thái nhất quán
o Tính bền vững: Dữ liệu có thể tồn tại trong bộ nhớ máy tính nhưng đồng thời cũng được lưu trữ lại đĩa cứng
o Tính độc lập: Một giao dịch đang thực và chưa xác nhận phải bảo đảm tác biệt kh i các giao dịch khác
o Tính linh hoạt khi triển khai: Việc thay đổi các node không cần phải viết lại chương trình
o Tính linh hoạt trong cấu trúc dữ liệu
2.2.3 Phân loại và cấu tr c lưu trữ
Các loại công nghệ NoSQL có thể được phân loại thành bốn loại dựa trên việc triển khai mô hình cơ sở dữ liệu của ch ng như sau:
o Lưu trữ cột: Nó sử dụng các bảng, hàng và cột, nhưng không giống như cơ
sở dữ liệu quan hệ, tên và định dạng của các cột có thể thay đổi t hàng này sang hàng khác trong cùng một bảng Nó có thể được hiểu là kho lưu trữ khóa-giá trị hai chiều, bố trí dữ liệu cột được thông qua sao cho mỗi cột được lưu trữ riêng trên đĩa, thường được lưu trữ riêng Tuy nhiên, mỗi cột như vậy thường chứa nhiều cột được sử dụng cùng nhau, tương tự như các bảng cơ sở
dữ liệu quan hệ truyền thống Trong một cột nhất định, tất cả dữ liệu được lưu trữ theo kiểu t ng hàng, sao cho các cột cho một hàng nhất định được lưu trữ cùng nhau, thay vì mỗi cột được lưu trữ riêng Ví dụ : Hadoop/Hbase - Apache, BigTable - Google, Cassandra - Facebook/Apache, Hypertable - Zvents Inc/Baidu…
Trang 39Hình 5: Cấu tr c lưu trữ dữ liệu của cơ sở dữ liệu cột Trong cơ sở dữ liệu lưu trữ cột, dữ liệu được lưu trữ trong các ô của các cột, được nhóm thành các họ cột Các cơ sở dữ liệu này được triển khai dưới dạng bản đồ được sắp xếp lồng nhau đa chiều Bản đồ trong cùng tạo thành một phiên bản của dữ liệu được xác định bởi dấu thời gian và được lưu trữ trong một ô Một ô được ánh xạ tới một cột, lần lượt được ánh xạ tới một
họ cột Một tập hợp các họ cột được xác định bằng cách sử dụng khóa hàng Đọc và viết được thực hiện bằng cách sử dụng phím hàng trên các bộ cột Các cột này được lưu trữ dưới dạng một mục liên tục trên hiệu suất tăng cường đĩa
Cơ sở dữ liệu lưu trữ cột được thiết kế cho khối lượng dữ liệu lớn đ i h i tính sẵn sàng cao và rất phù hợp cho trường hợp sử dụng, chẳng hạn như:
Dữ liệu chuỗi thời gian
Trang 40 Ứng dụng IoT
Ghi nhật ký và viết các ứng dụng n ng khác
Không nên sử dụng cơ sở dữ liệu Cột Family cho các ứng dụng có mẫu truy vấn đ c biệt, mức độ tổng hợp cao và thay đổi yêu cầu cơ sở dữ liệu
o Kho lưu trữ khoá – giá trị : Kho lưu trữ khóa - giá trị là cơ sở dữ liệu sử
dụng một mảng các khóa trong đó mỗi khóa được liên kết với chỉ một giá trị trong bộ sưu tập Nó khá giống với t điển ho c cấu trúc dữ liệu bản đồ Các cửa hàng khóa-giá trị có thể được coi là phiên bản chính nhất và đơn giản nhất của tất cả các cơ sở dữ liệu Nó chỉ có ánh xạ một chiều t khóa đến giá trị để lưu trữ dữ liệu Dưới đ y là một số đ c tính có thể được hỗ trợ trong sản phẩm dạng này:
Khoá và giá trị được lưu trên RAM
Khóa và giá trị được lưu trên ổ cứng
Lưu giá trị nhất quán cuối cùng
Khoá - giá trị đã được đ t trước
Như tên cho thấy, loại cơ sở dữ liệu NoSQL này thực hiện một bảng băm để lưu trữ các khóa duy nhất cùng với các con tr tới các giá trị dữ liệu tương ứng Các giá trị có thể là các kiểu dữ liệu vô hướng như số nguyên
ho c cấu trúc phức tạp như JSON, List ho c BLOB, v.v Đ y là loại cơ sở dữ liệu NoSQL đơn giản nhất để thiết kế và triển khai Khách hàng có thể sử dụng get, put và xóa API để đọc và ghi dữ liệu và vì họ luôn sử dụng quyền truy cập khóa chính, họ rất dễ dàng mở rộng quy mô và cung cấp hiệu suất cao