您好,欢迎来到年旅网。
搜索
您的当前位置:首页音响店VCD零售出租管理系统设计数据库原理与应用课程设计论文

音响店VCD零售出租管理系统设计数据库原理与应用课程设计论文

来源:年旅网


信息工程学院

《数据库原理与应用》课程设计论文

题 目:音响店VCD零售\\出租管理系统

1 / 40

目 录

1引言0

2 需求分析阶段1

2.1 引言1

2.2 需求分析阶段的目标与任务1

2.2.1 处理对象1 2.2.2 处理功能与要求2 2.2.3 安全性与完整性要求2 2.3 需求分析阶段成果2

2.3.1 体会与收获3

2.3.2 音像店VCD管理系统数据流图3 2.3.4 音像店VCD管理系统数据字典3

3 概念设计阶段6

3.1 引言6 3.2 任务与目标6 3.3 阶段结果6 4 逻辑结构设计8

4.1 逻辑设计的任务和目标8 4.2 数据组织8

4.2.1 将E-R图转换为关系模式8 4.2.2 模式优化9 4.2.3 数据库模式定义9 4.3 数据处理10 5 物理结构设计11

5.1物理设计阶段的目标与任务11 5.2数据存储方面11 6 数据库实施阶段12

6.1建立数据库、数据表、视图、索引12

6.1.1 建立数据库12 6.1.2 建立数据表12 6.1.3 建立视图14 6.1.4 建立索引15 6.1.5 建立触发器15 6.2数据入库17

6.3创建各个功能的存储过程18

2 / 40

7.系统调试和测试18 8.实习心得19 附录1 存储过程定义20

附录2 数据查看和存储过程功能的验证26 附录3 所有的SQL运行语句30

3 / 40

摘 要

随着社会经济的发展,人们对生活质量的要求越来越高,对生活中的娱乐追求也是越来越高,传统的娱乐方式已经发生了变化。作为VCD销售商来说,更多的用户需要对VCD进行租赁。在租赁的过程中需求量大,操作复杂却流程完全一样,销售/租赁商频繁的做着一样的工作,既浪费时间又不能提高效率,这要求编写一个方便使用的VCD出租系统以其解决上诉问题。实现对商品的浏览,租赁和出售,并对销售的情况作出相关的统计,并对各类的VCD分类影片进行一个统计。利用该系统体现了管理者的思想,实现计算机的统一管理。

通过使用计算机实现传统的VCD销售商的繁杂的手工操作计算环节,可大大

提高工作效率。在互联网发展和服务效率至上的今天,各种重复的操作都可以交给计算机实现,既能学习先进的管理经验,有可以提高工作效率。所以对于VCD这个传统的行业来说,确实需要编写一个系统去代替人力完成工作。

本文从VCD出租/销售系统的开发为背景,全文分为目录、需求分析、概要

设计、逻辑设计、物理设计,以与系统的实现等全过程。在程序设计与调试上采用了自上而下,逐步细化,逐步完善的原则。采用结构化的功能模块设计系统功能,可读性好,易于扩充。基本功能全面,系统可读性好,易于维护、更新,安全性好。

关键词:VCD销售;VCD出租;VCD管理

4 / 40

1引 言

随着互联网时代的到来,我们的生活方式发生了巨大的变化。利用计算机能够帮助我们解决各种问题。各种的应用软件层出不穷。人们对计算机智能化的要求越来越高,许多传统的手工管理逐渐被计算机系统所代替。

人们的生活质量的要求越来越高,对生活中的娱乐方式也更加多样化,已经不再是很长的时间看一部很经典的电影。在过去的VCD出租和销售中都是依靠的商家的自己的手工的筛选和销售。对大量的客服而言的商家是既费时又费力,对VCD的管理也不能做到相对的统一,有明确的分类。计算机的出现,提供了一个很好的解决的方案,能够通过相关的管理软件对其进行统一的管理、销售、租赁等等商业活动。

开发VCD零售/出租管理系统帮助商家提高效率,降低经营成本,优化资源配置,从而实现商品的最大利益化。

0 / 40

2 需求分析阶段

2.1 引言

