Tập hợp các phép toán thao tác trên dữ liệu đo.ï Trong chương này ta sẽ tìm hiểu các mô hình được sử dụng rộng rãi hiện nay là Mô hình THỰC THỂ - QUAN HỆ ,mô hình QUAN HÊ, mô hình MẠNG v
Trang 1Chương 1: TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU
1 Chức Năng Của Một Hệ Quản Trị Cơ Sở Dữ Liệu
1.1 Các Khái Niệm Về Cơ Sở Dữ Liệu
Để dễ dàng cho việc giải thiïch các khái niệm về Cơ Sở Dữ Liệu, trước hết ta xem xét hệ thống bán vé may bay bằng máy tính Dữ liệu lưu trữ trong máy tính bao gồm các thông tin về hành khách, chuyến bay, đường bay Mọi thông tin về mối quan hệ này được biểu diễn trong máy tính thông qua việc đặt chổ của khách hàng Vậy làm thế nào để biểu diễn được dữ liệu đó và để đảm bảo cho khách hàng đi đúng chuyến bay
Tập hợp dữ liệu trên được lưu trữ trong máy tính theo một quy định nào đó và được gọi là Cơ Sở Dữ Liệu( Database - CSDL)
1.2 Hệ quản trị Cơ Sở Dữ Liệu
1.2.1 Định nghĩa: Phần Chương trình có thể xử lý, thay đổi dữ liệu gọi là hệ quản trị Cơ Sở Dữ Liệu (Database management System - viết tắt DBMS)
1.2.2 Những khả năng của Hệ quản trị Cơ Sở Dữ Liệu
Có hai đặc tính để phân biệt DBMS với các hệ thống lập trình khác, đó là:
1 Khả năng quản lý những dữ liệu cố định
2 Khả năng truy xuất có hiệu quả một khối lượng dữ liệu lớn
Điểm (1) khẳn định rằng có một CSDL tồn tại thường xuyên ; nội dung của Cơ Sở Dữ Liệu này là những dữ liệu được DBMS truy xuất và quản lý Điểm (2) phân biệt một DBMS với một hệ thống tập tin cũng quản lý dữ liệu nhưng nói chung không cho phép truy xuất nhanh chóng các thành phần tùy ý của dữ liệu Những khả năng của một DBMS sẽ rất cần thiết khi số lượng dữ liệu rất lớn
Hai đặc tính trên là hai đặc tính cơ bản của một DBMS, ngoài ra một DBMS thường có các khả năng sau:
- Hỗ trợ ít nhất một mô hình dữ liệu (Data model) nhờ đó người sử dụng có thể xem được dữ liệu
- Hỗ trợ một số ngôn ngữ bậc cao cho phép người sử dụng định nghĩa các cấu trúc dữ liệu, truy xuất và thao tác dữ liệu
- Quản lý giao dịch, nghĩa là cho phép nhiều người sử dụng truy xuất đồng thời và
chính xác đến một Cơ Sở Dữ Liệu
- Điều khiển các quá trình truy xuất, là khả năng giới hạn các quá trình truy xuất
dữ liệu của những người không được phép , và khả năng kiểm tra độ tin cậy của
Trang 2- Các đặc tính tự thích ứng, là khả năng tự phục hồi lại dữ liệu do sự cố của hệ
thống mà không làm mất dữ liệu
1.3 Các mô hình dữ liệu
Một DBMS cần phải cung cấp ít nhất một mô hình trừu tượng qua đó người sử dụng có thể thấy được dữ liệu không phải bằng các bit “thô” mà bằng các dạng dễ hiểu, dễ nhận biết hơn
Trong thực tế các Cơ Sở Dữ Liệu có thể có một vài mức trừu tượng , trong đó mức thấp nhất là tập hợp các file dữ liệu ( Mức vật lý)
Ví dụ: Xét một tổng công ty có nhiều công ty con và hồ sơ về các nhân viên của tổng công ty có thể được lưu trữ trong một file dữ liệu gồm các trường MNV( mã nhân viên), HOTEN, LUONG_NV, ĐIACHI để đơn giản ta giả thiết cấu trúc bản ghi gồm 2 trường sau:
TEN_NV: họ tên nhân viên
NGUOI_QL: Họ tên giám đốc công ty nơi nhân viên làm việc
Khi đó cấu trúc bản ghi như sau:
Ta cần phân biệt giữa file và quan hệ
Trong file các bản ghi không nhất thiết phải phân biệt
Trong quan hệ, các bản ghi(bộ) cần phải phân biệt nhau
1.4 Hiệu quả truy cập dữ liệu
Các hệ điều hành đều có khả năng tổ chức và lưu trữ các tập tin vì vậy việc lưu trữ các tập tin dữ liệu đối với DBMS là không đáng chú ý Hiệu quả của các DBMS trong việc xử lý trên các tập tin là tổ chức các tập tin phụ hoặc các công cụ hỗ trợ để truy cập dữ liệu nhanh chóng, kịp thời Chẳn hạn các file INDEX, hoặc các hàm HASH
1.5 Quản lý giao dịch
Ngày nay do sự phát triển của mạng máy tính mà các Cơ Sở Dữ Liệu lớn có thể được sử dụng bởi nhiều người trên các máy tính khác nhau vì vậy các DBMS cần phải cung cấp một khả năng quản lý sự truy cập dữ liệu của nhiều người sử dụng Chẳn hạn các dữ liệu về tài khoản cúa ngân hàng được sử dụng bởi hàng vạn khách hàng trên các máy tính khác nhau hoặc trên các máy đổi tiền tự động; Cơ Sở Dữ Liệu phục vụ cho việc đặt chổ cho một hãng hàng không được sử dụng bởi hàng ngàn đại lý của hãng hàng
Trang 3giao dịch giữa các khách hàng trên cùng một hạng mục dữ liệu , vì vậy DBMS cần phải cung cấp một khả năng khóa dữ liệu (clock data) khi có người sử dụng truy cập đến hạng mục dữ liệu đó
1.6 An toàn dữ liệu
Một DBMS cần phải có khả năng phục hồi lại dữ liệu khi có sự hỏng hóc xảy ra, đồng thời và rất quan trọng là bảo vệ sự truy cập của các người sử dụng không được phép Để thực hiện công việc này các DBMS cho phép tạo ra các khung nhìn (View) mà người sử dụng chỉ được phép quan sát dữ liệu trên các view Chẳn hạn chúng ta có một file dữ liệu là NHAN_VIEN gồm các trường
TEN ( Họ tên nhân viên)
DIA_CHI(địa chỉ nhân viên)
TEN_CTY( tên công ty)
LUONG(lương nhân viên)
nếu sử dụng mô hình Quan hệ ta có Quan hệ sau:
NHAN_VIEN(TEN, DIA_CHI, TEN_CTY,LUONG)
Để mọi người có thể truy cập vào file dữ liệu này nhưng không được biết lương của nhân viên Trong ngôn ngữ SQL khung nhìn được tạo ra như sau:
CREAT VIEW L_NHAN_VIEN
SELECT TEN, DIA_CHI,TEN_CTY
FROM NHAN_VIEN;
Khi đó khung nhìn được tạo ra như một quan hệ với tên L_NHAN_VIEN(TEN, DIA_CHI, TEN_CTY) Khung nhìn này không tồn tại vật lý như tập tin , nhưng có thể vấn tin nó giống như tập tin
2 Kiến trúc một Hệ quản trị Cơ Sở Dữ Liệu
Một Hệ quản trị Cơ Sở Dữ Liệu được mô tả bởi 3 mức trừu tượng sau
Được viết bằng ngôn ngữ định nghĩa dữ liệu
Cơ Sở Dữ Liệu khái niệm CSDL vật
lý
Khung nhìn 1 Khung nhìn 2
Khung nhìn n
Được cài đặt trên thiết bị vật lý
Trang 42.1 Mức Cơ Sở Dữ Liệu vật lý( physical level)
Là một tập các tập tin (file) và các file chỉ mục (Index) hoặc các cấu trúc lưu trữ khác dùng để truy xuất chúng một cách có hiệu quả , gọi là Cơ Sở Dữ Liệu vật lý Cơ Sở Dữ Liệu vật lý tồn tại thường xuyên trong thiết bị lưu trữ như đĩa từ
2.2 Mức Cơ Sở Dữ Liệu khái niệm (Concept level )
Cơ Sở Dữ Liệu khái niệm là sự trừu tượng hóa của thế giới thực khi nó dược gắn với người sử dụng Cơ Sở Dữ Liệu Các DBMS cung cấp ngôn ngữ địng nghĩa dữ liệu (data definition language DDL), để mô tả lược đồ khái niệm (conceptual scheme)và nó sẽ được cài đặt bằng lược đồ vật lý (physical scheme) DDL cho chúng ta mô tả Cơ Sở Dữ Liệu khái niệm nhờ các thuật ngữ của “Mô hình dữ liệu “ , chẳn hạn như trong mô hình quan hệ dữ liệu được trình bày qua các bảng với các cột là các thuộc tính các hàng là các
“bộ” tương tự như các mẫu tin
2.3 Khung nhìn(VIEW)
Khung nhìn(view) hay lược đồ con (Subscheme)là một phần của Cơ Sở Dữ Liệu khái niệm hoặc là sự trừu tượng hóa một phần Cơ Sở Dữ Liệu khái niệm hầu hết các DBMS đều cung cấp phương tiện để khai báo khung nhìn , được gọi là ngôn ngữ định nghĩa dữ liệu lược đồ con( subscheme data definition language) và các phương tiện để thao tác và vấn tin trên khung nhìn gọi là ngôn ngữ thao tác dữ liệu lược đồ con (subscheme data manipulation language)
Thí dụ1
Chúng ta thử phân tích các khác biệt giữa các mức vật lý, khía niệm, khung nhìn nhờ vào tính tương tự của chúng với các ngôn ngữ lập trình Cụ thể ta sẽ nói về mảng:
- Ở mức khái niệm mảng có thể khia báo như sau:
Integer array A[1 n,1 m]
Còn ở mức vật lý, mảng A được lưu trữ trong một vùng liên tục bắt đầu từ địa chỉ a0 theo thứ tự hết cột đến dòng Phần tử A[i,j] sẽ ở vị trí a0 +4(m(i-j)+j-1)
Ở mức khung nhìn, ta có thể tạo ra nhiều khung nhìn tùy ý Chẳn hạn
,
[
A cho biết tổng các phần tử trên dòng thứ i
Lược đồ và thể hiện
Ngoài việc phân chia mức trừu tượng như trong phần (2) chúng ta còn có một cách hiểu khác về Cơ Sở Dữ Liệu Khi thiết kế chúng ta quan tâm đến những hoạch định (plan) trên Cơ Sở Dữ Liệu ; nhưng khi sử dụng chúng ta lại quan tâm đến những dữ liệu thực sự tồn tại trong Cơ Sở Dữ Liệu Cần phải hiểu rằng dữ liệu trong Cơ Sở Dữ Liệu thưòng xuyên thay đổi , trong khi các plan vẫn như cũ
Nội dung hiện thời của Cơ Sở Dữ Liệu gọi là thể hiện (instance) của Cơ Sở Dữ Liệu Thuật ngữ Lược đồ (Scheme) được dùng để nói đến các hoạch định này vì vậy khi nói đến lược đồ khái niệm là nói về hoạch định cho Cơ Sở Dữ Liệu khái niệm , và chúng
ta gọi hoạch định Cơ Sở Dữ Liệu vật lý là lược đồ vật lý
Trang 5Chúng ta tiếp tục với mảng trong ví dụ 1 Mô tả mảng và hàm được đưa ra trong thí dụ đó thực sự là thông tin kiểu lược đồ
1 Lược đồ vật lý là mệnh đề: Phần tử A[i,j] sẽ ở vị trí a0 +4(m(i-j)+j-1), khẳn định rằng mảng A được lưu tại vị trí bắt đầu là a0 và phần tử a[i,j] được lưu ở vị trí a0 +4(m(i-j)+j-1)
2 Lược đồ khái niệm là khai báo Integer array A[1 n,1 m]; A là một mảng số nguyên với n hàng và m cột
3 Lược đồ con là định nghĩa của hàm f, nghĩa là
Tính Độc lập dữ liệu
Sơ đồ về các mức trừu tượng trong phần (2) chỉ rõ đi từ khung nhìn qua Cơ Sở Dữ Liệu khái niệm đến Cơ Sở Dữ Liệu vật lý đưa ra hai mức độc lập dữ liệu (data independence)
- Độc lập dữ liệu vật lý (physcal data independence) : Chúng ta có thể thay đổi lược đồ vật lý mà không làm ảnh hưởng đến lược đồ khái niệm hay phải định nghĩa lại các lược đồ con Nó khẳn định rằng việc sửa đổi về tổ chức về Cơ Sở Dữ Liệu vật lý có thể ảnh hưởng đến tính hiệu của các chương trình ứng dụng , nhưng không bao giờ phải viết lại những chương trình này
- Độc lập dữ liệu logic (logical data independence) được đưa ra bởi mối quan hệ giữa khung nhìn và Cơ Sở Dữ Liệu khái niệm Khi sử dụng Cơ Sở Dữ Liệu cũng có thể cần phải sửa đổi lược đồ khái niệm, có nhiều sửa đổi lược đồ khái niệm không làm ảnh hưởng đến các lược đồ con hiện có, và cũng có một số sửa đổi khác sẽ cần phải định nghĩa lại các ánh xạ từ lược đồ con đến lược đồ khái niệm trường hợp này không cần thay đổi chương trình ứng dụng Một laọi thay đổi duy nhất trong lược đồ khái niệm buộc phải thay đổi lược đồ con làviệc xóa các thông
Trang 6tin tương ứng với các thông tin đang tồn tại trong lược đồ con Những thay đổi này đòi hỏi phải thay đổi chương trình ứng dụng
3 Các ngôn ngữ của Cơ Sở Dữ Liệu
Trong các ngôn ngữ lập trình các chỉ thị mô tả và các chỉ thị thực hiện là 2 bộ phận của một ngôn ngữ, trong các Hệ quản trị Cơ Sở Dữ Liệu hai chức năng mô tả và xử lý nói chung được chia thành 2 ngôn ngữ khác nhau
1 Ngôn ngữ định nghĩa dữ liệu(data definition language - DDL)
Đây không phải là ngôn ngữ thủ tục mà chỉ là một hệ thống ký hiệu để mô tả các loại đối tượng và quan hệ giữa chúng
2 Ngôn ngữ thao tác dữ liệu
Các thao tác trên Cơ Sở Dữ Liệu đồi hỏi phải có một ngôn ngữ đặc biệt gọi là ngôn ngữ thao tác dữ liệu (data manipulation language- DML) hay còn gọi là ngôn ngữ vấn tin (Query language)
Ví dụ 4
Với Cơ Sở Dữ Liệu các chuyến bay FLIGHT được định nghĩa bằng ngôn ngữ SQL trong
ví dụ 3, trong ngôn ngữ SQL ta có thể thực hiện các thao tác sau:
a Giảm 4 chổ ngồi còn trống trên chuyến bay 123 ngày 31 tháng tám
UPDATE FLIGHT
SET SEAT=SEAT-4
WHERE NUMBER=123 AND DATE=’AUG 31’
b nhập vào chuyến bay 456 với 100 chổ ngồi từ hà nội đi đà nẵng ngày 21 tháng tám INSERT INTO FLIGHT
VALUE(456, ‘AUG 21’, ‘HANOI’, ‘DANANG’)
c Tìm xem trong Cơ Sở Dữ Liệu có bao nhiêu chổ ngồi còn trống trong chuyến bay số
Trang 73 Ngôn ngữ chủ
Các chỉ thị của các ngôn ngữ thao tác dữ liệu thường là đơn giản hay nói cách khác là thực hiện những phép xử lý đơn giản, nhưng trong trong quá trình thực hiện công việc trên Cơ Sở Dữ Liệu có thể phải xử lý các công việc phức tạp hơn như soạn thảo văn bản báo cáo , in ấn vì vậy các Hệ quản trị Cơ Sở Dữ Liệu cần phải có sự hổ trợ của các ngôn ngữ thuận tiện cho việc lập trình như C hay COBOL gọi là các ngôn ngữ chủ( host language) Các lệnh của DMLb được nhúng vào ngôn ngữ chủ theo hai cách
a Các lệnh của DML được kích hoạt bằng việc gọi các thủ tục được cung cấp bởi Hệ quản trị Cơ Sở Dữ Liệu
b Các lệnh này là các chỉ thị trong ngôn ngữ chủ được mở rộng
Trang 8CHƯƠNG 2 CÁC MÔ HÌNH DỮ LIỆU CHO CÁC HỆ CƠ SỞ DỮ LIỆU
2.1 MÔ HÌNH DỮ LIỆU
Định nghĩa:
Mô hình dữ liệu là một hệ hình thức toán học gồm hai phần:
1 Một hệ thống ký hiệu để mô tả dữ liệu
2 Tập hợp các phép toán thao tác trên dữ liệu đo.ï
Trong chương này ta sẽ tìm hiểu các mô hình được sử dụng rộng rãi hiện nay là Mô hình
THỰC THỂ - QUAN HỆ ,mô hình QUAN HÊ, mô hình MẠNG và mô hình PHÂN CẤP
2.2 MÔ HÌNH THỰC THỂ -QUAN HỆ
Mục đích của mô hình thực thể -quan hệ (Entity - relationship model) là cho phép
mô tả lược đồ khái niệm của thế giới thực(xí nghiệp, cơ quan ) mà không cần chú ý đến tính hiệu quả hoặc thiết kế Cơ Sở Dữ Liệu vật lý Đây là mô hình trung gian để chuyển đổi qua các mô hình dữ liệu khác như mô hình quan hệ , mô hình mạng, mô hình phân cấp
Sau đây là các khái niệm sử dụng trong mô hình này:
2.2.1THỰC THỂ
Thuật ngữ “thực thể ”(entity)không được định nghĩa một cách hình thức , cũng giống như các thuật ngữ “Điểm” và “đường” trong hình học, Chúng ta có thể hiểu rằng thực thể là một sự vật hay một cái gì đó tồn tại và phân biệt được Thí dụ mỗi con người là một thực thể , mỗi chiếc xe máy cũng là một thực thể , chúng ta cũng có thể nói mỗi con kiến là một thực thể nếu chúng ta có cách phân biệt được con này với con khác( chẳn hạn ta đánh một số cực nhỏ trên mỗi con kiến)
Khái niệm về “tính phân biệt được” đồng nhất với khái niệm “ nhận dạng đối tượng” , vì lý do này mà mô hình thực thể -quan hệ thường được xem như là một mô hình hướng đối tượng
2.2.2TẬP THỰC THỂ
Một nhóm bao gồm các thực thể “tương tự” tạo ra một tập thực thể (entity set)
ví dụ
1 Tất cả mọi người là một tập thực thể
2 Tất cả các Giáo viên thuộc ĐHKT&QTKD là một tập thực thể
3 tất cả các sinh viên khoa TC_THỐNG KÊ cũng là một tập thực thể
Để xác định tập thực thể cần phải xác định một tập hữu hạn các tính chất khác nhau của các thực thể trong tập thực thể đó
Một trong những bước then chốt trong việc lựa chọn các mô hình Cơ Sở Dữ Liệu chứa thông tin phản ánh về một hệ thống nào đó là việc chọn các tập thực thể trong hệ thống đó
Trang 92.2.3 THUỘC TÍNH và KHÓA
Một tập thực thể có một tập các tính chất đặc trưng gọi là tập thuộc tính(atribute), mỗi thực thể được xác dịnh bởi một bộ dữ liệu của các thuộc tính thể hiện thông tin về thuộc tính đó Ứng với mỗi thuộc tính có một tập giá trị mà thuộc tính đó có thể nhận gọi là miền(domain) giá trị của thuộc tính đó
Ví dụ miền giá trị của thuộc tính Tuổi là (0,120), của thuộc tính Tên là các chuổi ký tự có độ dài tối đa 30 ký tự , hay domain của thuộc tính Giới tính là { Nam, Nữ},
Việc chọn các thuộc tính là bước quan trọng trong thiết kế sơ đồ Cơ Sở Dữ Liệu
Một thuộc tính hay 1 tập tối thiểu các thuộc tính mà giá trị của nó nhận dạng 1 thực thể một cách duy nhất trong tập thực thể gọi là khóa (key) của tập thực thể
ngày sinh để làm kháo cho tập thực thể sinh viên
2.2.4.CÁC MỐI QUAN HỆ
Cho các tập thực thể E1, E2, , Ek Một mối quan hệ R giữa các tập thực thể là một danh sách có thứ tự giữa các tập thực thể đó, Danh sách các tập thực thể không nhất thiết phải phân biệt Có nghĩa là một tập thực thể có thể xuất hiện nhiều hơn một lần trong Quan hệ
R=<F1, F2, ,Fn>
trong đó Fi∈{ E1, E2, , Ek} Mỗi hiện hành của mối quan hệ R là một tập các bộ <e1,
e2, ,en> trong đó ei∈Fi gọi là n_bộ
Cho 2 tập thực thể E1 ,E2, R là mối quan hệ giữa E1 và E2 ta có các định nghĩa sau:
1.Quan hệ ISA (is a)
Nếu mỗi thực thể của E1 cũng là thực thể của E2 thì quan hệ R gọi là mối quan hệ ISA
E1 ISA E2 đọc là E1là “một” E2
ví dụ:
E2 là tập thực thể các sinh viên khoa THỐNG KÊ-TIN HỌC
E1 là tập thực thể các sinh viên khoa THỐNG KÊ-TIN HỌC có học bổng năm học 98-99 khi đó ta có E1 ISA E2.
Mục đích của mối quan hệ này là các thực thể của tập thực thể E1 thừa hưởng các thuộc tính của E2 ngoài ra E1 còn có những thuộc tính riêng của mình Ví dụ trong công ty có tập thực thể NHÂN_VIÊN( MÃNV, TÊNNV, TUỔI, ĐỊA_CHỈ,LƯƠNG) Nếu công ty thành lập một đội bóng chuyền thì tốt nhất nên thiết kế một tập thực thể PLAY(NĂM_ tập thực thể PLAY có mối quan hệ ISA với tập thực thể NHÂN_VIÊN Như vậy mỗi thực
Trang 10thể trong THI_ĐẤU, CHIỀU_CAO) và tập thực thể PLAY cũng có tất cả các thuộc tính của tập thực thể NHÂN_VIÊN nhưng chỉ có những thực thể trong tập thực thể PLAY mới có các thuộc tính như NĂM_THI_ĐẤU, CHIỀU_CAO
2 Mối quan hệ một_một(one_one relationship)
Nếu mỗi thực thể của E1 có quan hệ với đúng 1 thực thể của E2 và ngược lại, thì mối quan hệ này gọi là mối quan hệ một_một giữa E1 và E2
Ví dụ Mối quan hệ QUẢN_LÝ giữa hai tập thực thê LÃNH_ĐẠO và tập thực thể PHÒNG_BAN là mối quan hệ Một_một nếu giả thiết rằng một lãnh đạo chỉ quản lý một phòng và một phòng chỉ có một người quản lý
3 Mối quan hệ nhiều_một(many-one relationship)
Nếu mỗi thực thể trong E1 có quan hệ với nhiều nhất 1 thực thể trong E2, và mỗi thực thể trong E2 có thể không có quan hệ với thực thể nào hoặc có quan hệ với 1 hoặc nhiều thực thể trong E1 Mối quan hệ này được gọi là mối quan hệ nhiều_một từ E1 vào E2
Ví dụ: mối quan hệ giữa hai tập thực thể NHÂN_VIÊN và PHÒNG_BAN là mối quan hệ nhiều_một từ NHÂN_VIÊN vào PHONG_BAN, có nghĩa là mỗi nhân viên chỉ làm việc trong một phòng và mỗi phòng có thể có nhiều nhân viên làm việc, cũng có trường hợp một vài nhân viên không thuộc một phòng nào cả như giám đốc
Khái niệm mối quan hệ nhiều_một được tổng quát hóa cho ba tập thực thể trở lên như sau:
Nếu có một mối quan hệ R giữa các tập thực thể E1,E2, ,Ek và với các thực thể trong tất cả các tập thực thể trừ Ei chỉ có nhiều nhất một thực thể của Ei quan hệ với chúng , thì ta gọi R là mối quan hệ nhiều_một từ E1, ,Ei-1 , ,Ek vào Ei
4 mối quan hệ nhiều_nhiều( many_many relationship)
Trong mối quan hệ này không có một hạn chế trên tập các k_bộ của các thực thể khi xuất hiện trong các quan hệ thí dụ mối quan hệ CHA_MẸ_CỦA của tập thực thể NGƯỜI là mối quan hệ nhiều nhiều, vì mỗi đứa trẻ có thể tìm được cha mẹ cho chúng và một người có thể có số lượng con tùy ý
ví dụ:
E1: tập các sinh viên của khoa TC_THỐNG KÊ
E2 tập hợp các môn thể thao
R là quan hệ thích thể thao là mối quan hệ nhiều_nhiều
Trong thực tế các hệ quản trị cơ sở dữ liệu không hỗ trợ mối quan hệ này, để biểu diễn mối quan hệ này trong thiết kê thông thường người ta tách thành các mối quan hệ nhiều _một
2.2.5 Sơ đồ mối quan-hệ thực thể
Để mô tả thông tin về các tập thực thể và các mối quan hệ giữa chúng người ta sử dụng sơ đồ gọi là sơ đồ mối quan hệ thực thể Trong sơ đồ này:
Trang 111 Hình chữ nhật biểu diễn tập thực thể có ghi tên bên trong
2 hình Oval biểu diễn thuộc tính, ghi tên thuọc tính bên trong
3 Hình thoi biểu diễn mối quan hệ giữa các tập thực thể ghi tên mối quan hệ bên trong
4 Nếu R là mối quan hệ một_một giữa 2 tập thực thể E1 và E2 thì vẽ các cạnh định hướng từ hình Oval nhãn R đến các hình chữ nhật nhã E1 và E2
5 Nếu R là mối quan hệ nhiều_một từ <E1,E2, ,Ek-1> vào Ek thì vẽ các cạnh không định hướng từ hình thoi nhãn R đến các HCN có nhãn E1,E2, ,Ek-1 và vẽ cạnh định hướng từ hình thoi có nhãn R vào HCN nhãn Ek
6 Nếu R là mối quan hệ nhiều_nhiều giữa E1 và E2 thì vẽ các cạnh không định hướng từ hình thoi nhãn R đến hình chữ nhật nhãn E1 và E2
Ví dụ: sơ đồ sau trình bày một sơ đồ đơn giản, gồm 3 tập EMPS, DETPS và
Hoặc sơ đồ quan hệ _thục thể sau:
Giữa tập thực thể PERSONS và PERSONS với mối quan hệ PARENT_OF Cạnh thứ nhất biểu diễn con còn tập thứ hai biểu diễn cha Giá trị hiện hành của mối quan hệ
PARENT_OF là tập các cặp (p1,p2) nói rằng p2 là cha của p1
Trang 12Ví dụ: Sau dây là một ví dụ tương đối đầy đủ, sơ đồ mối quan hệ thực thể sau đây tổ chức hệ thống thông tin cần thiết để chỉ huy hoạt động của siêu thị YVCB Trong sơ đồ có các tập thực thể và các mối quan hệ sau:
1.NHAN_VIEN: tập thực thể bao gồm các nhân viên làm việc trong siêu thị , các thuộc tính :
TENNV
MANV
LUONG
2 NGUOI_QL Người quản lý gòm các trưởng phòng trong siêu thị
3 GIAN_HANG: tập thực thể các gian hàng trong siêu thị gòm các thuộc tính
Các mối quan hệ
8 LAM_VIEC: quan hệ làm việc giữa tập thực thể NHAN_VIEN và tập thực thể
GIAN_HANG ta nói: “nhân viên x làm việc ở gian hàng y”
9 QUAN_LY “: mối quan hệ quản lý giữa tập thực thể GIAN_HANG và NGUOI_QL, ta nói : “ gian hàng x được quản lý bởi người quản lý y”
10 CHUA: quan hệ chứa giữa MAT_HANG với GIAN_HANG: ta nói” mặt hãng có trong gian hàng y”
11 CUNG_CAP: quan hệ cung cấp giữa NGUOI_CC với MAT_HANG ta nói” mặt hàng x được cung cấp bởi người cung cấp y”
12 DAT_HANG: quan hệ đặt hàng giữa KHACH_HANG với DON_DATH, ta nói “ đơn đặt hàng x được đặt bởi khách hàng y”
13 BAO_GOM: quan hệ bao gồm giưũa DON_DATH với MAT_HANG , ta nói “ đơn đặt hàng x đặt mặt hàng y với số lượng z”
Trang 13Sơ đồ mối quan hệ -thực thể của YVCB như sau
(Hình vẽ)
Trang 152.3 MÔ HÌNH DỮ LIỆU QUAN HỆ
Như đã nói, mô hình quan hệ-thực thể không phải là mô hình xử lý, nó mô hình
hóa thế giới thực ở mức khái niệm Để lưu trữ thông tin trên máy và dùng các hệ quản trị Cơ Sở Dữ Liệu thao tác trên chúng thì dữ liệu phải được biểu diễn dưới dạng khác
Hiện nay mô hình dữ liệu được sử dụng rộng rãi nhất là mô hình dữ liệu quan hệ( Database Relationship Model) được E.F Code đề xuất năm 1970 và ngày càng có nhiều hệ qủan trị Cơ Sở Dữ Liệu cho mô hình này gọi là các hệ quản trị Cơ Sở Dữ Liệu quan hệ Mô hình dữ liệu quan hệ có ưu điểm là tính độc lập dữ liệu cao và mô hình được xây dựng dựa trên lý thuyết tập hợp nên dễ hiểu và dễ biểu diễn bằng toán học
2.3.1 Định nghĩa quan hệ
Quan hệ được định nghĩa dựa trên lý thuyết tập hợp và tích Đề_các của các miền Miền( Domain) là tập các giá trị hữu hạn hoặc vô hạn
Ví dụ: Tập các số nguyên là một miền, tập các xâu ký tự có độ dài 20 là một miền, hoặc tập{0,1} là một miền
Cho k miền D1,D2, ,Dk Khi đó tích Đề_các của k miền D1,D2, ,Dk ký hiệu là D1xD2x xDk là tập các bộ có dạng (v1,v2, ,vk) trong đó vi thuộc Di, mỗi bộ có k thành phần gọi là k_bộ(k_tupe)
ví dụ: Với k=2, D1={0,1},D2={a,b,c}
Khi đó D1xD2={(0,a),(0,b),(0,c),(1,a),(1,b),(1,c)}
từ đó quan hệ được định nghĩa như sau:
Một quan hệ (Relation)là một tập hợp con bất kỳ của tích Đề_các của một hoặc nhiều miền Như vậy một quan hệ có thể là vô hạn nhưng ở đây luôn giả thiết rằng quan hệ là hữu hạn
ví dụ Với D1 và D2 trong ví dụ trên thì tập {(0,a),(0,c),(1,b)} là một quan hệ , một tập con của tích Đề_các 2 miền D1 và D2
Thành phần của quan hệ gọi là bộ (tupe), quan hệ là tập con của tích Đề_các k miền gọi là quan hệ k_ngôi(k_Arity) Mỗi bộ của quan hệ k_ngôi gồm k thành phần gọi là k_bộ có dạng (v1,v2, ,vk) trong đó vi thuộc Di
Trong mô hình dữ liệu quan hệ , mỗi quan hệ n_ngôi được biểu diễn bởi một bảng
n cột Trong bảng mỗi cột tương ứng với một thành phần của quan hệ gọi là thuộc tính và có tên là tên của thành phần tương ứng trong quan hệ Mỗi bộ trong quan hệ tương ứng với 1 dòng của bảng
Tên quan hệ cùng với danh sách các thuộc tính gọi là lược đồ quan hệ (Relational Scheme) Nếu quan hệ có tên là REL và có các thuộc tính là A1,A2, ,Ak thì lược đồ quan hệ tương ứng là REL(A1,A2, ,Ak)
Ví dụ: Thông tin về các thành phố được lưu trữ trong lược đồ quan hệ có tên là
CITY_INFO gồm các thuộc tính như TÊN_TP, SỐ_TRƯÒNG_ĐH, SỐ_DÂN Ta thấy rằng đây là lược đồ quan hệ 3_ngôi(Gồm 3 thuộc tính )khi đó lược đồ quan hệ tương ứng
Trang 16là : CITY_INFO(TÊN_TP, SỐ_TRƯÒNG_ĐH, SỐ_DÂN) và (HUẾ, 6,2.000.000) là
một bộ của lược đồ quan hệ Và khi đó
TÊN_TP SỐ_TRƯÒNG_ĐH SỐ_DÂN
HUẾ 6 2.000.000
HÀ NỘI 12 5.000.000
ĐÀ NẴNG 5 3.000.000
Là một quan hệ của lược đồ quan hệ CITY_INFO, là tập con của tích đề các 3
miền TÊN_TP, SỐ_TRƯÒNG_ĐH, SỐ_DÂN Ứng với mỗi lược đồ quan hệ có nhiều quan hệ gọi là các hiện hành(Current Instance) của lược đồ quan hệ đó
2.3.2 Biểu diễn sơ đồì Quan Hệ - Thực Thể trong mô hình Quan Hệ
Tập các lược đồ quan hệ dùng để biểu diễn thông tin của một hệ thống được gọi là lược đồ Cơ Sở Dữ Liệu quan hệ (Relational Database Scheme)và những giá trị hiện hành của các quan hệ tương ứng tạo ra Cơ Sở Dữ Liệu quan hệ
Giả sử các thông tin của hệ thống được biểu diễn bởi 1 sơ đồ về mối quan hệ thực thể thì ta có thể thiết lập lược đồ Cơ Sở Dữ Liệu quan hệ cho hệ thống từ sơ đồ mối quan hệ thực thể dựa trên các nguyên tắt sau:
1 Một tập thực thể E trong sơ đồ quan hệ -thực thể được biểu diễn bởi một lược đồ quan hệ có tên là E và có các thuộc tính là tập tất cả các thuộc tính của tập thực thể E.Mỗi thực thể trong tập thực thể tương ứng với một bộ trong lược đồ quan hệ tương ứng
Nếu E là một tập thực thể mà các thực thể của nó được định nghĩa thông qua một mối quan hệ với một tập thực thể F khác thì lược đồ quan hệ tương ứng có tên là E và có thuộc tính là các thuộc tính của F dùng làm khóa cho E
2.Một mối quan hệ R giữa các tập thực thể E1,E2, ,Ek được biểu diễn bằng một lược đồ quan hệ có tên là R và có các thuộc tính là các thuộc tính khóa của E1,E2, ,Ek Ở đây có thể có sự đặt tên lại các thuộc tính nếu có hai hoặc nhiều tập thực thể có các thuộc tính trùng tên để đảm bảo rằng giữa các tập thực thể không có các thuộc tính trùng tên
Mỗi bộ t trong quan hệ này tương ứng với một danh sách các thực thể (e1,e2, ,ek) trong đó ei thuộcEi
Để minh họa, thí dụ sau đây sẽ chuyển sơ đồ thực quan hệ -thực thể của siêu thị YVCB sang lược đồ Cơ Sở Dữ Liệu quan hệ:
Lược đồ cho các tập thực thể
1 EMPS(ENAME, SALARY)
Trang 177 CUSTUMERS(CNAME, CADDR, BALANCE)
Lược đồ cho các mối quan hệ
8 WORK_IN(ENAME, DNAME)
9 MANAGES(ENAME, DNAME)
10 CARRIES(INAME, DNAME)
11 SUPPLIES(SNAME, INAME, PRICE)
12 INCLUDES(O#, INAME, QUANLITY)
13 PLACED_BY(O#, CNAME)
2.3.3 Khóa của quan hệ (Keys of relation)
Cũng giống như các tập thực thể , quan hệ cũng có khóa để phân biệt các bộ trong quan hệ
Tập con S các thuộc tính của quan hệ R gọi là khóa của R nếu thỏa mãn hai tích chất sau:
1 Không có hiện hành nào của R có hai bộ trùng nhau trên tất cả các thuộc tính của S nhưng không phải là một bộ
2 Không có tập con thật sự nào của S có tích chất (1)
Có nghĩa là nếu S là khóa của quan hệ R thì trong thiết kế Cơ Sở Dữ Liệu ở mức vật lý không cho phép lưu trữ hai bộ mà các giá trị của chúng giống nhau trên S
Ví dụ:
Trong lược đồ quan hệ SUPPLIES(SNAME, INAME,PRICE) có khóa gồm hai thuộc tính SNAME và INAME Nếu trong một hiện hành nào đó của lược đồ quan hệ SUPPLIES tồn tại hai bộ (s,i,p1) và (s,i,p2) có nghĩa là người cung cấp s cung cấp mặt hàng i với hai giá là p1 và p2 như vậy dữ liệu bị lỗi trong trường hợp này vì không thỏa mãn tính chất khóa
Một điều quan trọng cần phải nhớ là tính chất khóa chỉ phụ thuộc vào lược đồ mà không phụ thuộc vào một hiện hành nào của lược đồ đó
Về nguyên tắt để phân biệt các bộ trong quan hệ thì mỗi quan hệ phải có ít nhất một khóa, như vậy một lược đồ có thế có nhiều khóa Nếu lược đồ quan hệ có nhiều khóa thì ta chọn một khóa làm khóa chính(Primary) và các khóa còn lại được gọi là khóa ứng cử(indicate)
Nguyên tắt thành lập khóa
1 Nếu lược đồ quan hệ được thành lập từ một tập thực thể thì khóa của tập thực thể đó được lấy làm khóa cho lược đồ quan hệ
Trang 182 Nếu lược đồ quan hệ được thành lập từ mối quan hệ nhiều_nhiều giữa các tập thực thể E1 và E2 thì tập tất cả các thuộc tính khóa của E1 và E2 được dùng làm khóa cho lược đồ quan hệ
3 Nếu lược đồ quan hệ được thành lập từ mối quan hệ một_một giữa các tập thực thể E1 và E2 thì tập tất cả các thuộc tính khóa của E1 hoặc khóa E2 có thể lấy làm khóa cho lược đồ quan hệ
4 Nếu lược đồ quan hệ được thành lập từ mối quan hệ nhiều_một từ E1,E2, ,Ek-1 vào
Ek thì tập tất cả thuộc tính khóa của E1,E2, ,Ek-1 được dùng làm khóa cho lược đồ quan hệ
Bây giờ áp dụng các nguyên tắt trên để xác định khóa cho 13 lược đồ quan hệ được thiết lập ở trên Khóa chính in đậm, khóa ứng cử in nghiên
7 CUSTUMERS(CNAME, CADDR, BALANCE)
Lược đồ cho các mối quan hệ
8 WORK_IN(ENAME, DNAME)
9 MANAGES(ENAME, DNAME)
10 CARRIES(INAME, DNAME)
11 SUPPLIES(SNAME, INAME, PRICE)
12 INCLUDES(O#, INAME, QUANLITY)
13 PLACED_BY(O#, CNAME)
2.3.3 Các phép toán trên mô hình dữ liệu quan hệ
Có hai lọai phép toán :
1 Đại số quan hệ (relatinal algebra)
2 Phép tính logic
Trong phần này chúng ta chỉ tìm hiểu các phép toán đại số quan hệ
Phép toán đại số quan hệ có các toán hạng là các hằng quan hệ , biến quan hệ
Có 5 phép toán cơ bản là phép hợp(Union), Trừ(difference), Tích Descarstes, Phép
chiếu(Projection), Phép chọn(Selection) và một số phép toán mở rộng từ 5 phép toán cơ bản trên Sau đây chúng ta tìm hiểu cụ thể từng phép toán
Trang 23
Một số ví dụ ứng dụng các phép toán Đại số quan hệ
Giả sử trong các lược đồ quan hệ trong mô hình CSDL quan hệ YVCB, ghép một số quan hệ thích hợp để được để được các lược đồ quan hệ sau:
NHAN_VIEN(TENNV,LUONG)
GIAMH(SOGH, TENGH,NGUOIQL)
MATH(MAMH, TENMH, TENGH)
DONDH(SOHD, NGAYHD, TENKH)
KHACHH(TENKH, DCHI,TAIK)
CUNGCAP(TENCC,TENH,GIA)
CHITIET(SOHD,TENH,SOLUONG)
Chúng ta có thể sử dụng các phép toán đại số quan hệ để trả lời các câu hỏi sau:
1.tìm người cung cấp cung cấp sách cơ sở dữ liệu (CSDL)
ΠTENCC(σTENH=’sách CSDL’ (CUNGCAP))
2.Tìm xem nhà cung cấp A, cung cấp những mặt hàng nào giá thấp hơn 1000
ΠTENH(σTENCC=’A’ AND GIA <1000 (CUNGCAP))
3 Xác định xem khách hàng nào có đặt mua quâng JEAN
ΠTENKH(σTENH=’ JEAN’ (DONDH ∞ CHITIET))
Trang 242.4 Mô hình dữ liệu mạng
Mô hình dữ liệu mạng ( network model) là mô hình quan hệ thưcû thể Trong đó chỉ có các mối quan hệ hai ngôi nhiều_một Trong mô hình dữ liệu mạng người ta thường dùng các đối tượng sau:
- Kiểu bảng ghi thay cho tập thực thể
- Format bản ghi thay cho tập các thuộc tính
- Mỗi bản ghi thay cho một bộ giá trị cảu các thuộc tính
Nếu so sánh với mô hình quan hệ ta thấy tương ứng như sau
2.4.1 Các mối nối ( Link) : Để biểu diễn các mối quan hệ hai ngôi nhiều _ một giữa hai
đối tượng người ta sử dụng các mối nối(link) Hay nói cách khác, thay cho 1 quan hệ hai ngôi R nhiều _1 từ kiểu bản ghi T1 đến T2, người ta vẽ một cạnh định hướng có nhãn R từ T1 đến T2 trong md quan hệ thực thể
Trong mô hình mạng người ta biểu diễn như sau:
2.4.2Chuyển đổi Sơ đồ quan hệ _thực thể thành Mô hình mạng
Để xây dựng mô hình mạng từ mô hình quan hệ _thực thể ta áp dụng các quy ước sau:
1 Mỗi tập thực thể được thay bằng một kiểu bản ghi
2 Các thuộc tính của tập thực thể trở thành Format bản ghi
3 Các mối quan hệ nhiều_một R được biểu diễn bằng các link nhãn R
4 Đối với các quan hệ nhiều ngôi giữa E1,E2, , En người ta thêm kiểu bản ghi ligic T với Format của nó không quan trọng, đồng thời vẽ các các cung định hướng từ T đến E1, E2, , En
Trang 25Chuyển sang mô hình mạng
Trong trường hợp R là mối quan hệ nhiều _một từ E1,E2, , En-1 vào En thì sử dụng En thay cho T
E4
E3
E4
Trang 26Ví dụ chúng ta áp dụng những quy tắt trên để chuyển sơ đồ quan hệ thực thể của siêu thị YVCB thành mô hành mạng như sau
B-M
KHACH_H
DATH
Trang 27Theo nguyên tắt thì format của T có thể rỗng, nhưng ở đây để mô ta đầy đủ thông tin thì
ta có thể thêm vào các trường, ta thêm vào 2 trường như sau:
Trường SOTIET cho biết số tiết trong tuần học
Trường MUCDO cho biết trình độ của học viên (A,B,C )
Và cấu trúc vật lý của mô hình mạng như sau:
T
2.5 Mô hình phân cấp
Mô hình phân cấp là mô hình mạng có cấu trúc đặc biệt như là một rừng (tập hợp các cây) Trong mỗi cây, một link chỉ theo hướng từ nút con đến các nút bố mẹ, trong mô hình phân cấp chúng ta cũng sử dụng các đối tượng như trong mô hình mạng( kiểu bản ghi, format bản ghi, bản ghi) Chúng ta có thể thiết kế mô hình phân cấp từ mô hình mạng bằng cách tách dần các cây bắt đầu từ nút có link đi đến nhiều nhất mà không có link đi ra làm gố c của cây, gắn các nút có link đi đến nút vừa chọn làm gốc cho cây con của nó Và tiếp tục gán các con cháu của nó cho đến khi không gán được nữa Tiếp theo chọn cac nút còn lại chưa được gán không có link đi ra từ nó làm nút gốc của cây mới Quá trình tiếp tục cho đến khi không còn nút nào của mạng chưa được gán vào một cây nào đó
Ví dụ: Chuyển đổi sang mô hình phân cấp từ mô hình mạng trong ví dụ trong mô hình mạng về siêu thị YVCB
Trang 28Chương 3 LÝ THUYẾT THIẾT KẾ CƠ SỞ DỮ LIỆU