西南交通大学数据库原理实验课程设计
- 格式:doc
- 大小:808.00 KB
- 文档页数:25
数据库原理课程设计》课程设计任务书一、目的与要求1. 本实验是为网络工程、信息安全等专业的学生在学习数据库原理后,为培养更好的解决问题和实际动手能力而设置的实践环节。
通过这个环节,使学生具备应用数据库原理对数据库系统进行设计的能力。
为后继课程和毕业设计打下良好基础。
2. 通过该实验,培养学生在建立数据库系统过程中使用关系数据理论的能力。
3. 通过对一个数据库系统的设计,培养学生对数据库需求分析、数据库方案设计、系统编码、界面设计和软件调试等各方面的能力。
是一门考查学生数据库原理、面向对象设计方法、软件工程和信息系统分析与设计等课程的综合实验。
二、主要内容针对一个具有实际应用场景的中小型系统 (见题目附录) 进行数据库设计,重点分析系统涉及的实体、实体之间的联系,实现增加、删除、更新、查询数据记录等基本操作。
大致分为如下步骤:1. 理解系统的数据库需求,分析实体及实体间联系,画出E-R 图:1.分析确定实体的属性和码,完成对该实体的实体完整性、用户自定义完整性的定义。
2.设计实体之间的联系,包括联系类型和联系的属性。
最后画出完整的E-R 图。
2.根据设计好的E-R 图及关系数据库理论知识设计数据库模式:1) 把E-R 图转换为逻辑模式;2) 规范化设计。
使用关系范式理论证明所设计的关系至少属于3NF并写出证明过程;如果不属于3NF则进行模式分解,直到该关系满足3NF为止,要求写出分解过程。
3) 设计关系模式间的参照完整性,要求实现级联删除和级联更新。
4) 用SQL语言完成数据库内模式的设计。
3.数据库权限的设计:1) 根据系统分析,完成授权操作;2) 了解学习收回权限的操作。
4.完成用户界面的设计,对重要数据进行加密。
5.连接数据库,用宿主语言实现系统所需的各种操作:1) 实现数据记录的录入、删除、查询和修改。
2) 以视图的形式完成复杂查询,比如多表、多条件等。
三、进度计划四、设计(实验)成果要求1. 在DBMS(如oracle , SQL Server 2005/2008 , DB2等)上完成完整的数据库的设计;2. 使用可视化开发平台完成信息系统,要求可以正确运行;3. 完成实验报告。
目录第一部分大纲和计划1.1 实验教学大纲 1 1.2 实验实施计划表 2第二部分实验说明2.1 实验一:了解Oracle中的基本知识 3 2.2 实验二:Oracle中的查询 4 2.3 实验三:Oracle中的表 5 2.4 实验四:PL/SQL编程(一) 6 2.5 实验五:PL/SQL编程(二) 7 2.6 实验六:PL/SQL编程(三) 8 2.7 实验七:PL/SQL编程(四) 9 2.8 实验八:触发器设计 10第三部分实验补充教材3.1 实验一:了解Oracle中的基本知识 11 3.2 实验二:Oracle中的表 12 3.3 实验三:Oracle中的查询 15 3.4 实验四:PL/SQL编程(一) 15 3.5 实验五:PL/SQL编程(二) 18 3.6 实验六:PL/SQL编程(三) 22 3.7 实验七:PL/SQL编程(四) 26 3.8 实验八:触发器设计 31第一部分大纲和计划1.1《数据库原理》实验教学大纲一、课程名称:数据库原理(Principle of Database System)二、课程编码:三、课程总学时: 16 学时 [理论: 0 学时;实验: 16 学时]四、课程总学分:学分五、适用专业和开课学期:计算机科学与技术专业,第4学期。
六、实验的目的与任务:通过ORACLE中用户及表的创建、SQL查询、ORACLE中的表、PL/SQL编程、触发器设计等实验,使学生掌握数据库技术的基本原理在大型数据库中的应用。
七、主要仪器设备及台(套)数:计算机八、主要实验教材(指导书)及参考用书:《数据库原理及应用》(Oracle)实用教程刘甫迎、王道学、党晋蓉主编清华大学出版社2004年10月第1版九、成绩考核方式及评分标准:教师根据学生通过FTP上交的实验报告确定其完成数量和质量,进一步综合学生的上机态度进行评分。
实验成绩占课程总成绩的30%。
十、实验开出率:100%十一、实验项目与要求:注:1.项目要求:必修、选修、其他;2.项目类型:演示、操作、模拟;3.项目性质:验证、综合、设计、研究。
《数据库原理》课程设计一、课程设计目的1、培养学生运用所学课程《数据库原理》的理论知识和技能以及对数据库组织、管理和使用能力。
2、掌握数据库应用系统的整个设计过程(包括需求分析、概念结构设计、逻辑结构设计与物理设计与实施)二、实施时间本课程设计时间为一周。
三、课程设计的具体要求1.从附录一中按要求选择一个题目进行数据库设计。
2.数据库的设计:根据数据库应用系统设计过程,通过需求分析和系统分析,进行数据库的概念结构设计、逻辑结构设计等工作:●概念结构设计的E-R图●数据库逻辑结构设计是以表格的形式说明数据库中有几个表,每个表的表名以及每个表的各字段名,类型和约束(主、外键);●确定表之间的关联(一对一、一对多、多对多)●运用数据库理论确定每个表至少属于3NF。
四、编写课程设计报告1、封面2、课程设计任务书3、中文摘要,关键字4、目录5、前言:前言主要对本课题的目的和意义进行简要的说明。
6、系统分析与设计(1)需求分析,收集有关数据;(2)数据库的E-R图;(3)数据库的逻辑结构;(4)符合3NF标准。
7、结论。
对本系统作一个全面的评价:包括有何特点、存在的问题、改进意见等。
8、结束语。
通过做课程设计,你有何感想,学到了什么?9、参考文献。
五、课程设计的验收设计中期(具体时间待定)检查E-R图及表结构。
学生的课程设计说明书编写好之后,应交指导教师审阅,教师根据学生的设计资料,设计结果进行评定并给出成绩。
评分标准:1.数据库结构正确性(30%)。
2.数据库结构复杂性,由题目等级决定(30%)。
3.设计报告完成的质量(30%)。
4.出勤(10%)。
5.成绩采用五级分制评定。
六、其他1、论文要求上交纸质版及电子版。
2、纸质版论文要求使用论文模板,左侧装订,可以使用订书钉或拉杆夹。
论文中出现的表格及图要求居中,表格的标题至于表格之上,图的标题至于图之下。
3、电子版文件名命名规则:学号姓名.doc。
设计题目四:仓库管理系统(题目等级60)3、系统功能的基本要求:产品入库管理,可以填写入库单,确认产品入库;产品出库管理,可以填写出库单,确认出库;借出管理,凭借条借出,然后能够还库;初始库存设置,设置库存的初始值,库存的上下警戒限;可以进行盘库,反映每月、年的库存情况;可以查询产品入库情况、出库情况、当前库存情况,可以按出库单、入库单,产品、时间进行查询;2、数据库要求:在数据库中至少应该包含下列数据表:库存情况表;出库单表;入库单表;出库台帐;入库台帐;借条信息表,反映,借出人,借出时间,借出产品,借出数量,还库时间等。
数据库原理课程设计实验指导书(通⽤)《数据库原理课程设计》实验指导书实验名称:数据库原理课程设计实验类型: 综合性实验学时:⼀周适⽤对象: 计算机科学与技术⼀、实验⽬的这门课是为计算机科学与技术专业的学⽣在学习数据库原理B后,为培养更好的解决问题和实际动⼿能⼒⽽设置的实践环节。
通过这个环节,使学⽣拥有能够应⽤数据库原理对数据库系统进⾏设计的能⼒。
为后继课程和毕业设计打下良好基础。
⼆、实验要求设计⼀个基于数据库的综合数据库管理系统,包括后台数据库的设计和前台⽤户终端的设计,具体题⽬四年不重复,要求:1.准备⼯作:在课外安装相关的数据库管理系统软件和开发⼯具软件,并根据参考书熟悉DBMS 的功能、结构,为后期综合实验打好基础。
2.概念模型的设计:根据题⽬要求,列出实体集,并应⽤E-R图描述实体的属性和实体之间的联系。
3.逻辑模型的设计:根据已建⽴好的E-R图选⽤关系模型设计关系表,包括设计关系表的属性、主码等,要求关系表中的属性名必须使⽤英⽂,呈现给⽤户的视图时显⽰中⽂。
4.完整性设计:包括实体完整性、参照完整性和⽤户⾃定义完整性的设计;⽐如年龄的范围、考试成绩的范围、职务的范围等。
并设计多表间的联系,⽐如学⽣表和成绩表,要求根据E-R图的设计设计关系表的外码,并举例说明。
5.规范化设计:使⽤范式理论证明你所设计的关系⾄少属于3NF,写出证明过程;否则进⾏模式分解,直到该关系满⾜三范式,并写出分解过程;6.SQL语⾔的考察:使⽤DBMS所⽀持的SQL语⾔完成关系表的建⽴,数据的插⼊、修改和更新等功能,着种考查关系表的查询(单表查询、多表查询和组合查询等,跟关系代数⼀起考查);7.图形化⽤户界⾯的设计:完成题⽬所要求的各种功能,并⽤菜单或者⼯具栏的形式组织各种功能(如数据的录⼊、查询、更新维护等);8.权限管理的设计:所设计的系统应该有⼀定的权限管理,不同的⽤户登陆完成功能是不⼀样的,对数据表的权限也不同。
数 据 库 原 理 与 应 用 课 程——SQL Server 2008 实验指导书周 艳 编 西南交通大学电气工程学院2014年3月实验准备 SQL Server 2008的安装及常用工具的使用一、实验目的(1) 了解SQL Server 2008 的软硬件需求;(2) 熟练掌握SQL Server 2008的安装方法及过程;(3) 了解SQL Server 2008 的基本架构及组成;(4) 了解SQL Server 2008的相关服务及常用工具的使用方法;二、实验原理1.SQL Server 2008的运行环境 (1) 软件要求表1所列要求适用于所有SQL Server 2008版本的安装。
表1 安装SQL Server 2008的软件要求(2) 硬盘空间要求在安装SQL Server 2008 的过程中,Windows Installer 会在系统驱动器中创建临时文件。
在运行安装程序以安装或升级SQL Server 之前,请检查系统驱动器中是否有至少2.0 GB 的可用磁盘空间用来存储这些文件。
即使在将SQL Server 组件安装到非默认驱动器中时,此项要求也适用。
实际硬盘空间需求取决于系统配置和您决定安装的功能。
表2提供了SQL Server 2008 各组件对磁盘空间的要求。
表2 安装SQL Server 2008硬件空间要求2. 安装准备和注意事项 在开始实际安装SQL Server 2008之前,应考虑执行一些相关步骤,以减少安装过程中遇到问题的可能性。
例如,确定运行SQL Server 2008计算机的硬件软件配置要求,并卸载之前的旧版本,了解SQL Server 2008可运行操作系统版本及特点等。
SQL Server 2008的安装中心将新安装、从SQL Server 2000或SQL Server 2005升级、添加/删除组件维护及实例更改的管理都集成在一个统一的页面。
《数据库原理》课程设计一、课程设计的性质、目的和意义《数据库原理》课程设计是实践性教学环节之一,是《数据库系统原理》课程的辅助教学过程,是计算机科学与技术专业的必修课。
通过课程设计,结合实际的操作和设计,巩固课堂教学内容,使学生掌握数据库系统的基本概念、原理和技术,将理论与实际相结合,应用现有的数据建模工具和数据库管理系统软件,规范、科学地完成一个小型数据库的设计与实现,把理论课与实验课所学内容综合为一,并在此基础上强化学生的实践意识、提高其实际动手能力和创新能力,从而为后续课程的学习,毕业设计环节以及将来的实际工作打好坚实的基础。
二、课程设计的具体内容数据库系统原理的课程设计要求学生综合利用本课程的有关知识,在教师的指导下,利用特定的数据库设计环境,针对具体的问题,完成从系统的需求分析、数据库的概念设计、数据库的逻辑设计,到数据库实现等设计过程,最终实现一个较为完整的反映应用需求的数据库系统。
因此,在设计中,要求学生应该全面考虑各个设计环节以及它们之间的相互联系。
下面是各个设计阶段的具体内容。
1.系统需求分析需求分析是数据库系统设计的一个重要的环节。
本阶段应该对整个应用情况作全面的、详细的调查,确定特定数据库应用环境下的设计目标,收集该应用环境下针对系统设计所需要的基础数据以及对这些数据的具体存储要求,从而确定用户的需求。
用户对数据库的需求包括:⑴处理需求。
即用户要完成什么处理功能等。
学生在设计中应根据具体的课题要求确定系统应该实现的功能,一些基本的功能通常是必须具备的,如用户的管理与维护,基本数据的维护,灵活的信息查询等。
⑵信息需求。
即在数据库中需要存储哪些数据。
学生应该根据具体的课题,认真分析有关的要求,确定本设计的信息需求。
⑶安全性和完整性功能。
实践中这是一个需要与用户不断交流才能逐步确定的需求。
本课程设计要求学生在自己的设计中能反映出基本的安全性和完整性功能。
本阶段的设计结果(即系统需求分析)应该在课程设计报告中进行详细描述,画出系统的数据流图,写出较为详细的数据字典,作为本课程设计的验收依据之一。
数据库原理课程设计书一、教学目标本课程旨在让学生掌握数据库原理的基本概念、设计方法和操作技能。
通过本课程的学习,学生应能理解数据库的基本原理,熟悉数据库的设计和操作,掌握SQL语言等数据库操作技能。
在知识目标方面,学生需要了解数据库的基本概念、发展历程、数据模型、关系型数据库的基本原理和SQL语言等。
在技能目标方面,学生需要掌握数据库的设计方法,能够使用SQL语言进行数据库的操作和管理。
在情感态度价值观目标方面,学生应培养对数据库技术的兴趣,认识到数据库技术在信息社会中的重要性和应用价值。
二、教学内容本课程的教学内容主要包括数据库的基本概念、设计方法和操作技能。
具体包括:数据库的基本概念,如数据、数据库、数据模型等;数据库的发展历程和现状;关系型数据库的基本原理,如表、视图、索引等;SQL语言的基本操作,如增删改查、事务管理等;数据库的设计方法,如需求分析、逻辑设计、物理设计等。
三、教学方法本课程将采用讲授法、案例分析法和实验法等多种教学方法。
讲授法用于讲解基本概念和原理,案例分析法用于分析实际问题和解决方案,实验法用于锻炼学生的实际操作能力。
通过多样化的教学方法,激发学生的学习兴趣和主动性,提高学生的理解和应用能力。
四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备。
教材和参考书将用于提供理论知识和案例分析,多媒体资料用于辅助讲解和演示,实验设备用于实际操作练习。
教学资源的选择和准备将充分支持教学内容和教学方法的实施,丰富学生的学习体验。
五、教学评估本课程的评估方式包括平时表现、作业、考试等。
平时表现主要评估学生的课堂参与和讨论,作业主要评估学生的理解和应用能力,考试主要评估学生的知识掌握和运用能力。
平时表现评估将通过课堂提问、小组讨论等方式进行,占总评的20%。
作业评估将通过布置练习题和项目任务进行,占总评的30%。
考试评估将包括期中和期末考试,占总评的50%。
评估方式将力求客观、公正,全面反映学生的学习成果。
2014-2015学年第一学期《数据库原理》课程实验报告学号: ********学生姓名:***班级:软件工程2012*师:***辅导老师:王泽洲赵红芳2014年12月实验一:表及约束的创建1.1 实验目的与内容目的:创建数据表、添加和删除列、实现所创建表的完整性约束。
内容:11-2、11-26~33。
注:实验内容编号均取自《数据库原理及设计(第2版)》第11章的实验!即:实验内容以第2版教材为准!报告:以11-31作为实验一的报告。
1.2 实验代码及结果1.2.1 实验代码create table person20122617 --创建新表(P_no char(6)primary key,P_name varchar(10)not null,Sex char(2)not null,Birthdate datetime null,Date_hired datetime not null,Deptname varchar(10)not null DEFAULT'培训部',P_boss char(6)null,constraint birth_hire_check --为约束创建一个名称check(Birthdate<Date_hired))create table customer20122617(Cust_no char(6)primary key,Cust_name varchar(10)not null,Sex char(2)not null,BirthDate datetime null,City varchar(10)null,Discount Dec(4,2)not null,constraint Discount_check --检查约束的名称check(Discount>=0.5 and Discount<=1 )--检查约束)--create rule d as @state between 0 and 1 --创建规则--sp_bindrule d,'customer20122617.Discount' --这种方法也可以给Discount约束绑定规则create table orderdetail20122617(Order_no char(6)primary key,constraint Order_no_constraintCHeck(Order_no LIKE'[A-Z][A-Z][0-9][0-9][0-9][0-9]'),Cust_no char(6)not null,P_no char(6)not null,Order_total int not null,Order_date datetime not null,constraint person20122617_contrFOREIGN KEY(P_no)--定义外键为P_noREFERENCES person20122617(P_no)--外键参照主表person20122617中的P_no on delete NO Action --参照定义为不许删除on update cascade,--定义为可随着主表跟新constraint cusrtomer20122617_contrforeign key(Cust_no)REFERENCES customer20122617(Cust_no)--参考on delete NO Actionon update cascade)create table salary20122617(P_no Char(6)primary key,Base Dec(8,2)not null,Bonus Dec(8,2)not null,Fact AS Base+Bonus ,constraint person2_contrFOREIGN KEY(P_no)REFERENCES person20122617(P_no)on delete NO Actionon update cascade)--建表完成1.2.2 实验结果注:仅附有实际意义的结果。
运行代码得到结果后拷屏,用Windows画图工具切下有意义的部分,然后粘贴到此处。
Person20122617表的创建Customer20122617表的创建Orderdetail20122617表的创建Salary20122617表的创建实验二:SQL更新语句2.1 实验目的与内容目的:update、delete、insert 语句的练习。
内容:11-6~8。
报告:以11-7、11-8作为实验二的报告。
2.2 实验代码及结果2.2.1 实验代码2.2.1.1实验数据准备:insert into person20122617--插入person表的数据values('000001','林峰','男','1975-04-07','2003-08-03','销售部','000007') insert into person20122617values('000002','谢志文','男','1975-02-14','2003-12-07','培训部','000005') insert into person20122617values('000003','李浩然','男','1970-08-25','2000-05-16','销售部','000007') insert into person20122617values('000004','廖小玲','女','1979-08-06','2004-05-06','培训部','000005') insert into person20122617values('000005','梁玉琼','女','1970-08-25','2001-03-13','培训部','NULL') insert into person20122617values('000006','罗向东','男','1979-05-11','2000-07-09','销售部','000007') insert into person20122617values('000007','肖佳庆','男','1963-07-14','1988-06-06','销售部','NULL') insert into person20122617values('000008','李浩然','男','1975-01-30','2002-04-12','培训部','000005') insert into person20122617values('000009','赵文龙','男','1969-01-20','1996-08-12','培训部','000007')INSERT INTO customer20122617--为customer表插入数据VALUES ('000001','王云','男','1972-01-30','成都','1.00')INSERT INTO customer20122617VALUES ('000002','林国平','男','1985-08-14','成都','0.85')INSERT INTO customer20122617VALUES ('000003','郑洋','女','1973-04-07','成都','1.00')INSERT INTO customer20122617VALUES ('000004','张雨洁','女','1983-09-06','北京','1.00')INSERT INTO customer20122617VALUES ('000005','刘菁','女','1971-08-20','北京','0.95')INSERT INTO customer20122617VALUES ('000006','李宇中','男','1979-08-06','上海','1.00')INSERT INTO customer20122617VALUES ('000007','顾培铭','男','1973-07-23','上海','1.00')INSERT INTO orderdetail20122617--为orderdetail表插入数据VALUES ('AS0058','000006','000002','150000','2006-04-05')INSERT INTO orderdetail20122617VALUES ('AS0043','000005','000005','90000','2006-03-25')INSERT INTO orderdetail20122617VALUES ('AS0030','000003','000001','70000','2006-02-14')INSERT INTO orderdetail20122617VALUES ('AS0012','000002','000005','85000','2005-11-11')INSERT INTO orderdetail20122617VALUES ('AS0011','000007','000009','130000','2005-08-13')INSERT INTO orderdetail20122617VALUES ('AS0008','000001','000007','43000','2006-06-06')INSERT INTO orderdetail20122617VALUES ('AS0005','000001','000007','72000','2006-05-12')INSERT INTO orderdetail20122617VALUES ('BU0067','000007','000003','110000','2006-03-08')INSERT INTO orderdetail20122617VALUES ('BU0043','000004','000008','70000','2006-12-25')INSERT INTO orderdetail20122617VALUES ('BU0039','000002','000005','90000','2006-10-12')INSERT INTO orderdetail20122617VALUES ('BU0032','000006','000002','32000','2006-08-08')INSERT INTO orderdetail20122617VALUES ('BU0021','000004','000006','66000','2006-04-01')INSERT INTO orderdetail20122617VALUES ('CX0044','000007','000009','80000','2006-12-12')INSERT INTO orderdetail20122617VALUES ('CX0032','000003','000001','35000','2006-09-18')INSERT INTO orderdetail20122617VALUES ('CX0025','000002','000003','90000','2006-05-02')INSERT INTO orderdetail20122617VALUES ('CX0022','000001','000007','66000','2006-12-04')insert into salary20122617--为salary表插入数据values('000001','2100','300')insert into salary20122617values('000002','1800','300')insert into salary20122617values('000003','2800','280')insert into salary20122617values('000004','2500','250')insert into salary20122617values('000005','2300','275')insert into salary20122617values('000006','1750','130')insert into salary20122617values('000007','2400','210')insert into salary20122617values('000008','1800','235')insert into salary20122617values('000009','2150','210')--数据插入均完成2.2.1.1 11-7实验代码update salary20122617set Base=1800 where P_no=000006 --跟新号员工的工资和奖金update salary20122617set Bonus='160'where P_no=000006update salary20122617--将两年内没有订单的员工奖金下调25% set Bonus=Bonus*.75where not exists(select*from orderdetail20122617wheresalary20122617.P_no=orderdetail20122617.P_no and Order_date>=GETDATE()-365*2)--getdate获取当前日期2.2.1.2 11-8实验代码delete from person20122617where p_no=000010 --删除号员工信息2.2.2 实验结果2.2.2.1 11-7实验结果将salary20122617表中共哈维000006的员工工资增加为1800,奖金增加为160 下调成功将两年内没有签订单的员工奖金下调25%2.2.2.2 11-8实验结果由于person20122617表中没有000010号员工,故有0行受到影响实验三:SQL查询语句3.1 实验目的与内容目的:select语句中各种查询条件的实验。