1. Trang chủ
  2. » Thể loại khác

Bài giảng CƠ SỞ DỮ LIỆU

133 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 133
Dung lượng 1,37 MB

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

Nội dung

Tổng quan về cơ sở dữ liệu Chương này trình bày các khái niệm cơ bản về hệ cơ sở dữ liệu như cơ sở dữ liệu, hệ quản trị cơ sở dữ liệu, mô hình cơ sở dữ liệu, ngôn ngữ và giao diện, con

Trang 3

LỜI NÓI ĐẦU

Các hệ cơ sở dữ liệu đóng vai trò quan trọng trong việc ứng dụng công nghệ thông tin vào cuộc sống hàng ngày của xã hội hiện đại Cùng với sự tiến bộ của kỹ thuật, nhiều ứng dụng mới của cơ sở dữ liệu cuxng đang được phát triển mạnh Để có thể thiết kế, cài đặt và ứng dụng tốt các hệ cơ sở dữ liệu, trước hết

cần hiểu rõ các khái niệm cơ bản cần thiết Bài giảng Cơ sở dữ liệu nhằm trang

bị cho sinh viên các kỹ thuật cơ bản của cơ sở dữ liệu truyền thống Với những kiến thức đó, sinh viên có thể xây dựng được các cơ sở dữ liệu truyền thống để đưa vào ứng dụng trong cuộc sống hàng ngày và cũng là cơ sở để nghiên cứu sâu hơn, tạo ra các cơ sở dữ liệu đáp ứng với các yêu cầu ứng dụng mới Bài giảng gồm 5 chương:

Chương 1 Tổng quan về cơ sở dữ liệu

Chương này trình bày các khái niệm cơ bản về hệ cơ sở dữ liệu như cơ sở

dữ liệu, hệ quản trị cơ sở dữ liệu, mô hình cơ sở dữ liệu, ngôn ngữ và giao diện, con người sử dụng hệ cơ sở dữ liệu Thông qua chương này, người đọc nắm được định nghĩa và ý nghĩa của các thuật ngữ dùng trong hệ cơ sở dữ liệu

Chương 2 Mô hình thực thể liên kết

Chương này trình bày các khái niệm cơ bản của mô hình thực thể liên kết

và cách thiết kế mô hình

Chương 3 Mô hình cơ sở dữ liệu quan hệ

Chương này giúp sinh viên làm quen với các khái niệm cơ bản về mô hình

cơ sở dữ liệu quan hệ, các ràng buộc trên mô hình và cách thiết kế cơ sở dữ liệu quan hệ bằng việc chuyển đổi từ mô hình thực thể liên kết Ngoài ra, cung cấp cho sinh viên các kiến thức về các phép toán đại số quan hệ cơ bản

Chương 4 Phụ thuộc hàm và chuẩn hóa cơ sở dữ liệu quan hệ

Chương này đề cập tới định nghĩa và tính chất của các phụ thuộc hàm, các dạng chuẩn của quan hệ, các phương pháp tách (chuẩn hóa) quan hệ

Chương 5 SQL

Chương này giới thiệu các câu lệnh cơ bản của ngôn ngữ truy vấn SQL Bài giảng có ích cho các sinh viên ngành Hệ thống thông tin cũng như tất cả những ai muốn tìm hiểu về cơ sở dữ liệu

Trang 4

Mặc dù đã cố gắng trình bày các vấn đề một cách chính xác và dễ hiểu, tuy nhiên do thời gian và kinh nghiệm còn hạn chế, chắc chắn bài giảng vẫn còn nhiều thiếu sót Mặt khác, đây là một bài giảng nhập môn nên không có điều kiện để trình bày nhiều khía cạnh khác của cơ sở dữ liệu như quản trị cơ sở dữ liệu, an ninh cơ sở dữ liệu,… Tác giả rất mong nhận được các ý kiến đóng góp của độc giả để trong lần tái bản sau, bài giảng sẽ được hoàn chỉnh hơn

Tác giả

Trang 5

Chương 1 TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU

Trong nhiều năm gần đây, thuật ngữ cơ sở dữ liệu – Database đã trở nên quen thuộc trong nhiều lĩnh vực Các ứng dụng tin học và quản lý ngày càng nhiều và đa dạng, hầu hết các lĩnh vực kinh tế, xã hội,…đều đã ứng dụng thành tựu mới của tin học vào phục vụ công tác chuyên môn của mình Chính vì lẽ đó

mà ngày càng nhiều người quan tâm đến thiết kế, xây dựng và ứng dụng cơ sở

dữ liệu

Trong chương này, chúng ta sẽ tìm hiểu thế nào là cơ sở dữ liệu, hệ quản trị cơ sở dữ liệu, các mô hình cơ sở dữ liệu và các khái niệm cơ bản khác

1.1 Dữ liệu

Dữ liệu (Data) là những mô tả về sự vật, con người và sự kiện trong thế

giới thực mà chúng ta gặp hàng ngày bằng nhiều cách thể hiện khác nhau

Một số dạng thường dùng để biểu diễn dữ liệu như văn bản (Text), số (Number), biểu tượng (Symbol), hình ảnh (Image), âm thanh (Audio), phim ảnh (Video)

(Ngoài định nghĩa trên còn có nhiều định nghĩa khác về dữ liệu)

1.2 Thông tin

Thông tin (Information) cũng như dữ liệu, nó có rất nhiều cách định

nghĩa khác nhau Một định nghĩa bao quát hơn cả là xem thông tin là dữ liệu được đặt vào ngữ cảnh với một hình thức thích hợp và có lợi cho người sử dụng cuối cùng

Ví dụ:

Có các dữ liệu về giá vàng ở các ngày trong tháng; nếu ta biểu diễn giá vàng bằng 1 điểm giá trị trên mặt phẳng theo trục thời gian với ngày/tháng tăng dần từ trái sang phải, sẽ nhận được thông tin về “sự biến động của giá vàng trong tháng” mà khi để ở dạng bảng thường không thể nhận được thông tin biến động này

1.3 Cơ sở dữ liệu

1.3.1 Tại sao cần tới các hệ CSDL?

Trước khi các hệ cơ sở dữ liệu(CSDL) ra đời, mỗi chương trình ứng dụng đều có một tệp dữ liệu tương ứng và mỗi khi chương trình ứng dụng cần được

Trang 6

sửa đổi hoặc mở rộng thì tệp dữ liệu tương ứng cũng phải thay đổi theo Cho đến nay vẫn còn một số đơn vị kinh tế, hành chính sự nghiệp… sử dụng mô hình hệ thống các tệp tin cổ điển Các tệp tin này được tổ chức riêng rẽ, phục vụ cho mục đích của một đơn vị hoặc một số đơn vị con trực thuộc cụ thể, không có một mô hình tổng thể cho toàn bộ đơn vị Việc sử dụng hệ thống các tệp tin để lưu trữ dữ liệu một cách riêng lẻ có một số các ưu điểm và khuyết điểm

- Ưu điểm:

+ Việc xây dựng hệ thống các tệp tin riêng tại từng đơn vị quản lý ít tốn thời gian bởi khối lượng thông tin cần quản lý và khai thác là nhỏ, không đòi hỏi đầu

tư vật chất và chất xám nhiều, do đó triển khai ứng dụng nhanh

+ Thông tin được khai thác chỉ phục vụ mục đích hẹp nên khả năng đáp ứng nhanh chóng, kịp thời

- Nhược điểm:

+ Thông tin được tổ chức riêng rẽ ở nhiều nơi nên việc cập nhật dễ làm mất tính nhất quán dữ liệu, dễ xảy ra tình trạng dữ liệu bị trùng lặp, số lượng dữ liệu tăng nhanh

+ Hệ thống thông tin được tổ chức thành các hệ thống tệp tin riêng lẻ nên thiếu

sự chia sẻ thông tin giữa các nơi

Như vậy, chúng ta nhận thấy việc tổ chức dữ liệu theo hệ thống tệp tin hoàn toàn không phù hợp với những hệ thốngthông tin lớn Việc xây dựng một

hệ thống thông tin đảm bảo được tính chất nhất quán về mặt dữ liệu, đáp ứng được nhu cầu khai thác đồng thời của nhiều người là thực sự cần thiết

1.3.2 Định nghĩa cơ sở dữ liệu

Cơ sở dữ liệu và kỹ thuật cơ sở dữ liệu đã có ảnh hưởng rất lớn đến việc

sử dụng máy tính Có thể nói rằng cơ sở dữ liệu đóng vai trò quan trọng trong mọi lĩnh vực có sử dụng máy tính như giáo dục, thương mại, kỹ nghệ, khoa học, thư viện,… Thuật ngữ cơ sở dữ liệu trở thành một thuật ngữ phổ biến Như vậy,

cơ sở dữ liệu là gì?

Một cơ sở dữ liệu(CSDL)là một tập hợp các dữ liệu dùng chung(1), có liên quan với nhau, cùng với mô tả của chúng, được thiết kế cho nhu cầu thông tin của một tổ chức

1

Khái niệm dùng chung, chia sẻ dữ liệu được dùng rộng rãi trong nhiều ứng dụng với nghĩa nhiều người dùng

Trang 7

1.3.3 Các tính chất của CSDL

Một cơ sở dữ liệu có các tính chất sau:

