Bài giảng Phân tích & Thiết kế hệ thống - Chương 4: Mức tổ chức và vật lý - Nguyễn Trần Phương
Trường Trung học Kinh tế Kỹ thuật Hòa Bình – Ngành Công nghệ Thông tin - Môn Phân tích & Thiết kế hệ thống
CHƢƠNG 4:
MỨC TỔ CHỨC VÀ VẬT LÝ
Chƣơng này trình bày các nội dung trọng tâm:
- Cung cấp phƣơng pháp để xây dựng và mô hình hoá các vật lý
- Học sinh, sinh viên biết lựa chọn kết hợp cả hƣớng đối tƣợng, hƣớng chức
năng để giải quyết bài toán và một công cụ thích hợp cho phát triển phần mềm
- Học sinh, sinh viên có thể sử dụng một công cụ để phát triển một phần
mềm.
- Giới thiệu một số công cụ hiện có và đang đƣợc sử dụng rộng rãi trên thị
trƣờng
4.1 MÔ HÌNH TỔ CHỨC VỀ XỬ LÝ
Những phƣơng pháp phân tích hiện đại mong muốn và hƣớng tới giải quyết toàn
bộ hoặc từng phần các tồn tại nêu trên. Tất nhiên những phƣơng pháp phân tích
hiện đại không giải quyết nhƣ nhau toàn bộ tiến trình phân tích ý niệm hoá một áp
dụng tin học, không dùng cùng một tên để chỉ cùng một khái niệm. Cũng không
xem xét tất cả các công cụ tin học dƣới cùng một góc độ. Song, có thể khẳng định
là chúng đều cùng theo các mục tiêu và cũng chịu ảnh hƣởng của những định
hƣớng dƣới đây:
Có tiếp cận toàn cục bằng cách xét mỗi phần tử, mỗi dữ liệu, mỗi chức năng
là bộ phận của một tổng thể toàn vẹn. Sự hiểu biết tổng thể toàn vẹn này rất cần
thiết cho việc phát triển tốt của mỗi bộ phận trong nó.
Xét toàn bộ tổ chức, phòng ban, xƣởng, vị trí làm việc v.v... là một phần tử
có cấu trúc, một hệ thống có những dòng vào, dòng ra, các quy tắc hoạt động và
quản lý hệ thông tin của mình v.v...
Có một cách tiếp cận phân tích và ý niệm đi xuống, hƣớng vào việc nhận
thức và ra quyết định thoạt tiên một cách tổng quát, sau đến là những đặc thù, cái
thứ nhất, tiếp đến là cái thứ hai v.v...
Nhận dạng những mức trừu tƣợng và bất biến của hệ thống đƣợc nghiên cứu
phụ thuộc vào khoảng thời gian của vòng đời, vai trò lớn hay nhỏ của việc lựa chọn
các kỹ thuật và các tổ chức có liên quan.
Nhận dạng các thành phần, dữ liệu, xử lý, bộ xử lý, v.v… của hệ thống mà
không có sự "thiên vị" nào đối với chúng.
Vận dụng những công cụ thủ công, tự động hoá trợ giúp cho việc phân tích.
Nhận dạng những điểm đối thoại và thoả thuận với ngƣời sử dụng, những
điểm này dùng để đánh dấu sự chuyển tiếp giai đoạn trong quá trình phân tích.
4.1.1 Các yếu tố tổ chức
Nhƣ đã trình bày ở chƣơng 3, mức tổ chức cùng hƣớng tới việc xây dựng hai mô
hình: Mô hình dữ liệu và Mô hình xử lý.
Giáo viên biên soạn: Nguyễn Trần Phương
76
Trường Trung học Kinh tế Kỹ thuật Hòa Bình – Ngành Công nghệ Thông tin - Môn Phân tích & Thiết kế hệ thống
Mục tiêu khi xây dựng mô hình dữ liệu ở mức vật lý là làm rõ các khía cạnh
về giải pháp thực hiện cụ thể tại các điểm công tác cụ thể hơn là ai? ở đâu? Làm
nhƣ thế nào?
Mục tiêu khi xây dựng mô hình xử lý ở mức vật lý là tính định kỳ, thời hạn
đáp ứng của hệ thống và mức độ tự động hóa của phần mềm có thể thực hiện đƣợc.
Để tƣờng minh chúng ta cùng nhau xét một ví dụ về giao dịch tài chính qua
tài khoản tại một ngân hàng:
Trƣớc kia khi thực hiện thủ công, một doanh nghiệp hoặc cá nhân khi lƣu
chuyển tiền qua ngân hàng ngƣời ta phải kiểm tra số dƣ tài khoản trƣớc khi có
nghiệp vụ lƣu chuyển sau đó chủ tài khoản phải điền thông tin chủ yếu là mã số
thuế và lƣợng tiền cần lƣu chuyển. Nhân viên ngân hàng sẽ kiểm tra sổ sách đối
chiếu để kiểm ghi giá trị mới của tài khoản sau khi đã tính tới thuế nếu có. Cuối
cùng thì nghiệp vụ giao dịch này mới bổ xung tài chính bằng phiếu báo có hoặc nợ
cho tài khoản đó thƣờng thì thủ tục này phải thực trong vòng 15 ngày.
Bây giờ khi sử dụng một phần mềm chẳng hạn nhƣ sử dụng thẻ ATM thì chủ
tài khoản chỉ cần ghi nhập số tiền cần chuyển vào tài khoản phần mềm hệ thống sẽ
tự kiểm tra mã tài khoản, mã số thuế và cộng tổng giá trị để có số dƣ hiện có, trả
kết quả lập tức nếu là tiền mặt hoặc sau vài ngày nếu là chuyển khoản. Còn đối với
việc rút tiền thì đơn giản hơn nhiều chỉ sau vài phút.
Xét về mục đích thì thì rõ ràng hai quy trình này là nhƣ nhau thế nhƣng về
quan niệm thì đây là giải pháp hoàn toàn khác nhau về cách tổ chức vì trong quá
trình kiểm tra thủ công thì ít nhất phải có hai công đoạn báo nợ và báo có cho một
tài khoản. Còn sử dụng phần mềm chỉ duy nhất một lần báo nợ, có mà thôi.
Sau đây là các yếu tố tổ chức đáng quan tâm khi phát triển dự án dù cho cách
thức tiếp cận hƣớng đối tƣợng hay tiếp cận hƣớng chức năng:
Điểm công tác: Nhƣ đã trình bày ở chƣơng 2 nếu tiếp cận hƣớng đối tƣợng
thì là đây ghi nhận các hành vi hoạt động còn nếu tiếp cận hƣớng chức năng thì đây
ghi nhận một số công đoạn phải thực hiện.
Bản chất của việc xử lý: Thể hiện mức độ tự động hóa. Thông thƣờng trong
các hệ thông tin đủ phức tạp ngƣời ta phối hợp, phân chia thành các phân hệ. Mỗi
phân hệ có đầy đủ các đặc tính của một hệ thống bao gồm Hệ quản trị - Hệ thông
tin - Hệ tác nghiệp. Trong đó hệ quản trị chính là hoạt động chính bao trùm hệ
thống hay chính là nhiệm vụ cơ bản của tổ chức (có tài liệu còn gọi là hạt nhân của
hệ thống).
Hệ thống tin bao gồm luồng thông tin và khối lƣợng thông tin cần trao đổi
của hệ thống; Hệ tác nghiệp gồm toàn bộ quá trình xử lý thông tin. Ví dụ nhƣ xem
xét mô hình tổ chức tại một trƣờng trung cấp ta thấy: Nhiệm vụ đào tạo bao trùm
toàn bộ hoạt động, các nhiệm vụ bổ trợ nhƣ tài chính, quản lý cơ sở vật chất, quản
lý giảng viên, v.v.. theo mô hình 4.1.
Xử lý tương tác người – Máy: Xử lý bằng máy nhƣng cần thông tin tức thời
trong quá trình xử lý.
Giáo viên biên soạn: Nguyễn Trần Phương
77
Trường Trung học Kinh tế Kỹ thuật Hòa Bình – Ngành Công nghệ Thông tin - Môn Phân tích & Thiết kế hệ thống
Hình 4.1 : Phân hệ trƣờng trung cấp chuyên nghiệp HB
Xử lý hàng loạt: Xử lý thứ tự các công việc theo theo một trình tự cho trƣớc.
Nhƣng phân biệt sự khác nhau giữa hiện trạng và giửi pháp thiết kế sau này.
Thời gian: Thông thƣờng các vấn đề về yếu tố thời gian có liên quan đến dây
chuyền xử lý, thời hạn và tính chu trình và thƣờng thì không diễn tả bằng các công
thức đƣợc.
4.1.2 Các quy tắc tổ chức
Các quy tắc tổ chức là một phần của mức tổ chức. Tuy nhiên nhƣ đã trình
các quy tắc tổ chức cũng phụ thuộc và mức quan niệm.
Mỗi điểm công tác sẽ có các quy tắc tổ chức liên quan cơ cấu tổ chức con
ngƣời và mối quan hệ đến các đối tƣợng đó.
Cách thức xử lý thì phụ thuộc vào hai yếu tố chính là điều kiện kỹ thuật cho
phép và kỹ năng của con ngƣời tham gia hệ thống nằm lẫn trong mỗi công đoạn
cùng với quy tắc quản lý.
4.1.3 Khái niệm pha
Pha là chuỗi các nhiệm vụ nối tiếp nhau sao cho chúng cùng xảy cùng một
điểm công tác và cùng cách thức xử lý. Pha là hoạt động của hệ thống có tính đến
các yếu tố tổ chức.
Ở mức quan niệm với các khái niệm công đoạn, công việc, quá trình, mô
hình hệ thống và các nhiệm vụ. Trong mức tổ chức các nhiệm vụ đó đƣợc kết hợp
với các yếu tố tổ chức, theo [GTPTTK.ĐHQG] để diễn tả mô hình tổ chức về xử
lý cũng đƣợc sử dụng mô hình hệ thống tƣơng tự nhƣ mô hình quan niệm về xử lý
với một số thay đổi nhƣ sau:
Đơn vị hệ thống là pha.
Đƣa vào các yếu tố tiến trình thời gian theo các pha.
Điểm công tác, bản chất xử lý theo các pha.
Giáo viên biên soạn: Nguyễn Trần Phương
78
Trường Trung học Kinh tế Kỹ thuật Hòa Bình – Ngành Công nghệ Thông tin - Môn Phân tích & Thiết kế hệ thống
Có rất nhiều phƣơng pháp toán học hỗ trợ việc xây dựng, đánh giá một mô
hình tổ chức tốt nhƣ sơ đồ PERT sẽ đƣợc trình bày ở chƣơng 5.
4.2 MÔ HÌNH CƠ SỞ DỮ LIỆU
Giải pháp tổ chức về dữ liệu là chính mô hình cơ sở dữ liệu (CSDL) đƣợc sử dụng
thể hiện ở các tiêu chí :
Tính nhất quán của dữ liệu về cấu trúc và quản trị.
Tính độc lập không phục thuộc vào các công cụ phát triển cụ thể nào đó.
Để quản trị CSDL ngƣời ta xây dựng những phần mềm quản trị CSDL gồm chức
năng cơ bản:
. Tạo lập các cấu trúc dữ liệu (loại, kiểu, thành phần, tính chất).
. Cập nhật dữ liệu.
. Thiết lập các quan hệ.
. Kiểm soát các ràng buộc.
. Phân quyền truy cập.
. Bảo mật hệ thống
Điển hình hiện nay đang đƣợc sử dụng nhiều là phần mềm quản trị cơ sở dữ liệu
(HQTCSDL) Foxpro, Access. Đối với các công cụ này còn hỗ trợ cả môi trƣờng
lập trình ở các cấp độ khác nhau cho ngƣời sử dụng (SQL, sinh giao diện, sinh báo
cáo). Vậy cho nên với dự án phần mềm nhỏ thì việc đặc tả, sinh mã có thể chỉ cần
sử dụng những phần mềm này là đƣợc nhƣng đối với phần mềm có quy mô lớn,
phức tạp thì rất khó khăn nếu không nói là không thể (các dự án này đều được phát
triển bởi do nhiều đội phát triển độc lập với sự kết hợp có thể hơn một công cụ hỗ
trợ phân tích). Chính điều đó các công ty phát triển ngƣời ta đều sử dụng một công
cụ chuyên biệt nào đó nhƣ CASE; RATION ROSE, AGRO UML; POWER
DESIGN;… có thể sử dụng ngôn ngữ UML để phát triển dự án. Các công cụ này
cung cấp phƣơng pháp xây dựng các biểu đồ theo cách tiếp cận hƣớng đối tƣợng
bao gồm những phần chính:
. Xây dựng biểu đồ sử dụng các đối tƣợng (use-case diagram)
. Xây dựng các biểu đồ, lƣợc đồ lớp (class diagram)
. Xây dựng biểu đồ trình tự
. Xây dựng biểu đồ cộng tác
. Xây dựng biểu đồ hoạt động
. Xây dựng lƣợc đồ các thành phần (component diagram)
. Sinh mã
. Lập tài liệu
4.2.1 Mô hình phân cấp
Mô hình phân cấp là mô hình ra đời vào vào những năm 60 của thế kỷ trƣớc. Ở đây
dữ liệu đƣợc phân loại theo các tiêu chuẩn của từng tầng khác nhau theo cấu trúc
dạng cây. Để tìm thông tin trong CSDL ta đi theo nhánh.
Giáo viên biên soạn: Nguyễn Trần Phương
79
Trường Trung học Kinh tế Kỹ thuật Hòa Bình – Ngành Công nghệ Thông tin - Môn Phân tích & Thiết kế hệ thống
Ví dụ: Nhằm diễn tả việc cung cấp chức năng hệ thống thông tin từ mức tổng quát
đến mức chi tiết gần của hệ thống cung ứng vật tƣ, biểu đồ có dạng cây (tree) nhƣ
sau:
Hình 4.2: Biểu đồ phân cấp chức năng Hệ thống cung ứng vật tƣ
4.2.2 Mô hình mạng theo [GTPTTK.ĐHQG]
Mô hình mạng hay còn gọi là mô hình CODASYL có những khái niệm cơ bản:
Đơn vị dữ liệu (Data Item): Tƣơng ứng với từng thuộc tính của đối tƣợng
cần mô tả.
Nhóm dữ liệu (Data agreate): Tƣơng ứng với các thuộc tính hợp thành.
Bản ghi (Record): Là bộ phận có thứ tự của đơn vị dữ liệu và nhóm dữ liệu.
Liên kết (Set): Mô tả quan hệ giữa hai bản ghi mà tronh đó có một bản ghi là
bản ghi chủ vầ bản ghi còn lại là thành viên. Để biểu diễn mô hình mạng ngƣời ta
dùng đồ thị có hƣớng.
Ví dụ: Vẽ BĐLDL của hệ cung ứng vật tƣ (chỉ xét về mặt thông tin).
Thông tin thƣơng lƣợng
Nhà cung cấp
Nhà cung cấp
Cheque
Phiếu giao
Đơn đặt
Thanh toán
hàng
hàng
(+hàng)
Hóa đơn
Đặt hàng
Hóa
đã xác
Đơn hàng
đơn
nhận chi
Danh sách đơn hàng
Nhận hàng
Nhận hàng
Đối chiếu
Dự
Dự trù / Đơn hàng
trù
Danh sách
hàng nhận
Phân xƣởng
sản xuất
Phiếu phát hàng
Hình 4.3: BĐLDL của hệ cung ứng vật tƣ
Giáo viên biên soạn: Nguyễn Trần Phương
80
Trường Trung học Kinh tế Kỹ thuật Hòa Bình – Ngành Công nghệ Thông tin - Môn Phân tích & Thiết kế hệ thống
4.2.3 Mô hình quan hệ
Mô hình ra đời cùng thời với mô hình mạng (1970). Đây chính là mô hình đã
nghiên cứu ở chƣơng 3. Trong mô hình này có một số khái niệm chính tuy chƣa đề
cập nhƣng đã thể hiện phần nào trong chƣơng trƣớc.
Quan hệ (relation): Mô hình quan hệ xoay quan các khái niệm quan hệ, bộ
(tuple) và thuộc tính (attribute). Những khái niệm này tƣơng ứng với các khái niệm
tập thực thể, thực thể và thuộc tính. Hình 3.11: Mô hình ER mối quan hệ
HỌC_VIÊN và MÔN_HỌC đã thể hiện mối quan hệ này.
Miền (Domain): Tập hợp các giá trị đƣợc xác định bởi một tên và có miền
giá trị cụ thể. Ví dụ miền giới tính có hai giá trị “Nam, “Nữ”
Thuộc tính (attribute): Phần giao giữa dòng và cột là giá trị thuộc tính. Giá
trị của thuộc tính phải là giá trị đơn không đa trị hay cấu trúc. Một quan hệ có giá
trị thuộc tính nhƣ vậy thì quan hệ này đạt dạng chuẩn một có dạng nhƣ sau:
Tên quan hệ
Bộ 1
Tên miền 1
Giá trị
Tên miền 2
Giá trị
…
Tên miền n
Giá trị
Bộ 1
…
Bộ m
Giá trị
Giá trị
Giá trị
Giá trị
Giá trị
Giá trị
Giá trị
Giá trị
Giá trị
Bộ (tuple): Là một bộ các giá trị của các thuộc tính trong một dòng của quan
hệ. Thứ tự xuất hiện các thuộc tính trong một bộ thì không ảnh hƣởng đến kết quả
tính toán. Một bộ có tính duy nhất trong quan hệ. Nghĩa là trong một quan hệ
không thể có hai bộ giống nhau giá trị các thuộc tính đều giống nhau). Một thuộc
tính hay nhóm các thuộc tính dùng để phân biệt bộ này với bộ kia trong quan hệ
đƣợc gọi là khoá chính. Khóa chính trong một quan hệ lại xuất hiện trong một quan
hệ khác đƣợc gọi là khóa ngoại.
Quy ƣớc đƣợc đề nghị để biểu diễn:
Tên quan hệ đƣợc ghi bằng chữ hoa trƣớc ngoặc tròn và tất cả thuộc tính
đƣợc liệt kê trong ngoặc tròn.
Khóa chính gạch chân.
Khóa ngoại viết nghiêng
Khoá (key, candidate key): Là tập hợp nhỏ nhất các thuộc tính mà giá trị của
nó dùng để phân biệt bộ này với bộ kia trong một quan hệ.
Khóa hợp (composite key): Là khóa có trên một thuộc tính.
Khóa chính (primary key): Là khóa đƣợc chọn để cài đặt trong một
QTCSDL. Khi chọn khóa chính ta phải chú ý các tính chất sau: áp dụng, duy nhất,
nhỏ nhất, ổn định.
Khóa có tính áp dụng khi nó không bỏ sót bất kỳ trƣờng hợp nào của vấn
đề.
Khóa phải có tính duy nhất dùng để phân biệt bộ này với bộ kia trong
quan hệ.
Khóa có tính nhỏ nhất khi ta bỏ bất kỳ thuộc tính nào của nó thì nó không
còn tính duy nhất nữa.
Giáo viên biên soạn: Nguyễn Trần Phương
81
Trường Trung học Kinh tế Kỹ thuật Hòa Bình – Ngành Công nghệ Thông tin - Môn Phân tích & Thiết kế hệ thống
Khóa có tính ổn định khi giá trị của khóa không thay đổi.
Ví dụ về khóa chính không ổn định
WSE bán lẻ đồ điện, là cửa hàng được cung cấp hàng bởi NSD. Thỏa thuận giữa
WSE và NSD là WSE phải mua tối thiểu 90% hàng của NSD. WSE có thể mua tối
đa 10% hàng của những nhà cung ứng độc lập khác.
WSE đang thiết lập một hệ máy tính cho điều hành và xử lý đơn hàng. Hệ sử dụng
cùng mã sản phẩm với NSD và tạo mã riêng cho nguồn hàng mua từ nơi khác.
Ví dụ trên dẫn tới hai vấn đề nhƣ sau:
Khi NSD thay đổi mã hàng thì mã hàng của WSE sẽ bị thay đổi theo gây ra
tính mất ổn định.
Khi một mặt hàng vừa đƣợc cung ứng từ nhà cung ứng độc lập và từ NSD
thì sẽ gây ra tình trạng một mặt hàng có tới hai mã hàng khác nhau. Để tránh tình
trạng này buộc lòng phải thay đỗi mã hàng.
Khóa ngoại (foreign key): Trong mô hình quan hệ, để diễn tả mối kết hợp,
ngƣời ta chép khóa chính từ quan hệ này sang quan hệ kia. Trong quan hệ nhận,
khoá đƣợc chép sang gọi là khóa ngoại. Từ ví dụ của Hình 3.7.
HỌC_VIÊN (Mã học viên, tên học viên,…, mã môn học)
MÔN_HỌC (Mã môn học, tên môn học, thời lƣợng)
Khóa dự tuyển và khóa khác:
Ví dụ về khóa dự tuyển: ANFD (Liên hiệp các nhà phân phối thực phẩm quốc tế)
là một tập đoàn phục vụ khách hàng thông qua mạng lƣới các văn phòng buôn bán
cấp quốc gia và nó có trên 150 văn phòng nhƣ vậy. ANFD quản lý chi tiết xe của
các văn phòng đại diện bằng quan hệ sau:
XE(số đăng bộ, qui cách, hình dáng, màu sắc, số sƣờn, số máy, mã xe, quốc
gia). Bƣớc đầu, có một số nhóm thuộc tính có khả năng phân biệt xe này với xe
kia. Các nhóm thuộc tính này đƣợc gọi là khóa dự tuyển: (số đăng bộ, quốc gia),
(số sƣờn), (số máy), (mã xe).
Khóa dự Điều kiện
tuyển lựa chọn
Số đăng bộ, Áp dụng Gây ra vấn đề khi cần lƣu trữ thông tin về xe chƣa đăng
Diễn giải
quốc gia
bộ
Ổn định Gây ra vấn đề vì số đăng bộ có khả năng thay đổi. Khi
số đăng bộ thay đổi (khi bán xe) ta phải sửa lại giá trị
số đăng bộ của xe đó làm cho khóa chính không ổn
định
Duy nhất Chỉ riêng số đăng bộ không có tính duy nhất từ quốc
gia này sangquốc gia khác
Nhỏ nhất Không nhỏ nhất trong phạm vi một quốc gia
Áp dụng Không có vấn đề vì mỗi xe có số sƣờn khác nhau
Ổn định Không có vấn đề vì số sƣờn không thay đổi
Duy nhất Duy nhất cho mỗi xe
Số sƣờn
Nhỏ nhất Chỉ gồm một thuộc tính thì đƣơng nhiên nhỏ nhất
Giáo viên biên soạn: Nguyễn Trần Phương
82
Trường Trung học Kinh tế Kỹ thuật Hòa Bình – Ngành Công nghệ Thông tin - Môn Phân tích & Thiết kế hệ thống
Số máy
Áp dụng Không vấn đề
Ổn định Có vấn đề vì máy có khả năng đƣợc thay mới
Duy nhất Không có vấn đề
Nhỏ nhất Chỉ gồm một thuộc tính thì đƣơng nhiên nhỏ nhất
Áp dụng Không có vấn đề vì do công ty tạo ra
Ổn định Không có vấn đề vì do công ty tạo ra
Duy nhất Không có vấn đề vì công ty tự chịu trách nhiệm bảo
đảm chúng phải khác nhau
Mã xe
Nhỏ nhất Chúng chỉ gồm một thuộc tính nên đƣơng nhiên nhỏ
nhất
Qua bảng phân tích trên thì khóa chính có khả năng là một trong hai thuộc
tính sau: Số sƣờn và mã xe. Do số sƣờn thƣờng dài và không đồng nhất nên không
tiện trong công tác quản lý của công ty. Công ty tự tạo ra mã xe là giải pháp chọn
lựa có tính thực tiễn cao.
Số đăng bộ,
quốc gia
Loại vì không có tính duy nhất
Số đăng bộ,
quốc gia
Số sƣờn
Khóa phụ
Mã xe
Khóa chính
Hình 4.4: Mối quan hệ khóa dự tuyển, khóa khác và khóa chính
Khóa nhân tạo (khóa đại diện) artificial key (surrogate key): Đôi khi việc
xác định khóa chính không phải lúc nào cũng thực hiện đƣợc do bốn tính chất ràng
buộc: Áp dụng, ổn định, duy nhất, nhỏ nhất. Trong các trƣờng hợp nhƣ vậy, buộc
ta phải đƣa vào một thuộc tính với mục đích làm khóa chính đƣợc gọi là khóa nhân
tạo (artificial key), đôi khi còn gọi là khóa đại diện (surrogate key). Các khóa nhân
tạo nhƣ: mã nhân viên, mã khách hàng, số hóa đơn, mã tài sản cố định.
Khóa nhân tạo luôn luôn thỏa 4 tính chất áp dụng, ổn định, duy nhất, nhỏ
nhất. Khi sử dụng khóa nhân tạo ta cần chú ý các điều sau:
Không gắn ngữ nghĩa của vấn đề vào khóa nhƣ mã khách hàng từ 1 đến
1000 là khách hàng của các chi nhánh phía bắc, mã khách hàng lớn hơn
1000 là khách hàng của các chi nhánh phía nam.
Không dùng lại giá trị khóa đã xóa cho một bộ giá trị mới vì ảnh hƣởng
đến dữ liệu cũ.
Kiểm tra trƣờng hợp nhập hai bộ giá trị của một đối tƣợng.
Khóa phụ (Secondary keys): Khóa phụ là một thuộc tính hay một nhóm các
thuộc tính thƣờng hay đƣợc sử dụng trong khai thác dữ liệu. Ví dụ vấn đề Trƣờng
cao đẳng có thuộc tính tên học viên và thuộc tính tên môn học hay đƣợc dùng
Giáo viên biên soạn: Nguyễn Trần Phương
83
Trường Trung học Kinh tế Kỹ thuật Hòa Bình – Ngành Công nghệ Thông tin - Môn Phân tích & Thiết kế hệ thống
trong tìm kiếm nên chúng đƣợc sắp xếp để đẩy nhanh tốc độ xử lý. Những vùng
này đƣợc gọi là khóa phụ.
Những tính chất khác của mô hình quan hệ là:
Đại số quan hệ, phép tính quan hệ: Đại số quan hệ và phép tính quan hệ tạo ra một
số chức năng nhƣ:
o Trích một số dòng trong quan hệ.
o Trích một số cột trong quan hệ.
o Kết nối quan hệ thông qua khóa ngoại
o Ràng buộc toàn vẹn
Mô hình quan hệ định nghĩa ba mức ràng buộc:
. Ràng buộc toàn vẹn thực thể (Entity integrity constraint): Thực chất của
ràng buộc thực thể là các ràng buộc trên khóa chính thỏa mãn các tính
chất: duy nhất, không rỗng, nhỏ nhất.
. Ràng buộc toàn vẹn tham chiếu (Referential integrity constraint): Ràng
buộc tồn tại đòi hỏi giá trị khóa ngoại trong một quan hệ phải tồn tại
trong quan hệ có khóa chính tƣơng ứng.
HỌC VIÊN
MÔN HỌC
Mã
học
viên
Tên học viên
…
…
Mã
môn
học
Mã
môn
học
Tên môn học
Thời
lƣợng
Sv001 Nguyễn Văn Thịnh
Sv002 Quách Hữu An
Sv003 Lê Quang Khai
CN001
CN010
CN012
…
CN001 Hệ điều hành
CN010 Toán rời rạc
CN012 Hệ QT CSDL
45 giờ
30 giờ
75 giờ
…
…
…
…
…
Sv055 Trần Thanh Quý
CN099
CN055 CTDL>
?
30 giờ
Hình 4.5: Ràng buộc sƣ tồn tại bị vi phạm bởi học viên Sv055
. Ràng buộc toàn vẹn loại dữ liệu (Data type integrity constraint)
. Ràng buộc miền giá trị (Domain integrity constraint)
o Ngôn ngữ hỏi có cấu trúc SQL (Structured Query Language). Các chức
năng này đƣợc thể hiện trong HQTCSDL quan hệ qua ngôn ngữ SQL. SQL là ngôn
ngữ phi thủ tục chúng khai thác dữ liệu bằng cách mô tả truy xuất cái gì hơn là truy
xuất nhƣ thế nào. Các bƣớc và công việc thực hiện trong mô hình hóa dữ liệu sơ đồ
của Hình 3.7 đƣợc tóm tắt thành các quy tắc chính trong giai đoạn thiết kế nhƣ
sau:
o QT 1: Mỗi tập thực thể trong mô hình ER đƣợc chuyển thành một quan
hệ.
o QT 2: Mỗi thuộc tính trong mô hình ER đƣợc chuyển thành thuộc tính
trong quan hệ tƣơng ứng.
Giáo viên biên soạn: Nguyễn Trần Phương
84
Trường Trung học Kinh tế Kỹ thuật Hòa Bình – Ngành Công nghệ Thông tin - Môn Phân tích & Thiết kế hệ thống
o QT 3: Thuộc tính nhận diện trong mô hình ER đƣợc chuyển thành khóa
chính trong quan hệ tƣơng ứng. Trƣờng hợp khóa chính không thỏa bốn tính chất
chọn lựa, thì phải chọn khóa chính khác hay đƣa vào khóa nhân tạo.
o QT 4: Thể hiện mối quan hệ thông qua khóa ngoại:
1 : 1 Chuyển khóa chính từ quan hệ 1 sang quan hệ 2 hay ngƣợc lại (tức là
khóa chính của thực thể này thành thuộc tính của thực thể kia).
1 : n Chuyển khóa chính từ bên một sang bên nhiều (tức là chuyển khóa
chính của thực thể từ bên 1 sang bên n để làm khóa ngoại).
n : n Tạo quan hệ toàn khóa (tức là tạo một quan hệ mới có khóa chính là sự
kết hợp các khóa chính của hai quan hệ có bản số kết nối nhiều nhiều để hạ bậc
quan hệ hai thực thể chính bằng thực thể trung gian)
4.2.4 Mô hình CSDL trong phân tích và thiết kế hƣớng đối tƣợng
Với cách tiếp cập theo hƣớng đối tƣợng nhà phát triển lại quan tâm CSDL
theo mô hình lớp và xây dựng các mối quan hệ trên các lớp đó.
4.2.4.1 Vấn đề xác định lớp
Khái niệm cơ bản nhất trong phƣơng pháp hƣớng đối tƣợng là khái niệm đối
tƣợng. Một đối tượng được hiểu là một thực thể có thực hoặc là một thực thể khái
niệm. Mỗi đối tượng được mô tả bởi các trạng thái và hành vi cho biết đối tượng
đó sẽ hành động như thế nào khi nhận được thông điệp từ các đối tượng khác.
Hoạt động của hệ thống đƣợc thể hiện qua trạng thái của các đối tƣợng và sự
tƣơng tác giữa các đối tƣợng đó.
Một nhóm đối tượng có chung thuộc tính và phương thức tạo thành một lớp.
Vấn đề xác định lớp trở thành một trong những nhiệm vụ cơ bản của phân tích,
thiết kế hệ thống hƣớng đối tƣợng.
Mối tƣơng tác giữa các đối tƣợng trong hệ thống sẽ đƣợc biểu diễn thông
qua mối quan hệ giữa các lớp. Các lớp (bao gồm cả các thuộc tính và phương thức)
cùng với các mối quan hệ sẽ tạo thành biểu đồ lớp.
Biểu đồ lớp là một biểu đồ dạng mô hình tĩnh. Một biểu đồ lớp miêu tả
hƣớng nhìn tĩnh của một hệ thống bằng các khái niệm lớp và mối quan hệ giữa
chúng với nhau.
Một trong các mục đích của biểu đồ lớp là tạo nền tảng cho các biểu đồ
khác, thể hiện các khía cạnh khác của hệ thống (ví dụ như trạng thái của đối tượng
hay cộng tác động giữa các đối tượng, được chỉ ra trong các biểu đồ động). Một
lớp trong một biểu đồ lớp có thể đƣợc thực thi trực tiếp trong một ngôn ngữ hƣớng
đối tƣợng có hỗ trợ trực tiếp khái niệm lớp. Một biểu đồ lớp chỉ ra các lớp, nhƣng
bên cạnh đó còn có một biến tấu hơi khác đi một chút chỉ ra các đối tƣợng thật sự
là các thực thể của các lớp này (biểu đồ đối tượng).
Xác định lớp là một trong những bƣớc khó nhất trong phát triển phần mềm
hƣớng đối tƣợng. Không có một quy tắc chung nào cho viêc xác định lớp trong mọi
hệ thống. Kết quả của bƣớc xác định lớp phụ thuộc nhiều vào kinh nghiệm của các
nhóm phát triển phần mềm khác nhau. Các phƣơng pháp xác định lớp đƣợc đƣa ra
chỉ mang tính định hƣớng cho nhóm phát triển chứ không giúp nhóm phát triển tìm
ra cụ thể lớp nào là cần thiết hay không cần thiết, đúng hay sai.
Giáo viên biên soạn: Nguyễn Trần Phương
85
Trường Trung học Kinh tế Kỹ thuật Hòa Bình – Ngành Công nghệ Thông tin - Môn Phân tích & Thiết kế hệ thống
Có nhiều phƣơng pháp xác định lớp khác nhau. Ba phƣơng pháp xác định
lớp sau đây đƣợc xem là phổ biến và nhiều nhóm phát triển đã áp dụng:
Phương pháp trích danh từ: Theo phƣơng pháp này, đầu tiên ngƣời phát
triển hệ thống cần định nghĩa sản phẩm phần mềm bằng một câu, sau đó kết hợp
các ràng buộc để phát triển thành một đoạn. Dựa trên đoạn văn mô tả này, ngƣời
phát triển sẽ lấy ra các danh từ, chia thành các nhóm và đề cử ra các lớp cũng nhƣ
thuộc tính và phƣơng thức của các lớp đó
Phương pháp dùng thẻ ghi CRC (class responsibility collaboration):
Dựa trên một số lớp đã có, phƣơng pháp này sử dụng một thẻ ghi cho mỗi lớp
trong đó biểu diễn các thông tin liên quan đến trách nhiệm (responsibility) của lớp
đó và các lớp phối hợp với nó (collaboration). Từ thẻ ghi này, ngƣời phát triển sẽ
tìm ra các lớp khác cần thiết và quan trọng hơn là xác định đầy đủ các thuộc tính,
phƣơng thức của từng lớp và mối quan hệ giữa các lớp.
Phương pháp xác định lớp từ use case và scenario: ngƣời phát triển
nghiên cứu cẩn thận các use case và scenario (cả chuẩn và ngoại lệ) để tìm ra các
thành phần đóng vai trò nào đó trong các use case. Các thành phần này sẽ đƣợc tập
hợp lại và đề cử ra các lớp. Các danh từ xuất hiện trong scenario biểu diễn thông
tin cho một thành phần nhƣ vậy có thể trở thành các thuộc tính còn các động từ
xuất hiện trong mối quan hệ giữa các thành phần đó có thể trở thành các phƣơng
thức tƣơng ứng trong lớp đó.
Phƣơng pháp xác định lớp từ use case và scenario sẽ đƣợc trình bày cụ thể
trong các phần xây dựng biểu đồ lớp trong pha phân tích Giới thiệu rational rose
2003 của tài liệu.
4.2.4.2 Xây dựng biểu đồ lớp trong pha phân tích
Biểu đồ lớp là một trong những biểu đồ quan trọng nhất, có tính quyết định trong
tiến trình phát triển phần mềm hƣớng đối tƣợng. Trong pha phân tích, biểu đồ lớp
chƣa đƣợc xây dựng hoàn chỉnh mà chỉ có các nhiệm vụ chính là:
Xác định các lớp
Xác định các thuộc tính và một số phƣơng thức cơ bản (chƣa chi tiết các
phƣơng thức).
Bƣớc đầu chỉ ra một số mối quan hệ trong sơ đồ lớp.
Bước 1: Xác định các lớp từ các use case và scenario
Bƣớc này đƣợc thực hiện theo nguyên tắc chung nhƣ sau:
Nghiên cứu kỹ tất cả các use case và scenario để tìm ra các danh từ có vai trò
nào đó trong các scenario (khởi đầu một tƣơng tác, bắt đầu hay nhận một hành
động trong scenario, …). Các danh từ này sẽ trở thành các lớp ứng cử viên.
Loại bỏ các lớp ứng cử viên không thích hợp. Các danh từ không thích hợp
thuộc vào một trong các trƣờng hợp sau:
Lớp dư thừa: do có hai hay nhiều danh từ cùng chỉ một thực thể nên ta
chỉ cần giữ lại một từ duy nhất và loại bỏ các từ khác.
Danh từ không thích hợp: đó là các danh từ không liên quan đến phạm vi
của bài toán.
Giáo viên biên soạn: Nguyễn Trần Phương
86
Trường Trung học Kinh tế Kỹ thuật Hòa Bình – Ngành Công nghệ Thông tin - Môn Phân tích & Thiết kế hệ thống
Danh từ mô tả những lớp không rõ ràng: đó là các danh từ hoặc không
biểu diễn một thực thể cụ thể hoặc các khái niệm không rõ nghĩa.
Các danh từ chỉ là một vai trò (role) trong mối quan hệ với một lớp khác.
Các danh từ biểu diễn các công cụ xây dựng phần mềm hoặc các thuật
ngữ trong lập trình hay thuật toán (ví dụ stack, list, array, …).
Xem xét bài toán quản lý thƣ viện, từ các use case và scenario, ta có thể liệt
kê các danh từ nhƣ sau: bạn đọc, tên bạn đọc, địa chỉ bạn đọc, thủ thư, username,
password, thẻ mượn, sách, ngày mượn sách, ngày trả sách, số lượng sách … Dựa
vào tập danh từ này, bƣớc đầu ta có thể xác định một số lớp nhƣ: bạn đọc, thủ thư,
thẻ mượn, sách.
Bước 2: Xác định các thuộc tính và một số phương thức cơ bản
Dựa trên tập các lớp đã đƣợc xác định, ngƣời phát triển hệ thống tiếp tục nghiên
cứu kỹ các use case và scenario và trả lời các câu hỏi sau:
Với mỗi lớp, những danh từ nào mô tả thông tin của lớp đó. Trả lời câu
hỏi này sẽ giúp ta tìm ra các thuộc tính.
Những thông tin nào của lớp thực sự liên quan đến lĩnh vực quan tâm của
hệ thống. Trả lời câu hỏi này giúp ta loại các thuộc tính không cần thiết.
Những thông tin nào là thông tin riêng của lớp (các thuộc tính private),
những thông tin nào có thể chia sẻ trong mối quan hệ với lớp khác (các thuộc tính
protected hoặc public).
Tiếp theo, ngƣời phát triển hệ thống xem xét các động từ đi kèm với các
danh từ biểu diễn lớp trong scenario và xem xét xem các động từ ấy có trở thành
các phƣơng thức đƣợc hay không. Tuy nhiên, trong pha phân tích, chúng ta chỉ có
thể xác định một số phƣơng thức dễ nhận thấy và cũng chƣa cần xác định chi tiết
giá trị trả về cũng nhƣ các tham số. Các thông tin này sẽ đƣợc cụ thể hóa trong pha
thiết kế.
Biểu đồ lớp bƣớc đầu của hệ quản lý thƣ viện đƣợc biểu diễn nhƣ trong
Hình 4.6. Các lớp Bạn đọc và Thủ thƣ đƣợc kế thừa từ một lớp chung tên là
Ngƣời. Tại một thời điểm, một bạn đọc có tƣơng ứng một Thẻ mƣợn. Một thẻ
mƣợn có thể cho mƣợn cùng một lúc một hoặc nhiều cuốn sách.
Giáo viên biên soạn: Nguyễn Trần Phương
87
Trường Trung học Kinh tế Kỹ thuật Hòa Bình – Ngành Công nghệ Thông tin - Môn Phân tích & Thiết kế hệ thống
Hình 4.6: Sơ đồ lớp phân tích của hệ thống quản lý thƣ viện
4.3 CHUẨN HÓA TRÊN MÔ HÌNH CSDL
Một CSDL còn dƣ thừa dữ liệu sẽ gây trở ngại cho việc cập nhật dữ liệu. Chuẩn
hóa CSDL là hoạt động tạo ra một CSDL không còn dƣ thừa dữ liệu, một CSDL
đạt tối thiểu dạng chuẩn 3. Trong các giai đoạn phân tích thiết kế hệ thống, hoạt
động chuẩn hóa nằm trong giai đoạn thiết kế CSDL (xem hình):
THIẾT KẾ HỆ THỐNG - (SYSTEMS DESIGN)
1. Thiết kế giao diện con ngƣời (designing the human interface)
2. Thiết kế cơ sở dữ liệu (designing database)
a) Thiết kế csdl logic (designing logical database)
- Biến đổi mô hình ER thành mô hình quan hệ
- Kiểm tra yêu cầu chức năng
- Chuẩn hóa cơ sở dữ liệu
b) Thiết kế csdl vật lý (designing physical database)
- Chuyển các quan hệ đạt chuẩn thành các đặc tả
tập tin máy tính
THỰC HIỆN VÀ VẬN HÀNH HỆ THỐNG
(SYSTEMS IMPLEMENTATION AND
OPERATION)
Chƣơng 2 trong tài liệu đã đề cập phần nào về chuẩn hóa mô hình tuy nhiên
chƣơng nay chúng ta sẽ đề cập chi tiết hơn. Một lƣợc đồ quan hệ trên đó thƣờng thì
sẽ áp đặt các phụ thuộc hàm (Khóa là một trường hợp riêng của phụ thuộc hàm).
Phụ thuộc hàm (Functional Dependency): Thuộc tính Y trong quan hệ phụ
thuộc hàm vào thuộc tính X (hay X1, X2,..) của cùng quan hệ, nếu ứng với giá trị
của X chỉ có 1 giá trị của Y.
Ký hiệu: X
Y hay X1,X2
Y
Ta nói Thuộc tính Y phụ thuộc hàm vào thuộc tính X hay giá trị của X xác định
duy nhất một giá trị của Y hay Y đƣợc xác định bởi X.
Ví dụ: Trong hệ CSDL HỌC VIÊN, thuộc tính tên học viên phụ thuộc hàm
vào mã học viên
Phụ thuộc hàm đầy đủ: Thuộc tính Y trong quan hệ phụ thuộc hàm đầy đủ vào
thuộc tính X (X1, X2,..) của cùng quan hệ, nếu nó phụ thuộc hàm vào X và không
phụ thuộc hàm vào một phần của X.
Ví dụ: Ta đã có qui tắc quản lý trong mối quan hệ sau:
Mỗi HỌC VIÊN có thể ghi danh vào học một hay nhiều MÔN HỌC.
Mỗi MÔN HỌC có thể đƣợc ghi danh bởi một hay nhiều HỌC VIÊN.
Giáo viên biên soạn: Nguyễn Trần Phương
88
Trường Trung học Kinh tế Kỹ thuật Hòa Bình – Ngành Công nghệ Thông tin - Môn Phân tích & Thiết kế hệ thống
Hình 4.7 : Mô hình ER đào tạo của trƣờng
Mã học viên, mã môn học
Các dạng chuẩn
ngày nhập học
Ví dụ: Công ty Kim khí Đai ốc và Bù lon (NBHC) có nhiều cửa hàng hoạt
động với tên riêng. Bảng tồn kho của Cửa hàng Kim khí Mặt nam (một trong các
cửa hàng của Công ty NBHC) có dạng nhƣ sau:
CÔNG TY KIM KHÍ ĐAI ỐC VÀ BÙ LON
DANH SÁCH TỒN KHO
Tên cửa hàng:
Mã cửa hàng:
Cửa hàng kim khí mặt nam
M515
mã
mô tả hàng
mã nhà
cung cấp
34513
34513
57913
34513
00972
57913
….
tên nhà cung
cấp
địa chỉ nhà cung
cấp
lƣợng
tồn
đơn
thành
hàng
giá
tiền
3241 Bù lon 2 cm
3541 Ốc 5 cm
4325 Vòng đệm 30 mm
5678 Đai ốc 8 mm
1478 Đinh ốc 40 mm
4327 Vòng đệm 40 mm
Acme Bolt Co
Acme Bolt Co
Washer Co
Acme Bolt Co
Best Fasteners
Washer Co
…
45 Hay Street
45 Hay Street
7 Blacktown Road
45 Hay Street
281 Pilbara Way
7 Blacktown Road
…
123
546
567
342
$0.50 $61.50
$0.70 $382.20
$0.12 $68.04
$0.17 $58.14
1267 $0.09 $114.03
165
$0.15 $24.75
…
….
…
…
…
$708.66
Tổng cộng
Bảng Tồn kho của Cửa hàng Kim khí Mặt nam là mẫu tiêu biểu cho tất cả
cửa hàng.
Mỗi nhà cung cấp cung cấp nhiều mặt hàng, nhƣng một mặt hàng chỉ
đƣợc cung cấp bởi một nhà cung cấp.
Một mặt hàng đƣợc lƣu trữ ở nhiều cửa hàng. Ví dụ mặt hàng mã số 3241
đƣợc lƣu trữ trong cửa hàng M515 nhƣng nó cũng đƣợc lƣu trữ trong cửa hàng
M516 và M517.
Lƣợng tồn là số lƣợng tồn của một mặt hàng của một cửa hàng.
Đơn giá của một mặt hàng là đơn giá chung cho tất cả các cửa hàng
Tổng cộng là tổng của cột thành tiền
Mã cửa hàng, mã hàng, mã nhà cung cấp là thuộc tính nhận diện của cửa
hàng, hàng, nhà cung cấp
Ta thực hiện các bƣớc chuẩn hóa quan hệ của ví dụ công ty NBHC theo các bƣớc
của mô hình sau:
Giáo viên biên soạn: Nguyễn Trần Phương
89
Trường Trung học Kinh tế Kỹ thuật Hòa Bình – Ngành Công nghệ Thông tin - Môn Phân tích & Thiết kế hệ thống
QUAN HỆ KHÔNG CHUẨN
- Loại bỏ các thuộc tính tổng hợp (thuộc tính có giá trị là kết quả
tính toán từ các giá trị khác)
- Xác định khóa chính
- Chuyển thuộc tính lặp lại thành thuộc tính của quan hệ riêng
QUAN HỆ DẠNG CHUẨN 1
- Chỉ thực hiện khi khóa chính gồm nhiều thuộc tính.
- Thuộc tính không khóa phải phụ thuộc hàm đầy đủ và khóa chính
- Chuyển thuộc tính chỉ phụ thuộc vào một phần khóa chính thành
thuộc tính của quan hệ riêng.
QUAN HỆ DẠNG CHUẨN 2
- Chuyển thuộc tính không khóa phụ thuộc bắc cầu vào khóa chính
thành thuộc tính của quan hệ
QUAN HỆ DẠNG CHUẨN 3
Hình 4.8 : Các bƣớc thực hiện để đƣa các quan hệ về dạng chuẩn 3
Dạng chuẩn một (first normal form)
Định nghĩa: Thuộc tính A là lặp lại (repeating group of attribute) nếu ứng với
một giá trị khóa chính có nhiều giá trị của thuộc tính A.
MẶT HÀNG
Mã hàng
Mô tả
Đơn giá bán
0.68
1003
Tụ điện
0.67
0.65
1007
Đầu nối
2.00
2.10
1.90
BẢNG DỮ LIỆU KHÔNG ĐẠT DẠNG CHUẨN 1
Trong quan hệ MẶT HÀNG trên, thuộc tính đơn giá bán là thuộc tính lặp lại (đôi
khi còn gọi là thuộc tính đa giá trị: multi value attribute) .
Định nghĩa: Một quan hệ R ở dạng chuẩn một nếu nó không có thuộc tính lặp lại.
Cách chuẩn hóa: Một quan hệ R không ở dạng chuẩn 1 được chuẩn hóa bằng cách
chuyển thuộc tính lặp lại vào quan hệ riêng.
B1. Chuyển tất cả thuộc tính vào một quan hệ: TỒN KHO (mã cửa hàng, tên cửa
hàng, mã hàng, mô tả mặt hàng, mã nhà cung cấp, tên nhà cung cấp, địa chỉ, lƣợng
tồn, đơn giá, thành tiền, tổng cộng)
Giáo viên biên soạn: Nguyễn Trần Phương
90
Trường Trung học Kinh tế Kỹ thuật Hòa Bình – Ngành Công nghệ Thông tin - Môn Phân tích & Thiết kế hệ thống
B2. Loại bỏ các thuộc tính tổng hợp: TỒN KHO (mã cửa hàng, tên cửa hàng, mã
hàng, mô tả mặt hàng, mã nhà cung cấp, tên nhà cung cấp, địa chỉ, lƣợng tồn, đơn
giá).
B3. Xác định khóa chính (chọn ngẫu nhiên một khóa chính nhƣ mã cửa hàng):
TỒN KHO (mã cửa hàng, tên cửa hàng, mã hàng, mô tả mặt hàng, mã nhà cung
cấp, tên nhà cung cấp, địa chỉ, lƣợng tồn, đơn giá)
Ta thấy ứng với giá trị mã cửa hàng “M515” thì có nhiều giá trị lặp lại của các
thuộc tính: mã hàng, mô tả mặt hàng, mã nhà cung cấp, tên nhà cung cấp, địa chỉ,
lƣợng tồn, đơn giá. Thuộc tính lặp lại này đòi hỏi phải chuyển qua quan hệ riêng.
Khóa chính của quan hệ mới này thƣờng là khóa hợp (khóa có trên một thuộc tính)
là hợp của khóa chính của quan hệ nguồn và khoá chính của các thuộc tính lặp lại.
TỒN KHO
Mã
tên cửa
mã
mã
ncc
lƣợn
g tồn
đơn giá
của
mô tả
tên ncc
địa chỉ
hàng
hàng
hàng
M515 chkkmn 3241 Bù lon 2cm
3241 Ốc 5cm
34513 Acme bolt co
34513 Acme bolt co
57913 Washer co
34513 Acme bolt co
00972 Best fastener
57913 Washer co
34513 Acme bolt co
57913 Washer co
00972 Best fastener
45 ... 123
0.50
45 ...
7 ..
546
567
342
0.70
0.12
0.17
0.09
24.75
0.50
0.12
0.09
0.70
4325 Vòng...
5678 Đai ốc ...
45 ...
1478 Đinh ốc ...
281 ... 1267
4327 Vòng ...
7 ...
45 ...
7 ...
165
20
M516 chkkmb 3241 Bù lon 2cm
4325 Vòng ...
30
1478 Đinh ốc ...
281 ..
60
M517 chkkmt 3541 Bù lon 2cm
34513 Acme bolt co
45 ...
100
…
…
…
…
…
…
…
…
…
B4. Chuyển thuộc tính lặp lại thành quan hệ riêng:
CỬA HÀNG (mã cửa hàng, tên cửa hàng)
TỒN KHO (mã cửa hàng, mã hàng, mô tả mặt hàng, mã nhà cung cấp, tên
nhà cung cấp, địa chỉ, lƣợng tồn, đơn giá)
Dạng chuẩn hai (second normal form)
Định nghĩa: Một quan hệ R ở dạng chuẩn 2 nếu nó ở dạng chuẩn 1 và mỗi thuộc
tính không khóa phụ thuộc hàm đầy đủ vào khóa quan hệ (không phụ thuộc vào
một phần khoá quan hệ)
Cách chuẩn hóa: Một quan hệ R không ở dạng chuẩn 2 được chuẩn hóa bằng cách
chuyển thuộc tính phụ thuộc vào một phần khóa vào quan hệ riêng.
Quan hệ CỬA HÀNG đƣơng nhiên đạt dạng chuẩn 2 vì khóa chính chỉ gồm
một thuộc tính
Quan hệ TỒN KHO có khóa chính gồm hai thuộc tính nên ta phải kiểm tra
sự phụ thuộc hàm của các thuộc tính
Giáo viên biên soạn: Nguyễn Trần Phương
91
Trường Trung học Kinh tế Kỹ thuật Hòa Bình – Ngành Công nghệ Thông tin - Môn Phân tích & Thiết kế hệ thống
Hình 4.9: Các phụ thuộc hàm
CỬA HÀNG (mã cửa hàng, tên cửa hàng).
TỒN KHO (mã cửa hàng, mã hàng, lƣợng tồn).
MẶT HÀNG (mã hàng, mô tả mặt hàng, mã nhà cung cấp, tên nhà cung cấp,
địa chỉ, đơn giá).
Dạng chuẩn ba (third normal form)
Định nghĩa: Một quan hệ R ở dạng chuẩn 3 nếu nó ở dạng chuẩn 2 và không có sự
phụ thuộc hàm giữa các thuộc tính không khóa.
Cách chuẩn hóa: Một quan hệ R không ở dạng chuẩn 3 được chuẩn hóa bằng cách
chuyển thuộc tính phụ thuộc vào thuộc tính không khóa vào quan hệ riêng.
Hình 4.10: Các phụ thuộc hàm có tính bắc cầu
CỬA HÀNG(mã cửa hàng, tên cửa hàng)
TỒN KHO (mã cửa hàng, mã hàng, lƣợng tồn)
MẶT HÀNG (mã hàng, mô tả mặt hàng, mã nhà cung cấp, đơn giá)
NHÀ CUNG CẤP (mã nhà cung cấp, tên nhà cung cấp, địa chỉ)
Chuẩn hóa theo lý thuyết CSDL: Lƣợc đồ quan hệ Q = CỬA HÀNG (mã cửa
hàng, tên cửa hàng, mã hàng, mô tả mặt hàng, mã nhà cung cấp, tên nhà cung cấp,
địa chỉ, lƣợng tồn, đơn giá) có tập phụ thuộc hàm:
F = { mã cửa hàng
tên cửa hàng;
mã cửa hàng, mã hàng
lƣợng tồn;
mã hàng
mô tả mặt hàng, đơn giá, mã nhà cung cấp, tên nhà cung
tên nhà cung cấp, địa chỉ
cấp, địa chỉ;
mã nhà cung cấp
}
TN = {mã cửa hàng, mã hàng} TG = {mã nhà cung cấp} Xi là tập con của tập TG:
Giáo viên biên soạn: Nguyễn Trần Phương
92
Trường Trung học Kinh tế Kỹ thuật Hòa Bình – Ngành Công nghệ Thông tin - Môn Phân tích & Thiết kế hệ thống
Xi
TN υ Xi
mã cửa hàng,
mã hàng
(TN υ Xi)+
Siêu khóa
mã cửa hàng,
mã hàng
mã cửa hàng,
mã hàng,
Khóa
mã cửa hàng,
mã hàng
Ø
Q+
mã nhà cung mã cửa hàng,
Q+
cấp
mã hàng,
mã nhà cung cấp
mã nhà cung cấp
F={mã cửa hàng -> tên cửa hàng; mã cửa hàng, mã hàng ->
lƣợng tồn; mã hàng -> mô tả mặt hàng, đơn giá, mã nhà cung
cấp, tên nhà cung cấp, địa chỉ; mã nhà cung cấp -> tên nhà
cung cấp, địa chỉ}
Q={mã cửa hàng, tên cửa hàng, mã hàng, mô tả mặt hàng,....}
F1 ={mã cửa hàng -> tên cửa hàng}
CỬA HÀNG ={mã cửa hàng, tên
cửa hàng}
F1 ={mã cửa hàng, mã hàng -> lƣợng tồn; mã hàng -> mô tả
mặt hàng,đơn giá, mã nhà cung cấp, tên nhà cung cấp, địa chỉ;
mã nhà cung cấp -> tên nhà cung cấp, địa chỉ}
K1 = {mã cửa hàng}
Q2 ={mã cửa hàng, mã hàng, mô tả mặt hàng,....}
F3 ={mã hàng -> mô tả mặt hàng,đơn giá, mã nhà cung
cấp,
tên nhà cung cấp, địa chỉ; mã nhà cung cấp -> tên nhà cung
cấp, địa chỉ, ...}
Q3 ={mã cửa hàng, mã hàng, mô tả mặt hàng,....}
F4 ={mã cửa hàng, mã hàng -> lƣợng tồn}
Q4 ={mã cửa hàng, mã hàng, mô tả mặt
hàng,....}
K4 = {mã cửa hàng, mã hàng }
K3 = {mã hàng}
F5 ={mã hàng -> mô tả mặt hàng,đơn giá, mã nhà
F6 ={mã nhà cung cấp -> tên nhà cung cấp, địa chỉ}
cung cấp}
Q6 ={mã nhà cung cấp, tên nhà cung cấp, địa chỉ}
Q5 ={mã cửa hàng, mô tả mặt hàng, đơn giá, mã nhà
cung cấp}
K6 = {mã nhà cung cấp}
K5 = {mã hàng }
4.4 MÔ HÌNH LÔ GIC
Chúng ta đã làm quen với cách thức và phƣơng pháp tạo ra một mô hình dữ
liệu mức quan niệm về các thông tin của tổ chức nào đó. Nó rất giàu về mặt ngữ
nghĩa, do đó dễ dàng để mọi thành phần tham gia vào việc phát triển hệ thống
thông tin hiểu đƣợc, đặc biệt là với ngƣời dùng. Nhƣng nó lại không dễ dàng để hệ
thống quản lý tập tin và các hệ quản trị cơ sở dữ liệu hiểu đƣợc. Do đó cần thiết
phải qua một giai đoạn chuyển đổi mô hình quan niệm về dữ liệu thành mô hình
logic cho dữ liệu - một mô hình "gần gũi" với ngôn ngữ máy tính hơn. Giai đoạn
này gọi là phân tích và thiết kế thành phần dữ liệu mức logic. Nhiệm vụ của giai
Giáo viên biên soạn: Nguyễn Trần Phương
93
Trường Trung học Kinh tế Kỹ thuật Hòa Bình – Ngành Công nghệ Thông tin - Môn Phân tích & Thiết kế hệ thống
đoạn này không đi sâu vào chi tiết kỹ thuật truy xuất hoặc lƣu trữ dữ liệu (đó là
nhiệm vụ của mô hình dữ liệu mức vật lý), nhƣng phải kể đến các khả năng, giới
hạn của hệ thống quản lý tập tin hay hệ thống quản lý cơ sở dữ liệu. Hơn nữa, mô
hình luận lý cho dữ liệu quan tâm đến sự tổ chức cho dữ liệu, sao cho thích hợp với
thời gian đáp ứng mà xử lý đòi hỏi.
Nhƣ vậy, mục tiêu của mô hình logic cho dữ liệu là nhằm:
Tổ chức dữ liệu.
Tối ƣu hóa cách tổ chức đó.
Chúng ta đã biết rằng có 3 kiểu mô hình cơ sở dữ liệu: Mô hình mạng, mô
hình phân cấp, và mô hình quan hệ. Mô hình kiểu mạng xuất hiện trƣớc nhất, vào
những năm 70. Sau đó là mô hình quan hệ và mô hình phân cấp gần nhƣ xuất hiện
đồng thời. Mô hình quan hệ dù xuất hiện sau nhƣng có nhiều đặc tính ƣu việt hơn
hai kiểu mô hình còn lại và nhanh chóng phát triển. Hiện nay hầu hết các hệ quản
trị cơ sở dữ liệu cài đặt theo mô hình quan hệ. Chính vì vậy mà chúng ta quan tâm
tới việc chuyển mô hình thực thể - kết hợp thành cơ sở dữ liệu theo mô hình quan
hệ.
Ðể có một cơ sở dữ liệu theo mô hình quan hệ phải xuất phát từ mô hình
thực thể - kết hợp. Quá trình chuyển đổi có thể chia thành các bƣớc với những quy
tắc nhƣ sau:
BƢỚC 1: (không bắt buộc nếu trong HÌNH THỰC THỂ - KẾT HỢP không có tổng
quát hóa - chuyên biệt hóa)
Chúng ta phải xét xem trong mô hình thực thể - kết hợp có sử dụng khái
niệm tổng quát hóa - chuyên biệt hóa để trình bày vấn đề hay không. Nếu có thì
phải biến đổi mô hình về dạng không còn tổng quát hóa - chuyên biệt hóa trong mô
hình nữa. Có hai cách loại bỏ tổng quát hóa/chuyên biệt hóa:
Cách 1:
Xem mỗi chuyên biệt là một thực thể: khi đó mỗi mối kết hợp giữa thực thể
tổng quát với các thực thể khác phải tách ra theo các thực thể chuyên biệt. Các thực
thể chuyên biệt ngoài thuộc tính của bản thân nó (nếu có) còn đƣợc thừa hƣởng
mọi thuộc tính của thực thể tổng quát, tuy nhiên chúng ta nên điều chỉnh tên gọi
cho mô hình hợp lý.
Ví dụ:
Giáo viên biên soạn: Nguyễn Trần Phương
94
Trường Trung học Kinh tế Kỹ thuật Hòa Bình – Ngành Công nghệ Thông tin - Môn Phân tích & Thiết kế hệ thống
Chúng ta biến đổi thành như sau:
Cách 2:
Gộp các chuyên biệt thành một thực thể chung, khi đó phải bổ sung thêm tất
cả các thuộc tính của các chuyên biệt (nếu có) vào thực thể tổng quát, và khi đó có
thể phải điều chỉnh lại bản số và thƣờng phát sinh thêm các ràng buộc.
Bản số của nó với mối kết hợp - dạy - là (0, n). Khi chuyển sang mô hình
quan hệ thì ngoài việc
áp dụng các quy tắc
chuyển đổi để có các
quan hệ cần bổ sung
các ràng buộc sau:
Ràng buộc 1:
Không tồn tại một
ngƣời vừa là cán bộ
hành chính vừa là cán
bộ giảng dạy (hay vừa
có chức danh vừa có
nghiệp vụ).
Ràng buộc 2:
"Với mọi cán bộ, nếu không có chức danh thì không tham gia công tác giảng dạy".
Những ràng buộc này sẽ đƣợc đề cập đến trong các quá trình xử lý sau.
BƢỚC 2:
Áp dụng các quy tắc
chuyển đổi nhƣ sau:
Quy tắc 1. Một thực
thể của mô hình thực thể
- kết hợp chuyển thành
một bảng.
Giáo viên biên soạn: Nguyễn Trần Phương
95
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Phân tích & Thiết kế hệ thống - Chương 4: Mức tổ chức và vật lý - Nguyễn Trần Phương", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
bai_giang_phan_tich_thiet_ke_he_thong_chuong_4_muc_to_chuc_v.pdf

