数据库课程设计教学管理系统前言 (4)前言 (4)相关技术介绍 (4)第一章需求分析 (4)1.1 任务概述 (5)1.1.1 目标 (5)1.1.2 运行环境 (5)1.2 数据流图 (5)1.3 数据字典 (6)1.4 系统流程分析 (6)第二章概念结构设计 (7)第三章逻辑结构设计 (8)3.1 逻辑结构设计 (8)3.2 规范化处理 (10)第四章数据库物理设计 (11)4.1 索引表 (10)4.2 系统配置 (11)4.3 视图 (11)第五章数据库的实施 (11)5.1 创建数据库及数据库对象 (11)5.2 完整性约束创建 (13)5.3 数据库的维护及备份 (14)5.3.1 维护 (14)5.3.2 检测并改善数据库性能 (14)5.3.3 备份 (14)第六章前台用户界面 (14)第七章结论与体会 (17)参考文献0、前言0.1引言数据库作为存取数据并对数据进行操作的工具在系统中所起到的作用至关重要。
数据库设计是指对于一个给定的应用环境,构造优化的数据库逻辑模式和物理模式结果,并据此建立数据库及其应用系统,使之能有效地存储和管理数据,满足应用需求,包括信息管理要求和数据操作。
信息管理要求是指在数据库中应该存储和管理哪些数据对象;数据操作要求是指对数据对象进行哪些操作,如查询、增、删、改、统计等操作。
数据库设计地目标是维用户和各种应用系统提供的一个信息基础设施和高效率地运行环境。
高效率的运行环境包括:数据库数据的存取速率、数据库存储空间的利用率、数据库系统运行管理的效率等都是高的。
为了使数据库的应用系统开发设计合理、规范、有序、正确、高效进行,现在广泛采用的是工程化6阶段开发设计过程与方法,它们是需求分析阶段、概念结构设计阶段、逻辑结构设计阶段、物理结构设计阶段、数据库实施、数据库系统运行与维护阶段。
我按照以上几点开发了学生选课管理系统数据库。
0.2相关技术介绍0.2.1MYSQL概述MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于Oracle 旗下产品。
MySQL 最流行的关系型数据库管理系统,在WEB 应用方面MySQL 是最好的RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的SQL 语言是用于访问数据库的最常用标准化语言。
MySQL 软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL 作为网站数据库。
0.2.2Visual Studio概述Microsoft Visual Studio(简称VS)是美国微软公司的开发工具包系列产品。
VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML 工具、代码管控工具、集成开发环境(IDE)等等。
所写的目标代码适用于微软支持的所有平台,包括Microsoft Windows、Windows Mobile、Windows CE、.NET Framework、.NET Compact Framework和Microsoft Silverlight 及Windows Phone。
1、需求分析1.1任务概述1.1.1目标建立一个教学管理系统,系统通过数据库存储学校学生、教职工、系、课程以及成绩等资料,系统管理员可通过用户名与密码进入数据库,并根据给予的权限对数据库的数据进行查询或修改。
删除的数据要留底。
对数据库进行操作级审计。
1.1.2运行环境(1)、硬件配置安装本软件之前,需要确保计算机具有如下配置,这也是最低硬件要求:使用1G内存不小于40MB的可用硬盘空间(2)、软件配置安装本软件之前,需要确保计算机已安装:MicorsoftWindows XP及以上的操作系统.NET Framework 3.5以上1.2数据流图图1 顶级数据流图管理员信息验证通过系信息图2、一级数据流图1.3 数据字典1.4系统流程分析前面的分析中我们确定了系统各个功能模块,属于静态建模的范围。
在系统运行时刻的动态模型应该由系统流程决定。
从上面的功能描述中,我们可以把各个系统分为5个模块:用户验证,师生信息管理,课程信息管理,成绩管理和信息查询。
在每个模块图3、程序流程图通过对整个管理系统的功能分析,可以定义出系统的功能模块图,从中再细分各模块,可以得到系统概要模块如下:图4、功能模块图2 数据库概念结构设计采用E-R 图的分析方法,首先对局部视图进行分析设计,然后再实现视图集成。
在视图集成时,注意要尽量消除冲突和冗余。
在这里直接给出视图集成后的E-R 图,如图5E-R图5、实体E-R图3 数据库逻辑结构设计根据E-R图,我们可以创建以下数据表。
●系统管理员表系统管理员(admin)存储了登录本系统的用户的登录ID和密码,权限以及盐值●学生信息表学生信息表(student)存放了学校的所有学生的基本信息,所有有关学生的操作都与这个表有关。
通过时间戳自动生成入学时间。
信息从表中删除时加入历史表留底。
表2、学生信息表●教师信息表教师信息表(teacher)存放了学校的所有教师的基本信息,所有有关教师的操作都与这个表有关。
通过时间戳自动生成入职时间。
信息从表中删除时加入历史表留底。
表3、教师信息表●系信息表系信息表(department)存放了学校的所有系的基本信息,并且与学生表以及教师表有紧密联系●课程信息表课程信息表(course)记录了学校中所有课程的信息。
表5、课程信息表●成绩信息表成绩表(sc)记录了某个学生在某们课程得到的成绩。
表6、成绩表●历史表历史表(history)记录了离校学生或离职教师的信息,通过触发器自动生成,尽量避免手动添加。
作为留底超过一定数量应给予整理。
审计表审计表(Accesslog)记录了除管理员外的数据库用户对数据库的使用情况,处于安全性考虑,用独立的数据库进行保存,并且只赋予管理员权限进行查看。
只可通过系统进行数据添加,严禁手工操作数据!表8、审计表3.2规范化处理经过对初始关系模式的规范化处理以下关系模式中不存在部分函数依赖和传递函数依赖,已经达到3NF。
(加粗代表主码,斜体外码)Admin(ADMIN_USER,ADMIN_PSWD,ADMIN_PERMIT)Student(Sno,Sname,Ssex,S_Dno,Sindate)Teacher(Tno,Tname,Tsex,T_Dno,Tindate)Department(Dno,Dname,Dsummary)Course(Cno,Cname,C_Tno)SC(Sno,Cno,Grade)4物理结构设计数据库在物理上的存储结构与存储方法称为数据库的物理结构,它依赖于选定的数据库管理系统。
为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构的过程,就是物理结构设计。
数据库的物理结构设计通常分为两步:(1)确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构;(2)对物理结构进行评价,评价的中的是时间和空间效率。
4.1 创建数据库及建立索引以及完整性约束使用工具Navicat for SQL ,创建了school数据库及Accesslog数据库并生成相关数据库模型,图如下建立各数据库间的索引关系。
4.2系统配置在mysql配置文件my.ini中的mysqld设置项中写入如下配置:init-connect='insert into accesslog.accesslog values(connection_id(),now(),user(),current_user());' 当非超级管理员连接数据库时自动向审计表中写入审计记录。
创建受限用户a,只允许其对school数据库中student,teacher,course,sc,department 表进行增删改查操作,拒绝其他权限。
4.3 视图用SQL管理工具建立常用的一个视图,即学生_成绩视图。
菜单栏中单击工具→向导→数据库→创建视图向导,选择你所要建的试图的对象,选择列名,按照提示,最后单击完成即可。
使用SQL语句建立视图的命令如下:create view student_scasselect sno,sname,o,cname,gradefrom student join sc on student.sno= sc.snojoin course on o=o5 数据库实施5.1创建数据库及数据库对象*********************************************************CREATE DATABASE school;USE school;CREATE TABLE Admin(ADMIN_USER VARCHAR(50) NOT NULL,ADMIN_PSWD VARCHAR(50) NOT NULL,ADMIN_PERMIT VARCHAR(50) NOT NULL,Salt VARCHAR(10) NOT NULL,PRIMARY KEY (ADMIN_USER));CREATE TABLE Student(Sno VARCHAR(50) NOT NULL, Sname VARCHAR(50) NOT NULL, Ssex VARCHAR (1) NOT NULL, S_Dno VARCHAR(50) NOT NULL, Sindate DATETIME NOT NULL, PRIMARY KEY (Sno));CREATE TABLE Teacher(Tno VARCHAR (50) NOT NULL, Tname VARCHAR(50) NOT NULL, Tsex VARCHAR (1) NOT NULL,T_Dno VARCHAR(50) NOT NULL, Tindate DATETIME NOT NULL, PRIMARY KEY (Tno));CREATE TABLE Department( Dno VARCHAR(50) NOT NULL, Dname VARCHAR(50) NOT NULL, Dsummary TEXT,PRIMARY KEY (Dno)CREATE TABLE Course(Cno VARCHAR(50) NOT NULL,Cname VARCHAR(50) NOT NULL,C_Tno VARCHAR(50) NOT NULL, PRIMARY KEY (Cno));CREATE TABLE SC(Sno VARCHAR(50) NOT NULL,Cno VARCHAR(50) NOT NULL,Grade INT,PRIMARY KEY (Sno,Cno));CREATE TABLE HISTORY(HNO VARCHAR(50) NOT NULL,HNAME VARCHAR(50) NOT NULL,HSEX VARCHAR(50) NOT NULL, HDEPARTMENT VARCHAR(50) NOT NULL, HINDATE DATETIME NOT NULL, HOUTDATE DATETIME NOT NULL, PRIMARY KEY (HNO)CREATE DATABASE Accesslog;Use Accesslong;CREATE TABLE Accesslong (ID INT,TIME TIMESTAMP,LOCALNAME VARCHAR(50),MATCHNAME VARCHAR(50),PRIMARY KEY (ID);*********************************************************5.2完整性约束*********************************************************use school;alter table student add constraint FK_ID0 foreign key(S_Dno) REFERENCES department(Dno);alter table teacher add constraint FK_ID1 foreign key(T_Dno) REFERENCES department(Dno);alter table course add constraint FK_ID2 foreign key(C_Tno) REFERENCES teacher(Tno); alter table sc add constraint FK_ID3 foreign key(Sno) REFERENCES student(Sno);alter table sc add constraint FK_ID4 foreign key(Cno) REFERENCES course(Cno);****************************************************************************************************************************************************** CREATE DEFINER=`root`@`localhost` TRIGGER `indate` BEFORE INSERT ON `student`FOR EACH ROW set new.sindate = current_date;CREATE DEFINER=`root`@`localhost` TRIGGER `olddata` BEFORE DELETE ON `student`FOR EACH ROW begininsert into history(hno,hname,hsex,hindate,houtdate) values(old.sno,old.sname,old.ssex,old.sindate,current_date);update history h,department p set h.hdepartment= p.dname where p.dno = old.s_dno; end;*********************************************************5.3数据库的维护在数据库运行阶段,对数据库经常性的维护工作主要是有DBA完成,它包括:1.数据库的转储和恢复2.数据库的安全性和完整性控制3.数据库性能的监督、分析和改造4.数据库的重组织与重构造5.3.1 维护数据库既是共享的资源,又要进行适当的保密。