进行系统设计,首先要对系统的现状进行分析。根据系统的目标、需求和功能,制定和选择一个较好的系统方案,从而达到一个合理的优化系统。如今又许多的VCD销售商,最初购买的人数较少,手工管理还能应付,但是随着VCD需求人数的增多,传统的手工方式已远远不能满足商家的需求,就需要新的销售/出租系统去做。

需求分析是在于要弄清用户对开发的数据库应用系统的确切要求。数据库设计的第一步是明确数据库的目的和如何使用,也就是说需要从数据库中得到哪些信息。明确目的之后,就可以确定您需要保存哪些主题的信息(表),以与每个主题需要保存哪些信息(表中字段)。

在构造系统时,首先从需求出发构造数据库表,然后再由数据库表结合需求划分系统功能模块。这样,就把一个大的系统分解成了几个小系统。这里把系统的层次划分为了四个部分:用户信息管理,VCD信息管理,VCD销售信息管理,VCD出租信息管理。能够实现以下功能:

○1 新的用户加入,用户信息与时更新;

②对于新入库VCD,能够与时更新VCD信息,便于用户查询; ③能够记录用户的销售和出租信息;

④用户、商家均能查询相应的信息,方便交流;

2.2 需求分析阶段的目标与任务

2.2.1 处理对象

用户信息:用户编号,用户性别,用户,用户

VCD信息:VCD编号,VCD类型号,VCD片名,导演,主演,上市时间,库存数量,

格式

VCD类型:VCD类型号,类型名

VCD出租:出租编号,VCD编号,出租数量,出租时间,归还时间,押金,状态,

1 / 40

用户编号

VCD销售:VCD编号,用户编号,销售时间,销售数量

2.2.2 处理功能与要求

1.能够存储一定数量的VCD信息,并方便有效的进行相应的VCD数据操作和管理,这主要包括:

1) VCD信息的录入、删除与修改。 2) VCD信息的多关键字检索查询。 3) VCD的出租、销售管理。

2.能够对一定数量的用户进行相应的信息存储与管理,这其中包括: 1) 用户信息的登记、删除与修改。 3) 用户资料的统计与查询。

3.能够提供一定的安全机制,提供数据信息授权访问,防止随意删改、查询。 4.对查询、统计的结果能够列表显示。 2.2.3 安全性与完整性要求 1) 安全性要求

系统安全性要求体现在数据库安全性、信息安全性和系统平台的安全性等方面。安全性先通过视图机制,不同的用户只能访问系统授权的视图,这样可提供系统数据一定程度上的安全性,再通过分配权限、设置权限级别来区别对待不同操作者对数据库的操作来提高数据库的安全性;系统平台的安全性体现在操作系统的安全性、计算机系统的安全性和网络体系的安全性等方面。 2) 完整性要求

系统完整性要求系统中数据的正确性以与相容性。可通过建立主、外键,使用check约束,或者通过使用触发器和级联更新。

2.3 需求分析阶段成果

2 / 40

2.3.1 体会与收获

系统需求分析主要是通过自己对于VCD销售与出租行业的了解,去咨询一些VCD销售商,以与通过互联网进行一些调查,了解VCD销售商在管理中的一些问题。由于没有经验和时间的不足,所以在做的过程中有许多问题,而又正值放假,所以只能自己通过互联网去查询,并通过数据流图一步一步了解其中过程,最终完成了需求分析任务。

2.3.2 音像店VCD管理系统数据流图 顶层数据流图:

客户登陆信息客户查询结果返回VCD零售\\出租管理系统图2.1 顶层数据流图

出租信息销售信息VCD信息管理部门 第二层数据流图:

3.0出租5.0D4VCD信息表修改用户信息D1用户信息表出租VCDD3VCD出租表1.0信息查询D5VCD类型表新用户加入客户结果返回查询管理部门购买VCDD1用户信息表4.0修改VCD信息入库新VCD2.0销售D4VCD信息表D5VCD类型表D2VCD销售表 图2.2 第二层数据流图

2.3.4 音像店VCD管理系统数据字典 a)数据项

3 / 40

表1.1 数据项列表

数据项编数据项名 号 DI-1 UserID 数据项含义 与其它数据项的存储结构 别名 关系 唯一标识一个用 char(9)

用户标号 DI-2 UserSex DI-3

UserTel

DI-4 UserNum DI-5 Vid DI-6 Vtype DI-7 Vname DI-8 Vdirector DI-9 Vact DI-10 Vdate DI-11

