Mô tả quá trình thao tác dữ liệu của một số chức năng

Một phần của tài liệu NGHIÊN CỨU ỨNG DỤNG ANCHOR MODELING VÀ KHUNG NHÌN THỰC ĐỂ NÂNG CAO HIỆU QUẢ QUẢN LÝ ĐIỂM HỌC SINH TẠI TRƯỜNG THPT BA GIA TỈNH QUẢNG NGÃI (Trang 35 - 44)

6. Bố cục luận văn

2.3.3. Mô tả quá trình thao tác dữ liệu của một số chức năng

Bảng 2.2. Mô tả truy vấn tạo bảng

Dữ liệu vào:

Dữ liệu ra: Các bảng chứa dữ liệu HOCSINH, GIAOVIEN, BANGDIEM, … Xử lý Tạo bảng học sinh Tạo bảng giáo viên Tạo bảng diem_hs1 Tạo bảng diem_hs2

create table hocsinh

(ma_hs nvarchar(5),hodem_hs nvarchar (30),

ten_hs nvarchar(30),ma_lop nvarchar(5),

ma_kh nvarchar(5),ma_ph nvarchar(5),

gt_hs nvarchar(30),ns_hs date,

dt_hs nvarchar(30),tg_hs nvarchar(30),

dc_hs nvarchar(30),sdt_hs nvarchar(30));

create table giaovien

(ma_gv nvarchar(5),ten_gv nvarchar(30),

sdt_gv nvarchar(30),dc_gv nvarchar(30),

ma_truong nvarchar(5),ma_mon nvarchar(5));

create table diem_hs1

( ma_mon nvarchar(5),ma_hs nvarchar(5),ma_hky nvarchar(5),

diem_l1 decimal(3,1), lankt int);

create table diem_hs2

( ma_mon nvarchar(5),ma_hs nvarchar(5),ma_hky nvarchar(5),

diem_l2 decimal(3,1), lankt int);

Tạo bảng diem_hs3

Tạo bảng bangdiem

( ma_mon nvarchar(5),ma_hs nvarchar(5),ma_hky nvarchar(5),

diem_l3 decimal(3,1), lankt int);

create table bangdiem

( ma_mon nvarchar(5),ma_hs nvarchar(5),ma_hky nvarchar(5));

Bảng 2.3. Mô tả truy vấn nhập dữ liệu vào bảng

Dữ liệu vào: HOCSINH

Dữ liệu ra: Danh sách học sinh được cập nhật vào bảng HOCSINH Xử lý:

Nhập từng bản ghi:

Nhập nhiều bản ghi từ file có sẵn:

Xóa bản ghi theo điều kiện nào đó: Xóa toàn bộ dữ liệu trong bảng học sinh:

insert into hocsinh values ('10001','tran van','an','10a1','a001','hk199','nam','22/12/1999','kinh','khong', 'quảng ngãi','0915457831')

Insert Into HOCSINH Select * From DSHS Delete From HOCSINH

Where MA_HS=MA_HS1 delete HOCSINH

Nhận xét:

- Vào đầu năm học phải nhập toàn bộ thông tin học sinh vào chương trình, hoặc khi có học sinh chuyển từ trường khác đến cũng phải nhập vào chương trinh.

- Trong năm học có học sinh chuyển trường hay bỏ học chúng ta phải xóa tên học sinh đó khỏi danh sách lớp.

- Trong khi đã xóa thông tin học sinh khỏi danh sách, nhưng sau này muốn trích lại thông tin của học sinh này không còn nữa. Vì thế chức năng cần hỗ trợ Ancho Modeling.

Bảng 2.4. Mô tả truy vấn tính điểm trung bình từng môn học Dữ liệu vào: bangdiem, diemhs1, diemhs2, diemhs3, hocky, namhoc Dữ liệu ra: Bảng điểm trung bình từng môn học của học sinh theo học kỳ Xử lý: select tong12.ma_mon, tong12.ma_hs,tong12.ma_hky,

(max(tong12.tong12)+max(tong3.tong3)*3)/(max(tong12.de m12)+3) as tbmon

from

