LỚP CNTT 2 - 2007
Would you like to react to this message? Create an account in a few clicks or log in to continue.

Mô hình du lieu quan he : Các khái niem, các dang chuan

Go down

Mô hình du lieu quan he : Các khái niem, các dang chuan Empty Mô hình du lieu quan he : Các khái niem, các dang chuan

Post  Admin 4/12/2007, 10:04

Mô hình dữ liệu quan hệ : Các khái niệm, các dạng chuẩn và các bước chuẩn hóa dữ liệu

*Quan hệ:
a) Khái niệm:Quan hệ là một bảng dữ liệu hai chiều được đặt tên .Mỗi quan hệ (hay bảng) gồm một số hữu hạn các cột được đặt tên và một số tùy ý các dòng không có tên.

So dh Ma-kh Ten-kh Dia-chi Ng-ld Ma-mh Ten-mh dv sl dg tien
1031 K12 Tran V.K 15,ltt,hp 12/10/99 20-Vn Quehan Kg 12 17 204
1031 K12 Tran V.K 15,ltt,hp 12/10/99 20-Fa Quehan Kg 24 24 588
1031 K12 Tran V.K 15,ltt,hp 12/10/99 K3-V1 Mayhan Cai 1 105 105
1031 K14 Le V.K 27,txs,hp 21/11/00 K3-V1 Mayhan cai 1 105 105

Ví dụ trong hình là quan hệ DƠN HANG với 11 cột và 4 dòng dữ liệu.một quan hệ mô tả một lớp các đối tượng trong hệ thống có các thuộc tính chung.Mỗi cột trong quan hệ tương ứng với một thuộc tính và mỗi dòng tương ứng với giá trị dữ liệu của một thực thể.Trong ví dụ trong quan hệ DON HANG có các thuộc tính SODH,MA-KH,TEN-KH,DIA-CHI,NG-LD,MA-MH,TEN-MH,DV,SL,DG,TIEN.
b) Tính chất của quan hệ:
-Giá trị đưa vào mỗi cột phải là đơn nhất
-Các giá trị đưa vào cùng một cột phải thuộc cùng một miền dliệu
-Mỗi dòng trong bảng phải là duy nhất. Trong bảng không có dòng nao giống hệt nhau. Điều kiện duy nhất của các dòng dữ liệu tương đương với điều kiện là bảng có khóa chính khác trống
-Thứ tự các cột trong bảng là không quan trọng. Cột đươc xác định thông qua tên chứ ko phải dựa vào vị trí của chúng.
-Thứ tụ các dòng là ko quan trọng. Cũng như các cột, các dòng có thể đổi chỗ cho nhau, có thể xem dữ liệu trong bảng với các thứ tự khác nhau của các dòng, tùy theo yêu cầu.
Một quan hệ có tính chất tôt là quan hẹ có lượng dư thừa dữliệu ít nhất và cho phép ng sử dụng thêm, sửa đổi hay xóa các dòng dữ liệu mà không gây ra lỗi hoặc sự ko nhất quan trong bảng. Khi xây dựng một hệ thống thông tin với mô hình quan hệ, ở thời điểm ban dầu, các thuộc tính có thể đc gom nhóm một cách tùy ý thành các lược đồ quan hẹ, các lược đồ như vậy thường ko có chất lượng cao.

*Các dạng chuẩn hóa: Lược đồ quan hẹ đc xây dựng ở thời điểm ban đầu thường chứa nhiều nhược điểm như dư thừa dữ liệu, deex gây ra thiếu nhất quán khi bổ sung, sửa chữa hoặc loại bỏ các dòng trong qua hệ. Chất lượng của các lược đồ quan hệ đc cải thiện trên cơ sở biến đổi chuẩn. Ta có ba dạng chuẩn:
a)Dạng chuẩn 1: Một quan hệ R là dạng chuẩn 1(1NF) nếu các thuộc tính của nó đều đơn trị. Nói cách khác, quan hệ R đạt chuẩn 1 nếu nó ko chứa các thuộc tính lặp. Giá trị tại mỗi ô của bảng (giao của cột và dòng) phải là dơn trị
b)Dạng chuẩn2: Một quan hệ R là dạng chuẩn 2(2NF) nếu nó là 1NF và các phụ thuộc hàm giữua các thuộc tính ngoài khóa và khóa đều là các phụ thuộc hàm sơ đẳng, nói cách khác, mọi thuộc tính ngoìa khóa đều ko có phụ thuộc hàm vào bộ phận của khóa.
c)Dạng chuẩn 3: Một quan hệ R là dạng chuẩn 3 (3NF) nếu nó là 2NF và các phụ thuộc hàm giữa các thuộc tính khóa ngoài và khóa đều là các phụ thuộc hàm trực tiếp-nghĩa là ko tồn tại những phụ thuộc hàm ngoài khóa.
*Các bước chuẩn hóa: Các bước chuẩn hóa đc mô tả theo sơ đồ sau

Quan hệ được xây dựng ban đầu
I <------------------------------ Tách các nhóm thuộc tính lặp
Quan hệ đạt chuẩn 1 (1NF)
I <-------------------------------Tách các phụ thuộc riêng
Quan hệ đạt chuẩn 2 (2NF)
I <------------------------------- Tách các phụ thuộc ko trực tiếp
Quan hệ đạt chuẩn 3 (3NF)