Vamount

DI-12 Vform DI-13 Tname DI-14 Hid DI-15

Hamount

户 用户的性别 用户的

用户

VCD的编号

VCD类型号

VCD片名

该VCD的导演

该VCD的主演 VCD的上市时间 该VCD当前的总数

该VCD的播放格式

VCD属于哪种类型

出租的VCD编号 出租该VCD的总

4 / 40

char(2) char(11) char(18) char(10) char(20) Char(30) char(20) char (20) Date int

Char(5) Char(20)

Char(5) char(5) 性别 VCD编号 VCD类型号VCD片名 导演 主演 上市时间 库存数量 格式 类型名 出租编号 出租数量 数据项编数据项名 号 数据项含义 与其它数据项的存储结构 别名 关系 数

DI-16

Htime

出租该VCD的时间

归还该VCD的时间

出租VCD的抵押金

该VCD是否可以出租

该VCD的销售时间

该VCD的销售总数

Date

出租时间 DI-17 Hre Date

归还时间 DI-18 Hmoney Money

押金 DI-19 Hstate Char(1)

状态 DI-20 Stime Date

销售时间 DI-21

Samount Char(5)

销售总数 b)数据结构:

表1.2 数据结构列表

数据结 构编号 DS-1 数据结构名

数据结构 含义 用户信息

组成

User UserID, UserSex, UserTel, UserNum Vid, Vtype, Vname, Vdirector, Vact, Vdata, Vamount, Vform Vtype, Tname

Vid, Hid, Hamount, Htime,Hre, Hmoney, Hstate

DS-2 VCD VCD信息

DS-3 Type VCD类型

DS-4 Hire VCD出租

5 / 40

DS-5

Sale VCD销售 UserID, Vid, Stime, Smount

3 概念设计阶段

3.1 引言

系统开发的总体目标是实现VCD销售商在VCD销售/出租方面的自动化,减轻工作人员的工作量,方便工作人员对它的操作,提高管理的质量和水平,做到高效、智能化管理,从而达到提高VCD销售/出租管理效率的目的。

主要任务是对用户信息、VCD信息、VCD出租信息、VCD销售信息的基本信息的操作与外理。

概念设计阶段主要是将需求分析阶段得到的用户需求抽象为信息结构(概念模型)的过程,它是整个数据库设计的关键。

3.2 任务与目标

(1)选择第二层数据流为切入点,通常选择实际系统中的子系统; (2)设计生成初步分E-R图,通过合并方法,做到各实体、属性、联系统一; (4)生成全局E-R图,通过消除冲突等方面。

在本VCD销售/出租管理系统中,从第2层数据流程图下手。分析数据流图和数据字典,知道整个系统功能围绕“用户”和“VCD”的处理。根据实体与属性间的两条准则:生成各个分E-R图:从而合并成总E-R图:。

3.3 阶段结果

(1)a.VCD信息与VCD类型之间的关系:

VCD信息n属于1VCD类型 6 / 40

图3.1 分E-R图

b.用户与VCD信息出租之间的关系:

VCD信息n出租图3.2 分E-R图

m用户 c.用户与VCD信息销售之间的关系:

VCD信息n销售图3.3 分E-R图

m用户 (2)基本E-R图

用户m出租m销售nVCD信息nn属于1VCD类型图3,.4 总E-R图 E-R图的各实体属性如下所示:

用户:User(UserID, UserSex, UserTel, UserNum )

VCD信息:VCD(Vid, Vtype, Vname, Vdirector, Vact, Vdata, Vamount, Vform)

7 / 40

VCD类型:Type(Vtype, Tname)

VCD出租:Hire(Vid, UserID,Hid, Hamount, Htime,Hre, Hmoney, Hstate) VCD销售:Sale(UserID, Vid, Stime, Smount);

4 逻辑结构设计

4.1 逻辑设计的任务和目标

以上的概念设计阶段是于任何一种数据模型的,但是逻辑设计阶段就与选用的DBMS产品发生关系了,系统逻辑设计的任务就是将概念设计阶段设计好的基本E-R图转换为选用DBMS产品所支持的数据模型相符合的逻辑结构。具体容包括数据组织(将E-R图转换成关系模型、模型优化、数据库模式定义、用户子模式设计)、数据处理(画出系统功能模块图)两大任务。

