当前位置:文档之家› 数据库论文

数据库论文

HUBEI NORMAL UNIVERSITY《数据库系统》课程大作业院系:计算机与信息工程学院专业:通信工程班级: 1704班学号: 2017115020435姓名:卢晨光目录1.开发环境及所用知识体系 (2)1.1开发平台、工具、数据库服务器的介绍 (2)1.2相关技术及所用知识点介绍 (2)2.用户需求 (3)2.1系统功能分析 (3)2.2系统功能模块设计 (3)3.数据库设计 (4)3.1 E-R图 (4)3.2表结构分析 (4)3.3 约束 (5)3.4 查询 (6)3.5 视图 (7)3.6 存储过程 (8)3.7 触发器 (9)4.系统功能流程图 (11)5.关键代码及说明 (11)5.1数据连接、查询、更新等操作代码 (11)5.2运行结果界面截图 (13)6. 总结 (14)学生信息管理系统设计与实现1.开发环境及所用知识体系1.1开发平台、工具、数据库服务器的介绍开发平台:基于WIN7 X64操作系统的程序设计开发工具:SQL Server 2008 、EclipseSQL Server 2008的数据库引擎组件是用于存储、处理数据和保证数据安全的核心服务。

数据库引擎提供受控的访问和快速事务处理,以满足企业中要求极高、大量使用数据的应用程序的要求。

SQL Server 支持在同一台计算机上最多存在 50 个数据库引擎实例。

对于本地安装,必须以管理员身份运行安装程序。

如果从远程共享安装 SQL Server,则必须使用对远程共享具有读取和执行权限的域帐户。

此外,SQL Server 2008 允许使用 Microsoft .NET 和Visual Studio开发的自定义应用程序中使用数据,在面向服务的架构(SOA)和通过 Microsoft BizTalk Server 进行的业务流程中使用数据。

信息工作人员可以通过日常使用的工具直接访问数据。

1.2相关技术及所用知识点介绍本课程设计主要用到目前正在学的SQL 语言,结合上学期的JAVA语言,来设计一个学生管理系统。

主要利用SQL Server 2008软件的SQL语言来做底层数据库,利用Java语言来做前端界面。

数据库语言主要包括表的设计,其中包括表结构的设计,表级、列级约束、索引。

以及对表的查询,多表查询、嵌套查询、分组计算等复杂查询,视图的创建,以及后面的比较难的存储过程、触发器等操作。

触发器即为比较特殊的存储过程,我把他们单做一种方法在Java语言中运用。

从而就可以更容易的实现每一个功能。

2.用户需求2.1系统功能分析学生管理系统的设计就是为了体现系统开发的总体任务实现学生信息关系的系统化、规范化和自动化。

在一些学校等机构,随着学生数量的不断增加,学生的信息不断增多,人工管理信息的难度也越来越大。

而且效率也是很低的。

所以如何自动高效地管理信息是这些年来许多人所研究的,并出现了基于编程语言的学生管理系统具体功能如下:(1)有关于学生信息的录入、查询、修改(2)学生课程号的修改、查询(3)学生成绩信息的输入、修改、查询通过以上的系统功能可基本实现一个小型的学生管理系统的搭建,从而数据库中基本设计了三个基本表。

2.2系统功能模块设计3.数据库设计3.1 E-R3.2表结构分析学生管理系统的实现,我在SQL Server 数据库中添加了三个表格,其分别为student_Info、course_Info、result_Info。

分别为学生表、课程表和成绩表。

如下图:图3-1 课程表图图3-2成绩表图图3-2学生表图在学生表中学号为主键,在课程表中学号为外键,在课程表中课程编号为主键,在成绩表中课程编号为外键。

在约束中我们将性别约束为只能输入男和女。

3.3 约束Primary Key 约束在表中常有一列或多列的组合,其值能唯一标识表中的每一行。

这样的一列或多列成为表的主键(PrimaryKey)。

一个表只能有一个主键,而且主键约束中的列不能为空值。

只有主键列才能被作为其他表的外键所创建。

Foreign Key 约束外键约束是用来加强两个表(主表和从表)的一列或多列数据之间的连接的。

创建外键约束的顺序是先定义主表的主键,然后定义从表的外键。

也就是说只有主表的主键才能被从表用来作为外键使用,被约束的从表中的列可以不是主键,主表限制了从表更新和插入的操作。

Unique 约束唯一约束确保表中的一列数据没有相同的值。

与主键约束类似,唯一约束也强制唯一性,但唯一约束用于非主键的一列或者多列的组合,且一个表可以定义多个唯一约束。

check 约束Check 约束通过逻辑表达式来判断数据的有效性,用来限制输入一列或多列的值的范围。

在列中更新数据时,所要输入的内容必须满足Check 约束的条件,否则将无法正确输入。

我用一个约束将性别只能输入男和女。

