sqlserver数据库实训一.docx

上传人:b****5 文档编号:7714363 上传时间:2023-01-25 格式:DOCX 页数:21 大小:264.02KB
下载 相关 举报
sqlserver数据库实训一.docx_第1页
第1页 / 共21页
sqlserver数据库实训一.docx_第2页
第2页 / 共21页
sqlserver数据库实训一.docx_第3页
第3页 / 共21页
sqlserver数据库实训一.docx_第4页
第4页 / 共21页
sqlserver数据库实训一.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

sqlserver数据库实训一.docx

《sqlserver数据库实训一.docx》由会员分享,可在线阅读,更多相关《sqlserver数据库实训一.docx(21页珍藏版)》请在冰豆网上搜索。

sqlserver数据库实训一.docx

sqlserver数据库实训一

图书管理系统数据库设计

本实训介绍图书管理系统的内容,由此得出图书管理系统的需求分析和数据建模,本实训通过项目练习,加深对数据库的理论知识的理解,并把数据库理论知识应用到实际工作中,增强在数据库应用方面的实践技能。

实训题目:

图书管理系统数据库设计与实现

通过一个完整的项目设计,以SQLServer2005为后台数据库管理系统,设计本系统数据库(libbook),并创建该数据库。

以C#程序设计语言为前台开发语言进行数据库应用系统开发的技能。

实训纲要

实训目标

本课程实验教学的目的和任务是使学生通过实践环节深入理解和掌握课堂教学内容,使学生得到数据库应用的基本训练,提高其解决实际问题的能力。

实验内容

数据库的模式设计;数据库、表、视图、索引的建立与数据的更新;关系数据库的查询,包括嵌套查询、连接查询等;数据库系统的实现技术,包括事务的概念及并发控制、恢复、完整性和安全性实现机制;简单数据库应用系统的设计实现。

通过图书系统数据库设计项目的学习,让学生自己完成数据库模式的设计,包括各表的结构(列名、列的数据类型、约束等)及表之间的关系,在选定的DBMS上建立数据库表。

用SQL命令和可视化环境(SSMS的图形化工具)分别建立数据库表,体会两种方式的特点。

实验教学重点

本课程的实验教学重点包括:

⑴数据库的模式设计;⑵SQL的数据查询;⑶并发控制、恢复、完整性和安全性实现机制;⑷简单数据库应用系统的设计实现。

实训条件

硬件环境:

CPU为奔腾4以上的计算机。

软件环境:

操作系统为Windows2000,数据库环境为SQLServer2005,VS2005。

实训内容梳理及应用领域、应用方法讲解

下面我们结合图书管理系统的开发,简单讲解一下管理信息系统软件开发的基本过程,详细地阐述数据库的需求分析、概念模型设计、逻辑设计和物理设计的实现方法。

在开发这个软件的过程中,体会如何把数据库理论与实际应用结合起来以及如何按照软件工程的思想来开发软件。

开发一个完善的软件产品是相当部容易的,一般都需要经历问题定义、可行性研究、需求分析、总体设计、详细设计、程序设计、测试和维护这么几个阶段,而且开发总是迭代往复的过程。

需求分析

我们在接到一个软件项目后,首先要对问题进行需求分析。

首先调查与分析设计的对象,对所有可能的数据库用户的数据要求和处理要求,进行全面的了解、收集和分析。

图书管理的任务:

①读者管理。

②编目管理。

③图书流通管理。

④统计分析。

⑤查询、检索功能。

详细设计

图书管理系统总体功能

下面主要是对模块及其相关数据库表的介绍,模块对数据库表的操作。

1、“基础信息维护”用于对图书馆信息、书籍信息、常用词库等项目进行初始化设置。

“图书馆信息”用于设置图书馆的基础信息,包括图书馆名称、馆长、负责人、电话等。

“系统参数设置”用于设置系统运行所需的参数。

“书架设置”用于设置书架的基础信息,内容包括书架号、书架名称等。

“管理员设置”用于设置使用人员及权限。

“图书期刊词库设置”用于设置常用的词库。

2、“读者管理”用于管理读者的相关信息。

