2.4.1 Các khái niệm chung
Cơ sở dữ liệu [13] là mô hình thực thể phản ánh thế giới thực đƣợc đề cập đến, do vậy nó là trìu tƣợng hoá của thế giới thực. Cơ sở dữ liệu là nguồn dữ liệu cho mọi hệ thống dựa trên máy tính, những dữ liệu này đƣợc lƣu giữ trong máy tính một cách có cấu trúc dựa trên một quy định nào đó nhằm giảm tối thiểu sự dƣ thừa và đảm bảo sự thống nhất với nhau, tính an toàn cao.
Hệ chƣơng trình đƣợc dùng để thao tác trên cơ sở dữ liệu nhƣ quản lý, tổ chức lƣu trữ, cho phép tìm kiếm thay đổi, thêm bớt trong cơ sở dữ liệu gọi là hệ quản trị cơ sở dữ liệu có nhiệm vụ rất quan trọng là giúp ngƣời sử dụng có thể sử dụng đƣợc hệ thống mà ít nhiều không cần quan tâm tới thuật toán chi tiết hoặc biểu diễn dữ liệu
Nhìn chung một hệ cơ sở dữ liệu thƣờng gồm 3 phần: Hệ quản trị cơ sở dữ liệu, ngôn ngữ và cơ sở dữ liệu. Việc tổ chức cơ sở dữ liệu có thể có nhiều mô hình khác nhau nhƣ:
Mô hình phân cấp: Trong mô hình phân cấp, các bản ghi đƣợc sắp xếp theo cấu trúc từ trên xuống tạo thành một dạng cây. Thuật ngữ cha con đƣợc sử dụng cho mô hình phân cấp. Một tính chất quan trọng của mô hình phân cấp là một con có liên hệ chỉ với cha.
Mô hình mạng: Trong mô hình mạng, không phân biệt loại bản ghi con và bản ghi cha nhƣ mô hình phân cấp. Một bản ghi bất kỳ có thể đƣợc kết nối với một số bất kì các bản ghi loại khác. Ngƣời ta dùng mũi tên để chỉ rằng mỗi bản ghi có thể đƣợc kết nối với nhiều bản ghi khác. Mô hình mạng đã phát triển vƣợt qua đƣợc phạm vi ứng dụng hạn hẹp cuả mô hình phân cấp
Mô hình quan hệ: Trong mô hình quan hệ, các dữ liệu đƣợc biểu diễn ở dạng các bảng với các dòng và các cột. Trong mô hình quan hệ không có một sự kết nối vật lý nào giữa các bảng. Sự kết nối giữa các bảng đƣợc mô tả logic bằng các giá trị bằng nhau đƣợc lƣu trữ trong các bảng
Mô hình hƣớng đối tƣợng: Trong mô hình hƣớng đối tƣợng, các thuộc tính dữ liệu và các phương pháp thao tác trên các dữ liệu này được bao gói trong một cấu trúc gọi là đối tượng. Đối tƣợng có thể chứa những dữ liệu phức hợp nhƣ văn bản, hình ảnh, tiếng nói và hình ảnh động. Một đối tƣợng có thể yêu cầu hoặc xử lý dữ liệu từ một đối tƣợng khác bằng việc gửi đi một thông báo đến đối tƣợng đó. Mô hình dữ liệu hƣớng đối tƣợng biểu diễn một sơ đồ mới để lƣu trữ và thao tác dữ liệu. Từ các đối tƣợng đã có thể sinh ra một đối tƣợng khác phức tạp hơn hay sử dụng lại chúng trong nhiều ứng dụng khác
2.4.2 Mô hình dữ liệu quan hệ
Mô hình CSDL quan hệ là một cách thức biểu diễn dữ liệu ở dạng các bảng/quan hệ. Nhờ dựa trên lý thuyết toán học đại số tập hợp mà nó có một cơ sở lý thuyết vững chắc.
Quan hệ (Relation) và Thuộc tính (attribute)
- Định nghĩa: Cho R={a1,a2,..,an} là một tập hữu hạn, không rỗng các thuộc tính. Mỗi thuộc tính ai có một miền giá trị là Dai (i=1,2,…,n). Khi đó r –một tập các bộ {h1,h2,..,hm} đƣợc gọi là một quan hệ trên R, với hj (j =1, 2,..,m) là một hàm:
hj: R Dai ai R sao cho: hj( ai ) Dai
Có thể biểu diễn quan hệ r ở dạng bảng:
h1 h1 (a1) h1 (a2) ... h1 (an)
hn hn (a1) hn (a2) ... hn (an)
Một quan hệ là một bảng dữ liệu 2 chiều. Mỗi quan hệ (hay bảng) gồm một tập hữu hạn các cột đƣợc đặt tên và một số tuỳ ý các dòng không có tên.
Một quan hệ mô tả một lớp các đối tƣợng trong thực tế có những thuộc tính
chung mà ta gọi là thực thể. Mỗi cột trong quan hệ tƣơng ứng với một thuộc tính của
thực thể này và cũng gọi là thuộc tính của quan hệ. Mỗi dòng của quan hệ chứa các giá
trị dữ liệu của một đối tƣợng cụ thể (bản thể) thuộc thực thể mà quan hệ này mô tả. Thuộc tính lặp của một quan hệ là những thuộc tính có giá trị khác nhau trên một số dòng (số dòng lớn hơn 1), mà ở những dòng này, các giá trị của các thuộc tính còn lại hoàn toàn giống nhau
Phụ thuộc hàm: Định nghĩa: Cho R = { a1, a2,.., an } là tập các thuộc tính, r = { h1, h2,.., hn } là một quan hệ trên R, và A, B R ( A, B là tập cột hay tập thuộc tính). Khi đó ta nói A xác định hàm cho
B hay B phụ thuộc hàm vào A trong r ( ký pháp A B ) nếu:
( hi, hj r) (( a A ) ( hi(a) = hj(a)) ( b B ) ( hi(b) = hj(b) ))
nghĩa là đối số trùng nhau thì hàm có cùng giá trị.
Ngƣời ta còn viết (A, B) hay A B thay cho A B Lúc đó tập hợp tất cả (A,B) nhƣ thế xác định một họ f trên R.
Hệ tiên đề Armstrong
Gọi F là tập xác định các phụ thuộc hàm đối với lƣợc đồ quan hệ R và X Y là
một phụ thuộc hàm. X, Y R. Nói rằng X Y đƣợc suy diễn logic từ F nếu mối quan
hệ r trên R đều thoả mãn phụ thuộc hàm của F thì cũng thoả mãn X Y. Chẳng hạn F
={A B, B C} thì A C suy ra từ F. Gọi F+ là bao đóng (closure) của F, tức là
tập tất cả các phụ thuộc hàm đƣợc suy diễn logic từ F. Nếu F =F+ thì F là họ đầy đủ
(full family) của các phụ thuộc hàm.
Định nghĩa : Cho R = {a1,...,an} là tập các thuộc tính.
X, Y, Z R. Hệ tiên đề Armstrong bao gồm 3 tính chất cơ bản sau:
A1 (phản xạ) : Nếu Y X thì X Y
A2 (tăng trƣởng) : Nếu Z R và X Y thì XZ YZ.
Trong đó ký hiệu XZ là hợp của hai tập X và Z thay cho ký hiệu X Z.
A3 (bắc cầu ) : Nếu X Y và Y Z thì X Z.
Khoá dự tuyển, khoá chính và khoá ngoại lai
r f
r f
Khoá dự tuyển (candidate key) của một quan hệ là một nhóm thuộc tính mà các giá trị của nó xác định duy nhất mỗi dòng trong một quan hệ. Khoá dự tuyển cần thoả mãn các tính chất sau: Xác định duy nhất và không dƣ thừa.
Khoá chính(primary key) là một khoá dự tuyển đƣợc chọn làm khoá của quan hệ.
Khoá ngoạila i(foreign key) của 1 quan hệ là một nhóm thuộc tính trong quan hệ
đó mà là khoá chính trong một quan hệ khác. (Chú ý rằng các FK cũng có thể tham chiếu đến khoá chính trong cùng 1 quan hệ)
Bao đóng
Giả sử F là tập các phụ thuộc hàm trên sơ đồ quan hệ s = < R, F >. Gọi F+
là tập tất cả các phụ thuộc hàm có thể suy diễn lôgic từ F bởi các luật của hệ tiên đề Armstrong.
Giả sử A R, ký hiệu A+ = { a: A {a} F+}. A+ đƣợc gọi là bao đóng của A trên s
- Khoá của sơ đồ quan hệ:
Giả sử r = { h1, h2,.., hm} là một quan hệ, s = < R, F > là một sơ đồ quan hệ, trong đó R = {a1, a2,..., an} là tập các thuộc tính, F là tập xác định các phụ thuộc hàm
trên R. Gọi Y là một họ f trên R và A R. Khi ấy A là một khoá của r ( tƣơng ứng là
một khoá của s, một khóa của Y) nếu:
A R ( A R F+, (A, R) Y).
Nghĩa là A phải thoả mãn: Với bất kỳ hai bộ h1, h2 r đều tồn tại một thuộc tính a A sao cho h1(a) h2(a). Nói cách khác, không tồn tại hai bộ mà có giá trị bằng nhau trên mọi tập thuộc tính của A. Điều kiện này có thể viết t1(A) t2(A). Do vậy, mỗi giá trị của A xác định là duy nhất. Khi biết giá trị thuộc tính trong A sẽ biết đƣợc các giá trị của thuộc tính khác
Chúng ta gọi A (A R) là một khoá tối tiểu của r (tƣơng ứng của s, của Y) nếu:
o A là một khoá của r (s,Y) tức A R
o Bất kỳ một tập con thực sự của A không là khoá của r (s, Y) hay không
tồn tại A' tập con thực sự A' A mà A' R.
Chuẩn hoá
Chuẩn hoálà một quá trình chuyển một cấu trúc dữ liệu phức hợp thành các cấu trúc dữ liệu tốt và đơn giản hơn
Chuẩn hoá dựa trên cơ sở phân tích các phụ thuộc hàm. Phụ thuộc hàm nhƣ đã nói ở trên là một mối quan hệ cụ thể giữa hai thuộc tính (hay nhóm thuộc tính) trong một quan hệ.
Có 3 dạng chuẩn cơ bản là:
Chuẩn 1 (first- normal- form : 1NF). Một quan hệ đạt chuẩn 1 nếu nó không chứa các thuộc tính lặp.
f r
Chuẩn 2 (second- normal- form : 2NF) (phụ thuộc hoàn toàn vào khoá). Một quan hệ đạt chuẩn 2 nếu :
- Nó đã ở dạng chuẩn 1
- Không tồn tại thuộc tính ngoài khoá mà phụ thuộc vào một phần của khoá. Chuẩn 3 (thirth- normal- form : 3NF) (phụ thuộc trực tiếp vào khoá). Một quan hệ đạt chuẩn 3 nếu:
- Đạt chuẩn 2
- Không tồn tại thuộc tính ngoài khoá mà phụ thuộc bắc cầu vào khoá (qua một thuộc tính gọi là thuộc tính cầu (cũng là thuộc tính ngoài khoá)).
Ngoài ra còn có 2 dạng chuẩn khác là:
Chuẩn 4 (Fourth Normal Form – 4NF)
Một quan hệ ở dạng chuẩn 4 NF khi và chỉ khi những phụ thuộc đa trị cơ sở là phụ thuộc xác định một thuộc tính (dạng X A) . Ngƣời ta đã chứng minh rằng R có phân rã 4NF không tổn thất
Chuẩn 5 (Fiveth Normal Form – 5NF)
Quan hệ ở dạng chuẩn 5NF khi các phụ thuộc kết nối thực hiện do khoá sơ cấp của R, 5NF đƣợc coi là chuẩn cuối cùng.