_数据库原理实验报告

  • 格式:doc
  • 大小:82.50 KB
  • 文档页数:8

下载文档原格式

  / 8
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库原理实验报告

学生学号: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('1001','新心运输有限公司','讯飞')

2. 查询操作:

select*

from车队

where公司名字='新心运输有限公司'

3.修改操作:

update车队

SET车队号='1002'

where车队名='讯飞'

4.删除操作:

delete

from车队

where车队名='讯飞'

5.创建视图:

create view ST

as

select车队号,车队名

from车队