数据库系统原理课程设计讲义0301.docx
《数据库系统原理课程设计讲义0301.docx》由会员分享,可在线阅读,更多相关《数据库系统原理课程设计讲义0301.docx(14页珍藏版)》请在冰豆网上搜索。
数据库系统原理课程设计讲义0301
《数据库系统原理课程设计》
讲义
黑龙江大学计算机科学技术学院
黑龙江大学软件学院
2012年2月
课程简介
一、开设本课程设计的目的
数据库系统原理是计算机科学与技术专业本科学生的一门重要的专业基础课。
为配合数据库系统原理课程的教学,开设本实践课程,通过DBMS的应用和模拟DBMS的实现,更深刻地领会DBMS的工作原理和实现方法,从而具有初步开发系统软件的实际能力,特开设此课程设计。
将读书环节融入数据库系统原理课程设计的教学内容中,做到理论教学、实践教学、读书环节三者有机结合。
通过读书使学生进一步了解课程的理论知识,拓宽视野,加深对本专业相关课程的理解,并培养独立阅读、思考、解决问题的能力。
二、课程内容安排
课程要求完成三部分内容:
设计并实现一个数据库应用原型系统、实现一个数据库管理原型系统、参与数据库相关的科研项目。
数据库应用原型系统的实现首先需要熟悉Oracle数据库的使用和SQL语言的使用。
然后以Oracle数据库管理系统为后台数据库,实现一个数据库应用系统(学生综合管理系统、图书管理系统、人事管理系统或其他应用系统)。
数据库管理原型系统的实现内容包括SQL语言的词法和语法分析、创建数据库、数据的增删操作、索引的创建与删除、查询处理和优化、数据库恢复功能、并发控制功能。
为了提高学生解决实际问题的能力和创新能力,部分学生可参加教师的数据库相关科研项目并完成其中部分功能,如“基于MANET的移动分布式数据库系统关键技术研究”、“基于机群系统的并行数据库管理系统”等。
实现的具体内容随着项目的阶段进展而调整。
三、实践要求
1、每个实践项目都有规定的完成时间,需要在规定的时间完成相应的任务。
一个实践项目结束方可进行下一项。
2、整个课程设计的内容需要写入一个综合设计文档,每名同学按照自己完成的各个阶段实验的功能根据给定的模板文件撰写设计文档。
3、全部实验完成后每名同学需要提交系统设计文档及完整的程序代码。
四、实验成绩评定依据
在读书工程环节,学生通过阅读相关的参考书目,对课程设计的各个实验环节进行理论学习、实验分析与设计、编码实现、最后进行分析与总结,通过提交总结报告的形式进行考核,并列出参考书目,字数不少于5000字。
读书环节部分占课程总成绩的15%。
本课程设计的实验环节要求每个学生完成一个数据库应用原型系统和一个数据库管理原型系统。
实验环节占课程总成绩的85%。
实验环节的重点内容为数据库管理原型系统,占整个课程总分的70分。
数据库应用系统分数占课程总分的15分,科研项目的完成情况作为整个实验环节的提高部分,在前两部分基础上附加10分,满分85分。
整个课程设计的评分依据包括课程设计文档、每个实践项目的完成时间、程序代码三个方面。
实践课程的具体内容、学时安排及分值分配如下:
●数据库应用系统设计与实现:
12学时,15分
●SQL语言的词法和语法分析:
4学时,10分
●创建数据库及数据操作功能:
8学时,15分
●索引的创建与删除功能:
8学时,10分
●查询优化功能:
8学时,10分
●查询处理算法:
8学时,15分
●数据库恢复功能:
6学时,5分
●并发控制功能:
6学时,5分
数据库应用原型系统
实践项目一Oracle数据库和SQL语言实践
一.实验目的
熟悉Oracle的基本操作,掌握基本SQL语句。
二.实验内容
1、使用Oracle数据库管理系统完成建库、连库操作,使用高级语言进行数据库操作。
2、使用Oracle数据库管理系统创建表空间、创建数据库。
3、在Oracle数据库上使用SQL语句创建、修改和删除基本表、创建和删除索引、创建和删除视图。
●建立教学数据库的三个基本表:
S(S#,SNAME,AGE,SEX)
SC(S#,C#,GRADE)
C(C#,CNAME,TEACHER)
●数据的插入
(1)为S表插入数据。
(2)为SC表插入数据。
(3)为C表插入数据。
基本表S的数据:
基本表C的数据:
S1WANG20M
S2LIU19M
S3CHEN22M
S4WU19M
S5LOU21F
S8DONG18F
C1DBLI
C2MATHSMA
C3CHEMISTRYZHOU
C4PHYSICSSHI
C5OSWEN
基本表SC的数据:
S1
C1
80
S1
C2
70
S1
C3
85
S1
C4
90
S1
C5
70
S2
C1
85
S3
C1
90
S3
C2
85
S3
C3
95
S4
C1
75
S4
C4
70
S5
C1
70
S5
C2
60
S5
C3
80
S5
C5
65
S8
C1
90
S8
C3
95
●属性的添加和删除
(1)为S表添加属性家庭住址和身高。
(2)为家庭住址和身高这两个属性添加值。
(3)分别删除家庭住址和身高属性。
●创建和删除索引
(1)为S表的S#和SNAME属性创建索引。
(2)删除S表SNAME属性上的索引。
●创建和删除视图
(1)建立男学生的视图,属性包括学号、姓名、选修课程名和成绩。
(2)在男学生视图中查询平均成绩大于80分的学生学号和姓名。
(3)删除男学生的视图。
●删除基本表
(1)创建一个临时的基本表T(T#,TNAME,ADDRESS)。
(2)删除基本表T。
4、在Oracle数据库上使用SQL语句创建用户、对用户授权和撤销权限;
(1)创建用户。
(2)把对基本表S、SC、C的修改、查询等权限授给某用户。
(3)撤销用户对基本表S、SC、C的操作权限。
5、在Oracle数据库上使用SQL语句进行数据的修改、删除操作;
●数据的修改
(1)把C2课程的非空成绩提高10%。
●数据的删除
(1)在SC表中删除课程名为PHYSICS的成绩的元组。
(2)在S和SC表中删除学号为S8的所有数据。
6、在Oracle数据库上使用SQL语句进行数据查询,包括简单查询、聚集查询、集合操作、嵌套查询。
(1)检索学习课程号为C2的学生学号与姓名。
(2)检索学习课程名为MATHS的学生学号与姓名。
(3)检索不学C2课的学生姓名与年龄。
(4)检索学习全部课程的学生姓名。
(5)计算每个学生有成绩的课程门数、平均成绩。
(6)检索学习课程号为C2的学生学号与姓名以及课程号为C3的学生学号与姓名。
实践项目二数据库应用系统的设计与实现
一.实验目的
掌握数据库管理系统上的应用系统的设计和开发方法。
二.实验内容
完成一个数据库应用系统的设计与实现,学生综合管理系统、图书管理系统、人事管理系统或其他应用系统任选其一。
下面给出一个实例,即学生综合管理系统的功能需求描述。
三.实验步骤
1、系统需求分析:
确定系统要完成的功能;
2、概念设计:
确定系统中涉及的实体及实体之间的联系,画出ER图;
3、逻辑设计:
确定系统中的数据库表以及每个表的属性、主键、外键;
4、物理设计:
选择存取方法;设计关系、索引等数据库文件的物理存储结构。
5、功能实现:
使用高级程序设计语言和Oracle数据库系统实现该应用系统。
学生综合管理系统的现行业务描述如下。
学校有若干学院,每个学院有名称、编号、地址、电话等信息。
每个学院的学生有四个年级,若干班级。
学生有学号、姓名、性别、生日、家庭住址、寝室、电话、年级、班级、所在院系等信息,有一些学生是班级干部。
每个学院都开设多门课程,每门课程有课程名、课程号、学分、学时、性质(选修或必修)、开设学期等信息。
学生每学期都要修读若干课程。
学生完成一门课程的学习后,讲授课程的任课教师需要录入学生的考试成绩,并能计算平均成绩、汇总各分数段的人数、进行各种查询。
学生需要查询已结业的各门课程的成绩。
学生辅导员需要查询管理班级各门课程的学习情况,包括各门课程的平均成绩和每个学生的成绩等。
管理员需要建立学生的学籍,汇总每学期没有拿到规定学分的学生及这些学生的详细情况。
数据库管理原型系统
实践项目一SQL语言的词法和语法分析
一.实验目的
熟练掌握基本SQL语句的写法,并为其定义文法。
二.实验内容
1、为每一个基本SQL语句定义文法。
2、实现词法和语法分析器。
3、进行相应的语义检查。
4、形成查询的内部表示。
实践项目二创建数据库及数据操作功能
一.实验目的
熟练掌握数据库管理系统中创建数据库、关系模式维护以及数据维护操作的实现技术。
二.实验内容
1、用高级语言创建数据库用户并完成权限管理功能。
(1)创建用户;
(2)为用户授权;
(3)撤销用户权限。
2、用高级语言建立数据库表。
(1)设计文件存储结构和存取方法;
(2)属性的个数任意,属性的类型包括整数、实数和字符串;
(3)定义完整性约束;
(4)把表的相关信息存入数据字典。
3、用高级语言实现表的删除功能。
(1)删除表并维护数据字典;
(2)如果表上有索引,删除相应的索引文件。
4、用高级语言实现属性的添加和删除功能。
(1)为基本表添加属性并维护数据字典;
(2)为基本表删除属性并维护数据字典。
5、用高级语言实现视图的创建和删除功能。
(1)创建视图,维护数据字典;
(2)删除视图,维护数据字典.
6、用高级语言实现表中元组的增删改功能,必要时需要维护索引文件。
(1)实现输入数据库记录的功能并维护数据字典;
(2)实现删除数据库记录的功能并维护数据字典;
(3)实现修改数据库记录的功能并维护数据字典。
7、用高级语言实现显示数据库表的功能,用于对上面的操作结果进行测试。
(1)实现“SELECT*FROM表名”;
(2)显示表的结构和内容。
说明:
实验内容的2、3、4、6、7必做,其他任选。
实践项目三索引的创建与删除
一.实验目的
掌握数据库管理系统中的索引技术。
二.实验内容
1、用高级语言为数据库表的主属性建立索引,分两种情况:
(1)主属性有序;
(2)主属性无序。
2、用高级语言为数据库表的非主属性建立索引,分两种情况:
(1)非主属性有序;
(2)非主属性无序。
3、用高级语言为数据库表的任意属性建立B树索引。
4、用高级语言按数据库表的任意属性用简单散列方法存储数据库表。
5、用高级语言实现数据增删改时索引的维护功能。
6、删除建立的索引。
7、完成上述操作的同时维护数据字典。
说明:
1、2、7必做,3和4选作一个,其他任选。
实践项目四查询优化
一.实验目的
掌握启发式关系代数优化方法。
二.实验内容
1、把查询的内部表示转换成语法树,查询功能包括:
(1)选择:
支持AND和OR条件
(2)投影
(3)连接:
包括等值连接和自然连接
(4)集合操作:
并、交、差
(5)分组聚集
2、实现启发式关系代数优化方法
利用启发式关系代数优化方法对初始查询树进行等价变换(考虑索引和视图),形成优化的查询计划;
3、用启发式多连接查询优化方法确定多连接关系的连接顺序。
说明:
1、2必做,第3项任选。
实践项目五查询处理
一.实验目的
掌握关系代数操作的实现算法。
二.实验内容
1、实现选择操作算法
(1)表扫描算法
(2)索引扫描算法
2、实现基于排序的分组聚集算法。
3、实现基于排序的投影算法。
4、实现基于排序的集合并、交、差算法。
5、实现连接操作,包括自然连接、等值连接。
(1)循环嵌套连接算法
(2)排序合并连接算法
(3)索引连接算法
(4)散列连接算法
6、完成与用户查询对应的完整的优化查询方案。
说明:
1-6必做,其中每一项包含多个算法时,任选一个算法实现。
实践项目六数据库恢复
一.实验目的
掌握利用日志进行数据库恢复的方法。
二.实验内容
1、根据用户操作形成日志,包括两种日志
(1)REDO日志
(2)UNDO/REDO日志
2、设置系统故障,使用即时更新技术进行数据库恢复。
3、设置系统故障,使用推迟更新技术进行数据库恢复。
说明:
2和3选作一个。
实践项目七并发控制
一.实验目的
掌握两段锁并发控制协议和基于时间印的并发控制协议。
二.实验内容
1、利用多进程技术产生多个并发事务同时访问数据库;
2、实现基于两段锁协议的并发控制。
3、实现基于时间印协议的并发控制。
说明:
2和3选作一个。
参考书目
1、《数据库系统原理》(第2版)。
●作者:
李建中、王珊
●出版社:
电子工业出版社
●出版日期:
2004年9月
本书全面系统地介绍了数据库系统的理论、技术和方法,并介绍了适应于新一代数据库应用的数据库新技术。
本书分为基础篇、设计篇、实现篇和新技术篇。
基础篇由四章组成,介绍了数据库的基本概念、数据库和数据库系统的体系结构、关系数据库系统、层次和网状数据库系统以及数据库的安全性与完整性约束。
设计篇由五章组成,讨论了数据库设计的五个基本步骤和设计方法,并介绍了实体联系模型、扩展的实体联系模型和关系数据库的函数依赖理论。
实现篇由七章组成,介绍了数据库的物理存储结构、数据字典、关系代数操作算法、查询优化方法和事务处理技术。
新技术篇由六章组成,介绍了新一代数据库应用、新一代数据库应用对数据库系统的要求和新一代数据库技术。
本书内容丰富,系统性强,具有新的知识体系结构,理论与实践结合,可作为计算机专业本科生和研究生数据库课程的教材或参考书,也可以供从事数据库教学与科研工作的教师和科技工作者参考。
2、《数据库系统概念》(第5版)。
●译者:
杨冬青、马秀莉、唐世渭等
●出版社:
机械工业出版社
●出版日期:
2006年10月
本书是经典的数据库系统教科书《databasesystemconoepts》的最新修订版,全面介绍数据库系统的各种知识,透彻阐释数据库管理的基本概念。
本书内容丰富,不仅讨论了数据库查询语言、模式设计、数据仓库、数据库应用开发、基于对象的数据库和xml、数据存储和查询、事务管理、数据挖掘与信息检索以及数据库系统体系结构等方面的内容,而且对性能评测标准、性能调整、标准化以及空间与地理数据、事务处理监控等高级应用主题进行了广泛讨论。
本书既可作为高年级本科生或低年级研究生的数据库课程教材,也可供数据库领域的技术人员参考。
本书是数据库系统方面的经典教材之一。
国际上许多著名大学包括斯坦福大学、耶鲁大学、得克萨斯大学、康奈尔大学、伊利诺伊大学、印度理工学院等都采用本书作为教科书。
我国也有许多所大学采用本书以前版本的中文版作为本科生和研究生的数据库课程的教材和主要教学参考书,收到了良好的效果。
本书调整和新增内容:
调整了第4版的讲授顺序。
首先介绍sql及其高级特性,使学生容易接受数据库设计的概念。
新增数据库设计的专门讨论。
彻底改写和更新了基于对象的数据库和xml的相关内容。
重新组织数据挖掘和信息检索的内容,增加了对数据库系统postgresql的实例研究。
3、《数据库系统实现》(第2版)。
●译者:
杨冬青吴愈青等
●出版社:
机械工业出版社
●出版日期:
2010年6月
本书是斯坦福大学计算机科学专业数据库系列课程第二门课的教科书。
书中对数据库系统实现原理进行了深入阐述,并具体讨论了数据库管理系统的三个主要成分——存储管理器、查询处理器和事务管理器的实现技术。
此外,第2版充分反映了数据管理技术的新进展,对内容进行了扩充,除了在第1版中原有的“信息集成”一章(第10章)中加入了新的内容外,还增加了两个全新的章:
“数据挖掘”(第11章)和“数据库系统与互联网”(第12章)。
本书适合作为高等院校计算机专业研究生的教材或本科生的教学参考书,也适合作为从事相关研究或开发工作的专业技术人员的高级参考资料。
4、《Oracle实用教程》(第3版)。
●作者:
郑阿奇
●出版社:
电子工业出版社
●出版日期:
2011年1月
本书以当前流行的Oracle11g作为平台,分别介绍Oracle教程、Oracle实验、综合应用实习和附录。
Oracle教程部分比较系统地介绍了Oracle11g(中文版)的主要功能,并且通过实验对主要内容进行操作和编程训练。
实习部分比较系统地介绍了VB6.0/Oracle、PB11.5/Oracle、ASP/Oracle、ASP.NET3.5(C#)/Oracle和JavaEE(Struts2)/Oracle的应用方法。
只要阅读本书,结合上机操作指导进行练习和实习模仿,就能在较短的时间内基本掌握Oracle11g及其应用技术。
本书可作为大学本科、大专和高职有关课程教材,也可供广大数据库学习、应用开发人员参考。
5、《Oracle入门很简单》。
●作者:
张朝明
●出版社:
清华大学出版社
●出版日期:
2011年1月
本书从初学者的角度出发,由浅入深、循序渐进地介绍了oracle数据库开发的基础知识。
书中对数据库基本理论及其在数据库开发过程中的应用也有详细介绍。
书中也列举了大量示例,可供读者演练。
本书共分5篇。
第1篇介绍了数据库的基本知识,包括数据库基础、实体-联系模型、oracle数据库与数据表;第2篇介绍了oraclepl/sql的基本知识,包括sql查询、更新数据、字符型处理、数值型处理、日期型处理、复杂数据处理、控制语句;第3篇以数据库对象为主线讲述了包括视图、约束、游标、触发器、序列、用户角色与权限控制、函数与存储过程等内容;第4篇则重点讲述了oracle性能优化、一致性与事务管理、并发控制等内容;第5篇讲述了oracle在主流程序开发语言(java、c#)中的应用。
本书内容丰富,覆盖面广,适合oracle初学者快速入门,也适合已有oracle数据库基础的人员完善自己的oracle知识体系。
另外,对于大中专院校和培训班的学生,本书更是一本不可多得的教材。
6、《SQLServer2008编程入门经典(第3版)》。
●作者:
(美)韦拉著,马煜,孙晧译
●出版社:
清华大学出版社
●出版日期:
2010年1月
本书由浅入深逐步介绍了SQLServer数据库的高级主题,重点讨论了SQLServer2008的特殊功能以及与其他编程环境的不同之处。
作者RobertVieria是MicrosoftSQL,Server方面的权威,他采用通俗易懂的方法揭示了SQLServer-2008核心组件的重要更改。
首先概述了数据库设计的概念,介绍了如何用SQLSetver2008实现这些基本概念。
然后,讲述了RDBMS(关系数据库管理系统)的功能和它在开发系统架构方面的优势。
SQLServer2008的新增内容和更改包括:
DATE和TIME数据类型、hierarchyID数据类型、MERGE命令和多行插入,以及递归查询等。
《SQLServer2008编程入门经典(第3版)》旨在帮助您快速地掌握MicrosoftSQLSelwer2008的编程技术。
7、《数据库技术与应用——SQLServer2008》。
●作者:
胡国胜,易著梁
●出版社:
机械工业出版社
●出版日期:
2010年1月
本书系统全面地阐述了数据库的基本原理及应用。
全书内容围绕图书馆管理数据库系统展开,系统地介绍了SQL Server 2008数据库的应用;书中实训环节使用宾馆管理信息系统,充分体现了“项目驱动、案例教学、理论与实践相结合”的教学理念。
通过最后的综合应用实例的学习,读者可以进一步掌握实际而又全面的数据库应用知识。
本书以培养学生的数据库开发能力为目标,内容新颖,通俗易懂,实用性强,适合作为高职高专院校计算机相关专业的教材,也可供广大技术人员及自学者参考。
8、《C程序设计》(第四版)。
谭浩强。
清华大学出版社。
●作者:
谭浩强
●出版社:
清华大学出版社
●出版日期:
2010年6月
本书是一本公认的学习C语言程序设计的经典教材。
根据C语言的发展和计算机教学的需要,作者在《C程序设计(第三版)》的基础上进行了修订。
本书按照C语言的新标准C 99进行介绍,所有程序都符合C 99的规定,使编写程序更加规范;对C语言和程序设计的基本概念和要点讲解透彻,全面而深入;按照作者提出的“提出问题—解决问题—归纳分析”三部曲进行教学、组织教材;本书的每个例题都按以下几个步骤展开:
提出任务—解题思路—编写程序—运行程序—程序分析—有关说明。
符合读者认知规律,容易入门与提高。
本书内容先进,体系合理,概念清晰,讲解详尽,降低台阶,分散难点,例题丰富,深入浅出,文字流畅,通俗易懂,是初学者学习C程序设计的理想教材,可作为高等学校各专业的正式教材,也是一本自学的好教材。
9、Java编程思想(第4版)。
●作者:
(美)BruceEckel著,陈昊鹏译
●出版社:
机械工业出版社
●出版日期:
2007年6月
本书赢得了全球程序员的广泛赞誉,即使是最晦涩的概念,在BruceEckel的文字亲和力和小而直接的编程示例面前也会化解于无形。
从Java的基础语法到最高级特性(深入的面向对象概念、多线程、自动项目构建、单元测试和调试等),本书都能逐步指导你轻松掌握。
从本书获得的各项大奖以及来自世界各地的读者评论中,不难看出这是一本经典之作。
本书的作者拥有多年教学经验,对C、C++以及Java语言都有独到、深入的见解,以通俗易懂及小而直接的示例解释了一个个晦涩抽象的概念。
本书共22章,包括操作符、控制执行流程、访问权限控制、复用类、多态、接口、通过异常处理错误、字符串、泛型、数组、容器深入研究、JavaI/O系统、枚举类型、并发以及图形化用户界面等内容。
这些丰富的内容,包含了Java语言基础语法以及高级特性,适合各个层次的Java程序员阅读,同时也是高等院校讲授面向对象程序设计语言以及Java语言的绝佳教材和参考书。
第4版特点:
适合初学者与专业人员的经典的面向对象叙述方式,为更新的JavaSE5/6增加了新的示例和章节。
测验框架显示程序输出。