《数据库系统原理课程设计讲义2016(共18页).doc》由会员分享,可在线阅读,更多相关《数据库系统原理课程设计讲义2016(共18页).doc(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上数据库系统原理课程设计讲 义黑龙江大学计算机学院黑龙江大学软件学院 2016年3月一、开设本课程设计的目的本课程是计算机专业中一门重要的专业理论课。为配合数据库系统原理与实现课程的教学,通过模拟DBMS的实现,更深刻地领会DBMS的工作原理和实现方法,从而具有初步开发系统软件的实际能力,特开设此课程设计。将读书环节融入数据库系统原理课程设计的教学内容中,做到理论教学、实践教学、读书环节三者有机结合。通过读书使学生进一步了解课程的理论知识,拓宽视野,加深对本专业相关课程的理解,并培养独立阅读、思考、解决问题的能力。二、课程设计的主要内容通过理论授课与读书环节,熟悉DBM
2、S设计与实现的基本理论和方法,用高级程序设计语言完成DBMS原型系统的设计与实现。通过模拟DBMS的实现,使学生系统地掌握关系代数语言的运算功能;了解DBMS的DDL、DML、DCL等功能的实质含义;掌握结构化设计方法;了解大型软件的设计技术。1、DDL功能模拟在熟悉和掌握关系数据库查询语言的基础上,用高级程序设计语言创建数据库。具体包括:(1)实现SQL的建库语句,建立相应的数据库表,并填写数据字典。(2)实现表模式的修改功能。要求: 能够为已建立的表添加属性。 能够从已建立的表中删除属性。(3)实现删除表功能。(4)实现创建视图的功能。(5)实现删除视图的功能。(6)实现创建索引的功能。(
3、7)实现删除索引的功能。2、DML功能模拟使用某种高级程序设计语言,实现SQL语句中的数据维护操作和查询操作。具体包括:(1)往已经创建的表中插入元组。(2)从已经创建的表中删除元组。(3)修改表中的数据。(4)实现SELECT语句,包括: 实现单表上的选择和投影操作。 实现多表的连接操作。 实现多表的选择、投影和连接的混合操作。 实现带视图的上述操作。 实现索引关系的上述操作。(5)用高级语言实现启发式关系代数优化算法和基于复杂性估计的查询优化方法。3、DCL功能模拟要求根据数据字典(DD)实现对数据库的安全性检查和完整性约束的机制;利用事务的封锁机制实现对事务处理的并发控制;利用建立日志文
4、件及周期性备份的机制实现对数据库的恢复。三、教学文件及教学形式教学文件:数据库系统原理,李建中编著,电子工业出版社教学形式:教学与实验同步进行,并按实验要求上机实验,编程调试。四、课程设计的具体内容数据库系统原理课程设计共包括7个子实验,具体实验内容如下。实验一 关系数据库SQL语言的使用实验条件:提供以SQL语言为核心的数据库管理系统(如ORACLE,DB2,SYBASE,SQL Server等)上机环境。(一)实验目的通过上机实践,了解DBMS和SQL的概貌。熟练掌握SQL的数据定义、数据操纵、完整性控制等功能。(二)实验内容与步骤1、基本表的创建、数据插入(1)建立教学数据库的三个基本表
5、:S(S#, SNAME, AGE, SEX) 学生(学号,姓名,年龄,性别)SC(S#, C#, GRADE) 学习(学号,课程号,成绩)C(C#, CNAME, TEACHER)课程(课程号,课程名,任课教师)(2)用INSERT命令输入数据。基本表S的数据: S1 WANG 20 MS2 LIU 19 MS3 CHEN 22 MS4 WU 19 MS5 LOU 21 FS8 DONG 18 F基本表C的数据:C1 DB LIC2 MATHS MAC3 CHEMISTRY ZHOUC4 PHYSICS SHIC5 OS WEN基本表SC的数据:S1C180S1C2 70S1C385S1C4
6、90S1C570S2C185S3C190S3C285S3C395S4C175S4C470S5C170S5C260S5C3 80S5C565S8C190S8C3952、数据查询(1)检索学习课程号为C2的学生学号与姓名。(2)检索学习课程名为MATHS的学生学号与姓名。(3)检索不学C2课的学生姓名与年龄。(4)检索学习全部课程的学生姓名。3、数据修改、删除(1)把C2课程的非空成绩提高10%。(2)在SC表中删除课程名为PHYSICS的成绩的元组。(3)在S和SC表中删除学号为S8的所有数据。4、属性的添加和删除(1)为S表添加家庭住址和身高两个属性。(2)为家庭住址和身高这两个属性添加值。(
7、3)分别删除家庭住址和身高属性。5、视图的操作(1)建立男学生的视图,属性包括学号、姓名、选修课程名和成绩。(2)在男学生视图中查询平均成绩大于80分的学生学号和姓名。6、库函数、授权控制(1)计算每个学生有成绩的课程门数、平均成绩。(2)使用GRANT语句,把对基本表S、SC、C的使用权限授给其他用户。实验二 关系数据库SQL语言的词法和语法分析(一)实验目的利用已有的编译知识,完成SQL语句的词法和语法分析工作,进一步了解DBMS中数据字典的作用,并为后续的查询处理和优化实验打好基础。(二)实验内容与步骤分别完成下面语句的词法和语法分析工作:(1)create table(8)create
8、 index(2)drop table(9)drop index(3)alter table(10)create view(4)insert(11)drop view(5)delete(12)create user(6)update(13)grant(7)select(14)revoke每一个语句的具体要求:(1)CREATE TABLE 关系名(属性名 类型, /类型至少支持int、char两种类型.,属性名 类型)(2)DROP TABLE 关系名(3)ALTER TABLE 关系名 ADD 属性名 类型 /支持的类型同create table语句ALTER TABLE 关系名 DROP
9、属性名,属性名(4)INSERT INTO 关系名 (, ,)(VALUES(,.,) (5)DELETE FROM 关系名WHERE条件表达式 /条件表达式包括and、or、=、(6)UPDATE 关系名SET 列名=常值,列名=常值WHERE 条件表达式 /同delete(7)SELECT *|属性名列表FROM 关系名列表WHERE 条件表达式 /同delete(8)CREATE INDEX 索引名 ON 关系名 (属性名,.,属性名)(9)DROP INDEX 索引名(12)CREATE USER 用户名 IDENTIFIED BY 密码(13)GRANT 权限列表 /自己实现的所有S
10、QL命令ON 关系名 TO 用户列表(14)REVOKE 权限列表 /同GRANTON 关系名 FROM 用户列表实验三 创建数据库及数据操作功能(一)实验目的1、熟悉关系数据库建库语句和数据操作语句的功能。2、熟悉关系数据库中关系模式维护语句的功能。3、掌握用高级程序设计语言创建数据库的方法。4、掌握数据操作功能的实现方法。5、掌握修改关系模式的方法。(二)实验内容与步骤:/以下命令实现的功能参照实验二中对语句的要求1、实现建立数据库表结构的功能(create table)。要求:(1)支持整型、字符型数据。(2)以文件形式保存基本表。(存储结构可自行设计)(3)建立相应的数据字典。2、实现
11、输入数据库记录的功能(insert)。3、实现删除数据库记录的功能(delete)。4、实现修改数据库记录的功能(update)。5、实现显示数据库结构和内容(以表格形式显示)(select * from 关系名)。6、实现在已有的关系中添加属性的功能(alter tableadd);7、实现从已有的关系中删除属性的功能(alter tabledrop);6和7要求不论关系表中是否有数据,都能正确执行命令,并修改相应的数据字典。8、实现删除表的功能(drop table)。9、实现建立视图的功能,并保存在数据字典中。/选作10、实现删除视图的功能。 /选作实验四 索引的创建及删除(一)实验目的
12、1、了解SQL语句中的创建索引及删除索引语句的格式和功能。2、掌握主索引、聚集索引及辅助索引的建立及检索方法。3、掌握B树索引的建立及检索方法。4、掌握删除索引的方法。(二)实验内容与步骤1、为某关系的主属性建立索引。/当指定的属性有序时建立的索引2、为某关系的非主属性建立索引。/当指定的属性无序时建立的索引3、为某关系的某属性建立B树索引。/选作4、删除建立的索引。实验五 查询功能(一)实验目的1、熟悉SQL语句中的查询语句的格式和功能。2、掌握查询处理算法,包括选择、投影、连接算法。要求:能够处理多个表的连接操作;查询条件包括and、or、=、。(二)实验内容与步骤1、实现全关系选择操作(
13、select * from 关系名)。2、实现单关系的投影操作(select 属性名列表 from 关系名)。3、实现单关系的选择操作(select * from 关系名 where 条件表达式)。4、实现单关系的选择和投影操作(select 属性名列表 from 关系名 where 选择条件)。/选择条件是指“属性名 操作符 常量”形式的条件5、实现两个关系和多个关系的连接操作(select * from 关系名列表 where 连接条件)。/选择条件是指“属性名 操作符 属性名”形式的条件6、实现两个关系和多个关系的选择和连接操作(select * from 关系名列表 where 选择条
14、件和连接条件)。7、实现两个关系和多个关系的投影和连接操作(select 属性名列表 from 关系名列表 where 连接条件)。7、实现多个关系的选择、投影和连接操作(select 属性名列表 from 关系名列表 where 条件表达式)。8、利用索引属性完成选择操作,记录完成操作花费的时间,在建立索引前的关系上执行同样的选择操作并进行时间代价的比较。9、利用索引属性完成连接操作,记录完成操作花费的时间,在建立索引前的关系上执行同样的连接操作并进行时间代价的比较。10、实现带视图的查询。/选作实验六 关系数据库的查询优化(一)实验目的1、了解优化的一般策略。2、掌握关系代数等价变换规则。
15、3、掌握启发式代数优化规则。4、掌握启发式关系代数优化算法。5、掌握基于复杂性估计的查询优化方法。(二)实验内容与步骤1、把查询转换成语法树。2、用高级语言实现启发式关系代数优化算法。(对原始的语法树进行优化处理,生成查询计划,选择代价最小的。)3、采用基于复杂性估计的查询优化方法选择查询执行策略。/选作实验七 数据库保护(DCL)功能(一)实验目的1、掌握数据库系统的安全性保护机制。2、掌握数据库系统的完整性约束机制。3、了解数据库系统的并发控制技术。4、掌握数据库系统的恢复技术。(二)实验内容与步骤1、要求根据数据字典(DD)实现对数据库的安全性检查。包括设置口令、密码和授权等。2、根据数
16、据字典(DD)实现对数据库系统的完整性约束机制。3、利用事务的封锁机制实现对事务处理的并发控制。/选作4、利用建立日志文件及周期性备份的机制实现对数据库系统的恢复。/选作五、考核标准在读书工程环节,学生通过阅读相关的参考书目,对课程设计的各个实验环节进行理论学习、实验分析与设计、编码实现、最后进行分析与总结,通过提交总结报告的形式进行考核,并列出参考书目,字数不少于5000字。读书环节部分占课程总成绩的15%。本课程设计的实验环节要求每个学生完成全部七个实验。完成全部实验的学生经测试答辩通过,方可得到学分。不合格者需要重修。每个实验需在规定时间内完成,成绩达到及格以上方可进行下一个实验,每个实
17、验题目有各自的分值。实验环节占课程总成绩的85%。实验教学项目、时间安排及分值分配如下表:序号实验项目内容提要时间安排分数有关说明实验一关系数据库SQL语言的使用了解DBMS和SQL的概貌。熟练掌握SQL的数据定义、数据操纵、完整性控制等语句及其功能。第4周|第4周(2学时)5分要求:实验1至实验4必做,实验5和实验6任选。完成任选题目的学生可加分。实验二关系数据库SQL语言的词法和语法分析完成给定SQL语句的词法和语法分析工作,进一步了解DBMS中数据字典的作用。生成查询语句的中间表示形式,为后续的查询优化实验打好基础。第4周|第5周(4学时)10分说明:(1)要求写出各语句的文法,实现相应
18、的语法分析器,验证输入的语句是否符合相应文法的规范。(2)如果无法写出文法,可以通过字符串扫描分析等其它途径实现对输入语句的验证工作,但要适当减分。实验三创建数据库及数据操作功能建立任意结构的关系,实现元组的增删改操作,实现属性的增删操作,实现建立视图功能,实现表和视图的删除功能。第6周|第8周(8学时)15分要求:实验内容的1-8必做,9、10任选,完成任选题目的学生可加分。实验四索引的创建及删除实现创建和删除索引功能。第8周|第9周(4学时)10分要求:实验内容的第1、2和3必做其一,4步任选,完成任选题目的学生可加分。实验五查询功能实现无索引关系上的选择、投影、连接操作;实现索引关系上的
19、选择、投影和连接操作,并与非索引关系上的相应操作比较时间代价;实现带视图的选择、投影和连接操作。第10周|第12周(8学时)25分要求:实验内容的第1-9必做,10任选,完成任选题目的学生可加分。实验六关系数据库的查询优化掌握关系数据库的查询优化技术,实现启发式关系代数优化算法以及基于复杂性估计的查询优化方法。第12周|第12周(2学时)10分要求:实验内容的第1、2步必做,第3步任选,完成任选题目的学生可加分实验七数据库保护功能(DCL)根据数据字典(DD)实现对数据库的安全性检查和完整性约束机制。实现对事务处理的并发控制和数据库系统的恢复。第13-13周(2学时)10分要求:实验内容的第1
20、、2步必做,第3、4步任选,完成任选题目的学生可加分。六、参考书目1、数据库系统原理(第2版)。l 作者:李建中、王珊 l 出版社:电子工业出版社l 出版日期:2004年9月本书全面系统地介绍了数据库系统的理论、技术和方法,并介绍了适应于新一代数据库应用的数据库新技术。本书分为基础篇、设计篇、实现篇和新技术篇。基础篇由四章组成,介绍了数据库的基本概念、数据库和数据库系统的体系结构、关系数据库系统、层次和网状数据库系统以及数据库的安全性与完整性约束。设计篇由五章组成,讨论了数据库设计的五个基本步骤和设计方法,并介绍了实体联系模型、扩展的实体联系模型和关系数据库的函数依赖理论。实现篇由七章组成,介
21、绍了数据库的物理存储结构、数据字典、关系代数操作算法、查询优化方法和事务处理技术。新技术篇由六章组成,介绍了新一代数据库应用、新一代数据库应用对数据库系统的要求和新一代数据库技术。本书内容丰富,系统性强,具有新的知识体系结构,理论与实践结合,可作为计算机专业本科生和研究生数据库课程的教材或参考书,也可以供从事数据库教学与科研工作的教师和科技工作者参考。2、(第5版)。l 译者:杨冬青、马秀莉、唐世渭等l 出版社:机械工业出版社l 出版日期:2006年10月本书是经典的数据库系统教科书database system conoepts的最新修订版,全面介绍数据库系统的各种知识,透彻阐释数据库管理的
22、基本概念。本书内容丰富,不仅讨论了数据库查询语言、模式设计、数据仓库、数据库应用开发、基于对象的数据库和xml、数据存储和查询、事务管理、数据挖掘与信息检索以及数据库系统体系结构等方面的内容,而且对性能评测标准、性能调整、标准化以及空间与地理数据、事务处理监控等高级应用主题进行了广泛讨论。本书既可作为高年级本科生或低年级研究生的数据库课程教材,也可供数据库领域的技术人员参考。本书是数据库系统方面的经典教材之一。国际上许多著名大学包括斯坦福大学、耶鲁大学、得克萨斯大学、康奈尔大学、伊利诺伊大学、印度理工学院等都采用本书作为教科书。我国也有许多所大学采用本书以前版本的中文版作为本科生和研究生的数据
23、库课程的教材和主要教学参考书,收到了良好的效果。本书调整和新增内容:调整了第4版的讲授顺序。首先介绍sql及其高级特性,使学生容易接受数据库设计的概念。新增数据库设计的专门讨论。彻底改写和更新了基于对象的数据库和xml的相关内容。重新组织数据挖掘和信息检索的内容,增加了对数据库系统postgresql的实例研究。3、数据库系统实现(第2版)。l 译者:杨冬青 吴愈青 等l 出版社:机械工业出版社l 出版日期:2010年6月本书是斯坦福大学计算机科学专业数据库系列课程第二门课的教科书。书中对数据库系统实现原理进行了深入阐述,并具体讨论了数据库管理系统的三个主要成分存储管理器、查询处理器和事务管理
24、器的实现技术。此外,第2版充分反映了数据管理技术的新进展,对内容进行了扩充,除了在第1版中原有的“信息集成”一章(第10章)中加入了新的内容外,还增加了两个全新的章:“数据挖掘”(第11章)和“数据库系统与互联网”(第12章)。本书适合作为高等院校计算机专业研究生的教材或本科生的教学参考书,也适合作为从事相关研究或开发工作的专业技术人员的高级参考资料。4、(第3版)。l 作者:郑阿奇l 出版社:电子工业出版社l 出版日期:2011年1月本书以当前流行的Oracle 11g作为平台,分别介绍Oracle教程、Oracle实验、综合应用实习和附录。Oracle教程部分比较系统地介绍了Oracle
25、11g(中文版)的主要功能,并且通过实验对主要内容进行操作和编程训练。实习部分比较系统地介绍了VB 6.0/Oracle、PB 11.5/Oracle、ASP/Oracle、ASP.NET 3.5(C#)/ Oracle和Java EE(Struts 2)/Oracle的应用方法。只要阅读本书,结合上机操作指导进行练习和实习模仿,就能在较短的时间内基本掌握Oracle 11g及其应用技术。本书可作为大学本科、大专和高职有关课程教材,也可供广大数据库学习、应用开发人员参考。5、。l 作者:张朝明l 出版社:清华大学出版社l 出版日期:2011年1月本书从初学者的角度出发,由浅入深、循序渐进地介绍
26、了oracle数据库开发的基础知识。书中对数据库基本理论及其在数据库开发过程中的应用也有详细介绍。书中也列举了大量示例,可供读者演练。本书共分5篇。第1篇介绍了数据库的基本知识,包括数据库基础、实体-联系模型、oracle数据库与数据表;第2篇介绍了oracle pl/sql的基本知识,包括sql查询、更新数据、字符型处理、数值型处理、日期型处理、复杂数据处理、控制语句;第3篇以数据库对象为主线讲述了包括视图、约束、游标、触发器、序列、用户角色与权限控制、函数与存储过程等内容;第4篇则重点讲述了oracle性能优化、一致性与事务管理、并发控制等内容;第5篇讲述了oracle在主流程序开发语言(
27、java、c#)中的应用。本书内容丰富,覆盖面广,适合oracle初学者快速入门,也适合已有oracle数据库基础的人员完善自己的oracle知识体系。另外,对于大中专院校和培训班的学生,本书更是一本不可多得的教材。6、。l 作者:(美)韦拉 著,马煜,孙晧译l 出版社:清华大学出版社l 出版日期:2010年1月本书由浅入深逐步介绍了SQL Server数据库的高级主题,重点讨论了SQL Server 2008的特殊功能以及与其他编程环境的不同之处。作者Robert Vieria是Microsoft SQL,Server方面的权威,他采用通俗易懂的方法揭示了SQL Server-2008核心组
28、件的重要更改。首先概述了数据库设计的概念,介绍了如何用SQL Setver 2008实现这些基本概念。然后,讲述了RDBMS(关系数据库管理系统)的功能和它在开发系统架构方面的优势。SQL Server 2008的新增内容和更改包括:DATE和TIME数据类型、hierarchyID数据类型、MERGE命令和多行插入,以及递归查询等。SQL Server 2008编程入门经典(第3版)旨在帮助您快速地掌握Microsoft SQL Selwer2008的编程技术。7、。l 作者:胡国胜,易著梁l 出版社:机械工业出版社l 出版日期:2010年1月本书系统全面地阐述了数据库的基本原理及应用。全书
29、内容围绕图书馆管理数据库系统展开,系统地介绍了SQLServer2008数据库的应用;书中实训环节使用宾馆管理信息系统,充分体现了“项目驱动、案例教学、理论与实践相结合”的教学理念。通过最后的综合应用实例的学习,读者可以进一步掌握实际而又全面的数据库应用知识。本书以培养学生的数据库开发能力为目标,内容新颖,通俗易懂,实用性强,适合作为高职高专院校计算机相关专业的教材,也可供广大技术人员及自学者参考。8、C程序设计(第四版)。谭浩强。清华大学出版社。l 作者:谭浩强l 出版社:清华大学出版社l 出版日期:2010年6月本书是一本公认的学习C语言程序设计的经典教材。根据C语言的发展和计算机教学的需
30、要,作者在C程序设计(第三版)的基础上进行了修订。本书按照C语言的新标准C99进行介绍,所有程序都符合C99的规定,使编写程序更加规范;对C语言和程序设计的基本概念和要点讲解透彻,全面而深入;按照作者提出的“提出问题解决问题归纳分析”三部曲进行教学、组织教材;本书的每个例题都按以下几个步骤展开:提出任务解题思路编写程序运行程序程序分析有关说明。符合读者认知规律,容易入门与提高。本书内容先进,体系合理,概念清晰,讲解详尽,降低台阶,分散难点,例题丰富,深入浅出,文字流畅,通俗易懂,是初学者学习C程序设计的理想教材,可作为高等学校各专业的正式教材,也是一本自学的好教材。9、 。l 作者:著, 译l
31、 出版社:机械工业出版社l 出版日期:2007年6月本书赢得了全球程序员的广泛赞誉,即使是最晦涩的概念,在Bruce Eckel的文字亲和力和小而直接的编程示例面前也会化解于无形。从Java的基础语法到最高级特性(深入的面向对象概念、多线程、自动项目构建、单元测试和调试等),本书都能逐步指导你轻松掌握。从本书获得的各项大奖以及来自世界各地的读者评论中,不难看出这是一本经典之作。本书的作者拥有多年教学经验,对C、C+以及Java语言都有独到、深入的见解,以通俗易懂及小而直接的示例解释了一个个晦涩抽象的概念。本书共22章,包括操作符、控制执行流程、访问权限控制、复用类、多态、接口、通过异常处理错误、字符串、泛型、数组、容器深入研究、Java I/O系统、枚举类型、并发以及图形化用户界面等内容。这些丰富的内容,包含了Java语言基础语法以及高级特性,适合各个层次的Java程序员阅读,同时也是高等院校讲授面向对象程序设计语言以及Java语言的绝佳教材和参考书。第4版特点: 适合初学者与专业人员的经典的面向对象叙述方式,为更新的Java SE5/6增加了新的示例和章节。 测验框架显示程序输出。专心-专注-专业
限制150内