PTTKHT_hoangthe

Màu nền
Font chữ
Font size
Chiều cao dòng

CHƯƠNG 2

CÁC CÔNG CỤ DIỄN TẢ CÁC XỬ LÝ

Nội dung của chương này đề cập tới việc tìm hiểu hệ thống về mặt chức năng mà mục đích cuối cùng là tìm ra một mô hình diễn tả hệ thống về mặt chức năng.

1. Biểu đồ phân cấp chức năng

          Biểu đồ phân cấp chức năng (BPC) là công cụ khởi đầu của sự mô tả hệ thống về mặt chức năng do IBM đề xuất từ giữa thế kỷ trước cho đến nay vẫn được sử dụng rộng rãi. Thành phần của BPC bao gồm:

tªn

          - Các chức năng: Được ký hiệu bằng hình chữ nhật trong đó có ghi tên chức năng :

- Các kết nối: Kết nối giữa các chức năng mang tính phân cấp và được đặc tả bằng các đoạn thẳng nối chức năng “cha” đến các chức năng “con”.

          Nói chung, BPC là một loại biểu đồ diễn tả sự phân rã dần dần các chức năng từ tổng thể đến chi tiết. Mỗi nút của biểu đồ là một chức năng, còn quan hệ giữa các chức năng được diễn tả bởi các cung nối liền các nút (Hình 2.1).

          Như vậy BPC tạo thành một cấu trúc cây:

Đặc điểm của BPC là:

- Đơn giản, dễ lập.

- Cho một cách nhìn khái quát, dễ hiểu từ tổng đến chi tiết.

- Có tính chất tĩnh, bởi vì BPC chỉ cho biết các chức năng mà không cho biết trình tự xử lý.

- Không thể hiện được sự trao đổi thông tin giữa các chức năng.

Với những đặc điểm trên nên BPC hay được dùng trong bước đầu phân tích, đối với một hệ thống thông tin phức tạp thì việc chỉ dùng BPC là không đáp ứng được yêu cầu của việc phân tích chức năng.

Lưu ý: Phân biệt giữa biểu đồ phân cấp chức năng và sơ đồ phân cấp về tổ chức.

Sơ đồ tổ chức thể hiện các bộ phận, các tổ chức thành cơ quan. Bởi sự phân cấp quản lý thường được áp dụng trong các cơ quan nên sơ đồ tổ chức có dạng cây. Nói chung là có sự tương đồng giữa tổ chức và chức năng, chẳng hạn với một doanh nghiệp có các chức năng như hình 2.1 có thể có sơ đồ tổ chức như sau: (Hình 2.2)

2. Biểu đồ luồng dữ liệu (BLD)

          Mục đích: Nhằm diễn tả tập hợp các chức năng xử lý thông tin của hệ thống trong mối quan hệ, mối quan hệ giữa chúng được thể hiện thông qua:

          - Trình tự trước, sau của các chức năng trong tiến trình xử lý.

          - Phân tích.

          - Thiết kế.

          Bên cạnh đó BLD là một tư liệu tốt dùng để liên lạc, trao đổi giữa các phân tích viên hệ thống, giữa phân tích viên hệ thống với các cấp lãnh đạo và sau cùng là giữa họ với người sử dụng.

          Một cách cụ thể hơn BLD phải thể hiện được các yếu tố sau:

          - Chỉ rõ các chức năng cần phải thực hiện để đạt được mục tiêu đề ra.

          - Chỉ rõ các thông tin chuyển giao giữa các chức năng.

3. Các yếu tố hợp thành

          Các yếu tố tạo nên BLD bao gồm: Chức năng xử lý, luồng dữ liệu, kho dữ liệu, tác nhân ngoài, tác nhân trong.

3.1. Chức năng xử lý

          Một chức năng được hiểu là hoạt động biến đổi thông tin, tên của chức năng phải là một động từ, có thêm bổ ngữ nếu cần.

          Để biểu diễn chức năng người ta dùng hình tròn, bên trong có ghi tên chức năng. Việc biểu diễn như vậy là một quy ước, trong một số tài liệu có thể dùng những ký hiệu khác (hình chữ nhật hoặc hình vuông tròn góc).

Ví dụ:         Để biểu diễn chức năng kiểm tra hoá đơn ta thể hiện như sau:

          Các chức năng được miêu tả trong BLD có tác dụng là biến đổi thông tin. Điều này có nghĩa là nó phải làm thay đổi thông tin theo một cách nào đó, chẳng hạn như tổ chức lại thông tin, bổ sung thông tin hay tạo ra thông tin mới. Nếu trong một quá trình BLD không có thông tin mới được sinh ra thì đó chưa phải là quá trình trong BLD và các hoạt động của nó cần phải gộp vào các hoạt động của quá trình biến đổi thông tin khác.

          Trong thực tế tên của các chức năng phải trùng với tên của các chức năng đã đặt cho các chức năng trong BPC.

          3.2. Luồng dữ liệu

          Là luồng thông tin vào/ra một chức năng xử lý. Khi nói đến luồng thông tin ta nên hiểu là ở đây có một thông tin được chuyển đến một chức năng để xử lý hoặc chuyển ra khỏi một chức năng như một kết quả xử lý, mà không cần quan tâm đến hình thức truyền dẫn (bằng tay, qua máy fax hay qua máy điện thoại...).

          Biểu diễn: Một luồng dữ liệu được chỉ ra trên sơ đồ bằng một đường kẻ có mũi tên ở ít nhất một đầu. Mũi tên chỉ hướng lan truyền của thông tin:

Tên của luồng dữ liệu phải là một danh từ, kèm theo tính từ khi cần thiết. Chẳng hạn:

          Mỗi luồng dữ liệu phải có tên gắn với nó, ta phải đảm bảo rằng các luồng thông tin khác nhau phải có tên khác nhau. Những thông tin đã trải qua thay đổi thì nên mang tên đã sửa đổi để biểu thị điều đó (Hình 2.4).

Ví dụ:

Thông thường thông tin công tác được vận chuyển nhờ các tài liệu do thư ký hoặc máy tính chuẩn bị, nhưng chính thông tin mới là cái quan trọng chứ không phải giấy tờ mang thông tin. Các luồng dữ liệu và tên được gán cho chúng phải chỉ ra được thông tin ‘lôgic’ chứ không phải là tài liệu vật lý.

Nhiệm vụ được yêu cầu có thể được giải quyết bằng nhiều cách và mục tiêu của việc phân tích là mở ra các tiềm năng đó, để có thể nêu ra cho nhà thiết kế nhiều phương án.

Mục đích của chúng ta khi xây dựng BLD là giúp mình thấy được đằng sau những cái gì thực tế xảy ra trong hệ thống hiện tại, làm rõ các chức năng và thông tin nào là cần thiết cho việc hoàn thành nhiệm vụ.

Ví dụ: Nên dùng “Thanh toán” thay cho “sec”.

3.3. Kho dữ liệu

Là các thông tin cần lưu chữ lại trong một khoảng thời gian để sau đó một hay nhiều chức năng xử lý khai thác sử dụng.

Dưới dạng vật lý chúng ta có thể là các tệp tài liệu, hồ sơ, tệp MT,... các phương tiện vật lý không phải là điều đáng quan tâm, điều chủ yếu là thông tin chứa trong chúng.

Tên của kho dữ liệu phải là một danh từ, khi cần có thể đi kèm với một tính từ.

Ví dụ: Hoá đơn, hoá đơn đã kiểm tra,...

Biểu diễn: Dùng một cặp đoạn thẳng song song, bên trong ghi tên của kho dữ liệu:

Các hình trạng có thể xảy ra giữa kho dữ liệu và luồng dữ liệu:

Các hình trạng trên là mô tả chung cho tất cả các tình huống.

Ví dụ:

Một nhân viên kế toán khi làm hoá đơn thì phải tham khảo tới đơn giá. Lúc ấy anh ta phải đi vào văn phòng để rút danh sách các đơn giá, tra cứu rồi đem trả lại danh sách. Điều này được đưa vào BLD như một dòng thông tin từ kho tới chức năng (Hình 2.5.a).

Tuy nhiên nếu anh ta không dùng danh sách đơn giá đó để làm hoá đơn mà được giao nhiệm vụ sửa đổi giá trong danh sách thì dòng dữ liệu phải đi từ chức năng vào kho (Hình 2.5.b).

Khả năng thứ 3 là kho được truy nhập và thông tin của nó cũng được chỉnh lý, trong trường hợp này ta vẽ luồng dữ liệu với mũi tên ở 2 đầu (Hình 2.5.c). Một ví dụ cho tình huống này là việc kiểm tra tính hợp lệ cho hoá đơn, ta cần phải kiểm tra tệp kho xem hoá đơn có được thoả mãn hay không và có thể sửa đổi các chi tiết cấp phát kho.

Lưu ý:

- Không bao giờ có trao đổi thông tin giữa 2 kho.

- Kho không biến đổi thông tin.

- Luồng thông tin vào/ra một kho không cần có tên, tên của chúng chính là tên của kho. Tuy nhiên nếu trong trường hợp chỉ dùng một phần trích ra của thông tin thì ta sẽ dùng tên (Hinh 2.6).

3.4. Tác nhân ngoài

Là một người, nhóm người, hay một tổ chức ngoài hệ thống nhưng có trao đổi thông tin với hệ thống.

Tên của tác nhân ngoài là một danh từ.

Biểu diễn: dùng hình chữ nhật trong có ghi tên tác nhân ngoài.

Ví dụ:

Sự có mặt của các nhân tố này trong BLD chỉ ra giới hạn của hệ thống và định rõ mối quan hệ của hệ thống với thế giới bên ngoài. Nhưng điều quan trọng cần hiểu là “ngoài lĩnh vực nghiên cứu” không nhất thiết có nghĩa là bên ngoài tổ chức. Chẳng hạn nếu việc nghiên cứu hệ thống hoá đơn đang được xem xét thì bộ phận kế toán, bộ phận mua hàng có thể đều là tác nhân ngoài.

Tác nhân ngoài là bộ phận không thể thiếu của mọi hệ thống vì chúng là nơi cung cấp thông tin cho hệ thống và là nơi nhận các sản phẩm của hệ thống,  mặt khác chính tác nhân ngoài “hình thành” nên phạm vi của hệ thống (hình 2.7).

3.5. Các tác nhân trong

Là một chức năng hay một hệ thống con của hệ thống đang xét nhưng lại được trình bày ở trang khác của biểu đồ.

Tên của tác nhân trong là một động từ, kèm theo một bổ ngư khi cần.

Để biểu diễn tác nhân trong ta dùng hình chữ nhật khuyết một cạnh:

Ví dụ:

Ta đã nghiên cứu các thành phần tạo nên một BLD, với sự hạn chế tương đối ngặt nghèo đó thì các BLD ít có khả năng tiếp nhận các yếu tố vật lý, điều này có nghĩa là nó chỉ có khả năng diễn tả được hệ thống về mặt chức năng ở mức lôgic.

