1. Trang chủ
  2. » Công Nghệ Thông Tin

Lập trình quản lý cơ sở dữ liệu

28 132 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 28
Dung lượng 609,68 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tài liệu nghiên cứu và học tập về thiết kế hệ thống, lập trình quản lý dữ liệu. Giúp cho người học và nghiên cứu nắm bắt được cách tổ chức cơ sở dữ liệu và lập trình khai thác dữ liệu như cập nhật, thống kê,...

Trang 1

Chương 1 NHỮNG VẤN ĐỀ CHUNG

1 Các khái niệm cơ bản:

1.1 Khái niệm phân tích hệ thống:

- Phân tích hệ thống là phương pháp dùng để mô hình hoá hay còn gọi là quan niệm hệ thống thông tin Phương pháp này ra đời đã rất lâu, đựơc bắt nguồn

từ nước Pháp Sau một thời gian được sử dụng và phổ biến nhờ vào những đặc tính ưu việt của nó như:

+ Cơ sở khoa học vững chắc

+ Phân tích cụ thể

+ Xử lý triệt để

- Có nhiều mô hình phân tích hệ thống:

+ Mô hình quan niệm cho dữ liệu (MCD)

+ Mô hình luận lý cho dữ liệu (MLD)

+ Mô hình vật lý cho dữ liệu (MPD)

+ Mô hình quan niệm cho xử lý (MCT)

+ Mô hình tổ chức cho xử lý (MOT)

+ Mô hình vật lý cho xử lý (MPT)

1.2 Mô hình quan niệm cho dữ liệu (MCD):

MCD là một cách phân tích hệ thống thông tin, khi dùng mô hình MCD cần nắm vững các khái niệm qui tắc sau:

- Thực thể: Là một nhóm đối tượng có thực thể có tồn tại trong thế giới mà chúng ta khảo sát Nó tồn tại một cách độc lập, các đối tượng được nhóm lại dựa vào một số thuộc tính chung nào đó

Trang 2

- Thuộc tính: Thuộc tính là một dữ liệu mà người ta nhận biết trên một thực thể hoặc một liên kết Tên của thuộc tính được ghi bên dưới thực thể hoặc liên kết

Kí hiệu: Bảng số tối đa: (1 – n)

Bảng số tối thiểu: (0 – 1)

- Khoá:

+ Khoá của thực thể: Là một thuộc tính đặc biệt của thực thể sao cho với mỗi giá trị của thuộc tính này tương ứng với một và chỉ một thể hiện của thực thể Các khoá này thường được ghi đầu tiên trong danh sách các thuộc tính của thực thể và phải gạch dưới

+ Khoá của liên kết: Thường được tạo thành bởi tất cả các khoá của các thực thể tạo nên liên kết đó

- Phụ thuộc hàm:

+ Phụ thuộc hàm giữa các thuộc tính: Là tồn tại một phụ thuộc hàm giữa các thuộc tính A và thuộc tính B, nếu với mỗi giá trị của thuộc tính A đều xác định duy nhất một thuộc tính B

Ký hiệu: A B + Phụ thuộc hàm sơ cấp giữa các thuộc tính: Tồn tại một phụ thuộc hàm sơ cấp giữa hai thuộc tính A và B, nếu tồn tại một phụ thuộc hàm giữa A và

B và không tồn tại 1 thuộc tính con nào của A để xác định được B

+ Phụ thuộc hàm sơ cấp trực tiếp giữa các thuộc tính: Tồn tại một phụ thuộc hàm sơ cấp trực tiếp giữa hai thuộc tính A và B nếu có:

+ Tồn tại một phụ thuộc hàm sơ cấp trực tiếp giữa A và B + Không tồn tại một thuộc tính C nào, sao cho C phụ thuộc với

A rồi C cũng phụ thuộc hàm với B

<Tên liên kết>

<DS các thuộc tính của thực thể>

Trang 3

- Các quy tắc chuẩn hoá mô hình MCD:

Chuẩn hoá mô hình MCD là nhằm để loại bỏ sự lặp đi lặp lại của các thuộc tính trong các thực thể của các quan hệ, nhằm tránh sự dư thừa dữ liệu, giải quyết sự nhọc nhằn giữa các mối quan hệ của các thực thể

+ Quy tắc 1: Đối với bất kỳ một thể hiện nào của thực thể hay của một liên kết, mọi thuộc tính đều phải có ý nghĩa và phải có giá trị duy nhất

