求一份SQL server数据库课程设计报告

求一份SQL server数据库课程设计报告,第1张

22需求分析

(1)需求分析的任务

需求分析的任务是通过详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统(手工系统或计算机系统)工作概况,明确用户的各种需求,用通俗的话来讲,就是分析了解用户关心什么,用户需要什么样的结果,然后在此基础上分析和设计新系统的数据库。

需求分析的重点是调查、收集与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求。

 信息要求

是指用户需要从数据库中获得信息的内容与性质。由用户的信息要求可以导出数据要求,即在数据库中需要存储哪些数据。

 处理要求

是指用户要求完成什么处理功能,对处理的响应时间有什么要求,处理方式是批处理还是联机处理。

 安全性与完整性要求

一是指用户对系统和数据有什么安全性要求,如不同级别的用户具有什么 *** 作权限和使用哪些数据;二是对数据的输入和存储的什么要求,如数据的长度和范围、数据的有效性、一致性和唯一性等。

确定用户的最终需求其实是一件很困难的事,这是因为一方面用户缺少计算机知识,开始时无法确定计算机究竟能为自己做什么,不能做什么,因此无法一下子准确地表达自己的需求,他们所提出的需求往往不断地变化。另一方面设计人员缺少用户的专业知识,不易理解用户的真正需求,甚至误解用户的需求。因此设计人员必须与用户不断深入地进行沟通和交流,才能逐步得以确定用户的实际需求。

(2)需求分析的基本步骤

1.调查与初步分析用户的需求,确定系统的功能边界

⑴首先调查组织机构情况

⑵然后调查各部门的业务活动情况

⑶协助用户明确对新系统的各种要求

⑷确定新系统的结构和功能边界,确定哪些功能由计算机完成或将来由计算机完成,哪些活动由人工完成。

常用的调查方法有:

⑴跟班作业

⑵开调查会

⑶请专人介绍

⑷询问

⑸问卷调查

⑹查阅记录

2.生成数据字典

1)数据项条目:数据项是不可再分的数据单位,它直接反映事物的某一特征。

2)数据结构条目:反映了数据之间的组合关系

3)数据流条目:数据流是数据结构在系统内传输的路径。

4)数据文件条目:数据文件是数据项停留或保存的地方,也是数据流的来源和去向之一。

5)处理过程条目。

(3) 案例分析:教学管理系统数据库的需求分析

用户的需求具体体现在各种信息的提供、保存、更新和查询上,这就要求数据库的结构能充分满足各种信息的输出和输入。需求分析阶段主要是收集基本数据,确定数据结构及数据处理的流程,组成一份详尽的数据字典,以便为后面的概念设计和逻辑设计打下基础。

2.3概念结构设计

概念结构设计是对收集来的信息和数据进行分析整理,确定实体、属性及联系,形成独立于计算机的反映用户观点的概念模型。概念设计的重点在于信息结构的设计,它是整个数据库系统设计的关键。

(1)概念结构设计的目标和任务

概念结构设计的目标是产生反映系统信息需求的数据库概念结构,即概念模式。概念结构是独立于DBMS和使用的硬件环境的。在这一阶段,设计人员要从用户的角度看待数据以及数据处理的要求和约束,产生一个反映用户观点的概念模式,然后再把概念模式转换为逻辑模式。

概念模型的表示方法很多,其中最著名、最常用的表示方法为实体-联系方法,这种方法也称为E-R模型方法,该方法采用E-R图描述概念模型。

E-R图提供了表示实体、属性和联系的方法,它由以下三个组件构成:

 实体---用矩形表示,矩形框内写明实体名。

 属性---用椭圆形表示,并用无向边将其与相应的实体连接起来。

 联系---用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1、1:n或m:n)。

例如教学管理系统中的学生实体与课程实体的E-R图如下图表示:

(2)概念结构设计的过程

●数据抽象

概念结构是对现实世界的一种抽象,所谓抽象就是对实际的人、事、物和概念进行加工处理,抽取所关心的共同特性,用各种概念精确的加以描述,组成某种模型。

在需求分析中,已初步得到了有关各类实体、实体间的联系以及描述它们性质的数据元素,统称数据对象。

在这一阶段中,首先要从以上数据对象中找出:系统有哪些实体?每个实体有哪些属性?哪些实体间存在联系?每一种联系有哪些属性?然后就可以做出系统的局部E-R模型和全局E-R模型。

● 局部E-R模型设计

局部E-R模型设计是从数据流图出发确定实体和属性,并根据数据流图中表示的对数据的处理、确定实体之间的联系。

设计局部E-R图的步骤是:

1.确定实体类型和属性

实体和属性之间没有严格的区别界限,但对于属性来讲,可以用下面的两条准则作为依据:

1)作为属性必须是不可再分的数据项,也就是属性中不能再包含其他的属性。

2)属性不能与其他实体之间具有联系。

2.确定实体间的联系

依据需求分析结果,考察任意两个实体类型之间是否存在联系,若有,则确定其类型(一对一,一对多或多对多)。

3.画出局部E-R图

确定了实体及实体间的联系后,可用E-R图描述出来。形成局部E-R图之后,还必须返回去征求用户意见,使之如实地反映现实世界,同时还要进一步规范化,以求改进和完善。每个局部E-R图必须满足:

(1)对用户需求是完整的。

(2)所有实体、属性、联系都有惟一的名字。

(3)不允许有异名同义、同名异义的现象。

● 全局E-R模型的设计

各个局部E-R模型建立好后,还需要对它们进行合并,集成为一个整体的数据概念结构,即总E-R图。在合并全局E-R模型时,应注意检查和消除属性、命名的冲突及数据冗余。

(3)案例分析:教学管理系统数据库的概念结构设计

通过上面的需求分析,就可以进行数据库的概念结构设计,先对现实当中的人、事、物和概念进行抽象的加工处理,抽取所关心的共同特性,用各种概念进行描述,从中找出能够满足用户需求的各种实体,以及它们之间的关系,并用实体-联系图表示出来(即画出E-R图),为后面的逻辑结构设计打下基础。

1、确定实体及其属性

经过对人工进行的教学管理系统的业务调查,得知系统主要涉及以下几个实体:

● 学生实体:属性主要包括班级名称、学号、姓名、性别、出生日期、民族、政治面貌、来源地、入学成绩、学生类别、电话、备注等。

● 教师实体:属性主要包括教师号、教师姓名、性别、出生日期、所在系、职称

● 班级实体:属性主要包括系部名称、班级号、班级名称、班主任、学生人数、备注等。

