MỤC LỤC
Đặc điểm khác biệt của foxpro là sự đơn giản, bạn có thể nhanh chóng nắm bắt các kĩ thuật của nó, nó bao gồm một tập hợp khổng lồ các hàm giúp cho người phát triển không phải mất công viết lại hàm hay thủ tục cho những công việc thông thường và như vật tiết kiệm công sức cũng như chi phí cho cả người phát triển và cả các doanh nghiệp khi lựa chọn giải pháp quản trị doanh nghiệp của mình bằng hệ quản trị cơ sở dữ liệu này. Nếu có sử dụng là do người ta muốn tách một bảng có quá nhiều cột thành hai bảng tương ứng có số cột ít hơn cho dễ nhìn và đỡ cồng kềnh, hoạc người ta muốn nhóm các trường hay biến động sang một bảng khác để cập nhật khi cần, khi cần cập nhật người dùng không cần phải mở tất cả các trường trong bảng lớn để cập nhật mà chỉ cần mở bảng có các trường hay biến động để cập nhật mà thôi.
Có hai thực thể A và B được phản ánh vào hai bảng là A và B, khi đó ta nói là hai bảng A và B có mối quan hệ 1-1 (one to one) khi ứng với mỗi dòng trong bản A thì cũng chỉ có một dòng tương ứng với nó trong bảng B và ngược lại, ứng với mỗi dòng trong bảng B cũng chỉ có một dòng trong bang A. Mô hình quan hệ một nhiều có thể coi là mô hình ứng dụng nhiều nhất và cũng xuất hiện nhiều nhất trong thực tế, một khoa có nhiều sinh viên nhưng mỗi sinh viên chỉ thuộc về một khoa, một mặt hàng có nhiều món hàng nhưng mỗi món hàng chỉ thuộc về một mặt hàng mà thôi….
Công việc đầu tiên của quá trình xây dựng ứng dụng cơ sở dữ liệu là xác định xem có những thực thể nào cần phản ánh và những thuộc tính nào cần có để đưa vào cơ sở dữ liệu, thực chất của quá trình này là xây dựng các bảng và trong các bảng đó thì cần có những trường nào nhằm đáp ứng được yêu cầu đặt ra khi phân tích và xác định yêu cầu. Ví dụ trong một bảng sinh viên thì không nên có đồng thời hai trường cùng lưu thông tin về một thuộc tính nào đó của sinh viên, cũng không nên lưu thông tin ngày sinh và giới tính hoặc lớp của sinh viên vào hai bảng nào đó, như vậy khi cập nhật thì chỉ cần thực hiện trên một bảng là được tránh phải cập nhật chỗ này xong rồi lại cập nhật trong một bảng khác, tránh được sự không nhất quán dữ liệu khi không cập nhật kịp thời, như thế sẽ rất mất thời gian và công sức cho người lập trình, và người sử dụng sẽ cảm thấy khó khăn khi xử lý những vấn đề bất thường có thể xảy ra trong quá trình sử dụng.
Ví dụ như thông tin về khách hàng như họ tên, số điện thoại, địa chỉ thì nên để trong bảng tách biệt với đơn đặt hàng của khách hàng đó, như vật khi cần thay đổi thông tin hay loại bỏ đơn đặt hàng thì cũng không ảnh hưởng gì đến thông tin của khách hàng ở bảng thông tin khách hàng. Khi xác định xong các thực thể và các thuộc tính của mỗi thực thể thì người thiết kế cần phải xác định các mối quan hệ giữa các thực thể đó, nhằm sau này có thể trích rút và tổng hợp thông tin giữa các bảng khác nhau nhằm đáp ứng nhanh chóng và đầy đủ những yêu cầu của người dùng.
- Tăng cường tính độc lập giữa các bảng : khi thiết kế cơ sở dữ liệu làm sao cố gắng đến mức tối đa tách những thông tin độc lập về từng thực thể giữa các bảng, như vật khi cần thay đổi cập nhật thông tin trong một bảng nào đó sẽ không ảnh hưởng đến những bảng khác. “biên dịch” mô hình thiết kế thành một cơ sở dữ liệu thực trên máy tính, tiến hành tạo bảng, điền dữ liệu, tạo các truy vấn, module chương trình, các form nhập, báo cáo… để xây dựng một ứng dụng hoàn chỉnh.
Xác định khung cảnh nghiên cứu không phải là một công việc dễ dàng vì nếu phân tích viên xác định nó quá hẹp thì sẽ có thể dẫn đến một số thành phần quan trọng không được đưa vào trong hệ thống còn nếu xác định nó quá rộng thì có thể lại dẫn đến những hậu quả tiêu cực mặc dù nó đảm bảo cho nhà phân tích tính hết tới các yếu tố quan trọng của hệ thống. Bởi vì một lý do đơn giản đó là cần phải đánh giá được khả năng thực thi của dự án, nếu trong giai đoạn đánh giá yêu cầu mà không đánh giá được hết các khả năng có thể xảy ra của hệ thống cũng như những yếu tố tác động bên ngoài tới hệ thống thì có thể gây ra rất nhiều lãng phí cả về tài chính cũng như nhân lực.
Hàng tháng, KTX cần phải quản lý tiền điện và đồ dùng vệ sinh cho sinh viên như giấy vệ sinh, xô, chậu, chổi lau nhà, … Khi đó sẽ có một modul chuyên quản lý phần này gọi là “Quản lý tiền điện-Đồ dùng”, gộp lại như vậy là vì chỉ khi nào phòng nào đó nộp tiền điện thì sẽ nhận được đồ dùng, nếu không thì sẽ không được nhận, cuối tháng người quản lý có thể xem xet xem phòng nào đã nộp tiền điện hoặc phòng nào chưa nộp để có thể đốc thúc hoặc đem ra hình phạt là cắt điện phòng đó cho đến khi nộp được tiền điện, thông tin này được cung cấp bằng báo cáo “Tiền điện – đồ dùng”. Đồng thời trong quá trình ở của sinh viên sẽ có những sinh viên vi phạm kỷ luật và ban quản lý cần lưu lại danh sách những sinh viên vi phạm kỷ luật này để có những hình phạt thích hợp, đồng thời có thể báo cáo lên giám đốc trung tâm dịch vụ danh sách sinh viên vi phạm kỷ luật trong quá trình ở KTX. Dựa vào những yêu cầu của hệ thống đã phân tích như trên chúng ta có sơ đồ IFD của quá trình duyệt đơn đăng kí nội trú của sinh viên, in danh sách sinh viên theo phòng để sinh viên có thể xem phòng mình ở, đồng thời cung cấp danh sách sinh viên hiện có cho ban quản lý khi cần thiết.
-Danh mục: gồm các modul để cập nhập các danh mục cho quá trình cập nhập cho danh sách sinh viên, tiền điện, kỷ luật…như danh mục nhà, danh mục phòng, danh mục tỉnh, danh mục dân tộc, danh mục tôn giáo, danh mục ngành, khóa học, lớp học. - Các bảng danh mục: Gồm dmnha (danh mục nhà), dmPhong (danh mục phòng), dmTG (danh mục tôn giáo), dmTinh (Danh mục tỉnh), dmDT (Danh mục tôn giáo), dmNganh (Danh mục ngành), dmKhoa (danh mục khóa), dmLop (danh mục lớp). Khi cập nhật danh sách sinh viên, tiền điện hàng tháng, hoặc sinh viên bị kỷ luật, sẽ có một số hoặc tất cả các danh mục cần dùng đến, các bảng danh mục là các bảng ở phía nhiều trong mối quan hệ một – nhiều với các bảng dữ liệu.
Các màn hình danh mục khác, màn hình danh sách sinh viên, màn hình danh sách sinh viên vi phạm kỷ luật đều tương tự như trên. USE p_cod+'dmDT' ALIAS dmDT INDEX ON ma_DT TO ma_DT SET ORDER TO ma_DT.
USE p_cod+'dmLop' ALIAS dmLop INDEX ON ma_lop TO ma_lop SET ORDER TO ma_lop.
USE p_cod+'dmNganh' ALIAS dmNganh INDEX ON ma_nganh TO ma_nganh SET ORDER TO ma_nganh. USE p_cod+'dmNha' ALIAS dmNha INDEX ON ma_nha TO ma_nha SET ORDER TO ma_nha. DO FORM (p_screen+'dmPhong-f3') NAME _form LINKED select ma_nha from P_cod+'dmNha' INTO curs temp noconsole SELECT temp.
USE p_cod+'dmTinh' ALIAS dmTinh INDEX ON ma_tinh TO ma_tinh SET ORDER TO ma_tinh. SELECT DISTINCT * from tien_dien WHERE ALLTRIM(thang)=ALLTRIM(M_thang_QL) AND ALLTRIM(ma_nha)=ALLTRIM(M_nha_QL) AND ALLTRIM(nam)=ALLTRIM(M_nam_QL) ORDER BY nam,thang,ma_phong INTO TABLE tien_dienTMPrp. SELECT DISTINCT * from tien_dien WHERE ALLTRIM(thang)=ALLTRIM(M_thang_QL) AND ALLTRIM(ma_nha)=ALLTRIM(M_nha_QL) AND ALLTRIM(nam)=ALLTRIM(M_nam_QL) ORDER BY nam,thang,ma_phong INTO TABLE tien_dienTMPrp.
USE p_cod+'dmphong' ALIAS dmphong INDEX ON ma_phong TO ma_phong SET ORDER TO ma_phong.