+ Quy tắc 2: Mọi thuộc tính của một thực thể đều phụ thuộc vào khoá của thực thể đó bằng một phụ thuộc hàm sơ cấp trực tiếp

+ Quy tắc 3: Mọi thuộc tính của liên kết phải phụ thuộc vào khoá của liên kết đó bằng một phụ thuộc hàm sơ cấp trực tiếp

1.3 Mô hình luận lý cho dữ liệu (MLD)

Là việc chuyển đổi mô hình MCD sang mô hình MLD để gần gủi với máy tính hơn Mục đích của MLD là nhằm tổ chức dữ liệu được tối ưu hóa Để thực hiện một cách nhanh chóng dễ dàng và chính xác từ mô hình MCD sang mô hình MLD cần phải nắm vững các quy tắc sau:

+ Mỗi thực thể trong MCD sẽ được chuyển thành một quan hệ trong MLD Khóa của thực thể trở thành khóa chính của quan

+ Một liên kết không phụ thuộc hàm của MCD, sẽ trở thành một quan hệ trong MLD Quan hệ này gồm có khoá của các thực thể liên kết với nó và các thuộc tính của liên kết

2 Bài toán quản lý

2.1 Thu thập thông tin:

- Thông tin ban đầu

- Các bảng báo cáo

- Giải quyết xử lý

2.2 Ứng dụng quản lý:

- Bài toán quản lý có ở hầu hết mọi đơn vị, tổ chức, thậm chí với cả một số

cá nhân Những bài toán quản lý có thể kể đến như:

Trang 4

- Đặc điểm chung của những bài toán này:

o Không cần sử dụng những thuật toán phức tạp mà yêu cầu chủ yếu là: thống kê, tìm kiếm, lọc thông tin

o Khối lượng dữ liệu thường là rất lớn Đặc điểm này thực sự là một thách thức lớn nếu chúng ta phải quản lý thủ công (việc tìm kiếm, thống kê, lọc cho nên mất rất nhiều thời gian và không chính xác)

Trang 8

Xử lý sự cố cho Trigia (Object: txtTrigia; Procedurre: Getfocus)

If f_phatsinh.dongia<>0 and f_phatsinh.soluong<>0

repl f_phatsinh.trigia with f_phatsinh.soluong*f_phatsinh.dongia

Trang 9

Form f_nhanviendonvi:

Thiết kế giao diện xem hoá đơn đã phát sinh theo tháng: (f_xemhoadon)

Chọn thực hiện sẽ hiển thị báo cáo các hoá đơn theo tháng nhập (ví dụ 4)

Use phatsinh alias PS

do while not EOF("PS")

If thisform.xthang.value=month(PS.ngay) then

scatter memvar

sele CTPS

Trang 10

gọi thành phần khác ngay vi trí này (ví dụ báo cáo vào tháng 4)

Thiết kế Form dùng để lọc dữ liệu: (f_hanghoa)

Trang 11

If not empty(.xdongia.value) then

If not left(alltrim(.xdongia.value),1) $"=><" then

.xdongia.value="="+.xdongia.value

Trang 12

If not empty(dk) then

Set filte to &dk

1 Thiết kế các Form nhập liệu cho tất cả các table còn lại

2 Thiết kế form xem hoá đơn phát sinh theo:

- Lý do nhập xuất : N hoặc X

- Trị giá : từ giá trị 1 đến giá trị 2

3 Thiết kế Form lọc dữ liệu cho table nhân viên

4 Thiết kế Form điều khiển các thành phần đã thiết kế như trên có dạng như sau:

Trang 13

- Nhân viên của công ty khi được tuyển vào sẽ có một chức vụ Trong công ty

có nhiều phòng ban và những nhân viên này được tuyển dụng vào các phòng ban đó

Công ty cần phải báo cáo danh sách nhân viên của từng phòng ban theo mẫu:

PHÒNG BAN

Tổng số có: nhân viên

Trang 14

- Báo cáo danh sách nhân viên theo độ tuổi

Địa chỉ

Hôn nhân

Ngày vào Đoàn

Ngày vào Đảng Ghi chú

- Báo cáo danh sách trích ngang CB – CNV:

Ngày tuyển dụng Ghi chú

- Báo cáo danh sách tới hạn lên lương:

DANH SÁCH NÂNG LƯƠNG

Năm : ……

STT Họ tên Giới

tính

Ngày sinh

Ngày tuyển dụng Chức vụ Ghi chú

- Báo cáo danh sách nghỉ hưu:

DANH SÁCH NGHỈ HƯU

Trang 15

- Danh sách đảng viên, đoàn viên:

DANH SÁCH ĐOÀN VIÊN

DANH SÁCH ĐẢNG VIÊN

- Báo cáo tổng hợp:

BÁO CÁO SỐ NHÂN VIÊN THEO PHÒNG BAN

BÁO CÁO SỐ NHÂN VIÊN THEO GIỚI TÍNH

1

2

Nam

Nữ

BÁO CÁO SỐ NHÂN VIÊN THEO ĐỘ TUỔI

Trang 16

2.2 Phân tích thông tin

Trang 18

+ Danh mục trình độ chuyên môn

+ Danh mục trình độ văn hóa

- Xử lý

+ Chi tiết trình độ chuyên môn của nhân viên

+ Lọc nhân viên theo danh sách trích ngang

+ Nghỉ hưu của nhân viên

+ Nâng lương của nhân viên

- In

+ Danh sách nhân viên theo phòng ban

+ Danh sách nhân viên theo độ tuổi

+ Danh sách đảng viên, đoàn viên

+ Thống kê nhân viên theo phòng ban

+ Thống kê nhân viên theo giới tính

+ Thống kê nhân viên theo độ tuổi

- Thoát

Trang 19

Chương 4

QUẢN LÝ ĐIỂM 4.1 Bài toán thực tế:

- Mỗi học sinh khi nhập trường cần nắm một số thông tin như sau: họ tên, giới tính, nơi sinh, địa chỉ và gán cho mỗi học sinh một mã số

- Nhà trường cần quản lý thêm lý lịch của học sinh: họ tên cha mẹ, năm sinh, nghề nghiệp địa chỉ

- Để quản lý giáo viên của trường cần phải biết một số thông tin như sau:họ tên, ngày sinh, giới tính, tổ chuyên môn, địa chỉ, số điện thoại

- Trong một học kỳ có nhiều môn và mỗi giáo viên dạy một hoặc nhiều môn

- Nhà trường có nhiều lớp, mỗi lớp được phân biệt bằng một mã lớp, tên lớp

và do một giáo viên chủ nhiệm

- Cuối mỗi học kỳ học sinh sẽ thi học kỳ và mỗi môn thi có 2 dạng: môn kiểm tra hoặc môn thi được tính theo cách tính như sau:

+ Môn kiểm tra:

Trang 20

4.2 Mô hình MCD và MLD:

HOCSINH(MAHS, HOTEN, GIOITINH, NOISINH, DIACHI, MSCHA, MSME, MALOP) CHA(MSCHA, HOTEN, NAMSINH, NGHENGHIEP, DIACHI)

ME(MSME, HOTEN, NAMSINH, NGHENGHIEP, DIACHI)

