-数据库原理实验报告.docVIP

  • 9
  • 0
  • 约5.01千字
  • 约 8页
  • 2017-12-26 发布于河南
  • 举报
-数据库原理实验报告

数据库原理实验报告 学 生 学 号: 1131010053 学 生 姓 名: 辜洋 学生所在班级: 信息与计算科学132 指 导 教 师: 孙晓勇 2014至 2015年第 二 学期 1.系统描述 运输公司下面有车队,车辆,司机…等信息,为了方便运输公司信息的管理,采用数据库存储这些综合信息,使得对于每个运输公司都能使用这个系统。在这里我们采用SQL Server软件产品来实现该系统,版本为:Microsoft SQL Server 2008R2。 1.需求分析(管理规则) 车队管理系统的细则如下: (1)一个运输公司有若干个车队,每个车队只属于一个运输公司,。 (2)一个车队可聘用多个司机,每个司机只能属于一个车队。 (3)一个车队可拥有若干车辆,每辆车只能属于一个车队。 (4)每个司机可以使用多辆车,每辆车可以被多个司机使用。 2.概念结构设计(E-R图) (1)假设:从现实世界中我们可以得知每个公司在注册的时候都要求公司名字不一样,所以我们假设每个运输公司的名字都不一样,即公司名字唯一标识该公司。 (2)实体集:运输公司、车队、车辆、司机。 (2)联系集:运输公司实体与车队实体之间是一对多联系“管理”,车队实体与车辆实体之间是一对多联系“拥有”, 车队实体与司机实体之间是一对多联系“聘用,车辆实体与司机实体之间是多对多联系“使用”。 (3)局部E-R图 (4)全局E-R图 3.逻辑结构设计(关系模式) (1)实体集转换为关系模式 运输公司(公司名字) 车队(车队号,车队名) 车辆(牌照号,厂家,生产日期) 司机(司机编号,姓名,电话号) (2)联系集转换为关系模式 管理(公司名字,车队号) 拥有(牌照号,车队号) 聘用(车队号,司机编号,聘期) 使用(牌照号,司机编号,使用日期,公里数,工资) 4.规范化设计(3NF) 上述8个关系中均不存在非主属性对候选码的部分函数依赖和传递函数依赖,因此均已达到3NF要求,不需要进一步分解。然后根据一对一或者一对多的联系可以与某一端对应的关系模式合并,为了使数据看起来不冗杂,我们将关系集中候选码是全码的进行合并,得到以下5个关系: (1)实体集的关系模式: 运输公司(公司名字) 车队(车队号,公司名字,车队名) 车辆(牌照号,车队号,厂家,生产日期) 司机(司机编号,姓名,电话号) (2)联系集的关系模式: 聘用(车队号,司机编号,聘期) 使用(牌照号,司机编号,使用日期,公里数,工资) 5.创建数据库(SQL脚本) CREATE DATABASE 车队管理 GO USE 车队管理 CREATE TABLE 运输公司 ( 公司名字 CHAR(50), PRIMARY KEY(公司名字) ) CREATE TABLE 车队 ( 车队号 INT, 公司名字 CHAR(50), 车队名 CHAR(50), PRIMARY KEY(车队号,公司名字), FOREIGN KEY (公司名字) REFERENCES 运输公司(公司名字) ) CREATE TABLE 车辆 ( 牌照号 INT, 车队号 INT, 厂家 CHAR(50), 生产日期 DATETIME PRIMARY KEY(牌照号,车队号), FOREIGN KEY (车队号) REFERENCES 车队(车队号) ) CREATE TABLE 司机 ( 司机编号 INT, 姓名 CHAR(10), 电话号 IN T, PRIMARY KEY(司机编号) ) CREATE TABLE 聘用 ( 车队号 INT, 司机编号 INT, 聘期 INT, PRIMARY KEY (车队号,司机编号), FOREIGN KEY (车队号) REFERENCES 车队(车队号), FOREIGN KEY (司机编号) REFERENCES 司机(司机编号) ) CREATE TABLE 使用 ( 牌照号 INT, 司机编号 INT, 使用日期 DATETIME, 公里数 FLOAT, 工资 FLOAT, PRIMARY KEY (牌照号,司机编号,使用日期), FOREIGN KEY (牌照号) REFERENCES 车辆 (牌照号), FOREIGN KEY (司机编号) REFERENCES 司机(司机编号) ) GO 6.SQL编程 (1)基本操作 1.插入操作: insert into 车队(车队号,公司名字,车队名) values

文档评论(0)

1亿VIP精品文档

相关文档