如何用SQL建立一个学生信息管理系统数据库

如何用SQL建立一个学生信息管理系统数据库,第1张

首先在SQL中利用企业管理器或向导建立一个数据库,命名为学生管理系统,启动SQL

Sever服务,运行企业管理器,单击要创建数据库的服务器左边的加号图标,展开树形目录,在“数据库”节点上右击鼠标,在d出的快捷菜单中选则“新建数据库”命令,然后按照提示一步步建立数据库,不再详细叙述。假设学生管理系统下有三个表,分别为学生表、课程表、修课表,表的结构分别如下:学生表(student)

(学号(sno)

普通编码定长字符类型,长度7,主码,姓名(sname)

普通编码定长字符类型,长度8,非空,性别(ssex)

统一编码定长字符类型,长度1,年龄(sage)

微整型,所在系(sdept)

统一编码可变长字符类型,长度20)课程表(course)

(课程号(cno)

普通编码定长字符类型,长度6,主码,课程名(cname)

统一编码定长字符类型,长度10,非空,学分(credit)

小整型,学期(semester)

小整型)修课表(sc)(学号(sno)

普通编码定长字符类型,长度7,主码,外码课程号(cno)

普通编码定长字符类型,长度6,主码,外码成绩(grade)

小整型,修课类别(type)普通编码定长字符类型,长度4)则创建表的语句分别为:create

table

Student(Sno

char(7)

primary

key,Sname

char(8)

not

null,Ssex

nchar(1),Sage

tinyint,Sdept

nvarchar(20))create

table

Course(Cno

char(6)

primary

key,Cname

nchar(10)

not

null,Credit

smallint,Semester

smallint)create

table

SC(Sno

char(7),Cno

char(6),Grade

smallint,Type

char(4),primary

key(Sno,Cno),Foreign

key(Sno)

References

Student

(Sno),Foreign

key(Cno)

References

Course

(Cno))各表的结构大体如此,如有变化可自行修改。

以上数据库和表就基本建立好了,然后就可以通过数据导入或SQL语句等向数据库中添加学生的各项具体数据了。

SQL语言,是结构化查询语言(Structured

Query

Language)的简称。SQL语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。

1. MVC 设计模式设计模式概述

1.1 MVC 设计模式

MVC 设计模式是一种著名的软件开发设计模式,它是模型、视图、控制器( Mode1.View.Controller )缩写.模型封装了用户数据和处理数据的业务逻辑视图提供了用户界面,将用户输入数据传递给控制器或将模型数据显示给用户控制器连接了模型和视图,判断请求交给哪个模型,调用视图显示模型处理用户请求结果.

MVC 设计模式将应用程序进行了分层,视图和模型通过控制器连接,从而减少了用户界面和业务逻辑之间的耦合,使程序设计更加清晰、灵活,也提高了软件的可扩展性、可维护性.

1.2 Struts 框架

Struts 是基于的MVC模式应用框架,遵守了 J2EE 的Servlet、JSP 等技术规范,并且根据J2EE的特点做了相应的变化和扩展,是J2EE 体系架构的一种轻量级实现.

在Struts 框架中,控制器由 ActionServlet 和Action 类以及 Struts.config.xml 配置文件实现.ActionServlet 是Struts 框架的核心控制组件, 所有的用户请求都被映射到 ActionServlet, 由ActionServlet 根据配置文件中的定义将控制转移到指定的 Action 类.Action 类是用户请求与业务逻辑之间的桥梁,它执行一个 execute()方法并返回一个ActionForward对象,当ActionServlet 接收到该对象后,根据 Struts config.xml 中的配置信息将请求转发.Struts 框架中的视图主要由 JSP 页面组成.ActionForm 是Struts 在视图层的一个核心组件,它是专门用来在视图层和控制层之间传递表单数据的 DTO(Dam Transfer Object,数据传输对象),它还包括了用于数据验证的 validate()方法和用于数据复位的 reset()方法.在Struts 应用程序中,开发人员可以选择 JavaBean、Hibernate、EJB 等组件来实现 Struts 框架中的模型.

2.Hibernate 持久化技术

Hibernate 是一个基于 Java 的开放源代码的 O/R Mapping (对象关系映射框架),它通过其强大的 O/R 映射功能 JAVA 对象同存于关系数据库中的数据进行映射,并对 JDBC 进行了轻量级的对象封装,可以使JAVA程序员方便地使用对象编程思维来 *** 纵数据库,它不仅提供 ORM 映射服务,还提供数据查询和数据缓存的方法,可以提高查询和处理数据的效率.它是一种提供面向对象的数据库服务中间件.

3.基于 Struts 和Hibernate 的考勤管理系统的设计

随着教育部对在校大学生出勤的相关规定出台,各大专院校加大了对学生考勤的管理力度,但大部份都采用手工处理的方法,工作量大且效率低.本系统能够实现网上对学生考勤信息进行添加、删除、修改、查询和统计功能,管理人员能及时了解学生出勤情况和某课班级某课程的出勤情况.在开发的过程中,使用 PowerDesigner 作为 CASE 工具,采用对 Hibernate 和Struts 提供良好支持的 Myeclipse 6.0 作为系统的开发环境,数据库采用 MYSQL5.0,WEB 服务器采用 jakarta Tomcm6.0 并安装了 JDK6.0.