1 Một cơ sở dữ liệu biểu thị một khía cạnh nào đó của thế giới thực như hoạt động của một công ty, một nhà trường, một ngân hàng… Những thay đổi của thế giới thực phải được phản ánh một cách trung thực vào trong cơ sở dữ liệu Những thông tin được đưa vào trong cơ sở dữ liệu tạo thành một không gian cơ sở dữ liệu hoặc là một “thế giới thu nhỏ”

2 Một cơ sở dữ liệu là một tập hợp dữ liệu liên kết với nhau một cách logic và mang một ý nghĩa cố hữu nào đó Một cơ sở dữ liệu không phải là một tập hợp tuỳ tiện

3 Một cơ sở dữ liệu được thiết kế và được phổ biến cho một mục đích riêng Nó có một nhóm người sử dụng có chủ định và có một số ứng dụng được xác định phù hợp với mối quan tâm của người sử dụng

Nói cách khác, một cơ sở dữ liệu có một nguồn cung cấp dữ liệu, một mức độ tương tác với các sự kiện trong thế giới thực và một nhóm người quan tâm tích cực đến các nội dung của nó

Một cơ sở dữ liệu có thể có cỡ tuỳ ý và có độ phức tạp thay đổi Có những

cơ sở dữ liệu chỉ gồm vài trăm bản ghi (như cơ sở dữ liệu phục vụ việc quản lý lương ở một cơ quan nhỏ), và có những cơ sở dữ liệu có dung lượng rất lớn (như các cơ sở dữ liệu phục vụ cho việc tính cước điện thoại, quản lý nhân sự trên một phạm vi lớn) Các cơ sở dữ liệu phải được tổ chức quản lý sao cho những người sử dụng có thể tìm kiếm dữ liệu, cập nhật dữ liệu và lấy dữ liệu ra khi cần thiết Một cơ sở dữ liệu có thể được tạo ra và duy trì một cách thủ công và cũng

có thể được tin học hoá Một cơ sở dữ liệu tin học hoá được tạo ra và duy trì

bằng một nhóm chương trình ứng dụng hoặc bằng một hệ quản trị cơ sở dữ liệu

Trang 8

1.4 Hệ quản trị CSDL

1.4.1 Định nghĩa hệ quản trị CSDL

Một hệ quản trị cơ sở dữ liệu (Database Management System) là tập hợp

chương trình giúp cho người sử dụng tạo ra, duy trì và khai thác một cơ sở dữ

liệu Nó là một hệ thống phần mềm phổ dụng, làm đơn giản hóa quá trình định nghĩa, xây dựng và thao tác cơ sở dữ liệu cho các ứng dụng khác nhau Hay nói

cách khác, hệ quản trị cơ sở dữ liệu (HQTCSDL) là phần mềm tương tác với các chương trình ứng dụng của người dùng và cơ sở dữ liệu

- Định nghĩa một cơ sở dữ liệu bao gồm việc đặc tả các kiểu dữ liệu, các

cấu trúc và các ràng buộc cho các dữ liệu sẽ được lưu trữ trong cơ sở

- Xây dựng một cơ sở dữ liệu là quá trình lưu trữ các dữ liệu trên các

phương tiện lưu trữ được hệ quản trị cơ sở dữ liệu kiểm soát

- Thao tác một cơ sở dữ liệu bao gồm các chức năng như truy vấn cơ sở dữ

liệu để lấy ra các dữ liệu cụ thể, cập nhật cơ sở dữ liệu để phản ánh các thay đổi trong thế giới nhỏ và tạo ra các báo cáo từ các dữ liệu

Hình 1.1.Mối quan hệ giữa CSDL, HQTCSDL và ứng dụng

Các hệ quản trị cơ sở dữ liệu dùng để thể hiện một cơ sở dữ liệu tin học hoá

có thểlà một phần mềm đóng gói hoặc có thể là chuyên dụng (là một tập các phần mềm được tạo ra với một mục đích riêng)

Ví dụ:

Microsoft Office Access, Microsoft SQL Server, Oracle, Foxpro, IBM DB2…

1.4.2 Các chức năng của một hệ quản trị cơ sở dữ liệu

Hệ quản trị cơ sở dữ liệu có các chức năng cơ bản như sau:

Trang 9

 Quản lý từ điển dữ liệu:

Hệ quản trị quản lý tất cả các dữ liệu dùng để mô tả dữ liệu Nó lưu các định nghĩa về cấu trúc và quan hệ trong từ điển dữ liệu Cho phép thực hiện trừu tượng hóa dữ liệu nhằm đảm bảo tính độc lập dữ liệu và độc lập cấu trúc

 Quản lý lưu trữ:

Hệ quản trị tạo ra các cấu trúc phức tạp để lưu trữ từ những dữ liệu cơ bản đơn giản đến phức tạp, từ các định nghĩa về biểu mẫu, biểu báo đến các ràng buộc dữ liệu và các đoạn mã chương trình

 Quản lý nhập xuất:

Hệ quản trị biến đổi dữ liệu phù hợp với cấu trúc lưu trữ, nhờ đó ta không cần quan tâm đến định dạng vật lý của dữ liệu và kết xuất dữ liệu ra theo các yêu cầu logic của người sử dụng

 Quản lý bảo mật:

Hệ quảntrị tạo ra một hệ thống bảo mật kiểm soát quyền sử dụng của người dùng

 Điều khiển truy xuất nhiều người dùng:

Hệ quản trị tạo ra các cấu trúc phức tạp dùng các giải thuật tinh vi nhằm bảo đảm cơ sở dữ liệu luôn luôn nhất quán

 Quản lý sao lưu và phục hồi cơ sở dữ liệu:

Hệ quản trị cung cấp các thủ tục sao lưu và phục hồi dữ liệu đảm bảo dữ liệu an toàn và toàn vẹn khi xảy ra các sự cố hoặc khi có yêu cầu từ người dùng

 Quản lý sự toàn vẹn dữ liệu:

Hệ quản trị cung cấp cơ chế nhằm giảm dư thừa và tăng sự nhất quán, đặc biệt trong cơ sở dữ liệu nhiều người dùng

 Ngôn ngữ truy xuất cơ sở dữ liệu và giao diện lập trình ứng dụng:

Hệ quản trị cung cấp cơ chế truy xuất dữ liệu qua ngôn ngữ truy xuất cơ sở

dữ liệu là ngôn ngữ hỏi gồm: ngôn ngữ định nghĩa dữ liệu DDL (Data Defitintion Language) và ngôn ngữ thao tác dữ liệu DML (Data Manipulation Language) Nó cũng cung cấp giao diện cho các ngôn ngữ lập trình

 Giao diện giao tiếp với cơ sở dữ liệu:

Hệ quản trị cung cấp các thủ tục giao tiếp đặc biệt được thiết kế cho phép

cơ sở dữ liệu đáp ứng các yêu cầu của người dùng cuối trong môi trường mạng

1.4.3 Các thành phần của một hệ quản trị cơ sở dữ liệu

Nhằm mục đích cung cấp các chức năng và dịch vụ kể trên, các hệ quản

Trang 10

trị cơ sở dữ liệu là các hệ thống phần mềm tinh vi và có độ phức tạp cao Một hệ quản trị CSDL được chia thành một số thành phần, mỗi thành phần là một modul phần mềm chịu một số trách nhiệm cụ thể

Hình 1.2 Thành phần của hệ quản trị CSDL

Về cơ bản, hệ quản trị cơ sở dữ liệu có các thành phần sau:

 Bộ xử lý câu hỏi (Query Processor): Là một thành phần chính của hệ quản trị CSDL với nhiệm vụ dịch các câu lệnh trong ngôn ngữ truy vấn thành các câu lệnh ở mức thấp để chuyển cho bộ quản lý CSDL

 Bộ quản lý CSDL (Database Mangager): giao tiếp với các chương trình ứng dụng của người dùng và các câu lệnh truy vấn Nó tiếp nhận các yêu cầu truy vấn và kiểm tra các lược đồ ngoài và lược đồ khái niệm(1) để xác định những bản ghi khái niệm nào đã được yêu cầu Sau đó nó gọi đến bộ phận quản

lý tệp tin để thực hiện yêu cầu Có thể nhìn thấy chi tiết hơn các thành phần tạo nên bộ quản lý CSDL ở hình 1.3, gồm:

- Trình quản lý quyền truy cập (Authorization Control);

- Trình xử lý câu lệnh (Command Processor);

- Trình kiểm tra tính toàn vẹn (Integrity Checker);

- Trình tối ưu hóa câu hỏi (Query Optimizer);

Trang 11

- Trình quản lý giao tác (Transaction Manager);

- Trình lập lịch (Scheduler): điều khiển thứ tự thực hiện các thao tác của các giao tác có liên quan đến nhau để đảm bảo chúng không làm ảnh hưởng đến nhau, có nghĩa là giải quyết những xung đột trong hoạt động đồng thời của nhiều giao tác;

- Trình quản lý việc khôi phục dữ liệu (Recovery Manager);

- Trình quản lý bộ nhớ đệm

 Bộ tiền xử lý DML (DML Preprocessor): Chuyển các câu lệnh thao tác

dữ liệu DML (Data Manipulation Language) nhúng trong một chương trình ứng dụng thành các lời gọi thủ tục chuẩn trong ngôn ngữ chủ Nó phải tương tác với

bộ xử lý câu hỏi để sinh ra mã thích hợp

 Bộ biên dịch DDL (Data Defition Language Compiler): chuyển các câu