4.2 数据组织

4.2.1 将E-R图转换为关系模式

实体型转换为关系模式。实体的属性就是关系的属性,实体的码就是关系的码。对于实体间的联系则有以下不同的情况:

一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以与联

系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。

一个1:n联系可以转换为一个的关系模式,也可以与n端对应的关系模式合并。如果转换为一个的关系模式,则与该联系相连的各实体的码以与联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。

一个1:1联系可以转换为一个的关系模式,也可以与任意一端对应的关系模式合并。三个或三个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以与联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合

具体的基本E-R图向关系模型的转化如下: 用户:User(UserID, UserSex, UserTel, UserNum )

VCD信息:VCD(Vid, Vtype, Vname, Vdirector, Vact, Vdata, Vamount, Vform)

8 / 40

VCD类型:Type(Vtype, Tname)

VCD出租:Hire(Vid , UserID, Hid, Hamount, Htime,Hre, Hmoney, Hstate) VCD销售:Sale(UserID,Vid, Stime, Smount); 4.2.2 模式优化

关系模式User,VCD,Type,Hire,Sale 既不存在非主属性对主属性的部分函数依赖,也不存在传递函数依赖,已经达到了3NF。 4.2.3 数据库模式定义

列名 UserID UserSex UserTel UserNum

数据类型 Char Char Char Char

可否为空 not null

not null

说明 用户编号 用户性别 用户 用户的号

列名 Vid Vtype Vname Vdirector Vact Vdata Vamount Vform

数据类型 Char Char Char Char Char Char Date Char

可否为空 not null not null not null

not null not null

VCD编号

说明 VCD类型号 VCD片名 导演 主演 上市时间 库存数量 播放格式

列名 Vtype Tname

数据类型 Char Char

可否为空 not null not null

说明 VCD类型号 VCD类型名

列名 Vid UserID Hid Hamount Htime Hre Hmoney

数据类型 Char Char Char Char Char Char Date

可否为空 not null not null not null not null

VCD编号

说明 用户编号 出租编号 出租数量 出租时间 归还时间 押金

9 / 40

Hstate Char not null 出租状态

列名 UserID Vid Stime Samount

数据类型 Char Char Char Char

可否为空 not null not null

not null

VCD编号

说明 用户编号 销售时间 销售数量

4.3 数据处理

系统功能模块图: VCD销售/出租系统 VCD个 人信息 查询信息查询用户出租信息查询VCD出租VCD销售管理员修改出租情况销售情况用户购买入库信息修改 图4.1 系统功能模块

信息新用户加入修改VCDVCDVCDVCD

10 / 40

5 物理结构设计

5.1物理设计阶段的目标与任务

数据库的物理设计就是为逻辑数据模型选取一个最合适应用要求的物理结构的过程,在这个阶段中要完成两大任务:

(1)确定数据库的物理结构,在关系数据库中主要是存取方法和存储结构; (2)对物理结构进行评价,评价的重点是时间和空间效率。

5.2数据存储方面

为数据库中各基本表建立的索引如下:

1. 由于基本表User,VCD的主码UserID,Vid经常在查询条件和连接操作的连

接条件中出现,且它们的值唯一,在两个属性上建立唯一性索引; 2. 由于基本表VCD的属性Vname,Type的属性Tname经常在查询条件中出现在

两个属性上建立聚簇索引;

11 / 40

6 数据库实施阶段

6.1建立数据库、数据表、视图、索引

6.1.1 建立数据库

Create database ManagerVCD; 6.1.2 建立数据表 (1)用户信息表: Create table User(KM

UserID char(10) primary key, UserSex char(2) not null, UserTel char(11) not null, UserNum char(18) not null,

);

(2)VCD信息表 Create table VCD(

Vid char(10) primary key, Vname char(30) not null, Vtype char(20) not null, Vdirector char(20), Vact char(20), Vdate date,

12 / 40

Vamount int not null, Vform char(5) not null,

)

(3)VCD类型表 Create table Type(

Vtype char(20) primary key; Tname char(20) not null,

)

(4)VCD出租表 Create table Hire(

Hid char(5) primary key, Vid char(10) not null, Hamount char(5), Htime date, Hre date, Hmoney int,

Hstate char(2) not null, UserID char(9) not null,

)