Ví dụ: BPC biểu diễn biểu hoạt động bán hàng của một công ty thương mại (Hình 2.8).

Lưu ý:

- Trong BLD, một tác nhân ngoài (như khách hàng trong ví dụ) cũng như một kho dữ liệu hay một tác nhân trong có thể lặp lại. Nhưng phải được hiểu là chỉ một. Làm như vậy ta có thể tránh được việc vẽ các luồng dữ liệu đè lên nhau, BLD sẽ thoáng đẹp hơn, tuy nhiên các thành phần khác thì tuyệt đối không được vẽ lặp lại.

- Trong các BLD ta không thấy các thông tin điều khiển. Vậy các chức năng được khởi động và thực hiện ra sao? Ở đây có một nguyên tắc ngầm định giải quyết việc này, đó là nguyên tắc kích hoạt bằng dữ liệu (Data- triggered) mà nội dung là:

          + Một chức năng sẽ khởi động khi nó có đủ các dữ liệu cần thiết ở đầu vào.

          + Khi đã khởi động, thì một chức năng sẽ thực hiện vô cùng nhanh, nghĩa là dữ liệu đầu ra sẽ có ngay lập tức.

          Như vậy các yếu tố thời gian và điều khiển không được xét tới. Vậy nó có sự hạn chế đáng kể trong khả năng biểu diễn, các yếu tố về điều khiển và biến đổi hành vi trong thời gian sẽ được đề cập trong khuôn khổ giáo trình khác.

          Một vài biến dạng của BLD

          Để mô tả một cách xúc tích hơn chức năng của hệ thống, người ta đưa vào một số ký hiệu phụ:

Hình 2.9. Một số biến dạng của BLD

* :  Có nghĩa là và.

+: Có nghĩa là hoặc không có loại trừ (đồng thời sử dụng 2 luồng).

⊕: Có nghĩa là hoặc có loại trừ

Ví dụ: Hệ bán hàng mô tả đã xét (hình 2.8) sẽ có tình trạng mới như (hình 2.9).

          Hình 2.10 là BLD của phương pháp MERISE, ở đây mỗi chức năng (biểu diễn bằng hình chữ nhật) có gắn thêm một điều kiện đồng bộ hoá đầu vào, chức năng chỉ thực hiện khi điều kiện này đúng.

4. Các phương pháp đặc tả chức năng

          Có 2 phương pháp diễn tả chức năng là: Diễn tả một quá trình xử lý và diễn tả các quy tắc quản lý.

4.1 Diễn tả một quá trình xử lý

Về thực chất là mô tả một giải thuật, để mô tả một giải thuật người ta thường dùng 2 công cụ sau:

- Sơ đồ khối.

- Ngôn ngữ giải thuật.

Công cụ sơ đồ khối đã được giới thiệu rất kỹ trong giáo trình “ Tin học đại cương”, trong khuôn khổ giáo trình này chúng ta đề cập nhiều đến công cụ còn lại.

Ngôn ngữ giải thuật là ngôn ngữ tự nhiên được cấu trúc hoá bao gồm các phần sau:

- Các câu đơn giản, các danh từ, các dòng dữ kiện.

- Các cấu trúc đơn diều khiển.

Tuần tự: Là trật tự trước sau trong quá trình thực hiện, câu đứng trước thực hiện trước, đứng sau thực hiện sau.

          + Chọn: Nếu …. thì … không thì.

          + Lặp: Với mỗi … lặp.

Ví dụ: Để diễn tả quy trình lập hoá đơn ta diễn tả như sau:

                                                Hình 2.11. Quy trình lập hoá đơn.

          Với mỗi đơn hàng lặp:

          - Viết tên khách hàng và địa chỉ vào hoá đơn.

          - Nếu khách hàng thuộc loại ưu tiên thì:

                   + Tra cứu suất miễn giảm từ tệp “miễn giảm”, sử dụng hệ số ưu tiên.

                   + Nếu không, ghi suất miễn giảm là 0%.

          Với mỗi mặt hàng trên đơn hàng lặp:

                   + Chép mã mặt hàng và số luợng yêu càu vào hoá đơn.

                   + Tra cứu đơn giá từ tệp đơn giá, dùng mã mặt hàng.

                   + Lập tổng bộ phận theo công thức định sẵn.

          - Lấy tổng cộng các bộ phận.

          - Lập tiền phải trả: Tổng cộng – tiền đặt cọc.

          4.2. Diễn tả các quy tắc quản lý

          Trong các quy trình sử lý thông thường có các quy tắc định sẵn, các quy tắc này là:

          Sự lựa chọn giữa nhiều tình huống và phụ thuộc vào nhiều biến. Do vậy đòi hỏi chúng ta phải tổng hợp. Hai công cụ sau đây sẽ hỗ trợ công việc tổng hợp này.

          a. Bảng quyết định

          Bảng quyết định là bảng hai chiều, trong đó một chiều được tách ra làm hai phần, một phần cho các điều kiện vào và phần kia cho các hành động hay biến ra. Chiều thứ hai là các trường hợp có thể xảy ra tuỳ thuộc vào giá trị của các điều kiện, ứng với mỗi trường hợp là một cột hay một dòng. Các hành động được lựa chọn sẽ được đánh dấu x, hoặc nếu cái ra là biến thì cho các giá trị tương ứng của biến đó.

          Bảng quyết định có dạng như sau:

Hình 2.12. Bảng quyết định

          Ví dụ: Nhân dịp 27/07, một công ty thương mại có chương trình khuyến mại như sau:

          - Giảm giá 10% cho thương binh.

          - Giảm giá 5% cho con liệt sỹ.

          - Không được hưởng tiêu chuẩn đúp.

          Quy trình giảm giá của khách hàng được diễn tả bằng bảng quyết định như sau:

Hình 2.13. Bảng quyết định quy trình giảm giá của khách hàng

          b. Cây quyết định

          Cây quyết định chia các trường hợp nhờ cấu trúc cây. Chẳng hạn “quy trình giảm giá cho khách hàng” trên được diễn tả bằng cây quyết định như hình 2.14

0%

Hình 2.14. Cây quyết định quy trình giảm giá cho khách hàng

5. Từ điển dữ liệu

          Mục đích của việc thành lập từ điển dữ liệu là nhằm mô tả tốt hơn các thành phần xuất hiện trong BLD như: Luồng dữ liệu, kho dữ liệu, …. Từ điển dữ liệu là một tư liệu tập trung về mọi tên gọi của tất cả các đối tượng xuất hiện trong hệ thống ở các giai đoạn phân tích, thiết kế, cài đặt và bảo trì.

          Chẳng hạn:

          - Ở mức logic chúng là:

                   + Các luồng dữ liệu, các giao dịch, các sự kiện.

                   + Các chức năng vật lý.

                   + Các thực thể, các thuộc tính.

                   + …

          - Ở mức vật lý chúng là:

                   + Các tệp.

                   + Các chương trình con, thủ tục, môđun,….

          Từ điển dữ liệu là cần thiết cho quá trình phát triển và khai thác các hệ thống lớn có nhiều người tham gia. Vai trò của nó như sau:

          - Trong phân tích và thiết kế: Quản lý tập trung và chính xác mọi thuật ngữ và các mã dùng trong hệ thống, tránh được trùng lặp, đồng nghĩa ….

          - Trong cài đặt: Các kỹ thuật viên hiểu chính xác các thuật ngữ từ kết quả phân tích và thiết kế.

          - Trong bảo trì: khi cần thay đổi thì phát hiện được các mối liên quan, các ảnh hưởng có thể nảy sinh.

5.1 Các hình thức tạo từ điển dữ liệu

          Từ điển dữ liệu có thể được tạo và duy trì theo 2 cách sau:

          - Bằng tay: Đó là một tập tài liệu (như từ điển thông thường) lúc đầu được thành lập bởi người thiết kế, sau này được cập nhật và bảo trì bởi người quản trị hệ thống.

          - Bằng máy tính: Dùng một phần mềm, cho phép dễ thành lập, cập nhật. Trong trường hợp này cần có một ngôn ngữ đặc tả thích hợp, thuận tiện về mọi phương diện trong việc mô tả mọi cấu trúc dữ liệu.

          Cũng như từ điển thông thường, từ điển dữ liệu là mọi tập hợp các mục từ, mỗi mục từ ứng với một tên gọi kèm với lời giải thích tương ứng.

5.2 Thiết kế tư liệu

          Để thống nhất trong một hệ thống, các tư liệu như hoá đơn, đơn hàng, … (1) chúng ta nên đề xuất mẫu biểu cụ thể.

Ví dụ: Hoá đơn cho hệ thống bán hàng.

          Đối với các cấu trúc dữ liệu phức hợp ta dùng các cấu trúc tuần tự, chọn và lặp để tạo dựng. Sau đây là vài thông dụng thể hiện cấu trúc đó:

          - Dùng các từ khoá (tiếng Anh hoặc tiếng Việt): IS (Là), AND (Và), OR (Hoặc), cú pháp như sau:

          + Tuần tự: Dữ liệu A Là dữ liệu B.

                                         Và dữ liệu C.

                                         Và dữ liệu D.

          + Lặp : Dữ liệu A      Là lặp dữ liệu B.

          + Chọn : Dữ liệu A    Là dữ liệu B

                                          Hoặc dữ liệu C

                                           Hoặc dữ liệu D

          Ví dụ: + Địa chỉ là tên

                                         Và số nhà.

                                         Và đường phố.

                                         Và quận.

                                         Và thành phố.

                   + Tệp nhân viên Là LẶP bản ghi nhân viên.

                   + Giao dịch khách hàng Là gửi tiền vào.

                                                         HOẶC rút tiền ra.

                                                         HOẶC xem số dư tài khoản.

          - Dùng ký pháp lôgic EBNF (Extended Backus Naur Form):

                   : :             Có nghĩa là:  hợp thành bởi.

                   +              Có nghĩa là: và .

{ …}              -           : lặp.

[….]               -           : tuỳ chọn (không hay một lần).

<…>              -           : hoặc không loại trừ.

(……)            -           : hoặc có loại trừ.

*…*              -            : chú thích.

          Ví dụ:  Đơn hàng : : *các thông tin về khách hàng*

                                      Tên khách hàng +

                                      Địa chỉ khách hàng +

                                      Số hiệu đơn hàng +

                                                Tên mặt hàng +

                                                Mã hàng +

                                                Đơn giá +

                                                Số lượng +

                                      Tổng tiền

Giao dịch khách hàng : : (khách gửi tiền | khách rút tiền).

6. Mã hóa tên gọi

