-数据库原理实验报告.doc_第1页
-数据库原理实验报告.doc_第2页
-数据库原理实验报告.doc_第3页
-数据库原理实验报告.doc_第4页
-数据库原理实验报告.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库原理实验报告学 生 学 号: 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图运输公司公司名字车队车队名车队号车辆厂家牌照号出厂日期司机司机编号姓名电话号车队车辆司机拥有1n使用mn管理1n运输公司车队车队拥有司机使用车辆1mnn1(4)全局E-R图公司名字运输公司1管理1车队号车队名车队11聘期聘用拥有nn工资公里数厂家mn姓名使用司机车辆使用日期出厂日期司机编号电话号牌照号3逻辑结构设计(关系模式)(1)实体集转换为关系模式运输公司(公司名字)车队(车队号,车队名)车辆(牌照号,厂家,生产日期)司机(司机编号,姓名,电话号)(2)联系集转换为关系模式管理(公司名字,车队号)拥有(牌照号,车队号)聘用(车队号,司机编号,聘期)使用(牌照号,司机编号,使用日期,公里数,工资)4规范化设计(3NF)上述8个关系中均不存在非主属性对候选码的部分函数依赖和传递函数依赖,因此均已达到3NF要求,不需要进一步分解。然后根据一对一或者一对多的联系可以与某一端对应的关系模式合并,为了使数据看起来不冗杂,我们将关系集中候选码是全码的进行合并,得到以下5个关系:(1)实体集的关系模式:运输公司(公司名字)车队(车队号,公司名字,车队名)车辆(牌照号,车队号,厂家,生产日期)司机(司机编号,姓名,电话号)(2)联系集的关系模式:聘用(车队号,司机编号,聘期)使用(牌照号,司机编号,使用日期,公里数,工资)5创建数据库(SQL脚本)CREATE DATABASE 车队管理GOUSE 车队管理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 司机(司机编号)GO6SQL编程(1)基本操作1插入操作:insertinto 车队(车队号,公司名字,车队名)values(1001,新心运输有限公司,讯飞)2. 查询操作:select *from 车队where 公司名字=新心运输有限公司3.修改操作:update 车队SET 车队号=1002where 车队名=讯飞4.删除操作:deletefrom 车队where 车队名=讯飞5.创建视图:create view STasselect 车队号,车队名from 车队where 公司名字=新心运输有限公司6.创建索引:create unique index sc on 车队(车队号 ASC) (2)触发器触发器1: 使用表中,修改后的工资不能低于2000。- =- Template generated from Template Explorer using:- Create Trigger (New Menu).SQL- Use the Specify Values for Template Parameters - command (Ctrl-Shift-M) to fill in the parameter - values below.- See additional Create Trigger templates for more- examples of different Trigger statements.- This block of comments will not be included in- the definition of the function.- =SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO- =- Author:- Create date: - Description:- =CREATE TRIGGER LIMIT_SAGE ON 使用 FOR INSERT,UPDATEAS BEGIN if update(工资) UPDATE 使用 SET 工资=2000 where exists(select 工资 from inserted where inserted.工资=使用.工资 and inserted.工资2000) - SET NOCOUNT ON added to prevent extra result sets from- interfering with SELECT statements.-SET NOCOUNT ON; - Insert statements for trigger hereENDGO触发器2:聘期表中,不能插入有聘期小于0的元组- =- Template generated from Template Explorer using:- Create Trigger (New Menu).SQL- Use the Specify Values for Template Parameters - command (Ctrl-Shift-M) to fill in the parameter - values below.- See additional Create Trigger templates for more- examples of different Trigger statements.- This block of comments will not be included in- the definition of the function.- =SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO- =- Author:- Create date: - Description:- =CREATE TRIGGER AAA ON 聘用 instead of insertAS if exists(select 聘期 from inserted where 聘期=0)BEGIN PRINT聘期不合理!- SET NOCOUNT ON added to prevent extra result sets from- interfering with SELECT statements.-SET NOCOUNT ON; - Insert statements for trigger hereENDGOl 实践总结本次实验的第一体会就是熟悉了对数据库上机的初步操作,对于书上的SQL标准语句来说,真正上机时用到的具体软件上的操作语句还是有一些出入的。在简

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论