免费预览已结束,剩余8页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
长春大学计算机学院网络工程专业长春大学计算机学院网络工程专业 数据库原理数据库原理 实验报告实验报告 实验名称 实验名称 实验五实验五 简单的数据库系统设计简单的数据库系统设计 图书管理系统图书管理系统 班班 级 级 网络五班姓姓 名 名 董迎顺学学 号 号 041440516 实验地点 实验地点 机房日日 期 期 2015 12 7 一 实验目的 一 实验目的 通过完成从用户需求分析 数据库设计到上机编程 调试和应用等全过程 进一步理解 和掌握数据库的设计过程及方法 二 实验内容 要求和环境 二 实验内容 要求和环境 实验要求实验要求 注 将完成的实验报告重命名为 班级 学号 姓名 实验五 如 041340538张三 实验 五 发邮件到 ccujsjzl 提交时限 本次实验后24小时之内 1 实验课要携带教材 学习辅导 老师下发的实验报告文档等 2 课前要对实验内容和步骤部分进行预习 实验环境实验环境 1 SQL SERVER 2005 2008 2 KingBase ES V7 0 人大金仓 实验内容和步骤实验内容和步骤 一个简单的图书管理系统包括图书馆内书籍的信息 学校在校学生的信息以及学生的 借阅信息 此系统功能分为面向学生和面向管理员两部分 其中面向学生部分可以进行借阅 续借 归还和查询书籍等操作 面向管理员部分可以完成书籍和学生的增加 删除和修改以 及对学生借阅 续借 归还的确认 参照附录的实验报告参考实例 完成如下内容 参照附录的实验报告参考实例 完成如下内容 1 需求分析 1 借阅人基本信息的查询 输入 插入 修改 删除 包括借阅人的图书证号 姓名 班级 电话 已借书目 能否能借书 2 图书基本信息的查询 输入 插入 修改 删除 包括图书的图书编号 书名 书号 类别 定价 入库时间 库存量等 3 借阅的基本信息的查询 输入 插入 修改 删除 包括借阅的借书时间 应还时间 图书证号 图书编号 是否续借等 4 借阅书籍基本信息的查询 输入 插入 修改 删除 包括借阅书籍的图书编号 图 书证号 书名等 5 归还书籍基本信息的查询 输入 插入 修改 删除 包括归还书籍的图书编号 图 书证号 书名等 6 管理基本信息的查询 输入 插入 修改 删除 包括管理的图书编号 图书证号 登记借书日期 是否在库 存放位置等 7 管理员基本信息的查询 输入 插入 修改 删除 包括管理员的编号 姓名 性别 值日时间 联系方式等 2 概念结构设计 E R 图 实体 图书信息 借阅书籍 归还书籍 借阅人 管理员 联系 借阅信息 管理信息 mm 3 逻辑结构设计 通过 E R 图 写出关系模式的逻辑结构 借阅人 图书证号 主码 姓名 班级 电话 已借书目 能否能借书 图书基本信息 图书编号 主码 书名 书号 类别 定价 入库时间 库存量 借阅的基本信息 图书证号 图书编号 外码 借书时间 主码 应还时间 是否续借 借阅书籍基本信息 图书编号 外码 图书证号 外码 书名 归还书籍基本信息 图书编号 外码 图书证号 外码 书名 管理基本信息 图书编号 外码 图书证号 外码 登记借书日期 外码 是否在库 存放 位置 管理员基本信息 编号 主码 姓名 性别 值日时间 联系方式 图书信息 图书编号书名类别书号定价入库时间库存量 借阅 信息 管理 图书编号 借书时间 借书时间 应还时间 存放位置 登记日期 图书编号 是否在库 图书证号 归 还 书 籍 借 阅 书 籍 借 阅 人 图书编号 图书证号 书名 姓名 班级 图书证号 已借书目 电话 能否能借书 管 理 员 姓名 性别 编号 值日时间 联系方式 图书编号图书证号姓名 4 物理设计 1 图书基本信息 属性数据类型长度主码 外码 图书编号char10主码 书名char10 书号char10 类别char10 定价money 入库时间date 库存量int 3 借阅人基本信息 属性数据类型长度主码 外码 姓名char10 电话char10 班级char10 图书证号char10主码 已借书目int 能否能借书char2 4 借阅的基本信息 属性数据类型长度主码 外码 图书证号char10 图书编号char10外码 借书时间date主码 应还时间date 是否续借char2 5 借阅书籍基本信息 属性数据类型长度主码 外码 图书编号char10外码 图书证号char10外码 书名char10 6 管理基本信息 属性数据类型长度主码 外码 图书编号char10外码 图书证号char10外码 登记借书日期date外码 是否在库char 2 存放位置char10 7 管理员基本信息 属性数据类型长度主码 外码 姓名char 10 性别char2 编号char10主码 值日时间date 联系方式char10 5 用 SQL 实现数据库的设计 并在 SQL Server 上调试通过 1 建表 考虑完整性约束 图书基本信息 create table 图书基本信息 图书编号 char 10 primary key 书名 char 10 书号 char 10 类别 char 10 定价 money 入库时间 date 库存量 int 借阅人基本信息 create table 借阅人 图书证号 char 10 primary key 姓名 char 10 班级 char 10 电话 char 10 已借书目 int 能否能借书 char 2 借阅基本信息 create table 借阅的基本信息 图书证号 char 10 图书编号 char 10 references 图书基本信息 图书编号 借书时间 date primary key 应还时间 date 是否续借 char 10 借阅书籍基本信息 create table 借阅书籍基本信息 图书编号 char 10 references 图书基本信息 图书编号 图书证号 char 10 references 借阅人 图书证号 书名 char 10 归还书籍基本信息 create table 归还书籍基本信息 图书编号 char 10 references 图书基本信息 图书编号 图书证号 char 10 references 借阅人 图书证号 书名 char 10 管理基本信息 create table 管理基本信息 图书编号 char 10 references 图书基本信息 图书编号 图书证号 char 10 references 借阅人 图书证号 登记借书日期 date references 借阅的基本信息 借书时间 是否在库 char 2 存放位置 char 10 管理员基本信息 create table 管理员基本信息 姓名 char 10 性别 char 2 编号 char 10 primary key 值日时间 date 联系方式 char 10 2 学生 图书以及借阅信息的输入 删除和修改 借阅人信息输入 insert into 借阅人 values 20151214 张三 网络五班 1234564789 3 能 insert into 借阅人 values 20151216 王五 网络五班 1434564789 1 能 insert into 借阅人 values 20151217 董六 网络五班 1534564789 2 能 insert into 借阅人 values 20151218 孙七 网络五班 1634564789 3 能 图书基本信息输入 insert into 图书基本信息 values 000001 英语 b001 语言类 30 2015 12 01 150 insert into 图书基本信息 values 000002 线性代数 b011 几何类 34 2015 11 01 100 insert into 图书基本信息 values 000003 数据库 b101 计算机类 40 2015 12 11 90 insert into 图书基本信息 values 000004 近代史 b111 历史类 25 2015 10 01 50 借阅的基本信息输入 insert into 借阅的基本信息 values 20151214 000001 2015 12 11 2016 01 11 否 insert into 借阅的基本信息 values 20151216 000002 2015 11 11 2015 12 11 否 insert into 借阅的基本信息 values 20151217 000003 2015 12 12 2016 01 12 否 insert into 借阅的基本信息 values 20151218 000004 2015 12 10 2016 01 10 否 三 思考题 三 思考题 对数据库设计的过程有了哪些进一步的理解 答 通过这次的课程设计 我对数据库有了进一步的了解 我熟练的掌握了数据库的一些基本语 法 比如如何建表 以及添加 删除 查找 更新等操作 我也练习了创建 E R 图和从 E R 图得 到关系图 通过设计物理结构 来创建一个图书管理系统 马上就要期末考试了 这次课程设计 帮助了我复习以前的知识 五 教师评语 五 教师评语 实验成绩 实验成绩 教师 签名 教师 签名 年年 月月 日日 附 实验报告参考示例附 实验报告参考示例 零件交易中心管理系统实验报告零件交易中心管理系统实验报告 一 实验目的一 实验目的 通过完成从用户需求分析 数据库设计到上机编程 调试和应用等全过程 进一步理解和掌握数据库的 设计过程及方法 二 实验内容二 实验内容 零件交易中心管理系统主要提供顾客和供应商之间完成零件交易的功能 其中包括供应商信息 顾客信 息以及零件信息 供应商信息包括供应商 供应商号 地址 电话 简介 顾客信息包括顾客号 顾客名 地址 电话 零件信息包括零件号 零件名 重量 颜色 简介等 此系统可以让供应商增加 删除和修改所提供的零件产品 还可以让顾客增加 删除和修改所需求的零 件 交易员可以利用顾客提出的需求信息和供应商提出的供应信息来提出交易的建议 由供应商和顾客进行 确认后完成交易 三 实验过程三 实验过程 1 需求分析需求分析 1 供应商 供应商的操作流程如图 1 所示 图 1 2 顾客 顾客的地位和供应商几乎是对称的 所以功能分类上也很相似 顾客的操作流程如图 2 所示 图 2 3 交易员 交易员的工作就是提出交易和完成交易 需要仔细考虑的问题是 一个交易如何产生 并如何达成 这 可以用图 3 来说明 图 3 处理交易的时候可能面临如下问题 a 一个交易只能在交易双方都同意的情况下才可以进行 所以数据库中的供求信息只能作为达成某个交 易的基础 b 交易的双方可能不同时使用这个系统 因此需要系统提供一个双方交换信息的方式 c 系统需要提供一种方便系统 交易员 向用户提出建议来促成交易的途径 并在保证数据库数据完整性 的情况下达成交易 2 概念模型设计 概念模型设计 数据库需要表述的信息有以下几种 1 零件信息 2 供应商信息 3 顾客信息 4 供应商零件之间的联系 供应 5 顾客和零件之间的联系 求购 6 交易 三元联系 用 E R 模型表述该模型的设计 E R 图如图 4 所示 图 4 3 逻辑设计 逻辑设计 通过 E R 模型到关系模型的转化 可以得到如下关系模式 1 零件关系 part ID color name weight intro 2 供应商关系 provider ID name address tele intro 3 顾客关系 customer ID name address tele 4 供应关系 supply partID provideID price quantity 5 求购关系 after customerID partID price quantity 6 交易关系 Business customerID provideID partID price quantity 每个关系模式的主码都用下划线标出 同时 对于从联系导出的关系供应 求购和交易 使用与之相联 系的实体集的码作为自己的主码 必须符合外码的约束 对于顾客 供应商和零件之间 不存在直接的约束 所以可以存在没有供应商供应同时也没有顾客求购 的零件 4 物理设计 物理设计 为了提高在表中搜索元组的速度 在实际实现的时候应该基于码建立索引 下面是各表中建立索引的表 项 part ID provider ID customer ID supply partID provideID after customerID partID Business customerID provideID partID 5 用 用 SQL 实现设计实现设计 实现该设计的环境为 Windows 2000 Professional MS SQL Server 2000 1 建立各表 建立零件表 CREATE TABLE Part ID smallint identity 1 1 PRIMARY KEY CLUSTERED Color varchar 20 Name varchar 20 NOT NULL Weight int default 0 Intro text 建立 Provider 表 CREATE TABLE Provider ID smallint identity 1 1 PRIMARY KEY CLUSTERED Name varchar 20 NOT NULL Password varchar 8 NOT NULL Address varchar 30 Tel varchar 20 Intro text 建立 Customer 表 CREATE TABLE Customer ID smallint identity 1 1 PRIMARY KEY CLUSTERED Name varchar 20 NOT NULL Password varchar 8 NOT NULL Address varchar 30 Tel varchar 20 建立 Supply 表 CREATE TABLE Supply PartID smallint ProvideID smallint Price int Quantity int CONSTRAINT PK SUPPLY PRIMARY KEY CLUSTERED PartID ProvideID CONSTRAINT PK SUPPLY PARTID FOREIGN KEY PartID REFERENCES Part ID CONSTRAINT PK SUPPLY PROVIDERID FOREIGN KEY ProvideID REFERENCES Provider ID 建立 After 表 CREATE TABLE After CustomerID smallint PartID smallint Price int Quantity int CONSTRAINT PK AFTER PRIMARY KEY CLUSTERED CustomerID PartID CONSTRAINT PK AFTER CUSTOMERID FOREIGN KEY CustomerID REFERENCES Customer ID CONSTRAINT PK AFTER PARTID FOREIGN KEY PartID REFERENCES Part ID 建立 Business 表 CREATE TABLE Business CustomerID smallint PartID smallint ProvideID smallint Price int Quantity int CONSTRAINT PK BUSSINESS PRIMARY KEY CLUSTERED CustomerID ProvideID PartID CONSTRAINT PK BUSSINESS CUSTOMERID FOREIGN KEY CustomerID REFERENCES Customer ID CONSTRAINT PK BUSSINESS PROVIDERID FOREIGN KEY ProvideID REFERENCES Provider ID CONSTRAINT PK BUSSINESS PARTID FOREIGN KEY PartID REFERENCES Part ID 供应商操作 a 注册 Register INSERT INTO Provider Name Address Tel Intro VALUES Name Address Tel Intro 在登记操作后 供应商得到一个惟一的 ID 可以根据这个 ID 来查询和修改供应商的数据 b 注销 UnRegister DELETE Provider WHERE ID ID c 修改个人信息 Update UPDATE Provider Set Name Name Address Address Tel Tel Intro Intro WHERE ID ID d 增加供应项 Add Supply Item INSERT INTO Supply PartID ProviderID Price Quantity VALUES PartID ProviderID Price Quantity e 删除供应项 Delete Supply Item DELETE Supply WHERE PartID PartID and ProvideID ProvideID f 修改供应项 Update Supply Item UPDATE Supply SET Price Price Quantity Quantity WHERE PartID PartID and ProvideID ProvideID 很明显 系统并没有提供商品面向供应商修改零件信息的接口 所以供应商提供的零件必须已经在零件 表中存在 可以这样假设 交易所的管理员负责更新零件信息 而供应商可以向交易所申请增加某种零件的 信息 事实上顾客也可提出这样的要求 顾客 a 注册 Register INSERT INTO Customer Name Address Tel VALUES Name Address Tel 在登记操作后 供应商得到一个惟一的 ID 可以根据这个 ID 来查询和修改供应商的数据 b 注销 UnRegister DELETE Customer WHERE ID ID c 修改个人信息 Update UPDATE Customer Set Name Name Address Address Tel Tel WHERE ID ID d 增加需求项 Add After Item INSERT INTO After PartID CustomerID Price Quantity VALUES PartID ProviderID Price Quantity e 删除需求项 Delete After Item DELETE After WHERE PartID PartID and CustomerID CustomerID f 修改需求项 Update After Item UPDATE After SET Price Price Quantity Quantity WHERE PartID PartID and CustomerID CustomerID 交易员 针对需求分析中提出的问题 提出了 协议书 的解决方案 方案的说明如下 每个交易在达成以前都作为协议书保存在数据库中 协议书具有和交易一样的完备信息 可以在条件 成熟的情况下转为一个达成的交易 协议书只有在供应商和顾客都签字的情况下才有效 有效的协议书由交易员签发 协议书一经签发 就生效 表明一个交易的达成 数据库中的数据将同时予以修改 协议书可以由供应商 顾客或者交易员中的任意一个人提出申请 当协议书在双方没有都签字前 协 议的双方或者交易员都可以删除这个协议书 但是 当协议书签字完毕后 协议书就不得删除 修改 只能 由交易员进行处理 协议书有可能在转成交易的过程中失败 因为在交易达成以前 数据库中的数据有可能因为其他交易 而变化 一个协议书可能失败 这是允许的 根据以上分析 对数据库的模型作一些修改 增加协议书表 其关系模式如下 Agreement CustomerID ProviderID PartID Price Quantity CustomerSign ProviderSign 对应的 SQL 描述为 CREATE TABLE Agreement CustomerID smallint PartID smallint ProvideID smallint Price int Quantity int CustomerSign int ProviderSign int CONSTRAINT PK AGREEMENT PRIMARY KEY CLUSTERED CustomerID ProvideID PartID CONSTRAINT PK AGREEMENT CUSTOMERID FOREIGN KEY CustomerID REFERENCES Customer ID CONSTRAINT PK AGREEMENT PROVIDERID FOREIGN KEY ProvideID REFERENCES Provider ID CONSTRAINT PK AGREEMENT PARTID FOREIGN KEY PartID REFERENCES Part ID 与上述其他操作相比 交易的操作对数据完整性要求比较高 其中需要注意的地方是 要防止同一用户 供应商 顾客 的数据因两个交易而同时修改 需要同时对供应数据库 Supply 需求数据库 After 交易数据库 Business 和协议数据库 Agreement 作出个性而且需要保持这些修改的原子性 很显然 这些要求正是对一个事务 Transaction 的要求 所以可以用一个事务来完成签发一个协议的 操作 事务的描述如下 CREATE PROC PASS AGREEMENT providerID int customerID int partID int AS DECLARE TransName VARCHAR 20 SELECT TransName Pass Agreement BEGIN TRANSACTION TransName DECLARE price int quantity int SELECT price price quantity quantity FROM Agreement WHERE provideID providerID and customerID customerID AND partID partID INSERTINTOBusiness ProviderID customerID PartID Price Quantity VALUES ProviderID CustomerID PartID Price Quantity UPDATE Supply SET quantity quantity quantity WHERE ProviderID ProviderID AND partID partID IF SELECT quantity FROM Supply WHERE provideID providerID AND partID partID 9 ROLLBACK TRANSACTION TransName DELETE FROM Supply WHERE quantity 0 UPDATE after SET quantity quantity quantity WHERE CustomerID CustomerID AND partID partID If SELECT quantity FROM After WHERE CustomerID CustomerID AND partID partID 0 ROLLBACK TRANSACTION TransName DELETE FROM A fter WHERE quantity 0 COMMIT TRANSACTION TransShow GO 为了使用方便 这里定义了一个存储过程 功能是完成从 Agreement 的一个元组到期 Business 的每个 元组的转化工具 这里考虑到了删除空的 Supply 和 After 项 更加重要的是 这里考虑到了非法的 Agreement 的情况 在一段时间后 由于供应商式或者顾客修改数据 Agreement 可能就非法 这时就需要 把这个事务废除 所以这里检查 Supply 表和 After 表中的数据 确保数据仍然正确 另外 交易员 或者说交易所必须承担的一项任务是更新零件列表 这里在考虑顾客和供应商的时候 并没有给予他们修改零件列表的权利 他们必须根据数据库中已有的项实现应用模式的供应信息 由于这个数据库实际上更加偏重于模型化 而不是一个实际环境中的数据库 所以在实现应用模型的 时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学语文人教部编版 (五四制)二年级下册识字2 传统节日教学设计
- 中国超滤水处理行业市场前景预测及投资价值评估分析报告
- 教学计划(教学设计)-2024-2025学年人教PEP版英语五年级上册
- 中国软密封针型截止阀行业市场前景预测及投资价值评估分析报告
- 第3节 人类遗传病教学设计-2025-2026学年高中生物人教版2019必修2 遗传与进化-人教版2019
- 第20课 市井人物传记两篇教学设计-2025-2026学年高中语文统编版 选修:中华传统文化专题研讨-统编版
- 外研版英语九年级上册Module 1教案
- 小结教学设计-2025-2026学年初中数学人教版五四制2024六年级上册-人教版五四制2024
- 2025运营经理秋招面试题及答案
- 2025校招:用户界面(UI)设计师笔试题及答案
- 2025广东广州新龙镇招聘农村集体出纳(文员)1人笔试考试参考题库附答案解析
- (2025)儿童脑性瘫痪经颅磁刺激治疗专家共识
- 2025年二级公共营养师考试基础训练题及答案
- 企业生产线优化方案
- 会议室装修工程方案汇报
- 太仓市国土空间总体规划(2021-2035)
- 2023年最新的罗密欧与朱丽叶剧本中文
- 2022上海市公务员考试信息管理真题单选60多选12刘旻
- 辩论赛详细方案(共14页)
- Q∕GDW 12152-2021 输变电工程建设施工安全风险管理规程
- 财务收支管理系统Excel模板
评论
0/150
提交评论