1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

80 16 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 80
Dung lượng 3,04 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 1

BỘ 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 2

LỜ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 3

LỜ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 4

MỤ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 5

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

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

DANH 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 8

DANH 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 9

Hì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 10

DANH 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 11

PHẦ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 12

Nộ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 13

CHƯƠ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 14

cá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 15

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

Để 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 16

o 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 17

khô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 18

Trong 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 19

Mô 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 20

Thuộ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 21

Trong đó 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 22

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

vớ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 24

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

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

Bộ 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 27

CHƯƠ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 28

Thuộ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 29

thuộ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 30

Phé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 31

r > 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 32

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

hiệ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 34

column3 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 35

table_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 36

WHERE: Đ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 37

Mộ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 38

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

Hì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

Ngày đăng: 20/02/2021, 21:47

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w