日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

中学学籍管理系统数据库课程设计,限于篇幅只能采取截图方式上传,原文件在我资源中有所展示。

發(fā)布時間:2024/3/12 windows 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 中学学籍管理系统数据库课程设计,限于篇幅只能采取截图方式上传,原文件在我资源中有所展示。 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.








第五章 數(shù)據(jù)庫物理設(shè)計

5.1 RDBMS的選擇 中學(xué)生管理系統(tǒng)課程設(shè)計小組選擇的是Microsoft的SQL Server的Windows.NT版本,主要是考慮到:Microsoft SQL Server 是真正的客戶機(jī)/服務(wù)器體系結(jié)構(gòu)、圖形化的用戶界面,使系統(tǒng)管理更加直觀簡單、以及良好的對數(shù)據(jù)的導(dǎo)入導(dǎo)出能力。 5.2 數(shù)據(jù)庫的創(chuàng)建 中學(xué)學(xué)籍管理系統(tǒng)數(shù)據(jù)庫名稱:SDbase 主文件和日志文件存放在D盤下SQLSDbase文件夾下: 主文件組名稱:SDbase_Data 主文件:SDbase_Data.mdf 日志文件組名稱:SDbase_Log 日志文件:SDbase_Log.ldf考慮到中學(xué)學(xué)校每年在校生及教職工5000~10000人次,學(xué)校存在有辦學(xué)類型小學(xué)、中學(xué)、高中,每個人的數(shù)據(jù)量10~20條記錄,學(xué)校大概會為學(xué)生保留信息3~5年的情況下,每個人數(shù)據(jù)量大概15(條記錄)*10(字段)*4(漢字)*2(字節(jié))約等于1024個字節(jié)(1/1024MB)。綜上所述數(shù)據(jù)按最大增長量每年遞增約10MB,考慮該系統(tǒng)使用周期約10~20年,最大數(shù)據(jù)容量設(shè)為200MB。SQL編程語句如下: use master --創(chuàng)建數(shù)據(jù)庫 CREATE DATABASE SDbase ON PRIMARY --主文件組 ( NAME='SDbase_Data', --邏輯文件名 FILENAME='D:\SQLSDbase\SDbase_Data.mdf', SIZE=15MB, --初始大小 MAXSIZE=200MB, --最大容量 FILEGROWTH=15% --增長率 ) LOG on --日志文件 ( NAME='SDbase_Log', --日志文件邏輯文件名 FILENAME='D:\SQLSDbase\SDbase_Log.ldf', SIZE=5MB, FILEGROWTH=15% --增長率 ) GO

第六章 數(shù)據(jù)庫的實(shí)施