代码如下:--创建约束alter table student_Infoadd check(性别='男'or性别='女')3.4 查询数据库查询语句分为多种类型如:投影查询、条件查询、连接查询、外连接查询、分组及计算查询、子查询等SELECT 子句——指定要显示的属性列,可以使表达式、列表、变量FROM 子句——指定要查询的基本表或者视图WHERE 子句——用来指定查询的范围和条件GROUP BY 子句——对查询结果按指定列值的升序或降序排列ASC表示升序,DESC表示降序COMPUTE 子句——使用聚合函数在查询的结果集中生成会总行COMPUTE BY ——子句用于增加各列汇总行多表查询语句如下:左外查询语句如下:结果如下:分组计算查询语句如下:3.5 视图在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表。

视图包含行和列,就像一个真实的表。

视图中的字段就是来自一个或多个数据库中的真实的表中的字段。

我们可以向视图添加 SQL 函数、WHERE 以及 JOIN 语句,我们也可以提交数据,就像这些来自于某个单一的表。

值得注意的是数据库的设计和结构不会受到视图中的函数、where 或 join 语句的影响。

其调用语句如下:创建一个表名为student_view,包括学号,姓名,课程编号和成绩的表格,其代码如下:在视图选项里面会生成一个student_View的信息表,如下图所示:因为之前刘备那个选项我默认为NULL,所以现在显示为NULL。

3.6 存储过程存储过程在SQL语句中是比较难或者比较深奥的,在我看来存储结构莫过于函数和方法,在其它地方调用就可以了。

但是要想熟练的掌握它的精髓,我认为一定要好好学。

存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。

存储过程是数据库中的一个重要对象。

在存储过程中不能用到的语句有如下:CREATE DEFAULTCREATE RULECREATE 或ALTER VIEWCREATE 或ALTER PROCEDUREUSE database_nameSQL Server 支持三种存储过程,分别为系统存储过程、用户自定义存储过程和扩展存储过程。

我创建的为自定义的存储过程student message,其功能为:显示所有学生的学号、姓名、出生日期、课程名和成绩。

如下图执行结果如下:其结果为显示所有学生信息,也可以在其他命令里面调用此存储过程(student message),并可以执行,非常方便。

3.7 触发器触发器是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( insert,delete,update)时就会激活它执行。

触发器经常用于加强数据的完整性约束和业务规则等。

触发器可以从 DBA_TRIGGERS ,USER_TRIGGERS 数据字典中查到。

SQL3的触发器是一个能由系统自动执行对数据库修改的语句。

触发器是一种特殊的存储结构。

创建一个存储结构学生_insert,从而实现添加信息时显示一条消息如下:添加学生信息后,就会执行这个存储结构,从而显示一条‘成功添加一名学生信息’的提示。

创建触发器实现连级删除,如下:4.系统功能流程图学生端通过账号密码登录,然后选择相对应的功能,可以选择查看自己的基本信息以及成绩。

教师可通过管理员密码登录对学生信息进行一系列操作,包括查看、删除、修改以及添加。

5.关键代码及说明5.1数据连接、查询、更新等操作代码(1)数据连接把SQL Server 2008和Java连接起来要通过JDBC驱动来进行连接。

JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。

JDBC提供了一种基准,据此可以构建更高级工具的接口,是数据库开发人员能够编写数据库应用程序。

JDBC原理:JDBC是以前SUN公司定义的一套访问数据库的接口(没有具体实现),一套标准,具体的实现是由各大数据库厂家去实现,每个数据库厂家都由自己的JDBC实现,也就是JDBC驱动实现,JDBC驱动实现类,Java应用程序连接指定数据库,需要使用厂家提供的JDBC驱动才能连接。

(这里其实就是java 堕胎的一种体现,一个接口可以由很多具体的实现)Java与数据库的连接代码如下图所示(2)查询学生信息(3)添加学生信息:5.2运行结果界面截图当点击按姓名查询后就会弹出下图窗口:当点击添加数据时就会弹出如下窗口:6. 总结上完了数据库一整本书,感觉还是大作业更能清楚地学到知识,同事也让我更加清晰的认识到了什么是数据库简单的说就是建表格,然后把一张一张的表格和在一起,成为一大堆的数据集合。

他是依照某种数据结构组织起来并存放二级存储器中的数据集合,基本分为三个层次,物理数据层,概念数据层和逻辑数据层。

不同层次间的联系是通过映射来转换的。

刚开始我是什么都不知道的,然后通过各种摸索以及网上查阅资料,包括Java前端的建立我之前是一点头绪都没有,但是吧,人总是在困难和磨难中进步,通过同学和百度让我了解了如何把数据库和Eclipse连接起来,从而进行数据和代码的完美融合。

总之,这门课让我学到了很多东西,不单单是专业知识,更多的是如何学习以及学习的方法。

对数据库知识有了更加全面的了解与认识。

相关主题