“读者类型设置”用于设置读者的类型及相关信息,内容包括类型、图书册数、期刊数、续借次数限制图书、限制期刊等。

“读者档案管理”用于设置读者的相关信息,内容包括编号、条形码、姓名、性别、类型、出生年月、有效证件、证件号码、联系方式、登记日期等。

3、图书管理:

用于管理图书相关信息

“图书档案管理”用于设置图书相关信息,内容包括编号、条形码、书名、类型、作者、译者、ISBN、出版社、价格、页码、书架名称、现存量、入库时间、操作员、简介等。

“图书征订”用于订购新图书,内容包括征订编号、书名、类型、ISBN、出版社、作者、订购者、订购数量、订购单价、订购日期、实际金额、验收日期、操作员等。

4、期刊管理:

用于管理期刊的相关信息

“期刊档案”的内容包括编号、条形码、期刊名、类型、统一刊号、邮发代号、编辑部、出版周期、所属年度、期号、总期号、价格、书架名称、现存量、库存总量、入库时间、操作员、简介等。

5、图书流通管理:

用于管理图书流通环节相关操作

“图书借阅”用于登记读者借阅图书的记录并减少图书在库的库存,登记内容包括借阅编号、图书编号、读者编号、押金、借阅时间、应还时间、操作员等。

“图书归还”用于登记读者归还图书的记录并增加图书在库库存,登记内容包括归还编号、图书编号、读者编号、归还押金、归还时间、操作员等。

6、期刊流通管理:

用于管理期刊流通环节的相关操作。

7、统计分析管理:

为图书管理人员的分析决策提供依据

系统数据流程图

图书管理系统数据库分析

E-R模型设计

根据以上分析,一个基本的图书系统数据库中大致包括40多个数据表,分别存放相应子功能的数据信息,其中“读者信息”和“图书信息”是关键的表,用于存放图书馆读者的信息和文献信息。

其他涉及读者信息和文献信息的数据表,都只记录相应的编号,并根据作为外键的“编号”相对应。

因此“读者信息”、“图书信息”和其他表的关系是1:

N(一对多)的关系。

下面是图书信息、读者信息、图书归还、图书征订、图书借阅、图书罚款六个表的E-R图:

这里仅画了五个表的实体关系图,更多的实体关系图请同学们在设计表的时候画出来。

表设计

E-R模型设计完成后,再把ER模型中的实体集转换成表。

在这个过程中,某些联系也应转换成表,有些表中应适当增加属性。

有些表中的属性应适当删除。

图书实体转变为图书信息表,读者实体转变为读者信息表。

表的具体设计

●读者类型:

保存读者的类型及相关信息

字段名称

数据类型

可否为空

约束条件

类型

varchar(20)

NOT

PrimaryKey

图书册书

smallint

期刊册书

smallint

续借次数

int

限制图书

bit

限制期刊

bit

●读者信息:

保存读者的各种信息

字段名称

数据类型

可否为空

约束条件

条形码

varchar(40)

编号

varchar(20)

NOT

PrimaryKey

姓名

varchar(20)

性别

varchar(8)

类型

varchar(20)

NOT

有效的读者类型中的类型(外键)

出生日期

smalldatetime

有效证件

varchar(60)

证件号码

varchar(60)

联系方式

varchar(100)

登记日期

smalldatetime

有限期至

smalldatetime

操作员

varchar(20)

备注

varchar(100)

图书借阅次数

int

期刊借阅次数

int

是否挂失

bit

●图书类型:

保存图书类型相关信息

字段名称

数据类型

可否为空

约束条件

类型编号

varchar(50)

NOT

PrimaryKey

类型名称

varchar(100)

可借天数

int

●图书信息:

保存图书信息

字段名称

数据类型

可否为空

约束条件

条形码

varchar(40)

编号

varchar(50)

NOT

PrimaryKey

书名

varchar(200)

类型

varchar(100)

作者

varchar(100)

译者

varchar(100)

ISBN

varchar(40)

出版社

varchar(100)

价格

money

页码

int

书架名称

varchar(200)

现存量

int

库存总量

int

入库时间

smalldatetime

操作员

varchar(20)

简介

varchar(100)

借出次数

int

是否注销

bit

NOT

●书架:

保存图书馆内数据的基础信息

字段名称

数据类型

可否为空

约束条件

编号

varchar(50)

PrimaryKey,cluster

书架名称

varchar(200)

●出版社:

保存系统使用者的信息

字段名称

数据类型

可否为空

约束条件

出版社编号

int

NOT

PrimaryKey

ISBN

varchar(40)

出版社名称

varchar(200)

●图书罚款:

保存系统使用者的权限信息

字段名称

数据类型

可否为空

约束条件

罚款编号

intIDENTITY(1,1)

NOT

PrimaryKey

图书编号

varchar(50)

有效图书信息编号(外键)

读者编号

varchar(20)

有效读者信息编号(外键)

罚款日期

smalldatetime

应罚金额

money

实收金额

money

是否交款

bit

备注

varchar(100)

●图书归还:

保存图书归还记录

字段名称

数据类型

可否为空

约束条件

归还编号

intIDENTITY(1,1)

NOT

Primarykey

图书编号

varchar(50)

有效图书信息编号(外键)

读者编号

varchar(40)

退还押金

money

归还时间

smalldatetime

操作员

varchar(20)

确定归还

bit

●图书借阅:

保存图书借阅记录

字段名称

数据类型

可否为空

约束条件

借阅编号

intIDENTITY(1,1)

NOT

Primarykey

图书编号

varchar(50)

有效的图书信息编号(外键)

读者编号

varchar(40)

借阅时间

smalldatetime

应还时间

smalldatetime

续借次数

int

操作员

varchar(20)

状态

varchar(10)

●图书征订:

保存图书征订入库记录

字段名称

数据类型

可否为空

约束条件

征订编号

varchar(50)

NOT

Primarykey

图书编号

varchar(50)

NOT

有效图书信息编号(外键)

订购者

varchar(100)

订购者联系方式

varchar(100)

订购数量

int

订购单价

money

订购日期

smalldatetime

是否验收

bit

Default0

验收日期

smalldatetime

操作员

varchar(20)

●供应商:

字段名称

数据类型

可否为空

约束条件

Code

varchar(200)

●图书丢失:

字段名称

数据类型

可否为空

约束条件

丢失编号

int

NOT

Primarykey

图书编号

varchar(50)

有效的图书信息编号(外键)

读者编号

varchar(40)

赔偿金额

money

操作时间

smalldatetime

操作员

varchar(20)

确定丢失

bit

●图书征订:

字段名称

数据类型

可否为空

约束条件

征订编号

varchar(50)

NOT

Primarykey

图书编号

varchar(50)

NOT

订购者

varchar(100)

订购者联系方式

varchar(100)

订购数量

int

订购单价

money

订购日期

smalldatetime

是否验收

bit

验收日期

smalldatetime

操作员

varchar(20)

●图书类型:

字段名称

数据类型

可否为空

约束条件

类型编号

varchar(50)

NOT

Primarykey

类型名称

varchar(100)

可借天数

int

●图书馆:

字段名称

数据类型

可否为空

约束条件

名称

varchar(200)

馆长

char(10)

负责人

char(10)

电话

varchar(30)

地址

varchar(200)

说明

varchar(200)

备注

varchar(200)

●文献印刷:

字段名称

数据类型

可否为空

约束条件

Code

varchar(40)

●期刊丢失:

丢失编号

int

NOT

Primarykey

期刊编号

varchar(50)

读者编号

varchar(40)

赔偿金额

money

操作时间

smalldatetime

操作员

varchar(20)

●期刊信息:

字段名称

数据类型

可否为空

约束条件

编号

varchar(50)

NOT

Primarykey

条形码

varchar(40)

期刊名

varchar(200)

类型

varchar(100)

统一刊号

varchar(40)

邮发代号

varchar(40)

编辑部

varchar(200)

出版周期

varchar(40)

所属年度

varchar(8)

期号

intNOT

总期号

intNOT

价格

money

书架名称

varchar(200)

现存量

int

库存总量

int

入库时间

smalldatetime

操作员

varchar(20)

简介

ntext

借出次数

int

是否注销

bitNOT

●期刊借阅:

字段名称

数据类型

可否为空

约束条件

借阅编号