6.1用戶的建立及權(quán)限分配SQL編程授權(quán)部分: --創(chuàng)建一個DBMS訪問賬戶 create login zhongxuexiaozu with password='123456' --進(jìn)入SDbase數(shù)據(jù)庫 use SDbase --創(chuàng)建數(shù)據(jù)庫用戶 --因?yàn)橹袑W(xué)學(xué)籍管理系統(tǒng)只需要SDbase數(shù)據(jù)庫,所以只設(shè)定訪問SDbase, create user zhongxuexiaozu for login zhongxuexiaozu with default_schema=dbo--為zhongxuexiaozu賬戶授予查詢、刪除、更改以及插入部分表數(shù)據(jù)的權(quán)限。 grant select,insert,update,delete on StudentInfor to zhongxuexiaozu grant select,insert,update,delete on SGuanxi to zhongxuexiaozu grant select,insert,update,delete on SchoolInfor to zhongxuexiaozu grant select,insert,update,delete on StudentGerenInfor to zhongxuexiaozu grant select,insert,update,delete on xuejiUpdate to zhongxuexiaozu grant select,insert,update,delete on UserType to zhongxuexiaozu grant select,insert,update,delete on BubieTable to zhongxuexiaozu grant select,insert,update,delete on BiyeSheng to zhongxuexiaozu --因?yàn)檩o助表中除了SchoolInfor表與畢業(yè)生表給與zhongxuexiaozu賬戶授予一定的訪問權(quán)限外, --沒有對其他例如年級、部別等表進(jìn)行授予增刪改查的權(quán)利,因?yàn)檫@些表是定死的,當(dāng)二次開發(fā)時若需要,再次授權(quán)即可,應(yīng)用程序連接DBMS時候是無法對SDbase數(shù)據(jù)庫以外的數(shù)據(jù)庫進(jìn)行操作,也無法SDbase中沒有授權(quán)的表進(jìn)行操作,在一定程度上對數(shù)據(jù)進(jìn)行了保護(hù)。 6.2表的建立與數(shù)據(jù)的載入 注釋上的序號是創(chuàng)建表的順序,因?yàn)橹魍怄I關(guān)系;其中序號為1的表為輔助表(建庫的時候里面數(shù)據(jù)是定死的,后期進(jìn)行二次開發(fā)時候可以再次進(jìn)行開發(fā)使用。) use SDbase --1創(chuàng)建學(xué)校信息表 Create table SchoolInfor (ScName VARCHAR(20) , --學(xué)校名稱 Sprovince VARCHAR(20) not null,--學(xué)校所在省份 SbureauEd VARCHAR(20) not null,--學(xué)校所屬教育局 Saddress varchar(50) not null,--學(xué)校地址 PRIMARY KEY(ScName) ) --1部別信息表 Create table BubieTable(Bno char(1) unique ,Bname char(4) primary key) --1年級信息表 Create table NianjiTable(Nno char(1) unique ,Nname char(6) primary key)--1畢業(yè)生信息表 Create table BiyeSheng( Sno char(12), buBie char(10), Sname varchar(36), primary key(Sno) )--2班級表Create table classTbale --班級表(buBie char(4) , --類別初中、高中、小學(xué)等等nianJi char(6), banJi char(6) not null, --班級編號TeacherNo varchar(12) unique NOT NULL, --老師編號TeacherName varchar(50) not NULL,primary key(buBie,nianJi,banJi),foreign key(buBie) references BubieTable(Bname),foreign key(nianJi) references NianjiTable(Nname), ) --3入學(xué)信息表 Create table StudentInfor --創(chuàng)建學(xué)生入學(xué)基本信息表 (enrollmentYear char(4) not null,--考慮到年份都是四位數(shù),所以定死為char(4)類型和大小 Sno char(12), --學(xué)生學(xué)號 buBie char(4) , --入學(xué)類型(初中、高中) nianJi char(6), banJi char(6), Sname varchar(50) not null, --考慮到少數(shù)名族名字 Ssex char(2) check(Ssex in('男','女')), Nationnality varchar(30) not null, --民族 placeBirth varchar(20)not null, --籍貫 birthDate Date not null, --出生日期 graduatedUniversity VARCHAR(20) not null,--畢業(yè)學(xué)校 enrollmentScore smallint check(enrollmentScore>=0),--總分 sourceUpdate char(10) not null, --來源/變動類型 muqianZhuangtai Varchar(30), --變動原因 PRIMARY KEY (Sno), --主鍵foreign key(buBie) references BubieTable(Bname), foreign key(nianJi) references NianjiTable(Nname),)--4創(chuàng)建學(xué)生個人情況 Create table StudentGerenInfor (Sno char(12), --學(xué)號mianMao char(12) not null, --政治面貌shenTi char(10) , --身體狀況jiaTingRenKou char(2), --家庭人口homeAdress VARCHAR(30) not null,--家庭住址TemlePhone char(11) not null, --聯(lián)系方式11位的手機(jī)號PRIMARY KEY(Sno),FOREIGN KEY (Sno) references StudentInfor(Sno) )--4創(chuàng)建學(xué)生主要關(guān)系表Create table SGuanxi(Sno char(12),chengWei char(4), --與本人關(guān)系。, Name varchar(50) NOT NULL, --姓名Age CHAR(3) NOT NULL, --年齡DanWei VARCHAR(50)NOT NULL, --單位PRIMARY KEY (Sno,chengWei,Name), --考慮到一個人有多個家庭成員,但是可以有相同稱謂的姐姐、弟弟,標(biāo)識唯一一行FOREIGN KEY (Sno) references StudentInfor(Sno))--4學(xué)籍更改表Create table xuejiUpdate(Sno char(12), --學(xué)號updateType char(4), --變更類型updateDate DATETime, --變更日期yuanYin varchar(50), --變更原因SendOrYanZheng VARCHAR(50), --發(fā)給或繳納證件PRIMARY KEY(Sno,updateDate),foreign key (Sno) references StudentInfor(Sno))--4創(chuàng)建系統(tǒng)用戶Create table UserType(userID varchar(12), --用戶名userPassWord varchar(18), --賬戶實(shí)際操作人姓名name varchar(50), --密碼dengJi char(1), --權(quán)限等級shuoMing varchar(50), --權(quán)限說明primary key (userID) --主鍵)6.3視圖、觸發(fā)器、存儲過程設(shè)計 視圖:--用戶權(quán)限視圖Create view User_type asselect userID as 賬戶,userPassWord as 密碼 ,name as 姓名,dengji as 權(quán)限等級,shuoMing as 權(quán)限說明 from UserType應(yīng)用程序通過嵌入SQL語句(用戶模式:視圖語句),一定程度上對數(shù)據(jù)的安全性進(jìn)行了保護(hù),觸發(fā)器: --1當(dāng)學(xué)生入學(xué)成績成績小于460時候,學(xué)生的錄取類型為借讀生。 CREATE TRIGGER Student_fenshu ON StudentInfor --該觸發(fā)器建在學(xué)生入學(xué)表生 FOR INSERT --觸發(fā)器類型 插入記錄時候 as declare e1 cursor for select Sno,enrollmentScore,muqianZhuangtai from inserted --觸發(fā)器名稱 e1 declare @Sno char(12) declare @enrollmentScore smallint declare @sourceUpdate char(10) OPEN e1 fetch NEXT FROM e1 into @Sno,@enrollmentScore,@sourceUpdate WHILE @@FETCH_STATUS=0 -- 當(dāng)返回值為0時候繼續(xù)執(zhí)行Begin下語句,知道返回值為-1或者非0 BEGIN IF @enrollmentScore <=460 --入過入學(xué)分?jǐn)?shù)小于或者等于460update StudentInfor set sourceUpdate='借讀' --把當(dāng)前已經(jīng)輸入的入讀類型為借讀,即使之前是其他也會更改為借讀where @Sno=Sno fetch next from e1 into @Sno,@enrollmentScore,@sourceUpdate --條件為0時候繼續(xù)遍歷臨時表中的記錄,知道條件為非0end close e1 --遍歷游標(biāo) e1 DEALLOCATE e1 --釋放游標(biāo)--2學(xué)籍管理,當(dāng)學(xué)生畢業(yè)時候,在學(xué)籍變動表中,為學(xué)生發(fā)放畢業(yè)證 Create TRIGGER Student_biye ON xuejiUpdate FOR insert --觸發(fā)器類型 插入記錄時候 as declare e_biye cursor for select Sno,updateType,SendOrYanZheng from inserted declare @Sno varchar(36) declare @updateType char(4) declare @SendOrYanZheng VARCHAR(50) OPEN e_biye fetch NEXT FROM e_biye into @Sno,@updateType,@SendOrYanZheng WHILE @@FETCH_STATUS=0 BEGIN if @updateType='畢業(yè)' --如果學(xué)籍異動表中出現(xiàn)一個新的異動類型為畢業(yè)BEGIN update xuejiUpdate set SendOrYanZheng='發(fā)給畢業(yè)證' where @Sno=Sno --那么發(fā)給畢業(yè)證ENDfetch next from e_biye into @Sno,@updateType,@SendOrYanZheng end close e_biye DEALLOCATE e_biye --3當(dāng)學(xué)生狀態(tài)為畢業(yè)狀態(tài)時候,自動把所有畢業(yè)生的信息導(dǎo)入到一張畢業(yè)生表中去。 CREATE TRIGGER biye_tig ON StudentInfor FOR update as declare e_insertBiye cursor for select Sno,Sname,buBie,sourceUpdate from inserted declare @Sno char(12) declare @Sname varchar(36) declare @buBie char(4) declare @sourceUpdate char(10) OPEN e_insertBiye fetch NEXT FROM e_insertBiye into @Sno,@Sname,@buBie,@sourceUpdate WHILE @@FETCH_STATUS=0 BEGIN --當(dāng)我更改變動類型時候,而且滿足變動類型為畢業(yè),那么畢業(yè)生信息導(dǎo)入到畢業(yè)生到BiyeSheng表中 if update(sourceUpdate) and @sourceUpdate='畢業(yè)' insert into BiyeSheng values(@Sno,@Sname,@buBie) fetch next from e_insertBiye into @Sno,@Sname,@buBie,@sourceUpdate end close e_insertBiye DEALLOCATE e_insertBiye --4當(dāng)學(xué)生學(xué)籍狀態(tài)發(fā)生改變時候例如請假轉(zhuǎn)班或者進(jìn)行畢業(yè), --把學(xué)籍異動信息進(jìn)行存儲到學(xué)籍異動表中,每次變動都會添加一條記錄,主鍵是學(xué)號+日期。 Create TRIGGER Student_baingeng ON StudentInfor FOR update as declare e cursor for select Sno,muqianZhuangtai,sourceUpdate from inserted declare @Sno varchar(36) declare @muqianZhuangtai char(10) declare @sourceUpdate char(10) OPEN e fetch NEXT FROM e into @Sno,@muqianZhuangtai,@sourceUpdate while @@FETCH_STATUS=0 BEGIN if update(sourceUpdate)BEGIN insert into xuejiUpdate values(@Sno,@sourceUpdate,getDate(),@muqianZhuangtai,'無') ENDfetch next from e into @Sno,@muqianZhuangtai,@sourceUpdate end close e DEALLOCATE e --5當(dāng)學(xué)校錄取一名學(xué)生時候,為該生創(chuàng)建一個學(xué)籍管理系統(tǒng)的學(xué)生賬戶。 CREATE TRIGGER Student_Chufa ON StudentInfor FOR INSERT as declare e cursor for select Sno,Sname from inserted declare @Sno varchar(36) declare @Sname varchar(36) OPEN e fetch NEXT FROM e into @Sno,@Sname WHILE @@FETCH_STATUS=0 BEGIN --創(chuàng)建賬戶,的登錄賬戶為學(xué)號,姓名為學(xué)生姓名,權(quán)限代碼為4,默認(rèn)為學(xué)生insert into UserType values(@Sno,123456,@Sname,4,'學(xué)生')fetch next from e into @Sno,@Sname end close e DEALLOCATE e --6創(chuàng)建一個新班級時候,為該班班主任老師授予查詢該班學(xué)生信息的權(quán)利 CREATE TRIGGER Class_Table ON classTbale FOR INSERT as declare e cursor for select TeacherNo,TeacherName from inserted declare @TeacherNo varchar(12) declare @TeacherName varchar(50) OPEN e fetch NEXT FROM e into @TeacherNo,@TeacherName WHILE @@FETCH_STATUS=0 BEGIN insert into UserType values(@TeacherNo,123456,@TeacherName,2,'老師') fetch next from e into @TeacherNo,@TeacherName end close e DEALLOCATE e 存儲過程 創(chuàng)建存儲過程: --創(chuàng)建一個查詢系統(tǒng)用戶表存儲過程.Create procedure Select_UserTypeas beginselect userID,userPassWord,name,dengJi,shuoMing from UserTypeset nocount on;endGo 執(zhí)行存儲過程: USE [SDbase] GODECLARE @return_value intEXEC @return_value = [dbo].[Select_UserType]SELECT 'Return Value' = @return_value GO執(zhí)行結(jié)果:級聯(lián)更新與刪除: 當(dāng)我們要從數(shù)據(jù)庫中刪除一個學(xué)生的信息時候,要同時刪除4張表的信息(學(xué)生入學(xué)表信息,學(xué)生的家庭關(guān)系,學(xué)生個人情況,以及學(xué)生學(xué)籍變動情況表),按原則上講師需要對學(xué)生的訪問系統(tǒng)賬戶一通刪除的,但是本系統(tǒng)的學(xué)生用戶表(系統(tǒng)用戶表中包含學(xué)生老師與其他管理員信息)沒有與學(xué)生入學(xué)表進(jìn)行建立級聯(lián)刪除與更新,因?yàn)橛脩舯頉]有與學(xué)生入學(xué)表建立參照關(guān)系,這是一個重要的原因,其次原因是因?yàn)?#xff0c;表中還擁有老師與管理員的數(shù)據(jù),要想實(shí)現(xiàn)當(dāng)刪除學(xué)生的時候同時也刪除學(xué)生的賬戶,可以把學(xué)生賬戶與系統(tǒng)賬戶所分開,或者通過應(yīng)用程序段建立刪除,本系統(tǒng)是在建立完物理邏輯結(jié)構(gòu)后,通過修改列級約束進(jìn)行添加的。--對參照StudentInfor學(xué)生入學(xué)表的表建立級聯(lián)更新與刪除alter table StudentGerenInfor add constraint a_Sno foreign key(Sno) references StudentInfor(Sno) on delete cascadealter table SGuanxi add constraint b_Sno foreign key(Sno) references StudentInfor(Sno) on delete cascadealter table xuejiUpdate add constraint c_Sno foreign key(Sno) references StudentInfor(Sno) on delete cascade數(shù)據(jù)載入: 數(shù)據(jù)載入遵循,被參照表先進(jìn)行插入的原則,數(shù)據(jù)刪除是參照表先刪除原則,兩者相反。 輔助表的信息先插入,因?yàn)橹鞅淼男畔⒍际桥c輔助表的關(guān)系是參照表與被參照表的關(guān)系, 所以輔助表先插入 輔助表數(shù)據(jù)插入: --1插入學(xué)校信息(學(xué)校名稱、所在省份、所屬教育局、學(xué)校地址) insert into SchoolInfor values('黃石理工附中','湖北省','黃石市教育局','黃石市下陸區(qū)團(tuán)城山街道') insert into SchoolInfor values('黃石二中','湖北省','黃石市教育局','黃石市下陸區(qū)揚(yáng)州路')--1插入部別表insert into BubieTable values(1 ,'初中')insert into BubieTable values(2 ,'高中')insert into BubieTable values(3,'小學(xué)')--1插入年級表insert into NianjiTable values(1 ,'一年級')insert into NianjiTable values(2 ,'二年級')insert into NianjiTable values(3 ,'三年級')insert into NianjiTable values(4 ,'四年級')insert into NianjiTable values(5 ,'五年級') insert into NianjiTable values(6 ,'六年級') --1插入學(xué)校信息(學(xué)校名稱、所在省份、所屬教育局、學(xué)校地址) insert into SchoolInfor values('黃石理工附中','湖北省','黃石市教育局','黃石市下陸區(qū)團(tuán)城山街道') insert into SchoolInfor values('黃石二中','湖北省','黃石市教育局','黃石市下陸區(qū)揚(yáng)州路') 主表信息插入:--插入班級表(部別、年級、班級編號、老師編號、老師姓名) insert into classTbale values('高中','一年級','一班','10088','揚(yáng)眉老師'); insert into classTbale values('高中','一年級','二班','10089','鎮(zhèn)元子老師'); insert into classTbale values('高中','二年級','一班','20099','孫悟空老師'); insert into classTbale values('初中','一年級','一班','11088','菩提祖師'); insert into classTbale values('初中','二年級','一班','12088','如來佛祖'); --插入學(xué)生信息(入學(xué)年份(4位)、學(xué)號(12位)、入學(xué)類型、年級、班級、姓名、性別(男/女)、民族、籍貫、出生日期、畢業(yè)學(xué)校、總分、來源、變動原因) --學(xué)校錄取學(xué)生時候,由招生辦老師提供的名單,當(dāng)錄取學(xué)生的時候, --同時為該學(xué)生提供一個系統(tǒng)賬戶,賬戶名為學(xué)生的學(xué)號,密碼默認(rèn)為123456,賬戶類型為學(xué)生賬戶 insert into StudentInfor values('2020','202020491111','初中','一年級','1','余欣','女','漢族','襄陽','1999-01-28','湖北理工','480','錄取','無'); insert into StudentInfor values('2016','201616491110','初中','二年級','2','張一','男','漢族','恩施','1997-11-06','湖北理工','490','錄取','無'); insert into StudentInfor values('2017','201717491101','初中','三年級','3','張二','女','漢族','十堰','1998-01-01','湖北理工','510','休學(xué)','無'); insert into StudentInfor values('2020','202020491155','高中','一年級','1','張四','女','漢族','宣恩','2000-01-11','湖北理工','489','休學(xué)','無'); insert into StudentInfor values('2017','201717491170','高中','二年級','2','張五','女','漢族','洛陽','1997-12-25','湖北理工','490','錄取','無'); insert into StudentInfor values('2018','201616491180','高中','三年級','3','張六','女','漢族','商丘','1998-03-03','湖北理工','470','錄取','無'); 個人信息插入: --錄入學(xué)生的個人情況insert into StudentGerenInfor values('202020491111','團(tuán)員','健康','5','襄陽','10010100861');insert into StudentGerenInfor values('201616491110','團(tuán)員','健康','3','恩施','10086100861');insert into StudentGerenInfor values('201717491101','群眾','健康','4','十堰','10011100861');insert into StudentGerenInfor values('202020491155','黨員','健康','7','宣恩','10086100101');insert into StudentGerenInfor values('201717491170','團(tuán)員','健康','8','洛陽','10010100101');insert into StudentGerenInfor values('201616491180','團(tuán)員','健康','4','商丘','10011100811');