(5)VCD销售表 Create table Sale(

UserID char(9) primary key, Vid char(10) primary key, Samount char(5) not null, Stime date,

13 / 40

)

外键约束通过MySQL语句进行添加(附录2)。 6.1.3 建立视图 (1)建立用户视图: Create view user_view as

Select * from User (2)建立用户查询VCD视图; Create view user_Query AS

select VCD.Vid , Type.Tname , VCD.Vname , VCD.Vamount from VCD,Type

where VCD.Vtype = Type.Vtype; (3)管理员查询用户视图(a): Create View Manager_H As

Select VCD.Vid , Hire.Hamount From VCD , Hire

Where VCD.Vid = Hire.Vid (4)管理员查询用户视图(b): Create View Manager_S As

Select VCD.Vid , Sale.Samount From VCD , Sale

Where VCD.Vid = Sale.Vid

14 / 40

6.1.4 建立索引

Create unique index user_id on User(UserID) Create unique index vcd_id on VCD(Vid) Create cluster index VCD_index on VCD(Vname) Create cluster index Type_index on Type(Tname) 6.1.5 建立触发器

(1)当删除Hire表中的一条出租记录时,触发VCD表,更新相应记录 delimiter $

create trigger t_vcd_hire_delete after delete on hire for each row begin

update vcd

set vamount = vamount - old.hamount where vcd.Vid = old.vid;

end $ delimiter ;

(2)当在Hire表中增加一条出租记录时,触发VCD,更新相应记录 delimiter $

create trigger t_vcd_hire_insert before insert on hire for each row begin

update vcd

set vamount = vamount - new.hamount

15 / 40

where vcd.Vid = new.vid;

end $ delimiter ;

(3)当更新Hire表中的一条出租记录,触发VCD表,更新相应的记录 delimiter $

create trigger t_vcd_hire_update after update on hire for each row begin

update vcd

set vamount = vamount - new.hamount where vcd.Vid = new.vid;

end $ delimiter ;

(4)当删除Sale表中的一条销售记录时,触发VCD表,更新相应的记录 delimiter $

create trigger t_vcd_sale_delete after delete on sale for each row begin

update vcd

set vamount = vamount - old.samount where vcd.Vid = old.vid;

end $ delimiter ;

16 / 40

(5)当在Sale表中增加一条销售记录时,触发VCD表,更新相应的记录 delimiter $

create trigger t_vcd_sale_insert after insert on sale for each row begin

update vcd

set vamount = vamount - new.samount where vcd.Vid = new.vid;

end $ delimiter ;

(6)当Sale表更新一条销售记录时,触发VCD表,更新相应的记录 delimiter $

create trigger t_vcd_sale_update after update on sale for each row begin

update vcd

set vamount = vamount - new.samount where vcd.Vid = new.vid;

end $ delimiter ;

6.2数据入库

系统包括VCD用户信息管理、VCD出租信息管理、VCD销售信息管理、VCD信息管理等几个功能模块,共有5基本表,直接用MySQL建立这5基本表,并将数据

17 / 40

导入到相应的基本表中。

6.3创建各个功能的存储过程

系统共创建了12个存储过程,具体列表如下:

表3.1 创建的存储过程列表

编号 存储过程名称

P-1 P-2 P-3 P-4 P-5 P-6 P-7 P-8 P-9 P-10 P-11 P-12

VCD_insert User_insert Type_insert User_delete VCD_delete Type_delete Query_User Query_User_All Query_User_S Query_User_H Hire_insert Sale_insert

定义

详见附录1-3 详见附录1-1 详见附录1-2 详见附录1-4 详见附录1-5 详见附录1-6 详见附录1-7 详见附录1-8 详见附录1-9 详见附录1-10 详见附录1-11 详见附录1-12

作用

在VCD中插入一个元组 在User中插入一个元组 在Type中插入一个元组 在User中删除一个元组 从VCD中删除一个元组 从Type中删除一个元组 用户在User中查询本人信息 管理员在User中查询全部读者 用户查询自己的VCD购买情况 用户查询自己的VCD购买情况 在Hire表中增加一条出租元组 在Sale表中增加一条销售元组

7.系统调试和测试

对该图书管理系统进行测试,验证每个功能是否符合要求,具体的测试如下: (1)通过视图查看各个基本表和视图中的数据(见附录2) (2)检测各个存储过程的功能:(见附录2)