● 系部实体:属性主要包括系号、系部名称、班级数等。

● 课程实体:属性主要包括课程号、课程名、考核方式、学分、学时数等。

2、确定实体之间的联系

2.4 逻辑结构设计

(1)逻辑结构设计的目标和任务

逻辑结构设计的目标就是把概念结构设计阶段设计好的E-R图转换为特定的DBMS所支持的数据模型(即层次、网状、关系模型之一),并对其进行优化。

概念模型向逻辑模型的转换过程分为3步进行:

(1)把概念模型转换为一般的数据模型。

(2)将一般的数据模型转换成特定的DBMS所支持的数据模型。

(3)通过优化方法将其转化为优化的数据模型。

(2) 概念模型转换为一般的关系模型

1.实体的转换规则

将E-R图中的每一个常规实体转换为一个关系,实体的属性就是关系的属性,实体的码就是关系的码。

2.实体间联系的转换规则

1)一个1:1联系可以转换为各自独立的关系模式,也可以与任意一端所对应的关系模式合并。

2)一个1 : n联系可以转换为各自独立的关系模式。

3)一个m : n联系转换为一个关系模式。转换的方法为:与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,新关系的码为两个相连实体码的组合

(3) 案例分析:教学管理系统数据库的逻辑结构设计

逻辑结构设计的任务是把概念结构设计阶段设计好的E-R图转换为特定的DBMS所支持的数据模型(即层次、网状、关系模型之一),并对其进行优化,得到满足用户要求和系统功能需求的关系模式。

1、 E-R模型转换为关系模式

将E-R模型转换成初始关系模式的一般规则是:系统中各个实体转换为对应的关系模式;实体之间多对多的联系也转换为关系模式。

根据转换规则,可以将系部、班级、学生、教师、课程五个实体转换成与之对应的五个关系模式;而将学生与课程两者之间多对多的选修关系以及教师、班级和课程三者之间多对多的开课关系也转换为关系模式。

2、关系模式的设计

根据上述的转换结果,在对关系模式中数据进行规范化处理后,得到了符合第三范式的关系模式如下:

学生:{学号、姓名、性别、出生日期、民族、政治面貌、来源地、入学成绩、学生类别、班级名称、电话、备注}

班级:{班级号、班级名称、班主任、学生人数、系部名称、备注}

系部:{系号、系部名称、班级数}

教师:{教师号、教师姓名、性别、出生日期、所在系、职称}

课程:{课程号、课程名、考核方式、学分、学时数}

选修:{学号、课程号、成绩}

开课: {教师号、班级名称、课程号、开课学期、授课地点}

每个关系模式中带下划线的属性或属性的组合表示主键、带双波浪线的属性表示与之关联的表的外键。

根据系统功能需求,数据采用SQL Server 2000所支持的实际数据模型,也就是数据库的逻辑结构。启动SQL Server 2000,创建一个数据库命名为:jxgl。该数据库中各个数据表的结构如下面各个表格所示。每个表格对应于数据库中的一个表。

3、将关系模式转换为数据库中的表

按照关系数据模型的结构,将关系模式转换为关系数据库中的数据表,转换的规则是:一个关系模式转换为一个数据表,关系模式中的每个属性转换为数据表中的一个列。同时设置表中各个列的名称、数据类型、数据宽度以及数据规则,得到如下几个表:

学生表(student)

列名 类型 宽度 规则

班级名称 CHAR 20 内容取自班级信息表的班级名称

学号 CHAR 10 主键、长度为10个字符

姓名 CHAR 8

性别 CHAR 2 非空、只能取“男”或“女”

出生日期 DATETIME

民族 CHAR 4 假定只能取以下之一:汉、壮、白、回、苗、满、其它

政治面貌 CHAR 4 只能取以下之一:党员、团员、群众

来源地 CHAR 10

入学成绩 INT

学生类别 CHAR 10 假定只能取以下之一:本科、大专(普)、大专(业)、中专、技校、函授、其它

电话 CHAR 11

备注 CHAR 10

注:(1)该表存放全校所有学生的基本信息,每个学生产生一条记录。

(2)学号的前4位表示年级,第5--8位表示班级号(其中第5-6位表示系号, 第7-8位表示系内班级号),最后两位是班内的学生编号,在输入记录内容时应加以区分。

班级表(class)

列名 类型 宽度 规则

系部名称 CHAR 10 非空、内容取自系部信息表的系部名称

班级号 CHAR 4 非空、长度为4个字符

班级名称 CHAR 20 主键

班主任 CHAR 8

学生人数 INT

备注 CHAR 10

注:(1)该表存放全校所有班级的信息,每个班级产生一条记录。

(2)班级号的前2位表示系号,后两位为系内的班级编号,在输入记录内容时应加以区分。

系部表(department)

列名 类型 宽度 规则

系号 CHAR 2 非空、长度为2个字符

系部名称 CHAR 10 主键

班级数 INT

注:该表存放某校所有的系部信息,每个系部产生一条记录。

教师表(teacher)

列名 类型 宽度 规则

教师号 CHAR 4 主键、长度为4个字符

姓名 CHAR 8

性别 CHAR 2 非空、只能取“男”或“女”

出生日期 DATETIME

职称 CHAR 6 只能取以下之一:教授、副教授、讲师、助教、其他

所在系 CHAR 20 非空、外键(内容取自系部表的系部名称)

课程表(course)

列名 类型 宽度 规则

课程号 CHAR 4 主键、长度为4个字符

课程名 CHAR 20

考核方式 CHAR 4 假定只能取以下之一:考试、考查、其他

学分 INT 非空

学时数 INT

注:该表存放某校所有的课程信息,每门课产生一条记录。

成绩表(SC)

列名 类型 宽度 规则

学号 CHAR 8 主键、内容取自学生信息表的学生姓名

课程号 CHAR 20 主键、内容取自课程信息表的课程名称

成绩 INT

注:该表存放某校所有学生的成绩信息,每个学生学习每门课程产生一条记录。

开课信息表(tcc)

列名 类型 宽度 规则

教师号 CHAR 4 主键、内容取自教师信息表的教师号

课程号 CHAR 4 主键、内容取自课程信息表的课程号

班级号 CHAR 4 主键、内容取自班级信息表的班级号

开课学期 CHAR 20

授课地点 CHAR 20

注:该表存放某校开设课程的信息,每个教师教授某个班级的某门课产生一条记录。

2 5 物理设计

数据库的物理设计目标是在选定的DBMS上建立起逻辑设计结构确立的数据库结构,这一过程也称为数据库的物理实现。它主要包括两项工作:

一是根据数据库的结构、系统的大小、系统需要完成的功能及对系统的性能要求,决定选用哪个数据库管理系统。目前,数据库产品市场上比较好的产品有:Microsoft SQL Server、Oracle、IBM DB/2,SYBASE等。

二是根据选用的数据库管理系统的数据库实现方法来建立用户数据库,即创建所需要的数据库、表及其他数据库对象。

本系统选用的DBMS是SQL Server 2000,并在该系统上创建用户数据库jxgl以及下属的7个用户表:student、class、department、teacher、course、sc、tcc,各个表的结构按24节第3点各表给出的具体内容设定。

2 5 实训二

以小组讨论的形式,完成人事工资管理系统用户数据库的设计,要求个人写出用户数据库设计的文档(包括数据库的需求分析、概念设计、逻辑设计和物理设计,表达方法可参考本章相应内容的案例分析部分),每个小组上交一份本系统用户数据库包括的数据表。

第三章 数据库的数据完整性设计

3.1数据完整性的基本概念及内容

正确创建数据库后,需要考虑数据的完整性、数据的安全性等要求。数据的完整性主要指数据的正确性、有效性、相容性,强制实施数据完整性可以确保数据库中的数据的质量。

进行数据完整性设计主要考虑以下几个方面的内容:

1)表名惟一;

由系统强制实施控制。

2)列名惟一;()

由系统强制实施控制。

3)数据行惟一;

通过设置主键约束或触发器来实施控制。

4)列值非空;

通过设置非空约束来实施控制。

5)列值惟一性

通过设置惟一约束或惟一索引来实施控制。

6)列值满足一定的条件

通过设置检查约束或触发器来实施控制。

7)数据的一致性和有效性

通过设置外键约束或触发器来实施控制。

至于具体要对数据库的哪一个表的哪一项数据进行什么样的数据完整性设计,还应根据用户的需求来考虑和确定。

3.2 数据完整性的分类与实现方法

在SQL Server关系数据库中,数据完整性分为以下三类:

1 域完整性

域完整性是指一个列的输入有效性,是否允许空值。实现域完整性的方法主要有:限制数据类型(通过设定列的数据类型)、限定格式(通过CHECK约束和规则)或可能值的范围(通过 FOREIGN KEY 约束、CHECK 约束、DEFAULT定义、NOT NULL定义和规则)以及程序控制。

2 实体完整性

实体完整性是指保证表中所有的行唯一。实现实体完整性的方法主要有:索引、UNIQUE约束、PRIMARY KEY约束或 IDENTITY属性以及程序控制。

3 参照完整性

参照完整性也叫引用完整性。参照完整性确保主键(被引用表)和外键(引用表)之间的参照关系。它涉及两个或两个以上表数据的一致性维护。如student表(称为引用表、参照表或子表)的class_id列就是参照class表(称为被引用表、被参照表或父表)的外键。参照完整性可以实现以下两种控制:

(1)存在外键时,被参照表中的这一行不能被删除,主键值也不能改变 (以student和class表的“班级名称”列为例说明)。