家庭信息插入:
–錄入學(xué)生的家庭信息

insert into SGuanxi values('202020491111','陳思','母親','43','在家');insert into SGuanxi values('202020491111','陳十','父親','43','在家');insert into SGuanxi values('201616491110','陳一','母親','40','在家');insert into SGuanxi values('201616491110','陳二','母親','40','在家');insert into SGuanxi values('201717491101','陳三','母親','43','在家');insert into SGuanxi values('201717491101','陳五','母親','40','在家');insert into SGuanxi values('202020491155','王一','母親','40','在家');insert into SGuanxi values('202020491155','王二','父親','40','在家');insert into SGuanxi values('202020491155','王三','姐姐','25','在家');insert into SGuanxi values('201717491170','陳六','母親','40','在家');insert into SGuanxi values('201717491170','陳七','父親','42','在家');insert into SGuanxi values('201616491180','陳八','母親','43','在家');insert into SGuanxi values('201616491180','陳九','母親','43','在家');

6.4 數(shù)據(jù)庫的運(yùn)行
本系統(tǒng)的物理邏輯設(shè)計(表設(shè)計):分為主表和輔助表。
其中輔助表中的信息分為系統(tǒng)的基本信息,和導(dǎo)入表.
導(dǎo)入表:
(例如本系統(tǒng)中的畢業(yè)生表,可以通過把畢業(yè)生信息直接導(dǎo)入EXEL文件,顯示或者建立視圖等等,另畢業(yè)生表的信息市通過觸發(fā)器來實(shí)現(xiàn)導(dǎo)入的,當(dāng)學(xué)生的狀態(tài)為畢業(yè)時候會自動導(dǎo)入。);
基本信息:例如一個學(xué)校辦學(xué)類型,例如小學(xué)初中高中,或者中職等,該功能可以通過系統(tǒng)設(shè)計之初,就已經(jīng)定死,本系統(tǒng)是定死的,二次開發(fā)時候,我們可以通過在應(yīng)用程序端對這些輔助表的信息進(jìn)行一些操作來增加學(xué)校的學(xué)習(xí)類型更改,例如:
學(xué)校信息表:
學(xué)校信息表并沒有與學(xué)生建立關(guān)聯(lián)關(guān)系,一個重要原因是是學(xué)校信息表主要是
為了系統(tǒng)的使用者所查看,是為了方便二次開發(fā)所建立,或者當(dāng)系統(tǒng)(成熟)連入互聯(lián)網(wǎng)后,形成上級教育機(jī)構(gòu)(教育局)與下級(學(xué)校)形成父子關(guān)系時候,方便上級部門查看該學(xué)校的信息,等等,但是前提是訪問者需要擁有一定的權(quán)限,這個時候系統(tǒng)要考慮要不要把上級教育機(jī)構(gòu)和下級教育機(jī)構(gòu)的數(shù)據(jù)(例如用戶表數(shù)據(jù))進(jìn)行分離,學(xué)校數(shù)據(jù)在一定情況下是不用分離