18 / 40

8.实习心得

1. 这次课程设计使我对数据库知识应用有了进一步认识,通过自己寻找各个资料,在纸上开始做需求分析,画数据流图,以与数据库的概念、逻辑、物理结构设计,让后边编写代码和编写文档比以往更方便。做纸上的东西却很麻烦,要做VCD系统,还需要去了解商家如何去操作的,以与如何做才能更方便的满足商家和用户的需求。

2. 通过这次课程设计我学到了许多东西,包括课堂上的,当然还有课后学到的,都是通过去图书馆阅读和网上查阅。因为这次数据库设计使用的是MySQL语言,和我们平时学到的SQL server有些区别,所以在设计过程中就会有趣多问题,比如某个语法不一样,导致总是出现语法错误。就需要不多的去查阅网上的资料。

3. 但是,我进一步掌握了相关的MySQL语句方面的知识。知道我们课堂上的知识太少了,几乎知识讲了方法和基本的语法。所以导致我总是认为建表就是查询、增加、删除、更新,再做课程设计之前都不知道视图具体是用来干嘛的,触发器、存储过程、索引几乎就是空白。现在了解了建立这些的用处了,以与使用主键、外键约束。通过这些保证数据库的完整性,并且更能方便不同权限的用户的操作。为用户提供方便。

4 .总之,在整个课程设计的过程中,由于时间问题以与自身经验不足,所以这次做出来的东西存在许多问题。但是,不可否认,我学到了更多的东西,包括系统的分析方式,知道前期的需求分析的重要性,这样才能让后边的建表,建立触发器之类的顺利进行。

19 / 40

附录1 存储过程定义

1. User_insert的定义: delimiter $

create procedure User_insert (in id char(9),

in sex char(2), in Tel char(11), in num char(18) )

begin

insert into user( userid,usersex,usertel,usernum )

values (id,sex,tel,num); end $ delimiter ;

2. Type_insert的定义: delimiter $

create procedure Type_insert (in type char(20),

in name char(20) )

begin

insert into Type( Vtype,Tname )

20 / 40

values (type,name); end $ delimiter ;

3. VCD_insert的定义: delimiter $

create procedure VCD_insert (in id char(10),

in type char(20), in name char(30), in director char(20) in act char(20), in date date, in amount int, in form char(5))

begin

insert into VCD( Vid,Vtype,Vname,Vdirector,Vact,Vdate,Vamount,Vform )

values (id,type,name,director,act,date,amount,form); end $ delimiter ;

4.User_delete的定义:

delimiter $

create procedure User_delete (in id char(9)) begin

delete from user

21 / 40

where user.userid = id;

end $ delimiter ;

5.VCD_delete的定义:

delimiter $

create procedure User_delete (in id char(10)) begin

delete from VCD

where VCD.vid = id;

end

delimiter ;

6.Type_delete的定义:

delimiter $

create procedure Type_delete (in type char(20)) begin

delete from Type

where Type.Vtype = type;

end

delimiter ;

7. Query_User的定义 delimiter $

22 / 40

create procedure Query_User( in id char(9) ) begin

select * from User

where id = user.userid;

end $ delimiter ;

8. Query_User_All的定义: delimiter $

create procedure Query_User_All( ) begin

select * from User;

end $ delimiter ;

9. Query_User_S的定义: delimiter $

create procedure Query_User_S (in id char(9)) begin

select user.userid,vcd.Vname,sale.Samount from user,sale,vcd where id = user.userid

and id = sale.UserID and vcd.Vid = sale.Vid;

end $

23 / 40

delimiter ;

10.Query_User_H的定义: delimiter $

create procedure Query_User_H(in id char(9)) begin

select user.userid,vcd.Vname,Hire.Hamount from user,Hire,vcd where id = user.userid

and id = Hire.UserID and vcd.Vid = Hire.Vid;

end $ delimiter ;

11. Hire_insert的定义: delimiter $

create procedure Hire_insert (in v_id char(10),

in h_id char(5), in amount char(5), in timedate, in re date, in money int, in state char(2), in u_id char(9))

begin

insert into user( Hid,Vid,Hamount,Htime,Hre,Hmoney,Hstate,UserID )