(2)若在被参照表中不存在包含相应主键的行时,一个外键值不能插入参照表中(MsgBox "添加记录成功!", vbOKOnly + vbInformation, "提示"

End Sub

Private Sub Command5_Click()

rsClose

Unload Me

End Sub

Private Sub Form_Load()

rsCursorLocation = adUseClient ' 设置在客户端创建游标

rsCursorType = adOpenKeyset '设置游标类型为键集类型

rsLockType = adLockOptimistic '设置打开记录集时的锁定类型为乐观锁,在执行UPdate方法前不锁定编辑的数据

rsOpen "select from teacher", cnn

'在表格上显示class表的记录内容

Set DataGrid1DataSource = rs

DataGrid1Refresh

'将表格上的数据与文本框或下拉列表框绑定

Set Text1DataSource = rs

Text1DataField = "教师号"

Set Text2DataSource = rs

Text2DataField = "姓名"

Set Combo1DataSource = rs

Combo1DataField = "所在系"

Set Text3DataSource = rs

Text3DataField = "出生日期"

Set Text4DataSource = rs

Text4DataField = "从教日期"

Set Combo2DataSource = rs

Combo2DataField = "性别"

Set Combo3DataSource = rs

Combo3DataField = "职称"

Set Combo4DataSource = rs

Combo4DataField = "政治面貌"

Set Combo5DataSource = rs

Combo5DataField = "学历"

Set Text7DataSource = rs

Text7DataField = "家庭住址"

Set Text5DataSource = rs

Text5DataField = "联系电话"

Set Text6DataSource = rs

Text6DataField = "备注"

'下拉列表框提供班级名称

Combo1Clear

rs1Open "select 系部名称 from department", cnn

While Not rs1EOF()

Combo1AddItem Trim(rs1Fields("系部名称"))

rs1MoveNext

Wend

rs1Close

End Sub

对其余几个表的数据进行增、删、改 *** 作的窗体的设计方法与上述类拟。

(图放不上去呀 我自己做的E-R图)

计算机科学与信息学院

课程设计报告

课程名称: 数据库概论课程设计

专 业: 网络方向

班 级: ====

学 号: ===

姓 名: 闫娟

题 目: 网上购书系统

指导教师: 肖淑芬

2011年6月

目录

一、课程设计的背景来源 3

二、网上购书系统调查及前景 4

三、网上购书设计思想 4

1、前台系统工作流程 5

2、后台系统工作流程 6

四、网上书店工作过程的内容 6

五、数据库设计 7

1、数据项 7

2、 数据结构 8

3、关系模式的设计 8

4、视图的设计 9

六、网上购书E-R图 10

六、系统的源程序 15

七、系统评价及心得体会 20

一、课程设计的背景来源

1,其实写这个课程设计写得比较匆忙,马上其他可就要考试了,本想找个男的题目来挑战下自己,后来还是因为时间需要,所以选了个相对来说我们生活比较容易接近的

2,随着现在社会的发展,网络已经成为一个市场很大的交易平台,很多人由于时间需要或者各方面原因都把网上购物作为一种消费方式,有时我们在书店要花很长时间去找一本书,有时还找不到,记得有次在孝感学院图书馆找一本概率论辅导书,花了很长很长时间呀,所以我深有体会,还是感觉在网上购书比较简单,方便。

3,班上有很多同学都从事网上购物,我刚好想利用自己的专业知识来学习下这方面的知识,自己查查资料,把这个课程设计做好。

二、网上购书系统调查及前景

人们喜欢通过阅览书籍拓展自己的知识视野,可在实际生活的购书过程中人们却遇到了不少麻烦,比如购书人多,挑书难,搬书重等,因此既方便又快捷的网络购书便成为了一种很有潜力的购书消费方式。信息时代,电子商务已经成为我们现实生活中不可缺少的一个重要组成部分,同时它以一种特殊的方式改变着我们的生活。根据调查结果显示,网民上网以获取信息为主要目的占5 31%。目前我国上网购物的群体中,绝大多数是年轻人, 他们大多数是收入稳定、文化水平较高的中青年,网上消费已经日益成为他们生活中的一种重要的消费方式,他们成为了最有潜力的未来网上消费者。

三、网上购书设计思想

首先网上购书系统听起来是个很杂的程序,因为有很多很多书,也有很多很多人来买,但是其实我们简单的可以把它分为两个模块,这样我们就能很好的理解了,网上书店主要由前台会员管理模块和后台管理员模块两部分组成。

前台功能模块主要用于实现会员注册,登录,修改个人信息,分类查看书目信息、购书、管理购物车、结帐、查看各种服务条款等功能。

后台管理模块主要用于实现后台管理人员对会员,商品,物流,订单和系统的管理等功能。

1、前台系统工作流程

首先当我们用户登陆这个网站时,一开始就会出现让你登陆,如果是你会员,你可以直接登录,如果你不是会员,你要注册个账号。

1、 当你是会员时,你可以查看你的各项服务,比如说上次你收藏了什么书籍,以及你喜欢的书的种类,在可以看下前几次你购买书的情况,在可以修改个人信息,修改密码等,你也可以查看自己网上交易情况,看下自己买的书的情况,以及看上什么书了,可以把它放回购物车,方便自己购买。

2、 当你是非会员时,你要先进行注册,填写自己的基本信息,当你填好后,你也是其中一员了,你也同样可以向会员那样找自己的书了,相对来说比较方便。

3、 还有人不注册,只是进来逛下网站,看看自己是否有必要买一些书。

2、后台系统工作流程

后台系统工作流程主要用于实现后台管理人员对会员,商品,物流,订单和系统的管理等功能,他要对会员的登记进行统计,以及购物等方面的内容管理

四、网上书店工作过程的内容

1、管理员信息,包括数据项有:管理员编号、管理员账号、管理员密码。

2、会员信息,包括数据项有:会员账号、会员密码、会员昵称、会员E-mail、会员级别(管理员设定)。

3、图书信息,包括数据项有:图书编号、图书名称、作者、出版社编号、出版日期、图书类别编号、图书简介。

(⑴出版社信息,包括数据项有:出版社编号、出版社名称。

⑵图书类别信息,包括数据项有:图书类别编号、图书类别名称。)

4、图书订单,包括数据项有:会员账号、下定单日期、收货地址、收货地址邮编、收货人姓名、收货人****、送货方式编号、总费用、图书名称、现已售出量情况。

5、购物车,包括数据项有:会员账号、每种图书名称、每种图书市场价格、每种图书网站价格、每种图书数量、每种图书的价格、图书总价。

五、数据库设计

1、数据项

数据项

数据项名 数据类型 长度 别名 取值范围

会员编号 字符型 15 会员的编号

姓名 文本型 20 会员的姓名

密码 文本型 20 会员的密码

电话 字符型 12 会员的电话

地址 文本型 50 会员的地址

商品编号 字符型 15 商品的编号

类型 文本型 10 商品的类型

名称 文本型 20 商品的名称

价格 整型 6 商品的价格

简介 文本型 500 商品的简介

型 商品的

购物车编号 字符型 10 购物车的编号

商品数量 整型 10 购买商品的数量

订单编号 字符型 15 购物时生成的订单

订单日期 时间型 10 购买商品的时间

2、 数据结构

系统需求数据结构

数据结构名 含义说明 组成

会员 记录会员的基本信息 会员编号、姓名、密码、电话、地址

商品 记录销售商提供的商品信息 商品编号、类型、名称、价格、简介、

订购 记录会员的购物信息 会员编号、商品编号、订单编号、订单日期

购物车 存储会员需要购买的商品 会员编号、商品编号、购物车编号、商品数量

3、关系模式的设计

会员

数据项名 数据类型 长度 别名 是否为空 主外键

会员编号 字符型 15 会员编号 否 主键

姓名 文本型 20 姓名 否

密码 文本型 20 密码 否

电话 字符型 12 电话 否

地址 文本型 50 地址 否

商品

数据项名 数据类型 长度 别名 是否为空 主外键

商品编号 字符型 15 商品编号 否 主键

类型 字符型 15 类型 否

名称 字符型 20 名称 否

价格 整型 10 价格 否

简介 文本型 500 简介

image型 100

订购

数据项名 数据类型 长度 别名 是否为空 主外键

会员编号 字符型 15 会员编号 否 外键 主键

商品编号 字符型 10 商品编号 否 外键

订单编号 字符型 10 订单编号 否

订单日期 日期型 10 订单日期 否

购物车

数据项名 数据类型 长度 别名 是否为空 主外键

会员编号 字符型 15 会员编号 否 主键

商品编号 字符型 15 商品编号 否

购物车编号 字符型 15 购物车编号 否

商品数量 整型 6 商品数量 否

4、视图的设计

搜索商品视图

数据项名 数据类型 长度 别名 是否为空

名称 字符型 10 名称 否

类型 字符型 10 类型 否

价格 整型 10 价格 否

简介 文本型 4 简介 否

六、网上购书E-R图

否 是

网上书店系统业务流程:

网上书店前台管理功能结构图:

六、系统的源程序

ackage cart;

import javautilVector;

public class Cart {

Vector v = new Vector();

String act = null;

String item = null;

private void addItem(String id) {

vaddElement(id);

}

private void removeItem(String id) {

vremoveElement(id);

}

public void setItem(String id) {

item = id;

}

public void setAct(String s) {

act = s;

}

public String[] getItems() {

String[] s = new String[vsize()];

vcopyInto(s);

return s;

}

public void processRequest() {

if (actequals("add"))

addItem(item);

else if (actequals("remove"))

removeItem(item);

// reset at the end of the request

reset();

}

// reset

private void reset() {

act = null;

item = null;

}

public void clearAll(){

vremoveAllElements();

}

}

现实页面信息,提示等 *** 作的设计:

package spage;

import javasql;

public class ShowPage

{

private String str = "";

//显示页号为p的一页(user)

public String printPage(ResultSet rs, int p, int size)

{

str = "";

//将访问游标定位到页号为p的页要显示的第一条记录的位置

try {

for(int k=0;k<(p-1)size;k++)

rsnext();

}

catch(SQLException e) { }

for(int iPage=1; iPage<=size; iPage++) {

str += printRow(rs,iPage,p);

try {

if(!rsnext()) break;

}

catch(Exception e) { }

}

return str;

}

//显示单行记录(user)

public String printRow( ResultSet rs ,int i,int p)

{

String temp = "";

try {

int id=rsgetInt("userid");

temp+="<tr align='center' bgcolor='#FFFAF7'>";

temp+="<td><a href='javaScript:seeUser("+id+")'>"+rsgetString("name")+"</a></td>";

temp+="<td>"+rsgetString("sex")+"</td>";

temp+="<td>"+rsgetString("phone")+"</td>";

temp+="<td>"+rsgetString("address")+"</td>";

temp += "<td><a href='updateuserjspupdateid="+id+"'>修改</a></td>";

temp += "<td><a href='dealdeleteuserjspdelid="+id+"'>删除</a></td>";

temp += "</tr>";

}

catch(SQLException e) { }

return temp;

}

//显示页号为p的一页(book)

public String bookPage(ResultSet rs, int p, int size,boolean f)

{

str = "";

//将访问游标定位到页号为p的页要显示的第一条记录的位置

try {

for(int k=0;k<(p-1)size;k++)

rsnext();

}

catch(SQLException e) { }

for(int iPage=1; iPage<=size; iPage++) {

str += bookRow(rs,iPage,p,f);

try {

if(!rsnext()) break;

}

catch(Exception e) { }

}

return str;

}

//显示单行记录(book)

public String bookRow( ResultSet rs ,int i,int p,boolean f)

{

String temp = "";

try {

int id=rsgetInt("bookid");

temp+="<tr align='center'>";

temp+="<td><a href='detailjspdetailid="+id+"'>"+rsgetString("bookname")+"</a></td>";

temp+="<td>"+rsgetString("author")+"</td>";

temp+="<td>"+rsgetString("pubhouse")+"</td>";

temp+="<td>"+rsgetString("price")+"</td>";

if(f)

{

temp+="<td>"+rsgetString("salenum")+"</td>";

temp+="<td><a href='updatebookjspupdateid="+id+"'>修改</a></td>";

temp+="<td><a href='dealdeletebookjspdelid="+id+"'>删除</a></td>";

}

else

temp+="<td><a href='dealcartjspdealid="+id+"&act=add'>加入购物车</a></td>";

temp += "</tr>";

}

catch(SQLException e) { }

return temp;

}

//显示页号为p的一页(order)

public String orderPage(ResultSet rs, int p, int size,boolean f)

{

str = "";

//将访问游标定位到页号为p的页要显示的第一条记录的位置

try {

for(int k=0;k<(p-1)size;k++)

rsnext();

}

catch(SQLException e) { }

for(int iPage=1; iPage<=size; iPage++) {

str += orderRow(rs,iPage,p,f);

try {

if(!rsnext()) break;

}

catch(Exception e) { }

}

return str;

}

//显示单行记录(order)

public String orderRow( ResultSet rs ,int i,int p,boolean f)

{

String temp = "";

try {

String orderid=rsgetString("orderid");

temp+="<tr align='center'>";

temp+="<td><a href='detailorderjspdetailid="+orderid+"'>"+orderid+"</a></td>";

temp+="<td>"+(rsgetString("orderdate"))substring(0,10)+"</td>";

temp+="<td>"+rsgetString("orderstate")+"</td>";

if(f)

{

temp += "<td><a href='javaScript:seeUser("+rsgetString("userid")+")'>"+rsgetString("username")+"</a></td>";

temp += "<td><a href='dealdeleteorderjspdelid="+orderid+"'>删除</a></td>";

}

temp+="</tr>";

}

catch(SQLException e) { }

return temp;

}

}

七、系统评价及心得体会

1、了解很多关于网上购书程序上的知识,要写这个课程设计,我把有关网上购书的概论也看了下,发现不知道是这个设计太简单还是怎么回事,网上出现很多此样的版本,很有有更新,可能我们对数据库设计的程序还不是很了解吧。

2,要写数据库E-R图,发现很难画啊,还要把线段连来连去,觉得在画图上面花了很多时间

3,一定要先了解数据情况,要先熟悉了网上购书的基本 *** 作,在开始研究,最好自己去试一下网上购书,我就自己亲自去点击了下网上购书网,然后才下手写的课程设计。

1. 对图书馆的信息建几个表,考虑表之间的关系。

2.系统功能的基本要求:

a) 对数据库的编辑功能:对图书馆信息记录的添加、修改、删除。