的,但是考慮到未來某地大量使用該系統(tǒng)肯定存在一個教育機(jī)構(gòu)管理多個下屬學(xué)校,數(shù)據(jù)量大的時候。

部別表:
學(xué)校的辦學(xué)類型,系統(tǒng)建立之初已經(jīng)定死,或者二次開發(fā)對該表操作。

年級表:
其中年級表,建立了存儲過程保證了當(dāng)學(xué)生入學(xué)類型是初中和高中時候,能選擇例如高中四年級或者初中四年級,而只能是小學(xué)四年級、五年級等等。

畢業(yè)生表:
該表是當(dāng)學(xué)生入學(xué)表中,sourceUpdate,學(xué)生狀態(tài)更新為畢業(yè)生時候,自動觸發(fā)導(dǎo)入的。
當(dāng)學(xué)生入學(xué)表中sourceUpdate發(fā)生改變?yōu)楫厴I(yè)生時候:

向畢業(yè)生表中導(dǎo)入數(shù)據(jù)。

以下是主表運(yùn)行

班級表:
班級建立后為班級設(shè)立班主任同時,為該班主任通過觸發(fā)器建立一個權(quán)限賬戶,用來管理該班的學(xué)生。

系統(tǒng)用戶表:
該表中的用戶類型分為學(xué)生和老師以及管理員或者其他(可能是年級主任或者以他工作人員),其中學(xué)生與老師的賬戶是當(dāng)班級建立和學(xué)生錄取時候通過觸發(fā)器,自動為老師分配一個賬戶,學(xué)生的賬戶在本系統(tǒng)中只擁有查詢本人信息的權(quán)利,管理員賬戶以及其他權(quán)限賬戶通過管理員進(jìn)行添加或者設(shè)置。