6.1 Khái niệm và định nghĩa

          Trong kho phát triển hệ thống ta thường đưa vào các tên, vì số lượng các tên rất lớn cho nên sẽ khá dài. Vì vậy ta phải viết tắt chúng hay còn gọi là mã hóa chúng.

          Vậy mã của một đối tượng chính là tên viết tắt được gán cho nó. Các đối tượng được đặt tên trong hệ thống có thể là:

          - Các ứng dụng tin học trong đơn vị.

          - Các môđun xử lý.

          - Các chương trình.

          - Các tệp.

          - Các biến.

          …

6.2. Chất lượng của mã hóa

          Công việc mã hóa phải đạt được một số yêu cầu cơ bản sau:

          - Không nhập nhằng.

          Điều này có nghĩa là giữa các tập các đối tượng và tập các mã hiệu phải tồn tại ánh xạ 1 – 1.

          - Thích ứng với phương thức sử dụng:

                    + Để xử  lý thủ công phải dễ hiểu, dễ giải mã.

                   +Để xử lý tự động mã phải được xây dựng chặt chẽ.

          - Có khả năng mở rộng và xen thêm:

                   + Mở rộng: Có thể bổ sung ở trên và ở dưới.

                   + Xen thêm: Bổ sung trong một thứ tự nhất định.

          Để thực hiện khả năng xen thêm, có thể thiết kế mã với bước nhảy theo hai phương thức sau:

                   + Nhảy cóc với bước có giá trị  nhất định.

                   + Nhảy có theo một kết quả thống kê.

          -  Phải ngắn gọn

          Mã ngắn gọn theo nghĩa càng gõ ít phím càng tốt, vì càng dài càng xử lý khó khăn. Tuy vậy cũng phải lưu ý rằng chiều dài của mã ảnh hưởng tới khả năng mở rộng của nó.

          - Có ý gợi ý (diễn nghĩa)

          Mã có tính diễn nghĩa có nghĩa là khi đọc mã con người có thể đoán ra đối tượng. Chẳng hạn hiệp hội hàng không quốc tế đã mã hóa các sân bay trên thế giới như sau:

                   + Sân bay Hà Nội                    có mã là      HAN

                   + Sân bay Băng Cốc            -            BKK

                   + Sân bay TP Hồ Chí Minh   -                    SGN

                   …

          Chú ý: Người ta chỉ cần dùng ba chữ cái để mã hóa tên các thành phố mà vẫn giàu tính diễn nghĩa.

          6.3. Các kiểu mã hóa khác nhau

          a. Mã hóa liên tiếp

          Trong phương pháp này người ta dùng các số liên tiếp để chỉ ra các đối tượng.

Ví dụ: Các khách hàng của một công ty nào đó có thể được mã hóa theo thứ tự thời gian: 001, 002, 003, …, 050, …

          - Ưu điểm:

                   + Không nhập nhằng.

                   + Đơn giản, thông dụng.

                   + Mở rộng phía sau được.

          - Nhược điểm:

                   + Không xen được.

                   + Không diễn nghĩa.

                   + Không phân nhóm.

          b. Mã hóa theo lát

Dùng từ lát cho từng loại đối tượng, trong mỗi lát lại dùng mã liên tiếp.

          Ví dụ: Để mã hoá cho các hàng ngũ kim, ta có thể tiến hành như sau:

          - Từ 1000 – 0999 dùng các loại ngũ kim bé trong đó:

                   + 0001 – 0099  : các loại vít.

                   + 0100 -  0199  : các loại êcu.

                   + ….

          Ưu điểm:

                   -  Không nhập nhằng nếu các lát tách rời.

                   - Đơn giản, dễ áp dụng.

                   - Mở rộng và xen thêm được.

          Nhược điểm:

                   - Không gợi ý.

          c. Mã hoá phân đoạn

Mã được phân thành nhiều đoạn, mỗi đoạn mang một ý nghĩa riêng.

          Ví dụ: Người ta áp dụng mã hoá khi làm đăng ký xe máy:

          - Ưu điểm:

                   +  Không nhập nhằng.

                   + Mở rộng xen thêm được.

                   + Phổ dụng.

                   + Cho phép thực hiện các kiểm tra gián tiếp.

          - Nhược điểm:

                   + Thường dài.

                   + Thao tác cồng kềnh vì mã có nhiều đoạn.

                   + vẫn có thể bị bão hoà.

4. Mã hoá phân cấp

Đây là một trường hợp riêng của mã hoá phân đoạn, mỗi đoạn trỏ tới một tập các đối tượng đó bao nhau từ trái qua phải.

          Ví dụ: Người ta áp dụng mã này khi đánh số chương mục cho sách vở, tài liệu, cụ thể như sau:

          5. Mã hoá diễn nghĩa

Gán một tên ngắn gọn, nhưng phản ánh nội dung của đối tượng.

          Ví dụ: # HD cho số liệu hoá đơn.

          - Ưu điểm : Rất thuận tiện cho xử lý thủ công.

          - Nhược điểm : Không phù hợp cho xử lý tự động.

          6. Cách chọn một mã hoá

          Trước khi thực hiện mã hoá các đối tượng, ta nên thực hiện quy trình sau:

- Nghiên cứu việc sử dụng mã hoá.

          - Nghiên cứu số lượng các đối tượng cần mã hoá, lường trước sự mở rộng.

          - Nghiên cứu sự phân bố thống kê của các đối tượng cần mã hoá.

          - Tìm hiểu xem đã có mã hoá nào được thực hiện cho các đối tượng đó chưa. Dùng thử để xem hiệu quả trước khi sử dụng chính thức.

Câu hỏi và bài tập

1.     Tại sao luồng dữ liệu vào/ra một kho dữ liệu thường không có tên?

2.     Trong biểu đồ luồng dữ liệu có khi nào không có tác nhân ngoài không? Tại sao?

3.     Khi thể hiện một biểu đồ luồng dữ liệu, chúng ta hay chạm phải những sai sót nào? Hãy giải thích ?

Hãy so sánh BPC và BLD.

CHƯƠNG 3

CÁC MÔ HÌNH DỮ LIỆU

          Mục đích của chương này là giới thiệu các phương pháp và công cụ để mô tả một tập hợp dữ liệu cần thiết cho hệ thống, nói một cách cụ thể hơn ta cần thoả mãn các câu hỏi: Dữ liệu gì cần lưu trữ? Mô tả như thế nào? Cấu trúc nội tại của dữ liệu ra sao?... đây chính là mức diễn tả lôgic của dữ liệu, là căn cứ cho việc thiết kế cơ sở dữ liệu của hệ thống ở các bước tiếp theo.

          Trước khi đề cập tới mô hình thực thể/liên kết vì tính đơn giản, dễ hiểu của nó chúng ta tìm hiểu đôi nét về khái niệm tệp.

1. Các tệp ( VẬT LÝ )

          Tệp là một bộ các bản ghi, với số lượng không cố định, được lưu trữ ở bộ nhớ ngoài, mỗi bản ghi phản ánh thông tin của một đối tượng nào đó.

          Đến lượt chúng, mỗi bản ghi lại được chia thành nhiều trường. Ta có thể xem trường là đơn vị thông tin cuối cùng, tức là thông tin nguyên thuỷ không thể phân chia nhỏ hơn nữa. Trong số các trường có thể chỉ ra một nhóm trường gọi là khoá, giá trị của mỗi nhóm cho phép phân biệt các khoá với nhau.

          1.1. Các thao tác trên tệp

          Với các tệp có các thao tác sau:

- Tạo lập tệp.

- Loại bỏ tệp.

- Sắp xếp tệp.

- Hoà nhập, phân rã, liên kết tệp.

          Với các bản ghi:

- Tra cứu bản ghi.

- Chèn.

- Loại bỏ.

- Cập nhật.

          1.2. Các đặc trưng của phương thức sử dụng

          - Phân loại: Ta dựa vào phương thức sử dụng tệp mà phân loại, với tiêu chí này các tệp có thể phân thành bốn nhóm:

          + Thường trú: Tệp thuộc loại này được lưu trữ thường xuyên lâu dài.

          + Tệp vận động chứa các thông tin dùng để tạo lập hay cập nhật một tệp thường trú.

          + Tệp liên kết các chương trình dùng để trao chuyển thông tin cho nhau.

          + Tệp làm việc chứa các thông tin sinh ra trong quá trình làm việc.

          + Tệp bảng chứa các bảng giá trị.

          - Tần xuất: Để đo mức độ hoạt động của một tệp người ta có khái niệm về tần xuất hoạt động, nghĩa là số lần thao tác trên tệp trong một thời gian nào đó.

Các hoạt động bao gồm:

          + Tra cứu.

          + Bổ xung.

          + Loại bỏ.

          + Cập nhật.

          Công thức tính tần suất như sau:

Tần suất hoạt động =

          Như vậy ta có tất cả bốn loại tần suất: Tần suất tra cứu, tần suất bổ xung, tần suất loại bỏ, tần suất cập nhật tương ứng với nó ở công thức trên.

          Bên cạnh đó người ta còn định nghĩa thêm hai tần suất nữa:

          - Tần suất tăng tiến để phản ánh mức độ tăng trưởng của các tệp:

                   Tần suất tăng tiến = tần suất bổ sung – tần suất loại bỏ.

          - Tần suất quay vòng:

                   Tần suất quay vòng = tần suất bổ sung + tần suất loại bỏ.

          Ghi chú:

          - Tần suất được viết dưới dạng %.

          - Tần suất có thể lớn hơn 100%.

          - Tần suất có thể âm.

          Ví dụ: Có một tệp bao gồm 12000 bản ghi về các khách hàng của một ngân hàng thương mại, hàng ngày nó được cập nhật với số lượng trung bình là 900 lần, ta có một tính toán sau:

                   Tần suất cập nhật hàng ngày =              = 7.5%

                   Tần suất cập nhật hàng tháng =              = 225%

          - Số phiên bản

          Để nâng cao tính an toàn về mặt dữ liệu, một biện pháp đơn giản và hiệu quả là sao, lưu trữ dữ liệu thành nhiều bản. Biện pháp này thực hiện để chống lại các tình huống sau:

                   + Hoả hoạn.

                   + Đánh rơi thiết bị lưu trữ

                   + Ẩm mốc bụi bặm.

                   + ….

          - Tên tệp: Trong một hệ thống lớn, số tệp rất nhiều, hơn nữa lại có nhiều người dùng, cho nên đặt tên tệp như nào cũng là vấn đề đáng để quan tâm. Để tránh được sự nhập nhằng người ta áp dụng phương pháp mã hoá để đặt tên cho tệp.

          - Thông thường để tiếp cận dữ liệu một cách thuận lợi, trước hết người ta lập biểu đồ cấu trúc dữ liệu (BCD) bằng mô hình thực thể/liên kết (TT/LK ), tiếp đó sẽ hoàn thiện việc phân tích dữ liệu bằng mô hình quan hệ.

