Professional Documents
Culture Documents
1
v1.0011105217
• Trước những năm 60, mỗi chương trình ứng dụng đều có 1 tệp dữ liệu tương ứng
và khi chương trình ứng dụng được sửa đổi thì tệp dữ liệu này cũng phải thay đổi.
• Việc lưu trữ thông tin trong hệ xử lý tệp (được hỗ trợ bởi hệ điều hành) có nhược
điểm như: sự dư thừa dữ liệu, các dị thường dữ liệu khi nhiều người sử dụng….
• Dẫn đến sự ra đời các hệ CSDL để khắc phục các vấn đề trên. Hệ CSDL đã định
nghĩa các cấu trúc cho việc lưu trữ thông tin, cung cấp các cơ chế cho việc thao
tác thông tin và đảm bảo an toàn cho các thông tin được lưu trữ.
2
v1.0011105217
1
MỤC TIÊU
Giới thiệu các vấn đề cơ bản cần giải quyết trong CSDL.
3
v1.0011105217
NỘI DUNG
4 Mô hình dữ liệu.
4
v1.0011105217
2
1. CÁC KHÁI NIỆM CƠ BẢN
1.1. Cơ sở dữ liệu;
1.3. Hệ cơ sở dữ liệu.
5
v1.0011105217
1.1. CƠ SỞ DỮ LIỆU
6
v1.0011105217
3
1.1. CƠ SỞ DỮ LIỆU (tiếp theo)
4
1.2. HỆ QUẢN TRỊ CSDL
Khái niệm:
• Hệ quản trị CSDL (Database Management System) là phần mềm cho phép người
dùng giao tiếp với CSDL, cung cấp một môi trường thuận lợi và hiệu quả để tìm
kiếm và lưu trữ thông tin của CSDL.
• Các hệ quản trị CSDL phổ biến như: Access, FoxPro, MySQL, SQL Server, Oracle.
9
v1.0011105217
1.3. HỆ CƠ SỞ DỮ LIỆU
Khái niệm:
• Thuật ngữ hệ cơ sở dữ liệu để chỉ một CSDL và hệ quản trị CSDL để truy cập CSDL đó
(Hệ CSDL = CSDL + Hệ QTCSDL)
• Mục đích chính của một hệ CSDL là cung cấp cho người dùng một cách nhìn trừu
tượng về dữ liệu (có nghĩa là hệ thống che dấu những chi tiết phức tạp về cách thức
thao tác dữ liệu và bảo trì dữ liệu).
Người dùng/Lập trình viên
HỆ CSDL
Chương trình ứng dụng/các truy vấn
PHẦN MỀM
Phần mềm xử lý truy vấn/ chương trình
HỆ QUẢN TRỊ CSDL
5
2. CÁC VẤN ĐỀ CƠ BẢN CỦA CƠ SỞ DỮ LIỆU
11
v1.0011105217
12
v1.0011105217
6
2.2. SỬ DỤNG CSDL THẾ NÀO CHO HIỆU QUẢ ?
• Việc sử dụng CSDL thế nào cho hiệu quả liên quan đến một số vấn đề như đảm bảo
tính nhất quán và toàn vẹn dữ liệu:
Tính toàn vẹn: Các giá trị dữ liệu được lưu trữ trong CSDL phải thỏa mãn một số
ràng buộc, tùy thuộc vào hoạt động tổ chức mà CSDL phản ánh.
Ví dụ: Thư viện qui định số sách nhiều nhất mà người đọc được mượn trong một
lần. Khi cập nhật số sách mượn của đọc giả phải đảm bảo nhỏ hơn hoặc bằng số
sách được mượn theo qui định.
Tính nhất quán: Sau những thao tác cập nhật dữ liệu và ngay cả khi có sự cố
(phần cứng hay phần mềm) xảy ra trong quá trình cập nhật, dữ liệu trong CSDL
phải được bảo đảm đúng đắn.
Ví dụ:
Sự
Tài khoản A cố Tài khoản B
2.2. SỬ DỤNG CSDL THẾ NÀO CHO HIỆU QUẢ ? (tiếp theo)
• Tính bảo mật và quyền khai thác thông tin của người sử dụng: Do ưu điểm
CSDL có thể cho nhiều người khai thác đồng thời nên cần phải có một cơ chế bảo mật
phân quyền khai thác CSDL.
• Tính an toàn cho dữ liệu khi xảy ra sự cố nào đó:
Khi CSDL nhiều và được quản lý tập trung. Khả năng rủi ro mất dữ liệu rất cao.
Các nguyên nhân chính là mất điện đột ngột hoặc hỏng thiết bị lưu trữ.
Chúng ta nên sao lưu dự phòng cho dữ liệu đề phòng trường hợp xấu xảy ra.
• Tranh chấp dữ liệu:
Khi nhiều người cùng truy nhập CSDL với các mục đích khác nhau. Rất có thể sẽ
xảy ra hiện tượng tranh chấp dữ liệu.
Cần có cơ chế ưu tiên khi truy cập CSDL. Ví dụ: Admin luôn có thể truy cập cơ sở
dữ liệu.
Cấp quyền ưu tiên cho từng người khai thác.
14
v1.0011105217
7
3. KIẾN TRÚC BA MỨC ANSI-SPARC
Theo ANSI-SPARC (American National Standards Institute – Standards Planning and
Requirements Committee: Viện tiêu chuẩn quốc gia Mỹ - Ủy ban nhu cầu và kế hoạch
Mỹ) có 3 mức biểu diễn một CSDL.
Kiến trúc ba mức ANSI-SPARC, bao gồm:
• Mức vật lý (còn gọi là mức trong);
• Mức logic (còn gọi là mức khái niệm);
• Mức khung nhìn (còn gọi là mức ngoài).
Mức logic
Mức vật lý
8
VÍ DỤ
Struct STAFF{
int staffNo;
int branchNo;
char fName [15];
char Iname [15];
Internal level struct date dateOfBirth;
float salary;
struct STAFF *next; /* pointer to next Staff record */
};
Index staffNo; index branchNo; /* define indexes for staff */
17
v1.0011105217
• Với 1 CSDL, mỗi người dùng có 1 khung nhìn riêng. Người này thay đổi khung nhìn
không ảnh hưởng đến người khác đang dùng chung CSDL này;
• Những tương tác của người dùng với CSDL không phụ thuộc vào những vấn đề chi
tiết trong lưu trữ dữ liệu;
• Người quản trị CSDL (Database Administrator-DBA) có thể thay đổi cấu trúc lưu trữ
của CSDL mà không ảnh hưởng đến khung nhìn của người sử dụng;
• Thay đổi về khía cạnh vật lý trong lưu trữ như thay thiết bị nhớ thứ cấp có thể không
làm ảnh hưởng đến cấu trúc bên trong CSDL;
• Người quản trị CSDL có thể thay đổi cấu trúc tổng quát hay cấu trúc khái niệm của
CSDL mà không làm ảnh hưởng đến tất cả người dùng.
18
v1.0011105217
9
ĐỘC LẬP DỮ LIỆU (DATA INDEPENDENT) VÀ KIẾN TRÚC BA MỨC
Conceptual
schema
Internal
schema
4. MÔ HÌNH DỮ LIỆU
20
v1.0011105217
10
4.1. KHÁI NIỆM MÔ HÌNH DỮ LIỆU
• Mô hình dữ liệu: Là một tập các khái niệm và kí pháp dùng để mô tả dữ liệu, các
mối quan hệ của dữ liệu, các ràng buộc trên dữ liệu của một tổ chức.
• Mô hình dữ liệu gồm có 3 thành phần:
Phần mô tả cấu trúc của CSDL;
Phần mô tả các thao tác, định nghĩa các phép toán được phép trên dữ liệu;
Phần mô tả các ràng buộc toàn vẹn để đảm bảo sự chính xác của dữ liệu.
21
v1.0011105217
22
v1.0011105217
11
4.2.1. CÁC MÔ HÌNH LOGIC TRÊN CƠ SỞ ĐỐI TƯỢNG (OBJECT-
BASED DATA MODELS)
• Các mô hình này được dùng trong việc mô tả dữ liệu ở các mức logic và khung nhìn;
• Đặc trưng của mô hình này là khả năng cung cấp cấu trúc rất;
• Mềm dẻo và cho phép các ràng buộc được đặc tả một cách tường minh;
• Hai mô hình phổ biến trong nhóm mô hình này:
Mô hình thực thể - mối quan hệ (còn gọi là mô hình thực thể - liên kết);
Mô hình hướng đối tượng.
23
v1.0011105217
• Mô hình này xây dựng dựa trên nhận thức rằng thế giới thực muốn phản ánh là một
tập hợp các đối tượng cơ sở và các mối quan hệ (còn gọi là liên kết) giữa chúng. Mô
hình này dùng các khái niệm “thực thể” (entity-E) và “mối quan hệ” (Relationship-R)
do đó còn được viết tắt là mô hình E-R;
• Thực thể là một “vật” tồn tại, phân biệt được với các “vật” khác, có sự tồn tại độc lập;
• Một mối quan hệ thể hiện một liên kết giữa nhiều thực thể;
• Cấu trúc logic tổng thể của một CSDL có thể được biểu thị bởi một biểu đồ E-R.
• Ví dụ mô hình thực thể - liên kết:
Từ khi
Tên Tên
MaSV Quê MaLop Khóa
24
v1.0011105217
12
MÔ HÌNH HƯỚNG ĐỐI TƯỢNG
• Mô hình này dựa trên cơ sở một bộ sưu tập các đối tượng. Một đối tượng chứa các
thuộc tính được lưu trữ trong các biến thể hiện (Instance Variables) ở bên trong đối
tượng. Một đối tượng còn chứa các phần mã thao tác trên đối tượng. Các phần mã đó
được gọi là các phương thức (phương pháp).
• Khác với các thực thể trong mô hình E-R, mỗi đối tượng có tính đồng nhất riêng, độc
lập với các giá trị nó chứa đựng. Hai đối tượng chứa cùng các giá trị vẫn có thể là
khác nhau. Sự phân biệt giữa các đối tượng cá thể được duy trì ở mức vật lý thông
qua việc gán các định danh đối tượng khác nhau.
25
v1.0011105217
• Các mô hình logic trên cơ sở bản ghi được dùng trong việc mô tả dữ liệu ở các mức
logic và khung nhìn. Trong mô hình này, CSDL được cấu trúc thành các bản ghi có
các trường (hay thuộc tính), mỗi trường thường có độ dài cố định do đó cài đặt mức
vật lý của CSDL đơn giản hơn so với mô hình hướng đối tượng.
• Ba mô hình logic trên cơ sở bản ghi quen thuộc nhất:
Mô hình dữ liệu quan hệ;
Mô hình dữ liệu mạng;
Mô hình dữ liệu phân cấp.
26
v1.0011105217
13
MÔ HÌNH DỮ LIỆU QUAN HỆ
• Từ 1980, các hệ quản trị CSDL quan hệ được dùng phổ biến: Oracle, Sql Server,
Access, Foxpro;
• Trong mô hình này, dữ liệu được thể hiện trong các bảng. Mỗi bảng gồm các dòng và
cột, mỗi cột có một tên duy nhất. Mỗi dòng cho thông tin về một đối tượng cụ thể
trong quản lý (mỗi dòng là một bản ghi hay một bộ). Mỗi dòng gồm một bộ các giá trị
tương ứng với các cột, mỗi giá trị thể hiện thông tin về một thuộc tính của đối tượng
đó, tên thuộc tính này chính là tên cột mà giá trị đó được hiển thị. Mỗi liên kết giữa
các đối tượng được thể hiện bằng mối liên kết giữa các bảng nhờ vào sự xuất hiện
trùng lặp của một số thuộc tính ở hơn một bảng.
• Ví dụ mô hình dữ liệu quan hệ:
27
v1.0011105217
28
v1.0011105217
14
MÔ HÌNH DỮ LIỆU PHÂN CẤP
• Có thể chuyển đổi các CSDL ở mô hình phân cấp sang mô hình quan hệ và ngược lại.
• Giống như mô hình mạng: trong mô hình này, dữ liệu biểu diễn bằng tập các bản ghi
và mối quan hệ giữa các dữ liệu biểu diễn bằng mối nối như các con trỏ.
• Khác với mô hình mạng: mối quan hệ giữa hai đối tượng trong mô hình phân cấp thể
hiện theo kiểu cha-con và sơ đồ các bản ghi cùng các liên kết giữa chúng có cấu trúc
như các cây mà không là các đồ thị bất kỳ.
• Ví dụ mô hình dữ liệu phân cấp:
S1 Tú 20 Nghệ An
S 20 Tuấn 10 Hà Nội
P2 Ô tô Xanh 17 Hà Nội
P4 Xe máy Đỏ 14 Nghệ An 29
v1.0011105217
15
4.3. NGÔN NGỮ CƠ SỞ DỮ LIỆU (DATABASE LANGUAGES)
• Ngôn ngữ định nghĩa dữ liệu (Data Definition Language: DDL): Cho phép người dùng
định nghĩa CSDL
• Ngôn ngữ thao tác dữ liệu (Data Manipulation Language: DML): Cho phép người dùng
truy cập hoặc thao tác dữ liệu được tổ chức bởi 1 mô hình thích hợp:
DML kiểu thủ tục (Procedural): Người dùng phải xác định dữ liệu họ cần và cách
thức để có dữ liệu đó (What+How);
DML kiểu phi thủ tục (Non-Procedural): Người dùng xác định dữ liệu họ cần.
• Ngôn ngữ thông dụng nhất của DML phi thủ tục là SQL (Strutured Query Language):
Ngôn ngữ hỏi (ngôn ngữ truy vấn): Tìm kiếm thông tin;
Ngôn ngữ cho phép chỉ định thao tác thêm, xóa, sửa dữ liệu.
31
v1.0011105217
32
v1.0011105217
16