广东海洋大学寸金学院
《数据库系统》
课 程 设 计 说 明 书
设计题目:选课管理系统
姓 名
院 系 信息技术系
专 业
学 号
指导教师
20## 年 12月 16 日
一、对SQL的总结
1)SQL数据库的实际应用
①、SQL包括了所有对数据库的操作,主要是由4个部分组成:
1.数据定义:这一部分又称为“SQL DDL”,定义数据库的逻辑结构,包括定义数据库、基本表、视图和索引4部分。
2.数据操纵:这一部分又称为“SQL DML”,其中包括数据查询和数据更新两大类操作,其中数据更新又包括插入、删除和更新三种操作。
3.数据控制:对用户访问数据的控制有基本表和视图的授权、完整性规则的描述,事务控制语句等。
4.嵌入式SQL语言的使用规定:规定SQL语句在宿主语言的程序中使用的规则。
②、在如今的互联网系统中 主要存在B-S模式和C-S模式,B-S模式指的是浏览器服务器模式,C-S模式指的是客户服务器模式。两者的相同部分就是SERVER服务器,SERVER服务器是指的专用计算机,它拥有大容量存储设备和高性能计算功能,用于存储复杂的用户数据,这些复杂臃繁的数据以关系模型存储也就是二维表的形式存储,各二维表之间以相同的字段形成联系,这样存储的好处是具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。在这些专用计算机运行着位于用户与操作系统之间的一层数据管理软件。数据库管理系统和操作系统一样是计算机的基础软件,也是一个大型复杂的软件系统,其主要功能包括数据定义,数据组织、存储和管理,数据操纵功能,数据库的事务管理和运行管理,DBMS与另一个DBMS或文件系统的数据转换功能,异构数据库之间的互访和互操作功能等。而数据库系统是指的在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。
2)SQL数据库的安全性
①、计算机系统的三类安全性问题
1.所谓计算机系统安全性,是指为计算机系统建立和采用的各种安全保护措施,以保护计算机系统中的硬件、软件、及数据,防止其偶然或恶意的原因是系统遭到破坏,数据遭到更改或泄露等。
2.技术安全:计算机系统中采用具有一定安全性的硬件、软件来实现对计算机系统及其所存数据的安全保护,当计算机系统受到无意或恶意的攻击时仍能保证系统正常运行,保证系统内的数据不增加、不丢失、不泄露。
3.管理安全:由于管理不善导致的计算机设备和数据介质的物理破坏、丢失等软硬件意外故障以及场地的意外事故等安全问题。
4.政策法律:政府部门建立的有关计算机犯罪、数据安全保密的法律准则和政策法规、法令。
②、数据库安全性控制
1.用户标识与鉴别:用户标识、口令。
2.存取控制:定义用户权限,并将用户权限登记到数据字典中、合法权限检查。
③、自主存取控制(DAC)方法:
1.授权与回收:GRANT语句, GRANT SELECT ON TABALE SC TO PUBLIC;//把对表SC的查询权限授予所有用户;REVOKE语句,REVOKE SELECT ON TABLE SC FROM PUBLIC;//收回所有用户对表SC的查询权限;创建数据模式的权限,
CREATE USER <user name>
[WITH][DBA|RESOURCE|CONNECT];
2.数据库角色:角色创建,给角色授权,将一个角色授权给其他角色或用户,角色权限收回。
④、强制存取控制(MAC)方法。
3)SQL数据库的设计
1.数据库设计:对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各个用户的应用需求,包括信息管理要求和数据操作要求。
2.数据库设计的特点:数据库建设的基本规律:“三分技术,七分管理,十二分基础数据”;机构(数据)设计和行为(处理)设计相结合。
3.数据库设计方法:计算机的基础知识,软件工程的原理和方法,程序设计的方法和技巧,数据库的基本知识,数据库设计技术,应用领域知识。
4.数据库设计的基本步骤:需求分析,概念结构设计,逻辑结构设计,物理结构设计,数据库实施,数据库运行和维护。
4)SQL作为后台数据库与前台开发工具的结合
前台开发工具用于做前台页面,设计出可视化的图形界面,使不同权限的用户都便于操作整个系统。而前台页面与后台数据库连接最关键的地方则在于SQL语句。各种开发语言都提供了其连接数据库的类,通过这些类的相应方法实现连接数据库、对数据源的各种操作,包括查询、插入、删除、更新操作、返回操作结果等。当点击图形界面相应的控件时,通过监听触发产生相应的SQL语句,然后执行SQL语句将返回的结构显示在图形界面上。
5)SQL查询命令的应用
SQL提供select语句进行数据库的查询,该语句具有灵活的使用方式和丰富的功能。分为:1.单表查询2.连接查询3.嵌套查询4.集合查询。
6)SQL在VB、ASP或其他自选语言中的实际应用
SQL在C#中的实际应用:
首先实现对数据库的连接,必须创建一个字符型的连接语句:
String ConnectionString = "Data Source=“本地服务器的名字”;Initial Catalog=“本地数据库的名字”;Persist Security Info=True;User ID=“登录名”;Password=“登录密码”";
然后创建一个SqlConnection类对象实现对数据库的连接
SqlConnection myCon = new SqlConnection(ConnectionString);
通过事件产生SQL语句,(string selectSQL = "select SNO 学号,SNAME 姓名,SSEX 性别,SAGE 年龄,U_STUDENTS.CID 班号,MAJOR 专业,CLASS 班级,DEPARTMENT 系别 from dbo.U_STUDENTS,dbo.U_CLASSES
where dbo.U_STUDENTS.CID=dbo.U_CLASSES.CID and SNO='" + textBox6.Text + "'";)
然后创建SqlCommand对象,SqlCommand myCom = new SqlCommand();
执行SQL语句,实现对数据源的各种操作,然后返回操
二、系统分析
1开发背景
本站的开发可以给许多用户带来很多学习的方便,提供了一个很好的自学的工具,此系统可以帮助自学的用户,有一个资料的查阅。
2需求分析(功能需求分析,数据流程分析即数据流图等)
现在很多的同学都想加强自己的自学能力,而资源共享网站提供了一个良好的学习工具,此系统基本实现了设计的要求,即登录系统(管理员通过姓名名和密码),管理(录入、查询、修改和删除)用户、课程基本资料,管理(录入、查询、修改和删除)用户所要学的课程,修改用户密码等功能。在此基础上,我还对系统进行了改进,特别是加强了查询的功能,使我们能更直观、有效地查询到我们想要的数据。
三、系统设计
1系统总体结构
系统的模块划分为如图所示,分别为:用户登录、后台管理(包括用户管理,管理员管理,课程管理,课件管理)、课程介绍、教师介绍、课件下载。每个模块负责相应的功能。系统采用ADO.NET技术实现对数据库的访问操作,使用SQL Server 2005作为后台数据库。
① 首页用户登录
提供用户登录界面,输入用户名,密码进行登录,还可进行用户注册。
②后台管理
可管理用户表,课程表,课件表,教师表等一系列表。用于管理管理员的基本信息,所包括管理员的字段有:姓名、密码、邮箱,提供对管理员的,增加,修改,删除等操作。课程表的修改,增加,删除等操作。课件表的修改删除操作。教师表的删除,修改,增加操作。
③课程介绍
主要对本站的课程(包括课程目录,课程内容)。
④课件介绍
主要介绍本站的课件(包括教师课件,自学课件)。
⑤用户操作界面
用户可进自己的信息进行修改早操。
2数据库结构设计
①数据库列表:
②数据库E-R图
③数据库表单
创建“Admin” 设计,如图所示:
创建“Yonghu” 设计,如图所示:
创建“teacher” 设计,如图所示:
创建“kejian”设计,如图所示:
创建“Kcheng”设计,如图所示:
创建“Jiaoshijingli” 如图所示:
3开发方案的选择(主要是前端开发平台的选择与方案的比较)
前台开发方案主要有两种大方向:主要存在C-S模式,B-S模式指的是浏览器服务器模式,C-S模式指的是客户服务器模式。
B-S模式可以选择ASP等通过浏览器解析运行网页文件来实现相应功能。
C-S模式可选前台开发语言较多,主要有:C#,,通过窗体来实现相应功能。
四、系统实施
选课成绩模块的设计与实现(模块功能、运行界面、源代码)
1.运行界面:
2.源代码
上交的网站文件夹。
3.模块功能
在首页输入密码点击“登录”可进入用户下载管理,可查看用户信息并修改。单击其他的面也的菜单可打开其他的页面,此网站共有四个页面。点击页面底部的后台管理可进入管理员登录界面,在此界面管理员登录,进入后台管理,进行全部表的操作。
五、总结(体会、经验与教训)
此次课程设计时间比较短,前两天基本上在由于前台用什么语言来实现,有着手通过jC#等各种途径,相互比较后,觉得C#在做前台方面有优势,于是决定静下来用C#做前台了。于是我从开头开始学C#,一门全面的面向对象的编程语言。我从图书馆借了大量关于C#的书,开始看C#在数据库方面的应用。一边看一边做,从页面开始设计,先找到一些素材(图片,式样)。然后照着素材自己设计网页,一张张网页做出来了,然后在老师的指导下将这些页面链接起来,然后链接数据库,这是最关键的部分,同时也是最麻烦的部分,通过自己了解的深入,各个击破,逐步完成了自己最初的设想。
在开始的时候,总会遇到这样或那样的问题,在做的过程中,慢慢摸索和研究,把其中的一个个问题逐个解决。同时也提高了我的编程思想和独立解决问题的能力。
对于每一次课程设计,我都独立地去完成。这一次也不例外,这次课程就设计很好的提高了我动手实践的能力,在短时间内了解一门自己不了解的语言,并完成相应的设计,这无疑提高了自己的学习能力,把书本的知识转化为实际应用中去,丰富了自己的实践经验。同时也感觉自己有很多的不足的地方,做好一个好网站的各种功能上还欠缺很多的东西,此网站在用户下载管理方面的功能尚未配置成功,今后还要认真还要加重学习此方面的知识
第二篇:数据库课程设计报告范例
数据库课程设计报告
课题名称:图书管理 统
专 业:信息与计算科学
班 级:信计071班
小组人员:***
一. 背景资料
在高校中,学生的数量较多,图书的数量也比较多,每天图书的借阅量比较大,采用手工的处理方式已经不能满足这种需要了,因此需要开发一个能够处理平时借阅处理的信息系统,这个信息系统负责主要处理图书馆日常的借书、还书和查询业务。
二.摘 要
图书馆作为一个信息资源的集散地,包含很多信息数据的管理。若图书馆采取手工的方式对图书资料和图书借阅情况进行人工管理的话,由于信息数据的繁多,会使手工处理的工作量非常大,同时也就影响了图书馆整体的管理效率。因此,人们希望使用一个有效的图书管理系统,用以提高图书馆的日常工作效率。本设计是建立在vb6.0及SQL Server 2000数据库平台开发基础上的。在本文中,给出了该系统的整个系统分析、设计以及实现的过程,包括需求分析、功能模块的分析与设计、数据模式的分析与设计,最后是系统在vb6.0中实现。
三. 需求分析
图书管理系统流程图
图书借阅处理过程及功能分析简述
1. 图书管理员的处理过程主要包含:查询管理。
2.读者管理实现读者信息的录入和查询,需要登记读者(学生)的学号、姓名、班级、专业、借阅量。
读者的处理过程主要包含:读者信息、查询信息
(1) 读者信息
登记读者借阅信息。
(2) 查询信息
书籍信息查询是按照书号、书名、作者等查询图书基本信息,并可以查询借阅情况。
3. 数据分析
数据处理过程中涉及到两个实体:图书和读者;各实体应具有的属性如下:
图书(书号、书名、作者、出版社)
管理员(ID、密码)
读者(学号、密码、姓名、班级、专业)
由于同一种图书可以有多册上架,每个读者可以借阅多本书,所以图书和读者之间是多对多的关系;为了表示多对多关系,应将图书借阅定为实体,构造两个一对多关系。图书借阅的属性如下:
借阅(学号、姓名、书号、书名、借书日期、还书日期)
PASSWord 管理员信息表:
读者信息表:
图书基本信息表:
借还基本情况表(STUDBR):
四.物理结构设计
根据数据表设计应用程序:
登 录 界 面(Login):
代码:
Private Sub cmdCancel_Click()
End
End Sub
Private Sub cmdOK_Click() '登录
Dim i As Integer
Dim mark As Boolean
mark = False
'检查正确的密码
Data1.Recordset.MoveLast
Data1.Recordset.MoveFirst
For i = 1 To Data1.Recordset.RecordCount
If txtUserName.text = Data1.Recordset.Fields("UserName") Then
mark = True
If txtPassword.text = Data1.Recordset.Fields("PW") Then
txtPassword.text = ""
Form1.Show (1)
Exit Sub
Else
MsgBox "无效的密码,请重试!", 48, "登录"
txtPassword.SetFocus
Exit Sub
End If
End If
Data1.Recordset.MoveNext
Next i
If mark = False Then
MsgBox "该用户不存在,请重新输入用户名!", 48, "登录"
txtUserName.SetFocus
Exit Sub
End If
End Sub
Private Sub Form_Load()
txtUserName.Clear
Dim i As Integer
txtUserName.text = "Administrator"
Data1.DatabaseName = App.Path + "\mis.mdb"
Data1.RecordSource = "PASSWORD"
Data1.Refresh
'初始化用户名列表框
Data1.Recordset.MoveLast
Data1.Recordset.MoveFirst
For i = 1 To Data1.Recordset.RecordCount
txtUserName.AddItem Data1.Recordset.Fields("UserName")
Data1.Recordset.MoveNext
Next i
txtUserName.text = "Administrator"
End Sub
Private Sub Label1_Click()
End Sub
Private Sub txtUserName_Change()
End Sub
SQL语句表的建立:
create table book
(书号 char(10) primary key,
书名 varchar(50),
著者 varchar(50),
出版社 varchar(100),
标志 char(10) check(标志 in('可借','不可借'))
)
create table password
(UserName varchar(30),
PW numeric(4,0)
)
create table studbr
(书号 char(10) foreign key references book(书号),
学号 char(10) foreign key references student(学号),
书名 varchar(50),
借阅日期 datetime,
应还日期 datetime,
primary key(书号,学号)
)
create table student
(学号 char(10) primary key,
姓名 varchar(10),
班级 varchar(50),
专业 varchar(10),
借阅量 numeric(2,0)
)
其他代码在此不一一列出。
五.课程设计总结
在期末课程设计中,我们所选择的是设计一个图书管理系统,这对我们来说是一次尝试与创新的过程,也可以说是一个挑战的过程,毕竟以前没有作过,缺少经验。现在利用自己学到的知识设计并制作一个图书管理系统,这本身就是一个知识转化为生产力的过程,所以大家都很兴奋,不同程度的投入了很高的热情与努力。虽然有的同学没能帮上忙,但也在默默的给我们加油。在
具体的设计与实施中,我们看到并感受到了一个管理系统从无到有的过程,对具体的设计步骤、思路、方法、技巧都有了进一步的了解,并感受深刻。
在设计中我们基本能按照规范的方法和步骤进行,首先对现有的系统进行调查,并查阅有关资料,最后确定设计方案,然后设计并制作,实施过程中我们深刻的认识到认真执行管理系统软件标准的重要性,我们由于对管理系统软件相关的标准和规范不太了解,缺少行为操作准则,所以在设计中手法比较生硬,主与次也没能很好把握住,这些方面通过这次我们都要加强了解。
在这次课程设计中,我们被分配以小组为单位去完成图书管理系统的设计与制作,所以小组内的分工和相互协调很重要,大家可以在分工中扬长避短,个及所长,这样可以很好的提高大家的积极性,和合作意识,并有效的缩短开发时间,但我们在这方面做的还不够,缺乏人员管理与沟通,导致人力资源浪费,可以说是不足之处,且迫切的需要思考和改进,这一点必须指明。这在以后的工作与学习中将会非常重要。
因vb以前没有学过,所以借用了一些网上的源代码进行修改与扩充,以达到我们的需要。