3.1数据库层的设计

Power Designer 是Sybase 公司的 CASE 工具集,使用它可以方便地对管理信息系统进行分析设计.DataArchitect 模块是Power designer 的核心工具,它采用二级数据建模方式,即概念级和物理级.在概念级,概念数据模型 (CDM) 代表业务信息需求,不考虑在数据库上的物理实现,通过它可以绘制系统的实体联系图(E.R图),即系统的静态特征在物理级,物理数据模型 (PDM) 指定了物理实现的目标RDBMS的特征等细节.它可以生成数据库脚本,通过选择 ODBC 方式则可以直接连接到数据库,从而直接产生数据库表以及其他数据库对象.它与其它设计软件相配合使用可以缩短开发时间和使系统设计更优化.

在本系统的设计过程中,我们利用 Power Designer 来完成系统数据库概念设计和 MYSQL 数据库表的工作.首先,在PowerDesigner 中设计系统的概念层次的数据模型,通过它的CDM 功能创建实体关系图来描述系统的数据组织结构.通过它的检查模型功能,校验概念数据模型中实体、实体属性、实体标识和实体间关系等是否存在问题.接着,选择 MYSQL 作为系统的目标数据库,生成在MYSQL 上实现的数据库的物理数据模型 (PDM) :最后,通过产生数据库功能,并选择 ODBC 方式连接到指定的数据库,从而直接产生MYSQL 上的数据库表以及其他数据库对象.

3.2 持久化层的设计

数据持久层基于 Hibernate 架构,采用了 DAO 设计模式和抽象工厂设计模式.下面以学生类 (Student) 为例进行说明.首先,把学生信息封装为 VO(Value Object) .VO 是一组值对象,只包含了一些属性和 getter/setter 方法的 POJO(Plan Old Java Bean) .然后,采用 DAO 设计模式和抽象工厂设计模式,完成 DAO 工厂和 Hibernate 数据库 *** 作的具体实现.最后,利用 Hibernate 的配置文件完成从应用程序到数据库的映射.

在Myeclipse 开发环境中,首先配置数据库服务器的连接,然后利用 Myeclipse 的Hibernate 的逆向工程,可以自动完成持久化层的设计任务.例如对学生表 (student) 进行逆向工程, 将会自动生成Student.iava、AbstractStudent.iava、StudentDAO.iava、Student.hbm.xml等文件.其中,Abstract Student.iava 就是一个封装了 Student 信息的VO.Student DAO.java采用DAO模式封闭了数据库 *** 作.

在hibemate.cfg.xml 配置文件中,定义了符合 SQLServer 规范的 dialect 方言,连接池访问数据库的 URL 资源定位地址以及数据库名称kq, 数据库连接驱动程序,Hibernate管理事务、是否显示SQL语句.在mapping映射文件配置部分,定义了教师表 (Teacher)、学生表 (Student1、考勤表(Attendance) 等对应的映射文件等.在该层的设计中,VO 的信息封装体现了面向对象设计编程思想DAO 的设计模式和抽象工厂模式减弱了上层调用和具体实现之间的耦合Hibemate 配置实现了数据库高移植性,只需要改变 Hibemate 配置文件,不用修改程序设计就可以完成不同数据库之间的更换.

3.3 业务逻辑层设计

业务逻辑层包含了供客户端程序调用的业务逻辑规则,以帮助客户端完成业务 *** 作.该层采用业务代理、DAO和抽象工厂设计模式使用业务代理、DAO 和抽象工厂设计模式,可以使业务逻辑更加灵活,如果具体业务发生变化,在表示层和数据持久化层改变很小就可以完成改变,这种设计能够增强系统的可维护性和灵活性.

3.4 表示层设计

1.SELECT COUNT(DISTINCT(学号)) FROM SC 2.SELECT 姓名 FROM S,SC WHERE S.学号=SC.学号 AND S.学号=1号 3.SELECT S.学号,姓名,课程名,成绩 FROM S,SC,C WHERE S.学号=SC.学号 AND SC.课程号=C.课程 AND 课程号=1号 4.SELECT S.学号,姓名 FROM S,SC WHERE S.学号=SC.学号 AND SC.课程=‘人工智能’ 5.SELECT MAX(成绩) FROM S,SC WHERE S.学号=SC.学号 AND S.学号=1号 6.SELECT 学号,姓名 FROM S WHERE SUBSTRING(姓名,3,2)=’月’ 7.SELECT 课程号,COUNT(*) FROM C,SC WHERE C.课程号=SC.课程号 8.SELECT S.学号,姓名 FROM S,SC,C WHERE S.学号=SC.学号 AND SC.课程号=C.课程号 AND C.成绩>80 9.SELECT DISTINCT(省区) FROM S WHERE S.系别=‘物理’ 10.SELECT * FROM S ORDER BY 系别 ASC,年龄 DSC 11.SELECT AVG(成绩 ) FROM C WHERE 课程号=2号 12.SELECT 学号,姓名 FROM S WHERE SUBSTRING(姓名,3,2)=’阳’


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6678793.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存