lệnh định nghĩa dữ liệu DDL sang thành một tập các bảng chứa siêu dữ liệu

(meta-data) Các bảng này được lưu giữ trong hệ thống từ điển dữ liệu(1)(Catalog)

 Bộ quản lý từ điển dữ liệu (Catalog Manager): Quản lý các truy cập đến

từ điển dữ liệu và bảo trì hệ thống từ điển dữ liệu Hầu hết các thành phần của

Hệ quản trị CSDL đều truy cập đến hệ thống từ điển dữ liệu

Hình 1.3 Thành phần bộ quản lý dữ liệu

1

Một từ điển dữ liệu là một tệp tin chứa các siêu dữ liệu, là các dữ liệu về dữ liệu Tệp này được tham khảo trước khi dữ liệu thực sự được đọc hay được sửa đổi trong hệ CSDL

Trang 12

1.5.Hệ thống cơ sở dữ liệu (Database System)

1.5.2.Các thành phần của hệ thống cơ sở dữ liệu

Nhìn tổng quát, hệ thống cơ sở dữ liệu gồm 4 thành phần cơ bản:

1 Cơ sở dữ liệu

2 Hệ quản trị cơ sở dữ liệu

3 Chương trình ứng dụng: Các chương trình, phần mềm cho phép người

sử dụng truy cập dữ liệu

4 Người sử dụng:Người dùng cuối, Người quản trị cơ sở dữ liệu, Người phát triển hệ thống

Hình 1.4 Môi trường hệ cơ sở dữ liệu

1.5.3 Con người trong hệ cơ sở dữ liệu

Với một cơ sở dữ liệu lớn, rất nhiều người tham gia vào việc thiết kế, sử

1

Hệ thống thông tin được xác định như một tập hợp các thành phần được tổ chức để thu thập, xử lý, lưu trữ,

Trang 13

dụng và duy trì CSDL Những người liên quan đến hệ cơ sở dữ liệu được chia thành hai nhóm chính Nhóm thứ nhất gồm những người mà công việc của họ liên quan thường xuyên đến cơ sở dữ liệu, đó là những người quản trị cơ sở dữ liệu, thiết kế cơ sở dữ liệu, sử dụng cơ sở dữ liệu, phân tích hệ thống và lập trình ứng dụng Nhóm thứ hai gồm những người làm việc để duy trì môi trường

hệ cơ sở dữ liệu nhưng không quan tâm đến bản thân cơ sở dữ liệu, đó là những người thiết kế và cài đặt hệ quản trị cơ sở dữ liệu, phát triển công cụ, thao tác viên và bảo trì

a Người quản trị hệ cơ sở dữ liệu (Database Administrator)

Trong một tổ chức có nhiều người cùng sử dụng các tài nguyên, cần phải

có một người giám sát và quản lý Trong môi trường hệ cơ sở dữ liệu, các tài nguyên là cơ sở dữ liệu, hệ quản trị cơ sở dữ liệu và các phần mềm liên quan

Người quản trị hệ cơ sở dữ liệu là người chịu trách nhiệm quản lý các tài nguyên đó Người này chịu trách nhiệm về việc cho phép truy cập CSDL, tổ chức và hướng dẫn việc sử dụng cơ sở dữ liệu, cấp các phần mềm và phần cứng theo yêu cầu

b Người thiết kế cơ sở dữ liệu (Database Designer)

Người này chịu trách nhiệm xác định các dữ liệu sẽ được lưu giữ trong cơ

sở dữ liệu, chọn lựa cấu trúc tương ứng để trình bày và lưu trữ các dữ liệu này Những nhiệm vụ này được thực hiện trước khi cơ sở dữ liệu được thực sự xây dựng và tạo lập dữ liệu Người thiết kế có trách nhiệm liên hệ với mọi người sẽ dùng cơ sở dữ liệu để hiểu được các đòi hỏi của họ và đưa ra một thiết kế thoả mãn các yêu cầu đó Anh ta cũng có nhiệm vụ giao thiệp với các nhóm người sử dụng và có khả năng hỗ trợ các yêu cầu của các nhóm

c Những người sử dụng (End User)

Những người sử dụng là những người mà công việc của họ đòi hỏi truy cập đến cơ sở dữ liệu để truy vấn, cập nhật và sinh ra các thông tin; CSDL tồn tại chủ yếu dựa trên cách sử dụng của họ Có thể chia những người sử dụng

thành hai nhóm chính: những người sử dụng thụ động (tức là những người sử dụng không có nhiều kiến thức về hệ cơ sở dữ liệu) và những người sử dụng chủ động (là những người có hiểu biết tốt về hệ cơ sở dữ liệu)

Chức năng công việc của những người sử dụng thụ động (chiếm phần lớn những người sử dụng) gắn liền với việc truy vấn và cập nhật thường xuyên cơ sở

Trang 14

dữ liệu bằng cách sử dụng các câu hỏi và các cập nhật chuẩn (gọi là các giao tác định sẵn) đã được lập trình và kiểm tra cẩn thận Những người này chỉ cần học một ít về các phương tiện do hệ quản trị cơ sở dữ liệu cung cấp và hiểu các kiểu giao tác chuẩn đã được thiết kế và cài đặt là đủ

Những người sử dụng chủ động có hiểu biết tốt về hệ cơ sở dữ liệu, họ có thể tự cài đặt các ứng dụng riêng của mình để làm thoả mãn các yêu cầu phức tạp của họ

d Người phân tích hệ thống và lập trình ứng dụng

Người phân tích hệ thống xác định các yêu cầu của những người sử dụng (chủ yếu là những người sử dụng thụ động) để đặc tả các chương trình phù hợp với yêu cầu của họ

Người viết chương trình ứng dụng thể hiện các đặc tả của những người phân tích thành chương trình, sau đó kiểm thử, sửa lỗi làm tài liệu và bảo trì các giao tác định sẵn

e Người thiết kế và cài đặt hệ quản trị dữ liệu

Đó là những người thiết kế, cài đặt các mô đun, giao diện của hệ quản trị

cơ sở dữ liệu thành các phần mềm đóng gói Một hệ quản trị cơ sở dữ liệu là một

hệ thống phần mềm phức tạp bao gồm nhiều thành phần (mô đun) Đó là các mô đun cài đặt từ điển dữ liệu, ngôn ngữ truy vấn, bộ xử lý giao diện, truy cập dữ liệu, kiểm tra cạnh tranh, phục hồi và an toàn Hệ quản trị cơ sở dữ liệu phải giao tiếp với các hệ thống phần mềm khác như hệ điều hành và các chương trình dịch cho nhiều ngôn ngữ khác nhau

f Những người phát triển công cụ

Là những người thiết kế và cài đặt các công cụ (tool), đó là các phần mềm đóng gói làm dễ việc thiết kế và sử dụng cơ sở dữ liệu

g Các thao tác viên và những người bảo trì

Là những người chịu trách nhiệm về việc chạy và bảo trì phần cứng và phần mềm của hệ thống

1.6 Mô hình dữ liệu, lược đồ và thể hiện

Các loại cấu trúc cơ sở dữ liệu và mối liên hệ giữa chúng đóng vai trò rất lớn trong việc xác định tính hiệu quả của hệ quản trị cơ sở dữ liệu Vì vậy, thiết

kế cơ sở dữ liệu trở thành hoạt động chính trong môi trường cơ sở dữ liệu

Trang 15

Việc thiết kế cơ sở dữ liệu được thực hiện đơn giản hơn nhiều khi ta sử dụng các mô hình Các mô hình là sự trừu tượng đơn giản của các sự kiện trong thế giới thực Các trừu tượng như vậy cho phép ta khảo sát các đặc điểm của các thực thể và các mối liên hệ được tạo ra giữa các thực thể đó Việc thiết kế các

mô hình tốt sẽ đưa ra các cơ sở dữ liệu tốt và trên cơ sở đó sẽ có các ứng dụng tốt Ngược lại, mô hình không tốt sẽ đưa đến thiết kế cơ sở dữ liệu tồi và dẫn đến các ứng dụng không đúng

1.6.1 Các loại mô hình cơ sở dữ liệu

Một mô hình cơ sở dữ liệu là một tập hợp các khái niệm dùng để biểu diễn các cấu trúc của cơ sở dữ liệu Cấu trúc của một cơ sở dữ liệu là các kiểu dữ liệu, các mối liên kết và các ràng buộc phải tuân theo trên các dữ liệu Nhiều mô hình còn có thêm một tập hợp các phép toán cơ bản để đặc tả các thao tác trên

cơ sở dữ liệu

Chúng ta có thể phân loại các mô hình dữ liệu dựa trên các khái niệm mà chúng sử dụng để mô tả các cấu trúc cơ sở dữ liệu

+ Các mô hình dữ liệu bậc cao hoặc mô hình dữ liệu mức quan niệm cung

cấp các khái niệm gắn liền với cách cảm nhận dữ liệu của nhiều người sử dụng Các mô hình này tập trung vào bản chất logic của biểu diễn dữ liệu, nó quan

tâm đến cái được biểu diễn trong cơ sở dữ liệu chứ không phải cách biểu diễn

dữ liệu

Trong Chương 2 chúng ta sẽ nghiên cứu một mô hình dữ liệu mức quan niệm, mô hình thực thể liên kết, gọi tắt là mô hình ER (Entity Relationship) Mô hình này sử dụng các khái niệm thực thể, thuộc tính, mối liên kết để diễn đạt các đối tượng của thế giới thực