b) 对图书的统计(国内图书、国外图书、计算机图书、外语图书、中文图等各类图书的统计)。

c) 对图书的查询(按关键字查询、模糊查询等);

d) 对报表的打印;

e) 界面友好。

1、概述

包括项目背景、编写目的、软件定义、开发环境等内容。

2、需求分析

问题陈述、需完成的功能。

用数据流图、数据字典、判断树等完成。

3、数据库概念设计

画出ER模型图

4、数据库逻辑设计

把ER模型图转换为关系表。

描述每一个基本表关系。要求所有关系达到BCNF范式。

定义视图、定义索引、主关键字、定义权限。

5 物理设计

主要用到存取方法

6、结束语

写出完成本课程设计的心得,领会数据库理论与软件开发实践的关系。有哪些收获。软件还需要哪些改进。

设计结果:设计报告,源程序代码。

《数据库原理及应用》课程设计

数据库原理课程设计任务书

一、目的

1 掌握计算机管理信息系统设计的一般方法,主要包括系统分析、系统设计的组织和实施。

2 关系型数据库管理系统的编程技术,并能独立完成一般小系统的程序设计、调试运行等工作。

3 培养把所学知识运用到具体对象,并能求出解决方案的能力。

二、任务(任选其一)

A运用关系型数据库管理系统,实现本院图书馆管理信息系统。具体要求如下:

—图书、资料的登记、注销和查询。

—借书证管理,包括申请、注销借书证,查询借书证持有人等。

—借还图书、资料的登记、超期处理,超期拒借等。

—图书、资料查询,借、还图书和资料情况查询。

—图书、资料借阅情况的统计分析,拒此作为图书馆图书、资料订够的依据之一。(本项不作为基本要求)

B 运用关系型数据库管理系统,实现服务电话管理系统

向客户现场派技术人员的服务公司可以用服务电话管理系统跟踪客户、员工、工作订单、发票、付款等等。

要求:

数据库要存储以下信息:

—客户信息

—客户工需单信息

—完成工需单所需人工

—完成工需单所需部件

—部件信息

—付款信息

—雇员信息

完成的功能:

—输入/查看 客户工需单信息

—输入/查看部件、雇员等其它信息

—付款

—打印发票等

三、结果形式

1. 设计报告:含E-R图、数据字典、关系模式、关系实例、查询描述、关系代数、SQL实现的查询语言及查询结果。

2. 上机实现。

四、考核

1. 课程设计态度(20分)。

2. 递交的书面材料(40分)。

3. 上机运行情况(40分)

目录

1问题描述 2

11背景 2

12数据需求 2

13事物需求 3

14关系模式 3

2方案图表设计 3

21 E-R图 3

22数据流程图 8

23数据字典 9

24关系图: 11

3数据库源代码 12

31数据库建立 12

32数据初始化 14

4结果数据处理 17

41单表查询 17

42超期处理 19

43还书 *** 作 20

44借书 *** 作 22

45书籍状态 24

46读者状态 24

5结束语 26

51课程设计心得 26

1问题描述

11背景

随着图书馆规模的不断扩大,图书数量也相应的增加,有关图书的各种信息量也成倍增加,面对着庞大的信息量,传统的人工方式管理会导致图书馆管理上的混乱,人力与物力过多浪费,图书馆管理费用的增加,从而使图书馆的负担过重,影响整个图书馆的运作和控制管理,因此,必须制定一套合理、有效,规范和实用的图书管理系统,对图书资料进行集中统一的管理。

另一方面,IT产业和Internet获得了飞速发展,计算机应用已渗透到了各个领域,引起信息管理的革命,实现了信息的自动化处理,提高了处理的及时性和正确性。

提高图书管理工作效率,作到信息的规范管理,科学统计和快速查询,让图书馆更好的为学校,社会服务。

12数据需求

图书馆管理信息系统需要完成功能主要有:

1 读者基本信息的输入,包括借书证编号、读者姓名、读者性别。

2.读者基本信息的查询、修改,包括读者借书证编号、读者姓名、读者性别等。

3.书籍类别标准的制定、类别信息的输入,包括类别编号、类别名称。

4.书籍类别信息的查询、修改,包括类别编号、类别名称。

5.书籍库存信息的输入,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期、登记日期。

6.书籍库存信息的查询,修改,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期登记日期等。

7.借书信息的输入,包括读者借书证编号、书籍编号、借书日期。

8.借书信息的查询、修改,包括借书证编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期等。

9.还书信息的输入,包括借书证编号、书籍编号、还书日期。

10.还书信息的查询和修改,包括还书读者借书证编号、读者姓名、书籍编号、书籍名称、借书日期、还书日期等。

11.超期还书罚款输入,还书超出期限包括超出期限还书的读者借书证号,书籍编号,罚款金额。

12.超期还书罚款查询,删除,包括读者借书证编号、读者姓名、书籍编号、书籍名称,罚款金额等

13事物需求

(1)在读者信息管理部分,要求:

a可以查询读者信息。

b可以对读者信息进行添加及删除的 *** 作。

(2 )在书籍信息管理部分,要求:

a可以浏览书籍信息,要求:

b可以对书籍信息进行维护,包括添加及删除的 *** 作。

(3)在借阅信息管理部分,要求:。

a可以浏览借阅信息。

b可以对借阅信息进行维护 *** 作。

(4)在归还信息管理部分,要求:

a可以浏览归还信息

b对归还信息可修改维护 *** 作

(5)在管理者信息管理部分,要求:

a显示当前数据库中管理者情况。

b对管理者信息维护 *** 作。

(6)在罚款信息管理部分,要求:

a可以浏览罚款信息

b对罚款信息可以更新

14关系模式

(一) 书籍类别(种类编号,种类名称)

(二) 读者(借书证编号,读者姓名,读者性别,读者种类,登记时期)

(三) 书籍(书籍编号,书籍名称,书籍类别,书记作者,出版社名称,出版日期,登记日期)

(四) 借阅(借书证编号,书籍编号,读者借书时间)

(五) 还书(借书证编号,书籍编号,读者还书时间)

(六) 罚款(借书证编号,读者姓名,借书证编号,书籍编号,读者借书时间)

以上通过关系代数方法的进行运算得到所需要的结果,在实验结果中可以看到。

2方案图表设计

21 E-R图

根据1)所要实现的功能设计,可能建立它们之间的关系,进而实现逻辑结构功能。

图书管理信息系统可以划分的实体有:书籍类别信息实体、读者信息实体、书籍信息实体、借阅记录信息实体,归还记录信息实体。用E-R图一一描述这些实体。

211类别实体E-R图:

图2-1类别实体E-R图

212读者信息实体E-R图:

图2-2 读者信息实体E-R图

213信息实体E-R图:

图2-3信息实体E-R图

214记录信息实体E-R图:

图2-4 记录信息实体E-R图

215记录信息实体E-R图:

图2-5记录信息实体E-R图

216罚款信息实体E-R图:

图2-6罚款信息实体E-R图

216总的信息实体E-R图:

图2-7总的信息实体E-R图

22数据流程图

D5

归还信息录入 基本信息录入

D2

D1

基本信息录入 基本信息录入

D3

D4

借阅信息录入

读者信息返回 书籍信息返回

图2-7系统的数据流程图

23数据字典

表2-1 book_sytle 书籍类别信息表

表中列名 数据类型 可否为空 说明

bookstyleno varchar not null(主键) 种类编号

bookstyle Varchar not null 种类名称

表2-2 system_readers读者信息表格

表中列名 数据类型 可否为空 说明

readerid varchar not null(主键) 读者借书证号

readername varchar not null 读者姓名

readersex varchar not null 读者性别

readertype varchar null 读者种类

regdate datetime null 登记日期

表2-3 system_book书籍信息表

表中列名 数据类型 可否为空 说明

bookid Varchar Not null(主键) 书籍编号

bookname Varchar Not null 书籍名称

bookstyle Varchar Not null 书籍类别

bookauthor Varchar Not null 书籍作者

bookpub Varchar Null 出版社名称

bookpubdate Datetime Null 出版日期

bookindate Datetime Null 登记日期

isborrowed Varchar Not Null 是否被借出

表2-4 borrow_record 借阅记录信息表

表中列名 数据类型 可否为空 说明

readerid Varchar Not null(外主键) 读者借阅证编号

bookid Varchar Not null(外主键) 书籍编号

borrowdate Varchar Not null 读者借书时间

