Các kiến thức nền tảng về cơ sở dữ liệu
Trang 1Bài 1 Kiến thức nền tảng về Cơ sở dữ liệu Mục tiêu của bài học:
Cuối bài học này, bạn có thể
Giải thích vì sao chúng ta cần có cơ sở dữ liệu
Giải thích sự phát triển của các hệ quản trị cơ sở dữ liệu
Liệt kê các mô hình cơ sở dữ liệu khác nhau
Mô tả các khái niệm cơ bản liên quan đến cơ sở dữ liệu
Mô tả các khái niệm cơ bản liên quan đến cơ sở dữ liệu quan hệ
Toàn vẹn thực thể (entity integrity)
Khóa chính (primary key)
Khóa ngoại (foreign key)
Các mối quan hệ và bậc của các mối quan hệ (relation and its degree)
Mô tả tóm tắt giới thiệu về SQL
Giới thiệu
Các tổ chức thường xuyên phải duy trì một khối lượng lớn dữ liệu, chúng là kết quả tạo ra từ các
hoạt động thường ngày Một cơ sở dữ liệu (CSDL) là dạng được sắp xếp của các dữ liệu như vậy Một CSDL có thể chứa một hoặc nhiều mục thông tin có liên quan đến nhau gọi là các bản ghi (record).
Bạn có thể hình dung CSDL là một tập hợp dữ liệu cho phép chúng ta đặt ra các câu hỏi với nó
Ví dụ như, “Số điện thoại và địa chỉ của 5 bưu điện gần trường nhất là gì?”, hay “Chúng ta có quyển sách nào về món ăn có lợi cho sức khỏe trong thư viện không? Nếu có thì chúng nằm ở những tủ sách nào?”, hay “Hãy cho tôi xem hồ sơ nhân viên và các số liệu kinh doanh của 5 nhân viên kinh doanh giỏi nhất trong quý này, nhưng không cần xem địa chỉ chi tiết của họ”
Bài này sẽ đưa ra các khái niệm liên quan đến các CSDL và các hệ quản trị CSDL, khám phá các
mô hình CSDL khác nhau và giới thiệu ngôn ngữ SQL
1.1 Vì sao Cơ sở dữ liệu là cần thiết?
Các CSDL được dùng để lưu trữ dữ liệu một cách có tổ chức và hiệu quả Một CSDL cho phép chúng ta quản lý dữ liệu một cách nhanh chóng và dễ dàng Ví dụ, một công ty có thể lưu trữ thông tin chi tiết về các nhân viên công ty trong nhiều CSDL khác nhau Vào bất cứ thời điểm nào, chúng ta có thể có thể truy xuất thông tin từ CSDL, thêm dữ liệu mới vào các CSDL và tìm kiếm dữ liệu theo 1 số tiêu chí nào đó trong các CSDL này
1.1.1 Tính bền vững trong lưu trữ dữ liệu
Chúng ta có thể lưu trữ dữ liệu đơn giản bằng các tập tin một cách thủ công Ví dụ, một trường đại học phải lưu giữ thông tin về các giáo viên, các sinh viên, các môn học và các kì kiểm tra Thông tin chi tiết về giáo viên có thể được lưu trong Hồ sơ Nhân viên (Staff Register), thông tin
Trang 2chi tiết về sinh viên được nhập vào Hồ sơ Sinh viên (Student Register) và tương tự như vậy cho các thông tin khác
Tuy nhiên, dữ liệu được lưu ở dạng này không phải là bền vững Các bản ghi trong những tập tin thủ công như vậy chỉ có thể được duy trì trong vài tháng hoặc vài năm mà thôi Các hồ sơ và tập tin dạng này rất cồng kềnh, tốn không gian lưu trữ và không thể lưu giữ cho nhiều năm
1.1.2 Vấn đề lưu trữ tập tin
Phương pháp thủ công lưu trữ và cập nhật thủ công sử dụng tập tin có một số nhược điểm Xét công việc nhập điểm của sinh viên một cách thủ công Mỗi giáo viên đánh giá các bài làm và ghi điểm theo mã sinh viên Sau đó, giáo vụ sẽ thu lại các bảng chấm điểm của từng môn
Để soạn ra bảng điểm của một sinh viên, giáo vụ phải tìm trong tất cả bảng chấm điểm của các môn để tìm các điểm số mà sinh viên đó đã đạt được Các điểm số sau đó được ghi vào các ô thích hợp trong bảng điểm của sinh viên này Giáo vụ cũng phải ghi luôn những điểm số này vào
hồ sơ sinh viên trong tập hồ sơ của trường Quy trình này thật tẻ nhạt, tốn thời gian và có khả năng xảy ra sai sót.
1.1.3 Lợi ích của Cơ sở dữ liệu được quản lý bằng máy tính
Thông tin hay dữ liệu có thể được lưu trữ dưới dạng các CSDL được máy tính quản lý Một hệ thống CSDL là hữu ích vì nó cho phép ta kiểm soát dữ liệu môt cách tập trung Sau đây là một số lợi ích của việc sử dụng một hệ thống CSDL tập trung:
Giảm lượng dữ liệu dư thừa trong dữ liệu được lưu trữ
Trong một cơ quan, một số phòng ban thường lưu giữ cùng một dữ liệu Việc duy trì một CSDL tập trung sẽ giúp các phòng ban có thể truy cập cùng một dữ liệu Do vậy, sự trùng lặp
dữ liệu, hay ‘dư thừa dữ liệu’ sẽ được loại bỏ
Không còn sự thiếu nhất quán trong dữ liệu
Do chỉ có một CSDL trung tâm, ta có thể giao cho một nhân viên nhiệm vụ cập nhật dữ liệu
định kì Giả sử, ông Larry Finner - một nhân viên cơ quan được thăng chức từ Quản lí lên
Quản lí cao cấp, ta chỉ cần sửa lại một nơi trong CSDL Kết quả là, sự không nhất quán về dữ
liệu được giảm đi
Dữ liệu được lưu trữ có thể được chia xẻ
Một CSDL trung tâm có thể đặt tại một máy chủ, chia xẻ cho một số người dùng chung Theo cách này, bất cứ lúc nào tất cả mọi người đều có thể truy cập đến thông tin dùng chung và được cập nhật
Có thể thiết lập và tuân theo các chuẩn mực
Việc giám sát tập trung đảm bảo việc có thể thiết lập và tuân theo một chuẩn mực nhất định
về cách biểu diễn thông tin Ví dụ, tên của một nhân viên phải được biểu diễn dưới dạng ‘Mr Larry Finner’, trong đó
Danh xưng (Mr.)
Tên (Larry)
Trang 3 Họ (Finner)
Chắc chắn rằng tất cả tên lưu trong CSDL sẽ theo cùng một định dạng nếu như các chuẩn mực được thiết lập theo cách này
Có thể duy trì được tính toàn vẹn dữ liệu
‘Duy trì tính toàn vẹn dữ liệu’ là đảm bảo sự chính xác trong CSDL Ví dụ, khi một nhân viên từ chức và rời khỏi cơ quan, xét trường hợp phòng Kế toán đã cập nhật CSDL của mình nhưng phòng Nhân sự lại chưa cập nhật các hồ sơ của họ Trong trường hợp này, dữ liệu trong hồ sơ của cơ quan là không chính xác
Việc giám sát tập trung CSDL giúp ta tránh được những sai sót này Chúng ta có thể chắc chắn là khi một bản ghi được xóa khỏi CSDL, tất cả các bản ghi liên quan trong các bảng khác cũng được xóa
Có thể thực hỉện việc bảo mật dữ liệu
Trong một hệ thống CSDL tập trung, không phải ai cũng được quyền được sửa đổi CSDL Quyền hạn này chỉ được giao cho một cá nhân có toàn quyền kiểm soát đối với CSDL Người này được gọi là Quản trị Cơ sơ dữ liệu hay DBA (Database Administrator)
DBA có khả năng thực hiện việc bảo mật bằng cách thiết đặt những giới hạn cho việc truy cập dữ liệu Tùy thuộc vào quyền được cấp cho mình, người sử dụng mới có thể thêm, sửa hay truy vấn dữ liệu
1.2 Sự phát triển của các hệ quản trị CSDL – toàn cảnh lịch sử
Một Hệ quản trị CSDL (DBMS) có thể được định nghĩa như một tập hợp các bản ghi có liên quan
và một bộ chương trình để truy cập và thao tác trên các bản ghi đó
Một Hệ quản trị CSDL cho phép ta nhập, lưu trữ và quản lý dữ liệu Vấn đề của các gói phần mềm DBMS trước đây là dữ liệu được lưu trữ ở dạng các tập tin ‘phẳng’ (flat file) Như vậy, thông tin về các đối tượng khác nhau được lưu trữ riêng biệt trong các tập tin vật lý khác nhau
Do đó, liên kết giữa các đối tượng này, nếu có, phải được giữ trong một tập tin vật lý Vì vậy, một gói phần mềm đơn sẽ bao gồm quá nhiều tập tin và phải lập trình rất tốt để tích hợp chúng vào một hệ thống duy nhất
Giải pháp cho các vấn đề này là xây dựng một hệ thống CSDL tập trung Trong một CSDL tập trung, CSDL được lưu tại vị trí trung tâm Tất cả mọi người đều có thể từ máy của họ truy cập dữ liệu lưu tại vị trí trung tâm Một hệ thống CSDL trung tâm lớn có thể chứa tất cả dữ liệu liên quan đến các nhân viên Phòng Kế toán và phòng Nhân sự sẽ dùng các chương trình thích hợp để truy cập thông tin cần thiết Các chương trình này hoặc toàn bộ ứng dụng có thể nằm trên máy tính làm việc của các cá nhân
1.2.1 Các mô hình Cơ sở dữ liệu
Chúng ta có thể phân biệt các CSDL dựa trên chức năng và mô hình dữ liệu Một mô hình dữ liệu
mô tả cách thức lưu trữ dữ liệu trong một vật chứa (container) và cách thức truy xuất dữ liệu từ vật chứa đó
Việc phân tích và thiết kế các mô hình CSDL là cơ sở của sự phát triển các hệ cơ sở dự liệu
Trang 41.2.2 Mô hình Cơ sở dữ liệu phân cấp hay mô hình Cơ sở dữ liệu đa cấp
Mô hình dữ liệu phân cấp được phát triển để mô hình hóa các loại cơ quan phân cấp trong thế giới thực Hình 1.1 minh họa một lược đồ đơn giản cho một giản đồ phân cấp
a DEPARTMENT: Research Administration
EMPLOYEE: Smith Max John Grace Elite James Frank
PROJECT Product A Product B Computerization New benefits
Hình 1.1: Giản đồ phân cấp
Trong mô CSDL hình phân cấp, Department (phòng ban) được xem như là gốc, nốt cha cao nhất của cây phân cấp Các nốt dữ liệu Project và Employee là các nốt con, nốt lá trong mô hình cây phân cấp Một đường đi, xuất phát từ một nốt con bên trái qua nốt cha duyệt sang các nốt khác, lặp đi lặp lại tiến trình này cho đến khi hết tất cả các nốt thì sẽ xác định được cấu trúc phân cấp của cây
Một nốt cha có thể có nhiều nốt con
Một nốt con chỉ có một nốt cha
Từ hình vẽ, ta có thể thấy rõ là trong một phòng ban, có thể có nhiều nhân viên và một phòng ban
có thể có nhiều dự án
Ưu điểm của mô hình phân cấp
Các ưu điểm của mô hình phân cấp là:
1 Dữ liệu được giữ trong một CSDL dùng chung, do đó việc chia xẻ dữ liệu trở nên dễ dàng hơn, và hệ quản trị CSDL sẽ cung cấp cũng như thắt chặt việc bảo mật
DEPARTMENTD_NAMED_NUMBERMGRNAMEMGRSTARTDATED_NUMBED_NUMBERMGRNAMEMGRSTARTDATERMGRNAMEMGRSTARTDATEMGRMGRNAMEMGRSTARTDATENAMED_NUMBERMGRNAMEMGRSTARTDATEMGRMGRNAMEMGRSTARTDATESTARMGRNAMEMGRSTARTDATETDATED_NUMBERMGRNAMEMGRSTARTDATE
PROJECTPNAMEPNUMBERPLOCA
TION
EMPLOYEENAMED_NUMBERMGRNAMEMGRSTARTDATESSNBDATED_NUMBERMGRNAMEMGRSTARTDATEADDRMGRNAMEMGRSTARTDATEED_NUMBERMGRNAMEMGRSTARTDATESS
Trang 52 Hệ quản trị CSDL mang lại sự độc lập dữ liệu, điều làm giảm bớt nhân lực và chi phí trong việc bảo trì chương trình
3 Mô hình này rất hiệu quả khi CSDL chứa một khối lượng lớn dữ liệu Ví dụ, một hệ thống tài khoản khách hàng trong một ngân hàng là phù hợp với mô hình phân cấp bởi vì mỗi tài khoản
là đầu mối của một số giao dịch
1.2.3 Mô hình CSDL mạng
Cùng với mô hình phân cấp, mô hình CSDL mạng (network model) là các mô hình dữ liệu chính
để hiện thực rất nhiều hệ quản trị CSDL thương mại Trong mô hình CSDL mạng, cấu trúc dữ liệu và ngôn ngữ truy vấn được định nghĩa và xây dựng bởi CODASYL (Conference on Data Systems Language – Hội thảo về Ngôn ngữ của các hệ thống dữ liệu)
Giản đồ mạng lưới (sơ đồ tổ chức khái niệm của toàn bộ CSDL) bao gồm định nghĩa tên của CSDL, loại bản ghi của từng bản ghi, và các thành phần cấu tạo nên các bản ghi đó
Một giản đồ con (sub-schema) (phần của CSDL mà các chương trình ứng dụng nhìn thấy được,
sẽ thực tế tạo ra các thông tin cần thiết từ dữ liệu được chứa trong CSDL) cho phép các chương trình ứng dụng truy cập vào các dữ liệu được yêu cầu từ CSDL
Một ngôn ngữ cho phép người quản trị CSDL định nghĩa dữ liệu trong CSDL và thao tác các dữ liệu đó
Hình 1.2: Mô hình mạng lưới
Mô hình mạng lưới như trên minh họa một loạt các quan hệ một-nhiều
1 Một đại diện bán hàng có thể ghi nhiều hóa đơn, nhưng mỗi hóa đơn chỉ do một đại diện bán hàng ghi
2 Một khách hàng có thể mua nhiều lần vào các dịp khác nhau Một khách hàng có thể có nhiều hóa đơn, nhưng mỗi hóa đơn chỉ thuộc về một khách hàng
3 Một biên lai hóa đơn có thể có nhiều dòng hóa đơn (INVLINE), nhưng một dòng hóa đơn chỉ nằm trong một hóa đơn
4 Một sản phẩm có thể xuất hiện trong nhiều dòng hóa đơn, nhưng mỗi dòng hóa đơn chỉ chứa một sản phẩm
Product
Invline
Trang 6Giờ chúng ta sẽ thảo luận các thành phần của ngôn ngữ được dùng với các mô hình mạng lưới Các thành phần này là:
1 Ngôn ngữ Định nghĩa Dữ liệu (DDL) được dùng để tạo và gỡ bỏ các CSDL và các đối
tượng CSDL Nó cho phép người quản trị CSDL định nghĩa ra các thành phần của lược đồ
2 Ngôn ngữ định nghĩa dữ liệu trong lược đồ con (Sub-schema DDL) cho phép người quản
trị CSDL định nghĩa ra các thành phần của CSDL
3 Ngôn ngữ Thao tác Dữ liệu (DML), cho phép người dùng thêm, lấy ra và sửa đổi thông tin
trong CSDL Tất cả những người sử dụng CSDL dùng những lệnh này trong hoạt động thường ngày của CSDL
4 Ngôn ngữ Kiểm soát Dữ liệu (DCL) được dùng để quản lí quyền truy cập trên CSDL và các
thành phần của CSDL
Cấu trúc cơ bản
Mô hình phân cấp là một trường hợp đặc biệt của mô hình mạng lưới Tuy nhiên, thay vì dùng cấu trúc cây chỉ có một nút cha, mô hình mạng lưới dùng lý thuyết tập hợp để đưa ra mô hình phân cấp dạng cây với ngoại lệ là các bảng con được phép có nhiều hơn một cha
Trong mô hình CSDL mạng, một mối quan hệ được gọi là một bộ (set) Mỗi bộ bao gồm ít nhất
hai loại bản ghi: bản ghi chủ, tương đương với nút cha trong mô hình phân cấp, và bản ghi thành viên, tương đương với nút con trong mô hình phân cấp
Các ưu điểm của một cấu trúc như vậy được chỉ ra như sau:
1 Việc thiết lập các mối quan hệ trong mô hình CSDL mạng lưới dễ hơn là trong mô hình phân cấp
2 Mô hình này tuân thủ chặt chẽ tính toàn vẹn dữ liệu của CSDL
3 Mô hình này đủ để đạt được sự độc lập dữ liệu
Các nhược điểm được chỉ ra như sau:
1 Khó thiết kế các CSDL theo mô hình này
2 Lập trình viên phải rất quen thuộc với các cấu trúc bên trong để truy xuất CSDL
3 Mô hình này cho ta một môi trường truy cập dữ liệu theo cách duyệt Do đó, để di chuyển từ
A đến E trong chuỗi A-B-C-D-E, ta phải lần lượt đi qua B, C và D để đến được E
1.2.4 Mô hình quan hệ
Một nhà khoa học tại trung tâm nghiên cứu của công ty IBM, Tiến sĩ E F Codd, không hài lòng với cách thức mà các hệ quản trị CSDL thời đó xử lý các khối lượng dữ liệu lớn Ông thấy cần phải áp đặt các quy luật và nguyên tắc toán học để xử lý các vấn đề của các mô hình trước đó, ví
dụ như:
Sự toàn vẹn dữ liệu
Sự dư thừa dữ liệu
Trang 7Vào tháng 6/1970, ông đăng bài báo với tựa đề ‘Một Mô hình Dữ liệu Quan hệ cho các Ngân hàng Dữ liệu lớn được chia xẻ’ (‘A Relational Model of Data for large Shared Databanks’) Tại đây, ông đã giới thiệu mô hình CSDL quan hệ Mô hình này dựa trên hai ngành toán học – ‘Lý thuyết Tập hợp’ và ‘Lô gíc Vị từ Thứ tự’ Bài báo này liệt kê ra 12 nguyên tắc mà một hệ quản trị CSDL quan hệ phải thỏa mãn
Thuật ngữ ‘Relation’ được dẫn xuất từ lý thuyết tập hợp của toán học Các đặc tính cơ bản của
mô hình quan hệ được trình bày như sau
Trong mô hình quan hệ, dữ liệu được lưu trữ trong các bảng, dưới dạng các hàng và cột Để hiểu
được mô hình quan hệ, chúng ta hãy xét hai bảng sau
Bảng 1.1: Bảng Sinhviên
Mã Sinh viên Điểm đạt được
Table 1.2: Bảng Điểm
Bạn sẽ nhận thấy rằng có hai bảng khác nhau được trình bày ở đây Trong bảng Điểm, chúng ta
có Mã sinh viên và Điểm đạt được của các sinh viên Trong bảng Sinhviên, chúng ta có Mã Sinh
viên và Tên sinh viên Để xem tên các sinh viên và điểm tương ứng của các bạn có điểm số lớn
hơn 50, ta phải thực hiện hai bước: Đầu tiên, phải xác định Mã sinh viên của các sinh viên đạt điểm trên 50 trong bảng Điểm Tiếp đó, so trùng mã sinh viên để tìm tên của các sinh viên trong bảng Sinhviên Kết quả được liệt kê trong bảng 1.3.
Bảng 1.3: Hiển thị Tên Sinh viên và Điểm
Mã Sinh viên Tên Sinh viên
Trang 8Chúng ta có thể thu được thông tin này nhờ vào hai sự việc: Thứ nhất, có một cột chung giữa hai bảng, đó là Mã Sinh viên Sau đó, dựa trên cột này, các bản ghi trong hai bảng khác nhau được khớp lại và ta thu được thông tin được yêu cầu
Trong mô hình quan hệ, dữ liệu được lưu trong các bảng Mỗi bảng trong CSDL có một tên duy
nhất xác định nội dung của nó Mỗi bảng có thể được định nghĩa là giao của các hàng và các cột Trong ví dụ trên đây, Mã sinh viên và Tên Sinh viên được lưu trong một bảng gọi là bảng Sinh viên
Ưu điểm của Mô hình Quan hệ
Mô hình CSDL quan hệ giúp lập trình viên có thời gian tập trung vào khía cạnh lô-gíc của CSDL thay vì phải lưu tâm đến khía cạnh lưu trữ vật lý Một trong các lý do khiến cho CSDL quan hệ trở nên phổ biến là sự uyển chuyển trong việc truy vấn Phần lớn các CSDL quan hệ sử dụng ngôn ngữ truy vấn có cấu trúc (SQL) Các hệ quản trị CSDL quan hệ sử dụng SQL để dịch các truy vấn của người dùng thành các đoạn mã cần thiết để lấy ra được các dữ liệu được yêu cầu Mô hình quan hệ dễ dùng đến mức ngay cả những người chưa được đào tạo cũng thấy dễ dàng để tạo
ra các câu truy vấn và các báo cáo tiện lợi, mà không cần phải suy nghĩ nhiều về nhu cầu phải thiết kế một CSDL đúng đắn
Nhược điểm của Mô hình Quan hệ
Mặc dù mô hình này che dấu đi tất cả những sự phức tạp bên trong của hệ thống, nhưng thao tác với dữ liệu là chậm hơn các hệ thống CSDL khác
1.3 Các khái niệm cơ bản về Cơ sở dữ liệu
Trước khi chúng ta thảo luận chi tiết về các hệ CSDL, chúng ta cần biết một số khái niệm cơ bản
về một CSDL Hãy cùng khám phá từng khái niệm một
1.3.1 Dữ liệu và thông tin
Dữ liệu là thành phần quan trọng nhất trong bất cứ công việc nào chúng ta làm Chúng ta hoặc là dùng những dữ liệu có sẵn, hoặc là tạo ra dữ liệu Khi các dữ liệu này được thu thập và phân tích,
nó cho ta thông tin Ví dụ, một phóng viên của một tạp chí thể thao (người rất hâm mộ bóng đá) thu thập các điểm số (dữ liệu) của đội Đức trong 10 trận đấu Worldcup Các điểm số này cấu thành nên dữ liệu Khi các dữ liệu này được so sánh với dữ liệu của 10 trận đấu Worldcup của đội Brazil, người phóng viên thu được thông tin là quốc gia nào có đội bóng chơi tốt hơn
1.3.2 Cơ sở dữ liệu và Bảng
Các bảng là các đối tượng của CSDL, nó chứa tất cả các dữ liệu có mặt trong một CSDL Một CSDL được cấu thành từ nhiều bảng, mỗi bảng chứa một tập hợp các dữ liệu có liên quan với nhau Các bảng trong một CSDL có thể liên quan với nhau
Một CSDL là một tập hợp các bảng
Xét một CSDL lưu trữ dữ liệu cho một ‘Hệ thống Đặt vé Máy bay’ Chi tiết về các hành khách đã đặt vé được lưu trong bảng ‘Đặt vé’ (Reservation), trong khi các chi tiết của những lần hủy vé được đặt trong bảng ‘Hủy vé’ (Cancellation) Hơn nữa, ngày và giờ của các chuyến bay có thể
Trang 9được lưu trong một bảng khác nữa Danh sách thu tiền cũng có thể được lưu vào một bảng khác Một cách lý tưởng, tất các các bảng liên quan đến hệ thống đặt vé máy bay này đều được lưu trong một CSDL, gọi là CSDL ‘Hàng không’ (Airline)
1.3.3 Mối quan hệ Hàng hoặc Cột
Bảng là một tập hợp các bản ghi có liên quan, được sắp xếp theo các hàng và cột Trong các bảng,
dữ liệu được tổ chức dưới dạng hàng và cột tương tự như đối với bảng tính Ví dụ, một bảng chứa
dữ liệu về các nhân viên của một công ty thì mỗi dòng lưu thông tin của một nhân viên, và các cột biểu diễn các thông tin chi tiết về nhân viên đó như mã nhân viên, tên nhân viên, chức vụ, địa chỉ,
số điện thoại nhà
1.3.4 Hệ thống Cơ sở Dữ liệu và Hệ Quản trị Cơ sở Dữ liệu
Một Hệ thống CSDL là một hệ thống sử dụng máy tính để quản lý các bản ghi mà mục đích tổng quát là nhằm ghi lại và bảo quản thông tin Một Hệ quản trị CSDL (DBMS) là một tập hợp các bản ghi có liên quan với nhau và một bộ các chương trình để truy xuất và thao tác các bản ghi này Một hệ quản trị CSDL cho phép người dùng nhập, lưu trữ và quản lí dữ liệu
1.3.5 Sự Dư thừa Dữ liệu và Tính toàn vẹn Dữ liệu
Ta có thể giảm bớt sự trùng lặp dữ liệu hay ‘dữ thừa dữ liệu’ bằng cách sử dụng một hệ quản trị CSDL Ví dụ, một hệ quản trị CSDL có thể đảm bảo mỗi bản ghi trong bảng là duy nhất thông qua một trong các cột hay trường của bảng đó Việc đảm bảo tính chính xác của dữ liệu trong CSDL được gọi là duy trì tính toàn vẹn dữ liệu Nếu một hoặc nhiều bảng có quan hệ với nhau thông qua các dữ liệu mà chúng lưu giữ, thì mỗi khi có sự thay đổi dữ liệu trong một bảng, thì sự thay đổi đó cũng phải được phản ánh sang bảng kia Nếu không làm như vậy, dữ liệu được lưu trữ
sẽ không còn chính xác và CSDL sẽ mất đi tính toàn vẹn
Ví dụ, trong một hệ thống thư viện, khi một hội viên không còn quyền hội viên nữa, xét trường
hợp chúng ta đã cập nhật bảng Hội viên (Member) nhưng chưa cập nhật bảng Chi tiết Sách (Book
Details), trong đó ghi lại các quyển sách đã cho hội viên mượn và trả lại Như vậy, tuy là hội viên
đó không còn tham gia vào thư viện nữa, nhưng bảng Chi tiết Sách vẫn cho thấy những quyển
sách mà anh ta mượn
Thậm chí có thể xảy ra việc vào cuối tháng, khi ta soạn báo cáo Thống kê tiền phạt (Fine or Penalty Amount Collection), tên của hội viên đó vẫn nằm trong các báo cáo Mâu thuẫn dạng này
có thể tránh được bằng cách phải đảm bảo tính toàn vẹn dữ liệu ngay từ đầu
1.4 Các Khái niệm Cơ bản về CSDL quan hệ
Một CSDL quan hệ là một CSDL được cấu trúc theo mô hình quan hệ Sau đây chúng ta sẽ thảo luận các đặc tính của mô hình quan hệ
Trước tiên, trong mô hình quan hệ, dữ liệu được lưu trong các mối quan hệ (relation) Để hiểu
được mối quan hệ, ta xét ví dụ sau đây Dưới đây là hai danh sách khác nhau, một là danh sách các quốc gia và thủ đô của chúng, danh sách kia liệt kê các quốc gia và loại tiền tệ mà các quốc gia đó sử dụng
Trang 10Quốc gia Thủ đô
Australia Sydney
Table 1.4: Các Thủ đô
China Renminbi (Yuan)
Australia Australian Dollar France Francs
Table 1.5: Tiền tệ
Bạn sẽ nhận thấy rằng có 2 danh sách khác nhau được đưa ra ở đây Tuy nhiên, có một cột là chung cho cả hai bảng Đây chính là cột chứa tên các quốc gia Bây giờ nếu có ai muốn tìm loại tiền tệ được dùng ở thành phố Rome, đầu tiên họ phải tìm ra tên quốc gia, sau đó tìm tên quốc gia
đó trong bảng còn lại để tìm ra loại tiền tệ tương ứng
Ta có thể thu được thông tin này bởi vì ta có thể thiết lập một mối quan hệ giữa hai danh sách
thông qua một cột chung là cột ‘Quốc gia’
1.4.1 Tính toàn vẹn của Thực thể và Khóa chính
Trong một mô hình quan hệ, dữ liệu được lưu trong các quan hệ Quan hệ là thuật ngữ chính quy đối với Bảng Trong ví dụ trên đây, ta đã lưu trữ thông tin về các quốc gia trong một bảng Trong một CSDL mỗi bảng có tên duy nhất xác định nội dung của nó Mỗi bảng có thể xem như là sự giao nhau của các hàng và các cột Một trong những thuộc tính quan trọng nhất của bảng là các hàng không được sắp thứ tự Ta không thể xác định một hàng bằng thứ tự của nó ở trong bảng Mỗi bảng phải có một cột mà nhờ đó ta có thể phân biệt, xác định các hàng trong bảng Việc không có hai hàng trong bảng chứa thông tin giống hệt nhau là rất quan trọng Tránh được điều này là nhờ công dụng của các khóa chính
Một cột hoặc một sự kết hợp của một số cột mà qua đó xác định duy nhất một bản ghi trong một
bảng thì được gọi là Khóa Chính (Primary Key).
Việc các bảng phải có một khóa chính là rất cần thiết Một ví dụ thường dùng để nhấn mạnh tầm quan trọng của khóa chính là ví dụ về học sinh trong một trường học Nếu hai học sinh có tên giống hệt nhau, giáo viên sẽ rất bối rối khi phải tính toán bảng điểm cho các học viên Vì thế, trong các trường hợp như thế này, mỗi học sinh sẽ được gán một mã số học sinh duy nhất sao cho giáo viên không còn bối rối khi có hai học sinh trùng tên nhau Mã số Học sinh (Roll Number) trong trường hợp này là khóa chính và không được trùng lặp trong bất cứ hoàn cảnh nào