《网络数据库应用技术》大作业
题 目:图书管理系统数据库设计
学 号: 201304160013
姓 名: 郁有凯
专 业: 物联网应用技术
指导老师: 李锋
完成日期: 2015.6.29
目录
1数据库设计 1
1.1数据库设计步骤 1
1.2数据库设计原则 2
1.3数据库需求分析 3
1.4数据库概念结构设计 4
1.4.1图书管理涉及的实体 4
1.4.2用 E-R 图来表示图书管理的概念模型 4
1.5数据库逻辑设计 4
1.6创建数据库脚本 5
2数据库数据维护与操作 6
2.1插入数据 6
2.2设置约束 6
2.2.1设置主键约束 6
2.2.2设置外键约束 6
2.2.3设置check约束 6
2.2.4设置默认值 6
2.2.5设置规则 6
2.3建立索引 6
2.4创建视图 6
2.5查询 7
1数据库设计
数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。
1.1数据库设计步骤
一个成功的 MIS (信息管理系统)系统,是建立在许多条件之上的,而数据库是其中一个非常重要的条件和关键技术。按照规范设计方法,考虑数据库及其应用系统开发全过程,将信息管理系统所涉及的数据库设计一般分五个阶段:数据库需求分析阶段、概念结构设计阶段、逻辑结构设计阶段、数据库物理设计与加载测试阶段。其具体描述如下:
1.数据库需求分析的任务是将业务管理单证流化为数据流,划分主题之间的边界,绘制出 DFD 图,并完成相应的数据字典。
2.概念设计的任务是从 DFD 出发,绘制出与主题相关的实体——关系图,并列出各个实体与关系的纲要表。
3.逻辑设计的任务是从E-R图与对应的纲要表出发,确定各个实体及关系的表名属性。
4.物理设计的任务是确定所有属性的类型、宽度与取值范围,设计出基本表的主键,将所有的表名与字段名英文化,实现物理建库,完成数据库物理设计字典。
5.加载测试工作贯穿于程序测试工作的全过程,整个录入、修改、查询、处理工作均可视为对数据库的加载测试工作。
数据库设计主要进行数据库的逻辑设计,即将数据按一定的分类、分组系统和逻辑层次组织起来,是面向用户的。数据库设计时需要综合各个部门的存档数据和数据需求,分析各个数据之间的关系,按照 DBMS 提供的功能和描述工具,设计出规模适当、正确反映数据关系、数据冗余少、存取效率高、能满足多种查询要求的数据模型。数据库设计的步骤如下:
1.数据库结构定义:目前的数据库管理系统(DBMS)有的是支持联机事务处理 CLTP(负责对事务数据进行采集、处理、存储)的操作型 DBMS,有的可支持数据仓库、有联机分析处理 CLAP(指为支持决策的制定对数据的一种加工操作)功能的大型 DBMS,有的数据库是关系型的、有的可支持面向对象数据库。针对选择的 DBMS,进行数据库结构定义。
2.数据表定义:数据表定义指定义数据库中数据表的结构,数据表的逻辑结构包括:属性名称、类型、表示形式、缺省值、校验规则、是否关键字、可否为空等。关系型数据库要尽量按关系规范化要求进行数据库设计,但为使效率高,规范化程度应根据应用环境和条件来决定。数据表设计不仅要满足数据存储的要求,还要增加一些如反映有关信息、操作责任、中间数据的字段或临时数据表。
3.存储设备和存储空间组织:确定数据的存放地点、存储路径、存储设备等,备份方案,对多版本如何保证一致性和数据的完整性。
4.数据使用权限设置:针对用户的不同使用要求,确定数据的用户使用权限,确保数据安全。
5.数据字典设计:用数据字典描述数据库的设计,便于维护和修改。
1.2数据库设计原则
要设计出一个好的信息管理系统数据库,除满足系统所要求的功能外,还必须遵守下列原则:
●基本表的个数越少越好。
●主键的个数越少越好。键是表间连接的工具,主键越少,表间的连接就越简单。
●字段的个数越少越好。
●所有基本表的设计均应尽量符合第三范式。
数据库的设计中,如何处理多对多的关系和如何设计主键,是两个有着较大难度、需要重点考虑的问题。下面着重从 SQL 应用、数据库设计范式和查询优化等方面来分析本课题的系统关键技术和实现难点并加以解决。
1.3数据库需求分析
用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输入和输出。
针对一般图书管理信息系统的需求,通过对图书管理工作过程的内容和数据流程分析,设计如下面所示的数据项和数据结构:
图书馆信息包括:
书架信息包括:
图书管理员信息包括:
书商信息包括:
读者信息包括:条形码、编号、姓名、性别、类别、出生日期、有效证件、证件号码、联系方式、登记日期、有效期限、操作员、备注、图书借阅次数、期刊借阅次数、是否挂失;
读者类别设置:类型、图书册书、期刊册书、续借次数、图书、期刊;
图书信息包括:条形码、编号、书名、类型、作者、译者、ISBN、出版社、价格、页码、书架名称、现存量、库存总量、入库时间、操作员、简介、借出次数、是否注销;
图书借阅包括:借阅编号、图书编号、读者编号、借阅时间、应还时间、续借次数、操作员、状态;
图书归还包括:归还编号、图书编号、读者编号、退还押金、归还时间、操作员、确定归还;
图书征订包括:征订编号、图书编号、订购者、订购者联系方式、订购数量、订购单价、订购日期、是否验收、验收日期、操作员;
图书罚款包括:罚款编号、图书编号、读者编号、罚款日期、应罚金额、实收金额、是否交款、备注;
有了上面的数据结构、数据项和数据流程,就可以进行下面的数据库设计了。
1.4数据库概念结构设计
得到上面的数据项和数据结构以后,设计出能够满足用户需求的各种实体以及它们之间的关系,为后面的逻辑结构设计打下基础。这些实体包括各种具体信息,通过相互之间的作用形成数据流动。
1.4.1图书管理涉及的实体
●管理员 属性有编号、姓名、年龄、职位
●图书 属性有条形码、书名、类型、作者、译者、ISBN、出版社、价格、页码、书架名称、现在存量、库存总量、入库时间、操作员、简介、借出次数、是否注销
●书商 属性有书商编号、名称、地点
●书架 属性有编号、名称
●图书馆 属性有名称、馆长、负责人、电话、地址、说明、备注
这些实体间的关系如下:
一个图书馆可以存放多个书架,一个书架可以存放多本书,因此图书馆和书架具有一对多的联系,书架同图书之间也具有一对多的关系。
一个图书馆有多个管理员,一个管理员只能在一个图书馆工作,因此图书馆和管理员之间是一对多的联系。
书商可以将书卖给不同的图书馆,而图书馆也可以从不同的书商那里采购图书,因此,书商和图书馆之间存在多对多的关系。
1.4.2用 E-R 图来表示图书管理的概念模型
(补充完善)
1.5数据库逻辑设计
现在将上面的数据库概念结构转化为 SQL Server 2005 数据库系统所支持的实际数据类型,也就是数据库的逻辑结构。
图书管理数据库中各个表格的设计结果如下面的表格所示。每个表格表示在图书数据库中的一个表。
表3.1 图书信息表(book)
列名 | 数据类型 | 数据长度 | 可否为空 | 备注(主键) |
输入的内容有借阅编号、图书编号、读者编号、借阅时间、应还时间、续借次数、操作员、状态。其中借阅编号是图书借阅表的主键,是不能为空的。对于其他信息在输入时的类型也要保证正确,否则容易出错。
(补充完善)
1.6创建数据库脚本
经过前面的需求分析和概念结构设计以后,得到数据库的逻辑结构。现在在 SQL Server 2008 数据库系统中实现该逻辑结构。这是利用 SQL Server2008 数据库系统中的 SQL 查询分析器实现的。会创建出以下表格的 SQL 语句:
●创建图书管理系统数据库
●创建图书信息表表格
●创建图书借阅信息表格
●创建图书归还信息表格
●创建图书征订信息表格
●创建图书罚款信息表格
●创建图书注销信息表格
●创建读者信息表格
●创建管理员信息表格
上面表格的 SQL 语句在 SQL Sever 2008中查询分析器的执行,将自动产生需要的所有表格。
2数据库数据维护与操作
2.1插入数据
每个表插入至少3条数据,采用insert into完成,要有文字描述和T-SQL语句
2.2设置约束
以下约束内容为可选项,根据实际设计需要,选择并设置以下约束内容。
2.2.1设置主键约束
2.2.2设置外键约束
2.2.3设置check约束
2.2.4设置默认值
2.2.5设置规则
2.3建立索引
1在“对象资源管理器”窗口中展开XK数据库,再展开“表”选项。
2右击Student表,在弹出的快捷菜单中选择“修改”命令。
3单击工具栏上的“管理索引和键”按钮,弹出“索引/键”对话框。
4单击添加按钮。
5单击“列”行右侧的按钮,弹出“索引列”对话框。
6在“列名”下方的下拉列表中 选择StuName选项。
7在“排序顺序“下方的下拉列表中选择索引排序规则,可以是升序或降序。
8单击“确定“按钮。
索引建立:create index studentNameSM on Student(studentName)
索引删除:drop index studentNameSM on Student(studentName)
2.4创建视图
①在打开【SQL Server Managemenet Studio】窗口,在【对象资源管理器】窗口依次站看【数据库】——【新建的数据库】节点
②鼠标右键单击【视图】节点,在弹出的快捷菜单中选择【新建视图】命令,打开【视图设计器】窗口和【添加表】对话框。
③从【添加表】对话框中选择建立新视图的基表,视图和函数。单击【添加】按钮(在这里可以选择一张表单击依次添加,也可以按住Ctrl键同时选择多张表),将表添加到视图设计器中。添加完毕后,关闭【添加表】对话框,如果关闭【添加表】对话框后,仍需要添加表,单击【视图是机器】工具栏上的【添加表】按钮,即可弹出【添加表对话框】
④根据新建视图的需要,从表中选择视图引用的列。将列加入视图有3中方式:可以再关系图中选中相应表的相应列左边的复选框来完成;也可以铜鼓哦选择条件窗格中的【列】栏上的列名来完成;还可以再SQL窗格中输入SELECT语句来选择视图需要的列。
⑤在条件窗格中的【筛选器】栏中设置过滤记录的条件。
⑥设置玩此后,在【视图设计器】窗口中单击工具栏中的【验证SQL语法】
按钮检查T-SQL语法。确认语法正确后,单击【执行 SQL】按钮预览视图返回的结果。
⑦最后,单击【保存】按钮,弹出【选择名称】对话框,在该对话框中为视图命名,谈后点击【确定】按钮,将视图保存到数据库中。
2.5查询
(创建不少于5个复合查询示例)
大作业要求
完成以下内容:
1、数据库设计文档:数据库的概念设计、逻辑设计和物理设计过程
2、数据库物理文件:物理数据库文件.mdf和.ldf
将所有文件做成一个压缩包,以你的学号和姓名命名,发送到邮箱:windypromise@163.com,邮件主题为:网络数据库应用技术-大作业
提交截止时间:第18周星期5(7月10日)之前