Xem mẫu
- ỉĩm \ TRƯỜNG ĐẠI HỌC THƯƠNG MẠI
ẵ uuu 0 • ,
Chủ biên: TS. Nguyễn Thị Thu Thuỷ
Z' 7 960 •
GIÁO TRÌNH
co sổ Dữ LIÊU (PHẦN 1)
NHÀ XUẤT BẢN THỐNG KÊ
- TRƯỜNG ĐẠI HỌC THƯƠNG MẠI
Chủ biên: TS. Nguyễn Thị Thu Thuỷ
GIAO TRINH
cơ sớ Dữ LIÊU
(PHẨN1)
NHÀ XUẤT BẢN THỐNG KÊ
HÀ NỘI-2015
- LỜI NÓI ĐÀU
Cơ sở dữ liệu có thể coi là nguồn tài nguyên vô cùng quý giả của
mỗi tổ chức trong xã hội vì nó chứa đựng nhiều thông tin cần thiết và là
nền tảng khai thác cho các ứng dụng trợ giúp người dùng. Để có thể xây
dựng và thiết kế được cơ sở dữ liệu hiệu quả, chúng ta cần nắm vững
được các phương pháp và các lã thuật then chốt trong việc tổ chức dữ
liệu một cách logic cũng như cách thức cài đặt vật lý dữ liệu này. Để đạt
được điều đó, tập thể giảng viên của Bộ môn Tin học, Khoa Hệ thống
thông tin kỉnh tế biên soạn và trân trọng giới thiệu cuốn “Giảo trình
Cơ sở dữ liệu (phần 1) Đây là cuốn giáo trình về cơ sở dữ liệu cơ bản
trình bày các lã thuật tổ chức dữ liệu ở dạng mô hình liên kết thực thể,
hay mô hình quan hệ, chuẩn hóa mô hĩnh cơ sở dữ liệu quan hệ, cũng
như sử dụng các phép toán đại sổ quan hệ hoặc SQL để truy vẩn thông
tin từ cơ sở dữ liệu.
Giáo trĩnh Cơ sở dữ liệu (phần 1) được biên soạn làm giáo trình
cho sinh viên hệ đại học chuyên ngành quản trị hệ thống thôỵig tin thuộc
Khoa Hệ thống thông tin kinh tể của Trường Đại học Thương mại. Giáo
trình này đồng thời là tài liệu tham khảo cho các giảng viên trong quả
trình giảng dạy môn học, hoặc làm tài liệu tham khảo cho các sinh viên
các chuyên ngành khác có liên quan đến cơ sở dữ liệu.
Nội dung giáo trình gồm 3 chương như sau:
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ề cơ sở dữ liệu, hệ quản trị cơ sở dữ
liệu,...
Chương 2: Cơ sở dữ liệu quan hệ. Chương này đi sâu trĩnh bày về
cơ sở dữ liệu quan hệ, toàn vẹn dữ liệu, phụ thuộc hàm
và chuẩn hóa dữ liệu quan hệ, mô hình thực thể liên
kết, chuyển đổi sang mô hình quan hệ, cũng như quy
trình thiết kế cơ sở dữ liệu.
3
- Chương 3: Ngôn ngữ khai thác cơ sở dữ liệu quan hệ. Chương
này trình bày các kiến thức về các phép toán đại số
quan hệ và ngôn ngữ SQL.
Tập thể tác giả biên soạn đã bám sát với đề cương được soạn theo
chương trĩnh khung của Bộ Giảo dục và Đào tạo ban hành, đồng thời có
tham khảo và biên soạn lại để sao cho nó có tính cập nhật các kiến thức
theo chuyên ngành và đặc thù của khối trường kinh tế. Hơn thế nữa, giáo
trình còn được biên soạn cho phù hợp với tình hình thực tiễn của xã hội.
Tham gia biên soạn giáo trình gồm các tác giả:
• TS. Nguyễn Thị Thu Thủy, chủ biên và biên soạn chương 1.
• Ths Ngô Duy Thắng, Ths Nguyễn Hưng Long biên soạn chương 2.
• Ths Nghiêm Thị Lịch, Ths Cù Nguyên Gỉảp, Ths Đinh Thị Hà và
Ths Nguyễn Hằng Giang biên soạn chương 3.
• Ngoài ra, còn có sự đỏng góp các ỷ kiến, nhận xét của các giảng
viên khác và tham gia phản biện trong bộ môn.
Trong quá trình biên soạn chúng tôi xỉn cảm ơn các đồng nghiệp
đã công bố các giáo trình, sách và tài liệu liên quan để chủng tôi cỏ thể
tham khảo cho giáo trình của mình. Mặc dù chúng tôi đã cổ gắng hoàn
chinh giảo trình, tuy nhiên không thể tránh khỏi thiếu sót. Rất mong các
đồng nghiệp, sinh viên đỏng góp ỷ kiến để giảo trình ngày càng hoàn
thiện hơn.
CÁC TÁC GIẢ
4
- MỤC LỤC
Lời nói đầu 3
Chương 1: TỔNG QUAN VÈ cơ SỞ DỮ LIỆU 7
1.1. Các khái niệm cơ bản về CSDL 7
1.1.1. Khái niệm về CSDL và vai trò của cơ sờ dữ liệu
trong các hệ thống thông tin 7
1.1.2. Đặc điểm và tính chất của CSDL 13
1.1.3. Khái niệm về hệ CSDL 17
1.2. Mô hình dữ liệu 20
1.2.1. Khái niệm và ý nghĩa của mô hình dữ liệu 20
1.2.2. Một số mô hình thông dụng 29
1.3. Kiến trúc cơ sờ dữ liệu 33
1.3.1. Mức khung nhìn 33
1.3.2. Mức khái niệm 35
1.3.3. Mức vật lý 36
1.4. Ngôn ngữ quàn trị cơ sở dữ liệu 36
1.4.1. Ngôn ngữ định nghĩa dữ liệu 37
1.4.2. Ngôn ngữ khai thác dữ liệu 37
Câu hỏi và bài tập chương 1 39
Chương 2: Cơ Sở Dữ LIỆU QUAN HỆ 41
2.1. Các khái niệm cơ bàn 41
2.1.1. Thực thể 41
2.1.2. Thuộc tính 43
2.1.3. Khóa 46
2.1.4. Liên kết (Mối quan hệ - relationships) 49
2.1.5. Miền giá trị (domain) 52
2.1.6. Quan hệ 53
2.1.7. Lược đồ quan hệ 55
2.1.8. Các tính chất của quan hệ 56
2.2. Toàn vẹn dữ liệu 58
2.2.1. Ràng buộc 58
2.2.2. Ràng buộc toàn vẹn 62
5
- 2.3. Phụ thuộc hàm 65
2.3.1. Hệ tiên đề cho phụ thuộc hàm 66
2.3.2. Tính toán bao đóng 68
2.3.3. Phủ của tập các phụ thuộc hàm 73
2.3.4. Khoá của lược đồ quan hệ 80
2.4. Chuẩn hoá các lược đồ quan hệ 85
2.4.1. Các dạng chuẩn của lược đồ quan hệ 86
2.4.2. Phương pháp xác định dạng chuẩn cao nhất 93
2.5. Tách các lược đồ quan hệ 96
2.5.1. Phép tách lược đồ quan hệ 96
2.5.2. Phép tách - kết nổi bào toàn thông tin 96
2.5.3. Thuật toán kiểm tra phép tách - kết nối bào toàn thông tin 98
2.6. Quy trình phân tích, thiết kế cơ sở dữ liệu quan hệ 102
2.6.1. Quá trình phân tích, thiết kế cơ sở dữ liệu 102
2.6.2. Thiết kế mô hình thực thể liên kết
(Mô hình ER (Entity Relationship Model)) 103
2.6.3. Các qui tắc chuyển đỗi từ mô hình ER sang mô hình quan hệ 112
Câu hỏi và bài tập chương 2 116
Chương 3: NGÔN NGỮ KHAI THÁC CSDL QUAN HỆ 125
3.1. Các phép toán quan hệ 125
3.1.1. Các phép toán tập hợp 126
3.1.2. Các phép toán đặc biệt trên quan hệ 132
3.1.3. Các phép toán quan hệ bổ sung 140
3.2. Ngôn ngữ SQL 142
3.2.1. Tổng quan về ngôn ngữ SQL 143
3.2.2. Các kiểu dữ liệu 145
3.2.3. Các lệnh định nghĩa dữ liệu 147
3.2.4. Các lệnh cập nhật cơ sở dữ liệu 155
3.2.5. Lệnh truy vấn cơ sở dữ liệu 159
Câu hỏi và bài tập chương 3 176
Tài liệu tham khảo 179
6
- Chương 1
TỔNG QUAN VỀ cơ SỞ DỮ LIỆU
1.1. Các khái niệm cơ bản về CSDL
7.7.7. Khải niệm về CSDL và vai trò của cơ sở dữ liệu trong các
hệ thống thông tin
Cơ sở dữ liệu đóng vai trò quan trọng ttong việc xử lý các thông tin
bằng máy tính, chúng được sử dụng rộng rãi trong tất cả các lĩnh vực
khác nhau của đời sống con người.
Bản chất của dữ liệu trong máy tính là các sự kiện có ý nghĩa trong
các lĩnh vực của đời sổng và xã hội mà có thể ghi lại được để xử lý. Vì
thế, cơ sở dữ liệu có thể được xem như một tập hợp có cấu trúc các dữ
liệu được lưu trữ ở máy tính cho mục đích nào đó của người sử dụng như
xử lý, tham chiếu, thống kê,...
Theo từ điển Cambridge1, cơ sở dữ liệu là một lượng lớn các thông
tin được lưu trữ trong máy tính sao cho chúng có thể dễ dàng truy xuất và
thay đổi khi cần thiết. Còn theo Thomas & Carolyn (2005), cơ sở dữ liệu
là một tập họp các dữ liệu có liên quan với nhau một cách logic, chúng
được miêu tả, thiết kế sao cho chúng có thể kết xuất ra các thông tin cần
thiết cho yêu cầu nào đó của doanh nghiệp.
Như vậy, ta có thể thấy, cơ sở dữ liệu là một tập họp các dữ liệu có
liên quan với nhau, được tổ chức, cài đặt và lưu trữ trên máy tính sao cho
có nhiều người có thể sử dụng theo yêu cầu của mình.
Ví dụ như chúng ta có thể mô hình hóa các phòng trong một khách
sạn bằng việc lưu trữ các thông tin về phòng, thông tin về việc đặt và trả
phòng, ... sao cho việc lưu trữ các thông tin này sẽ dễ dàng hỗ trợ được
1 http://dictionary.cambridge.org/
7
- việc tìm và đặt phòng của các khách du lịch. Hay như việc tổ chức lưu
trữ các dữ liệu bao gồm các thông tin về sinh viên, điểm thi các môn học
(học phần),... phục vụ cho việc ưa cứu điểm thi, lưu trữ,... để làm mọi
công việc liên quan đến kết quả học tập của sinh viên. Đây chính là việc
tổ chức lưu trữ dữ liệu về sinh viên và các kết quả học tập để phục vụ
cho các mục đích khác nhau cùa nhà trường.
Tập họp các dữ liệu nói ưên có thể được ghi lại bằng việc tạo ra các
bảng biểu, hay sử dụng các phần mềm của máy tính như MS Access,
Excel, hay MS SQL,... Tập các dữ liệu liên quan có ý nghĩa này còn
được coi là một cơ sở dữ liệu.
Để dễ hình dung hơn chúng ta có thể xem xét một cơ sở dữ liệu của
trường đại học bao gồm các thông tin về sịnh viên, môn học và điểm
ưong môi trường đại học. Các bảng dữ liệu dưới đây sẽ thể hiện cấu trúc
của cơ sở dữ liệu và một số dữ liệu mẫu. Cơ sở dữ liệu sẽ được tổ chức ở
5 tệp riêng biệt mà mỗi tệp sẽ lưu trữ các dữ liệu có cùng kiểu. Ví dụ tệp
sinh viên sẽ lưu trữ dữ liệu là các thông tin về sinh viên, tệp môn học sẽ
lưu trữ thông tin về các học phần, còn tệp điểm sẽ lưu trữ các thông tin
về điểm của sinh viên tương ứng với các môn học,...
Đê định nghĩa cơ sở dữ liệu này, chúng ta cần phải chỉ ra cấu trúc
của các bản ghi cho mỗi tệp bằng cách chi tiết hóa các kiểu thông tin
khác nhau để lưu trữ ưên một bản ghi. Ví dụ, ở bảng SINHVIEN bao
gồm các bản ghi sinh viên là tập các dữ liệu phàn ánh về đối tượng sinh
viên, và bao gồm: MaSV, HoTen, LOP, KHOA. Hay như ở bảng ghi các
môn học là bao gồm các thông tin về các học phần: MAMON,
TENMON, SOTC, BOMON, KHOA,... Ngoài ra, chúng ta còn phải chỉ
ra các kiểu dữ liệu cho mỗi bản ghi, ví dụ như Họ tên sinh viên (HoTen)
phải là một chuỗi các kí tự, Mã sinh viên (MaSV) phải là chuỗi kí tự bao
gồm số và chữ cái, điểm phải là kiểu số,...
Lưu ý đó là các bản ghi ở các tệp khác nhau có thể có mối quan hệ
lẫn nhau, ví dụ như dòng dữ liệu của tệp Sinh viên của sinh viên
“Nguyễn Chí Dũng” có liên quan đến bốn dòng dữ liệu ở bàng điểm để
8
- chỉ ra điểm của sinh viên này. Hoặc mỗi bản ghi của tệp điều kiện tiên
quyết có mối quan hệ với các bản ghi của khóa học, cụ thể là: một giá trị
thể hiện khóa học và một giá trị thể hiện điều kiện để học khóa học đó.
Nếu bỏ trống cột MaDK để chỉ ra rằng môn học đó không có điều kiện
học trước môn nào cả, sinh viên có thể đăng kí học ngay từ năm thứ nhất.
SINHVIEN
HoTen MASV LOP KHOA
Nguyễn Duy Trung Anh 2014S0081 1401INFO0111 HTTTKT
Nguyễn Chí Dũng 2012S0085 1401INF00621 HTTTKT
MONHOC
TenMon MaMon SoTC BOMON Khoa
Tin học Đại cương INFO0111 3 Tin học HTTTKT
CTDL và GT INFO1311 3 Tin học HTTTKT
Toán rời rạc MATH1410 3 Toán HTTTKT
Cơ sở dữ liệu INFO1611 2 Tin học HTTTKT
BANGDIEM
MASV MaMon MAHOCKY DIEM DKT1ENQUYET
2014S0081 INFO0111 1401 B MaMon MADK
2014S0081 INFO1311 1402 A INFO0111
2012S0085 MATH1410 1401 c INFO1311 INFOOH1
2012S0085 INFO1611 1402 A MATH1410
2012S0085 INFO0111 1401 A INFO1611 INFO0111
2012S0085 INFO1311 1402 B
Vai trò của CSDL trong hệ thống thông tin
Trong một hệ thống thông tin, CSDL đóng vai trò rất quan trọng.
Nó còn được coi là “kho chứa dữ liệu” bao gồm các thông tin “thô” để hệ
9
- thống sử dụng các công cụ khác nhau khai thác nó nhàm đưa ra các
thông tin theo yêu cầu cho mục đích của người sừ dụng. Ví dụ, các hệ
thống thông tin địa lý có thể lưu trữ và phân tích các bản đồ, các dữ liệu
về thời tiết và các ảnh vệ tinh thông qua các cơ sở dữ liệu đa phương
tiện. Bằng cách sử dụng các công cụ khai thác và phân tích hệ thống
thông tin địa lý, thông tin cho phép người sử dụng có các thông tin quyết
định về thời tiết của vùng miền, cành báo về lũ lụt,... Hay các kỹ thuật
tìm kiếm trong cơ sở dữ liệu của hệ thống tìm kiếm website đang được
áp dụng cho World Wide Web có thể cung cấp việc tìm kiếm các thông
tin cần thiết cho người sử dụng bằng cách duyệt qua Internet.
Việc tổ chức thiết kế và duy trì các thông tin trong một hệ thống
được thực hiện bởi bộ phận công nghệ thông tin (CNTT) ữong một tổ
chức. Công việc này thường bao gồm: tổ chức lưu trữ trong các thiết bị
lưu trữ, cài đặt các phần mềm ứng dụng, và tổ chức các cơ sở dữ liệu.
Việc thiết kế một ứng dụng mới cho một cơ sở dữ liệu đã có hoặc một cơ
sở dữ liệu hoàn toàn mới được bắt đầu bằng pha đặc tà yêu càu và phân
tích yêu cầu. Sau đó, các yêu cầu sẽ được chuyển một cách chi tiết sang
pha thiết kế khái niệm thể hiện trên một số công cụ thiết kế sao cho nó dễ
dàng chuyển qua việc thể hiện trên cơ sở dữ liệu (thường là dựa trên mô
hình quan hệ thực thể - sẽ được đề cập ở các chương sau). Sau đó, việc
thiết kế sẽ được dịch sang mô hình logic mà nó dễ dàng cài đặt ở một hệ
quản trị cơ sở dữ liệu. Giai đoạn cuối cùng sẽ là thiết kế vật lý và lúc này
việc thiết kế cơ sở dữ liệu là sự thể hiện của dữ liệu thực, và phản ánh
các trạng thái khác nhau của thế giới thực. Cụ thể các bước xây dựng
' CSDL được tiến hành như sau:
Bước 1: Xác định các yêu cầu. Thông thường tại bước này cần tạo
ra một bản tài liệu chỉ ra các đặc tả yêu cầu của hệ thống thông tin.
Bước 2: Xác định mồ hình với các kiểu dữ liệu và quan hệ tương ứng.
Bước 3: Xác định các ràng buộc cho dữ liệu để đảm bảo tính toàn
vẹn của hệ thống.
Bước 4: Xác định việc cài đặt ở mức vật lý đối với các quan hệ.
10
- Bước 5: Định nghĩa các giao diện người dùng tương ứng với từng
nhiệm vụ cụ thể của hệ thống thông tin.
Bước 6: Cài đặt CSDL cho hệ thống.
Ở bước 1, các đặc tả yêu càu về mặt dữ liệu của các chức năng
trong hệ thống cần phải được xác định rõ để làm tiền đề cho các bước
sau. Người thiết kế nên xây dựng một bảng mô tả các chức năng của hệ
thống với việc sử dụng các yêu cầu về dữ liệu tương ứng. Ví dụ như chức
năng tìm kiếm điểm của sinh viên sẽ đòi hỏi việc truy cập vào các dữ liệu
về môn học và điểm cùa môn học đó một cách tương ứng (đối với đối
tượng tìm kiếm sinh viên).
Ví dụ: Các yêu cầu chức năng cùa cơ sở dữ liệu quản lý dự án
• Nhập liệu
Dữ liệu của hệ thống sẽ được nhập trực tiếp từ các mẫu biểu của dự
án; các dữ liệu có thể sửa đổi, xóa bỏ, thay thế các mẫu biểu; hoặc có thể
in ấn trực tiếp từ mẫu biểu.
• Lưu trữ
Các thông tin về các sản phẩm kinh doanh của công ty sẽ được lưu
trữ lại; có thể bao gồm: Thông tin khách hàng; thông tin liên quan đến
kinh doanh và triển khai phần mềm.
• Tìm kiếm
Các thông tin được tìm thông qua mã dự án hoặc tên dự án.
• Thống kê bảo cảo
Thống kê số lượng khách hàng đặt hàng trong một khoảng thời
gian; thống kê những họp đồng đã hoàn thành trong một khoảng thời
gian; báo cáo về tình hình doanh thu và tiến độ triển khai hợp đồng.
Ở bước 2, các mô hình thực thể liên kết được tạo ra cho các thực
thể quàn lý. Tại đó, các mối ràng buộc logic giữa các thực thể cũng được
11
- chỉ ra. Trong bước này, việc chuyển đổi từ mô hình thực thể liên kết sang
mô hình quan hệ cũng được tiến hành với sự chuẩn hóa về mặt dữ liệu.
Chi tiết hóa của bước này được thể hiện ở chương 2 của giáo trình này.
Việc xác định các ràng buộc cho các dữ liệu được thiết lập ở bước 3
của quá trình. Việc xác định các ràng buộc này nhằm mục đích tránh sự
“nhập nhằng” hoặc “không chuẩn” khi người sử dụng nhập dữ liệu cho
hệ thống. Ví dụ như, việc quy định ràng buộc cho khoảng thời gian là 12
tháng là tối đa và 1 tháng là tối thiểu cho mỗi hợp đồng dự án cho phép
người sử dụng chỉ được nhập dữ liệu đối với cột này trong khoảng từ
(1-12).
Ở bước 4, xác định việc cài đặt ở mức vật lý đối với các quan hệ,
các yêu cầu về mặt cấu trúc vật lý cho CSDL sẽ được xác định. Thông
thường các quy định về kiểu, độ rộng trường, cách thức định dạng,... sẽ
được thể hiện ở bước này.
Ví dụ: Bảng dưới đây mô tả việc cài đặt vật lý của bảng dữ liệu
HOPDONG.
STT Tên trường Kiểu Độ rộng Ràng buộc Môtả
1 MaHD nvarchar 50 Primary key Mã hợp đồng
2 TenHD nvarchar 50 Not null Tên hợp đồng
3 NgayLap date Ngày lập
4 MaKH nvarchar 50 Foreign key Mã khách hàng
5 MaNV nvarchar 50 Foreign key Mã nhân viên
Việc định nghĩa các mẫu biểu nhập dữ liệu sẽ được chỉ ra ở bước 5.
Các quy định về số lượng các mẫu biểu, cách bố trí các phàn tử và quy
cách trình bày mẫu biểu cũng được thể hiện ở bước này.
Ví dụ về giao diện của mẫu biểu nhập các hợp đồng cho bảng dữ
liệu HOPDONG.
12
- QUẢN LÝ HỢP ĐỒNG
THOÁT
Ở bước 6, việc cài đặt cụ thể CSDL đối với một hệ quản tộ CSDL
được chỉ ra. Một số hệ quản trị thông thường có thể dùng là: MS
ACCESS; My SQL; MS SQL server; Oracle,...
1.1.2. Đặc điểm và tỉnh chất của CSDL
Việc sử dụng cụm từ cơ sở dữ liệu của định nghĩa ở ưên mang ý
nghĩa tổng quát. Tuy nhiên, ứên thực tế cụm từ cơ sở dữ liệu thường được
hiểu theo nghĩa chặt hơn. Nghĩa là chúng còn phải có một số tính chất sau:
• Một cơ sở dữ liệu thường biểu thị một phần nào đó của thế giới
thực. Ví dụ như hoạt động kinh doanh của một công ty, các giao dịch của
một ngân hàng, các hoạt động tác nghiệp của công ty vận chuyển,... Tất
cả những thay đổi của các hoạt động nói trên ưong thế giới thực phải
được phản ánh một cách trung thực vào cơ sở dữ liệu mà nó đang lưu trữ,
và những thông tin này sẽ tạo thành một không gian cơ sở dữ liệu hoặc là
một “thế giới nhỏ” (Xem hình 1.1).
13
- Npxri SŨ Ihmýrià Lập
Hình 1.1: Không gian CSDL
• Tập hợp dữ liệu trong cơ sở dữ liệu phải có sự liên kết với nhau
một cách logic và mang một ý nghĩa nào đó để phục vụ cho một mục
đích nhất định. Nghĩa là, một cơ sở dữ liệu không phải là một tập hợp dữ
liệu tuỳ tiện.
• Một cơ sở dữ liệu được thiết kế và được sử dụng cho một mục
đích nhất định của một hay nhiều người dùng và nó được sử dụng kèm
theo một số ứng dụng nào đó phục vụ cho 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ó nguồn cung cấp dữ liệu được
lấy từ thế giới thực. Nó được sử dụng để tương tác với các sự kiện của
thế giới thực thông qua người dùng là đối tượng mà quan tâm đế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 (ví dụ như cơ sở dữ
liệu phục vụ việc quản lý nhân sự ở một trường), và có những cơ sở dữ
14
- 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ý điện tiêu dùng). 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 trong những đặc điểm của việc thiết kế cơ sở dữ liệu khác biệt
với việc tổ chức dữ liệu riêng lẻ của lập trình truyền thống là việc tổ chức
dữ liệu thành một cơ sở dữ liệu thống nhất để cho nhiều người dùng có
thể sử dụng với nhiều mục đích khác nhau. Ví dụ, ở lập trình truyền
thống, một người dùng (nhân viên phòng đào tạo) có thể có tệp điểm và
thông tin của sinh viên, các ứng dụng có tác dụng in bảng điểm sinh viên
và nhập điểm mới khi cần. Tuy nhiên, người dùng ở phòng kế toán thì lại
có các thông tin về sinh viên và học phí cần đóng của người sinh viên đó.
Chính vì không có sự kết nối giữa hai tệp dữ liệu nói trên, nên dẫn đến
việc chứng nhận sinh viên đã đóng học phí hay chưa để có đủ điều kiện
dự thi là hoàn toàn phải làm thủ công và tốn thời gian tra cứu. Đồng thời,
mặc dù cà hai cùng quan tâm đến dữ liệu sinh viên nhưng chúng lại ở các
tệp hoàn toàn khác nhau, điều này dẫn đến việc dư thừa trong việc lưu
trữ dữ liệu, tốn thời gian cập nhật dữ liệu ở các tệp dữ liệu khác nhau.
Khác hẳn với việc xử lý tệp dữ liệu truyền thống, việc lưu trữ dữ
liệu trong một cơ sở dữ liệu thống nhất cho phép chúng ta định nghĩa về
dữ liệu một lần nhưng cho nhiều người dùng truy cập và sử dụng nó theo
từng ứng dụng mà họ cần. Nói một cách khác, trong cơ sở dữ liệu, tên
hoặc nhãn của dữ liệu được định nghĩa một lần và chúng sẽ được sử dụng
lặp nhiều lần thông qua các truy vấn và ứng dụng. Một cách chi tiết
chúng sẽ được thể hiện qua các đặc điểm chính sau:
a. Cơ sở dữ liệu phải tự mô tả được bản chất của hệ thống cơ sở
dữ liệu.
b. Có sự độc lập với chương trình và dữ liệu cũng như sự trừu
tượng hóa về mặt dữ liệu.
c. Hỗ trợ các quan điểm (hướng nhìn) khác nhau về mặt dữ liệu.
d. Chia sẻ dữ liệu với nhiều người dùng.
15
- Mô tả bản chất của hệ thống cơ sở dữ liệu
Những đặc điểm cơ bản nhất của cơ sở dữ liệu không chỉ phản ánh
về mặt dữ liệu, mà còn định nghĩa hoặc mô tả hoàn chỉnh cấu trúc và các
ràng buộc lẫn nhau của các dữ liệu trong hệ thống. Định nghĩa này sẽ
được lưu trữ trong danh mục của hệ quản trị cơ sở dữ liệu (cấu trúc của
tệp, kiểu và định dạng của từng phần tử dữ liệu, các ràng buộc của dữ
liệu) và các thông tin này được gọi là không gian dữ liệu - hệ cơ sở dữ
liệu (Hình 1.2). Danh mục sẽ được sử dụng bởi hệ quàn trị CSDL và
người dùng khi họ cần đến cấu trúc của CSDL. Với lập trình truyền
thống, mỗi ngôn ngữ lập trình sẽ có một cách định nghĩa cấu trúc tệp
(file) dữ liệu riêng, còn đối với hệ quản trị cơ sở dữ liệu thì nó hoàn toàn
có thể truy cập vào các cơ sở dữ liệu khác nhau (ngân hàng, trường
học,...) nhờ việc trích xuất thông tin định nghĩa từ danh mục và dùng các
định nghĩa này trong các ứng dụng của nó.
Hình 1.2 là ví dụ chi ra một số dữ liệu nhập cho danh mục, các định
nghĩa này được đặc tả bởi người thiết kế và lưu ở danh mục. Khi có yêu
cầu truy cập ví dụ như tên của Sinh viên, hệ quản trị CSDL sẽ tìm trong
danh mục để xác định cấu trúc, số vị trí, định dạng, kiểu,... của bản ghi
sinh viên.
! I
¡HệCSDL iI
I
I Người sử dụng/Lập trình viên i
II
II
I
I
I
I
-
Chương trình ưng dụng/Truy vân
iỊ
iI
i
I
Hình 1.2: Hệ cơ sỡ dữ liệu và môi trường của nó
16
- 1.1.3. Khải niệm về hệ CSDL
Để dẫn đến khái niệm hệ CSDL, trước hết chúng ta cần làm sáng tỏ
khái niệm về việc tổ chức khai thác có hiệu quả các dữ liệu trong cơ sở
dữ liệu. Một nhóm chương trình trong máy tính có chức năng tạo ra, duy
trì và khai thác một cơ sở dữ liệu được gọi là hệ quản trị CSDL.
Như vậy, hệ quản trị CSDL là một phần mềm mà cho phép người
dùng định nghĩa, tạo, duy trì hoạt động và điều khiển việc truy cập vào
CSDL. Phần mềm này có thể tương tác với các chương trình ứng dụng
của người dùng và CSDL thông qua các chức năng sau:
• Nó cho phép người dùng định nghĩa CSDL thông qua ngôn ngữ
định nghĩa dữ liệu (DLL - Data Definition Language). Tại đây, người
dùng có thể đặc tả kiểu dữ liệu, cấu trúc và các ràng buộc của các dữ liệu
đang được lưu trữ trong CSDL.
• Nó cho phép người dùng xử lý dữ liệu với các thao tác chèn cập
nhật, xóa,... thông qua ngôn ngữ khai thác dữ liệu (DML - Data
Manipulation Language). Ngôn ngữ chuẩn để khai thác CSDL quan hệ
còn được biết đến với tên gọi là SQL (Structured Query Language).
• Nó cung cấp các quyền truy cập vào CSDL như: Hệ thống bảo
mật để định danh khi truy cập vào CSDL; hệ toàn vẹn để duy trì việc lưu
trữ dữ liệu; hay hệ thống điều khiển việc chia sẻ tài nguyên trong CSDL;
nhật kí việc người dùng truy cập;...
Hệ cơ sở dữ liệu được thiết kế để quản lý một khối lượng lớn thông
tin của một tổ chức bằng cách tổ chức các dữ liệu đầu vào thành cơ sở dữ
liệu; và tạo ra một môi trường giúp cho người sử dụng có thể dễ dàng
quản lý và khai thác các thông tin trong cơ sở dữ liệu.
Như vậy, có thể nói rằng, hệ cơ sở dữ liệu bao gồm hệ quản trị
CSDL và cơ sở dữ liệu được cài đặt trong hệ quản trị này (xem mô tả ở
Hình 1.2). Người dùng tương tác với CSDL thông qua một số chương
trình ứng dụng băng cách sử dụng ngôn ngữ SQL để tạo ra các thông tin
theo yêu cầu.
17
- Lịch sử của hệ quăn trị CSDL
Trước năm 1960, các dữ liệu được lưu trữ dưới dạng tệp (Hình
1.3). Một trong các hệ thống quàn lý dữ liệu ở dạng tệp (Tập tin) ữong hệ
thống khá nổi tiếng đó là dự án bay lên mặt trăng của tàu vũ trụ Apollo.
Hình 1.3: Ví dụ về các tệp lưu trữ dữ liệu
Vào giữa năm 1960, IBM kết hợp với NAA (North American
Aviation - Hàng không Bắc Mỹ) để phát triển GUAM (Generalized
Update Access Method) thành IMS (Information Management System).
Đây có thể coi là phiên bản thương mại đầu tiên của hệ quản trị CSDL.
Vào năm 1970, E. F. Codd (làm việc tại phòng nghiên cứu của
IBM) sinh ra mô hình để có thể lưu trữ dữ liệu với dạng bảng quan hệ với
các bản ghi (hệ quản trị cơ sở dữ liệu quan hệ). Trong bảng quan hệ này,
các bản ghi có mối liên kết với nhau thông qua khóa (xem bảng dưới).
Login Ho Ten
Key Dungnc Nguyen Chi Dung
Tanh Nguyen Duy Trung Anh
Kitty Amber Smith
J Login Address
1 Dungnc chidungnc@yahoo.com
18
nguon tai.lieu . vn