+ Các mô hình dữ liệu bậc thấp hoặc các mô hình dữ liệu vật lý cung cấp các

khái niệm mô tả chi tiết về việc các dữ liệu được lưu trữ trong máy tính như thế nào như khuôn dạng bản ghi, sắp xếp bản ghi, đường truy cập… Các khái niệm

do mô hình dữ liệu vật lý cung cấp nói chung có ý nghĩa đối với các chuyên gia máy tính chứ không có ý nghĩa mấy đối với người sử dụng thông thường

+ Ở giữa hai loại mô hình này là một lớp các mô hình dữ liệu thể hiện,

chúng cung cấp những khái niệm mà người sử dụng có thể hiểu được và không

xa với cách tổ chức dữ liệu bên trong máy tính Người ta còn gọi loại mô hình

dữ liệu này là loại mô hình dữ liệu mức logic Các mô hình dữ liệu thể hiện che

Trang 16

giấu một số chi tiết về việc lưu trữ dữ liệu nhưng có thể được cài đặt trực tiếp trên hệ thống máy tính

Các mô hình dữ liệu thể hiện là các mô hình được sử dụng thường xuyên nhất trong các hệ cơ sở dữ liệu thương mại Ba mô hình nổi tiếng thuộc loại này

là mô hình quan hệ, mô hình mạng và mô hình phân cấp Các mô hình mạng và

mô hình phân cấp ra đời trước và được sử dụng rộng rãi trong quá khứ (trước năm 1970) Vào đầu năm 1970, mô hình quan hệ ra đời Do tính ưu việt của nó,

mô hình quan hệ dần dần thay thế các mô hình mạng và phân cấp Chúng ta sẽ nghiên cứu về mô hình quan hệ trong Chương 3 Ngoài 3 mô hình kể trên, hiện

nay mô hình dữ liệu hướng đối tượng cũng đang được phát triển, hoàn thiện và

dần trở thành xu thế mới

1.6.2.Lược đồ và trạng thái CSDL

Trong một mô hình dữ liệu cần phải phân biệt rõ giữa mô tả của cơ sở dữ liệu và bản thân cơ sở dữ liệu

Mô tả của một cơ sở dữ liệu được gọi là lược đồ cơ sở dữ liệu, nó được xác

định rõ trong quá trình thiết kế cơ sở dữ liệu và không bị thay đổi thường xuyên

Đa số các mô hình dữ liệu có các quy ước hiển thị các lược đồ Hiển thị của một lược đồ được gọi là biểu đồ của lược đồ đó Một biểu đồ lược đồ chỉ thể hiện một vài khía cạnh của lược đồ như là các kiểu bản ghi, các mục dữ liệu và một số kiểu ràng buộc Các khía cạnh khác không được thể hiện trong biểu đồ lược đồ

Các dữ liệu trong một cơ sở dữ liệu có thể thay đổi một cách thường xuyên Các dữ liệu trong một cơ sở dữ liệu tại một thời điểm cụ thể được gọi là một

trạng thái cơ sở dữ liệu hoặc là ảnh (snapshot) của cơ sở dữ liệu Nhiều trạng

thái quan hệ có thể được xây dựng để làm tương ứng với một lược đồ cơ sở dữ liệu cụ thể Mỗi khi chúng ta chèn vào hoặc loại bỏ một bản ghi, sửa đổi giá trị của một mục dữ liệu trong một bản ghi, chúng ta đã làm thay đổi trạng thái của

cơ sở dữ liệu sang một trạng thái khác

Việc phân biệt giữa lược đồ cơ sở dữ liệu và trạng thái cơ sở dữ liệu là rất quan trọng Khi chúng ta định nghĩa một cơ sở dữ liệu mới, ta chỉ đặc tả lược đồ

cơ sở dữ liệu cho hệ quản trị cơ sở dữ liệu Tại thời điểm này, trạng thái của cơ

sở dữ liệu là một trạng thái rỗng, không có dữ liệu Chúng ta nhận được trạng thái ban đầu của cơ sở dữ liệu khi ta nhập dữ liệu lần đầu tiên Từ đó trở đi, mỗi khi một phép toán cập nhật được thực hiện đối với cơ sở dữ liệu, chúng ta nhận

Trang 17

được một trạng thái cơ sở dữ liệu khác Tại mọi thời điểm, cơ sở dữ liệu có một trạng thái hiện tại Hệ quản trị cơ sở dữ liệu có trách nhiệm đảm bảo rằng mỗi trạng thái cơ sở dữ liệu là một trạng thái vững chắc, nghĩa là một trạng thái thoả mãn cấu trúc và các ràng buộc được đặc tả trong lược đồ Vì vậy, việc đặc tả một lược đồ đúng đắn cho hệ quản trị cơ sở dữ liệu là một việc làm cực kỳ quan trọng và lược đồ phải được thiết kế một cách cẩn thận Hệ quản trị cơ sở dữ liệu lưu trữ các mô tả của các cấu trúc lược đồ và các ràng buộc – còn gọi là siêu dữ liệu (metadata) – vào trong từ điển (catalog) của hệ quản trị sao cho phần mềm

hệ quản trị cơ sở dữ liệu có thể tham khảo đến lược đồ khi nó cần

1.7 Kiến trúc hệ cơ sở dữ liệu

Theo ANSI-SPARC(1) có 3 mức biểu diễn một hệ cơ sở dữ liệu, gọi là kiến trúc 3 lược đồ Mục đích của lược đồ 3 mức là tách rời các ứng dụng của người dùng và cơ sở dữ liệu vật lý hay nói cách khác, mô hình kiến trúc 3 mức cho phép tạo ra sự độc lập giữa bản thân dữ liệu và việc xử lý dữ liệu

a Mức vật lý – Mức trong

Mức này mô tả dữ liệu thực sự lưu trữ như thế nào trong CSDL Đây là mức thể hiện các cài đặt có tính chất vật lí của CSDL để đạt được tối ưu trong các lần thực hiện các thao tác tìm kiếm và lưu trữ Mức này phản ánh các cấu trúc dữ liệu, các tổ chức tệp được dùng cho việc lưu trữ dữ liệu trên các thiết bị nhớ thứ cấp

b Mức logic – Mức quan niệm

Mức này mô tả những dữ liệu nào được lưu trữ trong CSDL và có những mối quan hệ nào giữa chúng Nói một cách cụ thể hơn, mức logic biểu diễn các thực thể trong thế giới thật, các đặc trưng và mối quan hệ giữa các thực thể đó Mức này cho thấy các ràng buộc trên dữ liệu, các thông tin về ngữ nghĩa của dữ liệu, các thông tin về an ninh và toàn vẹn dữ liệu Tuy nhiên, mức này chỉ quan tâm đến cái gì được lưu trữ trong CSDL chứ không quan tâm đến cách thức lưu trữ

Một mô hình dữ liệu bậc cao hoặc một mô hình dữ liệu thể hiện có thể được sử dụng ở mức này

Trang 18

dùng Mỗi lược đồ ngoài mô tả một phần của cơ sở dữ liệu mà một nhóm người

sử dụng quan tâm và nó che dấu đối với nhóm này phần còn lại của CSDL Một

mô hình dữ liệu bậc cao,hoặc một mô hình dữ liệu thể hiện có thể được sử dụng

ở mức này

Tóm lại, mức khung nhìn là cách cảm nhận của người dùng về dữ liệu, mức vật lí là cách cảm nhận của hệ quản trị CSDL và hệ điều hành về dữ liệu Mức logic nằm giữa mức khung nhìn và mức vật lí, có thể coi đây là cách cảm nhận của toàn thể cộng đồng người sử dụng về dữ liệu Tại mức logic tồn tại cả hai ánh xạ đến hai mức còn lại, tạo nên một sự độc lập đối với nhau của hai mức

đó Hình 1.5 mô tả và minh họa kiến trúc lược đồ 3 mức của cơ sở dữ liệu

Hình 1.5 Minh họa kiến trúc lược đồ 3 mức 1.8 Sự độc lập dữ liệu

Kiến trúc lược đồ 3 mức có thể được sử dụng để giải thích khái niệm độc lập dữ liệu Độc lập dữ liệu có thể hiểu như là khả năng thay đổi lược đồ tại một mức của một hệ cơ sở dữ liệu mà không làm thay đổi lược đồ ở mức cao hơn tiếp theo Có hai loại độc lập dữ liệu:

a Độc lập dữ liệu ở mức vật lí

Độc lập dữ liệu ở mức vật lí là khả năng sửa đổi lược đồ vật lí mà không làm thay đổi lược đồ khái niệm và như vậy cũng không đòi hỏi viết lại các chương trình ứng dụng Các thay đổi đối với lược đồ trong có thể cần thiết bởi

MỨC KHUNG NHÌN Khung nhìn 1 Khung nhìn 2 Khung nhìn n

MỨC QUAN NIỆM

MỨC LOGIC

Trang 19

vì một số file vật lí phải được tổ chức lại Ví dụ, bằng cách tạo ra các cấu trúc truy cập phụ để cải thiện thao tác lấy ra hoặc cập nhật Nếu các dữ liệu trước đó còn lại trong cơ sở dữ liệu, chúng ta sẽ không làm thay đổi lược đồ khái niệm

b Độc lập dữ liệu ở mức logic