表2-5 return_record 借阅记录信息表

表中列名 数据类型 可否为空 说明

readername Varchar Not null(外主键) 读者借阅证编号

readerid Varchar Not null(外主键) 书籍编号

returndate datetime Not null 读者还书时间

表2-6 reader_fee 罚款记录信息表

readerid varchar Not null 读者借书证编号

readername varchar Not null 读者姓名

bookid varchar Not null(外主键) 书籍编号

bookname varchar Not null 书籍名称

bookfee varchar Not Null 罚款金额

borrowdate datetime Not Null 借阅时间

24关系图:

图2-8数据库存表关系图

3数据库源代码

31数据库建立

311创建数据库

USE master

GO

CREATE DATABASE librarysystem

ON

( NAME = librarysystem,

FILENAME = 'd:\librarysystemmdf',

SIZE = 10,

MAXSIZE = 50,

FILEGROWTH = 5 )

LOG ON

( NAME = 'library',

FILENAME = 'd:\librarysystemldf',

SIZE = 5MB,

MAXSIZE = 25MB,

FILEGROWTH = 5MB )

GO

312书本类别表建立

create table book_style

(

bookstyleno varchar(30) primary key,

bookstyle varchar(30)

)

313创建书库表

create table system_books

(

bookid varchar(20) primary key,

bookname varchar(30) Not null,

bookstyleno varchar(30) Not null,

bookauthor varchar(30),

bookpub varchar(30) ,

bookpubdate datetime,

bookindate datetime ,

isborrowed varchar (2) ,

foreign key (bookstyleno) references book_style (bookstyleno),

)

314借书证表建立

create table system_readers

( readerid varchar(9)primary key,

readername varchar(9)not null ,

readersex varchar(2) not null,

readertype varchar(10),

regdate datetime

)

315借书记录表建立

create table borrow_record

( bookid varchar(20) primary key,

readerid varchar(9),

borrowdate datetime,

foreign key (bookid) references system_books(bookid),

foreign key (readerid) references system_readers(readerid),

)

316还书记录表建立

create table return_record

( bookid varchar(20) primary key,

readerid varchar(9),

returndate datetime,

foreign key (bookid) references system_books(bookid),

foreign key (readerid) references system_readers(readerid)

)

317罚款单表建立/

create table reader_fee

( readerid varchar(9)not null,

readername varchar(9)not null ,

bookid varchar(20) primary key,

bookname varchar(30) Not null,

bookfee varchar(30) ,

borrowdate datetime,

foreign key (bookid) references system_books(bookid),

foreign key (readerid) references system_readers(readerid)

)

32数据初始化

321将书籍类别加入表book_style中

insert into book_style(bookstyleno,bookstyle)values('1','人文艺术类')

insert into book_style(bookstyleno,bookstyle)values('2','自然科学类')

insert into book_style(bookstyleno,bookstyle)values('3','社会科学类')

insert into book_style(bookstyleno,bookstyle)values('4','艺术类')

insert into book_style(bookstyleno,bookstyle)values('5','政治经济类')

insert into book_style(bookstyleno,bookstyle)values('6','工程技术类')

insert into book_style(bookstyleno,bookstyle)values('7','语言技能类')

322将已有的图书加入system_books表中(定义相同的作者出版社的书本编号不一样)

insert

into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub,bookpubdate, bookindate, isborrowed )

values('00125415152','计算机组成原理','6','王爱英','清华大学出版社','2001-01-03','2003-11-15','1');

insert

into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub,bookpubdate, bookindate, isborrowed )

values('00125415153','计算机组成原理','6','王爱英','清华大学出版社','2001-01-03','2003-11-15','1');

insert

into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )

values('00456456','数据库原理','6','萨师煊','高等教育出版社','2007-07-02','2007-09-15','1');

insert

into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub,bookpubdate, bookindate, isborrowed )

values('12215121','C程序设计','6','谭浩强','清华大学出版社','2002-04-02','2004-03-14','1');

insert

into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )

values('9787308020558','计算机体系结构','6','石教英','浙江大学出版社','2004-10-03','2006-11-15','1');

insert

into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )

values('45456141414','数据结构(C语言版)','6','吴伟民,严蔚敏','清华大学出版社','2002-06-28','2004-01-21','1');

insert

into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )

values('5455515','中华历史5000年','1','吴强','北京大学出版社','2005-04-03','2006-05-15','1');

insert

into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )

values('015115','古代埃及','3','赵文华','北京大学出版社','2001-02-02','2002-09-15','1');

insert

into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )

values('1514514','日本文化','1','吴小鹏','北京大学出版社','2002-04-02','2004-03-14','1');

insert

into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )

values('15154656','微观经济学','5','李小刚','北京大学出版社','2000-10-03','2001-11-15','1');

insert

into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )

values('5658','影视文学','4','苏庆东','北京大学出版社','1999-02-28','2000-01-21','1');

insert into

system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )

values('565800020','探索宇宙奥秘','2','苏庆东','北京大学出版社','1999-02-28','2000-01-21','1');

323将已有图书证的读者加入system_readers表中/

insert into system_readers(readerid,readername,readersex,readertype,regdate)

values('X05620207','陈远鹏','男','学生','2005-9-23 14:23:56')

insert into system_readers(readerid,readername,readersex,readertype,regdate)

values('X05620206','陈特','男','学生','2005-09-30 13:24:54623')

insert into system_readers(readerid,readername,readersex,readertype,regdate)

values('X05620204','赵铭静','女','学生','2005-09-27 11:24:54123')

insert into system_readers(readerid,readername,readersex,readertype,regdate)

values('X05620202','潘虹','女','学生','2005-09-30 13:24:54473')

insert into system_readers(readerid,readername,readersex,readertype,regdate)

values('008415','蒋伟','男','教师','2004-04-30 09:24:54478')

insert into system_readers(readerid,readername,readersex,readertype,regdate)

values('001456','李叶风','女','教师','2004-04-30 09:24:54478')

324添加已借书读者的记录,同时将在已借出的借阅标记置0/

insert into borrow_record(bookid,readerid,borrowdate)

values('00125415152','X05620202','2007-09-27 11:24:54123')

update system_books

set isborrowed=0

where bookid='00125415152'

insert into borrow_record(bookid,readerid,borrowdate)

values('00125415153','X05620206','2007-12-27 08:26:51452')

update system_books

set isborrowed=0

where bookid='00125415153' and isborrowed='1'

insert into borrow_record(bookid,readerid,borrowdate)

values('5455515','X05620207','2007-12-27 08:26:51452')

update system_books

