c. Những đặc tính chung của phần mềm hiện đại:
2.3.3.3 Giai đoạn thiết kế logic
Giai đoạn này nhằm xác định tất cả các thành phần logic của HTTT, cho phép loại bỏ được các vấn đề của hệ thống hiện tại và đạt được các mục tiêu đã thiết lập ở giai đoạn trước. Mô hình logic của hệ thống mới sẽ bao hàm thông tin mà hệ thống mới sản sinh ra (nội dung của Outputs), nội dung cơ sở dữ liệu (các tệp, quan hệ giữa các tệp), các xử lý và hợp thức hóa sẽ phải thực hiện (các xử lý) và các dữ liệu sẽ phải nhập vào (các Inputs).
Thiết kế logic bao gồm các công đoạn:
Thiết kế cơ sở dữ liệu
Thiết kế cơ sở dữ liệu là xác định yêu cầu thông tin của ngưởi sử dụng HTTT mới. Để thiết kế cơ sở dữ liệu có rất nhiều phương pháp, sau đây là 2 phương pháp phổ biên nhất: phương pháp từ các đầu ra và phương pháp mô hình hóa.
PHƯƠNG PHÁP XÂY DỰNG CƠ SỞ DỮ LIỆU TỪ CÁC THÔNG TIN ĐẦU RA
Bước 1. Xác định các đầu ra
- Liệt kê toàn bộ các thông tin đầu ra
VD: các hóa đơn bán hàng, danh sách khách hàng, danh sách nhà cung cấp…
Bước 2. Xác định các tệp cần thiết cung cấp đủ dữ liệu cho việc tạo ra từng đầu ra
Liệt kê các phần tử thông tin trên đầu ra
VD: Dựa vào các hóa đơn bán hàng ta có danh sách các thuộc tính - Số hóa đơn
- Liên số
- Mã khách hàng
- Địa chỉ khách hàng
- Số tài khoản
- Phương thức thanh toán
- Số thứ tự (R) - Mã hiệu hàng (R) - Tên hàng (R) - Đơn vị tính (R) - Đơn giá (R) - Số lượng (R) - Thành tiền (S) - Cộng thành tiền (S) - Thuế VAT (S) - Tổng thành tiền (S) - Tổng số tiền ghi bằng chữ (S) - Ngày bán - Người bán Trong đó:
- (R) chỉ các thuộc tính lặp (Repeatable), là các thuộc tính có thể nhận nhiều giá trị dữ liệu.
- (S) chỉ các thuộc tính thứ sinh (Secondary), là các thuộc tính có thể tính được hoặc suy ra từ các thuộc tính khác. Những thuộc tính này có thể loại bỏ.
- Các thuộc tính được gạch chân là những thuộc tính khóa, giúp xác định duy nhất một hóa đơn.
- Những thuộc tính mang ít ý nghĩa trong quản lý như STT, liên số cũng được loại bỏ.
Chuẩn hóa mức một quy định:
- Trong mỗi danh sách không được chứa các thuộc tính lặp. Nếu có thuộc tính lặp thì phải tách thuộc tính đó ra thành các danh sách con.
- Gắn thêm cho nó một cái tên, tìm cho nó thuộc tính định danh riêng và thêm thuộc tính định danh của danh sách gốc.
VD: Sau khi chuẩn hóa mức 1 ta có 2 danh sách:
Hóa đơn bán hàng
- Số hóa đơn
- Mã khách hàng
- Địa chỉ khách hàng
- Số tài khoản
- Phương thức thanh toán
- Ngày bán
- Người bán
Hàng mua
- Số hóa đơn (thuộc tính khóa của danh sách gốc)
- Mã hiệu hàng
- Tên hàng
- Đơn vị tính
- Đơn giá
- Số lượng
Thực hiện việc chuẩn hóa mức 2 (2.NF)
Chuẩn hóa mức 2 quy định, trong một danh sách mỗi thuộc tính phải phụ thuộc hàm vào toàn bộ khóa chứ không chỉ phụ thuộc một phần của khóa. Nếu có sự phụ thuộc như vậy thì phải tách những thuộc tính phụ thuộc hàm vào một bộ phận của khóa thành một danh sách con mới. Lấy bộ phận khóa đó làm khóa cho danh sách mới. Đặt cho nó một cái tên riêng. VD: Sau khi chuẩn hóa mức 2 ta có:
Hóa đơn bán hàng
- Số hóa đơn
- Mã khách hàng
- Phương thức thanh toán - Ngày bán - Người bán Hàng mua - Số hóa đơn - Mã hiệu hàng - Số lượng Hàng hóa - Mã hiệu hàng - Tên hàng - Đơn vị tính - Đơn giá
Thực hiện việc chuẩn hóa mức 3 (3.NF)
Chuẩn hóa mức 3 quy định trong một danh sách không được có sự phụ thuộc bắc cầu giữa các thuộc tính. VD: thuộc tính “địa chỉ khách hàng” và “số tài khoản” phụ thuộc hàm vào thuộc tính “mã khách hàng”. Thuộc tính “mã khách hàng” phụ thuộc hàm vào thuộc tính “số hóa đơn” thì phải tách chúng thành danh sách chứa quan hệ “số hóa đơn” - “mã khách hàng” và danh sách chứa quan hệ “số tài khoản”, “địa chỉ khách hàng” – “ mã khách hàng”.
Xác định khóa và tên cho danh sách mới. VD: Sau khi chuẩn hóa mức 3 ta có:
Hóa đơn bán hàng
- Số hóa đơn
- Mã khách hàng
- Phương thức thanh toán
- Người bán Khách hàng - Mã khách hàng - Địa chỉ khách hàng - Số tài khoản Hàng mua - Số hóa đơn - Mã hiệu hàng - Số lượng Hàng hóa - Mã hiệu hàng - Tên hàng - Đơn vị tính - Đơn giá Mô tả các tệp HÓA ĐƠN BÁN HÀNG Số hóa đơn Mã khách hàng Phương thức thanh toán Ngày bán Người bán
Bước 3.Tích hợp các tệp để tạo ra cơ sở dữ liệu:
Từ mỗi đầu ra ta được rất nhiều danh sách. Những danh sách mô tả cùng một thực thể phải được tích hợp lại.
VD: Từ đầu ra “danh sách khách hàng” ta có các tệp
KHÁCH HÀNG
Mã khách hàng Số dư tài khoản Tổng tiền đã mua
KHÁCH HÀNG
Mã khách hàng Địa chỉ khách hàng Tên khách hàng
Để có một tệp đầy đủ ta phải tích hợp 2 tệp trên thành một tệp duy nhất.
KHÁCH HÀNG Mã khách hàng Địa chỉ khách hàng Tên khách hàng Số dư tài khoản Tổng tiền đã mua
Bước 4. Xác định khối lượng dữ liệu cho từng tệp và toàn bộ sơ đồ
Bước 5. Xác định liên kết logic giữa các tệp và thiết lập sơ đồ cấu trúc dữ liệu
Xác định mối liên hệ giữa các tệp, biểu diễn chúng bằng các mũi tên hai chiều, nếu có quan hệ một – nhiều thì vẽ 2 mũi tên về hướng đó.
Đối với đầu ra “hóa đơn bán hàng” ta có sơ đồ liên kết sau
THIẾT KÊ CSDL BẰNG PHƯƠNG PHÁP MÔ HÌNH HÓA
Trong phần nói về cơ sở dữ liệu của HTTT ta đã làm quen với khải niệm thực thể.
Thực thể (Entity) trong mô hình logic dữ liệu được dùng để biểu diễn những đối tượng cụ thể hoặc trửu tượng mà ta muốn lưu trữ thông tin về chúng.
Thực thể được biểu diễn bằng một hình chữ nhật có ghi tên thực thể ở trong. VD: thực thể sinh viên
Liên kết (association) là mối quan hệ giữa các thực thể. Số hóa đơn Mã KH Phương thức
TT
Ngày bán Người bán
Mã HH Tên hàng Đơn vị tính Đơn giá
Mã KH Tên KH Địa chỉ
Số hóa đơn Mã HH Số lượng HÀNG MUA
KHÁCH HÀNG
HÀNG HÓA
HÓA ĐƠN BÁN HÀNG
Liên kết được biểu diễn bằng hình thoi có tên liên kết ở trong. VD: Nhiều sinh viên theo học một lớp
Thuộc tính được dùng để mô tả đặc trưng của một mối quan hệ hoặc của một thực thể. Có các loại thuộc tính: thuộc tính định danh, thuộc tính mô tả, thuộc tính quan hệ (dùng để chỉ một lần xuất nào đó trong thực thể có quan hệ).
Mức độ của liên kết cho biết mỗi lần xuất của thực thể A tương tác với bao nhiêu lần xuất của thực thể B và ngược lại. Người ta chia quan hệ làm 3 loại theo mức độ của liên kết:
- Quan hệ một – một (1@1): mỗi lần xuất của thực thể A được liên kết với một lần xuất của thực thể B và ngược lại. VD: một lớp chỉ có một giáo viên chủ nhiệm theo dõi, một giáo viên chủ nhiệm chỉ theo dõi một lớp.
- Quan hệ một – nhiều (1@N): mỗi lần xuất thực thể A được liên kết với một hoặc nhiều lần xuất của thực thể B và một lần xuất của thực thể B chỉ liên kết với duy nhất 1 lần xuất của thực thể A. VD: một lớp có nhiều sinh viên, một sinh viên theo học 1 lớp.
Theo học
Sinh viên Lớp
Theo dõi
Giáo viên CN 1 1 Lớp
Sinh viên Số hiệu sinh viên ( thuộc tính định danh) - Họ tên (thuộc tính mô tả)
- Địa chỉ (thuộc tính mô tả) - Mã lớp (thuộc tính quan hệ)
- Quan hệ nhiều – nhiều (N@M): một lần xuất của thực thể A liên kết với một hoặc nhiều lần xuất của thực thể B và ngược lại. VD: một môn học có nhiều sinh viên học, một sinh viên học nhiều môn học.
Chiều của liên kết là số lượng thực thể tham gia vào quan hệ đó. Ngưởi ta chia quan hệ làm 3 loại:
- Một chiều: là mối quan hệ chỉ có một thực thể tham gia. VD: quan hệ “là vợ chồng” trong thực thể CÔNG NHÂN
- Hai chiều: là mối quan hệ có 2 thực thể tham gia. Như quan hệ giữa SINH VIÊN với MÔN HỌC.
- Nhiều chiều: là mối quan hệ có nhiều hơn 2 thực thể tham gia. Nhưng một quan hệ nhiều chiều luôn luôn có thể biểu diễn bằng các quan hệ 2 chiều.
Khả năng tùy chọn của liên kết: khi có lần xuất của thực thể A nhưng không quan hệ với lần xuất nào của thực thể B. VD: trong mối quan hệ KHÁCH HÀNG đặt ĐƠN HÀNG. Các khách hàng, công ty X đặt đơn hàng 1, công ty Y đặt đơn hàng 2 và 3, riêng công ty Z chưa đặt đơn hàng nào. Ký hiệu của quan hệ tùy chọn là một hình ovan nhỏ.
Có
Môn học N M Sinh viên
Công nhân
Là vợ chồng
Đặt
Chuyển sơ đồ quan hệ thực thể sang sơ đồ cấu trúc dữ liệu
Chuyển các quan hệ một chiều
• Đối với quan hệ 1@1, ta dùng một tệp duy nhất biểu diễn thực thể đó. Khóa của tệp là định danh của thực thể. Giá trị khóa có thể rỗng nếu quan hệ là tùy chọn. Quan hệ được thể hiện qua việc dùng lại thuộc tính khóa.
VD: mô hình
sẽ thành một tệp CÁN BỘ (Số hiệu cán bộ, Họ tên,…, Số hiệu cán bộ vợ/chồng)
• Đối với quan hệ 1@N, ta cũng dùng một tệp. Khóa của tệp là thuộc tính định danh của thực thể.
VD: mỗi nhân viên trong phòng phải chịu trách nhiệm về 1 hoặc nhiều nhân viên khác
Sơ đồ quan hệ thực thể trên được chuyển thành một tệp NHÂN VIÊN
Số hiệu nhân viên ….. Số hiệu nhân viên phụ trách Công nhân Là vợ chồng 1 1 Số hiệu cán bộ - Họ tên Nhân viên Phụ trách 1 N
Số hiệu nhân viên - Họ tên
• Đối với quan hệ N@M, ta dùng 2 tệp, một tệp thể hiện thực thể, một tệp thể hiện quan hệ. Khóa của tệp quan hệ được cấu thành từ 2 định danh của 2 thực thể.
VD: một sản phẩm có thể là nguyên vật liệu cũng có thể là sản phẩm cuối cùng. Một sản phẩm cuối cùng được cấu thành từ một hoặc nhiều nguyên vật liệu. Một nguyên vật liệu có thể là đầu vào cho một hoặc nhiều sản phẩm cuối cùng.
Sơ đồ trên được chuyển thành 2 tệp:
SẢN PHẨM
Số hiệu sản phẩm ….. ….
CẤU THÀNH
Số hiệu sản phẩm ….. Số hiệu sản phẩm nguyên liệu
Chuyển các quan hệ 2 chiều
•Quan hệ 2 chiều 1@1 tạo ra 2 tệp tương ứng với 2 thực thể. Tùy theo sự lựa chọn của phân tích viên mà thuộc tính định danh của tệp này là thuộc tính phi khóa của tệp kia. Trong trường hợp mối quan hệ là tùy chọn thì tốt nhất là đặt khóa vào tệp ứng với thực thể bắt buộc trong quan hệ để tránh thuộc tính nhận giá trị rỗng.
VD: mô hình sinh viên mượn máy tính. Mỗi sinh viên chỉ mượn được duy nhất một máy tính. Một máy tính chỉ cho một sinh viên mượn. Không phải sinh viên nào cũng mượn được máy do số lượng máy ít.
Sản phẩm Cấu thành từ N M Số hiệu sản phẩm - Tên SP
Mô hình này được chuyển thành 2 tệp: SINH VIÊN
Số hiệu SV … …
MÁY TÍNH
Số hiệu máy tính … Số hiệu SV
• Quan hệ 2 chiều loại 1@N được chuyển thành 2 tệp, mỗi tệp ứng với một thực thể. Khóa của tệp ứng với mức 1 được dùng như khóa ngoại lai trong tệp ứng với mức N. Khóa quan hệ có thể nhận giá trị rỗng nếu thực thể có số mức N là tùy chọn trong quan hệ.
VD: mô hình 1 lớp có nhiều sinh viên, 1 sinh viên chỉ theo học 1 lớp
được chuyển thành 2 tệp sau: SINH VIÊN
Số hiệu SV … Mã lớp
LỚP
Mã lớp …
•Quan hệ 2 chiều loại N@M được chuyển thành 3 tệp, 2 tệp mô tả thực thể, 1 tệp mô tả quan hệ. Khóa của tệp mô tả quan hệ hình thành từ 2 khóa của 2 tệp mô tả thực thể.
VD: mô hình một sinh viên theo học nhiểu môn học, một môn học có nhiều sinh viên học
Có
Lớp 1 M Sinh viên
Học
SINH VIÊN Số hiệu SV … … HỌC Mã môn học Số hiệu SV MÔN HỌC Mã môn học …
Chuyển đổi thực thể khái quát
Thực thể khái quát là một thực thể có cấu trúc thứ bậc, có những thực thể chung, có những thực thể bộ phận.
Thực thể khái quát dùng để biểu diễn các thực thể có chung một số thuộc tính.
VD: Các thực thể sách, tạp chí khoa học, bài báo trong các hội nghị đều có chung các thuộc tính “Tên tác giả”,”Năm xuất bản”, “Tóm tắt nội dung” nhưng chúng cũng có các thuộc tính riêng. Sách có thuộc tính “Nhà xuất bản”, tạp chí khoa học có thuộc tính “Số hiệu tạp chí”, bài báo trong hội nghị khoa học có thuộc tính “Tên hội nghị”.
Để mô tả các thực thể trên ta có thể dùng một thực thể chung mang tên TÀI LIỆU có các thuộc tính chung của cả 3 thực thể.
Khi chuyển đổi ta có các tệp sau: TÀI LIỆU
Số hiệu tài liệu Loại tài liệu … SÁCH
Số hiệu tài liệu Nhà xuất bản BÀI BÁO
Số hiệu tài liệu Tên hội nghị
Tài liệu
Tạp chí
Sách Bài báo
Số hiệu tài liệu Loại tài liệu Năm xuât bản TT nội dung Số hiệu tài liệu Số hiệu
Số hiệu tài liệu Nhà xuât bản
Số hiệu tài liệu Tên hội nghị
Thiết kế xử lý
Thiết kế xử lý bao gồm các công đoạn: thiết kế sơ đồ logic, phân tích tra cứu, phân tích cập nhật và hợp lý hóa dữ liệu cập nhật
Các sơ đồ logic của xử lý chỉ làm rõ những quan hệ mang tính chất ngữ nghĩa của các dữ liệu mà không quan tâm tới những yếu tố mang tính tổ chức như: ai thực hiện xử lý, ở đâu, khi nào và như thế nào?
Sơ đồ logic xử lý chỉ quan tâm tới các xử lý bắt buộc phải có để thực hiện được chức năng của hệ thống.
VD: Một cơ sở lấy việc đào tạo sinh viên làm mục tiêu chính thí nó phải thực hiện các hoạt động sau:
- Tuyển sinh
- Phân chia sinh viên vào các lớp - Phân lớp cho các khoa
- Lập thời khóa biểu - Giảng dạy
- …
Phân tích tra cứu là tìm hiểu xem bằng cách nào có được những thông tin đầu ra từ cơ sở dữ liệu đã thiết kế
Phân tích cập nhật trả lời câu hỏi khi nào thì tiến hành cập nhật? Bất kỳ CSDL nào cũng phải thực hiện 3 loại cập nhật thêm, bớt, sửa tùy thuộc vào sự kiện phát sinh.
Kỹ thuật kiểm tra hợp lệ hóa dữ liệu cập nhật
Phân lớp và cấu trúc
Kiểm tra để đảm bảo dữ liệu nhập vào là đúng kiểu. VD: toàn chữ hoặc toàn số.
Tổ hợp và ý nghĩa
Xét sự phù hợp về ý nghĩa của các dữ liệu trong 2 hoặc nhiều trường. VD: số lượng hàng mua phải phù hợp với loại hàng
Sót dữ liệu Kiểm tra xem dữ liệu có mặt trong mọi bản ghi hay không
Quy cách Kiểm tra quy cách quy định trước
Miền giá trị Kiểm tra xem dữ liệu nhập có nằm trong miền giá trị