Độc lập dữ liệu là khả năng thay đổi lược đồ quan niệm mà không làm thay đổi các khung nhìn hoặc các chương trình ứng dụng Các sửa đổi ở mức logic là cần thiết mỗi khi cấu trúc logic của CSDL cần phải thay đổi, chẳng hạn cần thêm hay bớt các thực thể nào đó, các thuộc tính hay các mối quan hệ của chúng Dĩ nhiên những người dùng có chạm đến những thông tin đã thay đổi này

sẽ được thông báo về sự thay đổi nhưng điều quan trọng là những người dùng khác sẽ không bị ảnh hưởng gì

Độc lập dữ liệu logic khó thực hiện hơn độc lập dữ liệu vật lí vì các chương trình ứng dụng phụ thuộc nhiều vào cấu trúc logic của dữ liệu mà chúng truy cập

Khái niệm độc lập dữ liệu trong nhiều mặt tương tự với khái niệm kiểu dữ liệu trừu tượng trong các ngôn ngữ lập trình hiện đại Cả hai đều giấu người dùng những chi tiết cài đặt, cho phép người dùng tập trung vào cấu trúc chung hơn là tập trung vào các chi tiết cài đặt ở mức thấp

Trang 20

DANH MỤC TÀI LIỆU THAM KHẢO TIẾNG VIỆT

1 Hồ Thuần và Hồ Cẩm Hà (2009) Các hệ cơ sở dữ liệu lí thuyết và thực hành,

NXB Giáo dục

2 Đỗ Trung Tuấn (1999) Cơ sở dữ liệu NXB Giáo dục

3 Nguyễn Tuệ (2009) Giáo trình nhập môn hệ cơ sở dữ liệu NXB Giáo dục

4 Nguyễn Văn Vỵ (2009) Giáo trình phân tích thiết kế các hệ thống thông tin,

Trang 21

CÂU HỎI VÀ BÀI TẬP

Câu 1 Định nghĩa các thuật ngữ: Cơ sở dữ liệu, Hệ quản trị cơ sở dữ liệu, Hệ cơ

sở dữ liệu, Từ điển cơ sở dữ liệu, Mô hình cơ sở dữ liệu

Câu 2 Hãy nêu ra các điểm khác nhau chính giữa một hệ thống xử lý tệp tin cổ điển và một hệ quản trị CSDL

Câu 3 Nêu các tính chất của một cơ sở dữ liệu

Câu 4 Nêu các chức năng của một hệ quản trị cơ sở dữ liệu

Câu 5 Định nghĩa mô hình cơ sở dữ liệu và phân loại

Câu 6 Cho biết mục đích của việc mô hình hóa CSDL Chỉ ra sự khác nhau giữa mô hình logic và mô hình vật lý

Câu 7 Mô tả các thành phần chính của một hệ quản trị CSDL và chỉ ra các chức năng của chúng

Câu 8 Giải thích thuật ngữ độc lập dữ liệu và sự quan trọng của tính độc lập dữ liệu trong môi trường của một hệ cơ sở dữ liệu Hãy giải thích sự khác nhau giữa tính độc lập vật lí và tính độc lập logic

Câu 9 Hãy liệt kê ra các bước cơ bản mà anh/chị sẽ vạch ra khi xây dựng một CSDL cho một tổ chức nào đó

Trang 22

Năm 1976, lần đầu tiên P.P.Chen giới thiệu mô hình này trong bài báo “The entity relationshiop model toward a

Trang 23

quan hệ giữa chúng để tạo nên mô hình dữ liệu quan niệm giao tiếp với người sử dụng, nhằm xác định đúng đắn và đầy đủ yêu cầu thông tin của hệ thống Trong bước này, người thiết kế cơ sở dữ liệu phỏng vấn những người sử dụng cơ sở dữ liệu để hiểu và làm tài liệu về các yêu cầu về dữ liệu của họ Kết quả của bước này là một tập hợp ghi chép súc tích về các yêu cầu của những người sử dụng Những yêu cầu sẽ được đặc tả càng đầy đủ và chi tiết càng tốt Song song với việc đặc tả các yêu cầu dữ liệu, cần phải đặc tả các yêu cầu về chức năng của ứng dụng: đó là các thao tác do người sử dụng định nghĩa sẽ được áp dụng đối với cơ sở dữ liệu

Mỗi khi tất cả các yêu cầu đã được thu thập và phân tích, bước tiếp theo là tạo ra lược đồ quan niệm cho cơ sở dữ liệu bằng cách sử dụng mô hình dữ liệu quan niệm mức cao Bước này gọi là thiết kế quan niệm Lược đồ quan niệm là một mô tả súc tích về các yêu cầu dữ liệu của những người sử dụng Nó bao gồm các mô tả chi tiết của các kiểu thực thể, kiểu liên kết và các ràng buộc, chúng được biểu diễn bằng các khái niệm do các mô hình dữ liệu bậc cao cung cấp Vì những khái niệm này không chứa các chi tiết cài đặt, chúng thường dễ hiểu và có thể sử dụng chúng để giao lưu với những người sử dụng Lược đồ quan niệm mức cao cũng có thể được sử dụng như một dẫn chứng để đảm bảo rằng tất cả các đòi hỏi của người sử dụng đều thỏa mãn và các đòi hỏi này không chứa các mâu thuẫn Giải pháp này cho phép những người thiết kế cơ sở dữ liệu tập trung vào việc đặc tả các tính chất của dữ liệu mà không cần quan tâm đến các chi tiết lưu trữ Một thiết kế cơ sở dữ liệu quan niệm tốt sẽ làm dễ cho công việc của những người thiết kế cơ sở dữ liệu

Trong quá trình (hoặc sau khi) thiết kế lược đồ quan niệm, chúng ta có thể

sử dụng các phép toán cơ bản của mô hình dữ liệu để đặc tả các thao tác của người sử dụng được xác định trong khi phân tích chức năng Điều đó cũng giúp khẳng định rằng lược đồ quan niệm thỏa mãn mọi yêu cầu chức năng được xác định Nếu có một số yêu cầu chức năng không thể nêu ra được trong lược đồ ban đầu thì ở bước này có thể có sự sửa đổi lược đồ quan niệm cho phù hợp

Bước tiếp theo trong việc thiết kế cơ sở dữ liệu là việc cài đặt một cơ sở

dữ liệu bằng cách sử dụng một hệ quản trị cơ sở dữ liệu có sẵn Hầu hết các hệ quản trị cơ sở dữ liệu sử dụng một mô hình dữ liệu cài đặt (thể hiện), chẳng hạn

Trang 24

như mô hình quan hệ hoặc đối tượng, vì vậy lược đồ quan niệm được chuyển từ

mô hình dữ liệu bậc cao thành mô hình dữ liệu cài đặt Bước này gọi là thiết kế logic hoặc là ánh xạ mô hình dữ liệu Kết quả của bước này là một lược đồ cơ sở

dữ liệu dưới dạng một mô hình dữ liệu cài đặt của hệ quản trị cơ sở dữ liệu

Bước cuối cùng trong thiết kế cơ sở dữ liệu là thiết kế vật lý Trong bước này ta phải chỉ ra các cấu trúc bên trong, các đường dẫn truy cập, tổ chức tệp cho các tệp cơ sở dữ liệu Song song với các hoạt động đó, các chương trình ứng dụng cũng được thiết kế và cài đặt như là các giao tác (transaction) cơ sở dữ liệu tương ứng với các đặc tả giao tác mức cao

2.2 Các thành phần cơ bản của mô hình ER

Ba thành phần của mô hình ER là tập thực thể, các mối quan hệ giữa các tập thực thể và các thuộc tính của chúng

Khoa Kinh tế và quản trị kinh doanh

Tập thực thể (hay còn gọi là kiểu thực thể)là một tập hợp các thực thể có cùng những đặc trưng chung mà ta quan tâm

Một thực thể là một thể hiện trong một tập thực thể, hay nói cách khác

mỗi thực thể là một cá thể (hay còn gọi là bản thể) của tập thực thể đó Chẳng

hạn, tập thực thể Nhân viên có các đặc trưng sau: Mã nhân viên, Tên nhân viên, Địa chỉ Trong khi đó, mỗi nhân viên cụ thể được thể hiện bằng các giá trị cụ thể tương ứng của các đặc trưng kể trên

Trang 25

Thể hiện Bộ các giá trị tương ứng

với các đặc trưng Tên thực thể và tên các đặc trưng Mỗi tập thực thể được gán một tên Tên tập thực thể là một mệnh đề danh

từ Trong mô hình ER, một tập thực thể được biểu diễn bằng một hình chữ nhật

có tên bên trong

Trang 26

viên Trong mô hình, các thuộc tính được mô tả bằng hình elip, có tên đặt bên trong và được nối với tập thực thể bằng một đoạn thẳng (hình 2.2)

- Các giá trị thuộc tính mô tả mỗi tập thực thể sẽ trở thành một phần chính của các dữ liệu sẽ được lưu giữ trong cơ sở dữ liệu

b Phân loại

Các thuộc tính của tập thực thể có thể phân làm nhiều loại khác nhau

 Thuộc tính đơnhay còn gọi là thuộc tính nguyên tử là thuộc tính mà giá

trị của nó không thể phân tách được trong các xử lý theo một ý nghĩa tương đối nào đó

Ví dụ:

Thuộc tính Họ Tên của Nhân viên trong hệ thống thông tin Quản lý Nhân

