aloha_296

New Member
Luận văn: Nghiên cứu về ERP-ORACLE EBS áp dụng thực tế tại Công ty Cổ phần Sản xuất hàng Thể thao Maxport : Luận văn ThS. Công nghệ thông tin: 60 48 10
Nhà xuất bản: ĐHCN
Ngày: 2011
Chủ đề: Công nghệ thông tin
Công nghệ phần mềm
Hệ thống ERP
Miêu tả: 72 tr. + CD-ROM
Luận văn ThS. Công nghệ phần mềm -- Trường Đại học Công nghệ. Đại học Quốc gia Hà Nội, 2011
Trình bày cấu trúc hệ thống ERP và các chiến lược triển khai. Tống quan về hệ thống Oracle EBS và tình hình phát triển của hệ thống ở Việt Nam cũng như trên thế giới. Giới thiệu bài toán quản lí ngành may với những khó khăn gặp phải, phân tích đưa ra giải pháp tổng thể để triển khai hệ thống ERP cho doanh nghiệp Maxport. Thiết kế các chức năng, môi trường ứng dụng, giao diện làm việc của module customize Garment bm cho hệ thống EBS ngành may mặc. Trình bày các kết quả đạt được của luận văn và hướng phát triển trong tương lai
MỤC LỤC
LỜI CẢM ƠN......................................................................................................... ..0
MỤC LỤC ............................................................................................................... ..1
BẢNG KÝ HIỆU CÁC CHỮ VIẾT TẮT ............................................................... ..4
MỞ ĐẦU ................................................................................................................. ..5
Chương I................................................................................................................. ..7
TỔNG QUAN VỀ CSDL QUAN HỆ VÀ CÁC RÀNG BUỘC TOÀN VẸN .....7
1.1. TỔNG QUAN VỀ CSDL QUAN HỆ ..............................................................7
1.1.1.Các khái niệm CSDL quan hệ ..................................................................7
1.1.2.Chuẩn hóa .............................................................................................. 10
1.1.2.1. Các cấu trúc phụ thuộc ..................................................................... 11
1.1.2.2. Các dạng chuẩn. ............................................................................... 14
1.1.3.Các quy tắc toàn vẹn............................................................................... 17
1.1.4.Các ngôn ngữ quan hệ dữ liệu ............................................................... 18
1.1.4.1. Đại số quan hệ.................................................................................. 19
1.1.4.2. Các tính toán quan hệ ....................................................................... 22
1.1.4.3. Tương tác với các ngôn ngữ lập trình ............................................... 25
1.1.5.Hệ Quản trị CSDL quan hệ.................................................................... 25
1.2. CÁC RÀNG BUỘC TOÀN VẸN TRÊN CSDL QUAN HỆ .......................... 28
1.2.1.Kiểm soát toàn vẹn ngữ nghĩa tập trung ................................................ 30
1.2.1.1. Khái niệm ràng buộc toàn vẹn .......................................................... 30
1.2.1.2. Các yếu tố của ràng buộc toàn vẹn..................................................... 31
1.2.1.3. Phân loại ràng buộc toàn vẹn ............................................................ 34
1.2.2.Bắt tuân theo ràng buộc toàn vẹn .......................................................... 38
Chƣơng II................................................................................................................. 42
CƠ SỞ DỮ LIỆU TÍCH CỰC............................................................................... 42
Ket-noi.com kho tai lieu mien phi Ket-noi.com kho tai lieu mien phi2
2.1. CƠ SỞ DỮ LIỆU TÍCH CỰC....................................................................... 42
2.1.1.Khái niệm cơ sở dữ liệu tích cực ............................................................ 42
2.1.2.Quy tắc ECA ........................................................................................... 42
2.1.2.1. Sự kiện (Event).................................................................................. 42
2.1.2.2. Điều kiện (Condition) ....................................................................... 46
2.1.2.3. Hành động (Active)........................................................................... 47
2.2. MÔ HÌNH TỔNG QUÁT VÀ CÁC TRIGGER TRONG ORACLE ....... 48
2.2.1. Mô hình tổng quát của CSDL tích cực: ................................................ 48
2.2.2. Vấn đề thiết kế và cài đặt cho các cơ sở dữ liệu tích cực ...................... 54
2.2.3. Các ứng dụng tiềm năng đối với các cơ sở dữ liệu tích cực.................. 56
Chƣơng III ............................................................................................................... 58
CÀI ĐẶT CÁC QUY TẮC ECA BẰNG NGÔN NGỮ SQL................................ 58
3.1. GIỚI THIỆU TRIGGER TRONG SQL-SERVER........................................ 58
3.2. CSDL TRONG QUẢN LÝ BÁN HÀNG........................................................ 58
3.2.1.Danh mục Cart:...................................................................................... 59
2.2.2.Danh mục CartStatus:............................................................................ 59
2.2.3.Danh mục News: .................................................................................... 59
2.2.4.Danh mục Parent Product:..................................................................... 60
2.2.5.Danh mục Product: ................................................................................ 60
2.2.6.Danh mục ProductCart: ......................................................................... 60
2.2.7.Danh mục Role:...................................................................................... 61
2.2.8.Danh mục user: ...................................................................................... 61
3.3. QUY TẮC TẠO TRIGGER ........................................................................... 61
3.4. CÁC TRIGGER TRONG CSDL.................................................................... 62
3.4.1.Trigger ngăn chặn việc xóa database trên Server. ................................. 623
3.4.2.Trigger ngăn chặn insert vào bảng Product........................................... 63
3.4.3.Trigger ngăn chặn update (cập nhật) bảng Product. ............................. 65
3.4.4.Trigger ngăn chặn xóa dữ liệu trong bảng ............................................ 66
3.4.5.Trigger ngăn chặn tạo mới record trong bảng. ...................................... 67
3.4.6.Tạo mới trong bảng ( không vi phạm trigger của trigger 05)................. 68
3.4.7.Trigger ngăn chặn xóa bảng trong database.......................................... 70
3.4.8.Ngăn chặn xóa trigger trong CSDL ....................................................... 70
3.4.9.Không cho phép tạo mới bảng trong CSDL. .......................................... 71
3.4.10. Không cho phép tạo mới trigger trong CSDL.................................. 72
KẾT LUẬN............................................................................................................. 74
TÀI LIỆU THAM KHẢO ........................................................................................ 75
Ket-noi.com kho tai lieu mien phi Ket-noi.com kho tai lieu mien phi4
BẢNG KÝ HIỆU CÁC CHỮ VIẾT TẮT
Stt Từ viết tắt Tiếng Anh Tiếng Việt
1 ABDS Active Database System Hệ thống cơ sở dữ liệu tích cực
2 CSDL Cơ sở dữ liệu
3 DBMS Database Management System Hệ quản trị cơ sở dữ liệu
4 ECA Event-Condition-Active Sự kiện-Điều kiện-Hành động
5 HQTCSDL Hệ quản trị cơ sở dữ liệu
6 WFF Well-formal formular Một công thức xây dựng tốt5
MỞ ĐẦU
Theo truyền thống, các hệ thống cơ sở dữ liệu đƣợc xem nhƣ là các kho để
lƣu trữ thông tin cần thiết của một ứng dụng và chúng đƣợc truy cập hay bởi
những ngƣời sử dụng chƣơng trình hay các giao diện tƣơng tác. Tuy nhiên, các
hệ thống cơ sở dữ liệu đang đƣợc sử dụng cho một phạm vi các lĩnh vực liên
quan đến việc xử lý các thông tin phức tạp, thậm chí số lƣợng lớn dữ liệu, hoặc
đòi hòi sự thực hiện chính xác cao, trong đó môi trƣờng nhiều thành phần theo
quy ƣớc chứng tỏ không đƣợc thỏa mãn. Điều này dẫn đến xu hƣớng chung
trong việc nghiên cứu cơ sở dữ liệu hƣớng chức năng đƣợc yêu cầu bởi một ứng
dụng đƣợc hỗ trợ trong cơ sở dữ liệu, sinh ra các hệ thống cơ sở dữ liệu với
nhiều khả năng tinh xảo để mô phỏng cả khía cạnh cấu trúc và hoạt động của
một ứng dụng. Trong số những lĩnh vực nhận đƣợc sự chú ý trong những năm
gần đây với cái nhìn làm nổi bật sự hoạt động dễ dàng là lập trình cơ sở dữ liệu,
các cơ sở dữ liệu tạm thời, các cơ sở dữ liệu không gian, các cơ sở dữ liệu đa
phƣơng tiện (truyền thông), các cơ sở dữ liệu suy diễn và các cơ sở dữ liệu tích
cực. Trong luận văn này, tui tập trung vào vấn đề cơ sở dữ liệu tích cực.
Hệ thống cơ sở dữ liệu tích cực (ADBS) hỗ trợ các cơ chế cho phép chúng
tự động phản ứng tới các sự kiện đang diễn ra bên trong hay bên ngoài chính hệ
thống cơ sở dữ liệu đó. Trong những năm gần đây, nỗ lực đáng kể đƣợc hƣớng
tới việc nâng cao hiểu biết các hệ thống đó, và có nhiều ứng dụng đƣợc đề xuất.
Sự tích cực ở mức độ cao này không mang lại sự phù hợp với phƣơng pháp tiếp
cận để tích hợp các chức năng của hoạt động với các hệ thống cơ sở dữ liệu quy
ƣớc, nhƣng nó mang tới việc cải thiện tầm hiểu biết ngôn ngữ miêu tả cách thức
hành động tích cực, các mô hình thực hiện và các kiến trúc. Trong luận văn này
trình bày các tính chất cơ bản của hệ cơ sở dữ liệu tích cực, mô tả tập hợp các hệ
thống tiêu biểu trong một framework phổ biến, nghiên cứu tầm quan trọng của
việc thiết kế các công cụ để phát triển các ứng dụng tích cực.
Cơ sở dữ liệu tích cực hỗ trợ ứng dụng trên bằng cách di chuyển hành động
phản ứng lại từ ứng dụng tới hệ quản trị cơ sở dữ liệu (DBMS). Các cơ sở dữ
liệu tích cực theo cách đó có đủ khả năng giám sát và phản ứng lại những tình
Ket-noi.com kho tai lieu mien phi Ket-noi.com kho tai lieu mien phi6
huống riêng biệt có liên quan đến ứng dụng. Bản chất phản ứng lại là tập trung
và xử lý đúng cách đúng lúc.
Mục đích của luận văn:
- Tìm hiểu và xây dựng CSDL tích cực: cơ sở dữ liệu mà trong đó việc đảm
bảo các ràng buộc toàn vẹn đƣợc thực hiện một cách tự động thông qua
các quy tắc ECA.
- Cơ sở dữ liệu tích cực có ứng dụng tốt trong việc mở rộng các hệ thống cơ
sở dữ liệu, làm dễ dàng cho ngƣời sử dụng khai thác cơ sở dữ liệu.
Nội dung của luận văn được trình bày trong 3 chương:
Chương 1: Tổng quan về cơ sở dữ liệu quan hệ và các loại ràng buộc trên
CSDL quan hệ
Chương 2: Cơ sở lý thuyết của cơ sở dữ liệu tích cực, cụ thể là cấu trúc và việc
xây dựng các quy tắc ECA.
Chương 3: Cài đặt các quy tắc ECA bằng SQL.7
Chương I
TỔNG QUAN VỀ CSDL QUAN HỆ VÀ CÁC RÀNG BUỘC TOÀN VẸN
1.1. TỔNG QUAN VỀ CSDL QUAN HỆ
Có nhiều lý do để chọn mô hình dữ liệu quan hệ nhƣ: Cơ sở toán học của
mô hình quan hệ là một ứng viên tốt cho xử lý lý thuyết.
Mô hình quan hệ có thể đƣợc đặc trƣng bởi ít nhất 3 tính chất mạnh mẽ:
a. Cấu trúc dữ liệu của nó là đơn giản. Chúng là các quan hệ, các bảng hai
chiều mà các phần tử của chúng là các mục dữ liệu. Điều này cho phép
một mức độ độc lập cao đối với biểu diễn dữ liệu vật lý (tức là các tệp và
các chỉ mục)
b. Mô hình quan hệ cung cấp một cơ sở chắc chắn cho việc tƣơng thích dữ
liệu. Việc thiết kế CSDL đƣợc giúp đỡ bằng quá trình chuẩn hóa loại bỏ
các bất thƣờng của dữ liệu. Các trạng thái tƣơng thích của CSDL cũng có
thể đƣợc định nghĩa một cách đồng nhất và đƣợc duy trì thông qua các
quy tắc toàn vẹn.
c. Mô hình CSDL cho phép thao tác quan hệ hƣớng tập hợp. Tính chất này
đã dẫn đến sự phát triển mạnh mẽ của các ngôn ngữ phi thủ tục hay dựa
trên lý thuyết tập hợp (đại số quan hệ) hay dựa trên logic (tính toán quan
hệ).
1.1.1. Các khái niệm CSDL quan hệ
Một CSDL là một tập hợp dữ liệu có cấu trúc liên quan đến một vài hiện
tƣợng của cuộc sống thực mà ta muốn mô hình hóa. Một CSDL quan hệ là
CSDL mà ở đó cấu trúc dữ liệu ở dạng bảng. Một cách hình thức, một quan hệ
đƣợc định nghĩa trên n tập hợp D1, D2, … , Dn (không nhất thiết phân biệt) là
một tập hợp các n-bộ sao cho d1 D1, d2 D2, …., dn Dn
Ví dụ 1.1
Xét CSDL mô hình hóa công ty cơ khí. Các thực thể đƣợc mô hình hóa là
nhân viên (EMP) và dự án (PROJ). Với mỗi nhân viên chúng ta lƣu trữ mã số
nhân viên (ENO), tên (ENAME), danh hiệu trong công ty (TITLE), lƣơng
(SAL), mã số dự án mà nhân viên đang làm việc (PNO), trách nhiệm trong dự
Ket-noi.com kho tai lieu mien phi Ket-noi.com kho tai lieu mien phi8
án (RESP) và khoảng thời gian làm việc (DUR). Một cách tƣơng tự, với mỗi dự
án chúng ta lƣu trữ mã số dự án (PNO), tên dự án (PNAME) và ngân sách của
dự án (BUDGET).
Các lƣợc đồ quan hệ cho cơ sở dữ liệu này có thể đƣợc định nghĩa nhƣ sau:
EMP(ENO, ENAME, TITLE, SAL, PNO, DUR)
PROJ(PNO, PNAME, BUGGET)
Trong lƣợc đồ quan hệ EMP có bảy thuộc tính ENO, ENAME, TITLE,
SAL, PNO, DUR. Các giá trị của ENO lấy từ miền của tất cả các mã số nhân
viên hợp lệ, gọi là D1. Các giá trị ENAME lấy từ miền giá tất cả các tên hợp lệ
D2, … Để ý rằng thuộc tính của mỗi quan hệ không đƣợc lấy giá trị từ miền
khác. Các thuộc tính khác nhau trong cùng một quan hệ trong một số quan hệ có
thể đƣợc định nghĩa trên cùng một miền.
Khóa (key) của một quan hệ là một tập con không rỗng bé nhất của các
thuộc tính của nó sao cho giá trị tạo nên khóa xác định một cách duy nhất mỗi
bộ của một quan hệ. Các thuộc tính tạo nên khóa đƣợc gọi là các thuộc tính chủ
yếu. Các tập hợp lớn hơn của một khóa thƣờng đƣợc gọi là siêu khóa. Nhƣ vậy,
trong ví dụ trên, khóa của PROJ là PNO, khóa của EMP là (ENO, PNO). Mỗi
quan hệ có ít nhất là một khóa. Đôi khi một quan hệ có nhiều khả năng cho
khóa. Trong trƣờng hợp nhƣ vậy, mỗi khả năng đƣợc xem là một khóa dự tuyển
và một trong các khóa dự tuyển đƣợc lựa chọn làm khóa chính. Số các thuộc
tính của quan hệ xác định cấp của nó, số các bộ giá trị của quan hệ xác định lực
lƣợng của nó.
Trong dạng bảng, CSDL ví dụ bao gồm hai bảng nhƣ đƣợc chỉ ra ở trong
hình 1.1. Các cột của bảng tƣơng ứng với các thuộc tính của quan hệ. Nếu có
các thông tin đƣợc nhập vào các bảng thì chúng tƣơng ứng với các bộ giá trị.
Bảng rỗng chỉ cấu trúc bảng, bởi vì thông tin bên trong một bảng biến đổi theo
thời gian, nhiều ví dụ có thể đƣợc tạo là từ một quan hệ. Từ nay trở đi, thuật ngữ
quan hệ dùng để chỉ một ví dụ của quan hệ. Trong hình 1.2 là các ví dụ của quan
hệ đƣợc định nghĩa ở hình 1.1.9
ENO ENAME TITLE SAL PNO RESP DUR
PNO PNAME BUDGET
EMP
PROJ
Hình 1.1 Lƣợc đồ CSDL
PROJ
EMP
Hình 1.2 Ví dụ về cơ sở dữ liệu
Một giá trị của thuộc tính có thể không đƣợc xác định. Việc thiếu tính xác
định có thể có các giải thích khác nhau, hay dùng nhất là không biết hay không
áp dụng đƣợc. Giá trị này thƣờng đƣợc gọi là giá trị null. Cần phân biệt giá trị
null với giá trị 0 (zero). Giá trị 0 là giá trị đƣợc biết, giá trị null là giá trị không
PNO PNAME BUDGET
P1 Instrucmentation 150000
P2 Database Develop 135000
P3 CAD/CAM 250000
P4 maintenance 310000
ENO ENAME TITLE SAL PNO RESP DUR
E1 j.joe Elect.Eng 40000 P1 Manager 12
E2 M.Smith Analyst 34000 P1 Analyst 24
E2 M.Smith Analyst 34000 P2 Analyst 6
E3 A.Lee Mech.Eng. 27000 P3 Consultal 10
E3 A.Lee Mech.Eng 27000 P4 Engineer 48
E4 J.Miller Programmer 24000 P2 Programmer Null
E5 B.Casey Syst. Anal. 34000 P2 Manager 24
E6 L.Chu Elect.Eng. 40000 P4 Manager 48
E7 R.Davis Mech.Eng. 27000 P3 Engineer 36
E8 J.Jone Syst.Anal. 34000 P3 Manager 40
Ket-noi.com kho tai lieu mien phi Ket-noi.com kho tai lieu mien phi10
đƣợc biết. Việc hỗ trợ giá trị null là một tính chất quan trọng cần thiết để làm
việc với các truy vấn có thể.
1.1.2. Chuẩn hóa
“Chuẩn hóa là một quá trình thuận nghịch từng bƣớc thay thế một tập hợp quan
hệ bằng các tập hợp tiếp theo, trong đó mỗi quan hệ có cấu trúc đơn giản hơn và
chính quy hơn”. Mục đích của chuẩn hóa là loại bỏ nhiều bất thƣờng của một
quan hệ để nhận đƣợc quan hệ “tốt hơn”. Bốn vấn đề sau có thể tồn tại trong một
lƣợc đồ quan hệ:
a. Bất thƣờng lặp (repetition anormaly)
Một số thông tin có thể đƣợc lặp lại một cách không cần thiết. Ví dụ, xét
quan hệ EMP ở hình 2.2. ENAME, TITLE, SAL của một nhân viên đƣợc lặp với
mỗi dự án mà nhân viên này phục vụ trên đó. Điều này dẫn đến một sự lãng phí
bộ nhớ và trái với tinh thần của CSDL.
b. Bất thƣờng cập nhật (update anormaly)
Nhƣ là hệ quả của việc lặp dữ liệu, việc thực hiện cập nhật có thể gây rắc rối
phiền hà. Ví dụ, lƣơng của một nhân viên thay đổi, nhiều bộ giá trị phải đƣợc
cập nhật để phản ánh sự thay đổi này.
c. Bất thƣờng chèn (Insertion anormaly)
Có thể không có khả năng thêm mới vào cơ sở dữ liệu. Ví dụ, khi một nhân
viên mới vào công ty chúng ta không thể thêm thông tin cá nhân (ENAME,
TITLE, SAL) vào quan hệ EMP nếu nhân viên đó chƣa làm cho dự án nào. Đó
là vì khóa của EMP bao hàm thuộc tính PNO và giá trị null không phải là thành
phần của một khóa.
d. Bất thƣờng loại bỏ (Deletion anormaly)
Đó là sự trái ngƣợc của bất thƣờng chèn. Nếu một nhân viên chỉ làm việc
trên một dự án và dự án đó đã kết thúc thì không thể loại bỏ thông tin dự án ra
khỏi EMP. Làm nhƣ vậy dẫn đến việc loại bỏ bộ giá trị duy nhất về nhân viên,
dẫn đến việc mất thông tin cá nhân mà chúng ta muốn lƣu giữ.
Sự chuẩn hóa chuyển đổi các lƣợc đồ quan hệ thành các lƣợc đồ không có
những vấn đề này. Phƣơng pháp phổ biến nhất để chuẩn hóa một lƣợc đồ quan11
hệ là phƣơng pháp tách (decomposition), trong đó chúng ta bắt đầu với một quan
hệ đơn, gọi là quan hệ phổ quát (universal relation), quan hệ này chứa tất cả các
thuộc tính (và có thể bất thƣờng) và làm giảm nó liên tiếp. Tại mỗi lần lặp, một
quan hệ đƣợc chia thành hai hay nhiều quan hệ ở dạng chuẩn cao hơn. Một
quan hệ đƣợc gọi là ở một dạng chuẩn nếu nó thỏa mãn các điều kiện liên kết
với dạng chuẩn đó. Đầu tiên Codd đã định nghĩa các dạng chuẩn thứ nhất (1NF),
thứ hai (2NF) và thứ ba (3NF). Boyce và Codd sau đó định nghĩa một phiên bản
sửa đổi của dạng chuẩn 3, phiên bản này thƣờng đƣợc gọi là dạng chuẩn BoyceCodd (BCNF). Điều đó đƣợc tiếp tục bằng định nghĩa các dạng chuẩn thứ tƣ
(4NF, Fagin, 1977) và dạng chuẩn thứ năm (5NF, Fagin, 1979).
Có một mối liên hệ phân cấp giữa các dạng chuẩn này. Một quan hệ đƣợc
chuẩn hóa là ở 1NF. Một số quan hệ ở 1NF cũng ở 2NF, một số trong các quan
hệ đó là ở 3NF, … Các dạng chuẩn cao hơn có tính chất tốt hơn các dạng khác
về bốn bất thƣờng đƣợc nêu ở trên.
Một trong các yêu cầu của quá trình chuẩn hóa là sự phân tách không mất
mát. Điều đó có nghĩa là sự thay thế một quan hệ bằng nhiều quan hệ khác sẽ
không dẫn đến việc mất thông tin. Nếu có thể nối các quan hệ đƣợc phân tách để
nhận lại đƣợc quan hệ ban đầu thì quá trình đó gọi là tách không mất mát.
Một cách trực quan, phép toán nối là phép toán lấy hai quan hệ và nối mỗi bộ
của quan hệ thứ hai vào những bộ nào của quan hệ thứ nhất thỏa mãn một điều
kiện đƣợc chỉ rõ. Ví dụ, điều kiện có thể là giá trị của một thuộc tính của quan
hệ thứ nhất phải bằng giá trị của một thuộc tính của quan hệ thứ hai.
Một đòi hỏi khác của quá trình chuẩn hóa là bảo toàn phụ thuộc. Một phép
tách đƣợc gọi là bảo toàn phụ thuộc nếu bao đóng của hợp của phụ thuộc trong
các quan hệ đƣợc tách là tƣơng đƣơng với bao đóng của quan hệ nguyên thủy
(theo một tập các quy tắc suy diễn).
1.1.2.1. Các cấu trúc phụ thuộc
Các dạng chuẩn dựa trên một số các cấu trúc phụ thuộc. BCNF và các dạng
chuẩn thấp hơn dựa trên phụ thuộc hàm. 4NF dựa trên phụ thuộc đa trị và 5NF
dựa trên phụ thuộc nối-chiếu.
Ket-noi.com kho tai lieu mien phi Ket-noi.com kho tai lieu mien phi12
Chúng ta sẽ định nghĩa phụ thuộc gồm:
a. Phụ thuộc hàm
Giả sử R là một quan hệ xác định trên tập thuộc tính A={A1, A2, …, An} và
giả sử X  A và Y  A. Nếu với mỗi giá trị của X trong R chỉ kết hợp đƣợc với
một giá trị duy nhất của Y thì ta nói rằng “X xác định hàm Y” hay “Y phụ
thuộc hàm vào X”. Ký hiệu là X→Y. Khóa của một quan hệ xác định hàm các
thuộc tính không khóa của cùng quan hệ.
Ví dụ 1.2
Trong quan hệ PROJ ở hình 1.2 phụ thuộc hàm có hiệu lực là
PNO → (PNAME, BUDGET) (1)
Trong quan hệ EMP chúng ta có:
(ENO, PNO) → (ENAME, TITLE, SAL, RES, DUR) (2)
Phụ thuộc hàm này không phải là phụ thuộc hàm duy nhất trong EMP. Nếu
mỗi nhân viên đƣợc cấp một mã số nhân viên duy nhất, chúng ta có thể viết
ENO → (ENAME, TITLE, SAL)
(ENO, PNO) → (RESP, DUR)
Cũng hợp lý khi nói rằng lƣơng của một chức danh cho trƣớc là cố định.
Điều đó cho sinh ra phụ thuộc hàm
TITLE → SAL
Để ý rằng một số các thuộc tính trên vế phải của phụ thuộc hàm thứ hai (2) là
phụ thuộc hàm vào một tập con của tập các thuộc tính ở vế phải của cùng phụ
thuộc hàm đó. Các thuộc tính nhƣ (ENAME, TITLE, SAL) đƣợc gọi là phụ
thuộc hàm bộ phận vào (ENO, PNO), các thuộc tính (RESP, DUR) đƣợc nói là
phụ thuộc hàm đầy đủ vào (ENO, PNO).
b. Phụ thuộc giá trị
Giả sử R là một quan hệ đƣợc định nghĩa trên tập các thuộc tính A={A1, A2,
…, An} và giả sử X → A, Y → A, Z → A. Nếu mỗi giá trị Z trong R chỉ có một
cặp giá trị (X, Y) và giá trị của Z chỉ phụ thuộc vào giá trị của X thì ta nói rằng
“X xác định đa trị Z” hay Z đa phụ thuộc vào X”. Kiểu phụ thuộc này gọi là
phụ thuộc đa trị (MVD) và đƣợc ký hiệu X →→Z13
Một cách trực quan, một phụ thuộc hàm đa trị diễn đạt một tình huống trong
đó giá trị của một thuộc tính (hay một tập thuộc tính) xác định một tập hợp giá
trị của một thuộc tính (hay một tập thuộc tính) khác. Chú ý rằng mỗi phụ thuộc
hàm cũng là một phụ thuộc đa trị nhƣng điều ngƣợc lại là không đúng.
Ví dụ 1.3
Trở lại ví dụ. Giả sử rằng chúng ta muốn lƣu trữ thông tin về một tập hợp các
nhân viên mà một tập hợp các dự án mà công ty thực hiện cũng nhƣ các văn
phòng nhánh mà ở đó các dự án này có thể đƣợc thực hiện. Điều đó có thể làm
bằng việc định nghĩa quan hệ
SKILL (ENO, PNO, PLACE)
Giả sử rằng mỗi nhân viên có thể làm việc trên mọi dự án, mỗi nhân viên sẵn
lòng làm việc tại bất kỳ văn phòng nhánh nào và mỗi dự án có thể đƣợc thực
hiện tại bất kỳ văn phòng nhánh nào. Một ví dụ quan hệ thỏa mãn các điều kiện
này đƣợc minh họa ở hình 2.3
SKILL
về MVDhinh
Hình 1.3 Ví dụ về MVD
ENO PNO PLACE
E1 P1 Toronto
E1 P1 New York
E1 P1 London
E1 P2 Toronto
E1 P2 New York
E1 P2 London
E2 P1 Toronto
E2 P1 New York
E2 P1 London
E2 P2 Toronto
E2 P2 New York
E2 P2 London
Ket-noi.com kho tai lieu mien phi Ket-noi.com kho tai lieu mien phi14
Để ý rằng không có phụ thuộc hàm nào trong quan hệ SKILL: quan hệ chỉ
bao gồm các thuộc tính khóa. Có hai phụ thuộc đa trị:
ENO →→ PNO và ENO →→ PLACE
c. Phụ thuộc nối-chiếu
Giả sử R là một quan hệ đƣợc định nghĩa trên tập hợp các thuộc tính A={A1,
A2, …, An} và X  A, Y  A, Z  A. Khi đó nếu R là bằng nửa nối của X, Y,
Z thì (X, Y, Z) tạo nên một phụ thuộc nối-chiếu
Có một tập hợp các quy tắc suy diễn dựa trên một tập hợp các tiên đề - gọi là
các tiên đề Amstrong (1974) cho phép các thao tác đại số của các phụ thuộc
hàm. Chúng cho khả năng phát hiện phủ tối thiểu của tập phụ thuộc hàm là một
tập hợp phụ thuộc hàm tối thiểu mà từ đó có thể tạo ra tất cả các phụ thuộc hàm
khác. Cho trƣớc một phủ tối thiểu các phụ thuộc hàm và một tập hợp các thuộc
tính, một thuật toán có thể đƣợc phát triển để tạo ra một lƣợc đồ quan hệ ở các
dạng chuẩn cao hơn.
1.1.2.2. Các dạng chuẩn.
Dạng chuẩn thứ nhất (1NF) tuyên bố một cách đơn giản rằng các thuộc tính
của một quan hệ chỉ chứa các giá trị nguyên tử. Nói cách khác, các quan hệ phải
phẳng, không có các nhóm lặp. Các quan hệ EMP và PROJ trong hình 1.2 thỏa
mãn điều kiện này vì vậy cả hai là ở 1NF.
Các quan hệ ở 1NF vẫn còn cho phép các bất thƣờng đƣợc đƣa ra ở trên. Để
loại bỏ một số các bất thƣờng này chúng ta phải đƣợc tách thành các quan hệ ở
các dạng chuẩn cao hơn. Chúng ta không quan tâm đặc biệt đến dạng chuẩn thứ
hai vì nó chỉ còn có tầm quan trọng lịch sử do có các thuật toán chuẩn hóa trực
tiếp một quan hệ 1NF thành dạng chuẩn thứ ba (3NF) hay cao hơn.
Một quan hệ là ở 3NF nếu với mỗi phụ thuộc hàm X → Y, trong đó Y là
không ở trong X, hay X là một siêu khóa của R, hay Y là một thuộc tính cơ
bản. Có các thuộc tính cung cấp một phân tách bảo toàn phụ thuộc và không mất
mát của một quan hệ 1NF thành quan hệ 3NF.
Ví dụ 1.415
Quan hệ PROJ trong ví dụ đang xét là ở 3NF nhƣng quan hệ EMP thì không,
do phụ thuộc hàm TITLE → SAL. Phụ thuộc hàm này vi phạm 3NF vì TITLE
không phải là siêu khóa và SAL không phải là thuộc tính cơ bản.
Vấn đề với EMP là nhƣ sau: Nếu chúng ta muốn chèn vào một sự kiện rằng
một chức danh cho trƣớc nhận một lƣơng cụ thể thì không làm đƣợc trừ phi có ít
nhất là một nhân viên có chức danh ấy (các tranh luận tƣơng tự có thể làm cho
các bất thƣờng cập nhật và xóa). Vì vậy chúng ta phải tách EMP thành hai quan
hệ:
EMP (ENO, ENAME, TITLE, PNO, RESP, DUR)
PAY (TITLE, SAL)
Ta có thể thấy rằng PAY là ở 3NF nhƣng EMP thì không bởi vì phụ thuộc
hàm ENO → (ENAME, TITLE), ENO không phải là siêu khóa và TITLE,
ENAME không phải là các thuộc tính cơ bản. Vì vậy, EMP cần đƣợc phân tích
tiếp thành
EMP (ENO, ENAME, TITLE)
ASG (ENO, PNO, RESP, DUR)
Cả hai ở 3NF.
Dạng chuẩn Boyce-Codd là một dạng mạnh hơn của 3NF. Các định nghĩa là
nhƣ nhau trừ phần cuối cùng. Để một quan hệ là BCNF, với mỗi phụ thuộc hàm
X → Y, X là một siêu khóa. Để ý rằng mệnh đề “hay Y là một thuộc tính cơ
sở” đƣợc loại bỏ khỏi định nghĩa. Dạng cuối cùng của EMP cũng nhƣ các quan
hệ PAY, PROJ, ASG là ở BCNF.
Có khả năng phân tách một quan hệ 1NF một cách trực tiếp thành một tập
hợp quan hệ ở BCNF. Các thuật toán này đƣợc đảm bảo sinh ra phép tách không
mất mát nhƣng chúng không đảm bảo bảo toàn phụ thuộc.
Một quan hệ R là ở dạng chuẩn thứ tƣ (4NF) nếu với mỗi phụ thuộc đa trị
kiểu X →→ Y trong R, X cũng xác định hàm tất cả các thuộc tính của R. Nhƣ
vậy nếu một quan hệ là ở BCNF và mọi phụ thuộc đa trị cũng là phụ thuộc hàm
thì quan hệ là ở 4NF. Điều quan trọng là ở chỗ một quan hệ 4NF hay là không
chứa một phụ thuộc đa trị thực thụ (tức là mỗi phụ thuộc đa trị cũng là phụ thuộc
Ket-noi.com kho tai lieu mien phi Ket-noi.com kho tai lieu mien phi16
hàm) hay có đúng một phụ thuộc đa trị đƣợc trình bày trong các thuộc tính và
không có phụ thuộc nào khác.
Ví dụ 1.5
Để ý rằng các quan hệ EMP, PAY, PROJ, ASG là ở 4NF bởi vì không có phụ
thuộc đa trị nào định nghĩa trên chúng. Tuy nhiên quan hệ SKILL là không ở
4NF. Để thỏa mãn các đòi hỏi nó cần đƣợc phân tách thành hai quan hệ:
EP (ENO, PNO)
EL (ENO, PLACE)
Ta có thể để ý rằng trong tất cả các dạng chuẩn ở trên, sự phân tách là thành
hai quan hệ. Dạng chuẩn thứ năm (5NF) xử lý các tình huống mà ở đó các phân
tách n-đƣờng (n>2) có thể cần thiết.
Một quan hệ là ở 5NF (còn đƣợc gọi là dạng chuẩn nối-chiếu PJNF) nếu mỗi
phụ thuộc nối đƣợc định nghĩa cho quan hệ là đƣợc bao hàm bởi các khóa dự
tuyển của R. Với mỗi phụ thuộc hàm nối đƣợc bao hàm bởi một khóa dự tuyển
của quan hệ, tập con (hay các phép chiếu) X, Y, Z phải đƣợc làm phù hợp với
khóa dự tuyển.
Ví dụ 1.6
Với quan hệ EMP chúng ta có thể định nghĩa phụ thuộc nối
*( (ENO, ENAME), (ENO, TITLE) )
Nó đƣợc bao hàm bởi khoá dự tuyển ENO (nó cũng đã trở thành khóa chính).
Dễ dàng kiểm tra rằng các quan hệ EMP, PAY, PROJ, ASG là ở 5NF. Nhƣ vậy,
các lƣợc đồ mà chúng ta kết thúc sau phân tích là nhƣ sau:
EMP (ENO, ENAME, TITLE)
PAY (TITLE, SAL)
PROJ (PNO, PNAME, BUDGET)
ASG (ENO, PNO, RESP, DUR)
Tất cả các dạng chuẩn trình bày ở trên là không
có thể đƣợc tính giá trị. Nếu không có điều kiện nào đƣợc chỉ rõ, hành động
sẽ đƣợc thực hiện sự kiện xảy ra. Nếu điều kiện đƣợc chỉ rõ, đầu tiên nó đƣợc
tính giá trị và chỉ khi nó tính giá trị là đúng (true) thì hành động của quy tắc
sẽ đƣợc thực hiện.
c. Hành động (Action) thực hiện: Hành động thƣờng là một dãy lệnh SQL
nhƣng nó cũng có thể là một giao tác cơ sở dữ liệu hay một chƣơng trình
bên ngoài sẽ đƣợc thực hiện một cách tự động.
Hãy xem một vài ví dụ minh họa khái niệm này. Có hai quan hệ NHÂN
VIÊN và ĐƠN VỊ. Mỗi nhân viên có một tên (tenNV), mã số (masoNV), lƣơng,
mã số đơn vị (masoDV) là khóa ngoài tham chiếu đến DONVI, và mã số ngƣời
giám sát (MasoNGS) là khóa ngoài đệ quy đến NHANVIEN. Với ví dụ này,
chúng ta giả thiết rằng masoNV có thể cho phép có giá trị null, chỉ ra rằng nhân
viên có thể tạm thời chƣa đƣợc đăng ký vào đơn vị nào. Mỗi đơn vị có một tên
(TenDV), một mã số (MasoDV), tổng lƣơng của tất cả các nhân viên đăng ký
vào đơn vị (Tongluong) và một ngƣời quản lý (MasoNQL) là khóa ngoài đến
NHANVIEN.
Chú ý rằng thuôc tính Tongluong thực chất là một thuộc tính suy diễn đƣợc,
giá trị của nó là tổng lƣơng của tất cả các nhân viên đăng ký vào một đơn vị cụ
thể. Việc duy trì giá trị đúng của một thuộc tính suy diễn đƣợc nhƣ vậy có thể
đƣợc thực hiện thông qua một luật tích cực. Trƣớc tiên chúng ta phải xác định
các sự kiện có thể gây ra một thay đổi giá trị của Tongluong, đó là các sự kiện
sau:
[1]. Chèn vào một hay nhiều bộ giá trị nhân viên mới
[2]. Thay đổi lƣơng của một hay nhiều nhân viên có sẵn
[3]. Thay đổi việc đăng ký của các nhân viên có sẵn từ đơn vị này sang đơn
vị khác.
[4]. Loại bỏ một hay nhiều bộ giá trị nhân viên.
Trong trƣờng hợp sự kiện 1, chúng ta chỉ cần tính lại Tongluong nếu nhân
viên mới đƣợc ghi tức khắc vào một đơn vị - nghĩa là giá trị của thuộc tính
MasoNV đối với bộ nhân viên mới là khác null (giả thiết null là cho phép đối
Link Download bản DOC
Do Drive thay đổi chính sách, nên một số link cũ yêu cầu duyệt download. các bạn chỉ cần làm theo hướng dẫn.
Password giải nén nếu cần: ket-noi.com | Bấm trực tiếp vào Link để tải:

 
Last edited by a moderator:
Các chủ đề có liên quan khác
Tạo bởi Tiêu đề Blog Lượt trả lời Ngày
D Nghiên cứu sự hài lòng của người dân về nhà ở tái định cư tại các dự án xây dựng lại nhà chung cư cũ Luận văn Kinh tế 0
D Nghiên cứu về kiến thức, thái độ, thực hành sức khỏe sinh sản vị thành niên của học sinh trung học phổ thông Y dược 0
D Nghiên cứu về mạng Nơron tích chập và ứng dụng cho bài toán nhận dạng biển số xe Công nghệ thông tin 0
D Nghiên cứu về thảo luận nhóm và ảnh hưởng của nó đến khả năng nói của học sinh không chuyên ngữ Ngoại ngữ 0
D Nghiên cứu tìm hiểu về hệ thống tệp tin trong linux Công nghệ thông tin 0
D Nghiên cứu sự khác nhau về nhu cầu sử dụng dịch vụ hẹn hò của người việt tại hà nội theo độ tuổi Văn hóa, Xã hội 0
D Nghiên cứu khái quát về công nghệ sản xuất cáp điện Khoa học kỹ thuật 0
D Nghiên cứu sự luận giải về dịch đồ học chu tử của nho gia việt nam thời trung đại Văn hóa, Xã hội 0
D Nghiên cứu một số đặc điểm sinh học và tri thức địa phương về cây Trà hoa vàng tại xã Dương Phong, huyện Bạch Thông, tỉnh Bắc Kạn Khoa học Tự nhiên 0
D Nghiên cứu đánh giá tiềm năng về sản lượng Biogas và thực trạng sử dụng năng lượng biogas tại khu vực Đan – Hoài – Hà Nội Khoa học Tự nhiên 0

Các chủ đề có liên quan khác

Top