Xem mẫu

  1. ỉĩ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Ê
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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