2. Mô hình thực thể liên kết

          Mô hình TT/LK (E/A, Entity/Association Model) là mô hình dữ liệu do P.P Chen đề xuất năm 1976, sau đó trở nên thông dụng nhờ tính đơn giản và tiện lợi của nó.

          Ưu điểm nổi bật của mô hình này là ở tính trực quan, khi xem xét các thông tin người ta thường gom tụ chúng xung quanh các đối tượng. Chẳng hạn các thông tin về tên tuổi, chức vụ…được gom cụm với nhau xung quanh một người, còn các thông tin về tên các mặt hàng, đơn vị tính, giá thành…được gom tụ với nhau xung quanh một hoá đơn.

          Mục đích sử dụng các mô hình TTLK:

-         Mục đích cho ta một khuôn dạng giúp cho quá trình nhận thức và biểu diễn các dữ liệu sử dụng trong hệ thống thông tin đồng thời cho ta biết cấu trúc cụ thể của dữ liệu.

-         Sử dụng:

+ Trong phân tích về dữ liệu của hệ thống cũ.

+ Thiết kế dữ liệu hệ thống mới.

+ Làm tư liệu trao đổi.

Trước khi đề cập chi tiết tới mô hình này, chúng ta nhắc lại một lần nữa các yêu cầu của bước phân tích dữ liệu:

+ Không bỏ sót thông tin: Điều này có nghĩa là phải phát hiện để đưa vào lược đồ cấu trúc dữ liệu mọi thông tin cần cho hệ thống đang được xây dựng.

+ Không dư thừa thông tin: Nghĩa là các thông tin đưa vào lược đồ không được trùng lặp, nói một cách khác đi mỗi thông tin chỉ có một bản trong hệ thống. Sự dư thừa thông tin không những làm tốn bộ nhớ mà quan trọng hơn là dễ gây ra sự mâu thuẫn của thông tin lưu  trữ trong cơ sở dữ liệu.

Một mô hình thực thể liên kết được tạo thành từ ba yếu tố cơ bản:

          - Thực thể.

          - Thuộc tính.

          - Liên kết.

a. Thực thể và kiểu thực thể

 - Thực thể (Entity) là đối tượng mà ta cần quan tâm trong công tác quản lý, đối tượng ấy có thể là:

 - Rất cụ thể như:

                       + Nhân viên của một cơ quan cần được quản lý.

                       + Tờ hoá đơn của doanh nghiệp cần được quản lý.

                        + …

- Hoặc trừu tượng, chẳng hạn:

                        + Khoa tin học.

                        + Ngành toán ứng dụng.

                        + …

          Tiêu chuẩn xác định thực thể:

- Có ích cho quản lý.

- Phân biệt giữa các thực thể với nhau.

Ví dụ: Trong một nhà máy sản xuất đinh, rõ ràng là mỗi cái đinh có thể xem là một thực thể, tuy nhiên ở mức độ người quản lý thì nó không cần thiết để được xem là một thực thể vì người ta không thể quản lý với từng cái dinh mặc dù nó rất cụ thể, trong trường hợp này đối tượng mà ta cần quản lý lại là các loại đinh:

                        + Đinh hai phân.

                        + Đinh ba phân.

                        + …

Mặc dầu chúng là trừu tượng.

          - Kiểu thực thể: Là tập hợp tất cả các đối tượng cùng loại hình thành một kiểu thực thể, nói khác đi, kiểu thực thể chính là những thực thể cùng được mô tả bằng những đặc trưng giống nhau(1).

          Ví dụ: Một nhân viên là một thực thể, tập hợp các nhân viên của cùng một hệ thống tạo thành một kiểu thực thể.

          Biểu diễn một kiểu thực thể: Ta dùng một hình chữ nhật trong ghi tên của kiểu thực thể:

                   Chẳng hạn:

          b. Thuộc tính

          Thuộc tính được hiểu là dữ liệu dùng để mô tả một đặc trưng của thực thể.

          Ví dụ:

                             Tuổi của Tạ Tấn là 65.

                             Tổng tiền của một hoá đơn là 450.000 đồng.

                             ….

          Giá trị của một thực thể thường kèm theo một số thuộc tính như: Tên, tuổi, giới tính, …

          Tên thuộc tính là tên chung cho một giá trị cùng kiểu, tên gọi chung đó được gọi  là kiểu thuộc tính.

Ví dụ: Tuổi, tổng tiền, giới tính,….

c. Liên kết

Một liên kết là sự kết nối giữa hai hay nhiều thực thể phản ánh về thực tế về quản lý.

Ví dụ: Nhân viên Tạ Hoà thuộc phòng tổ chức.

Hoá đơn của công ty Hoà Phát…

Cách biểu diễn liên kết: Để biểu diễn sự liên kết của các thực thể người ta dùng một “Kênh”

Ví dụ:

Kiểu liên kết: Là tập hợp các liên kết cùng loại.

Phân loại liên kết:

- Liên kết 1-1: Hai thực thể A và B có mối liên kết 1-1 nếu có một thực thể kiểu A tương ứng với một thực thể kiểu B và ngược lại.

Ví dụ:

          Chi chú: Trong lược đồ cấu trúc dữ liệu hai thực thể trong mối liên kết 1-1 sẽ được đồng nhất.

          - Liên kết 1-n: Hai thực thể A và B có mối liên kết một nhiều nếu một thực thể kiểu A tương ứng với nhiều thực thể kiểu B và một thực thể của B chỉ tương ứng với một thực thể kiểu A.

Ví dụ:

          - Liên kết n-n: Hai thực thể A và B có mối liên kết n-n nếu một thực thể kiểu A tương ứng với nhiều thực thể kiểu B và ngược lại.

Ví dụ:

Ghi chú:

- Các liên kết  n-n sẽ được thực thể hoá chẳng hạn ta có liên kết n-n:

Lúc ấy ta thể hiện lại mối liên kết nhiều nhiều này như sau:

          Nói một cách tổng quát, trong lược đồ cấu trúc dữ liệu người ta chỉ thể hiện mối liên kết 1-n giữa các thực thể.

          - Liên kết còn thể hiện như sự kết nối giữa nhiều thực thể. Ví dụ thời khoá biểu là một mối liên kết của nhiều thực thể với nhau:

          d. Biểu diễn đồ hoạ của một thực thể

          Như đã biết, để mô tả thực thể người ta dùng hình chữ nhật trong đó có ghi tên thực thể đó, tuy vậy cách mô tả này chỉ là bước đầu, để mô tả chính xác một thực thể, thực thể đó cần mô tả kèm theo các thuộc tính của nó.

Ở đây danh sách thực thể được hiểu là tập hợp các thuộc tính, chẳng hạn:

Ghi chú:

          - Trong tập các thuộc tính có một thuộc tính đặc biệt gọi là khoá nhận diện.

          - Những thuộc tính không phải là khoá được gọi là thuộc tính mô tả. Trong số này các thuộc tính kết nối (hay còn gọi là khoá ngoài của kiểu thực thể)

Ví dụ:

Sự xuất hiện của một thuộc tính kết nối là biểu hiện của một liên kết 1-n.

Nếu giữa A và B có mối liên kết 1-n thì chắc chắn trong danh sách thuộc tính sẽ có một thuộc tính khoá.

Ví dụ: Xét một phạm vi nhỏ trong công tác quản lý ở nhà máy X, một cách cụ thể hơn là phạm vi theo dõi lao động của từng công nhân và phân xưởng (một hệ thống con trong hệ thống lớn). Để tiện cho việc biểu diễn, chúng ta sẽ mã hoá (viết tắt) các thuộc tính của các thực thể:

+ Đối với công nhân:

          Số hiệu công nhân  viết tắt SH_CN

          Họ tên công nhân   -------- TênCN

          Địa chỉ công nhân --------- DC_CN

          Bậc thợ                  ---------- BậcCN

          Chỉ số lương công nhân ------ Chỉ số

+ Đối với phân xưởng:

          Số hiệu phân xưởng   -------- SH_PX

          Tên phân xưởng         -------- Tên_PX

          Trưởng phân xưởng    ------- TrưởngPX

          Số lượng công nhân trong phân xưởng----- Số lượng

+ Đối với máy:

          Số hiệu máy ------ SH_máy

          Chủng loại máy ------ Chủng loại

+ Đối với hoạt động sản xuất của phân xưởng ----- SX_PX:

Thời gian công nhân làm việc trong tháng trên một máy --- Thời gian, Tháng.

Tổng số giờ các máy đã chạy ( trong một tháng) trên một máy--- Số giờ.

Dựa vào các thực thể, các liên kết, các thuộc tính ta thu được mô hình TT/LK sau:

3. Mô hình quan hệ

Do Codd đề  xuất vào  những năm  70, dựa vào mô hình quan hệ trong mấy chục năm qua, các hệ cơ sở dữ liệu quan hệ đã thu được những thành tựu hết sức to lớn cả về phương diện lý thuyết và thực hành. Mô hình dữ liệu quan hệ đã trở thành một trong những nền tảng có cơ sở lý thuyết được xây dựng vững chắc nhất. Do đó, cần nắm vững cơ sở lý thuyết của mô hình quan hệ để ứng dụng vào việc thiết kế các hệ cơ sở dữ liệu quan hệ trong thực tế.

3.1. Định nghĩa quan hệ

Gọi U= {A1, A2,….,An} là tập hữu hạn các thuộc tính, mỗi thuộc tính Ai(i=1,…,n) có miền trị tương ứng là dom(Ai).

Quan hệ trên thuộc tính U là tập con của tích đề các:

                   r Í dom (A1) x dom (A2) x … x dom (An).

Ghi chú:

- Đương nhiên quan hệ r có thể bị thay đổi theo thời gian do việc thực hiện các phép toán cập nhật trên các bộ của quan hệ (bổ xung, loại bỏ, sửa đổi,…), nói một cách khác, điều này có nghĩa là một quan hệ r còn là một hàm của thời gian.

- Để chỉ một quan hệ r trên tập thuộc tính{A1, A2,….,An} ta dùng ký hiệu r(U) hay r(A1,A2,....,An).

- Để mô tả quan hệ r gồm p bộ phận trên lược đồ có n thuộc tính, người ta dùng một bảng gồm n cột và p+1 hàng, hàng thứ nhất là tên các thuộc tính, các hàng cong lại mỗi hàng là một bộ của quan hệ.

 Ví dụ: Để phục vụ việc chấm công trong một đơn vị sản xuất người ta xét quan hệ chấm công sau:

Chấm_công

Lúc đó một bộ <c,m,g,p,x> có ngữ nghĩa như sau:

Công nhân có mã c, làm việc trên máy m, với số giờ g, tại phân xưởng P do ông x là quản đốc phân xưởng.

Lưu ý rằng nếu chỉ quan tâm đến tên quan hệ và các thuộc tính người ta thu được lược đồ quan hệ, chẳng hạn:

Chấm _công(Mã CN, Tên CN, Mã máy, Số giờ, SHPX, Trưởng PX,) là một lược đồ quan hệ.

3.2 Phụ thuộc hàm

Trước khi trình bày khái niệm phụ thuộc hàm, chúng ta có một số quy ước:

- Các chữ cái hoa A,B,C.. dùng để chỉ các thuộc tính ; A ÈB sẽ viết là AB hoặc A, B.

- Các chữ cái thường (có thể có chỉ số) a,b,a1,… để chỉ giá trị các thuộc tính.

- Các bộ được đặt trong cặp ngoặc nhọn, chẳng hạn <a,b,c>.

          Định nghĩa các phụ thuộc hàm:

          Xét một quan hệ r định nghĩa trên lược đồ quan hệ U={ A1, A2,… An}, X, Y là 2 tập con của các thuộc tính của U.

          Ta nói: X xác định hàm đối tượng Y trong r, ký hiệu là X ® Y, nếu và nếu "t,t’Î r sao cho t[ X] = t’[X] Þ t [Y] = t’[Y] (hay người ta còn viết t.X = t’X  Þ t.Y = t’.Y.).

          Ghi chú:

          Ta còn có cách gọi tương đương: Y phụ thuộc hàm vào X trong r, hay r thoả thuộc hàm X ® Y, hay X ® Y là phụ thuộc hàm trong r.

          Ví dụ: Xét quan hệ Chấm_công ta thấy ngay:

                             Số hiệu PX  ® Trưởng PX

                             Mã máy        ® Số hiệu PX

                             Mã máy        ® Trưởng PX

          Định nghĩa khoá:

          Cho r là một quan hệ định nghĩa trên lược đồ R(U). Với U={ A1, A2,… An}; lúc ấy K Ì U được gọi là một khoá của quan hệ r(U) nếu: "t,t’Î r sao cho t [K] = t’[K] Þ t º t’. (t [K] là phép chiếu của t lên K).

          Nói một cách đơn giản là: K là khoá của r(U ) nếu và chỉ nếu không có hai bộ nào của r mà giá trị của chúng trên K là giống nhau.

          Ví dụ:

          Ta có K1 = U, K2 = ABC, K3= AB … là khoá của r:

                             r        ( A     B     C     D)

          Nhưng X = BC không phải là khoá cua r vì t2 ( X ) = t4 ( X ) nhưng t2 ¹  t4.

          Từ định nghĩa của khoá, ta thấy một quan hệ có ít nhất là một khoá và đó chính là U.

Khoá tối thiểu:

          Cho r là quan hệ định nghĩa trên lược đồ quan hệ R(U) với U = { A1, A2,…, An}; Lúc đó K Ì U được gọi là khoá tối thiểu của quan hệ  r(U) nếu và chỉ nếu:

          1. K là một khoá của r(U).

          2. Không có tập con tập con thực sự nào của K là khoá của r(U). Nghĩa là nếu bỏ đi bất kỳ thuộc tính nào của K thì nó không còn là một khoá của r.

          Ví dụ: Trong ví dụ đã xét ở trên, dễ nhận thấy rằng:

          K2 = ABC không phải là khoá tối thiểu của r vì K3 = AB Ì K2 cũng là một khoá của r.

          K3= AB là khoá tối thiểu của r vì K3\A và K3\B không là 1 khoá của r.

Từ định nghĩa của khoá tối thiểu, ta thấy một quan hệ có ít nhất là 1 khoá tối thiểu.

Phụ thuộc hàm sơ đẳng, phụ thuộc hàm trực tiếp:

Xét một lược đồ quan hệ R(ABC):

- Phụ thuộc hàm AàB gọi là sơ đẳng nếu không có tập thực sự A’Ì A để A’àB.

Ví dụ: Số hiệu PXàTrưởng PX là phụ thuộc hàm sơ đẳng. Trong khi đó: Mã CN Mã máyàSố hiệu PX không phải là sơ đẳng.

- Phụ thuộc hàm AàB gọi là trực tiếp nếu không có C sao cho AàC và CàB.

Ví dụ: PXà Trưởng PX là phụ thuộc hàm trực tiếp.

Trong khi đó: Mã máy àTrưởng PX không phải là trực tiếp.

Các tính chất của phụ thuộc hàm:

Từ định nghĩa của phụ thuộc hàm, người ta rút ra được một số tính chất sau, thường được gọi là các tiêu đề của Armstrong:

          Gọi R(U) là lược đồ quan hệ với U={A1, A2...,An} là tập các thuộc tính, giả sử X,Y,ZÍ U, hệ tiêu đề Armstrong bao gồm:

                   A1. Tính phản xạ         Nếu YÍ X thì XàY.

                   A2. Tính tăng trưởng   Nếu ZÍ U và XàY thì ZXàZY.

                   A3. Tính bắc cầu          Nếu XàY và YàZ thì XàZ.

Ví dụ: Cho ABàC, CàA, chứng minh BCàABC.

                   Chứng minh:

                                      1. CàA                (Giả thiết)

                                      2. BCàAB          ( Luật tăng trưởng của 1, thêm B)

                             '        3. ABàC             (Giả thiết)

                                      4. ABàABC        (Tăng trưởng 3, thêm AB)

                                      5.BCàABC                  (Bắc cầu giữa 2 và 4).

Bổ đề 1:

          Hệ tiên đề Armstrong là đầy đủ, có nghĩa là nếu F là tập phụ thuộc hàm đúng trên quan hệ r và f: XàY là 1 phụ thuộc hàm được suy dẫn từ F nhờ hệ tiên đề Armstrong thì f đúng trên r.

Bổ đề 2:

          A4. Luật hợp:                  Nếu XàY và XàZ thì XàYZ.

          A5. Luật tựa bắc cầu:      Nếu XàY và WYàZ thì XWàZ.

          A6. Luật tách:                  Nếu XàY và ZÍY thì XàZ.

Bao đóng của tập thuộc tính:

Cho F là 1 tập các phụ thuộc hàm trên tập thuộc tính U và XÍU; X+ là bao đóng của X (đối với F) được định nghĩa như sau:

                             X+ ={A/XàAÎF+}

(tập hợp tất cả các thuộc tính của U sao cho phụ thuộc hàm XàA có thể suy dẫn từ F nhờ hệ tiên đề Armstrong).

Tính bao đóng của 1 tập thuộc tính:

Bài toán: Cho U là 1 tập các thuộc tính và F là tập phụ thuộc hàm trên U, XÍU. Hãy tính X1+.

                Thuật toán: Vào            U,F,X

                              Ra    X1+

          Phương pháp: Tính liên tiếp các X0,X1,X2,..., theo quy tắc:

          Bước 1: Tam =f

          Bước 2: While Tam <> X DO

                       Tam = X

          '             For"f = WàZÎF do

                        If WÍ X then X=XÈZ

          Bước 3:  Return(X)

          Ví dụ:

          Cho F={AàD, ABàE, BIàE, CDàI, EàC} và X=AE thì X1+=ACDEI.

          Bổ đề:

          XàY có thể suy dẫn từ F nhờ hệ tiên đề Armstrong khi và chỉ khi YÍX1+

          Dùng bao đóng của tập thuộc tính để xác định khoá của một lược đồ quan hệ.

          Định lý: Cho U là 1tập các thuộc tính và F là tập phụ thuộc hàm trên U, XÍU.

          X là siêu khoá của U dưới FÛX1+=U.

          Ví dụ: Cho U=ABCDEH và F={C®E, AH®B,B®D, A®D}. Chứng minh AHC là khoá của U.

          (AHC)F+=AHCDBE = U nên AHC là siêu khoá của U.

          (A)F+=AD¹U, (H)+F=H¹U, (C)F+=C¹U, (AH)F+=AHBD¹U,

          (AC)+F=ACDE¹U, (HC)F+=HC¹U.

Vậy AHC là khoá của U.

Xác định khoá của một lược đồ quan hệ bằng đồ thị của của tập phụ thuộc hàm:

          + Đồ thị của tập phụ thuộc hàm

          Ta có thể biểu diễn 1 phụ thuộc hàm bằng một đồ thị như sau:

- Phụ thuộc hàm A®B:

- Phụ thuộc hàm AB®C:

- Phụ thuộc hàm AB®C:

- Phụ thuộc hàm A®BC:

           Đồ thị của một tập phụ thuộc hàm: Cho một phụ thuộc hàm F, ta có thể biểu diễn thành một đồ thị với quy tắc: Mỗi thuộc tính chỉ một đỉnh trên đồ thị.

  Ví dụ: Cho tập phụ thuộc hàm F = {A ® B, AB ® C, B ® D, CD ® E} ta biểu diễn thành một đồ thị sau:

           Trong đồ thị ta định nghĩa:

           Đỉnh gốc: Là đỉnh chỉ có điểm đi của mũi tên.

Ví dụ: Đỉnh A của đồ thị trên.

           Đỉnh ngọn: Là đỉnh chỉ có điểm đến của mũi tên.

Ví dụ: Đỉnh E của đồ thị trên.

           Đỉnh trung gian: Là đỉnh vừa có điểm đến, vừa có điểm đi của mũi tên.

Ví dụ: Đỉnh B,C, D của đồ thị trên.

+ Dùng đồ thị của một tập phụ thuộc hàm để xác định khoá của lược đồ quan hệ.

Cho lược đồ quan hệ r(U) và tập phụ thuộc hàm F trên U.

Thuật giải dùng đồ thị để tìm khoá lược đồ quan hệ:

+ Các đỉnh gốc của đồ thị thuộc tính khoá.

+ Các đỉnh nhọn của đồ thị không  là thuộc tính khoá.

+ K là tập các đỉnh gốc.

+ Nếu K1+ = U thì K là khoá.

+ Ngược lại, ta thêm lần lượt vào K một số thuộc tính là đỉnh trung gian cho đến khi K1+ = U.

Trong đồ thị của ví dụ trên, A là khoá của U.

Phủ của tập phụ thuộc hàm:

Cho hai tập phụ thuộc hàm F và G trên tập thuộc tính U.

Định nghĩa 1

- Ta nói F suy ra G, ký hiệu là F½=G nếu và chỉ nếu G+ Í F+.

- Ta nói F và G tương đương, ký hiệu là F @ G, nếu và chỉ nếu F½=G và G½=F. Khi đó ta nói G là một phủ của F và ngược lại.

Định nghĩa 2

Tập phụ thuộc hàm F gọi là tối thiểu nếu:

- "f Î FÞ f = X ® A (Vế phải chỉ có một thuộc tính )

- Không tồn tại f= X  ® A Î F và Z Ì X sao cho F+= (F\{F}È {Z®A})+

