当前位置:
文档之家› 2014数据库期中期末考试题
2014数据库期中期末考试题
4.创建触发器:
(1) create trigger goodid on 供应商资料 for update as begin if (columns_updated()&01)>0 update 供应情况表 set 供应情况表.供应商号= (select a.供应商号from inserted a) where 供应情况表.供应商号= (select b.供应商号from deleted b) end (2)create trigger good_1 on 零件资料 for update as begin
预算int, 开工日期datetime)
图6.3项目数据显示图
create table 职工资料 ( 职工号int primary key, 姓名char(8), 年龄int,
职称char(8))
图6.4职工数据显示图
create table 供应商资料 ( 供应商号int primary key, 姓名char(8), 地址varchar(20), 电话号码char(7), 账号int)
否
Varchar 20
否
Char
15
可
Text
可
int
否
职工资料表
备注 主键
备注 主键
备注 主键
字段 职工号 姓名 年龄 职称
字段 供应商号
姓名 地址 电话号码 账号
字段 仓库 零件 库存量
字段 供应商号 零件号
类型
长度 可否为 空
Int
否
char
8
否
Int
可
char 类型
8
可
供应商资料表
长度
可否为 空
厂日期等基本信息。 3. 除此之外,还需要记录零件的其他相关信息,如零件供
应商的信息,存放的仓库信息、何种项目需要使用何种 零件等。 4. 同时需要提供对信息的添加、编辑、删除等操作。 5. 供应商(supplier)信息,包括的数据项有:供应商 号、姓名、账号、地址、电话号码。 6. 项目(project)信息,包括的数据项有:项目号、预 算、开工日期。 7. 零件(part)信息,包括的数据项有:零件号、名称、 规格、单价、描述。 8. 仓库(warehouse )信息,包括的数据项有:仓库号、 面积、地址、电话号码。 9. 职工(staff)信息,包括的数据项有:职工号、姓 名、性别、年龄、职称
工厂物资管理数据库系统 设计报告
班级: 学号: 姓名:
12级信管(软件)1班 12053010311 贺祺媛
一、设计任务说明 二、需求分析 三、概念模型设计
目录
1.实体E-R图设计 2.实体联系描述 3.全局概念结构E-R图设计 四、逻辑模型设计 五、物理模型设计 1.数据库设计 2.数据表描述: 3.触发器: 4.视图: 5.存储过程: 六、数据库实施 1.创建数据库: 2.创建备份文件: 3.创建数据表文件 3.创建索引 4.创建触发器: 5.创建视图: 6.修改语句 七、总结 八、参考文献
Int
否
char
8
否
Varchar 20
否
char
7
Int 类型
库存情况表
长度
可否为 空
Int
否
Int
否
int 类型
否
供应情况表
长度
可否为 空
Int
否
Int
否
备注 主键
备注 主键
备注 主键
备注 主键
项目号 供应量
字段 职工号 仓库号 工作时间
Int
否
Int
工作情况表
类型
长度
可否为 空
Int
否
Int
仓库管理部门主要记录零件数量情况,一间仓库可以存 放多种零件,一种零件可以存放在多建仓库中,因此仓库和零 件之间具有多对多的联系,用数量来表示某种零件在某建仓库 中的数量。
人事部门要安排职工的工作任务,一间仓库有多个职工 当仓库保管员,一个职工只能在一间仓库工作,因此仓库和职 工之间存在一对多的联系。职工之间具有领导---被领导关 系,即仓库主任领导若干保管员,因此直供实体具有一对多的 联系。
否
datetime
否
备注 主键
3.触发器:
(1)要求供应商资料中的供应商号被修改时,供应情况表 中的供应商号也被修改。名称:goodsid、
(2)要求零件资料中的零件号被修改时,供应情况表与库 存情况表中的零件号也被修改。名称:goodsid1、
(3)要求项目资料中的项目号被修改时,供应情况表中的 项目号也被修改。
图6.5供应商数据显示图
create table 库存情况表
( 仓库号int, 零件号int, 库存量int)
图6.6仓库情况表显示图
create table 供应情况表 ( 供应商号int references 供应商资料(供应商号), 零件号int references 零件资料(零件号), 项目号int references 项目资料(项目号), 供应量int)
if(columns_updated()&01)>0 update 供应情况表 set 供应情况表.零件号=(select 零件号from inserted) where 供应情况表.零件号=(select 零件号from deleted) update 库存情况表 set 库存情况表.零件号=(select 零件号from inserted) where 库存情况表.零件号=(select 零件号from deleted) end (3)create trigger good_2 on 项目资料 for update as begin if(columns_updated()&01)>0 update 供应情况表 set 供应情况表.项目号=(select 项目号from inserted) where 供应情况表.项目号=(select 项目号from deleted) end (4)create trigger good_3 on 供应商资料 for delete as if exists(select 供应商号from deleted a where a.供应商号in(select 供应情况表.供应商号from 供应情 况表) ) begin raiserror('因在供应商资料中存在,不得删除此条记录!',16,1) rollback transaction end (5)create trigger good_5 on 零件资料 for delete as if exists(select 零件号from deleted a where a.零件号in(select 供应情况表.零件号from 供应情况表) or a.零件号in(select 库存情况表.零件号from 库存情况表) ) begin
图6.1仓库数据表显示图 create table 零件资料 ( 零件号 int primary key, 名称 varchar(30), 规格 varchar(20), 电话号码 char(15), 描述 Text, 单价 int)
图6.2零件数据表显示图 create table 项目资料 ( 项目号int primary key,
(1)根据规则1,5实体对应以下5个关系模式。 仓库资料(仓库号、面积、电话号码),主键为仓 库号。 零件资料(零件号,名称,规格,单价,描述), 主键为零件号。 供应商资料(供应商号,姓名,地址,电话,账 号),主键为供应商号。 项目资料(项目号,预算,开工日期),主键为项 目号。 职工资料(职工号,姓名,年龄,职称),主键为 职工号。
一、设计任务说明
1.理解数据库应用与工厂物资管理体系;
2.掌握模型设计定义以及如何用数据库实现创建; 3.掌握数据库实现管理以及语句、数据上的修改;
二、需求分析
通过对工厂物资管理工作过程及数据流图的认真分析,得到如 下的有用信息:
1. 工厂物资管理设计多种零件的存放。 2. 每件零件需要记录零件号码、条形码、类别、价格、出
图6.7供应商情况表显示图
create table 工作情况表 ( 职工号int references 职工资料(职工号), 仓库号int references 仓库资料(仓库号), 工作时间datetime)
图6.8工作情况表显示图
3.创建索引
create nonclustered index IX_仓库号on 仓库资料(仓库号asc) create nonclustered index IX_零件号on 零件资料(零件号asc) create nonclustered index IX_项目号on 项目资料(项目号asc) create nonclustered index IX_职工号on 职工资料(职工号asc) create nonclustered index IX_供应商号on 供应商资料(供应商号asc) create nonclustered index IX_仓库号on 库存情况表(仓库号asc) create nonclustered index IX_供应商号on 供应情况表(供应商号asc) create nonclustered index IX_职工号on 工作情况表(职工号asc)
2.创建备份文件:
sp_addumpdevice'disk','BACKUP1','D:\sql\goodsbackup1.dat' go backup database goodsManagment to BACKUP1
3.创建数据表文件
create table 仓库资料 ( 仓库号 int primary key, 面积 int, 电话号码 char(15))
3.全局概念结构E-R图设计