sự là thuộc tính đơn, vì trong hệ thống này không có nhu cầu tách thuộc tính Họ Tên thành hai thuộc tính Họ Đệm và Tên.Tuy nhiên, điều này có thể không còn

đúng nữa khi xét nó ở hệ thống thông tin Quản lý đào tạo

 Thuộc tính phức hợ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

Ví dụ:Thuộc tính Họ Tên của kiểu thực thể Sinh viên có thể phân chia thành các tính Họ Đệm và Tên

SINH VIÊN

Mã Sinh Viên

Địa Chỉ

Số Điện Thoại

Họ Tên

Sinh Viên

Trang 27

Giá trị của một thuộc tính là sự kết hợp các giá trị của các thuộc tính thành phần tạo nên nó Các thuộc tính phức hợp được nối với các thuộc tính thành phần của nó bằng đường thẳng Việc phân chia mộ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ể

Hình 2.3 Thuộc tính phức hợp Trong thực tế có lúc người sử dụng tham khảo đến giá trị của một thuộc tính như nó là một giá trị nguyên vẹn, có lúc lại chỉ tham khảo đến một phần của giá trị đó, việc sử dụng các thuộc tính phức hợp trong thiết kế lược đồ trở nên hữu ích trong tình huống này Giả sử có lúc người ta cần địa chỉ đầy đủ của một nhân viên, có lúc lại chỉ cần tham chiếu đến tên tỉnh (thành phố) trong địa chỉ của nhân viên Thuộc tính Địa chỉ của kiểu thực thể NHÂN VIÊN có thể được xác định là thuộc tính phức hợp, nó là sự kết hợp của 3 thuộc tính thành phần là

Xã, Huyện, Tỉnh

 Thuộc tính đơn trị là những thuộc tính có giá trị duy nhất cho một thực

thể cụ thể ở một thời điểm

Ví dụ:

Thuộc tínhMã Nhân Viên, Họ Tên là một thuộc tính đơn trị của thực thể

Nhân viên, mỗi nhân viên chỉ có một mã số nhân viên và một họ tên duy nhất

 Thuộc tính đa trịlà một thuộc tính mà đối với mỗi thực thể có thể nhận

nhiều hơn một giá trị

Ví dụ:

Thuộc tính Bằng Cấp của một Nhân Viên là một thuộc tính đa trị Một

nhân viên có thể có một bằng cấp, một nhân viên khác nữa có thể có nhiều bằng cấp Như vậy, các nhân viên khác nhau có thể có một số giá trị khác nhau cho

thuộc tính Bằng Cấp Thuộc tính Bằng cấp là một thuộc tính đa trị Trong mô

SINH VIÊN

Họ Tên

Trang 28

hình, thuộc tính đa trị được biểu diễn bằng hình elip nét đôi, có tên đặt bên trong

 Thuộc tính được lưu trữlà các thuộc tính mà giá trị của nó được nhập vào

khi cài đặt cơ sở dữ liệu Trong một số trường hợp, hai hay nhiều thuộc tính có giá trị liên quan đến nhau

Ví dụ:

Thuộc tính Tuổi và thuộc tính Ngày Sinh của một người Với một người

cụ thể, ta có thể tính tuổi của anh ta bằng cách lấy năm hiện tại trừ đi năm của ngày sinh Thuộc tính mà giá trị của nó có thể tính được thông qua giá trị của

các thuộc tính khác gọi là thuộc tính suy diễn được Thuộc tính Ngày Sinh gọi là thuộc tính được lưu trữ, thuộc tính Tuổi là thuộc tính suy diễn Trong mô hình,

thuộc tính suy diễn được mô tả bằng hình elip đứt nét, bên trong có tên thuộc tính

 Các giá trị không xác định (Null values): Trong một số trường hợp, một

thực thể cụ thể có thể có giá trị hoặc có thể không có các giá trị tương ứng cho một thuộc tính nào đó của nó

Ví dụ:

Thuộc tính Số Điện Thoại của thực thể nhân viên sẽ không có giá trị đối

với các nhân viên không có số điện thoại

Trong trường hợp các thuộc tính của một thực thể có thể không có giá trị,

ta phải tạo ra một giá trị đặc biệt gọi là giá trị không xác định (Null) 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

Mỗi thuộc tính của tập thực thể luôn có giá trị Mỗi bộ giá trị của một thực

thể được gọi là một bản ghi (record)

NHÂN VIÊN Tuổi

NHÂN VIÊN Bằng Cấp

Trang 29

2.2.3 Thuộc tính khóa

Có một ràng buộc quan trọng trên một tập thực thể gọi là ràng buộc khóa hay là ràng buộc về tính duy nhất trên các thuộc tính Một tập thực thể thường

có một hoặc một vài thuộc tính mà bất cứ hai thực thể khác nhau trong tập thực

thể này đều có giá trị khác nhau Thuộc tính như vậy gọi là thuộc tính khóa

Như vậy, thuộc tính khóa (thuộc tính định danh) là một hay một số thuộc tính của một tập thực thể mà giá trị của nó cho phép ta phân biệt được các thực thể khác nhau của một tập thực thể Ta có thể dùng mỗi giá trị của thuộc tính khóa để xác định một thực thể duy nhất

Ví dụ:

Một khóa của tập thực thể NHÂN VIÊN là Mã Số Nhân Viên vì mỗi thực

thể nhân viên có duy nhất một mã Đôi khi, nhiều thuộc tính kết hợp với nhau tạo thành khóa, nghĩa là tổ hợp các giá trị của các thuộc tính này phải khác nhau

đối với mỗi thực thể Trong trường hợp như vậy, ta có một thuộc tính khóa phức hợp Chú ý rằng, khóa phức hợp phải tối thiểu, nghĩa là tất cả các thuộc tính thành phần phảicó mặt trong thuộc tính khóa phức hợp để thỏa mãn tính duy nhất

Khi biểu diễn trong mô hình thực thể liên kết, với mỗi kiểu thực thể, các

thuộc tính khóa được gạch chân để phân biệt với các thuộc tính khác của nó

Mỗi tập thực thể khi đã được xác định bắt buộc phải có thuộc tính khóa

Trang 30

Khi chỉ ra một thuộc tính là khóa của một kiểu thực thể, nghĩa là tính chất

duy nhất nêu trên phải được thỏa mãn đối với mỗi thực thể Như vậy, ràng buộc khóa cấm hai thực thể bất kỳ có giá trị cho thuộc tính khóa như nhau tại cùng một thời điểm Đó là một ràng buộc trên tất cả các thực thể trong tập thực thể

Ràng buộc khóa cũng như các ràng buộc sẽ được giới thiệu về sau, được lấy ra

từ các ràng buộc của “thế giới thu nhỏ” của cơ sở dữ liệu

Một kiểu thực thể có thể có nhiều hơn một khóa Ví dụ, nếu một phòng ban có một mã số duy nhất và một tên duy nhất thì thuộc tính MãPhòng Ban và TênPhòng Ban đều là khóa.Hoặc kiểu thực thể NHÂNVIÊN có khóa là MãNhânViên, ngoài ra nếu coi rằng không có nhân viên nào trùng cả họ tên và ngày sinh thì ta có một khóa phức hợp là Họ Tên, NgàySinh Trong trường hợp như vậy ta nên chọn một thuộc tính khóa thích hợp Thông thường nên chọn thuộc tính khóa càng ít thuộc tính càng tốt

Một kiểu thực thể có thể không có khóa Khi đó, nó được gọi là kiểu thực thể yếu (Sẽ được trình bày cụ thể hơn tại mục 2.2.5)

2.2.4 Liên kết, tập liên kết và các ràng buộc trên liên kết

a Liên kết, tập liên kết

Liên kết(Relationship) dùng để chỉ mối quan hệ giữa hai hay nhiều thực thể khác nhau Nó phản ánh mối quan hệ vốn có giữa các thực thể đó trong thế giới thực

Ví dụ:

- Khách hàng Tuấn Anh mua Hàng MH_324;

- Nhân viên Nguyễn Hoàng làm việc tại phòng Kế toán

Trong hình 2.5 mô tả liên kết “Làm việc” giữa một thực thể nhân viên với một thực thể phòng ban Chúng ta thấy, Hoàng, Trung làm việc cho phòng Kế toán; Tuấn làm việc cho phòng giám đốc; Hùng, Tú làm việc cho phòng Kĩ thuật; Lan làm việc cho phòng bảo vệ… Các liên kết này có cùng một kiểu

Trang 31

- Tập liên kết Làm việc giữa tập thực thể Nhân Viên và tập thực thể

Phòng Ban (tập liên kết 2 ngôi);

- Tập liên kết Dạy giữa tập thực thể Giáo viên và tập thực thể Sinh Viên

và Môn Học (tập liên kết 3 ngôi)

Khi biểu diễn trong mô hình ER, tập liên kết được biểu diễn bằng một hình thoi, bên trong ghi tên tập liên kết Tập liên kết được nối trực tiếp với các hình chữ nhật biểu diễn tập thực thể tham gia vào liên kết

MÔN HỌC

Trang 32

Chú ý:

- Mối quan hệ giữa các thực thể chia làm hai loại: mối quan hệ tương tác (Khách MUA Hàng, Nhân viên THAM GIA Dự án,…) và mối quan hệ sở hữu hay phụ thuộc (CÓ cái gì, THUỘC cái gì, LÀ thành viên của,…).Với bản chất của mối quan hệ là sự tương tác hay phụ thuộc, sở hữu nên tên của tập liên kết thường được chọn là một động từ hoặc một mệnh đề động từ thể hiện đầy đủ ý