GIAOVIEN(MAGV, HOTEN, NOISSINH, GIOITINH, TOCHUYENMON, DIACHI,

1,1 1,n

1,n

1,n 1,n

1,n

1,1

0,1

1,1

Trang 21

1 Môi trường nhiều người dùng:

Vấn đề trao đổi thông tin trên môi trường nhiều người dùng sẽ dẫn đến một

số vấn đề tranh chấp dữ liệu cần phải giải quyết trong quá trình lập trình ứng dụng Việc thiết lập cơ sở dữ liệu dùng chung cho nhiều người sẽ giúp tiết kiệm đáng kể tài nguyên và nhân lực Ngoài ra nó còn đảm bảo tính nhất quán dữ liệu

so với cách tổ chức nhiều cơ sở dữ liệu riêng lẻ, vốn sẽ dẫn đến tình trạng tại một thời điểm thông tin xác định về một nhân viên nào đó lại không giống nhau

Một số kỹ thuật vấn đề tranh chấp dữ liệu:

- Phân quyền khai thác: mỗi người dùng được qui định bằng tên truy cập ứng dụng và mật mã, với một số quyền truy cập xác định

- Phân cấp công việc: khi có sự tranh chấp dã liệu, công việc nào có quyền

ưu tiên cao hơn sẽ được thi hành trước

- Thứ tự thực hiện trước sau: ưu tiên cho người dùng truy cập dữ liệu trước bằng những lệnh khóa toàn bộ table hay khóa từng record

Xây dựng chương trình mhkt, trong đó có hai hàm mahoa và kiemtra có công dụng như sau:

- mahoa: nhận vào một chuổi (mật mã), hàm sẽ thực hiện chuyển đổi chuổi

và trả lại một chuỗi số

- kiemtra: nhận vào hai chuỗi tên và mật mã người dùng Hàm sẽ tìm tên người dùng trong table Nếu tìm thấy hàm sẽ so sánh chuỗi số đã lưu trong field password đã lưu với chuổi số trả lại sau khi chuyển đổi mật mã đã nhập Nếu tên người dùng và mật mã đều phù hợp, hàm sẽ trả lại giá trị T., ngược lại hàm sẽ trả lại F Biết rằng, cấu trúc của table như sau:

Trang 22

Private i,j

j=0

For i=1 to len (matma)

j=j+ asc ( substr (matma,i,1))*(i+1)

Use USER SHARED

Set order to tag username

Trang 23

thisform user ReadOnly =.T

thisform pass ReadOnly =.T

thisform quyen ReadOnly =.T

IF user right <>"SUPERVISOR" AND user right <>"USER" AND

user right <>"EVERYBODY" THEN

= MESSAGEBOX ("Phai la SUPERVISOR,USER,EVERYBODY",24,"Thong bao")

REPLACE user right WITH "EVERYBODY"

ENDIF

Trang 24

Them.click

IF thisform Them Caption ="Them"

doi=.T

thisform Them Caption ="Luu"

thisform Xoa caption ="Bo"

thisform Thoat enabled =.F

thisform user ReadOnly =.F

thisform pass ReadOnly =.F

thisform quyen ReadOnly =.F

thisform Them Caption ="Them"

thisform Xoa caption ="Xoa"

thisform Thoat enabled =.T

thisform user ReadOnly =.T

thisform pass ReadOnly =.T

thisform quyen ReadOnly =.T

Trang 25

- Đưa form user vào trong hệ thống menu của ứng dụng

- Thiết kế form dangnhap theo mẫu sau:

Đăng nhập: chương trình sẽ kiểm tra tên và mật mã người dùng xem có tồn tại trong table user hay không Nếu chưa có thì hiển thị thông báo lỗi và chờ nhập lại Nếu đúng thì xác định quyền truy cập của người dùng gọi chương trình batdau để nạp menu chính Có thể liệt kê một số quyền như sau: + SUPERVISOR: mọi chức năng trong chương trình

+ OPERATOR: mọi chức năng nhưng không thể đăng ký người dùng mới

+ USER: không thể truy xuất các chức năng trong Xem Table, không thể thêm người dùng mới

+ EVERYBODY: chỉ xem được các report Không thể sử dụng các chức năng cập nhật, thêm người dùng mới

Trang 26

Thuchien.Click

if EMPTY ( thisform old Value ) then

= MESSAGEBOX ("Nhap mat ma cu",24,"Thong bao")

ELSE

SET PROCEDURE TO mhkt

= MESSAGEBOX ("Mat ma cu khong co",24,"Thong bao")

ELSE

IF ALLTRIM ( thisform new1 Value )<> ALLTRIM ( thisform new2 Value ) then

= MESSAGEBOX ("Nhap mat ma khong hop le",24,"Thong bao")

= MESSAGEBOX ("Mat ma da duoc doi",24,"Thong bao")

ENDIF

ENDIF

SET PROCEDURE TO

ENDIF

Vào menu bổ sung mục đổi mật mã vào mục hệ thống

2 Tạo Help trong ứng dụng

Khi thiết kế ứng dụng, có một phần tuy phụ nhưng không kém phần quan

Trang 27

Tập tin tablehelp có cấu trúc tương tự sau:

Ví dụ: Có thể nhập liệu cho table trên như sau:

Dang ky

nguoi dung

Đăng ký người dùng chương trình mới 1

Doi mat ma Đổi mật mã của người dùng đang login chương

trình

1

Cap nhat Cập nhật KHÓA HỌC

Gọi các giao diện để người dùng cập nhật dữ liệu vào Table KHOAHOC

SET HELP TO helptable

Mở menu, hiệu chỉnh lại các thủ tục biến cố của những mục chọn trong menu đã thiết

kế

Dang ky nguoi dung procedure

ON KEY LABEL LABEL F1 HELP Dang ky nguoi dung

DO FORM USER

Trang 28

Doi mat ma procedure

ON KEY LABEL LABEL F1 HELP Doi mat ma

Ket thuc procedure

IF MESSAGEBOX ("Thoat khoi ung dung",20,"quan ly diem")=6

SET HELP OFF

CLOSE ALL

QUIT

Endif

Khi chạy menu, gõ F1 cửa sổ sẽ mở như hình sau:

Chọn Dang ky nguoi dung, hiển thị như sau:

Ngày đăng: 05/04/2019, 09:20

TỪ KHÓA LIÊN QUAN

w