學(xué)生入學(xué)信息表:
該表是其他3張表Sno的外鍵,是被參照表,通過與其他三張表(學(xué)生個人情況,家庭情況情況表,學(xué)籍變動情況表)建立級聯(lián)更新與刪除,來保證數(shù)據(jù)的完整性。

學(xué)生個人情況表:
通過Sno與學(xué)生入學(xué)表建立主外鍵關(guān)系,同時建立級聯(lián)更新與級聯(lián)刪除,級聯(lián)更新是可能存在更新學(xué)號的情況下,級聯(lián)刪除是為了在一定的情況下刪除該生信息。

學(xué)生家庭信息表:
通過Sno與學(xué)生入學(xué)表建立主外鍵關(guān)系,同時建立級聯(lián)更新與級聯(lián)刪除,級聯(lián)更新是可能存在更新學(xué)號的情況下,級聯(lián)刪除是為了在一定的情況下刪除該生信息。

學(xué)生學(xué)籍變動表:
學(xué)籍變動表不需要人為進(jìn)行錄入,學(xué)籍變動表是記錄學(xué)生學(xué)籍在校期間,學(xué)籍變動情況,通過更改學(xué)生入學(xué)表的sourceupdate(來源)觸發(fā)器實(shí)現(xiàn)的,信息錄入,為了保證數(shù)據(jù)的完整性,對Sno和日期建立主鍵,其中Sno參照入學(xué)表的Sno保證了跟蹤每一名學(xué)生的在變動情況。另外,當(dāng)學(xué)生變動類型為畢業(yè)時候,會發(fā)放一張畢業(yè)證。

