(NB) Bài giảng Phân tích thiết kế hệ thống thông tin (Nghề: Công nghệ thông tin): Phần 2 cung cấp cho người học những kiến thức như: Phân tích hệ thống về dữ liệu; Thiết kế hệ thống thông tin quản lý. Mời các bạn cùng tham khảo!
Trang 1
Chương 4
PHÂN TÍCH HỆ THỐNG VỀ DỮ LIỆU
Thời gian: 12 g (LT: 4g; TH:8g; KT:0g) Mục tiêu:
Sau khi học xong phần này người học có khả năng:
- Trình bày được các khái niệm, thành phần, qui trình, của các phương pháp phân tích hệ thống thông tin về dữ liệu;
- Xây dựng được lược đồ cấu trúc dữ liệu cho một số hệ thống thông tin thông dụng
(giải định, khảo sát trực tiếp trong thực tiễn);
- Chuẩn hóa được các quan hệ về dạng chuẩn;
- Rèn luyện ý thức lao động, tác phong công nghiệp, có trách nhiệm và sáng tạo Nội dung:
4.1 PHƯƠNG TIỆN MÔ TẢ DỮ LIỆU
4.1.1 Mã hóa dữ liệu
4.1.1.1 Khái niệm mã hoá
Mã là tên viết tắt gắn cho một đối tượng nào đó hay nói cách khác mỗi đối tượng cần có tên và vấn đề đặt ra là ta sẽ đặt tên cho đối tượng như thế nào Trong mỗi đối tượng gồm nhiều thuộc tính khác nhau thì yêu cầu mã hoá cho các thuộc tính cũng là yêu cầu cần thiết Ngoài ra mã hoá còn là hình thức chuẩn hoá dữ liệu để phân loại dữ liệu lưu trữ
và tìm kiếm có hiệu quả và bảo mật dữ liệu đặc biệt trong các hệ thống thông tin xử lý bằng máy tính
Một số Ví dụ về mã hoá:
- Khi ta cần xác định một công dân thì số chứng minh thư hoặc số hộ chiếu là mã của công dân đó
- Khi cần xác định xe ô tô hay xe máy thì biển số xe là mã của xe đó
4.1.1.2 Chất lượng và yêu cầu đối với mã hoá
Trong thực tế ta gặp rất nhiều đối tượng cần mã hoá như mã hoá ngành nghề cần đào tạo, mã hoá các bệnh, mã số điện thoại, mã thẻ sinh viên, thẻ bảo hiểm y tế, Chúng
ta có nhiều phương pháp mã khác nhau Do vậy cần xác định một số tiêu chí để đánh giá chất lượng của việc mã hoá:
Trang 2
- Mã hoá không được nhập nhằng: Thể hiện ánh xạ 1-1 giữa mã hoá và giải mã mỗi đối tượng được xác định rõ ràng và duy nhất với một mã nhất định
- Thích ứng với phương thức sử dụng: Việc mã hoá có thể tiến hành bằng thủ công
nên cần phải rễ hiểu, dễ giải mã, và việc mã hoá bằng máy đòi hỏi cú pháp chặt chẽ
- Có khả năng mở rộng mã:
+ Thêm phía cuối (sau) của các mã đã có
+ Xen mã mới vào giữa các mã đã có, thường mã xen phải dùng phương pháp cóc nhảy, nhảy đều đặn dựa vào thống kê để tránh tình trạng “bùng nổ ” mã
- Mã phải ngắn gọn làm giảm kích cỡ của mã, đây cũng là mục tiêu của mã hoá Tuy nhiên điều này đôi khi mâu thuẫn với khái niệm mở rộng mã sau này
- Mã có tính gợi ý: Thể hiện tính ngữ nghĩa của mã Đôi khi tính gợi ý là yêu cầu đối với mã công khai, và làm cho việc mã hoá thuận tiện dễ dàng
- Cách mã cần xác định sao cho tối thiểu hoá sai sót khi mã và giảm tính dư thừa của mã
4.1.1.3 Các kiểu mã hoá
- Mã hoá liên tiếp (Serial Coding):
Ta dùng các số nguyên liên tiếp 000,001, 002 để mã hoá Phương pháp này thường
để đánh số thứ tự trong danh sách các đối tượng
+ Ưu điểm: Không nhập nhằng, đơn giản, thêm phía sau
+ Khuyết điểm: Không xen được, thiếu tình gợi ý vì cần phải có bảng tương ứng và không phân theo nhóm
- Mã hoá theo lát (lớp)
Sử dụng các số nguyên như mã hoá liên tiếp nhưng phân ra theo lát( lớp) cho từng loại đối tượng, trong mỗi lát dùng mã liên tiếp
Ví dụ: Mã hoá các đối tượng là các hàng ngũ kim
Vùng 1: 0001 – 0999 để mã hóa các hàng ngũ kim bé, trong đó:
001 – 0099 để mã hóa các loại vít
0100 – 0299 để mã hóa các loại êcu
0300 – 0499 để mã hóa các loại bulong
0500 – 0599 để mã hóa các loại đinh
Trang 3Biển số xe của ông X là 29 F6 6956 là
biển xe đăng kí tại Hà Nội (mã tỉnh là 29)
+ Ưu điểm: Không nhập nhằng, mở rộng
,xen thêm được và được dùng khá phổ biến,
loại mã này cho phép thiết lập các phương thức kiểm tra gián tiếp đối với mã của các đối tượng bằng cách trích rút các đoạn mã để kiểm tra
+ Nhược điểm: Mã quá dài nên thủ tục mã nặng nề, không cố định và vẫn có thể bị bão hoà mã
- Mã phân cấp: Các đối tượng được mã hoá theo chế độ phân cấp các chi tiết nhỏ dần Một hình ảnh khá quen thuộc của mã hoá phân cấp là đánh số chương, tiết, mục trong một quyển sách
+ Khuyết điểm: Tương nhự như các nhược điểm của mã phân đoạn
Tỉnh Lát (xê ri) Số liên tiếp
2 9 F 6 6 9 5 6
Trang 4
- Mã diễn nghĩa: Bằng cách gán một tên ngắn gọn nhưng hiểu được cho một đối tượng
Ví dụ : Đội bóng các nước tham gia giải Tiger cup được mã bằng cách lấy ba kí tự
đầu như sau:
VIE: Việt Nam, THA: Thailand, SIN: Singapore, IND: indonesia, MAL : Malaysia + Ưu điểm: Tiện dùng cho sử lý bằng thủ công
+ Khuyết điểm: Không giải mã được bằng máy tính
Các chú ý khi lựa chọn sự mã hoá
Như đã nêu ở trên, có nhiều phương pháp mã hoá khác nhau, có thể sử dụng một kiểu mã nào đó, cũng có thể sử dụng kết hợp nhiều kiểu để đạt chất lượng mã tốt nhất Việc lựa chọn mã hoá cần dựa vào các yếu tố sau:
- Nghiên cứu việc sử dụng mã sau này
- Nghiên cứu số lượng đối tượng được mã hoá để lường trước được sự phát triển
- Nghiên cứu sự phân bố thống kê các đối tượng để phân bố theo lớp
- Tìm xem đã có những mã nào được dùng trước đó cho các đối tượng này để kế thừa
- Thỏa thuận với người dùng cách mã
- Thử nghiệm trước khi dùng chính thức để chỉnh lý kịp thời
4.1.2 Từ điển dữ liệu
4.1.2.1 Khái niệm
Từ điển dữ liệu là một tư liệu tập trung mọi tên gọi của mọi đối tượng được dùng trong hệ thống trong cả các giai đoạn phân tích, thiết kế, cài đặt và bảo trì Nó là văn phạm giả hình thức mô tả nội dung của các sự vật, đối tượng theo định nghĩa có cấu trúc Chẳng hạn trong biểu đồ luồng dữ liệu(BLD): các chức năng xử lý, kho dữ liệu, luồng dữ liệu chỉ mô tả ở mức khái quát thường là tập hợp các khoản mục riêng lẻ Các khái quát này cần được mô tả chi tiết hơn qua công cụ từ điển dữ liệu
4.1.2.2 Cấu tạo từ điển
Từ điển dữ liệu gồm các mục từ và lời giải thích Lời giải thích thể hiện được cấu trúc của 1 từ bản chất liền giá trị và phạm vi sử dụng
Ví dụ: Luồng dữ liệu
Trang 5
Bảng 4.1: Mục từ cho luồng dữ liệu “Phiếu yêu cầu”
Phiếu yêu cầu - Ý nghĩa : Luồng dữ liệu chuyển từ tác nhân ngoài” Bạn đọc” đến tiến trình” Xử lý phiếu yêu cầu
- Thành phần: Số thẻ đọc, Tên tài liệu, Tên tác giả, Số cá biệt, Ngày viết phiếu
Ví dụ: Kho dữ liệu
Bảng 4.2: Mục từ cho kho dư liệu “Sách”
Sách
- Ý nghĩa: Chứa mọi thông tin về sách trong thư viện
- Thành phần: Số cá biệt, Tên sách, Tên tác giả, Năm xuất bản, Nhà xuất bản, Lần xuất bản, Ngày nhập, Loại sách, Các từ khoá, Tóm tắt nội dung, Vị trí trong kho,Trạng thái mượn
- Tổ chức: Lưu trữ tuần tự và được sắp xếp theo “Số cá biệt” Khi cập nhật sách mới được xếp vào đúng vị trí của nó trong kho
- Các xử lý liên quan : Cập nhật sách mới, Huỷ sách cũ, Tìm kiếm sách theo các thành phần thông tin riêng biệt
- Thực thể: Một thực thể( entity) là một vật thể cụ thể hay trừu tượng, tồn tại thực
sự và khá ổn định trong thế giới thực, mà ta muốn phản ánh nó trong hệ thống thông tin
Ví dụ: Thực thể cụ thể như: Học sinh Trần Ngọc Kha, Hóa đơn số 58
Thực thể trìu tượng như: Khoa Công Nghệ Thông Tin
- Thuộc tính: Thuộc tính (Property hay arttibute) là một giá trị dùng để mô tả một khía cạnh nào đó của một thực thể
Ví dụ: Tuổi của Trần Ngọc Kha là 17
Tổng tiền của hóa đơn số 58 là 800.000đ
Giá trị thuộc tính thường được cho kèm theo một tên (tuổi 17, tổng tiền: 800.000đ) Tên đó thực tế là tên chung của mọi giá trị có thể chọn lựa để mô tả một khía cạnh nhất định của các thực thể (tuổi: 17, tuổi: 20, tuổi:14 ) Ta gọi tên đó là một kiểu thuộc tính (property type)
Ví dụ: Tuổi, tổng tiền là các kiểu thuộc tính
Trang 6Ví dụ: Kiểu thực thể khách hàng được mô tả bằng các kiểu thuộc tính: tên, địa chỉ,
Ví dụ: SH Nhân viên
Mã Nhân viên Các thuộc tính trong mô hình thực thể liên kết có hai ràng buộc phải thoả mãn:
- Giá trị duy nhất: Mỗi thuộc tính của một thực thể có thể lấy một và chỉ một giá trị duy nhất
- Giá trị sơ đẳng: Giá trị thuộc tính không thể tách thành các phần nhỏ hơn
Liên kết: Một liên kết là một sự gom nhóm các thực thể trong đó mỗi thực thể có một vai trò nhất định
Ví dụ:
- Khách hàng Ân đã giao nộp đơn hàng 3428
- Đơn hàng 3428 đặt mua các mặt hàng 34 và 78
- Anh Liên là học trò của thầy Hà
Một kiểu liên kết (asociation type) là một tập hợp các liên kết có cùng ý nghĩa Một kiểu liên kết là được định nghĩa giữa nhiều kiểu thực thể Tên của kiểu liên kết thường được chọn là một động từ (chủ động hay bị động) phản ánh ý nghĩa của nó
Trang 7- Kiểu liên kết dạy giữa kiểu thực thể thầy và kiểu thực thể trò (2 ngôi)
- Thời khóa biểu là một kiểu liên kết giữa các kiểu thực thể: Môn, giờ, phòng, lớp ( liên kết nhiều ngôi )
4.2.2 Đặc tả mối quan hệ giữa hai kiểu thực thể
Để đặc tả mối quan hệ giữa hai kiểu thực thể, mô hình thực thể liên kết thường được biểu diễn dưới dạng một đồ thị, trong đó các nút là các kiểu thực thể, còn các cung là các kiểu liên kết Đồ thị đó được gọi là sơ đồ thực thể liên kết và được lập như sau:
- Một kiểu thực thể được biểu diễn bởi một hình chữ nhật gồm 2 ngăn, ngăn trên chứa tên của kiểu thực thể, ngăn dưới chứa danh sách các kiểu thuộc tính của nó Tên kiểu thực thể thường là một danh từ (chỉ vật thể) Các kiểu thuộc tính hợp thành khóa của kiểu thực thể được gạch dưới, và thường đặt lên đầu danh sách
- Một kiểu liên kết được biểu diễn bởi một hình thoi, được nối bằng nét liền tới các kiểu thực thể tham gia liên kết Trong hình thoi viết tên kiểu liên kết(tên này có thể khuyết, nếu không cần làm rõ) Như trên đã nói tên kiểu liên kết thường là một động từ (chủ động hay bị động) Nếu kiểu liên kết là hai ngôi, thì ở hai đầu mút các đường nối, sát với các kiểu thực thể, ta ghi thêm ứng số (nếu thấy cần làm rõ)
Ví dụ: Biểu diễn đồ họa của kiểu liên kết Mượn
Trang 8
Biểu diễn đồ họa của kiểu liên kết Có
Biểu diễn đồ họa của kiểu liên kết Cung ứng
Một số trường hợp đặc biệt:
- Liên kết đệ quy: Là kiểu liên kết giữa một thực thể với chính thực thể đó
- Nhiều kiểu liên kết giữa hai thực thể:
ID người
Họ tên
Địa chỉ
vợ 0 1
Trang 9
- Kiểu liên kết có thuộc tính mô tả: Ta ghi danh sách các thuộc tính bên cạnh hình thoi; hoặc vẽ thêm một hình chữ nhật hai ngăn như kiểu thực thể: ngăn tên có thể chứa tên kiểu liên kết hoặc bỏ trống; ngăn thuộc tính chứa các thuộc tính, bổ sung các thuộc tính khoá của các kiểu thuộc tính tham gia liên kết Và nó được nối với hình thoi bằng nét đứt
- Kiểu liên kết nhiều ngôi:
Mã CH Diện tích Địa chỉ 0 *
Thuê 0 1
Dạy
Học sinh
IDHSinh
Họ tên Lớp
Đơn hàng
ID ĐH Ngày Địa chỉ
Ngày Ngày
Trang 10
4.2.3 Mô hình thực thể liên kết mở rộng và hạn chế
4.2.3.1 Mô hình E/A mở rộng
Các điểm mở rộng đối với mô hình E/A
- Các kiểu thuộc tính đa trị: Trong mô hình mở rộng được phép dùng kiểu thuộc tính
đa trị Nghĩa là tồn tại kiểu thuộc tính mà giá trị của nó đối với một thực thể có thể là một dãy hay một tập các giá trị
Ví dụ: Tên, tuổi các con của một nhân viên
- Các kiểu thuộc tính phức hợp: Cho phép dùng kiểu thuộc tính phức hợp từ các thuộc tính sơ đẳng, tức là được tạo thành từ sự kết hợp từ nhiều kiểu thuộc tính khác Mặc định, mỗi giá trị của kiểu thuộc tính phức hợp là sự ghép các giá trị của các thuộc tính sơ đẳng tương ứng
Ví dụ: Kiểu thuộc tính Địa chỉ là sự kết hợp của các thuộc tính Số nhà, Đường phố, Quận huyện, Tỉnh thành
- Các kiểu thực thể con:
Nếu trong một kiểu thực thể A, ta chỉ ra một tập con B của A, mà các thực thể trong
B vừa mang các kiểu thuộc tính chung của các thực thể trong A, lại vừa có thêm một số các kiểu thuộc tính mới, thì ta nói đó là sự chuyên biệt hóa B được gọi là kiểu thực thể con của kiểu thực thể A Các kiểu thuộc tính của B bao gồm mọi kiểu thuộc tính của A cộng thêm các kiểu thuộc tính riêng của nó Ta nói: B thừa kế các thuộc tính của A Quá trình ngược lại với chuyên biệt hóa là sự khái quát hóa: Từ nhiều kiểu thực thể B, C, ta rút ra các kiểu thuộc tính chung để lập một kiểu thực thể A (với các kiểu thuộc tính chung đó) sao cho B,C, đều là kiểu thực thể con của A
Ví dụ: Các thực thể Sinh viên, Nhân viên là thực thể con của thực thể Người
Trang 11
Cách biến đổi biểu đồ E/A mở rộng về biểu đồ E/A kinh điển
- Quy tắc 1: Chuyển các thuộc tính đa trị về các thuộc tính có giá trị duy nhất Thay một kiểu thuộc tính đa trị T của kiểu thực thể A bởi một kiểu thực thể mới E-T và kết nối
A với E-T bởi một kiểu liên kết Đưa vào kiểu thực thể E-T một kiểu thuộc tính đơn trị t, tương ứng với các giá trị thành phần của T Nghiên cứu các ứng số cho kiểu liên kết mới (giữa A và E-T)
Ví dụ 1: Kiểu thực thể Nhân viên có thuộc tính đa trị là các ngoại ngữ
Chú ý: Kiểu thực thể nói trên được gọi là kiểu thực thể phụ thuộc; nó chỉ tồn tại cùng với kiểu thực thể chính
Lớp
Ngành học
Nhân viên
Phòng Đ.chỉ CQ
Nhân viên
Mã NV
Họ tên
Ngoại ngữ Tên NN 0 * Biết 0 *
Trang 12- Quy tắc 4: Xử lý các kiểu thực thể con
Giả sử B là thực thể con của thực thể A Có hai cách xử lý:
+ Loại bỏ kiểu thực thể B và bổ sung mọi kiểu thuộc tính của B vào trong A, đồng thời thêm một kiểu thuộc tính cho phép phân loại các thực thể của A (thuộc B hay không thuộc B) Chuyển mọi kiểu liên kết với B sang A, và nghiên cứu lại các ứng số cho chúng + Thay đổi mối quan hệ thừa kế giữa A và B bằng một kiểu liên kết giữa A và B mà các ứng số tối đa bằng 1 Nghiên cứu cụ thể các ứng số tối thiểu
4 2.3.2 Các kiểu thuộc tính khoá và các kiểu thuộc tính kết nối
Khoá: là một tập các kiểu thuộc tính của một kiểu thực thể dùng để phân biệt các thực thể trong kiểu thực thể đó Khoá có thể là khoá đơn (chỉ có một kiểu thuộc tính) và khóa bội (khoá gồm 2 kiểu thuộc tính trở nên)
Khoá bội thường gặp trong các trường hợp sau:
chuyển thành
CT HĐ
Mã hàng Tên hàng
ĐV tính
Số lượng Đơn giá Thành tiền
Trang 13
- Các kiểu thực thể phụ thuộc: Khoá của một kiểu thực thể phụ thuộc luôn phải bao gồm khoá của kiểu thực thể chính, và nó làm nhiệm vụ kết nối một thực thể phụ thuộc với một thực thể chính
- Các kiểu thực thể được lập từ Quy tắc 2, tức là các kiểu thực thể diến tả một quan
hệ đều phải có khoá bội hợp thành từ khoá của các kiểu thực thể tham gia quan hệ Kiểu thuộc tính kết nối (hay còn gọi là khoá ngoại): là kiểu thuộc tính vốn là khoá của một kiểu thực thể khác nhưng lại xuất hiện trong kiểu thực thể này với nhiệm vụ mô
tả mối quan hệ giữa hai kiểu thực thể
4.2.4 Các phương pháp xây dựng mô hình
4.2.4.1 Hai cách tiến hành: trên xuống và dưới lên
Các thông tin được đưa vào mô hình thực thể liên kết dưới 3 hình thức: thực thể, liên kết và thuộc tính Để phát hiện các kiểu thực thể và các kiểu thuộc tính của chúng
có thể tiến hành theo hai cách ngược nhau:
Cách (1): trước hết đối sánh với thực tế để tìm ra các kiểu thực thể, rồi sau đó đối
với mỗi kiểu thực thể đã chọn, tìm các kiểu thuộc tính mô tả nó
Cách (2): tìm tập hợp các kiểu thuộc tính như là những loại thông tin sơ đẳng xuất
hiện trong hệ thống, rồi gom nhóm, tổ chức chúng lại thành từng cụm theo chủ đề mô tả Mỗi cụm đó trở thành một kiểu thực thể
Tuy nhiên cách tốt nhất là hỗn hợp cả hai cách làm trên bằng cách lặp đi lặp lại nhiều lần: Từ các kiểu thực thể, tìm ra các kiểu thuộc tính, rồi từ kiểu thuộc tính ta tổ chức lại, chỉnh sửa và bổ xung thành các kiểu thực thể, vòng đi vòng lại cho đến khi thỏa đáng
Một thực thể, như ta đã định nghĩa ở trên, là một vật thể cụ thể hay trừu tượng, tồn tại thực sự và khá ổn định trong thế giới thực mà ta muốn phản ánh nó trong hệ thống thông tin
Mặt hàng
SH mặt hàng Tên hàng Màu
Trang 14
Tuy nhiên, không phải mọi vật thể có trong thực tế đều trở thành thực thể, mà phải
có sự tuyển chọn khi đưa vào mô hình Sự tuyển chọn đó dựa trên hai tiêu chí:
- Có ích cho việc quản lý
- Có cách để phân biệt với các thực thể khác
Một thuộc tính, như đã định nghĩa ở trên, là một giá trị (dữ liệu) mô tả một khía cạnh nào đó của một thực thể
Cũng không phải mọi đặc điểm có thể của một thực thể đều được xem là thuộc tính cho nó, mà phải có sự tuyển chọn theo yêu cầu quản lý
Xét về vai trò của kiểu thuộc tính trong một kiểu thực thể, ta phân biệt ba loại kiểu thuộc tính:
4.2.4.2 Phân loại các thuộc tính theo nội dung diễn tả
Các dữ liệu trong một hệ thống thông tin quản lý (nói ở đây là các thuộc tính và từ
đó là các thực thể) có thể tách làm hai loại theo nội dung diễn tả:
- Các dữ liệu phản ánh cấu trúc tĩnh của hệ thống kinh doanh dịch vụ Có thể nói đó
là phần mô tả hạ tầng cơ sở của hệ thống kinh doanh dịch vụ và môi trường của nó, và là phần ổn định nhất trong CSDL, bao gồm:
+ Về nhân lực: Nhân viên, Khách hàng, Nhà cung cấp
+ Về tài sản, thiết bị nguyên vật liệu: Nhà xưởng, Cửa hàng, máy ôtô, Mặt hàng, nguyên liệu
+ Về tổ chức và cơ cấu: Phòng ban, Phân xưởng, Khoa, Bộ môn, Lớp,.v.v
- Các dữ liệu phản ánh các sự kiện trong hoạt động kinh doanh như :
+ Các giao dịch: Đặt hàng, Đăng kí, Giao hàng, Thanh toán,
+ Các báo cáo, tổng kết thống kê
Trên một góc nhìn khác, lại có thể phân chia các dữ liệu thành :
Trang 15
- Các dữ liệu sống: là các dữ liệu phản ánh thực tế hiện tại và đang được sử dụng Các dữ liệu này phải luôn luôn được cập nhật cho khỏi lạc hậu với thực tế
Ví dụ : Lý lịch các nhân viên đang tại chức, Đơn hàng đang xử lý (chưa hoàn tất)
- Các dữ liệu lịch sử: là các dữ liệu phản ánh quá khứ của hệ thống kinh doanh dịch
vụ, được chuyển sang lưu giữ, không cập nhật, không dùng trong các tính toán xử lý, và chỉ có thể tham khảo khi cần Thường thì các dữ liệu lịch sử được lưu trên bộ nhớ tách biệt với các dữ liệu sống (cho nên thường được gọi là “Cơ sở ngoài luồng”)
Ví dụ: Hồ sơ về các nhân viên đã ra khỏi cơ quan, Đơn hàng đã hoàn tất, tài khoản
đã đóng
4.2.4.3 Phân loại các thuộc tính theo đặc điểm về giá trị của nó
Xét về đặc điểm của giá trị mà thuộc tính có thể nhận, thì ta có thể phân loại dựa trên hai tiêu chí sau:
- Thuộc tính tính toán hay thuộc tính không tính toán ;
- Thuộc tính vững bền hay thuộc tính không bền vững
Thuộc tính tính toán là thuộc tính mà giá trị của nó thu được bởi sự tính toán theo một công thức (hay quy trình) xuất phát từ giá trị của một hoặc một số thuộc tính khác
Ví dụ: Thành tiền = đơn giá x số lượng
Nhớ rằng hai yêu cầu đối với lược đồ về khái niệm dữ liệu là các thông tin phải đủ
và không dư thừa Thế thì các thuộc tính tính toán là dư thừa, vậy về nguyên tắc là không được đưa vào lược đồ Tuy nhiên các thuộc tính tính toán không phải là không có ích sau này đến giai đoạn thiết kế, khi xét thêm hai yêu cầu mới là: Tiện lợi và nhanh chóng, thì rất có thể là lại phải đưa chúng vào cơ sở dữ liệu Vậy ở giai đoan phân tích, ta hãy ghi nhận chúng lại để sau này trở lại xem xét, thậm chí nếu thấy vai trò của chúng là không thể thiếu
Thuộc tính không tính toán (còn được gọi là thuộc tính nguyên thuỷ ) là thuộc tính
mà giá trị của nó được cung cấp từ bên ngoài hệ thống (không thể suy ra được từ bên trong hệ thống )
Thuộc tính bền vững là thuộc tính mà giá trị của nó khi đã có thì không thay đổi được nữa Ngược lại là thuộc tính không bền vững
Phối hợp hai tiêu chí trên, ta có bốn loại thuộc tính :
Trang 164.2.4.4 Các thuộc tính khoá,thuộc tính kết nối và các liên kết
Một kiểu thuộc tính khoá của một kiểu thực thể là một kiểu thuộc tính mà giá trị của
nó tương ứng với mỗi thực thể là riêng biệt cho thực thể đó.Vậy khoá cho phép chỉ định mỗi thực thể,cho phép phân biệt các thực thể với nhau
Trong bước đầu phân tích, có thể chưa cần quan tâm vội đến việc chọn khoá Song cuối cùng thì trong lược đồ dữ liệu hoàn chỉnh , mỗi kiểu thực thể đều phải có khoá Thuộc tính khoá có thể chọn trong số các thuộc tính tự nhiên, miễn là giá trị của nó
là khác biệt cho mỗi thực thể Chẳng hạn nếu tên chính thức cho mỗi công ty đều đã được đăng ký với nhà nước và bảo đảm không trùng lặp, thì có thể lấy Tên công ty làm khoá cho các công ty Nếu trong một khách sạn, các phòng được sơn màu sắc khác nhau, thì
có thể lấy màu làm khoá chỉ định các phòng trong khách sạn đó
Tuy nhiên, ít khi tìm được một thuộc tính tự nhiên làm khoá bây giờ người ta dùng thuộc tính khóa nhân tạo ấy là các mã, các số hiệu, như là mã hàng, Số hiệu đơn hàng Trong một kiểu thực thể, một kiểu thuộc tính được gọi là kiểu thuộc tính kết nối (hay là còn gọi là một tham chiếu) nếu nó không phải là khoá của kiểu thực thể đó, nhưng lại là khoá của một kiểu thực thể khác
Sau khi đã có tập hợp các kiểu thực thể, thì ta cần nghiên cứu phát hiện các kiểu liên kết giữa hai kiểu thức thể
Việc tìm các kiểu liên kết có thể làm theo hai cách:
- Dựa trên ý nghĩa các kiểu thực thể ( thực thể trong đó, có thể đóng vai trò gì?), dựa theo các quy tắc quản lý hay các quy trình giao dịch mà ta phát hiện ra các kiểu liên kết
Trang 17
Ví dụ: Quy trình bán hàng bắt đầu bằng một khách hàng đưa đến đơn đặt hàng Từ
sự kiện ta phát hiện ra có mối liên quan giữa khách hàng và đơn hàng
- Tìm trên danh sách các kiểu thuộc tính của các kiểu thực thể (đã lập ở bước trước) hoặc tìm trên các chứng từ giao dịch, ta có thể phát hiện ra các tham chiếu Mỗi tham chiếu là biểu hiện cho một kiểu liên kết
Ví dụ: Xem các Đơn hàng, ta thấy đơn hàng nào cũng có Tên ( hay Mã số khách
hàng) Đó chính là một tham chiếu Vậy phải có một kiểu liên kết giữa hai kiểu thực thể Đơn hàng và khách hàng
Ví dụ: Xây dựng mô hình thực thể liên kết cho hệ thống QL CƯVT
Các kiểu thực thể sơ bộ có thể phát hiện là:
- Về nhân lực, tài nguyên có phân xưởng, người cung cấp, Mặt hàng,…
- Về giao dịch có dự trù, Đơn hàng, Giao hàng, Hoá đơn, Phát hàng,…
Tiếp đó ta phát hiện các kiểu liên kết giữa chúng bằng cách duyệt lại quá trình giao dịch( từ khi phân xưởng đưa dự trù đến khi phân xưởng nhận được hàng) qua đó ta sẽ thấy được các mối liên hệ giữa các kiểu thực thể
Bổ sung các kiểu thuộc tính cho mỗi kiểu thực thể (trên hình không ghi chi tiết các thuộc tính mô tả) Riêng việc chọn khoá, ta lưu ý một điểm sau:
- Các SH-đơn hàng, SH-giao hàng, SH-phân xưởng, Mã hàng đã được quản lý thống nhất, vậy có thể làm khoá (đơn) của các kiểu thực thể tương ứng
- Trái lại SH-dự trù, SH-giao hàng,SH-hoá đơn là khoá ngoại đối với hệ thống, có thể xảy trùng lặp, vậy muốn dùng chúng làm khoá thì SH-dự trù phải kèm với SH-phân xưởng, SH-giao hàng và SH- hoá đơn phải kèm SH nhà cung cấp
Ta có các mô hình thực thể liên kết như sau:
- Mô hình thực thể liên kết mở rộng,
- Mô hình thực thể liên kết kinh điển
- Mô hình thực thể liên kết hạn chế
Trang 18Mã hàng Lượng DT
Gồm
Phát cho
Phát hàng SH-PH Ngày PH
Mã hàng Lượng PH
Nhập vào
Mặt hàng
Mã hàng Chi tiết MH Gồm
Giao hàng SH-GH Tên NCC Ngày GH
Mã hàng Lượng GH
Gửi cho Cung ứng
Xuất cho
Phân xưởng SH_PX Chi tiết PX
Lập
Đưa vào
Đơn hàng SH-ĐH Ngày ĐH
Mã hàng Lượng ĐH
Trang 19
Trong lược đồ trên dùng tam giác để chỉ hướng đọc mối liên kết và dùng thuộc tính
in nghiêng để đánh dấu các thuộc tính đa trị
4.3 CHUYỂN ĐỔI SANG MÔ HÌNH QUAN HỆ DỮ LIỆU
4.3.1 Một số khái niệm
Domain - Miền
Domain là một tập hợp không rỗng D Để biểu diễn một phần tử thuộc D, ta viết
ED Miền (domain) là một tập các giá trị hoặc các đối tượng
Gọi D1, D2, .Dn, là n miền, khi đó D là tập hợp các phần tử của tích Đề các
D1D2 Dn Cũng có thể số lượng các phần tử của D bị giảm đi bởi một điều kiện xác định cho trước
Thuộc tính (Attribute)
Thuộc tính là một lớp dữ liệu mô tả hành vi, tính chất phát sinh trong CSDL, nghĩa
là nó chỉ dựa vào tính chất của lớp dữ liệu này
Mỗi thuộc tính được gắn với một và chỉ một domain
Một mục dữ liệu (item) của một thuộc tính trong CSDL là một giá trị của domain của thuộc tính này
Một thuộc tính gọi là có tính joined nếu nó được định nghĩa từ một vài các thuộc tính khác; do đó domain của nó là tập con của tích Đề các các domain của các thuộc tính này
Ký hiệu:
- Gọi c là giá trị của thuộc tính C Nếu C được tạo thành từ các thuộc tính C1,
C2, ,Cn, khi đó ta ký hiệu c.C1 và c(C1) chỉ giá trị c đối với thuộc tính C1
- Nếu thuộc tính C có các domain D1, D2, Dn thì c.D1 và c(D1) chỉ giá trị c trong domain D1
Quan hệ
Một quan hệ (Relation) n-R là tập R+ các thuộc tính của R và một vị từ mô tả bởi
R chứa các biến số tự do (ví dụ ,) tương ứng các thuộc tính của R+ và nhận các giá trị trong các domain của các thuộc tính đó
Một bộ (n-tuple) của R là một phần tử của tính Đề các của các domain tương ứng
với n thuộc tính của R
Trang 20
Một thực thể (entity) r của R là một bộ của R thoả mãn vị từ R (r)=true
Một cách đơn giản, quan hệ R là một bảng dữ liệu hai chiều
Lược đồ quan hệ
Lược đồ quan hệ là sự hợp thành của hai yếu tố:
- Một cấu trúc, gồm tên quan hệ và danh sách các thuộc tính (mỗi thuộc tính gắn với một miền) thường cho dưới dạng R(A1A2…An)
- Một tập hợp các ràng buộc toàn vẹn, tức là các điều kiện mà mọi quan hệ trong lược đồ phải thoả mãn
- Về mặt hình thức: Lược đồ quan hệ cho bởi một cặp gồm hai thành phần =<U+, F> , trong đó:
p1 p2 p1 p2
200
500
300
100 Trong thuộc tính Product có thể tách thành 2 thuộc tính con độc lập nhau, do đó Product chưa nguyên tố, ta đưa về dạng chuẩn 1NF bằng cách tách Product thành 2 thuộc tính P# và Qty
Tuy nhiên cần chú ý quan niệm nguyên tố sẽ quyết định dạng chuẩn 1NF, mà quan niệm này phụ thuộc vào yêu cầu xây dựng CSDL và khai thác CSDL
Ví dụ: Cần quản lý tình trạng bán hàng trong từng ngày, khi đó thuộc tính Qty cần phải tách thành: Ngày bán+Đơn giá+ Số lượng
Trang 21
Và dạng chuẩn 1NF như sau:
Dạng chuẩn 2NF
* Khái niệm phụ thuộc hàm đầy đủ:
Ví dụ: Trên quan hệ KQTHI(MaSV, MaMT, Điem) có:
MaSV, MaMT Điem
- Y được gọi là phụ thuộc hàm đầy đủ vào X trên lược đồ quan hệ =<U+, F> nếu
XY thoả trên Nhưng với mọi tập con X' X (X'X) thì X' Y không thoả trên + Nếu ta sử dụng ký hiệu =<U+, F> Điều kiện Y phụ thuộc đầy đủ vào X là:
| F : X X
) X Y (hay Y X -
| F
F ' '
FX Y : X X
X Y
Ví dụ: Cho F={AC, BC, AD, DEC, CEA}
- Kiểm tra C có phụ thuộc đầy đủ vào AD hay không? Không vì F |- AC
- Kiểm tra AB có phụ thuộc đầy đủ vào BCE hay không?
* Định nghĩa: Một lược đồ gọi là dạng chuẩn 2NF nếu:
- ở dạng chuẩn 1NF,
- Mọi thuộc tính không khoá (thuộc tính không nằm trong khoá nào với mọi khoá) đều phụ thuộc đầy đủ vào khoá
Chú ý: Trong thực tế thì ta thường gọi một khoá làm khoá chính Primary Key Khi
đó yêu cầu của dạng chuẩn (yếu hơn về mặt lý thuyết) chỉ cần các thuộc tính không khoá phụ thuộc đầy đủ vào khoá chính
Trang 22Lược đồ được tách thành các lược đồ sau:
1=<U+={MaSV, TenSV}; F={MaSVTenSV}>
2=<U+={MaMT, TenMon}; F={MaMTTenMon}>
3=<U+={MaSV, MaMT, DiemThi}; F={MaSV, MaMTĐiemThi}>
1, 2 hiển nhiên ở dạng chuẩn 2NF
3 có khoá duy nhất là X=MaSV, MaMT Thuộc tính không khoa là DiemThi phụ thuộc đầy đủ vào khoá X Vì
MaSV DiemThi
X DiemThi
Dạng chuẩn 3NF
* Khái niệm phụ thuộc bắc cầu:
- Nhận xét: Chất lượng "tốt" của một quan hệ liên quan đến độ chặt chẽ của các phụ thuộc dữ liệu giữa các thuộc tính không khoá và thuộc tính khoá Khái niệm phụ thuộc đầy đủ ở trên là ví dụ Để định nghĩa tốt hơn ta xét khái niệm phụ thuộc bắc cầu
- Định nghĩa: Cho lược đồ quan hệ =<U+, F>, X U, A U A là một thuộc tính của U+
Ta nói A phụ thuộc bắc cầu vào X trên nếu có thể chèn một cầu thực sự Y vàn giữa quan hệ A và X Nghĩa là
)XkhôngY
( AY,YX
Nếu có phụ thuộc bắc cầu giữa A và X như trên ta nói A và X còn phụ thuộc lỏng
Định nghĩa 1: Lược đồ quan hệ được gọi ở dạng chuẩn 3NF nếu
Trang 23
i) ở dạng chuẩn 1NF
ii) Mọi thuộc tính không khoá không được phụ thuộc bắc cầu vào khoá
Định nghĩa 2: Lược đồ quan hệ được gọi ở dạng chuẩn 3NF nếu
i) ở dạng chuẩn 2NF
ii) Mọi thuộc tính không khoá không được phụ thuộc bắc cầu vào khoá
Chú ý: A phụ thuộc không đầy đủ vào khoá X, chỉ phụ thuộc vào Y (Y X , Y X) thì A cũng phụ thuộc bắc cầu: X Y A
Ví dụ 1: Cho lược đồ quan hệ như sau:
C T: Mỗi giáo trình có một thầy dạy,
HR C: Chỉ một môn học ở một phòng học tại một thời điểm,
HT R: Tại mỗi thời điểm mỗi giáo viên chỉ có thể dạy ở một phòng học,
CS G: Mỗi sinh viên chỉ ở một lớp học theo mỗi giáo trình
HS R: Mỗi sinh viên chỉ có thể ở một phòng học tại một thời điểm
Yêu cầu: Kiểm tra có ở dạng chuẩn 3NF hay không? Nếu không ở dạng chuẩn nào?
- Xác định tập K các khoá của và tập N các thuộc tính không khoá
Nhận xét: Thuộc tính HS tham gia khoá vì chúng không xuất hiện ở vế phải Kiểm Tra HS có phải là khoá không
HS+=HSRCTG=U+
Ta có khoá K={HS} là khoá duy nhất, N={RCT} là các thuộc tính không khoá
R là thuộc tính không khoá: HS HT R (HT không HS) Như vậy R phụ thuộc bắc cầu vào khoá HS thông qua cầu HT Suy ra không ở dạng chuẩn 3NF
- Kiểm tra N=RCT có phụ thuộc đầy đủ vào HS hay không?
H C H H : C H
Vậy C phụ thuộc đầy đủ vào HS
Tương tự RT
Trang 24+ Nếu X Y là một phụ thuộc hàm không tầm thường thoả mãn trên thì X phải
là siêu khoá của
4.3.2.2 Chuẩn hoá
Định nghĩa: Chuẩn hoá là sự phân rã không làm mất mát thông tin của một quan
hệ R thành một tập hợp các quan hệ ở dạng chuẩn 3NF
Chuẩn hoá theo hướng phân tích
Thực hiện chuẩn hoá dần dần theo các bước 1NF 2NF 3NF
Đưa về dạng chuẩn 1NF: Thực hiện tách các thuộc tính lặp
+ Nhóm các thuộc tính đơn toạ thành một quan hệ Chọn khoá cho nó
+ Nhóm các thuộc tính lặp tách ra, tăng thêm khoá của quan hệ trên tạo thành một quan hệ (hay một số quan hệ theo chủ đề) Chọn khoá cho các quan hệ này, thường là khoá bội, trong đó khoá của quan hệ trên là một thành phần
ii Đưa về dạng chuẩn 2NF: Thực hiện tách các nhóm thuộc tính phụ thuộc hàm vào một phần của khoá
+ Nhóm thuộc tính không bị tách tạo thành một quan hệ với khoá như cũ
+ Mỗi nhóm tách ra (gồm các thuộc tính cùng phụ thuộc vào một phần thuộc tính nào đó của khoá) cộng thêm các thuộc tính mà chúng phụ thuộc tạo thành một quan hệ với khoá là các thuộc tính được thêm này
iii Đưa về dạng chuẩn 3NF: Thực hiện tách các nhóm thuộc tính phụ thuộc một hay một số các thuộc tính ngoài khoá
+ Nhóm thuộc tính còn lại tạo thành một quan hệ với khoá như cũ
+ Mỗi nhóm tách ra (gồm các thuộc tính phụ thuộc vào cùng một hay một số các thuộc tính ngoài khoá) cộng thêm các thuộc tính mà chúng phụ thuộc tạo thành một quan
hệ mới với khoá là các thuộc tính cộng thêm này
Như vậy, sau khi thực hiện các bước trên ta được các quan hệ ở dạng chuẩn 3NF
Ví dụ: Ta thực hiện chuẩn hoá một đơn hàng
- Các thuộc tính đơn:
Trang 25Các phụ thuộc hàm trong danh sách các thuộc tính còn lại là:
SH-ĐH SH-NgCC, Tên -NgCC, Địa chỉ - NgCC, Ngày-ĐH
SH-ĐH, Mã MH Mô tả MH, Đơn vị tính, Đơn giá, Số lượng
SH-NgCC Tên -NgCC, Địa chỉ - NgCC
Mã MH Mô tả MH, Đơn vị tính, Đơn giá
Ta có các bước chuẩn hoá sau:
Mã MH
Mô tả MH Đơn vị tính Đơn giá
SH-ĐH SH-NgCC Ngày-ĐH
SH-NgCC Tên -NgCC Địa chỉ - NgCC
4.3.3 Phương pháp lập lược đồ dữ liệu theo mô hình
Trang 26
4.3.3.1 Ý nghĩa vai trò của mô hình dòng dữ liệu:
- Giúp cho người phân tích hiểu rõ hơn về sự biến đổi, di chuyển dữ liệu bên trong hệ thống và các xử lý tương ứng
- Là phương tiện để người phân tích và người sử dụng giao tiếp nhằm làm sáng tỏ và hiệu chỉnh những chi tiết bên trong hệ thống để đáp ứng tốt các yêu cầu
- Là phương tiện để người phân tích và người lập trình giao tiếp với nhau trong giai đoạn phát triển hệ thống
- Là mô hình dùng để kết hợp giữa mô hình chức năng và mô hình dữ liệu nhằm rà soát lẫn nhau
4.3.3.2 Các kí hiệu sử dụng:
- Kho chứa (Data store):
Là nơi lưu giữ các thông tin dữ liệu phục vụ cho các xử lý
- Xử lý (Process):
Là một sự biến đổi thông tin nào đó bên trong hệ thống, tên của xử lý là động từ có thể kèm theo bổ ngữ
- Nguồn / Đích (Source / Shrink):
+ Nguồn là tác nhân gây ra sự hoạt động của hệ thống
+ Đích là tác nhân mà hệ thống hướng đến phục Trong sơ đồ một tác nhân có thể vừa là nguồn vừa là đích
Trang 27
- Sơ đồ dòng dữ liệu các mức dưới đỉnh
4.3.3.4 Sơ đồ ngữ cảnh (Context Diagram)
Sơ đồ ngữ cảnh chỉ ra giới hạn hoặc phạm vi của hệ thống thông tin Sơ đồ này có một xử lý tổng quát nhất của bài toán và tất cả các nguồn, đích và các dòng dữ liệu tương ứng
Ví dụ : Sơ đồ ngữ cảnh Bài toán quản lý xây dựng
4.3.3.5 Sơ đồ phân rã các xử lý (Process Chart):
- Trên cơ sở sơ đồ chức năng ta lập sơ đồ phân rã các xử lý Mỗi nút trên mô hình chức năng tương ứng với một hoặc một số xử lý Ngoài ra, trong sơ đồ phân rã có thể chia tách ở mức chi tiết hơn
- Xử lý : là một sự biến đổi thông tin, dữ liệu Mỗi xử lý đều phải có các dữ liệu vào
và dữ liệu sau khi xử lý xong đi ra khỏi nó
Ví dụ: Sơ đồ phân rã các xử lý đối với Bài toán quản lý xây dựng
Trang 28
Ghi chú :
QLXD Quản lý xây dựng TNLĐ Tiếp nhận lao động
QLKHSX Quản lý kế hoạch sản xuất ĐPLĐ Điều phối lao động
QLLĐ Quản lý lao động LNCLĐ Lập nhu cầu lao động
QLNVL Quản lý nguyên vật liệu LĐ ĐH Lập đơn đặt hàng
QLTC/BC Quản lý tài chính/báo cáo TN NVL Tiếp nhận NVL
LNC NVL Lập nhu cầu Nguyên vật
liệu Tính TCLĐ Tính tiền công lao động
THBC Tổng hợp báo cáo Tính CPNVL Tính chi phí NVL
4.3.3.6 Sơ đồ dòng dữ liệu mức đỉnh (Top levelling Data flow Diagram (DFD):
- Trên cơ sở sơ đồ ngữ cảnh và sơ đồ phân rã các xử lý ta lập sơ đồ dòng dữ liệu mức đỉnh như sau:
+ Các xử lý xuất phát từ gốc của sơ đồ phân rã các xử lý được đặt trong sơ đồ + Tất cả nguồn / đích ở sơ đồ ngữ cảnh đặt lại trong sơ đồ
+ Các dòng dữ liệu chi tiết bên trong hệ thống xuất hiện
+ Các kho chứa phù hợp xuất hiện
- Trong sơ đồ dòng dữ liệu các thành phần: nguồn, đích, xử lý, kho chứa, v.v phải được đặt tên và có số hiệu để làm từ điển dữ liệu sau này
Ví dụ: Sơ đồ dòng dữ liệu mức đỉnh của bài toán QLXD
Trang 29
Các chú ý khi xây dựng sơ đồ:
a Không có dòng dữ liệu đi trực tiếp từ nguồn đến đích, từ nguồn đến kho chứa hoặc từ kho chứa đến đích
b Dòng dữ liệu không mang yếu tố điều khiển
c Đối với một xử lý thì ít nhất phải có một dòng dữ liệu đến và một dòng dữ liệu đi khỏi nó
d Không có dòng dữ liệu đi đến và đi khỏi một xử lý là giống nhau
e Ra khỏi một xử lý không có hai dòng dữ liệu là giống nhau trừ khi có một dòng đến đích
f Không có dòng dữ liệu đi trực tiếp từ xử lý này sang xử lý khác
Trang 30
g Đối với kho chứa, ít nhất phải có một dòng dữ liệu đến và một dòng dữ liệu đi ra khỏi nó
4.3.3.7 Sơ đồ dòng dữ liệu các mức dưới đỉnh (Lower levelling diagram):
- Sơ đồ dòng dữ liệu các mức dưới đỉnh được xây dựng tương ứng với một xử lý trong sơ đồ phân rã các xử lý
Ví dụ:
+ Xây dựng sơ đồ dòng dữ liệu mức dưới đỉnh Quản lý Lao động
+ Xây dựng sơ đồ dòng dữ liệu mức dưới đỉnh Tiếp nhận Lao động
+ Xây dựng sơ đồ dòng dữ liệu mức dưới đỉnh Quản lý Tài chính
- Nguyên tắc xây dựng sơ đồ dòng dữ liệu mức dưới đỉnh : Từ sơ đồ phân rã các xử
lý, ta đặt các xử lý xuất phát từ đỉnh đó vào trong sơ đồ Đồng thời từ sơ đồ dòng dữ liệu mức trên liền kề tất cả các thành phần liên quan với xử lý đó được đặt trở lại trong sơ đồ, nếu khác chăng chỉ là chi tiết hơn
Ví dụ:
- Ở sơ đồ mức đỉnh:
- Sơ đồ dòng dữ liệu mức dưới đỉnh của xử lý Quản lý lao động:
Trang 31+ Tên dòng dữ liệu đi
+ Giải thích vai trò của nguồn
- Mô tả nội dung xử lý
c Mô tả kho chứa:
- Tên kho, số hiệu kho;
- Các dòng dữ liệu đến;
- Các dòng dữ liệu đi;
- Mô tả các kho
Trang 32
d Mô tả dòng dữ liệu:
Dòng dữ liệu là một cấu trúc dữ liệu bao gồm nhiều phần tử dữ liệu
- Tên dòng dữ liệu, số hiệu dòng dữ liệu;
- Nơi xuất phát;
- Nơi đến;
- Liệt kê các phần tử dữ liệu:
+ Tên phân tử dữ liệu 1;
+…
+ Tên phần tử dữ liệu n
Sau khi lập từ điển dữ liệu đặc biệt là mô tả dòng dữ liệu ta phải lập danh bạ phần
tử dữ liệu (căn cứ vào việc mô tả dòng dữ liệu)
DANH BẠ PHẦN TỬ DỮ LIỆU
Số TT Tên phần tử dữ liệu Kiểu dữ liệu Kích thước Ghi chú
Ví dụ: HSXV =(Họ tên, Tuổi, Địa chỉ, Trình độ)
Ta có thể tóm tắt quy trình thành lập lược đồ dữ liệu cho hệ thống theo mô hình quan hệ như sau:
- Thành lập một danh sách các thuộc tính, gọi là danh sách xuất phát Có thể xem đây là một quan hệ, với một ý nghĩa khái quát nào đó
Chú ý: Quá trình được lặp lại với nhiều danh sách khác, cho đến khi vét cạn các
thông tin cần thiết cho hệ thống
Có 2 cách tiếp cận cơ bản thành lập danh sách xuất phát:
+ Đó là tập hợp các thông tin cơ bản (thông tin không có cấu trúc) phát hiện được trong một phạm vi điều tra
+ Xuất phát từ một cái ra của hệ thống Cái ra có thể là: một chứng từ hay một tài liệu in ra từ hệ thống; một màn hình giao tiếp người/máy
- Tu chỉnh lại danh sách xuất phát, qua các công việc sau:
+ Loại bỏ bớt các tên đồng nghĩa
+ Loại bỏ các thuộc tính tính toán, tức là các thuộc tính có giá trị được tính từ các giá trị của các thuộc tính khác
Trang 33
+ Kết nạp thêm các thuộc tính được dùng để tính toán các thuộc tính tính toán đã bị loại trên nếu chúng chưa có trong danh sách
+ Nếu có thể được, thay thế các thuộc tính không đơn thành các thuộc tính đơn
- Tìm các phụ thuộc hàm trong danh sách các thuộc tính
+ Trước tiên là rà các khả năng có các PTH giữa từng cặp các thuộc tính trong danh sách + Sau đó, xét các PTH có vế trái gồm 2,3 … thuộc tính
- Tiến hành chuẩn hoá dựa trên tập các PTH đã được lập ở trên, dựa vào phương
pháp chuẩn hoá đã biết ở trên Kết quả thu được là một tập các lược đồ quan hệ ở dạng chuẩn 3NF
- Lặp lại các bước từ (i) đến (iv) cho các danh sách xuất phát khác nhau, cho đến
khi quét hết các phạm vi khảo sát Ta được nhiều tâp lược đồ quan hệ 3NF
- Lấy hợp các kết quả thu được từ các lần lặp trên Khi lấy hợp, nếu có hai quan hệ
có khoá trùng nhau thì chúng được gộp thành một quan hệ với danh sách các thuộc tính
là hợp của hai danh sách tương ứng
CÂU HỎI ÔN TẬP :
1 Từ điển dữ liệu là gì ? Ý nghĩa của nó trong quá trình thiết kế CSDL ?
2 Các khái niệm cơ bản trong quá trình xây dựng sơ đồ E-R Tự cho ví dụ minh hoạ
3 Ý nghĩa và kỹ thuật đặc tả mối quan hệ giữa hai thực thể ?
4 Tại sao nói việc biểu diễn sơ đồ E-R và mô hình khái niệm dữ liệu là tương đương nhau ?
5 Việc rút gọn sơ đồ E-R có tác dụng gì ? Cho ví dụ của riêng mình
BÀI TẬP THỰC HÀNH :
Câu 1 Việc quản lý cán bộ ở một cơ quan X gồm các công việc sau:
Khi một người được tiếp nhận vào cơ quan, hồ sơ cá nhân của người đó được cập nhật các thông tin sau: Mã cán bộ, Mã phòng, Họ tên, Ngày sinh, Quê quán, Chỗ ở, Trình
độ chuyên môn, Ngày vào Đoàn, Ngày vào Đảng, Mức lương, Năm lên lương,
Khi thông tin của một cán bộ có thay đổi, các thông tin đó sẽ được cập nhật lại Khi
có một cán bộ chuyển công tác hoặc nghỉ hưu, thông tin về cán bộ đó sẽ được lưu lại một nơi khác
Tuỳ theo yêu cầu của lãnh đạo cơ quan, hệ thống có thể đáp ứng các yêu cầu sau:
1 Cho xem hồ sơ của một cán bộ
Trang 34
2 Xem danh sách cán bộ theo trình độ chuyên môn
3 Xem danh sách cán bộ theo phòng
4 In hồ sơ cá nhân
5 In danh sách trích ngang cán bộ toàn cơ quan
6 In danh sách nâng lương của cán bộ trong năm
Kết hợp với kết quả khảo sát đã thực hiện, Anh (Chị) hãy thiết kế hệ thống quản lý cán bộ nói trên gồm:
a Biểu đồ phân cấp chức năng 3 mức
b Biểu đồ luồng dữ liệu mức khung cảnh, mức đỉnh
Câu 2 Việc quản lý sách và bạn đọc ở thư viện X bao gồm các công việc sau:
- Quản lý sách:
+ Cập nhật sách mới: Khi sách mới được nhập về, cán bộ thư viện cập nhật các thông tin: Mã sách, Tên sách, Tên tác giả, Tên nhà xuất bản, Năm xuất bản, Số lượng, Đơn giá,
+ Tra cứu thông tin về sách khi độc giả đến mượn sách có yêu cầu
- Quản lý bạn đọc:
+ Làm thẻ độc giả: Một người muốn được mượn sách ở thư viện cần phải làm thẻ độc giả Thẻ độc giả gồm các thông tin sau: Số thẻ, Họ và tên, Ngày sinh, Địa chỉ, Chứng minh nhân dân, Điện thoại
+ Tra cứu thông tin về độc giả khi cần thiết
- Quản lý mượn trả sách:
+ Quản lý mượn: Một độc giả khi đến mượn sách cần ghi một phiếu yêu cầu gồm:
Số thẻ, Mã sách, Ngày mượn, Ngày hẹn trả Người thủ thư sẽ cho mượn sách hoặc từ chối sau khi đã kiểm tra thẻ độc giả, kiểm tra sách trong kho
+ Quản lý trả: Khi độc giả đến trả sách, người thủ thư sẽ cập nhật các thông tin: Số thẻ, Mã sách, Ngày trả Nếu độc giả trả quá hạn, người thủ thư sẽ thực hiện việc xử lý quá hạn
- Thống kê sách theo yêu cầu: Theo yêu cầu của bộ phận quản lý, định kỳ thống kê sách theo nhà xuất bản, theo tác giả, sách được độc giả yêu thích, Kết hợp với kết quả
đã khảo sát, Anh (chị) hãy thiết kế hệ thống quản lý sách và bạn đọc để thực hiện các công việc trên gồm:
Trang 35
1 Biểu đồ phân cấp chức năng gồm 3 mức
2 Biểu đồ luồng dữ liệu mức khung cảnh, mức đỉnh
Câu 3 Việc quản lý công văn ở một đơn vị hành chính bao gồm các công việc sau:
Khi nhận được một công văn hệ thống cập nhật các thông tin: Số công văn đến, ngày nhận công văn, loại công văn, tên công văn, tóm tắt nội dung, nơi gửi, sau đó mới phân phát công văn đó về các đơn vị trong cơ quan hoặc Ban lãnh đạo
Trước khi gửi một công văn đi, hệ thống cập nhật các thông tin: Số công văn đi, ngày gửi công văn, loại công văn, tên công văn, tóm tắt nội dung, người ký, nơi nhận, sau đó mới gửi công văn đi Công văn đi do lãnh đạo hoặc các đơn vị trong cơ quan soạn thảo
Tuỳ theo yêu cầu, hệ thống có thể phải đáp ứng việc thống kê công văn:
1 Trong một khoảng thời gian tuỳ ý
2 Theo nơi gửi công văn
3 Theo nơi nhận công văn
4 Theo loại công văn
Kết hợp với kết quả khảo sát mà anh chị đã thực hiện hãy thiết kế hệ thống quản lý công văn trên với các yêu cầu:
a Xây dựng biểu đồ phân cấp chức năng 3 mức
b Xây dựng biểu đồ luồng dữ liệu logic ở 2 mức: Mức khung cảnh, mức đỉnh
Trang 36
Chương 5
THIẾT KẾ HỆ THỐNG
Thời gian: 14 g (LT: 4g; TH:8g; KT:2g) Mục tiêu:
Sau khi học xong phần này người học có khả năng:
- Trình bày được qui trình các công việc trong thiết kế hệ thống, nội dung của các công việc thiết kế tổng thể, giao diện, kiểm soát và thiết kế chương trình trong giai đoạn thiết kế hệ thống thông tin;
- Thiết kế được một số hệ thống thông tin thông dụng;
- Rèn luyện ý thức lao động, tác phong công nghiệp, có trách nhiệm và sáng tạo
Nội dung:
5.1 THIẾT KẾ TỔNG THỂ
5.1.1 Phân định hệ thống máy tính và hệ thống thủ công
- Dữ liệu đầu vào của phần này là biểu đồ luồng dữ liệu ở mức nào đó, tài liệu
ra (đầu ra) vẫn là biểu đồ đó nhưng đã được phân định rõ ranh giới giữa máy tính
và thủ công.
- Cách thực hiện như sau:
5.1.1.1 Đối với các chức năng xử lý:
Với các chức năng nằm hẳn về 1 bên hoặc là thủ công hoặc là máy tính thì giữ nguyên, còn với những chức năng chưa phân định rõ có thể xảy ra một trong hai khả năng:
- Căn cứ vào tình hình mức độ tin học hoá chuyển sang thực hiện trên máy tính hoàn toàn; hoặc chuyển sang làm thủ công hoàn toàn
- Phân rã tiếp thành một số chức năng cho đến khi chức năng mới được xác định là chức năng thủ công hay chức năng của máy tính.
5.1.1.2 Đối với các kho dữ liệu:
- Với các kho nằm ở vùng thủ công (có thể chỉ các hồ sơ chứng từ văn phòng) phải đối chiếu với biểu đồ cấu trúc dữ liệu để loại bỏ thực thể tương ứng với kho
dữ liệu này.
Trang 37
- Đối với kho dữ liệu nằm trong vùng máy tính thường nó sẽ là các tệp tin phải đối chiếu lại với biểu đồ cấu trúc dữ liệu để bổ sung thêm thực thể tương ứng với
nó (nếu thiếu)
VD: Bài toán cung ứng vật tư với chức năng là chọn nguồn cung cấp
Hình 5.1: Mô hình chọn nguồn cung cấp vật tư
Trong 2 chức năng trên đều có phần vừa thủ công vừa máy tính nên tiến hành phân rã tiếp như sau:
Hình 5.2: Mô hình chọn nguồn cung cấp vật tư được phân rã
Trang 38
Chú ý: Trong ví dụ này việc phân rã chỉ mang tính chất minh hoạ Việc phân
rã phải dựa vào quy trình xử lý cụ thể trong từng giai đoạn
5.1.2 Xác định các hệ thống con máy tính
- Mục đích: Xây dựng được các bộ chương trình đóng gói (packet), mỗi gói tương ứng với hệ thống con trong hệ thống Căn cứ vào các chức năng của hệ thống ở trong các biểu đồ đã phân rã
- Cách thực hiện: Dùng các đường gạch nối để khoanh từng vùng ứng với các chức năng liên quan đến nhau trong việc xử lý Ngoài ra có một số căn cứ sau:
5.1.2.1 Theo kiểu thực thể
Gom tụ các chức năng có liên quan đến một kiểu thực thể hay một nhóm thực thể (có thể là 1 tệp) Ví dụ hệ thống con khách hàng bao gồm các chức năng liên quan đến thực thể khách hàng (ví dụ: chức năng chọn NCC, lập đơn hàng, trả lời thương lượng với khách hàng là một nhóm Các chức năng về quản lý kho vật tư liên quan đến thực thể kho hàng bao gồm các chức năng nhập hàng, xuất hàng, báo cáo tồn vào một nhóm) 5.1.2.2 Theo giao dịch
Gom tụ theo giao dịch: Căn cứ vào luồng dữ liệu, khi từ môi trường bên ngoài vào
sẽ kích hoạt 1 loạt các chức năng của hệ thống
VD: Khi có yêu cầu dự trù vật tư thì những chức năng liên quan khách hàng đều bị kích hoạt
5.1.2.3 Theo trung tâm biến đổi
Quan sát trên biểu đồ luồng dữ liệu, nếu phát hiện được có 1 khu vực tập trung xử
lý các thông tin chủ yếu thì gom những chức năng này lại
VD: Chức năng làm bảng lương sẽ kéo theo các chức năng nhập bảng chấm công, nhập định mức lương, chức năng in ấn các biểu lương
5.1.2.4 Theo tính thiết thực
Theo cấu trúc kinh doanh của cơ quan, theo vị trí cơ sở, theo trình độ đội ngũ, trách nhiệm công tác (phân quyền)
VD: Giám đốc có thể xem báo cáo nhưng giám đốc không sửa được
*Chú ý: Khi khoanh vùng giữa các vùng có thể xảy ra trường hợp là các vùng không
liên thông với nhau khi đó hệ thống sẽ có nhiều chương trình con tách rời Nếu các máy
Trang 40
5.1.3.2 Nhận đơn hàng.