values (v_id,h_id,amount,time,re,money,state,u_id);

24 / 40

end $ delimiter ;

12.Sale_insert的定义: delimiter $

create procedure Sale_insert (in v_id char(10),

in u_id char(9), in time date , in amount char(5) )

begin

insert into user( Vid,UserID,Stime,Samount )

values (v_id,u_id,time,amount); end $ delimiter ;

25 / 40

附录2 数据查看和存储过程功能的验证

1)

查看VCD表中的信息:

2)

查看Type(VCD类型)表中的信息:

3)

查看Hire(VCD出租)表中的信息:

4)

查看User(用户信息)表中的信息:

26 / 40

5) 查看Sale(VCD销售)表中的信息:

6)

用户查询VCD视图:

7)

管理员视图a:

8)

管理员视图b:

2.存储过程验证:

a.在User表中插入一条记录:

27 / 40

b.从User表中删除一条记录:

C.管理员查询所有用户信息:

3 触发器验证:

a. 删除Hire表中的一条记录,触发VCD表更新:

28 / 40

其他验证省略.(在数据库测试中均通过)

29 / 40

附录3 所有的SQL运行语句

Create database ManagerVCD;

Create table User(

UserID char(10) primary key, UserSex char(2) not null, UserTel char(11) not null, UserNum char(18) not null

)

Create table VCD(

Vid char(10) primary key, Vname char(30) not null, Vtype char(20) not null, Vdirector char(20), Vact char(20), Vdate date,

Vamount int not null, Vform char(5) not null

)

Create table Type(

Vtype char(20) primary key, Tname char(20) not null,

)

Create table Hire(

30 / 40

Hid char(5) primary key, Vid char(10) not null, Hamount char(5), Htime date, Hre date, Hmoney int,

Hstate char(2) not null, UserID char(9) not null

)

Create table Sale(

UserID char(9) primary key, Vid char(10) primary key, Samount char(5) not null, Stime date

)

Create table admina(

Vid char(10) primary key, Samount char(5) not null, Hamount char(5) not null,

)

Create table adminb(

Ano char(20) primary key, Aname char(20) not null, Apwd char(20) not null,

);

31 / 40

alter table Hire

add constraint fk_hire_userid foreign key User(UserID) alter table Hire

add constraint fk_hire_vid foreign key VCD(Vid) alter table Sale

add constraint fk_sale_userid foreign key User(UserID) alter table Sale

add constraint fk_sale_vid foreign key VCD(Vid) alter table VCD

add constraint fk_vcd_vtype foreign key Type(Vtype)

Create view user_view as

Select * from User Create view user_Query AS

select VCD.Vid , Type.Tname , VCD.Vname , VCD.Vamount from VCD,Type

where VCD.Vtype = Type.Vtype

Create View Manager_H As

Select VCD.Vid , Hire.Hamount From VCD , Hire

32 / 40

Where VCD.Vid = Hire.Vid Create View Manager_S As

Select VCD.Vid , Sale.Samount From VCD , Sale

Where VCD.Vid = Sale.Vid

Create unique index user_id on User(UserID); Create unique index vcd_id on VCD(Vid); Create cluster index VCD_index on VCD(Vname); Create cluster index Type_index on Type(Tname); delimiter $

create trigger t_vcd_hire_delete after delete on hire for each row begin

update vcd

set vamount = vamount - old.hamount where vcd.Vid = old.vid;

end $

create trigger t_vcd_hire_insert before insert on hire for each row begin

update vcd

set vamount = vamount - new.hamount

33 / 40

where vcd.Vid = new.vid;

end $

create trigger t_vcd_hire_update after update on hire for each row begin

update vcd

set vamount = vamount - new.hamount where vcd.Vid = new.vid;

end $

create trigger t_vcd_sale_delete after delete on sale for each row begin

update vcd

set vamount = vamount - old.samount where vcd.Vid = old.vid;

end $

create trigger t_vcd_sale_insert after insert on sale for each row begin

update vcd

set vamount = vamount - new.samount where vcd.Vid = new.vid;

34 / 40

end $

create trigger t_vcd_sale_update after update on sale for each row begin

update vcd

set vamount = vamount - new.samount where vcd.Vid = new.vid;

end $ delimiter ;

35 / 40

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- oldu.cn 版权所有 浙ICP备2024123271号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务