《数据库系统原理与实现》
实验讲义。黑龙江大学软件学院。
2023年9月。
数据库系统原理》实验讲义。
一、开设本课程设计的目的。
本课程是计算机专业中一门重要的专业理论课。为配合《数据库系统原理与实现》课程的教学,通过模拟dbms的实现,更深刻地领会dbms的工作原理和实现方法,从而具有初步开发系统软件的实际能力,特开设此课程设计。
二、课程设计的题目。
用高级程序设计语言实现《dbms原型设计与实现》。
三、课程设计的主要内容。
通过模拟dbms的实现,使学生系统地掌握关系代数语言的运算功能;了解dbms的ddl、dml、dcl等功能的实质含义;掌握结构化设计方法;了解大型软件的设计技术。
四、课程设计的具体内容和要求。
1、ddl功能模拟。
在熟悉和掌握关系数据库查询语言的基础上,用高级程序设计语言创建数据库。具体包括:
1)实现sql的建库语句,建立相应的数据库表,并填写数据字典。over
2)实现表模式的修改功能。要求:①能够为已建立的表添加属性。
over②能够从已建立的表中删除属性。over(3)实现删除表功能。over(4)实现创建视图的功能。
(5)实现删除视图的功能。(6)实现创建索引的功能。(7)实现删除索引的功能。
2、dml功能模拟。
使用某种高级程序设计语言,实现sql语句中的数据维护操作和查询操作。具体包括:
1)往已经创建的表中插入元组。(2)从已经创建的表中删除元组。(3)修改表中的数据。
(4)实现select语句,包括:①实现单表上的选择和投影操作。②实现多表的连接操作。
实现多表的选择、投影和连接的混合操作。④实现带视图的上述操作。⑤实现索引关系的上述操作。
3、关系数据库系统的查询优化。
掌握关系数据库的查询优化技术,用高级语言实现启发式关系代数优化算法和基于复杂性估计的查询优化方法。
4、dcl功能模拟。
要求根据数据字典(dd)实现对数据库的安全性检查和完整性约束的机制;利用事务的封锁机制实现对事务处理的并发控制;利用建立日志文件及周期性备份的机制实现对数据库的恢复。
五、教学文件及教学形式。
教学文件:《数据库系统原理》李建中编著电子工业出版社教学形式:教学与实验同步进行,并按实验要求上机实验,编程调试。
实验一关系数据库sql语言的使用。
实验条件:提供以sql语言为核心的数据库管理系统(如oracle,db2,sybase,sql server等)上机环境。
一)实验目的。
通过上机实践,了解dbms和sql的概貌。熟练掌握sql的数据定义、数据操纵、完整性控制等功能。
二)实验内容与步骤。
实验1基本表的创建、数据插入。
1)建立教学数据库的三个基本表:
s(s#,sname,age,sex)学生(学号,姓名,年龄,性别)sc(s#,c#,grade)学习(学号,课程号,成绩)
c(c#,cname,teacher)课程(课程号,课程名,任课教师)
2)用insert命令输入数据。
基本表s的数据:
基本表sc的数据:s1s1s1s1s1s2s3s3
s3s4s4s5s5s5s5s8s8
c1c2c3c4c5c1c1c2c3c1c4c1c2c3c5c1c3
基本表c的数据:c1dblic2mathsmac3chemistryzhouc4physicsshic5oswen
实验2数据查询。
1)检索学习课程号为c2的学生学号与姓名。(2)检索学习课程名为maths的学生学号与姓名。(3)检索不学c2课的学生姓名与年龄。(4)检索学习全部课程的学生姓名。
实验3数据修改、删除。
1)把c2课程的非空成绩提高10%。
2)在sc表中删除课程名为physics的成绩的元组。(3)在s和sc表中删除学号为s8的所有数据。
实验4属性的添加和删除。
1)为s表添加属性家庭住址和身高。(2)为家庭住址和身高这两个属性添加值。(3)分别删除家庭住址和身高属性。
实验5视图的操作。
1)建立男学生的视图,属性包括学号、姓名、选修课程名和成绩。(2)在男学生视图中查询平均成绩大于80分的学生学号和姓名。
实验6库函数、授权控制。
1)计算每个学生有成绩的课程门数、平均成绩。
2)使用grant语句,把对基本表s、sc、c的使用权限授给其他用户。
实验二关系数据库sql语言的词法和语法分析。
一)实验目的。
利用已有的编译知识,完成sql语句的词法和语法分析工作,进一步了解dbms中数据字典的作用,并为后续的查询处理和优化实验打好基础。
二)实验内容与步骤。
分别完成下面语句的词法和语法分析工作:(1)create table(2)drop table(3)alter table(4)insert
8)create index(9)drop index(10)create view(11)drop view
5)delete(6)update(7)select
12)create user(13)grant(14)revoke
实验三创建数据库及数据操作功能。
一)实验目的。
1)熟悉关系数据库建库语句和数据操作语句的功能。(2)熟悉关系数据库中关系模式维护语句的功能。(3)掌握用高级程序设计语言创建数据库的方法。
(4)掌握数据操作功能的实现方法。(5)掌握修改关系模式的方法。
二)实验内容与步骤:
1、实现建立数据库表结构的功能。要求:(1)支持整型、符点型、字符型数据。(2)以文件形式保存基本表。(存储结构可自行设计)(3)建立相应的数据字典。
2、实现输入数据库记录的功能。3、实现删除数据库记录的功能。4、实现修改数据库记录的功能。
5、实现显示数据库结构和内容(以**形式显示)。6、实现在已有的关系中添加属性的功能;7、实现从已有的关系中删除属性的功能;
6和7要求不论关系表中是否有数据,都能正确执行命令,并修改相应的数据字典。8、实现删除表的功能。
9、实现建立视图的功能,并保存在数据字典中。10、实现删除视图的功能。8个完成2个未完成。
实验四查询功能。
一)实验目的。
1)熟悉sql语句中的查询语句的格式和功能。
2)掌握查询处理算法,包括选择、投影、连接算法。
要求:能够处理多个表的连接操作;查询条件包括and、or、=、
二)实验内容与步骤。
1、实现全关系选择操作(select * from关系名)。2、实现单关系的投影操作。
3、实现单关系的选择操作(允许多条件)。
4、实现单关系的选择和投影操作(允许多条件)。5、实现两个关系和多个关系的连接操作。
6、实现两个关系和多个关系的选择和连接操作。7、实现多个关系的选择、投影和连接操作。8、实现带视图的查询。
实验五索引的创建及索引关系的查询功能。
一)实验目的。
1)了解sql语句中的创建索引及删除索引语句的格式和功能。(2)掌握主索引、聚集索引及辅助索引的建立及检索方法。(3)掌握b树索引的建立及检索方法。(4)掌握删除索引的方法。
二)实验内容与步骤。
1、为某关系的主属性建立索引。2、为某关系的非主属性建立索引。3、为某关系的某属性建立b树索引。
4、利用索引属性完成选择操作,记录完成操作花费的时间,在建立索引前的关系上执行同样的选择操作并进行时间代价的比较。
5、利用索引属性完成连接操作,记录完成操作花费的时间,在建立索引前的关系上执行同样的连接操作并进行时间代价的比较。
6、删除建立的索引。
实验六关系数据库的查询优化。
一)实验目的。
1)了解优化的一般策略。
2)掌握关系代数等价变换规则。(3)掌握启发式代数优化规则。
4)掌握启发式关系代数优化算法。
5)掌握基于复杂性估计的查询优化方法。
二)实验内容与步骤。
1、把查询转换成语法树。
2、用高级语言实现启发式关系代数优化算法。(对原始的语法。
树进行优化处理,生成查询计划,选择代价最小的。)
3、采用基于复杂性估计的查询优化方法选择查询执行策略。
实验七数据库保护(dcl)功能。
一)实验目的。
1)掌握数据库系统的安全性保护机制。(2)掌握数据库系统的完整性约束机制。(3)了解数据库系统的并发控制技术。(4)掌握数据库系统的恢复技术。
二)实验内容与步骤。
1、要求根据数据字典(dd)实现对数据库的安全性检查。包。
括设置口令、密码和权限等。
2、根据数据字典(dd)实现对数据库系统的完整性约束机制。3、利用事务的封锁机制实现对事务处理的并发控制。
4、利用建立日志文件及周期性备份的机制实现对数据库系统。
的恢复。实验考核标准。
1、本课程设计共包含七个实验,要求每个学生完成全部实验。完成全部实验的学生经测试答辩通过,方可得到学分。不合格者需要重修。
2、实验成绩评定:每个实验需在规定时间内完成,成绩达到及格以上方可进行下一个实验。每个实验题目有各自的分值,总计100分。
3、实验教学项目、时间安排及分值分配。
序号。实验项目。
内容提要。时间安排。
分数。有关说明。
实验一。关系数据库sql语言的使用关系数据库sql语言的词法和语法分析。
了解dbms和sql的概貌。熟练掌握sql的数据定义、数据操纵、完整性控制等语句及其功能。
完成给定sql语句的词法和语法分析工作,进一步了解dbms中数据字典的作用。生成查询语句的中间表示形式,为后续的查询优化实验打好基础。
要求:实验1至实。
第2周。验4必做,实验5和。
实验6任选。完成。
第4周分。任选题目的学生。
6学时)可加分。说明:(1)要求写出各语句的文法,实现相应的语法分析器,验证输入的语句是否符合。
第5周。相应文法的规范。
2)如果无法写。
第6周分。出文法,可以通过。
13学时)字符串扫描分析等其它途径实现对输入语句的验证工作,但要适当减分。要求:实验内容的。
第7周。1-8必做任。
选,完成任选题目。
第9周分。的学生可加分。
15学时)第9周要求:实验内容的|20第1-7必做,8任第11周分选,完成任选题目(15学时)的学生可加分。要求:
实验内容的第11周第1和2必做其一,|20实验内容的4和5第13周分必做步任选,(15学时)完成任选题目的。
学生可加分。要求:实验内容的。
第14周。第步必做,第。
3步任选,完成任。
第15周分。
选题目的学生可。
12学时)加分要求:实验内容的。
第16-第步必做,第。
17周步任选,完成。
分。12学时)任选题目的学生。
可加分。实验二。
实验三。创建数据建立任意结构的关系,实库及数据现元组的增删改操作,实操作功能现属性的增删操作,实现。
建立视图功能,实现表和视图的删除功能。查询功能实现关系表上的选择、投。
影、连接操作,实现带视图的选择、投影和连接操作。索引的创建及索引关系的查询功能。
实现创建和删除索引功能。实现索引关系上的选择、投影和连接操作,并与非索引关系上的相应操作比较时间代价。掌握关系数据库的查询优化技术,实现启发式关系代数优化算法以及基于复杂性估计的查询优化方法。
根据数据字典(dd)实现对数据库的安全性检查和完整性约束机制。实现对事务处理的并发控制和数据库系统的恢复。
实验四。实验五。
实验六。关系数据库的查询优化数据库保护功能(dcl)
实验七。
数据库库课程设计
目录。引言11 开发环境1 1.1 硬件环境1 1.2 软件环境1 1.2.1 sql server 2005 delphi7简单介绍2 2 需求分析3 2.1 信息需求3 2.2 功能需求3 2.3 安全性与完整性要求3 3 概念结构设计3 4 逻辑结构设计4 5 数据库实现6 5.1 创建数据库...
数据库课程设计总结数据库课程设计个人总结
数据库课程设计个人总结 4班6组赵 王婆卖瓜时间过了,言归正传吧。凡是都要有个总结,以下便是我在这个课程设计中的一点心得。首先我分析一下我们组任务顺利完成的成功之处并总结一些经验,供以后反省参考用。凡事预则备,不预则废。这是我的座右铭,也是我深有感悟的几句古语之一。在这个项目的开始阶段,老师便让我们...
数据库课程设计
简单pos系统。班级 计科二班 姓名 韩田田 学号 201010510237 目录。前言。销售管理作为零售企业现代化管理不可缺少的组成部分,日益受到人们的重视。传统销售模式以及销售管理体系和机制,已经越来越难以适应零售企业现代化管理的需求。pos point of sales,销售终端的英文缩写 是...