nghĩa cũng như bản chất của mối quan hệ vốn có giữa các thực thể với nhau

- Tên của tập liên kết thường chỉ phản ánh ý nghĩa liên kết theo một chiều Chẳng hạn, Thầy <dạy> Trò, chứ không phải Trò <dạy> Thầy

- Có thể có nhiều hơn một tập liên kết giữa hai tập thực thể khác nhau Ví dụ: giữa 2 tập thực thể NHÂN VIÊN và PHÒNG BAN có thể có 2 tập liên kết là

<Làm việc> và <Quản lý> Cụ thể, NHÂN VIÊN <quản lý> PHÒNG BAN; NHÂN VIÊN <làm việc cho> PHÒNG BAN

- Một thuộc tính của tập thực thể hoặc có chức năng biểu thị một đặc trưng của một tập thực thể hoặc có chức năng biểu thị một tập liên kết giữa tập thực thể đó với các tập thực thể khác Các thuộc tính biểu thị một tập liên kết có thể đơn trị, hoặc đa trị tùy theo bản chất của mối liên kết

Thông thường các kiểu thực thể tham gia vào một kiểu liên kết là phân biệt nên vai trò của chúng có thể ẩn đi không cần phải làm tường minh Tuy nhiên, trong một số trường hợp, một tập thực thể có thể tham gia vào một tập liên kết với

các vai trò khác nhau Khi đó, kiểu liên kết được gọi là liên kết đệ quy

Ví dụ:

Trong số các nhân viên làm việc cho một phòng ban, có các nhân viên được phân công giám sát và quản lý các nhân viên khác (Trưởng phòng) Như vậy sẽ có một tập các liên kết giữa các thực thể của tập thực thể NHÂN VIÊN:

NHÂN VIÊN <giám sát> NHÂN VIÊN (hình 2.8) Có thể thấy, tập thực thể NHÂN VIÊN tham gia hai lần vào mối liên kết <giám sát>, một lần với vai trò

người giám sát, một lần với vai trò người bị giám sát

Hình 2.8 Liên kết đệ quy NHÂN VIÊN

Giám sát

Trang 33

b Thuộc tính của kiểu liên kết

Cũng như thực thể, mối liên kết cũng có thể có thuộc tính mô tả nó

Ví dụ:

Giả sử một công ty muốn theo dõi thời gian nhân viên tham gia dự án, nên

đã ghi nhận số ngày mà nhân viên đó tham gia một dự án Khi đó, ta có các dữ liệu sau:

Thuộc tính Số Ngày là một đặc trưng của mối liên kết<Tham gia> để gắn

kết hai tập thực thể NHÂN VIÊN và DỰ ÁN (hình 2.9)

Trong mô hình ER, thuộc tính của kiểu liên kết được biểu diễn bằng hình elip, bên trong có tên thuộc tính và được nối với hình thoi

Hình 2.9 Thuộc tính của tập liên kết

Vì mối liên kết là một động từ nên các thuộc tính của nó cần phải là câu trả lời cho động từ thể hiện mối liên kết

Câu hỏi cho một động từ thường bao gồm nhiều loại câu hỏi khác nhau, chẳng hạn:

- Cho ai? (Chỉ người, sự vật tham gia, chịu tác động tương tác)

- Cho cái gì? (Chỉ vật tham gia, chịu tác động tương tác)

- Ở đâu? (Chỉ nơi xảy ra tương tác)

- Khi nào? (Chỉ thời gian hành động)

-Bằng cách nào? (Chỉ phương thức hành động)

- Như thế nào? Bao nhiêu? (Chỉ kết quả của hành động)

- Vì sao? (Chỉ nguyên nhân của hành động)

Số ngày Tham gia

Trang 34

c Các ràng buộc trên các tập liên kết

Trong mối liên kết giữa các tập thực thể với nhau thường có một số ràng buộc nào đó để hạn chế số các tổ hợp thực thể có thể tham gia vào các liên kết Các ràng buộc này được xác định từ tình trạng của thế giới thực mà kiểu liên kết biểu diễn

Ví dụ:Nếu công ty có quy chế là một nhân viên chỉ làm việc cho một

phòng ban thì chúng ta phải mô tả ràng buộc này trong mô hình ER

Có hai loại ràng buộc chính: ràng buộc về tỷ số lực lượng và ràng buộc về

sự tham gia

 Ràng buộc về tỷ số lực lượng

Tỷ số lực lượng cho một tập liên kết chỉ ra số các liên kết mà một thực thể

có thể tham gia Có thể có các tỷ số lực lượng 1:1, 1:N, N:N (N>1) Để tiện giải thích về tỷ số lực lượng, chúng ta sử dụng các kiểu liên kết cấp 2

Giả sử có hai tập thực thể A và B được kết nối với nhau bằng một tập liên kết R, xét các trường hợp sau:

- Một thực thể của tập thực thể này có thể quan hệ với chỉ một thực thể của tập thực thể kia và ngược lại thì ta nói rằng, tập thực thể này có quan hệ với

tập thực thể kia bằng tập liên kết một – một (1:1)

Hình 2.10 Tập liên kết R với tỉ số lực lượng 1:1

- Một thực thể của tập thực thể này có thể có quan hệ với nhiều thực thể của tập thực thể kia và một thực thể của tập thực thể kia chỉ có thể có quan hệ với một thực thể của tập thực thể này thì ta nói rằng, tập thực thể này có quan hệ

với tập thực thể kia bằng tập liên kết một – nhiều (1:N)

Trang 35

Hình 2.11 Tập liên kết R với tỉ số lực lượng 1:N

- Một thực thể của tập thực thể này có thể có quan hệ với nhiều thực thể của tập thực thể kia và ngược lại thì ta nói rằng, tập thực thể này có quan hệ với

tập thực thể kia bằng tập liên kết nhiều – nhiều (N:N)

Hình 2.12 Tập liên kết R với tỉ số lực lượng N:N Trong mô hình ER, các tỷ số lực lượng của các tập liên kết có thể được biểu diễn(1) bằng cách ghi các giá trị 1, N trên các hình thoi biểu diễn kiểu liên kết như hình 2.13

Trang 36

Hình 2.13 Ràng buộc về tỷ số lực lượng

 Ràng buộc về sự tham gia

Ràng buộc tham gia chỉ ra rằng có phải sự tồn tại của một kiểu thực thể phụ thuộc vào một kiểu thực thể khác thông qua một kiểu liên kết hay không Có hai kiểu ràng buộc tham gia: ràng buộc tham gia toàn bộ và ràng buộc tham gia

bộ phận

Tham gia toàn bộ nghĩa là tất cả các thực thể của tập thực thể phải tham gia vào tập liên kết Tham gia bộ phận nghĩa là chỉ một bộ phận các thực thể của tập

thực thể tham gia vào mối liên kết

Ví dụ:Xét mối quan hệ NHÂN VIÊN <quản lý> PHÒNG BAN Trong thực tế,

mỗi phòng ban phải có một người quản lý (là một nhân viên) nhưng không phải nhân viên nào cũng quản lý một phòng ban Như vậy, sự tham gia của các thực thể phòng ban vào mối liên kết là toàn bộ còn sự tham gia của các thực thể nhân

viên vào mối liên kết là bộ phận Sự tham gia toàn bộ còn được gọi là sự phụ thuộc tồn tại Phụ thuộc tồn tại để chỉ rằng một thực thể này không thể tồn tại nếu không có sự tồn tại của thực thể kia trong liên kết

Khi biểu diễn trong mô hình ER, tập thực thể tham gia toàn bộ vào mối liên kết được nối với tập liên kết bằng nét đôi, tập thực thể tham gia bộ phận được nối với tập liên kết bằng nét đơn

Trang 37

Hình 2.14 Ràng buộc về sự tham gia

Tỉ số lực lượng và các ràng buộc về sự tham gia còn được gọi là các ràng buộc cấu trúc của một kiểu liên kết Có một cách khác nữa để đặc tả các ràng buộc cấu trúc Với mỗi kiểu liên kết R, chúng ta có thể đưa ra một cặp số

nguyên (min, max) kèm theo mỗi tập thực thể E trong sự tham gia vào kiểu liên kết R đó Cặp số nguyên (min, max) với min>=0 và max>=1 mang ý nghĩa như sau: Ở mọi thời điểm, mỗi thực thể e thuộc kiểu E phải tham gia ít nhất min liên kết trong R và chỉ tham gia nhiều nhất max liên kết trong R Như vậy, khái niệm

một kiểu thực thể E tham gia bộ phận vào kiểu liên kết R đề cập ở trên tương

ứng với trường hợp min=0 trong cách biểu diễn này, còn sự tham gia toàn bộ tương ứng với min>0 Cách đặc tả ràng buộc cấu trúc này tuy không trực quan

bằng phương pháp dùng tỷ số lực lượng và ràng buộc tham gia nhưng nó đơn giản, thậm chí chính xác hơn, có thể dễ dàng sử dụng cho kiểu liên kết có cấp n bất kì

2.2.5 Thực thể yếu

Một tập thực thể cũng có thể không có khóa Một tập thực thể không có

khóa được gọi là kiểu thực thể yếu Ngược lại, tập các thực thể thông thường