- Không tồn tại f= X  ® A Î F sao cho F+= (F\{f}+

Định nghĩa 3:Phủ tối thiếu

Tập phụ thuộc hàm F, tập phụ thuộc hàm G gọi là phủ tối thiểu của F Û G là phủ của F và G tối thiểu.

Thuật giải tìm phủ của tập phụ thuộc hàm

          Vào: Tập phụ thuộc hàm F trên U.

          Ra:    G là phủ tối thiểu của F.

Cho: G=Æ.

Bước 1:Tách tất cả các phụ thuộc hàm của f thành phụ thuộc hàm mà vế phải chỉ có một thuộc tính: For "f Î F® do G = G È {X ® A, A ÎY}.

Bước 2: Loại bỏ những phụ thuộc hàm không đầy đủ:

WhilelZÌX,Z ¹X,G@G\ {f} È {Z® A} do G=G\{f} È {Z® A}

Bước 3: Loại bỏ những phụ thuộc hàm dư thừa

          For "f Î G do

          If G\{f} @G then G=G\{f}

Bước 4: Return (G)

Ta có diễn giải thuật giải trên như sau:

Bước 1: Tất cả các phụ thuộc hàm của F thành phụ thuộc hàm mà vế phải chỉ có một thuộc tính.

AB ® CD được tách thành AB ® C và AB ® C (luật tách)

Bước 2: Loại bỏ những phụ thuộc hàm không đầy đủ.

Khi loại bỏ, ta phân biệt 2 loại phụ thuộc hàm không đầy đủ sau:

Loại 1: Phụ thuộc hàm có vế phải là tập con của vế trái. Loại AB ® B

Loại 2: Hai phụ thuộc hàm có vế phải giống nhau, nếu vế phải của phụ thuộc hàm này chứa vế trái của phụ thuộc hàm kia thì ta loại ra khỏi F.

Có ABC ® D và BC ® D thì ta loại ABC ® D ra khỏi F.

Bước 3: Loại những phụ thuộc hàm dư thừa

Ví dụ: Cho tập phụ thuộc hàm:

F= {AB ® C, C ® A, BC ® D, ACD ® B, D ® EG, BE ® C, CG ® BD, CE ® AG}

Thực hiện thuật toán ta có:

Sau bước 1: G={AB ® C, C ® A, BC ® D, ACD ® B, D ® E, D ® G, BE ® C, CG ® B, CG ® D, CE ® A, CE ® G}

Sau bước 2: G={AB ® C, C ® A, BC ® D, CD ® B, D ® E, D ® G, BE ® C, CG ® B, CG ® D, CE ® G}

Sau bước 3: G={AB ® C, C ® A, BC ® D, CD ® E, D ® G, BE ® C, CG ® B, CE ® G}

Sau bước 4: G là phủ tối thiểu của F.

3.3. Các dạng chuẩn của quan hệ

Để ý rằng nếu trong một quan hệ nào tồn tại các phụ thuộc hàm không đẳng hoặc không trực tiếp thì dẫn đến việc dư thừa thông tin, cho nên khi thiết kế một hệ thống nào đó thì ta cố gắng loại trừ các phụ thuộc hàm không sơ đẳng, không trực tiếp giữa khoá và những thuộc tính không khoá. Bởi vì những yếu tố đó sẽ gây ra các dị thường trong cơ sở dữ liệu, khi các thao tác sau đây được thực hiện:

- Cập nhật

- Loại bỏ

- Bổ sung.

Các dạng chuẩn:

Một quan hệ r gọi là ở dạng chuẩn 1 (1NF), nếu miền giá trị của mỗi thuộc tính đều là miền đơn.

Một quan hệ r gọi là ở dạng chuẩn 2 (2NF), nếu nó thoả mãn 2 điều kiện sau:

- Đã ở dạng chuẩn 1.

- Nếu mọi phụ thuộc hàm giữa khoá và các thuộc tính không khoá đều là sơ đẳng.

     Một quan hệ r gọi là ở dạng chuẩn 3 (3NF), nếu nó thoả mãn hai điều kiện sau:

- Đã ở dạng chuẩn 2.

- Mọi phụ thuộc hàm giữa khoá và các thuộc tính không khoá đều là trực tiếp.

Từ các định nghĩa trên suy ra rằng trong một lược đồ quan hệ ở dạng chuẩn

3 chỉ tồn tại các phụ thuộc hàm giữa khoá và các thuộc tính không khoá mà thôi, có ý nghĩa là ngoài chúng ta không còn bất kỳ phụ thuộc hàm nào khác nữa.

          Như vậy một cơ sở dữ liệu được xây dựng dựa trên tập lược đồ quan hệ ở dạng chuẩn 3 sẽ tránh được các dị thường đã đề cập trong giáo trình cơ sở dữ liệu. Tuy nhiên những nghiên cứu sâu hơn cho thấy rằng lược đồ quan hệ 3NF vẫn còn chứa đựng những thể loại khuyết tật, vì vậy người ta còn đề xuất nhiều dạng chuẩn khác. Nhưng xét về phương diện ứng dụng dữ liệu trong thực tế không đến nỗi quá phức tạp, cho nên với các lược đồ quan hệ 3NF cũng đã đủ tốt cho việc phát triển các hệ thông tin quản lý.

          Chuẩn hoá

          Thuật ngữ chuẩn hoá trong giáo trình này được hiểu là sự phân rã, nhưng không làm mất mát thông tin, một quan hệ r thành một tập các quan hệ 3NF.

          Có rất nhiều giải thuật chuẩn hoá, nhưng về nguyên tắc đều dựa vào hai hướng: Phân tích và tổng hợp. Trong nội dung giáo trình này chúng ta đề xuất một phương pháp mang tính thực tiễn, mà không đi sâu vào phương diện lý thuyết đó là:

          Phương pháp phân tích:

          Thực hiện chuẩn hoá trong ba bước: 1NF, 2NF, cuối cùmg là 3NF.

          - Đưa về dạng chuẩn 1, bằng cách tách các thuộc tính lặp

                   + Nhóm các thuộc tính đơn còn lại thành một quan hệ, chọn khoá cho quan hệ này.

                   + Nhóm các thuộc tính lặp vừa tách ra, cùng với khoá của quan hệ trên, tạo thành một quan hệ. Chọn khoá cho quan hệ này (có thể là các quan hệ), thường là khoá kép, trong đó khoá quan hệ trên là một thành phần.

          - Đưa về dạng chuẩn 2 bằng cách tách nhóm thuộc tính phụ thuộc hàm vào một bộ phận của khoá:

                   + Nhóm còn lại tạo thành một quan hệ với khoá cũ.

                   + Với mỗi nhóm tách ra, cùng các thuộc tính cùng phụ thuộc vào một hay một nhóm thuộc tính của khoá, tă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 tăng thêm này.

          - Đưa về dạng chuẩn 3: Tách các nhóm thuộc tính phụ thuộc vào các thuộc tính không phải là khoá:

                   + Nhóm còn lại tạo thành một quan hệ với khoá cũ.

                   + Mỗi nhóm tách ra, gồm các thuộc tính cùng phụ thuộc hàm vào những thuộc tính không 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ộng thêm này.

          Ví dụ: Xét quan hệ Chấm_công đã nói ở trên:

Bước thứ nhất 1NF

Sau bước thứ nhất ta thu được quan hệ (RNF):

Chấm_công

Phân_xưởng

Sau bước thứ hai khi thu được 3 quan hệ 3NF:

Làm việc                                                     Vị trí

Phân_xưởng

Bằng phương  pháp như đã áp dụng, từ một quan hệ ta thu được một tập quan hệ 3 NF.

          Ví dụ: Xuất phát từ một đơn hàng, ta gom thu được một số thuộc tính sau (đây chính là các thông tin cần quản lý):

          - Các thuộc tính đơn:

                   SH_ĐH, SH_NgCC, Tên_NgCC, Địa chỉ_NgCC, Ngày_ĐH, Tổng cộng

          - Các thuộc tính lặp:

                   Mã_MH, Mô tả_MH, Đơn vị tính, Đơn giá, Số lượng đặt, Thành tiền

          Các thuộc tính tính toán như Thành tiền, Tổng cộng bị loại bỏ danh sách.

          Các bước chuẩn hoá thực hiện lần lượt như trong bảng dưới đây, trong đó ta phân rã dần dần các quan hệ, khi đi từ cột này qua cột khác, từ trái qua phải. Mũi tên diễn tả rằng quan hệ cũ được chuyển y nguyên sang cột mới:

          Sau cùng ta thu được 4 quan hệ (đều ở dạng 3NF), hãy đặt tên cho nhóm quan hệ này như sau:

                   Đơn hàng (SH_ĐH, SH_NgCC, Ngày_ĐH)

                   NgCC(SH_NgCC, Tên_NgCC, Địa chỉ_NgCC)

                   Dòng đơn hàng (SH đơn, SH mặt hàng, số lượng đặt)

                   Mã hàng (Mã_MH, Mô tả_MH,Đơn vị tính, Đơn giá).

A1

A2

An

a11

a21

an1

a12

a22

an2

a1p

a2p

anp

Mã CN

Mã máy

Số giờ

Số hiệu PX

Trưởng PX

C­1

m1

20

P1

Giáp

C­1

m2

30

P1

Giáp

C2

m1

10

P1

Giáp

C2

m3

15

P2

Mai

C3

m4

12

P3

Bình

C4

m2

22

P1

Giáp

t1

=

a1

b1

c1

d1

t2

=

a1

b2

c2

d2

t3

=

a2

b1

c2

d2

t4

=

a2

b2

c2

d2

Mã CN

Mã máy

Số giờ

Số hiệu PX

Trưởng PX

C­1

m1

20

P1

Giáp

C­1

m2

30

P1

Giáp

C2

m1

10

P1

Giáp

C2

m3

15

P2

Mai

C3

m4

12

P3

Bình

C4

m2

22

P1

Giáp

Mã CN

Mã máy

Số giờ

Số hiệu PX

C­1

m1

20

P1

C­1

m2

30

P1

C2

m1

10

P1

C2

m3

15

P2

C3

m4

12

P3

C4

m2

22

P1

Số hiệu PX

Trưởng PX

P1

Giáp

P2

Mai

P3

Bình

Mã CN

Mã máy

Số giờ

­1

m1

20

C­1

m2

30

C2

m1

10

C2

m3

15

C3

m4

12

C4

m2

22

Số hiệu PX

Trưởng PX

P1

Giáp

P2

Mai

P3

Bình

Mã máy

Số hiệu PX

m1

P1

m2

P1

m3

P2

m4

P3

Danh sách thuộc tính

1NF

2NF

3NF

SH_ĐH

SH_NgCC

Tên_NgCC

Địa chỉ_NgCC

Ngày_ĐH

Mã_MH

Mô tả_MH

Đơn vị tính

số lượng đặt

Đơn giá

(Chú thích:

Thành tiền,

Tổng tiền,

 Đã bị loại)

SH_ĐH

SH_NgCC

Tên_NgCC

Địa chỉ_NgCC

Ngày_ĐH

SH_ĐH

Mã_MH

Mô tả_MH

Đơn vị tính

số lượng đặt

Đơn giá

SH đơn

SH mặt hàng

Số lượng dặt

Mã_MH

Mô tả_MH

Đơn vị tính

Đơn giá

SH_ĐH

SH_NgCC

Ngày_ĐH

SH_ĐH

Tên_NgCC

Địa chỉ_NgCC

CHƯƠNG 4

KHẢO SÁT SƠ BỘ VÀ XÁC LẬP DỰ ÁN

Tiến hành tìm hiểu sơ bộ về hệ thống cũ và:

- Đưa ra cho được các điểm yếu của hệ thống hiện tại. Trên cơ sở đó, nêu lên các phương pháp cải tiến cho hệ thống.

- Đánh giá hiện trạng.

- Xác định phạm vi, khả năng, mục tiêu của dự án.

1. Tìm hiểu, đánh giá hiện trạng của hệ thống hiện hành

- Điều tra, thu thập thông tin về hệ thống hiện hành.

- Biên tập, biểu diễn, phê phán, đề xuất ý kiến.

1.1. Phương pháp khảo sát

Khảo sát hệ thống ở cả bốn mức:

- Mức thao tác thừa hành: Tiếp cận các người thừa hành trực tiếp để xem họ làm việc.

- Mức điều phối quản lý.

- Mức quyết định lãnh đạo.

- Mức chuyên gia cố vấn.

Hình thức tiến hành:

- Quan sát và theo dõi:

    + Một cách chính thức: Cùng làm việc với họ.

    + Một cách không chính thức: Tìm hiểu cách làm việc qua các hồ sơ, sổ sách, v.v...

- Cố vấn: Bằng nhiều cách:

    + Đặt câu hỏi trực tiếp: Yes / No

    + Đặt câu hỏi chọn lựa: a, b, c, d …, đánh ü để thống kê.

    + Đặt câu hỏi gián tiếp có tính gợi mở cho câu trả lời

    + Bảng câu hỏi, phiếu điều tra.

1.2. Thu thập và phân loại

- Thông tin về hiện tại hay tương lai.

- Thông tin về trạng thái tĩnh, động hay biến đổi.

    + Tĩnh: Thông tin về tổ chức hồ sơ và sổ sách.

    + Động: Thông tin về sự tăng hay giảm lưu chuyển của các chứng từ, giấy tờ, v.v…

    + Biến đổi: Thông tin được biến đổi ra sao, sử dụng những công thức tính toán nào?

Ví dụ:    tuổi = ngày hiện tại - ngày sinh

              Phụ cấp dựa trên những tiêu chuẩn nào, v.v…

- Thông tin thuộc nội bộ hay môi trường của hệ thống, thông thường thì người ta tổ chức sắp xếp, tổ hợp những vấn đề thông tin trên lại như sau:

1.3. Phát hiện các yếu kém của hiện trạng và yêu cầu cho tương lai

a. Yếu kém

- Thiếu sót:

    + Thiếu người xử lý thông tin.

    + Bỏ sót công việc xử lý thông tin.

- Kém hiệu lực, quá tải:

    + Phương pháp xử lý không chặt chẽ.

    + Cơ cấu tổ chức không hợp lý.

    + Con đường lưu chuyển các thông tin không hợp lý.

Ví dụ: Giấy tờ, tài liệu trình bày kém, cấu trúc không hợp lý, v.v…

- Tổn phí cao, gây lãng phí.

b. Yêu cầu mới

Trong tương lai:

- Thỏa đáng các thông tin chưa được đáp ứng.

- Đáp ứng các nguyện vọng của nhân viên.

- Dự kiến kế hoạch phát triển.

2. Xác định khả năng, mục tiêu dự án của hệ thống mới

- Phạm vi của hệ thống mới giải quyết vấn đề gì?

- Nhân lực sử dụng.

Ví dụ: Đội ngũ nhân viên điều khiển hệ thống cần bao nhiêu?

- Tài chính (Chi phí bao nhiêu cho dự án.

Ví dụ: Phí viết chương trình, phí bảo trì, v.v…)

- Khắc phục các điểm yếu kém của hệ thống hiện tại.

- Thể hiện chiến lược lâu dài. Dự án phải có hướng mở.

Ví dụ: trong tương lai dự án có thể được phát triển thêm, giải quyết thêm những vấn đề gì?

3. Phác họa giải pháp và cân nhắc tính khả thi

Đưa ra giải pháp để thuyết phục người dùng (ở mức sơ bộ). Từ đó, định hướng cho việc phân tích và thiết kế hệ thống thông tin. Ta nên đưa ra nhiều giải

pháp:

- Giải pháp cho máy đơn.

- Giải pháp máy mạng.

- …

Với từng giải pháp phải mang tính khả thi:

- Khả thi về mặt nghiệp vụ: Phải đáp ứng được các yêu cầu của công việc.

- Khả thi về mặt kỹ thuật: Sử dụng phù hợp với hệ thống máy hiện có, tương lai, v.v…

- Khả thi về mặt kinh tế: Chi phí viết chương trình có thể chấp nhận được, chi phí bảo trì không quá cao, v.v…

4. Lập dự trù và kế hoạch triển khai dự án

4.1. Lập hồ sơ khảo sát

a. Lập dự trù về thiết bị

* Dự kiến:

- Khối lượng dữ liệu lưu trữ.

- Các dạng làm việc với máy tính (máy đơn, máy mạng), xử lý trực tuyến (Online), v.v…

- Số lượng người dùng tối thiểu và tối đa của hệ thống.

- Khối lượng thông tin cần thu thập.

- Khối lượng thông tin cần kết xuất, cần in ra giấy, v.v…

- Thiết bị ngoại vi đặc biệt như: Scanner, máy vẽ, máy cắt, v.v…

* Điều kiện mua và lắp đặt:

- Nên chọn nhà cung cấp nào, chi phí vận chuyển.

- Mua nguyên bộ, mua rời, v.v…

- Sơ đồ lắp đặt mức sơ bộ.

b. Công tác huấn luyện sử dụng chương trình

- Thời gian huấn luyện bao lâu.

- Chia làm bao nhiêu nhóm huấn luyện.

c. Công việc bảo trì

- Đội ngũ bảo trì.

- Chi phí bảo trì.

- Thời gian bảo trì.

4.2. Lập kế hoạch triển khai dự án

- Về mặt nhân sự: Có mặt tất cả các chuyên viên, người sử dụng (NSD), lãnh đạo cơ quan, phân tích viên hệ thống (có thể có cả các lập trình viên).

- Lập tiến độ triển khai dự án.

- Phân tích tài chính dự án.

- Lập mối quan hệ với các dự án khác.

Ví dụ: Lập dự trù và kế hoạch triển khai dự án 'Hệ thông tin cung ứng vật tư' tại một xí nghiệp X

1/ Khảo sát thực tế dược kết quả như sau

Tại nhà máy X, việc cung cấp vật tư sản xuất ở các phân xưởng được tiến hành như sau:

- Khi một phân xưởng có nhu cầu về vật tư sản xuất thì lập một bản dự trù gởi cho bộ phận mua hàng. Bộ phận mua hàng này có sử dụng một máy tính trong đó có một chương trình gọi là hệ đặt hàng trợ giúp cho việc mua hàng. Trong máy, có cơ sở dữ liệu các nhà cung cấp, bộ phận mua hàng sẽ chọn nhà cung cấp (NCC) thích hợp.

- Khi NCC đã được chọn thì tiến hành thương lượng. Sau khi thương lượng nhờ hệ đặt hàng soạn thảo một đơn đặt hàng, đơn này được gởi đến NCC. Thông tin trong đơn hàng được lưu ở bảng đơn hàng, mỗi đơn hàng có mang một số hiệu đơn.

- Mỗi dự trù vật tư của một phân xưởng có thể được đáp ứng bởi nhiều NCC. Tuy nhiên, mỗi mặt hàng trong bảng dự trù chỉ do một NCC đáp ứng.

- Mặt khác, mỗi đơn mua hàng có thể có nhiều mặt hàng do nhiều phân xưởng dự trù.

Lưu ý: Đơn mua hàng gởi cho NCC không có thông tin về dự trù (tên, để làm gì, v.v...). Vì vậy, đã lưu mối liên hệ giữa các bản dự trù với các đơn hàng khác đi trong một bảng gọi là DonHang_DuTru. Trong bảng có chứa: số hiệu đơn, số hiệu mặt hàng và số hiệu dự trù.

- Sau khi nhận được đơn đặt hàng, NCC sẽ chuyển hàng đến nhà máy kèm theo phiếu giao hàng. Tại xí nghiệp sẽ có một bộ phận nhận hàng tiếp nhận. Bộ phận này cũng có sử dụng một máy tính có sẵn hệ chương trình Phát hàng.

- Hàng nhận về sẽ được sắp tạm tại các kho, thông tin trong phiếu giao hàng cùng với địa điểm giao hàng sẽ được ghi vào bảng nhận hàng. Lưu ý: trong phiếu giao hàng từ NCC gởi đến, không có thông tin về phân xưởng đã dự trù mặt hàng đó. Mặt khác, mỗi đợt giao hàng có thể gồm nhiều mặt hàng được đặt mua từ nhiều đơn hàng khác nhau. Vì vậy, trên phiếu giao hàng ứng với một mặt hàng đều có chỉ rõ số hiệu đơn hàng đối với mặt hàng đó để tiện cho việc phát hàng cần biết địa chỉ của các phân xưởng nhận hàng. Vì vậy, cần tìm thông tin trong hệ đặt hàng, nhưng hai máy tính sử dụng không liên kết được với nhau do không tương thích.

- Để giải quyết vấn đề này, xí nhiệp X tổ chức một bộ phận đối chiếu. Hằng ngày, bộ phận mua hàng phải in ra danh sách đơn hàng gởi cho bộ phận đối chiếu.

- Tương tự như trên, hằng ngày, bộ phận nhận hàng cũng in ra một danh sách những chuyến hàng nhận về trong ngày và cũng gởi cho bộ phận đối chiếu.

- Bộ phận đối chiếu so khớp hai danh sách trên qua số hiệu đơn, từ đó, bộ phận đối chiếu lập một danh sách các địa chỉ các phân xưởng gởi cho bộ phận nhận hàng, bộ phận nhận hàng căn cứ theo đó phát hàng cho các phân xưởng kèm theo phiếu phát hàng.

- Việc đối chiếu của bộ phận thứ ba hiện nay đang được làm thủ công. Các quá trình như trên không những mất nhiều thời gian mà thỉnh thoảng còn xảy ra nhiều sai sót về hàng và tiền.

- Sau khi giao hàng, NCC gởi đến nhà máy một hóa đơn tính tiền. Hóa đơn được chuyển đến bộ phận đối chiếu với hàng về xem có khớp không. Hóa đơn nếu khớp sẽ được gởi cho bộ phận thanh toán với  một phiếu xác nhận chi, từ đó, bộ phận thanh toán gởi hoá đơn cho NCC. Nếu hóa đơn không khớp với đơn hàng thì cần có khiếu nại gởi đến NCC để chỉnh lại cho đúng.

ð Yêu cầu của xí nghiệp: hãy cải tiến lại quy trình trên cho hữu hiệu hơn.

2/ Phân tích

a. Phê phán

- Thiếu sót:

+ Thiếu kho vật tư để dự trữ những mặt hàng thông thường, không đắt để không phải tuân theo quy trình mua hàng nêu trên

- Kém hiệu lực:

    + Tìm địa chỉ khách hàng

    + Kiểm tra tính khớp hàng nhận về với hóa đơn

- Tổn phí cao:

    + Ở bộ phận đối chiếu cần nhiều nhân lực, tốn thời gian

b. Mục tiêu hệ thống mới:

 Đưa thêm chức năng quản lý kho dự trữ.

‚ Giải quyết vấn đề tìm địa chỉ khách hàng cho nhanh gọn hơn.

ƒ Giải quyết kiểm tra sự đúng đắn của đơn hàng, hàng về, hóa đơn.

„ Cố gắng vận dụng hai máy tính và hai hệ chương trình cũ đã có (theo đề nghị của giám đốc và công nhân viên).

c. Các giải pháp:

Trong đó:

Hệ đặt hàng có chức năng:

- Đặt hàng.

- Theo dõi việc thực hiện đơn hàng.

Hệ phát hàng có chức năng:

    - Quản lý kho dự trữ.

    - Tiếp nhận hàng.

    - Phát hàng cho các phân xưởng sản xuất.

d. Đánh giá tính khả thi

- Giải pháp 1: Không khả thi về mặt kỹ thuật vì hai máy không tương thích theo kết quả khảo sát.

- Giải pháp 2: Phải nhập hai bộ phận vào một, điều này ngược với hướng của giám đốc là: không tin hoàn toàn vào nhân viên nên hai bộ phận phải kiểm tra lẫn nhau. Vì thế giải pháp 2 không khả thi về mặt nghiệp vụ.

- Giải pháp 3: Nếu thông tin về cung ứng vật tư còn cung cấp cho những bộ phận khác (ví dụ: bộ phận tài vụ, ban giám đốc, v.v...) thì giải pháp 3 là thuận lợi. Tuy nhiên, giải pháp này khiến phải viết lại toàn bộ chương trình, chi phí sẽ tăng vọt nên không khả thi.

- Giải pháp 4: Không khả thi về mặt kỹ thuật như giải pháp 1.

- Giải pháp 5: Đây là giải pháp thỏa hiệp, phù hợp với ý kiến của ban giám đốc:

    + Tăng tốc độ xử lý và độ chính xác.

    + Có tính cải tiến, có thêm kho dự trữ.

    + Tiết kiệm, dùng lại hai máy tính và hai chương trình.

 CHƯƠNG 5

PHÂN TÍCH HỆ THỐNG VỀ CHỨC NĂNG

1. Mục đích

- Phân tích để đi sâu vào những chi tiết của hệ thống.

- Diễn tả hệ thống theo bảng chất (mức logic).

- Hình thành hệ thống mới ở mức logic.

2. Phương pháp chung để phân tích

Trong việc phân tích hệ thống, ta tách rời việc nghiên cứu hai bộ phận trên (phân tích xử lý, phân tích dữ liệu) nhưng khi thiết kế các bảng (hoặc files) ta phải xét mối quan hệ giữa hai vấn đề này.

- Cần phân rã những chức năng lớn, phổ quát thành những chức năng khác nhỏ hơn để đi vào chi tiết.

- Xét mối quan hệ giữa các chức năng.

Ví dụ: Đặt hàng trước, nhận hàng sau. Thông thường, đầu ra của một chức năng trở thành đầu vào của một chức năng khác.

- Chuyển từ mô tả vật lý sang mô tả logic (sự trừu tượng hóa).

- Chuyển từ hệ thống cũ sang hệ thống mới ở mức logic.

- Phân tích theo cách từ trên xuống (từ tổng quát đến chi tiết), phần này ta sử dụng biểu đồ phân cấp chức năng.

- Phát hiện luồng dữ liệu bằng việc sử dụng Biểu đồ luồng dữ liệu:

          + Dùng kỹ thuật chuyển đổi biểu đồ luồng dữ liệu từ mức vật lý sang mức logic.

          + Dùng kỹ thuật chuyển đổi biểu đồ luồng dữ liệu từ hệ thống cũ sang mới.

3. Công cụ diễn tả các xử lý

a. Biểu đồ phân cấp chức năng (BPC)

Mục đích:

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 5.1. Biểu đồ phân cấp chức năng Hệ thống cung ứng vật tư

Nhận xét:

- BPC mang tính phân cấp từ tổng quát đến chi tiết (rõ ràng, đơn giản, dễ hiểu và dễ sử dụng).

- Phương pháp biểu diễn này được sử dụng khá phổ biến.

- Với hệ thông tin phức tạp, BPC vẫn chưa biểu diễn đủ vì không cho ta biết mối liên quan về dữ liệu. Để bổ sung cho khuyết điểm này, cần dùng thêm biểu đồ luồng dữ liệu.

b. Biểu đồ luồng dữ liệu (BLD):

- Trong BLD có sử dụng luồng dữ liệu (thông tin) chuyển giao giữa các chức năng.

- BLD gồm có 5 yếu tố chính:

Hình 5.2. Các đối tượng cơ bản sử dụng để thiết kế biểu đồ luồng dữ liệu cho hệ thống.

Ví dụ: Vẽ BLD của hệ cung ứng vật tư (chỉ xét về mặt thông tin, xem lại hình 5.1).

Hình 5.3 BLD của hệ cung ứng vật tư

4. Phân mức

a. Khái niệm

Là sự phân cấp từ mức tổng quát đến mức chi tiết để nêu lên các chức năng của hệ thống. Tùy theo quy mô của hệ thống mà sự phân cấp này chi tiết đến mức nào, tuy nhiên, đa số thường được chia thành 3 mức:

Hình 3.4. Cấu trúc một biểu đồ phân cấp chức năng

b. Phân mức để vẽ nhiều biểu đồ luồng dữ liệu

- BLD mức khung cảnh (mức 0): mức này chỉ có một biểu đồ gồm chức năng chính của hệ thống và biểu diễn hệ thông tin có giao tiếp với các tác nhân ngoài nào. BLD mức khung cảnh thường có dạng như sau:

Hình 5.5. Hình thức một biểu đồ luồng dữ liệu mức khung cảnh.

- BLD mức đỉnh (mức 1): BLD mức đỉnh dùng để biểu diễn chức năng tổng quát A một cách chi tiết hơn bằng cách phân nhỏ chức năng A thành các chức năng chi tiết hơn và cũng chỉ có một biểu đồ. BLD mức đỉnh thường có hình thức như sau:

Hình 5.6. Hình thức một biểu đồ luồng dữ liệu mức đỉnh.

- BLD mức dưới đỉnh (mức 2): Tất cả những chi tiết thông tin của hệ thống thường thể hiện rõ ở biểu đồ mức dưới đỉnh. BLD này gồm nhiều biểu đồ chi tiết, mỗi biểu đồ thể hiện một chức năng chi tiết thường đầy đủ tất cả các đối tượng của hệ thống BLD. Ví dụ một BLD mức dưới đỉnh được thể hiện chi tiết của chức năng 1 ở trên.

Hình 5.7. Biểu đồ luồng dữ liệu mức dưới đỉnh 1 (giải thích chức năng 1 ở BLD mức đỉnh)

Hình 5.8. Biểu đồ luồng dữ liệu mức dưới đỉnh 2 (giải thích chức năng 2 ở BLD mức đỉnh)

v Lưu ý: ta cần chú ý các nguyên tắc sau khi thiết kế BLD:

- Chỉ có tác nhân trong mới có thể tác động đến kho dữ liệu.

- Tác nhân ngoài phải xuất hiện đầy đủ ở mức khung cảnh, không được xuất hiện thêm tác nhân ngoài ở các mức dưới.

- Kho dữ liệu không được xuất hiện ở mức khung cảnh, từ mức đỉnh đến mức dưới đỉnh, các kho dữ liệu xuất hiện dần.

Ví dụ: Vẽ BPC và BLD phân mức của một cơ sở tín dụng

- Biểu đồ phân cấp chức năng:

Hình 5.9. Biểu đồ phân cấp chức năng

- Biểu đồ luồng dữ liệu:

          + Mức khung cảnh:

Hình 5.10. Biểu đồ luồng dữ liệu mức khung cảnh hoạt động tín dụng

+ Mức đỉnh:

Hình 5.11. Biểu đồ luồng dữ liệu mức đỉnh hoạt động tín dụng

 + Mức dưới đỉnh: Biểu đồ LDL mức dưới đỉnh giải thích chức năng 1 – Cho vay

Hình 5.12. Biểu đồ luồng dữ liệu mức dưới đỉnh giải thích chức năng 1 (Cho vay)

Hình 5.13. Biểu đồ luồng dữ liệu mức dưới đỉnh giải thích chức năng 2 (Thu nợ)

Chức năng

Luồng dữ liệu

Kho dữ liệu

Tác nhân ngoài

Tác nhân trong

Định nghĩa

Nhiệm vụ xử lý thông tin

Thông tin vào / ra một chức năng xử lý

Nơi lưu trữ thông tin trong một thời gian

Người hay tổ chức ngoài hệ thống có giao tiếp với hệ thống

Một chức năng hay một hệ con của hệ thống nhưng được mô tả ở trang khác

Tên đi kèm

Động từ

(+ bổ ngữ)

Danh từ

(+ tính từ)

Danh từ

(+ tính từ)

Danh từ

Động từ

Biểu đồ ví dụ

Điều kiện X

Đ

S

Đ

Đ

Điều kiện Y

S

Đ

S

Đ

Các hành động

Điều kiện Z

Đ

Đ

S

Đ

Hành động A

x

Hành động B

x

Hành động C

x

x

x

Là thương binh

Đ

S

S

Đ

Là con liệt sỹ

Đ

S

Đ

S

Giảm 10%

x

x

Giảm 5%

x

Giảm 0%

x

Cty… .         Số…….

                     Fax…...

HOÁ ĐƠN KIÊM GIẤY BẢO HÀNH

Ngày… … tháng …… năm… … .

(liên 3: dùng để thanh toán)

Họ tên người mua :…………………………………………………………..

Địa chỉ : ……………………………………………………………………...

Địa chỉ giao hàng :……………………………………………………………

Hình thức thanh toán : ………………………………………………………..

Số hiệu tài khoản : ……………………………………………………………

Stt

Tên sản phẩm

Mã số

Đơn vị

Số lượng

Đơn giá

Thành tiền

Cộng

          Tổng số tiền (viết bằng chữ) :…………………………………………

          Trong đó thuế : ……………………………………………………….

          Thời gian, địa điểm bảo hành :………………………………………..

          Ghi chú :………………………………………………………………

Người mua            Thủ quỹ             Ng. viết hoá đơn                   Kế toán

Bạn đang đọc truyện trên: Truyen2U.Pro

#hoangthe