第一篇:数据库原理及应用实验教学指导书
《数据库原理及应用》实验
本实验与《数据库原理及应用》课程相配套,适用于本校地理信息系统专业本科学生。实验目的:
数据库系统及应用实验是本课程教学环节中的重要一环。数据库系统及应用课程学习数据库的建立和应用,需要通过大量的上机来验证和熟悉数据库管理软件,通过本实验学习,学习使用SQL Server,掌握数据库的原理,能应用SQL Server做一些应用实践,并能结合高级编程语言开发一些小型的项目,并进一步了解学习空间数据库;
基本要求:
1)总体要求:学生实验前,要认真阅读实验指导书,能够按教学内容独自使用SQL Server完成实验,做好实验报报告。
2)先修课程:计算机基础、高级语言(C语言程序设计)、数据结构 3)本课程已开出11个实验。
《数据库原理与应用》对地理信息系统专业应开设11个实验,其中综合性实验1个,设计性实验9个,演示性实验1个。
4)本实验分组: 本实验由单人单机完成。课程名称: 数据库原理与应用开课单位: 资源环境学院实 验 室: GIS与RS实验室 实验代码 实验名称
开课学期:第必修/
选修 必修 必修 必修 必修 必修 必修 必修 必修 必修 必修 必修学期 类型 演示 设计 设计 设计 设计 设计 设计 设计 设计 设计 综合课实验要求 时认识SQL2000,能够注册,连接2 服务器,了解工具栏各个命令在SQL Server环境下建立和维2 护数据库建立表,修改表结构,建立索4 引,数据完整性描述掌握数据的插入、更新和删除。2用SQL SELECT语句完成各种数6 据查询定义视图,并在视图上完成查2 询、插入、更新和删除操作掌握存储过程的建立和执行 2建立一组触发器,并执行一些2 必要的数据操作使其被执行初步掌握以作为客户端开发工2 具开发C/S应用的方法。初步掌握以作为客户端开发工2 具开发C/S应用的方法。完成一个数据库小系统的开发
类别
03031401 SQL Server界面与操专
作 业
03031402 建立数据库 专
业
03031403 建立表和数据完整性 专
业
03031404 SQL 数据操作 专
业
03031405 SQL 数据查询 专
业
03031406 视图的定义和操作 专
业
03031407 存储过程 专
业
03031408 触发器 专
业
03031409 使用Visual FoxPro专
做客户端开发 业
03031410 使用PowerBuilder做专
客户端开发 业
03031411 系统开发 专
业
第二篇:数据库原理课程设计指导书
数据库课程设计
第一节
序
言
数据库是信息系统的核心和基础,它把信息系统中大量的数据按一定的模型组织起来,提供存储、维护、检索数据的功能,使信息系统可以方便、及时、准确地从数据库中获得所需的信息。
数据库设计是信息系统开发和建设的重要组成部分。
数据库设计的基本任务是:对于一个给定的应用领域,设计优化的数据库逻辑和物理结构,使之满足用户的信息管理要求和数据操作要求,有效地支持各种应用系统的开发和运行。也就是说,数据库设计应该和应用系统设计相结合,即整个设计过程中要把结构(数据)设计和行为(处理)设计密切结合起来。因此,数据库设计的成果有二:一是数据模式,二是以数据库为基础的典型应用程序。
数据库设计和开发是一项复杂的工程,是涉及多学科的综合性技术。
课程设计是课堂教学的实践延伸,是重要的一环。学生按所选设计任务分组,在两周的课程设计时间里,学生应围绕自己的题目内容,结合软件工程的原理和方法,体验数据库及其应用系统开发全过程,尤其要突出数据库设计的六个阶段;同时体验并发挥团队合作精神。完成设计任务后,交付课程设计说明书。
第1页
数据库课程设计
第二节
课程设计步骤
选定设计任务后,分小组讨论,初步划分小组各成员的子任务,选出小组负责人,同时按照软件工程的原理和数据库设计的步骤尽快安排小组的工作进度,指导教师在第二天检查各小组的进度安排。
整个设计过程,小组各成员之间要有充分的交流,并作活动记录,其关键部分要求载入课程设计说明书。
一般地,在设计的各阶段,小组与指导教师之间至少要有一次交流、汇报,让教师掌握其设计动态。
小组负责人要协调并控制小组各成员及整个项目(设计任务)的开发进度。
第2页
数据库课程设计
第三节
设计说明书要求与格式参考
按软件工程的要求编写课程设计说明书,要求不少于3000字。说明书中除了在封面应有题目、班级、姓名、学号和课程设计日期、地点以外,其正文一般有如下几个方面的内容:
(1)系统分析报告,包括系统的功能分析、系统的功能模块设计、数据库的数据字典,数据库的概念结构(E-R图),数据库中的表、视图(如果使用)、存储过程(如果使用)的结构和定义(可以用SQL脚本提供);
(2)程序设计的报告:包括程序的运行环境、开发环境、程序的详细设计(包括模块之间的关系,模块的功能、主要功能实现的程序段)
(3)系统的源程序,包括数据库脚本程序。
其中数据库设计部分应尽量详尽,该部分说明书的参考格式如下。
数据库设计部分
1. 引言
1.1 项目名称
1.2项目背景和内容概要 1.3相关资料、缩略语、定义
(相关项目计划、引用的文件、采用的标准等)(缩写词和名词定义)2. 约定
数据库中各种元素的命名约定。例如表名,字段名的命名约定。
3. 需求分析
数据流图及相应数据字典 4. 数据库概念模型设计
4.1数据实体-关系图
第3页
数据库课程设计
4.2数据实体描述
数据实体中文名,数据库表名,数据实体描述 4.3实体关系描述
(描述每个实体间的关系)
实体1:实体2(1:1,1:n, m:n)
5.数据库逻辑模型设计
5.1关系模型描述
(E-R图向关系模型转换)
数据库表名: 同义词(别名): 主键: 外键: 索引:
约束: 中文名称 数据属性名 数据类型 数据长度
约束范围 是否空 注解
5.2数据视图描述
(如用标准SQL语言中创建数据视图的语句描述)5.3数据库一致性设计
(如用标准SQL语言中创建表的语句描述)
6.物理实现
6.1数据库的安排
。说明是否采用分布式数据库,数据库表如何分布。每个数据库服务器上建立几个数据库,其存储空间等安排
。数据库表的的分配方法,例如:如何创建段,或表空间 6.2安全保密设计
用户角色划分方法,每个角色的权限
第4页
数据库课程设计
第四节 设计任务 题一:酒店管理系统
1、问题描述
某三星级酒店经营住宿、餐饮、桑拿、会议业务,其中住宿和餐饮服务收入占该酒店整个营业收入的80%。客人入住酒店可以通过前台登记、前台预定;客房分为多个档次以供不同消费者选择;餐饮部既对内部入住客人服务,也对外营业,入住客人可以通过电话订购各种食品,在餐饮大厅就餐的客人必须先购餐券,然后凭餐券让服务生领取食品。
该酒店为加强管理,提高整个酒店的运行效率,打算建设信息化管理系统,其中客房部、餐饮部是整个系统的重要模块。
试实现其中客房管理模块
2、系统功能的基本要求:
前台客人入住登记; 客人退房登记; 前台收银; 客房预订登记;
换房(客人要求换房间)记录; 住宿价格调整; 访客登记; 综合查询
第5页
数据库课程设计
⑴ 房况查询:某间或某类客房当前入住情况查询;预定房查询;某段日期某客房入住记录查询;
⑵ 入住客人信息查询:根据房间号查询入住客人的信息;根据客人证件或姓名查询客人信息;根据来访客人信息查询被访客人信息。
3、建议与提示: 采用B/S架构;
本选题建议最多4人选做;
题二:高校学生宿舍管理系统
1、问题描述:
某高校有学生3万多人,学生统一住在学生宿舍。每间学生宿舍都配备有网络接口、电表、水表;学校后勤集团可以根据情况设置网络费、电费、水费标准,例如:每个学生每年交网络费30元;每个学生每个月有5度免费电、3吨免费水,超过免费量就按市场价格收取该寝室水电费。
根据情况,专科生、本科生、硕士研究生和博士研究生住房标准不同。一般,专科生是4-6人一间寝室;硕士生3人一间寝室;博士生两人一室;除博士生外,所有学生每年都要按某个设定的价格缴纳一定的住宿费。
对部分空置宿舍可以对外出租,租金由宿舍管理中心设定。该高校后勤集团学生宿舍管理中心拟开发一套管理软件,以加强学生宿舍管理。2系统基本功能要求:
第6页
数据库课程设计
新生入住登记(包括宿舍住房分配、登记); 毕业生退房登记; 学生换宿舍记录; 寝室卫生检查记录; 寝室设备损坏保修登记; 水电表读数记录;
水电收费(可以每月一收,也可以每年一收); 空置宿舍外租管理; 外来客人登记记录; 综合查询
⑴ 根据寝室号查学生信息; ⑵ 根据学号或姓名查寝室;
⑶ 查水电费帐目(根据寝室号、学号查某寝室某段时期内的水电费);
发挥你的想象,可能还有哪些功能是需要的,实现它。
3、数据库要求:在数据库中至少应该包含下列数据表:
寝室信息表(包括楼号、寝室号、类型、价格等); 学生信息表; 寝室卫生检查记录; 水表度数记录; 电表度数记录; 外租客信息。
4、建议与提示: 采用B/S架构;
本选题建议最多4人选做;
第7页
数据库课程设计
题三:仓库管理系统
1、问题描述:
某大型国有生产型企业拥有4个仓库:原材料仓库、成品仓库、半成品仓库和一个综合仓库。每个仓库配有主管一名和保管员若干名。该企业为精简冗员、减少仓库管理成本、提高管理效率,拟开发一仓库管理系统。
2、基本功能要求:
产品入库管理,可以填写入库单,确认产品入库; 产品出库管理,可以填写出库单,确认出库; 借出管理,凭借条借出,然后能够还库;
初始库存设置,设置库存的初始值,库存的上下警戒线; 可以进行盘库,反映每月、年的库存情况;
可以查询产品入库情况、出库情况、当前库存情况,可以按出库单、入库单,产品、时间进行查询;
3、建议与提示: 采用B/S架构;
本选题建议最多4人选做;
题四:储蓄系统
1、问题描述: 为方便储户,某银行拟开发计算机储蓄系统。储户填写的存款单或取款单由业务员键入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;如果是取款,系统计算利息并印出利息清单给储户。
第8页
数据库课程设计
2、系统功能基本要求:
储户开设帐户(根据用户类型分个人帐户、企业帐户); 存款(定期、活期);
取款(定期到期取款、活期取款) 消户
转帐(注意事务处理)
3、建议与提示:
采用B(Browser)/S(Server)架构; 本选题建议最多3人选做;
题
五、简单POS系统
1、问题描述:
某小型商店打算开发一简单POS系统。系统要求记录每一笔订货信息、每一笔销售交易的详情,并能查询某种商品销售情况,库存情况;当某种商品的库存不足时,系统自动提醒订货。
2、系统功能基本要求:
订货信息(商品名称、订货价、数量、供货商等)录入; 供货商信息录入;
销售详细信息(包括商品名称、价格、数量等)录入、查询、打印;
销售情况综合查询
⑴ 按照商品名称、编号查询某一段时间内的销售量和销售额;
⑵ 查询某种商品的销售利润((销售价-订货价)×销量); 库存情况查询:查询某种商品的当前库存量
第9页
数据库课程设计
安全库存量设置:为某种商品设定安全库存量,如果当前库存量小于安全库存量,系统自动提示订货;
3、建议与提示: 采用B/S架构;
本选题建议最多4人选做;
题
六、房产管理系统
1、问题描述:
在我国住房管理是一个关系到每个人切身利益的大问题。现拟开发一个用计算机进行房产管理的系统,要求系统具有分房、调房、退房和咨询统计等功能。房产科把用户申请表输入系统以后,系统首先检查申请表的合法性,对不合法的申请表系统拒绝接受;对合法的申请表根据类型分别进行处理。
如果是分房申请,则根据申请者的情况(年龄、工龄、职称、职务、家庭人口等)计算其分数,当分数高于阈值分数时,按分数高低将申请单插到分房队列的适当位置。每月最后一天进行一次分房活动,从空房文件中读出空房信息,如房号、面积、等级、单位面积房租等,把好房优先分配给排在分房队列前面的符合该等级条件的申请者,从空房文件中删除这个房号的信息,从分房队列中删掉该申请单,并把此房号的信息和住户信息一起写到住房文件中,输出住房分配单给住户,同时计算房租并将算出的房租写到房租文件中。
如果是退房申请,则从住房文件和房租文件中删掉有关信息,再把此房号的信息写到空房文件中。
如果是调房申请,则根据申请者的情况确定其住房等级,然后在第10页
数据库课程设计
空房文件中查找属于该等级的空房,退掉原住房,再进行与分房类似的处理。
住户可向系统询问目前分房的阈值分数,居住某类房屋的条件,某房号的单位面积房租等信息。房产科可以要求系统印出住房情况统计表,或更改某类房屋的居住条件、单位面积房租等。
2、基本功能要求: 住房申请信息录入;
房产信息(包括位置、房型、面积、建造日期、房租等)录入、修改、查询;
分房阀值的设定、查询; 非空房的住户情况查询; 住房分配单输出; 评分标准的设定;
申请人申请信息公示(注意权限控制); 分房结果公示与查询。
3、建议与提示: 采用B/S架构;
本选题建议最多4人选做;
题七:汽车客运中心票务管理系统
1、问题描述:
在长途汽车客运中心,旅客可以查看当前班次信息(通过电子布告牌或普通布告牌),根据班次信息到售票窗口购票,然后凭票上车;旅客在开车前某段时间可以退票;车站管理人员可以发布车次信
第11页
数据库课程设计
息(如新开或增加某线路班次),可以根据市场行情来调整车票价格;售票窗口可以查询某班次的售票情况,可以预售车票。
2、基本功能要求: 多个售票窗口售票; 退票受理; 发布车次情况; 调整车票价格;
记录、调整某车次的司机、服务人员配备情况;
3、建议与提示: 采用B/S架构;
本选题建议最多3人选做;
题八:校友通信录
1、问题描述:
校友通信录是用来联系往日校友的重要手段,它应该具有新校友加入、校友查询以及修改个人资料等功能。其中修改个人资料时需要有口令验证。
2、基本功能要求: 有权限设置功能;
新校友加入时应通过管理员的审核;
3、建议与提示: 采用B/S架构;
本选题建议最多2人选做;
第12页
数据库课程设计
题九:班主任助手
1、问题描述:
中学班主任不但承担着繁重的教学任务,还负责管理班上学生的学习、生活和思想,因而工作量相当大。试设计并完成一个软件,帮助班主任管理学生。
2、基本功能要求:
学生信息(包括个人信息、家庭情况、爱好等)的录入、修改; 学生学习管理:每位学生每次考试成绩的录入、分析 综合查询:
⑴ 按姓名或学号查某个学生的信息或家庭情况; ⑵ 按姓名或学号查某个学生某次考试的成绩; ⑶ 统计某次考试的平均分;
⑷ 统计某个同学所有考试的平均分,描绘其成绩走势曲线图。
3、建议与提示:
本选题建议最多2人选做;
题十:学籍管理系统
1、问题描述
某高校拟开发一学生学籍管理系统,以帮助管理学生的基本信息、学习成绩、奖惩情况等。要求学生从入学起,即在系统中记录其基本信息,以后系统全程跟踪学生的学习成绩、奖惩情况等。
2、系统基本功能要求: 学生基本信息编辑
第13页
数据库课程设计
以班级为单位,在新生入学时录入新生的基本信息,并能对学生基本信息进行随时的修改(包括: 学生个人基本信息;入学成绩;家庭信息;学生简历;学生军训;学生体检)
学生成绩管理
⑴ 在每学期考试结束后录入学生考试成绩,并能进行成绩修改
⑵ 在录入学生成绩时应先选择分制:等级制;分数制
⑶ 如是分数制应先设置平时分和考试分数在最后成绩中的百分制
⑷ 如是等级制在写入数据表中时应先将等级转化为分数 ⑸ 在录入学生成绩表时先应该选取操作班级,再以每门课程为单位进行成绩的录入,缓考学生的成绩不需录入,学生最后成绩由程序根据用户设置进行自动计算生成 ⑹ 能根据学生成绩信息自动生成补考成绩信息 ⑺ 在录入缓考/补考信息时以班级为单位进行录入 ⑻ 缓考/补考后应相应的更新成绩表和缓考/补考信息表 学生惩处/奖励管理
⑴ 可随时录入学生奖励/惩处信息,并能进行修改;
⑵ 在撤消惩处时应相应的更新学生惩处信息表。 学生其他信息管理
(操作对象: 贷款管理信息;学生异动表;学生注册表); ⑴ 可随时录入学生贷款管理/注册信息,并能进行修改; ⑵ 在处理(执行/恢复)学生异动信息时,应更新相应的本学生信息(学生的学号,学生所属班级编号);
⑶ 异动情况:留级(转班相似),休学(同退学),退学(作一标志,并添加此学生信息到异动表),转班级(作一标志,并添加此学生信息到异动表,更新此学生所有信息,学号关联的更新)。 综合查询: a.查询学生基本信息
(操作对象: 学生信息表;入学成绩表;家庭信息表;学生简历表;学生军训;学生体检)⑴ 根据学生姓名,班级查询(转化为学号进行查询)
第14页
数据库课程设计
⑵ 根据学号查询 ⑶ 按班级查询
b.查询学生成绩
⑴ 按学生学号查询本学期成绩
⑵ 按学生姓名,班级查询本学期成绩(转化为学号进行查询)⑶ 查询某学生所有学期成绩(按学号/按姓名,班级)⑷ 按专业班级查询此班本学期需补考人次 ⑸ 查询全校所有缓考学生信息 ⑹ 全校还需补考的学生信息
⑺ 全校补考门次大于某一定数的学生信息
⑻ 全校范围内总学分小于某一定数的学生信息查询 ⑼ 全校范围内学生总成绩小于某一定数的学生信息查询
c.奖励/惩处查询
⑴ 按学号查询某学生奖励/惩处信息 ⑵ 按姓名、班级查询某学生奖励/惩处信息 d.其它信息查询 ⑴ 按学号查询
⑵ 按学生姓名,班级查询 ⑶ 按班级查询
3、数据库要求:在数据库中至少应该包含下列数据: ⑴ 学生个人基本信息;⑵ 学生简历表;⑶ 入学成绩表;⑷ 家庭信息表;⑸ 学生奖励表;⑹ 学生处分表;⑺ 学生异动表;⑻ 学生成绩表;⑼ 学生注册表;⑽ 贷款管理表;
第15页
数据库课程设计
⑾ 学生体检表;⑿ 学生军训表;⒀ 班级信息;⒁ 缓考信息表;⒂ 补考信息表
4、建议与提示: 采用B/S架构; 本选题建议5人选做;
第五节
考勤与考核
全体同学在课程设计期间,必须在上课时间到专业机房进行考勤,一天四次(早上8:10及11:30,下午2:10及4:30)。
每个小组在课题完成之后,必须通过指导老师的考核,基本完成课题要求的起点为合格,另根据每个同学的具体完成模块情况进行考核评分。
第16页
第三篇:数据库原理实验指导书
《数据库原理实验指导书》
河南科技大学电子信息工程学院目录
实验规则..................................................................................................................................0 实验报告要求..........................................................................................................................2 基本实验方法..........................................................................................................................2 实验环境..................................................................................................................................2 实验一:数据定义及更新语句练习......................................................................................3 实验二:简单查询和连接查询..............................................................................................5 实验三:分组查询和嵌套查询..............................................................................................7 实验四:视图操作和数据控制..............................................................................................9 实验五:触发器和存储过程................................................................................................11 选作题目................................................................................................................................13
实验规则
为了顺利完成实验教学任务,确保人身设备安全,培养严谨、踏实、实事求是的科学作风和爱护国家财产的优良品质,特制定以下实验规则:
1、实验纪律
(1)在实验室不得做和实验无关的事情。(2)遵守纪律,不迟到,不旷课。
(3)不能拆卸硬件,更不能拿走实验设备或仪器。(4)保持实验室安静、整洁,爱护公物。
2、实验过程
(1)预习实验内容。自行设计SQL语句。
(2)上机操作。每执行一句记录执行情况,主要是错误信息和错误原因。(3)检查操作结果是否正确。
(4)根据实验过程的记录书写实验报告。
实验报告要求
1、报告用纸 采用统一的河南科技大学实验报告用纸,不得用别的纸张代替。
2、实验报告封面内容
实验名称:(如实验一 数据库创建)班级名称:(如计科101班)学生学号: 学生姓名: 实验时间:
3、实验报告内容
见各具体实验项目的要求。
基本实验方法
本实验要求熟悉SQL Server环境和数据库的相关知识。
实验环境
Microsoft SQL Server2012 2 实验一:数据定义及更新语句练习一、二、实验目的:熟练掌握用SQL语句实现数据库和基本表的创建、数据的更新。预习要求:实验前复习讲授过的有关创建数据库、基本表的SQL语句,预习SQL Server2000环境,特别是资源管理器和查询分析器的相关用法。
三、实验内容:
(一)用SQL语句建立如下mySPJ数据库,包括S,P,J,和SPJ四个基本表(教材第二章习题5中的四个表),要求实现关系的三类完整性。
S(SNO,SNAME,STATUS,CITY);P(PNO,PNAME,COLOR,WEIGHT);J(JNO,JNAME,CITY);SPJ(SNO,PNO,JNO,QTY)供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成。
零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成。
工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成。
供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,表示某供应商 供应某种零件 给某工程项目的数量为QTY。
(二)分别使用插入、删除、修改的方式更新基本表中的数据。
四、实验方法和步骤:
(一)使用Microsoft SQL Server企业管理器和查询分析器建立数据库mySPJ: 1.打开“开始->程序->Microsoft SQL Server->企业管理器”;
2.在企业管理器左边的树标签中依次打开“Microsoft SQL Server-> SQL Server组->(local)(Windows NT)->数据库”,(local)(Windows NT)前的红色标记转化为绿色标记表明NT服务已启动;
3.从企业管理器的“工具”菜单中选择“SQL 查询分析器”,打开查询分析器后,在其窗口书写创建数据库mySPJ的SQL语句,点击执行按钮(或F5键)执行该SQL 3 语句;
4.在企业管理器左边的树标签中查看数据库是否建立成功。
(二)在数据库mySPJ中建立S,P,J,和SPJ四个基本表:
按照实验内容给出的基本表结构在查询分析器窗口中书写SQL语句分别建立各表,并设置主键和外键约束;
(三)更新表数据:
1.利用Insert 语句将习题中给出的示例记录插入各表。2.利用Update更新表中的记录:
①将p表中的所有红色零件的重量增加5。
②将spj表中所有天津供应商的QTY属性值减少10。用子查询。
3.利用Delete语句删除p表中的所有红色零件的记录。
4.SQL语句执行后返回基本表查看更新后的结果,如果与期望不符,分析原因并记录在实验报告中。
五、思考题:
(一)在为各表设定关键字时弹出的页面中有关键字和索引选项,试通过给基本表设定这两个项目并说明二者的区别。
(二)在基本表中输入数据时,注意数据与字段的数据类型和长度以及能否为空的属性是否一致,保存时如有错误分析错误原因,及时改正并将错误报告写在实验报告中。
六、实验报告要求:
(一)实验目的:(二)实验内容:
(三)完成情况(附上设计的SQL语句)。
(四)实验结果:如果是查询语句,将查询结果记录列出来,其它可以不写。(五)问题及解决:首先写出执行语句不成功的时候系统报告的错误信息。然后分析错误原因,并给出解决办法。(六)回答思考题提出的问题,(七)实验总结:心得体会,建议等。
实验二:简单查询和连接查询
一、实验目的:熟练掌握用SQL语句实现的简单查询和多个数据表连接查询。
二、预习要求:实验前复习讲授过的有关简单查询与多表查询的知识,编写相应的SQL语句。
三、实验内容:
(一)完成下面的简单查询:
①查询所有“天津”的供应商明细; ②查询所有“红色”的14公斤以上的零件。③查询工程名称中含有“厂”字的工程明细。(二)完成下面的连接查询:
①等值连接:求s表和j表的相同城市的等值连接。
②自然连接:查询所有的供应明细,要求显示供应商、零件和工程的名称,并按照供应、工程、零件排序。
③笛卡尔积:求s和p表的笛卡尔积 ④左连接:求j表和spj表的左连接。⑤右连接:求spj表和j表的右连接。
四、实验方法和步骤:
参照实验一中给出的使用Microsoft SQL Server企业管理器和SQL查询分析器的方法,将实验内容中所要求的查询项目依次用SQL语句实现,并记录下执行结果。
五、思考题:
查看实验内容2中左连接和右连接的执行结果是否一致,为什么?
六、实验报告要求:(一)实验目的:(二)实验内容:
5(三)完成情况(附上设计的SQL语句)。
(四)实验结果:如果是查询语句,将查询结果记录列出来,其它可以不写。(五)问题及解决:首先写出执行语句不成功的时候系统报告的错误信息。然后分析错误原因,并给出解决办法。(六)回答思考题提出的问题,(七)实验总结:心得体会,建议等。实验三:分组查询和嵌套查询
一、实验目的:熟练掌握用SQL语句实现多个数据表的分组查询和嵌套查询。
二、预习要求:实验前复习讲授过的有关分组查询和嵌套查询的知识,编写相应的SQL语句。
三、实验内容:(一)分组查询:
1.求各种颜色零件的平均重量。2.求北京供应商和天津供应商的总个数。3.求各供应商供应的零件总数。4.求各供应商供应给各工程的零件总数。5.求使用了100个以上P1零件的工程名称。6.求各工程使用的各城市供应的零件总数。
(二)嵌套查询:
1.in连接谓词查询:
① 查询没有使用天津供应商供应的红色零件的工程名称。② 查询供应了1000个以上零件的供应商名称。(having)2.比较运算符:求重量大于所有零件平均重量的零件名称。3.Exists连接谓词:
① 查询供应J1的所有的零件都是红色的供应商名称。② 至少用了供应商S1所供应的全部零件的工程号JNO。
四、实验方法和步骤:
参照实验一中给出的使用Microsoft SQL Server企业管理器和SQL查询分析器的方法,将实验内容中所要求的查询项目依次用SQL语句实现,并记录下执行结果。
五、思考题:
(一)嵌套查询中的in连接谓词查询,关键字in可以直接用any代替么?什么情况下in和any可以互相代替?
(二)嵌套查询中的内查询为外查询返回的内容是什么?是表达式?视图?还是物理数据集合?
六、实验报告要求:(一)实验目的:(二)实验内容:
(三)完成情况(附上设计的SQL语句)。
(四)实验结果:如果是查询语句,将查询结果记录列出来,其它可以不写。(五)问题及解决:首先写出执行语句不成功的时候系统报告的错误信息。然后分析错误原因,并给出解决办法。(六)回答思考题提出的问题,(七)实验总结:心得体会,建议等。
实验四:视图操作和数据控制
一、实验目的:熟练掌握用SQL语句实现视图操作和数据控制。
二、预习要求:实验前复习讲授过的有关视图操作和数据控制的知识,编写相应的SQL语句。
三、实验内容:
(一)定义如下视图:
①查询北京的供应商的编号、名称和城市。②查询S1供应商的所有供应明细。
③查询各工程名称使用的各种颜色零件的个数。查询上面定义的视图。
(二)数据控制:
①使用GRANT把对S表查询的权利授予WangLi。
②使用GRANT把对P表查询、插入、修改、删除的权利授予LiMing。
③使用REVOKE把LiMing对P表插入、删除的权利回收。
四、实验方法和步骤:
参照实验一中给出的使用Microsoft SQL Server企业管理器和SQL查询分析器的方法,将实验内容中所要求的查询项目依次用SQL语句实现,并记录下执行结果。
五、思考题:
实验内容中的哪些视图可以用来更新记录?
六、实验报告要求:(一)实验目的:(二)实验内容:
(三)完成情况(附上设计的SQL语句)。
(四)实验结果:如果是查询语句,将查询结果记录列出来,其它可以不写。(五)问题及解决:首先写出执行语句不成功的时候系统报告的错误信息。然后 9 分析错误原因,并给出解决办法。(六)回答思考题提出的问题,(七)实验总结:心得体会,建议等。
实验五:触发器和存储过程
一、实验目的:理解触发器和存储过程的含义,掌握用SQL语句实现触发器和存储过程的编写,并初步掌握什么情况下使用事务。
二、预习要求:存储过程和触发器的相关概念,事务的相关概念,编写相应的SQL语句。
三、实验内容:
有一个小型的图书管理数据库,包含的表为:
bookstore(bookid,bookname,bookauthor,purchasedate,state);--图书库存表
borrowcard(cardid,ownername);--借书证表
borrowlog(cardid,bookid,borrowdate,returndate);--借书记录表 写一个存储过程,实现借书操作,要求有事务处理。(1)读者借书,要先设置书籍不在库标志state(借出),然后增加借书记录,在同一事务中完成。(2)要求在事务执行过程中引入错误触发事件,以此体会事务的错误保护机制和事务编程的作用。(3)要求用触发器实现表的完整性控制。
四、实验方法和步骤:
(一)在查询分析器中创建包含以上三张表的数据库。
(二)参考CREATE PROCEDURE语句和Create Trigger语句。在事务执行过程中引入错误触发事件,可以考虑在增加借书记录时违反实体完整性或参照完整性,以此体会事务的错误保护机制,并用触发器实现表的完整性控制。
五、思考题:
如何通过系统的设置实现类似的功能,而不需触发器?
六、实验报告要求:(一)实验目的:(二)实验内容:
(三)完成情况(附上设计的SQL语句)。
11(四)实验结果:如果是查询语句,将查询结果记录列出来,其它可以不写。(五)问题及解决:首先写出执行语句不成功的时候系统报告的错误信息。然后分析错误原因,并给出解决办法。(六)回答思考题提出的问题,实验总结:心得体会,建议等。
选作题目
选作题目1:用vb,delphi或者c++builder设计一个数据库应用程序,实现一个简单的成绩管理,建立三个表:学生表S,课程表C和成绩表SC。要求实现的功能:(1)维护学生信息;(2)维护课程信息;(3)录入成绩;(4)查询一个学生的所有课程成绩;(5)查询每门课程的平均成绩。(6)打印学生成绩报表;(7)打印每门课程的平均成绩报表。
选作题目2:自由结合以(5-6)人为小组完成一个数据库系统设计的小课题。要求用ERWIN工具对数据库进行建模。
第四篇:《数据库原理及应用》课程设计指导书new
《DBS201》课程设计指导书
一、课程设计的目的和意义
《DBS201》课程设计是实践性教学环节之一,是《DBS201》课程的辅助教学课程。通过课程设计,使学生掌握数据库的基本概念,结合实际的操作和设计,巩固课堂教学内容,使学生掌握数据库系统的基本概念、原理和技术,将理论与实际相结合,应用现有的数据建模工具和数据库管理系统软件,规范、科学地完成一个小型数据库的设计与实现,把理论课与实验课所学内容做一综合,并在此基础上强化学生的实践意识、提高其实际动手能力和创新能力。
二、设计要求:
通过设计一完整的数据库,使学生掌握数据库设计各阶段的输入、输出、设计环境、目标和方法。熟练掌握两个主要环节———概念结构设计与逻辑结构设计;熟练的使用SQL语言实现数据库的建立、应用和维护。安排1周的时间进行课程设计,以小组为单位,一般3~4人为一组。教师讲解数据库的设计方法以及布置题目,要求学生根据题目的需求描述,进行实际调研,提出完整的需求分析报告。
要求如下:
(1)要充分认识课程设计对培养自己的重要性,认真做好设计前的各项准备工作。
(2)既要虚心接受老师的指导,又要充分发挥主观能动性。结合课题,独立思考,努力钻研,勤于实践,勇于创新。
(3)独立按时完成规定的工作任务,不得弄虚作假,不准抄袭他人内容,否则成绩以不及格计。
(4)课程设计期间,无故缺席按旷课处理;缺席时间达三分之一以上者,其成绩按不及格处理。
(5)在设计过程中,要严格要求自己,树立严肃、严密、严谨的科学态度,必须按时、按质、按量完成课程设计。
(6)小组成员之间,分工明确,但要保持联系畅通,密切合作,培养良好的互相帮助和团队协作精神。
三、课程设计选题的原则
课程设计题目以选用学生相对比较熟悉的业务模型为宜,要求通过本实践性教学环节,能较好地巩固数据库的基本概念、基本原理、关系数据库的设计理论、设计方法等主要相关知识点,针对实际问题设计概念模型,并应用现有的工具完成小型数据库的设计与实现。具体选题见附录。
四、课程设计的一般步骤
课程设计大体分五个阶段:
1、选题与搜集资料:根据分组,选择课题,在小组内进行分工,进行系统调查,搜集资料。
2、分析与设计:根据搜集的资料,进行功能与数据分析,并进行数据库、系统功能等设计。
3、程序设计:运用掌握的语言,编写程序,实现所设计的模块功能。
4、调试与测试:自行调试程序,成员交叉测试程序,并记录测试情况。
5、验收与评分:指导教师对每个小组的开发的系统,及每个成员开发的模块进行综合验收,结合设计报告,根据课程设计成绩的评定方法,评出成绩。
五、本课程设计内容与要求
掌握数据库的设计的每个步骤,以及提交各步骤所需图表和文档。通过使用SQL Server 2005建立所设计的数据库,并在此基础上实现数据库查询、连接等操作和触发器、存储器等对象设计。
1、需求分析:根据自己的选题,绘制的数据字典图表以及书写相关的文字说明。
2、概念结构设计:绘制所选题目详细的E-R图。
3、逻辑结构设计:将E-R图转换成等价的关系模式;按需求对关系模式进行规范化;对规范化后的模式进行评价,调整模式,使其满足性能、存储等方面要求;根据局部应用需要设计外模式。
4、物理结构设计:选定实施环境,存取方法等。
5、数据实施和维护:用DBMS建立数据库结构,加载数据,实现各种查询、链接应用程序,设计库中触发器、存储器等对象,并能对数据库做简单的维护操作。
6、用VB、VC、ASP等设计数据库的操作界面。
7、设计小结:总结课程设计的过程、体会及建议。
8、其他:参考文献、致谢等。
六、课程设计报告要求
(1)问题描述。包括此问题的理论和实际两方面。
(2)解决方案。包括:E-R模型要设计规范、合理,关系模式的设计至少要满足第三范式,数据库的设计要考虑安全性和完整性的要求。
(3)解决方案中所设计的E-R模型、关系模式的描述与具体实现的说明。
(4)具体的解决实例。
七、完成结果要求
上交的成果的内容必须由以下两个部分组成,缺一不可
1.课程设计报告:(保存在word 文档中,文件名要求 按照“姓名-学号-课程设计报告”起名,如文
件名为“张三-001-课程设计报告”.doc),包括针对每个题目所做得解答。
2.设计总结:(保存在课程设计报告的最后)总结可以包括 : 课程设计过程的收获、遇到问题、遇到问题解决问题过程的思考、对数据库原理与应用这门课程的思考、在课程设计过程中对《数据库原理与应用》课程的认识等内容。
附录:课程设计题目
《数据库系统》课程设计:(1)人事管理系统
系统功能的基本要求:
员工各种信息的输入,包括员工的基本信息、学历信息、婚姻状况信息、职称等。 员工各种信息的修改;
对于转出、辞职、辞退、退休员工信息的删除;
按照一定的条件,查询、统计符合条件的员工信息;至少应该包括每个员工详细信息的查询、按婚姻状况查询、按学历查询、按工作岗位查询等,至少应该包括按学历、婚姻状况、岗位、参加工作时间等统计各自的员工信息;
以下功能请有兴趣的同学作进一步的完善:
(1)
(2)
(3)
(4)
(5)
(6)为你的系统设计一个用户、角色和权限系统,使不同的用户拥有不同的权限; 对重要的数据进行加密存储; 在查询所有资料的时候,进行分页显示; 在统计数据的时候,不是用文字,而是用图表(饼图、柱状图等)显示 在用户输入信息的时候加入验证,例如身份证必须是15或18位的数字等; 改善你的数据表结构,使之更符合减少数据冗余和思维习惯
以下课题请参照上面的要求完成需求分析,E-R图的设计等。
(2)网上书店
(3)家庭理财系统
(4)客房管理数据库
(5)手机话费查询系统
(6)超市管理系统
(7)学生信息查询系统
(8)实训成绩统计系统
(9)房屋销售管理系统
(10)住院收费管理系统
(11)干部档案管理系统
(12)订单生成系统
(13)商家打折信息管理系统
(14)实验室数据上报系统
(15)工资管理信息系统
(16)考勤管理信息系统
(17)员工培训管理信息系统
(18)仓库货物管理系统
(19)内部行文管理系统
(20)进销存管理系统
(21)酒店管理系统
(22)医院管理系统
(23)银行账户管理系统
(24)光盘管理系统
(25)网吧机房管理系统
(26)机动车驾驶员考试系统
(27)打字店文档管理系统
(28)合同管理系统
(29)通讯录管理系统
(30)试题库管理系统
(31)学生成绩管理系统
(32)学生选课信息系统
(33)电脑销售系统
(34)教材发放管理系统
(35)教师管理系统
(36)设备管理系统
(37)运动会管理系统
(38)个人财物管理系统
(39)洗衣店管理系统
(40)体育彩票分析系统
(41)高校团委团员管理系统
(42)宾馆住宿管理系统
(43)学籍管理系统
(44)房屋中介管理系统
(45)航班售票管理系统
(46)旅游管理系统
(47)高校科研管理系统
(48)校园自助银行模拟系统
第五篇:数据库原理_实验教学讲稿
邯 郸 学 院
实验教学讲稿
2013~2014学年 第一学期
分院(系、部): 教 研 室: 课 程 名 称: 授 课 班 级: 主 讲 教 师: 职
称: 使 用 教 材:
信息工程学院 网络工程 数据库原理
网络工程2011级本科班
李 娜 讲师
《数据库系统概论》
邯郸学院制
实验1 认识DBMS系统、数据库及数据库表的建立实验
一、实验目的
本实验的目的是使学生熟悉SQL Server Management Studio的使用方法,熟悉SQL SERVER的常用数据类型,加深对SQL语言的数据定义语句的理解。熟练掌握数据库及数据库表的创建、修改和删除。
二、实验时数:
2学时
三、实验内容
分别使用SQL语言和对象资源管理器完成以下操作:
1.创建数据库
创建数据库名为COMPANY1,主数据文件的逻辑名称为COMPANY_DATA,操作系统文件的名称为D:MSSQLDATACOMPANY.MDF,大小为20MB,最大为50MB,以25%的速度增长。日志文件的逻辑名称为COMPANY_LOG,操作系统文件的名称为D:MSSQLDATACOMPANY.LDF,大小为3MB,最大为10MB,以1MB的速度增长。2.修改数据库
(1)将数据库COMPANY1的主数据文件的初始分配空间大小扩充到40MB.(2)将数据库COMPANY1改名为COMPANY 3.创建表
在名为COMPANY数据库中创建以下四个表:(1)部门表,表名DEPA 列名 DNO 数据类型 DECIMAL(2)
描述
部门编号 部门名称 部门地址 DNAME VARCHAR(16)ADDR VARCHAR(20)(2)雇员表,表名EMPL 列名 ENO 数据类型 DECIMAL(4)
描述
员工编号 员工姓名 出生日期 ENAME CHAR(8)BIRTHDATE DATETIME
SALARY DECIMAL(7,2)DNO DECIMAL(2)
工资
所在部门编号
(3)项目表,表名PROJ 列名 PNO 数据类型 DECIMAL(3)
描述
项目编号 项目名称 PNAME VARCHAR(24)(4)工作表,表名JOB 列名 ENO PNO DAYS 数据类型 DECIMAL(4)DECIMAL(3)INT
描述
员工编号 项目编号
工作天数
4.修改表结构
1)修改部门表DEPA,添加一列部门电话,列名Telephone,数据类型VARCHAR(15)。2)为项目表PROJ添加Begindate和Enddate列,数据类型为DATETIME。3)删除项目表PROJ中的Enddate列。5.删除表
1)删除项目表PROJ。
6、添加记录:
1)向DEPA表添加14号部门,客户中心,地址为开发区紫光路2号。2)向DEPA表添加 15号部门,技术支持部,地址未详。3)向DEPA表添加 13号部门,财务部,地址未详。
„„
4)向EMPL表添加1401号员工,张山,出生日期1977年9月1日,工资4050元,14号部门。
5)向EMPL表添加1402号员工,何宜,生日不祥,工资不祥,15号部门。„„
6)向PROJ表添加103号项目,历史学院档案库管理系统。7)向PROJ表添加104号项目,ATM机管理系统。„„
8)向JOB表添加1401号员工,参与了104号项目35天。9)向JOB表添加1402号员工,参与了103号项目20天。„„
7、修改记录:
1)把DEPA表中’客户中心’的地址改为’大连甘井子区红岭路’;2)把DEPA表中15号部门的地址用沈阳东郊路120号填充。
3)把EMPL表中何宜的生日、工资用1981年12月20日,3000元填充。4)把EMPL表中张山的部门号改为15号。5)把JOB表中参与104号项目的每人增加5天。6)把JOB表中参与103号项目的每人天数乘以系数0.8。
8、删除记录:
1)删除地址为空的部门。
2)删除JOB表中参与104号项目的员工。3)删除JOB表中天数低于25天的员工。
4)删除生于1980年后,且工资低于4000的员工。5)删除属于14号部门的员工。6)删除15号部门的信息。
9.使用对象资源管理器分离和附加数据库COMPANY
实验2 数据库的单表查询、分组查询与聚集函数的使用
一、实验目的
本实验的目的是使学生熟悉SQL Server Management Studio的使用方法。加深对SQL语言的查询语句的理解。熟练掌握数据库的单表查询(包括投影、选择条件表达,数据排序,模糊查询等), 熟练掌握数据库的分组、统计、计算和集合的操作方法。
二、实验时数
2学时
三、实验内容 1.简单的SELECT查询
1)查询雇员表Empl中所有员工的详细信息,并且列名用汉字表示。2)查询项目表Proj中所有项目的详细信息,并且列名用汉字表示。2.使用WHERE子句进行查询
1)查询雇员表Empl中李强的员工编号。
2)查询项目表Proj中项目编号为“101”的项目名称。3.使用DISTINCT关键字去掉重复行
1)查询雇员表Empl中出现的所有部门编号,要求无重复。
2)查询工作表Job中参与过项目开发的所有员工编号,要求无重复。4.使用ORDER BY子句对查询结果进行排序
1)查询雇员表Empl中所有员工的详细信息,结果按员工姓名降序排列。2)查询工作表Job中的工作信息,结果按工作天数升序排列。5.使用LIKE子句进行模糊查询
1)查询所有姓王的员工的编号及姓名,并且以员工编号及员工姓名作为列名。2)查询雇员表Empl中姓名以“伟”字结尾的员工信息。6.使用聚集函数MIN、MAX进行查询
1)查询雇员表Empl中员工的最低工资,并且列名用“最低工资”表示。2)查询雇员表Empl中员工的最高工资,并且列名用“最高工资”表示。7.使用聚集函数COUNT进行查询
1)查询雇员表Empl中所有员工的总人数,并且列名用“员工总数”表示。2)查询14号部门的人数,并且列名用“客户中心部人数”表示。
8.使用分组子句GROUP BY与聚集函数MIN、MAX进行查询 1)查询每个部门中年龄最大的员工,显示部门编号和出生日期。
2)分别统计雇员表Empl中各部门员工的最高工资,并且列名分别用“部门编号”及“最高工资”表示。
9.使用分组子句GROUP BY与聚集函数SUM、AVG进行查询
1)分别统计雇员表Empl中各部门员工的工资总额,并且列名分别用“部门编号”及“各部门工资总额”表示。
2)分别统计雇员表Empl中各部门员工工资的平均数,并且列名分别用“部门编号”及“各部门工资平均数”表示。
10.使用分组子句GROUP BY与聚集函数COUNT进行查询
1)统计员工人数多于4人的部门信息,并且列名分别用“部门编号”及“员工人数”表示。
2)分别统计工作表Job中各项目的参与开发的员工人数,并且列名分别用“项目编号”及“员工人数”表示。
实验3 数据库的多表连接和子查询
一、实验目的
本实验的目的是使学生加深对SQL和SQL语言的查询语句的理解。熟练掌握数据库的多表连接查询和子查询。
二、实验时数
2学时
三、实验内容 ㈠多表连接查询:
1.对两张数据表使用内连接进行查询
1)查询姓名为“王一伟”的员工所在部门的名称,并且列名用汉字表示。2)查询编号为“1002”的员工姓名及该员工所在部门的名称,并且列名用汉字表示。
2.对多张数据表使用内连接进行查询
1)查询姓名为“陈晨”的员工参与过的所有项目的名称,并且列名用汉字表示。2)查询编号为“1202”的员工姓名及该员工参与过的所有项目的名称,并且列名用汉字表示。
3.对两张数据表使用左连接进行查询
1)使用左连接查询所有员工的基本信息及参与项目开发情况,如果某员工参与过项目开发,则列出该员工所参与的所有项目的编号,否则该项以空值表示。2)使用左连接查询所有员工的基本信息及所在部门名称,如果某员工尚未分配到任何部门,则该员工的部门名称项以空值表示。4.对两张数据表使用右连接进行查询
1)使用右连接查询所有员工的基本信息及参与项目开发情况,如果某员工参与过项目开发,则列出该员工所参与的所有项目的编号,否则该项以空值表示。2)使用右连接查询所有员工的基本信息及所在部门名称,如果某员工尚未分配到任何部门,则该员工的部门名称项以空值表示。㈡子查询: 1.多表单值子查询
1)查询编号为1001的员工的部门名。
2)查询‘客户中心’部门的员工数。3)查询陈晨所在的项目编号。2.多表多值子查询
1)查询1985年以后出生的员工在所在项目的工作天数。2)查询参与项目天数超过40天的员工姓名。3)查询工资低于2000的员工的所属部门。3.多层嵌套子查询
1)查询‘客户中心'部门中,收入高于平均工资的员工。2)查询“开发系统”项目的参与部门。
3)查询'宣传'部门雇员参加的项目名称。4.相关子查询
1)查询参与两个项目以上的员工姓名。2)查询所有未参与项目的员工姓名。
实验4 数据库的视图与索引定义
一、实验目的
本实验的目的是使学生掌握索引与视图的定义与维护操作,加深对索引与视图在关系数据库中的作用的理解。
二、实验时数
2学时 [相关知识] 建立索引是加快查询速度的有效手段。用户可以根据应用环境的需要,在基本表上建立一个或多个索引,以提供多个存取路径,加快查找速度。
视图是根据子模式建立的虚拟表。一个视图可以由一个表构造,也可以由多个表构造。查看和修改视图就如同对表的操作一样,非常容易。
三、实验内容 ㈠索引 1.创建索引
1)为PROJ表的PNAME列创建非聚集索引Pindex。
2)为DEPA表的DNAME(降序),ADDR两列创建唯一非聚集索引Dindex。3)在PROJ表的PNAME列上创建唯一非聚集索引Pindex,若该索引已存在则删除后重建。2.查看索引
1)查看DEPA表的索引信息。
2)查看数据库COMPANY索引使用的空间信息 3.索引更名
1)将DEPA表的索引Dindex名更改为Dindex1。4.删除索引
1)删除DEPA表的索引Dindex1。㈡视图 1.创建视图
1)创建14号部门员工的视图EMPL_14(ENO,ENAME,SALARY)。2)创建包含项目名与员工名及工作天数的视图Prjemp。
3)在视图EMPL_14上创建工资在3000以上的员工的视图EMPL_14H3。4)创建每个部门的平均工资的视图E_AVG(DNO,SAVG)。2.查询视图
1)根据视图Prjemp查询做'设计系统'项目的所有员工及工作天数。2)根据视图E_AVG查询‘客户中心’的平均工资。3.更新视图
1)在视图EMPL_14中将1042号员工的姓名改为‘李立春’。2)向视图EMPL_14中插入一条新记录(1050,‘赵英’,3500)。3)删除视图EMPL_14中1042号员工的记录。4.删除视图
1)删除视图Prjemp。
实验5 数据库的安全性控制
一、实验目的
本实验的目的是通过实验使学生加深对数据安全性的理解,并掌握SQL Server中有关用户,角色及操作权限的管理方法。
二、实验时数
2学时
三、实验内容
分别使用SQL语言和对象资源管理器完成以下操作:
1.建立数据库登录帐户S1和D1,密码均为1234,登录帐户S1默认数据库分别为COMPANY,其它保持默认值。
2.将S1映射为COMPANY数据库的同名数据库用户。
3.将D1映射为COMPANY数据库的数据库用户,数据库用户名为S2。3. 对数据库用户授予权限
1)授予S1对EMPL表插入数据的权限,并验证该权限(方法:通过登录帐户S1登录SQL Server,然后插入一条数据来验证该权限)。
2)授予S2创建表的权限,并验证该权限(方法:通过登录帐户D1登录SQL Server,然后创建-张表来验证该权限)。
3)收回S1对EMPL表插入数据的权限,并验证该权限(方法:通过登录帐户S1登录SQL Server,然后插入一条数据来验证该权限)。4.创建用户角色
1)在COMPANY数据库中创建角色MYROLE,授予该角色查询和修改EMPL表的权限。
2)将S1添加为角色MYROLE的成员,并验证s1是否能够查询EMPL表。3)将S2添加为角色MYROLE的成员,并验证s2是否能够修改EMPL表。5.收回数据库用户权限
1)采用用户角色方法收回S1和S2修改EMPL表的权限,并验证S1是否还能修改EMPL表。
2)拒绝S2查询 EMPL表的权限,并验证S2是否还能查询EMPL表。
实验6 数据完整性
一、实验目的
本实验的目的是通过实验使学生加深对数据完整性的理解,掌握数据完整性的约束条件,学会创建和使用触发器。
二、实验时数
2学时 [相关知识] SQL Server实现数据完整性的具体方法有4种:约束、缺省、规则和触发器。触发器是实施复杂完整性的特殊类型的存储类型。触发器不需要专门语句调用,当对它所保护数据进行修改时自动激活,以防止对数据进行不正确,未授权或不一致的修改。
三、实验内容
1.创建包含非空约束字段的表
创建一个员工联系信息表Contact,一共有3个字段: 雇员号(Eno)数据类型为4位长定长字符串; 电话(Tel)数据类型为8位长定长字符串; 地址(Addr)数据类型为20位变长字符串; 要求雇员号和电话不能为空。2.创建包含唯一约束字段的表
创建员工邮箱表Mail,一共有2个字段: 雇员号(Eno)数据类型为4位长定长字符串; 邮箱地址(Mail)数据类型为20位变长字符串; 要求雇员号非空,邮箱地址唯一。3.创建包含主码约束字段的表
创建一个员工卡信息表Card,一共有3个字段: 雇员号(Eno)数据类型为4位长定长字符串; 卡号(Cno)数据类型为8位长定长字符串; 开卡日期(Startday)日期格式; 要求雇员号和卡号联合做主键。
4.创建包含检查约束字段的表
创建项目进度表Process,一共有3个字段: 项目号(Pno)数据类型为4位长定长字符串; 完成百分比(Percentage)数据类型为DECIMAL(3,2); 已用费用(Pem)数据类型为INT;
要求:⑴完成百分比用小数表示且数值小于1;
⑵已用费用的取值为0-100000(用规则实现)。5.创建包含默认值约束字段的表
创建通勤表Commudity,一共有2个字段: 雇员号(Eno)数据类型为4位长定长字符串; 通勤标志(Flag)数据类型为1位定长字符串; 要求通勤标志默认为‘Y’。6.创建包含外码约束字段的表
1)创建部门经理表Mgr,一共有2个字段:
部门号(Dno)数据类型为4位长定长字符串 经理员工号(Eno)数据类型为4位长定长字符串 要求部门号是主键(用CONSTRAINT 约束实现)2)创建部门收支表CHARGE,一共有2个字段:
部门号(Dno)数据类型为4位长定长字符串 收支(CHARGE)数据类型为DECIMAL(7,2)要求部门号是外键 7.创建触发器
在表EMPL上创建一个触发器EMPL_date,当更改员工编号时同步更改Job表中对应的员工编号。
实验7 数据库设计
一、实验目的
使学生能够对给定的实际需求,选择一种编程语言或开发工具,完成数据库设计,并实现数据的查询等操作,从而掌握数据库应用系统的设计方法和步骤。熟悉大型数据库管理系统的结构与组成; 熟悉数据库应用系统的设计方法和开发过程;
掌握一种大型数据库管理系统(SQL SERVER或ORACLE)的应用技术和开发工具的使用;
熟悉数据库设计工具的使用; 熟悉数据库安全的相关知识和技术; 熟悉数据库系统的管理和维护。
二、实验时数
4学时
三、实验内容
完整实践数据库应用系统设计的工程过程:需求分析概念设计逻辑设计物理设计实施编写应用程序:
(1)需求分析:选定一个应用,对所设计的数据库系统有一定的调研分析,其结果应该以简单的需求分析说明书数据字典和数据流图(2级数据流即可)表示;(2)概念分析:使用E-R图作为描述工具.描述出局部和全局的E-R图;(3)逻辑设计:将E-R图转化为相应的关系模式,并根据范式理论进行优化分析,关系模式不少于3个;
(4)物理设计:根据需要设计必要的索引等结构;
(5)实施:以某种DBMS为工具创建出完整的数据库.在数据库中要表现出的知识点包括: ①设置数据完整性(参照完整性、实体完整性、自定义完整性(包括触发器)。②设置用户,并相应设计用户的权限和角色(用户设计至少3个,有不同的权限)。
③建立存储过程完成相关操作至少2个,以文件方式保存。④
(6)编写应用程序:利用开发工具C++、JAVA、.NET平台或其它动态网页开发工具编写应用程序;
(7)以上内容,请详细描述,并有必要抓图;(8)提交系统的源码程序、设计性实验报告。
实验8 数据库的备份与恢复
一、实验目的
本实验的目的是通过实验使学生了解SQL Server的数据备份和恢复机制,掌握SQL Server中数据库备份和恢复的方法。
二、实验时数 2学时
三、实验内容
分别使用SQL语言和对象资源管理器完成以下操作: 1.创建备份设备
创建一个名为company_dev的磁盘备份设备,其对应的文件是D:company_dev.bak,该备份设备用于COMPANY数据库的备份。写出创建该备份设备的SQL语句。2.对数据库进行完全备份
对COMPANY数据库进行一次完全备份,备份到company_dev备份设备中。并且写出完成完全备份的SQL语句。3.对数据库进行差异备份
对COMPANY数据库完成完全备份后,往EMPL表中添加两条新记录。然后对COMPANY数据库进行差异备份,并且写出完成差异备份的SQL语句。4.对数据库进行事务日志备份
对COMPANY数据库完成差异备份后,执行SQL语句修改数据库的内容。然后对COMPANY数据库进行事务日志备份,并且写出完成事务日志备份的SQL语句。5.模拟数据库故障发生
模拟用户不小心删除了COMPANY数据库,从而需要使用备份恢复数据库。6.恢复最近的完全数据库备份
作为恢复的第一步,使用完全备份恢复COMPANY数据库。7.恢复完全备份之后的最近的差异数据库备份
利用差异备份恢复COMPANY数据库,并写出相应的SQL语句。8.恢复完全或差异备份之后的数据库事务日志备份
利用事务日志备份恢复COMPANY数据库,并写出相应的SQL语句。