set isborrowed=0

where bookid='5455515' and isborrowed='1'

insert into borrow_record(bookid,readerid,borrowdate)

values('015115','X05620204','2007-10-21 12:11:51452')

update system_books

set isborrowed=0

where bookid='015115' and isborrowed='1'

insert into borrow_record(bookid,readerid,borrowdate)

values('15154656','001456','2007-12-28 14:11:51312')

update system_books

set isborrowed=0

where bookid='15154656' and isborrowed='1'

insert into borrow_record(bookid,readerid,borrowdate)

values('565800020','008415','2007-08-28 15:11:31512')

update system_books

set isborrowed=0

where bookid='565800020' and isborrowed='1'

4结果数据处理

41单表查询

411表book_style中查询演示:

图4-1 表book_style中内容

412表system_books中查询演示:

图4-2 表system_books中内容

413将已有图书证的读者加入system_readers表中结果查询:

图4-3 表system_readers中内容

414借书纪录表borrow_record结果查询:

图4-4 表borrow_record中内容

42超期处理

421现在对已有借书证的读者进行查询借书是否超期(这里归定30天):

说明:当前的getdate()以日期为2008年1月6日计算

图4-4 选出借出超过30天的读者

422同时也可以用语句超过天数的读者进行罚款,加入到罚款单里面,一天以03元扣除计算:

SQL语言:

insert into reader_fee(readerid,readername,bookid,bookname,bookfee,borrowdate)

select system_readersreaderid 读者借书证编号 ,readername 读者姓名,

system_booksbookid 书籍编号,bookname 书名,

03(Datediff(day,convert(smalldatetime,borrowdate),getdate())-30) 超过时间天数,

borrowdate 借书时间

from borrow_record ,system_readers ,system_books

where system_readersreaderid=borrow_recordreaderid

and system_booksbookid=borrow_recordbookid

and Datediff(day,convert(smalldatetime,borrowdate),getdate())>=30

(所影响的行数为 3 行)

select readerid 书读者借书证编号,readername 读者姓名,

bookid 书籍编号,bookfee 超期罚款

from reader_fee

形成各本书对应的罚款金额,按03元每天算

图4-5查看罚款单

43还书 *** 作

431现在对某一读者进行还书 *** 作:

1.首先还书要在还书纪录中添加一条还书纪录

2.其次删除相应书本的借阅纪录

3.最后在书库中标记该本书为1,表示归还了未借,可供其他读者借阅

说明:学号为X05620207 姓名为陈远鹏 借阅的565800020书籍编号进行归还。

SQL语言:

insert into return_record(bookid,readerid,returndate)

select bookid,readerid,getdate()

from borrow_record

where bookid='565800020'

(所影响的行数为 1 行)

delete

from borrow_record

where bookid='565800020'

(所影响的行数为 1 行)

update system_books

set isborrowed=1

where bookid='565800020'

(所影响的行数为 1 行)

三个表的结果如图:

图4-6 增加了565800020纪录

图4-7 565800020这本书在借书纪录里没有了

图4-8 标记设为了‘1’

说明:这本书重新回到未被借出标记为1(注,相同的书其编号是不同的)

其结果为还书成功,相应的各表都有变化,对于罚款单通过借阅记录表borrow_record中更新。

44借书 *** 作

441查询未被借出的书本:

图4-9

442查询已被借出的书本:

图4-10

443申请借书证:

SQL语言:

Insert into system_readers(readerid,readername,readersex,readertype,regdate)

values('X05620211','小华','男','学生',getdate())

图4-11

说明:查询相应的纪录增加了小华这样一个读者的借书证纪录:

444注销借书证:

说明:

1.在注销之前执行所有的还书过程,就是上面写到的所述SQL语句,然后执行

delete from system_readers where readerid=' X05620211',

2.小华借书证纪录就被删除了,同时要删除和小华归还纪录的内容

delete from return_record where readerid=' X05620211',

445查询所有书所对应的类别:

图4-12

45书籍状态

451查询所有工技术类的书:

图4-13

452查询清华大学出版社出版的书:

图4-14

46读者状态

461查询什么人借了什么书:

SQL语言:

select readername 读者姓名,bookname 书籍名称

from borrow_record,system_books,system_readers

where system_readersreaderid=borrow_recordreaderid

and system_booksbookid=borrow_recordbookid

图4-15

462指定潘虹借了什么书:

SQL语言:

select readername 读者姓名,bookname 书籍名称

from borrow_record,system_books,system_readers

where system_readersreaderid=borrow_recordreaderid

and system_booksbookid=borrow_recordbookid

and readername='潘虹'

图4-16

5结束语

51课程设计心得

通过此次数据库的课程设计,真正达到了学与用的结合,增强了对数据库方面应用的理解,对自己今后参与开发数据库系统积累了不少经验,在实验过程中,从建立数据开始,对灵据库设计理念及思想上有更高的认识,从需求分析,到概念设计和逻辑设计,E-R图的表示,数据字典的创建,懂得了不少有关数据库开发过程中的知识,在实验中建表,及其关系模式,关系代数的建立及理解,将SQL语的查询语句用得淋漓尽致,增强了自己在数据库中应用SQL语言的灵活性,其中包括,插入、删除、修改、查询,牵涉表和表之间的联系,主建与外主键的定义,约束项的设置,使逻辑更严密,在学习过程中,我也能过上网查了不少资料,也看了一些别人设计的图书馆管理信息系统的设计报告,学以致用,自我创新,独立完成了这份自己的报告,从中在学到用,从用又到学,不断修改,系统更新。虽然不能达到完善系统,但也做到了尽善尽美,加强理论学习对完善系统会有很多帮助,不管怎么说,对这次做的课程设计自己觉得还算满意。

我有学生管理数据库设计案例 可以看着例子来做

非常详细的

设计报告:

包含E-R图、数据字典、关系模式、关系实例、查询描述、关系代数、SQL实现的查询语言及查询结果

选我我传给你 给邮箱

这是以下目录

1问题描述 2

11背景 2

12数据需求 2

13事物需求 3

14关系模式 3

2方案图表设计 3

21 E-R图 3

22数据流程图 8

23数据字典 9

24关系图: 11

3数据库源代码 12

31数据库建立 12

32数据初始化 14

4结果数据处理 17

5结束语 26

51课程设计心得 26

以上就是关于求一份SQL server数据库课程设计报告全部的内容,包括:求一份SQL server数据库课程设计报告、100分求一份数据库原理课程设计的实验报告、求一份图书管理系统的数据库设计方案等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/sjk/9843372.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存