a) Dạng chuẩn 1. Quan hệ là 1NF nếu ko chứa các thuộc tính lặp, các thuộc tính phải là đơn, nghĩa là giá trị của các ô là giao của hàng và cột phải có giá trị đơn, như vậy, mọi quan hệ đều là 1NF. Nếu bảng dữ liệu chứa các thuộc tính lặp thì ko phải quan hệ, để chuyển bảng dữ liệu có lặp thành quan hẹ, có thể tách các thuọctính lặp thành một hoặc hniều bảng khác và nếu cần thiểt thì tăng cường khóa cho các bảng mới này. Tiép tục xem xét cac sbảng mới để đảm bảo sao cho các bảng này cũng là quan hệ, tức là đạt chuẩn 1.
Ví dụ: Từ bảng DONHANG ban đầu với các thuộc tính: SODH,MA_KH,TEN_KH,DIA_CHI,NG_LD,MA_MH,TEN_MH,DV,SL,DG và TIEN.
Chứa các thuộc tính lặp:
MA_MH,TEN_MH,DV,SL,DG,TIEN
Các thuộc tinhd lặp đc tách thành bảng DONG_DH, trong đó có bổ sung thuộc tính SODH từ các thuộc tính còn lại để tạo khóa. Phần còn lại của bảng DONHANG và bảng mới DONG_DH ko chứa thuộc tính lặp. các bảng này thỏa mãn các tính chất của quan hệ, chúng đều đạt chuẩn 1, ta có lược đồ sau :
DONHANG(SODH,MA_KH,TEN_KH,DIA_CHI,NG_LD)
DONG_DH(SODH,MA_MH,TEN_MH,DV,SL,DG,TIEN)
b) Dạng chuẩn 2: Một quan hệ R là dạng chuẩn 2(2NF) nếu nó là 1NF và các phụ thuộc hàm giữa các thuộc tính ngoài khóa và khóa đều là các phụ thuộc hàm sơ đẳng, nói cách khác, mọi thuộc tính ngoìa khóa đều ko có phụ thuộc hàm vào bộ phận của khóa.Nếu quan hệ R chứa những thuộc tính có phụ thuộc hàm vào một bộ phận của khóa thì cần tách các nhóm thuộc tính phụ thuộc vào bộ phận của khóa và bổ sung thêm cho các nhóm này một phần khóa mà chúng có phụ thuộc hàm, để thành quan hệ. Nhóm còn lại taọ thành một quan hệ với khóa như cũ. Các quan hệ đc tạo lập đều là 2NF.
Ví dụ: Xét quan hệ DONG_DH có lược đồ:
DONG_DH(SODH,MA_DH,TEN_MH,DV,SL,DG,TIEN)
Giả thiết là đơn giá bán ko phụ thuộc vào từng đơn hàng, các phụ thuộc hàm trực tiếp trong quan hệ sẽ là:
MA_MH -> {TEN_MH,DV,DG}
SODH,MA_MH ->{SL<TIEN}
Rõ ràng DONG_DH ko phải là 2NF, tách các thuộc tính TEN_MH, DV,DG có phụ thuộc hàm vào bộ phận MA_MH của khóa thành một nhóm. Nhóm còn lại SODH,MA_DH,SL<TIEN là quan hệ 2NF:
DONG_DH(SODH,MA_DH, SL,TIEN)
Nhóm bị tách ra sẽ đc bổ sung bộ phận của khóa MA_MH và nhận MA_MH làm khóa. ĐÓ là quan hệ 2NF:
MATHANG1(MA_MH,TEN_MH,DV,DG)
c) Dạng chuẩn 3: Một quan hệ R là dạng chuẩn 3 (3NF) nếu nó là 2NF và các phụ thuộc hàm giữa các thuộc tính khóa ngoài và khóa đều là các phụ thuộc hàm trực tiếp-nghĩa là ko tồn tại những phụ thuộc hàm ngoài khóa.. Nếu R khong phai là 3NF, nghĩa là trong R tồn tại thuộc tính không phụ thuộc hàm trực tiệp vào khóa, thì tách các nhóm thuộc tính có phụ hàm vào thuộc tính khóa thành một quan hệ. khóa của quan hệ mới này chính là thuộc tính mà chúng có phụ thuộc hàm.
Ví dụ: quan hệ DONHANG đã xét ở phần chuẩn 1NF ko phai rlà 3NF:
DONHANG(SODH,MA_KH,TEN_KH,DIA_CHI,NG_LD)
Có các phụ thuộc ham ftrực tiếp:
SODH->{MA_KH,NG_LD}
MA_KH->{TEN_KH,DIA_CHI}
Nhóm mới này đc tách ra gồm có MA_KH,TEN_KH và DIA_CHI. Thuộc tính MA_KH sẽ là khóa của quan hệ mới này. Nhóm còn lại tạo thành một quan hệ với khóa như cũ :
DONHANG(SODH,MA_KH,NG_LD)
KHACHHANG(MA_KH,TEN_KH,DIA_CHI)
Admin
Admin
Admin

Posts : 41
Join date : 2007-09-29

https://cntt207.forumotion.com

Back to top Go down

Back to top

- Similar topics

 
Permissions in this forum:
You cannot reply to topics in this forum