(nghĩa là có thuộc tính khóa) được gọi là tập thực thể mạnh Kiểu thực thể yếu tồn tại phụ thuộc vào tập thực thể khác (tập thực thể chủ hay còn gọi là xác định nó) Trong mô hình, kiểu thực thể yếu được mô tả bằng hình chữ nhật nét đôi, bên trong là tên

Các thực thể thuộc cùng một kiểu thực thể yếu được phân biệt với nhau nhờ mối liên quan đến một thực thể của một kiểu thực thể (xác định) của một kiểu thực thể khác Ta gọi kiểu thực thể khác đó là kiểu thực thể xác định hay

còn gọi là kiểu thực thể chủ và gọi tập liên kết giữa kiểu thực thể yếu và kiểu thực thể chủ xác định nó là liên kết xác định Rõ ràng, một tập thực thể yếu luôn

có một ràng buộc tham gia toàn bộ vào liên kết xác định nó vì một thực thể yếu không thể tồn tại mà không có một thực thể chủ xác định nó Ngược lại, một sự

Tên kiểu thực thể yếu

Quản lý

Trang 38

phụ thuộc tồn tại không nhất thiết dẫn đến phải có một thực thể yếu Trong sơ đồ

ER, liên kết xác định đó được biểu diễn bằng hình thoi nét đôi

Thông thường, các kiểu thực thể yếu có một khóa bộ phận, đó là một tập

hợp các thuộc tính có thể xác định một cách duy nhất các thực thể yếu liên kết với cùng một thực thể chủ Khi biểu diễn trong mô hình ER, thuộc tính khóa bộ

phận của kiểu thực thể yếu được gạch chân nét đứt để phân biệt với các thuộc

a Mô tả bài toán

Như ở trong phần 2.1 đã nêu, bước đầu tiên trong việc thiết kế một cơ sở

dữ liệu là tập hợp và phân tích các yêu cầu Kết quả của bước này là một tập hợp các ghi chép súc tích về các yêu cầu người sử dụng cũng như tình trạng của nơi

ta cần xây dựng cơ sở dữ liệu

Giả sử rằng sau khi tập hợp các yêu cầu và phân tích, hoạt động của công tyđược ghi chép lại như sau:

1 Công ty được tổ chức thành các đơn vị Mỗi đơn vị có một tên duy nhất, một mã số duy nhất, một nhân viên cụ thể quản lý đơn vị Việc nhân viên quản lý đơn vị được ghi lại bằng ngày nhân viên đó bắt đầu quản lý Một đơn vị

có thể có nhiều địa điểm

2 Mỗi đơn vị kiểm soát một số dự án Một dự án có một tên duy nhất, một

mã số duy nhất và một địa điểm

3 Với mỗi nhân viên chúng ta lưu giữ lại Họ tên, Mã số, địa chỉ, lương, giới tính, ngày sinh Một nhân viên chỉ làm việc cho một đơn vị nhưng có thể làm việc trên nhiều dự án do nhiều đơn vị kiểm soát Chúng ta lưu giữ lại số giờ

Khóa bộ phận

Trang 39

làm việc của mỗi nhân viên trên một dự án Mỗi nhân viên có thể có một người giám sát trực tiếp, người đó cũng là một nhân viên

4 Mỗi nhân viên có những người con Những người này được hưởng bảo hiểm theo nhân viên Với mỗi người con của nhân viên, chúng ta lưu giữ Họ tên, Giới tính, Ngày sinh

b Xác định các kiểu thực thể, các thuộc tính và kiểu liên kết

Theo các ghi chép ở trên, chúng ta có thể xác định các kiểu thực thể và các kiểu liên kết như sau:

1.CÔNGTY không phải là một kiểu thực thể vì ở đây ta có một công ty duy nhất

2.ĐƠNVỊ là một kiểu thực thể với các thuộc tính Tên, Mã Số, Người Quản Lý, Ngày Bắt Đầu, Địa Điểm Các thuộc tính Tên, Mã Số, Địa Điểm là các thuộc tính mô tả đơn vị, các thuộc tính Người Quản Lý, Ngày Bắt Đầu là các

thuộc tính biểu thị một kiểu liên kết (với kiểu thực thể NHÂNVIÊN) Các thuộc

tính đều là đơn và đơn trị, trừ thuộc tính Địa Điểm, nó là một thuộc tính đa trị (một đơn vị có nhiều địa điểm) Các thuộc tính Tên, Mã Số là các thuộc tính

khóa (vì mỗi đơn vị có một tên và một mã số duy nhất)

3.Kiểu thực thể DỰ ÁN có các thuộc tính Tên, Mã Số, Địa Điểm, Đơn Vị Kiểm Soát Các thuộc tính Tên, Mã Số, Địa Điểm là các thuộc tính mô tả DỰÁN, thuộc tính Đơn Vị Kiểm Soát biểu thị kiểu liên kết với kiểu thực thể ĐƠNVỊ (một đơn vị kiểm soát một số dự án) Các thuộc tính Tên, Mã Số là các

thuộc tính khóa

4.Kiểu thực thể NHÂN VIÊN với các thuộc tính Họ Tên, Mã Số, Giới Tính, Ngày Sinh, Lương, Đơn Vị, Người Giám Sát Thuộc tính Họ Tên là một thuộc tính phức hợp gồm Họ Đệm, Tên Các thuộc tính Đơn Vị, Người Giám Sát

mô tả các kiểu liên kết giữa kiểu thực thể NHÂN VIÊN và các kiểu thực thể

ĐƠN VỊ và NHÂN VIÊN tương ứng Thuộc tính Mã Số là thuộc tính khóa

5.Kiểu thực thể CON với các thuộc tính Nhân Viên, Họ Tên, Giới Tính, Ngày Sinh Thuộc tính Nhân Viên mô tả kiểu liên kết với kiểu thực thể

NHÂN VIÊN

6.Kiểu liên kết ĐƠNVỊ <kiểm soát> DỰÁN là kiểu liên kết có tỷ số lực lượng 1:N (một đơn vị kiểm soát một số dự án, một dự án do một đơn vị quản

Trang 40

lý) Sự tham gia của DỰÁN vào kiểu liên kết là toàn bộ (bởi vì dự án nào cũng được một đơn vị kiểm soát) Nếu đơn vị nào cũng có dự án thì việc tham gia của ĐƠNVỊ vào kiểu liên kết là toàn bộ, ngược lại sự tham gia là bộ phận

7.Kiểu liên kết NHÂNVIÊN <làm việc cho> ĐƠNVỊ có tỷ số lực lượng N:1 (mỗi nhân viên làm việc cho một đơn vị nhưng mỗi đơn vị có nhiều nhân viên là việc) Sự tham gia của hai kiểu thực thể vào liên kết là toàn bộ

8.Kiểu liên kết NHÂNVIÊN <quảnlý> ĐƠNVỊ có tỷ số lực lượng 1:1 (một nhân viên quản lý một đơn vị và một đơn vị có một nhân viên quản lý) Sự tham gia của kiểu thể NHÂNVIÊN vào kiểu liên kết là bộ phận (bởi vì không phải nhân viên nào cũng quản lý đơn vị), ngược lại, sự tham gia của kiểu thực thể ĐƠNVỊ vào kiểu liên kết là toàn bộ (bởi vì đơn vị nào cũng phải có người

quản lý) Kiểu liên kết này có một thuộc tính là Ngày Bắt Đầu để ghi lại ngày

bắt đầu làm quản lý đơn vị của nhân viên

9.Kiểu liên kết NHÂNVIÊN <giám sát> NHÂNVIÊN có tỷ số lực lượng 1:N (một nhân viên có thể giám sát nhiều nhân viên khác) Sự tham gia của của kiểu thực thể NHÂNVIÊN (ở cả hai phía) là bộ phận (bởi vì không phải nhân viên nào cũng giám sát nhân viên khác, và không phải nhân viên nào cũng bị giám sát) Kiểu thực thể NHÂNVIÊN ở đây đóng hai vai trò khác nhau: vai trò người giám sát và vai trò người bị giám sát

10.Kiểu liên kết NHÂNVIÊN <làm việc trên> DỰÁN là có tỷ số lực lượng là N:N (một nhân viên có thể làm việc trên nhiều dự án khác nhau và mỗi

dự án có nhiều nhân viên làm việc) Sự tham gia của kiểu thực thể NHÂNVIÊN

là bộ phận (bởi vì không phải tất cả nhân viên đều làm việc trên dự án) ngược lại, sự tham gia của kiểu thực thể DỰÁN là toàn bộ (bởi vì dự án nào cũng phải

có nhân viên làm việc) Kiểu liên kết này có một thuộc tính là Sốgiờ, ghi lại số giờ làm việc của một nhân viên trên một dự án

11.Kiểu liên kết NHÂNVIÊN <có> CON biểu thị mối liên hệ giữa kiểu thực thể NHÂNVIÊN và kiểu thực thể CON (một nhân viên có thể có những người con) Kiểu liên kết này có tỷ số lực lượng 1:N (một nhân viên có thể có nhiều người con nhưng mỗi con là con của chỉ một nhân viên) Sự tham gia của kiểu thực thể NHÂNVIÊN là bộ phận (không phải nhân viên nào cũng có con), ngược lại, sự tham gia của kiểu thực thể CON là toàn bộ (người con nào cũng phải là con của một nhân viên) Ngoài ra, kiểu thực thể CON là một kiểu thực thể yếu

Ngày đăng: 02/08/2020, 11:38

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w