5.1 RDBMS的选择
中学生管理系统课程设计小组选择的是Microsoft的SQL Server的Windows.NT版本,主要是考虑到:Microsoft SQL Server 是真正的客户机/服务器体系结构、图形化的用户界面,使系统管理更加直观简单、以及良好的对数据的导入导出能力。
5.2 数据库的创建
中学学籍管理系统数据库名称:SDbase
主文件和日志文件存放在D盘下SQLSDbase文件夹下:
主文件组名称:SDbase_Data
主文件:SDbase_Data.mdf
日志文件组名称:SDbase_Log
日志文件:SDbase_Log.ldf
考虑到中学学校每年在校生及教职工500010000人次,学校存在有办学类型小学、中学、高中,每个人的数据量1020条记录,学校大概会为学生保留信息35年的情况下,每个人数据量大概15(条记录)*10(字段)*4(汉字)*2(字节)约等于1024个字节(1/1024MB)。综上所述数据按最大增长量每年递增约10MB,考虑该系统使用周期约1020年,最大数据容量设为200MB。
SQL编程语句如下:
use master
–创建数据库
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
6.1用户的建立及权限分配
SQL编程授权部分:
–创建一个DBMS访问账户
create login zhongxuexiaozu with password=‘123456’
–进入SDbase数据库
use SDbase
–创建数据库用户
–因为中学学籍管理系统只需要SDbase数据库,所以只设定访问SDbase,
create user zhongxuexiaozu for login zhongxuexiaozu with default_schema=dbo
–为zhongxuexiaozu账户授予查询、删除、更改以及插入部分表数据的权限。
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
–因为辅助表中除了SchoolInfor表与毕业生表给与zhongxuexiaozu账户授予一定的访问权限外,
–没有对其他例如年级、部别等表进行授予增删改查的权利,因为这些表是定死的,当二次开发时若需要,再次授权即可,应用程序连接DBMS时候是无法对SDbase数据库以外的数据库进行操作,也无法SDbase中没有授权的表进行操作,在一定程度上对数据进行了保护。
6.2表的建立与数据的载入
注释上的序号是创建表的顺序,因为主外键关系;其中序号为1的表为辅助表(建库的时候里面数据是定死的,后期进行二次开发时候可以再次进行开发使用。)
use SDbase
–1创建学校信息表
Create table SchoolInfor
(ScName VARCHAR(20) , --学校名称
Sprovince VARCHAR(20) not null,–学校所在省份
SbureauEd VARCHAR(20) not null,–学校所属教育局
Saddress varchar(50) not null,–学校地址
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毕业生信息表
Create table BiyeSheng(
Sno char(12),
buBie char(10),
Sname varchar(36),
primary key(Sno)
)
–2班级表
Create table classTbale --班级表
(buBie char(4) , --类别初中、高中、小学等等
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 NianjiTabl