(select tong1.ma_mon, tong1.ma_hs,tong1.ma_hky, (max(tong1.tong1)+max(tong2.tong2)*2) as tong12,

(max(tong1.dem1)+max(tong2.dem2)*2) as dem12 from

(select bangdiem.ma_mon,

bangdiem.ma_hs,bangdiem.ma_hky,

sum(diem_hs1.diem_l1) as tong1,

count(diem_hs1.diem_l1) as dem1

from bangdiem join diem_hs1 on

bangdiem.ma_mon=diem_hs1.ma_mon

and

bangdiem.ma_hky=diem_hs1.ma_hky

and bangdiem.ma_hs=diem_hs1.ma_hs group by bangdiem.ma_mon,

bangdiem.ma_hs,bangdiem.ma_hky) as tong1

join

(select bangdiem.ma_mon,

bangdiem.ma_hs,bangdiem.ma_hky,

sum(diem_hs2.diem_l2) as tong2,

count(diem_hs2.diem_l2) as dem2

from bangdiem join diem_hs2 on

bangdiem.ma_mon=diem_hs2.ma_mon

and

bangdiem.ma_hky=diem_hs2.ma_hky

and bangdiem.ma_hs=diem_hs2.ma_hs group by bangdiem.ma_mon,

bangdiem.ma_hs,bangdiem.ma_hky) as tong2 on

and tong1.ma_hky=tong2.ma_hky

and tong1.ma_hs=tong2.ma_hs

group by tong1.ma_mon, tong1.ma_hs,tong1.ma_hky) as tong12

join

(select bangdiem.ma_mon,

bangdiem.ma_hs,bangdiem.ma_hky, max(diem_hs3.diem_hs3) as tong3 from bangdiem join diem_hs3 on

bangdiem.ma_mon=diem_hs3.ma_mon

and bangdiem.ma_hky=diem_hs3.ma_hky

and bangdiem.ma_hs=diem_hs3.ma_hs

group by bangdiem.ma_mon,

bangdiem.ma_hs,bangdiem.ma_hky) as tong3 on

tong12.ma_mon=tong3.ma_mon

and tong12.ma_hky=tong3.ma_hky

and tong12.ma_hs=tong3.ma_hs

group by tong12.ma_mon, tong12.ma_hs,tong12.ma_hky Nhận xét:

- Vào cuối mỗi học kỳ ta phải thực hiện tính điểm trung bình từng môn học - Để tính được điểm trung bình từng môn học ta phải thực hiện nhiều phép nối và thống kê Sum và Count.

Tiểu kết: chức năng cần hỗ trợ cả Anchor Modeling và khung nhìn thực

Bảng 2.5. Mô tả truy vấn tính điểm trung bình tất cả các môn học

Dữ liệu vào: hocsinh, bangdiem, diem_hs1, diem_hs2, diem_hs3, hocky, namhoc Dữ liệu ra: Bảng điểm trung bình các môn của học sinh theo từng học kỳ Xử lý: select hocsinh.ma_hs,hocsinh.hodem_hs, hocsinh.ten_hs,

AVG(tam.tbmon) as tbcacmonhky from

(select tong12.ma_mon,

tong12.ma_hs,tong12.ma_hky,

(max(tong12.tong12)+max(tong3.tong3)*3)/(max(tong12.de m12)+3) as tbmon

from

(select tong1.ma_mon, tong1.ma_hs,tong1.ma_hky, (max(tong1.tong1)+max(tong2.tong2)*2) as tong12,

(max(tong1.dem1)+max(tong2.dem2)*2) as dem12 from

(select bangdiem.ma_mon,

bangdiem.ma_hs,bangdiem.ma_hky,

sum(diem_hs1.diem_l1) as tong1,

count(diem_hs1.diem_l1) as dem1

from bangdiem join diem_hs1 on

bangdiem.ma_mon=diem_hs1.ma_mon

and

bangdiem.ma_hky=diem_hs1.ma_hky

and bangdiem.ma_hs=diem_hs1.ma_hs group by bangdiem.ma_mon,

bangdiem.ma_hs,bangdiem.ma_hky) as tong1

join

(select bangdiem.ma_mon,

bangdiem.ma_hs,bangdiem.ma_hky,

sum(diem_hs2.diem_l2) as tong2,

count(diem_hs2.diem_l2) as dem2

from bangdiem join diem_hs2 on

bangdiem.ma_mon=diem_hs2.ma_mon

and

bangdiem.ma_hky=diem_hs2.ma_hky

and bangdiem.ma_hs=diem_hs2.ma_hs group by bangdiem.ma_mon,

bangdiem.ma_hs,bangdiem.ma_hky) as tong2 on

tong1.ma_mon=tong2.ma_mon

and tong1.ma_hky=tong2.ma_hky

and tong1.ma_hs=tong2.ma_hs

group by tong1.ma_mon, tong1.ma_hs,tong1.ma_hky) as tong12

join

(select bangdiem.ma_mon,

max(diem_hs3.diem_hs3) as tong3 from bangdiem join diem_hs3 on

bangdiem.ma_mon=diem_hs3.ma_mon

and bangdiem.ma_hky=diem_hs3.ma_hky

and bangdiem.ma_hs=diem_hs3.ma_hs

group by bangdiem.ma_mon,

bangdiem.ma_hs,bangdiem.ma_hky) as tong3 on

tong12.ma_mon=tong3.ma_mon

and tong12.ma_hky=tong3.ma_hky

and tong12.ma_hs=tong3.ma_hs

group by tong12.ma_mon, tong12.ma_hs,tong12.ma_hky) as tam,hocsinh