第七章 應(yīng)用系統(tǒng)開發(fā)

DBMS中系統(tǒng)用戶表中數(shù)據(jù)如下:

中學(xué)學(xué)籍管理系統(tǒng)系統(tǒng)登錄窗口: 輸入項(xiàng):賬戶、密碼 輸出項(xiàng):通過select 查詢語句把該賬戶信息傳遞到后臺的應(yīng)用程序中,我們這個時候可以 判斷該賬戶的實(shí)際用戶人以及權(quán)限,當(dāng)進(jìn)入主程序界面后把賬戶人姓名顯示,且根據(jù)不同賬戶等級顯示不同的界面。 應(yīng)用程序代碼如下: //當(dāng)點(diǎn)擊登錄按鈕時候執(zhí)行下面語句 if (e.getSource()==an1) { //接收外部實(shí)體用戶輸入的賬戶信息String UserID=center.getText(); //接受外部實(shí)體用戶輸入的密碼 String UserPassWord=mima.getText(); try { //調(diào)用類GetConnection里面的getConn()方法鏈接數(shù)據(jù)庫conn=GetConnection.getConn();stat=conn.createStatement();把查詢到的結(jié)果集放入到rs中rs= stat.executeQuery("SELECT * FROM User_type where 賬戶='"+UserID+"'");//定義一個循環(huán),當(dāng)循環(huán)的值為非-1時候繼續(xù)執(zhí)行,等-1停止循環(huán)遍歷while(rs.next()) { //判斷當(dāng)前rs所取到的一條結(jié)果集中第二個字段(密碼)是否等于根據(jù)我所輸入的賬戶所查詢得出的值 if (rs.getString(2).equals(UserPassWord)) { //如果相等,那么口令正確,讓其進(jìn)行主界面(zhuJieMian) ZhuJieMian zhuJieMian=new ZhuJieMian();System.out.println("登錄成功");String zhanghu=rs.getString(1);String yonghuname1=rs.getString(3);String quanxiandaima=rs.getString(4); System.out.println("賬戶號:"+zhanghu+ "用戶姓名:"+yonghuname1+"權(quán)限等級是"+quanxiandaima);} } } catch (SQLException e1) {e1.printStackTrace();}