int

NOT

Primarykey

期刊编号

varchar(40)

读者编号

varchar(40)

押金

money

借阅时间

smalldatetime

应还时间

smalldatetime

续借次数

int

操作员

varchar(20)

●期刊归还:

字段名称

数据类型

可否为空

约束条件

归还编号

int

NOT

Primarykey

期刊编号

varchar(40)

读者编号

varchar(40)

退还押金

money

归还时间

smalldatetime

操作员

varchar(20)

●期刊征订:

字段名称

数据类型

可否为空

约束条件

征订编号

varchar(50)

NOT

Primarykey

期刊名

varchar(200)

所属年度

varchar(8)

期号

intNOT

类型

varchar(100)

编辑部

varchar(200)

订购者

varchar(100)

订购者联系方式

varchar(100)

订购数量

int

订购金额

money

订购日期

smalldatetime

是否验收

bitNOT

实际金额

money

验收日期

smalldatetime

操作员

varchar(20)

●期刊注销:

字段名称

数据类型

可否为空

约束条件

注销编号

int

NOT

Primarykey

期刊编号

varchar(40)

注销数量

int

注销时间

smalldatetime

操作员

varchar(20)

●期刊类型:

字段名称

数据类型

可否为空

约束条件

类型编号

varchar(50)

NOT

Primarykey

类型名称

varchar(100)

可借天数

int

●期刊罚款:

字段名称

数据类型

可否为空

约束条件

罚款编号

int

NOT

Primarykey

期刊编号

varchar(50)

读者编号

varchar(20)

罚款日期

smalldatetime

应罚金额

money

实收金额

money

是否交款

bit

●管理员:

字段名称

数据类型

可否为空

约束条件

编号

varchar(100)

名称

varchar(20)

密码

varchar(100)

图书管理

bit

NOT

期刊管理

bit

NOT

读者管理

bit

NOT

图书借还

bit

NOT

期刊借还

bit

NOT

系统设置

bit

NOT

系统查询

bit

NOT

排行榜

bit

NOT

系统维护

bit

NOT

系统用到的存储过程:

1、sf_图书征订

createprocsf_图书征订

as

begintran

--验收入库,增加图书库存量

update图书信息set库存总量=isnull(库存总量,0)+b.订购数量,

现存量=isnull(现存量,0)+b.订购数量,入库时间=b.验收日期

from图书信息asa,图书征订asb

wherea.编号=b.图书编号andb.是否验收=0

--设置图书征订记录的标志,标志为已验收

update图书征订set验收日期=getdate(),是否验收=1

where是否验收=0

commit

2、sf_图书借阅

createprocsf_图书借阅

as

begintran

--借书出库,减少图书库存量

update图书信息set现存量=isnull(现存量,0)-1

from图书信息asa,图书借阅asb

wherea.编号=b.图书编号andb.状态='新借'

--设置借阅状态

update图书借阅set续借次数=0,状态='未还'

where状态='新借'

commit

3、sf_图书归还

createprocsf_图书归还

@借阅编号int,@罚款金额money

as

begintran

--借书出库,减少图书库存量

update图书信息set现存量=isnull(现存量,0)+1

from图书信息asa,图书借阅asb

wherea.编号=b.图书编号andb.借阅编号=@借阅编号

--如果罚金不是0,在图书罚款中产生记录

if@罚款金额<>0

insertinto图书罚款(图书编号,读者编号,罚款日期,应罚金额,是否交款)

select图书编号,读者编号,getdate(),@罚款金额,0

from图书借阅where借阅编号=@借阅编号

--插入图书归还表

insertinto图书归还(图书编号,读者编号,归还时间)

select图书编号,读者编号,getdate()

from图书借阅where借阅编号=@借阅编号

--设置借阅状态

update图书借阅set状态='已还'where借阅编号=@借阅编号

commit

实训要求:

1、掌握数据库设计步骤,学会根据实际需要设计表及约束。

2、创建数据库和表及约束。

3、运行提供的代码,执行每个菜单,观察各个菜单对哪些表进行了那些操作,写出菜单与表的对应关系以及做了什么操作。

4、理解系统的代码。

5、写实训报告。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 判决书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1