where tam.ma_hs=hocsinh.ma_hs

group by hocsinh.ma_hs,hocsinh.hodem_hs,hocsinh.ten_hs order by hocsinh.ten_hs

Nhận xét:

- Vào cuối mỗi học kỳ ta phải thực hiện tính điểm trung bình của từng học sinh - Để tính được điểm trung bình của từng học sinh ta phải thực hiện nhiều phép nối và nhiều phép thống kê Sum và Count.

Tiểu kết: chức năng cần hỗ trợ cả Anchor Modeling và khung nhìn thực.

Bảng 2.6. Mô tả truy vấn xếp loại học lực học sinh cuối học kỳ

Dữ liệu vào: hocsinh, bangdiem, diem_hs1, diem_hs2, diem_hs3, hocky, namhoc Dữ liệu ra: Bảng tổng hợp xếp loại học sinh cuối kỳ

Xử lý: select tam1.ma_hs,tam1.hodem_hs, tam1.ten_hs,tam1.tbcacmonhky,

case

when ((tam1.tbcacmonhky>=8) and (tam1.minmon)>=6.5) then

'Gioi'

when ((tam1.tbcacmonhky>=6.5)and(tam1.minmon)>=5) then 'Kha'

when ((tam1.tbcacmonhky>=5) and (tam1.minmon)>=3.5) then

'TBinh'

when ((tam1.tbcacmonhky>=3.5)and(tam1.minmon)>=2) then 'Yeu'

else 'Kem'

end as xeploai from

AVG(tam.tbmon) as tbcacmonhky,min(tam.tbmon) as minmon from

(select tong12.ma_mon, tong12.ma_hs,tong12.ma_hky, (max(tong12.tong12)+max(tong3.tong3)*3)/(max(tong12.dem 12)+3) as tbmon

from

(select tong1.ma_mon, tong1.ma_hs,tong1.ma_hky, (max(tong1.tong1)+max(tong2.tong2)*2) as tong12,

(max(tong1.dem1)+max(tong2.dem2)*2) as dem12 from

(select bangdiem.ma_mon,

bangdiem.ma_hs,bangdiem.ma_hky,

sum(diem_hs1.diem_l1) as tong1,

count(diem_hs1.diem_l1) as dem1

from bangdiem join diem_hs1 on

bangdiem.ma_mon=diem_hs1.ma_mon

and

bangdiem.ma_hky=diem_hs1.ma_hky

and bangdiem.ma_hs=diem_hs1.ma_hs group by bangdiem.ma_mon,

bangdiem.ma_hs,bangdiem.ma_hky) as tong1

join

(select bangdiem.ma_mon,

bangdiem.ma_hs,bangdiem.ma_hky,

sum(diem_hs2.diem_l2) as tong2,

count(diem_hs2.diem_l2) as dem2

from bangdiem join diem_hs2 on

bangdiem.ma_mon=diem_hs2.ma_mon

and

bangdiem.ma_hky=diem_hs2.ma_hky

and bangdiem.ma_hs=diem_hs2.ma_hs group by bangdiem.ma_mon,

bangdiem.ma_hs,bangdiem.ma_hky) as tong2 on

tong1.ma_mon=tong2.ma_mon

and tong1.ma_hs=tong2.ma_hs

group by tong1.ma_mon, tong1.ma_hs,tong1.ma_hky) as tong12

join

(select bangdiem.ma_mon,

bangdiem.ma_hs,bangdiem.ma_hky, max(diem_hs3.diem_hs3) as tong3 from bangdiem join diem_hs3

on bangdiem.ma_mon=diem_hs3.ma_mon

and bangdiem.ma_hky=diem_hs3.ma_hky

and bangdiem.ma_hs=diem_hs3.ma_hs

group by bangdiem.ma_mon,

bangdiem.ma_hs,bangdiem.ma_hky) as tong3 on tong12.ma_mon=tong3.ma_mon

and tong12.ma_hky=tong3.ma_hky

and tong12.ma_hs=tong3.ma_hs

group by tong12.ma_mon, tong12.ma_hs,tong12.ma_hky) as tam,hocsinh

where tam.ma_hs=hocsinh.ma_hs

group by hocsinh.ma_hs,hocsinh.hodem_hs,hocsinh.ten_hs) as tam1 Nhận xét:

Để xếp được loại học lực của học sinh ta phải thực hiện nhiều phép nối và nhiều phép thống kê.

Tiểu kết: chức năng cần hỗ trợ khung nhìn thực.

Bảng 2.7. Mô tả truy vấn thống kê số lượng theo xếp loại học lực Dữ liệu vào: bangdiem, diemhs1, diemhs2, diemhs3, hocsinh, hocky Dữ liệu ra: Bảng tổng hợp số lượng học sinh khá cuối kỳ

Xử lý: select count(tamxeploai.xeploai)

from

(select tam1.ma_hs,tam1.hodem_hs, tam1.ten_hs,tam1.tbcacmonhky,

case

when ((tam1.tbcacmonhky>=8) and (tam1.minmon)>=6.5) then

'Gioi'

when ((tam1.tbcacmonhky>=6.5)and(tam1.minmon)>=5) then 'Kha'

when ((tam1.tbcacmonhky>=5) and (tam1.minmon)>=3.5) then

'TBinh'

when ((tam1.tbcacmonhky>=3.5)and(tam1.minmon)>=2) then 'Yeu'

end as xeploai from

(select hocsinh.ma_hs,hocsinh.hodem_hs, hocsinh.ten_hs,

AVG(tam.tbmon) as tbcacmonhky, min(tam.tbmon) as minmon from

(select tong12.ma_mon,

tong12.ma_hs,tong12.ma_hky,

(max(tong12.tong12)+max(tong3.tong3))/(max(tong12.dem1 2)+1) as tbmon

from

(select tong1.ma_mon, tong1.ma_hs,tong1.ma_hky, (max(tong1.tong1)+max(tong2.tong2)) as tong12,

(max(tong1.dem1)+max(tong2.dem2)) as dem12 from

(select bangdiem.ma_mon,

bangdiem.ma_hs,bangdiem.ma_hky,

sum(diem_hs1.diem_l1) as tong1,

count(diem_hs1.diem_l1) as dem1

from bangdiem join diem_hs1 on

bangdiem.ma_mon=diem_hs1.ma_mon

and ngdiem.ma_hky=diem_hs1.ma_hky

and bangdiem.ma_hs=diem_hs1.ma_hs group by bangdiem.ma_mon,

bangdiem.ma_hs,bangdiem.ma_hky) as tong1

join

(select bangdiem.ma_mon,

bangdiem.ma_hs,bangdiem.ma_hky,

sum(diem_hs2.diem_l2) as tong2,

count(diem_hs2.diem_l2) as dem2

from bangdiem join diem_hs2 on

bangdiem.ma_mon=diem_hs2.ma_mon

and

bangdiem.ma_hky=diem_hs2.ma_hky

and bangdiem.ma_hs=diem_hs2.ma_hs group by bangdiem.ma_mon,

on tong1.ma_mon=tong2.ma_mon

and tong1.ma_hky=tong2.ma_hky

and tong1.ma_hs=tong2.ma_hs

group by tong1.ma_mon, tong1.ma_hs,tong1.ma_hky) as tong12

join

(select bangdiem.ma_mon, bangdiem.ma_hs,bangdiem.ma_hky, max(diem_hs3.diem_hs3) as tong3

from bangdiem join diem_hs3

on bangdiem.ma_mon=diem_hs3.ma_mon

and bangdiem.ma_hky=diem_hs3.ma_hky

and bangdiem.ma_hs=diem_hs3.ma_hs

group by bangdiem.ma_mon,

bangdiem.ma_hs,bangdiem.ma_hky) as tong3 on tong12.ma_mon=tong3.ma_mon

and tong12.ma_hky=tong3.ma_hky

and tong12.ma_hs=tong3.ma_hs

group by tong12.ma_mon, tong12.ma_hs,tong12.ma_hky) as tam,hocsinh

where tam.ma_hs=hocsinh.ma_hs

group by hocsinh.ma_hs,hocsinh.hodem_hs,hocsinh.ten_hs

) as tam1) as tamxeploai

where tamxeploai.xeploai='khá'

Nhận xét:

Để thống kê được số lượng học sinh xếp loại theo học lực ta phải thực hiện nhiều phép nối và nhiều phép thống kê.

Tiểu kết: chức năng cần hỗ trợ khung nhìn thực.

Một phần của tài liệu NGHIÊN CỨU ỨNG DỤNG ANCHOR MODELING VÀ KHUNG NHÌN THỰC ĐỂ NÂNG CAO HIỆU QUẢ QUẢN LÝ ĐIỂM HỌC SINH TẠI TRƯỜNG THPT BA GIA TỈNH QUẢNG NGÃI (Trang 35 - 44)

Tải bản đầy đủ (PDF)

(100 trang)