登錄后系統(tǒng)主界面:

當(dāng)進(jìn)入到權(quán)限管理模塊:
通過系統(tǒng)管理進(jìn)入到權(quán)限管理模塊:
可以點(diǎn)擊表格上的記錄,進(jìn)行修改與刪除操作,點(diǎn)擊表格相應(yīng)的行自動把學(xué)號作為參數(shù)
進(jìn)行先關(guān)操作。
其中按班級查詢是查詢該班的管理者信息。
權(quán)限管理信息修改模塊

權(quán)限用戶添加模塊:
默認(rèn)密碼是123456,該模塊不顯示密碼。

總 結(jié)
中學(xué)學(xué)籍管理系統(tǒng)課程設(shè)計,經(jīng)過數(shù)周的設(shè)計終于完結(jié)了,從最開始的小組組建到系統(tǒng)的需求分析、概念設(shè)計以及到最后數(shù)據(jù)庫的實(shí)施,一個完整的流程下來,給了我很多的收獲,其中充滿了酸甜苦辣可以說是非常艱辛的,在最開始女生宿舍邀請我當(dāng)組上其實(shí)我是存在一定畏難心里的,其實(shí)大家都懂的,但是當(dāng)時因?yàn)闆]有考慮到項(xiàng)目到后面如此之難(主要是老師要求比較高),或者說比較繁雜的,但是內(nèi)心上也是想通過擔(dān)任組長一職鍛煉自己,更深一步學(xué)習(xí)管理經(jīng)驗(yàn)以及其他方面的提升,,畢竟曾經(jīng)是也是一名戰(zhàn)士,見紅旗就要搶,見第一就要爭取,不能當(dāng)咸魚的思想一直在激勵著我,最后還是擔(dān)任了小組組長職務(wù),如果再給我一次機(jī)會,我感覺我是沒有勇氣去再干的,為什么呢,例如一個需求分析,反反復(fù)復(fù)改了很多次,組長下發(fā)的任務(wù)與組員上交的任務(wù)結(jié)果,心里上存在很大的差距;在需求分析階段由于沒有學(xué)習(xí)過軟件工程,走了很多彎路,另外一個就是當(dāng)時在需求分析階段,總想著自己趕緊把系統(tǒng)分析圖畫完,在畫完的基礎(chǔ)上,把畫完的結(jié)果分發(fā)下去,但是最終問題出現(xiàn)在我這里,那么結(jié)果和后序可想而知,經(jīng)過這次需求分析后還是明白了這個團(tuán)結(jié)協(xié)作的重要性,以前也明白團(tuán)結(jié)協(xié)作的重要性,但是感覺系統(tǒng)功能小,任務(wù)小,不是很重視,但是經(jīng)過余老師潑冷水后我,認(rèn)真思考了一番后,感覺是需要改變的,讓組員參與進(jìn)來,而且是全程的參與,每個人不管會不會都要進(jìn)行自己的學(xué)習(xí)和交流,即使最終課程設(shè)計結(jié)果不好,我感覺也是對的起自己的職責(zé)與大家的信任,帶領(lǐng)了大家一起學(xué)習(xí)了課程設(shè)計。
其實(shí)本次對我個人我感到最大的進(jìn)步就是從思想上,改變了我對這個團(tuán)隊(duì)協(xié)作能力與組織能力的理解,另外就是從經(jīng)驗(yàn)上進(jìn)一步加深我對這個軟件工程與實(shí)際項(xiàng)目設(shè)計與完成階段有了更深一步的認(rèn)識。
最后就是非常感謝本學(xué)習(xí)期帶我們的數(shù)據(jù)庫的余鋼老師,不管是從授課還是習(xí)題講解
與課程設(shè)計或者一些其他的實(shí)際項(xiàng)目開發(fā)經(jīng)驗(yàn)的講解都給了我很大的啟發(fā),讓我對軟件開發(fā)有了更深的理解,希望以后還能繼續(xù)在余老師的帶領(lǐng)下繼續(xù)學(xué)習(xí)。

參考文獻(xiàn)
例:
[1] 楊鑫華,趙慧敏等.數(shù)據(jù)庫原理與DB2應(yīng)用教程[M].北京:清華大學(xué)出版社,2007.8,10-12
[2] 王珊,陳紅.數(shù)據(jù)庫系統(tǒng)原理教程[M].北京:清華大學(xué)出版社,1998.7,125-130
[3] (美)希伯爾沙茨.數(shù)據(jù)庫系統(tǒng)概念[M].北京:機(jī)械工業(yè)出版社,2008.10,305-306
[4] (日)MICK/著 吳炎昌/譯 SQL進(jìn)階教程 北京:人民郵電出版社,2017.11,01-2016-4463號

總結(jié)

以上是生活随笔為你收集整理的中学学籍管理系统数据库课程设计,限于篇幅只能采取截图方式上传,原文件在我资源中有所展示。的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。