数据库实验讲义

更新时间:2024-04-27 22:40:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验一 用SQL Server实现数据库设计 实验目的:

1. 掌握使用企业管理器创建和管理SQL Server数据库及相关数据库对象。 2. 掌握使用SQL语言中的SELECT命令实现查询功能。 上机准备:

1.复习有关关系数据库的基本知识和概念; 2.复习有关SQL语言中SELECT命令的使用; 3.了解有关SQL Server系统的组成;

4.复习有关SQL Server服务器的使用和管理; 5.复习有关企业管理器的基本操作; 6.复习有关查询分析器的基本操作;

7.了解有关SQL Server服务器的登陆账号,密码;

实验内容: 本实验将建立一个学校教学管理数据库,在这个数据库中,存储以下信息:

1.有关学生的信息,包括学生的学号,姓名,班级,性别,出生时间,政治面貌,籍

贯,入学时间,联系电话,简历; 2.有关班级的信息,包括班级的班名,专业,年级,人数,班主任;

3.有关课程的信息,包括课程编号,课程名称,课程类别(是指该课程为必修,指选

还是任选),适用专业,适用年级,开课时间(是指在每个学年的第一学期,还是第二学期),学分,周学时;

4.有关学年课程安排的信息,包括课程编号,开设课程的学年(例如:2002学年),开设课程的班级,任课教师;

5.有关学生选课的信息,包括课程编号,学生的学号,成绩; 一、熟悉开发环境 练习:

1.启动和停止SQL Server服务 2.注册服务器

3.使用企业管理器和查询分析器

二、使用企业管理器完成数据库及数据库对象的创建和管理 实验步骤:

1.创建数据库

(1)要求参数:

数据库名称:teaching 数据库逻辑文件名:teaching_data

日志逻辑文件名:teaching_log

操作系统日志文件名:e:\\xxx\\teaching.ldf 日志文件初始大小:1MB 日志文件最大大小:2MB

操作系统数据文件名:e:\\xxx\\teaching.mdf 数据文件初始大小:1MB 数据文件最大大小:5MB

数据文件增长增量:10% 日志文件增长增量:10% (2)创建后在database节点查看是否已包含了刚创建的数据库teaching; (3)展开teaching 节点,以下的所有对象均创建在teaching 数据库中; 2.创建用户定义的数据类型

(1)练习按要求创建以下数据类型

数据类型名称 数据描述 student_no 长度为10且不允许空值的字符型;

1

member_no 整数,且存储的值不超过30000

shortstring 最多15个字符的可变长字符型

(2)考虑在该数据库中可能使用的自定义数据类型(例如:学号的数据类型),并创建 3.创建表

(1)根据上述数据库存储的信息,决定创建几个表,并给每一个表指定一个有意义的表名;

(2)根据每个表中每列存储的数据的情况,为每个列指定列名,数据类型,数据的长度,是否允许为空等列的属性;

(3)使用企业管理器建立所有的表;

(4)创建之后,还可以根据具体情况,再对表的结构进行修改;(包括添加列,删除列,

修改已存在的列)

4.实现数据完整性

(1)针对每一个表分析并定义主码(Primary Key) (2)定义UIQUE约束

用来规定一个列中的两行不能有相同的值; 例如:希望学生的姓名是唯一的;

(3)针对每一个表分析外部码,并利用“关系图”定义外部码(Foreign Key),建立表

之间的参照关系; (4)定义缺省值

方法1:直接在表设计时,定义列的default属性; 例如:练习在定义“性别”列时,定义它的缺省值位“男”;

方法2:创建一个缺省值对象,然后绑定到任何一个需要的列; 例如:练习创建并绑定一个缺省值到学生的联系电话,缺省值为“unkown”; (5)定义check约束

check约束用来限制用户输入的某一列数据;

例如:成绩输入的值应该限制为0-100之间的数值

(6)定义规则(rule)

rule也可以用来限制用户输入的数据,但它只定义一次,可以绑定到一列或多列; 例如:创建一个规则,保证只允许输入指定的课程类别:“必修”,“任选”,“指选”,然后把此规则绑定到“课程类别”;

(7)创建以上约束后,练习修改约束的操作(包括增加,修改和删除以上约束); 5.根据自己所在班级的情况,对已经创建的表自己输入一些相关示例数据,在输入的过程中,特地输入一些违反上述约束条件的数据,观察处理的效果;

(1)使用企业管理器,完成一些记录的插入、修改和删除; (2)练习使用INSERT、UPDATE、DELETE命令完成记录的插入、修改和删除;如果

对该命令的使用不是很清楚,请练习查找“帮助系统”完成上述命令的学习; (3)练习使用TRUNCATE TABLE命令删除表数据;

(4)在练习使用命令删除数据之前,可以使用SELECT INTO命令把数据保存到一个新建的表中;

三、使用企业管理器创建和管理索引

1.利用表的属性对话框,观察每个表已经自动创建的索引; 2.针对学生选课信息表创建如下索引

(1) 按学号+课程编号建立主键索引,索引组织方式为聚簇索引;

2

(2) 按学号建立索引,考虑是否需要创建唯一索引,索引组织方式为非聚簇索引; (3) 按课程编号建立索引,考虑是否需要创建唯一索引,索引组织方式为非聚簇索引; (4) 再针对学生选课信息表输入一些数据,观察表中记录位置的变化;通过观察比较

非聚簇索引和聚簇索引的不同之处;

3.针对其它表,练习创建索引;(考虑:是否对每个列都应创建索引?应该从哪些方面考虑是否应为此列创建索引?) 4.练习索引的修改和删除操作

四、创建和管理视图

1.创建视图: 使用企业管理器或使用CREATE VIEW命令 例1:创建视图,包含所有通信工程专业的学生的信息;

例2:创建视图,包含所有学生的学号,姓名,选课的课程名和成绩; 例3:创建视图,包含所有课程的课程号,名,班级名称及每班选课的人数; 2.练习修改视图的定义

第一个视图,包括with check option 选项

第二个视图,包括with encryption选项;(查看视图的属性,观察和以前有和不同) 3.利用已经创建的视图进行查询;

4.利用已经创建的视图修改数据(观察是否所有通过视图的修改都能实现?) 5.练习删除视图

五、对于上述所创建的所有数据库对象产生其脚本文件,并保存在磁盘上; 六、使用查询分析器实现以下查询 1.练习课堂上举例介绍的几类查询;

2.实现以下查询 (1) 检索选修了课程号为C1或C2课程,且成绩高于或等于70分的学生的姓名,课程名和成绩。 (2) 检索姓“王”的所有学生的姓名和年龄。 (3) 检索没有考试成绩的学生姓名和课程名。

(4) 检索年龄大于女同学平均年龄的男学生姓名和年龄。 (6) 统计有学生选修的课程门数。

(7) 求选课在四门以上的学生所选课程的平均成绩(不统计不及格的课程)。最后按降序列出

平均成绩名次名单来。

(8) 统计每门指选课程的学生选修人数(超过10人的课程才统计),要求输出课程号,课程名和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。 (9) 检索所学课程包含了s3所选所有课程的学生姓名。

注:上述查询中所用的课程号和学号的值,可以根据自己表中的数据作修改;为了验证查询

的正确,可能还需要输入或修改表中的示例数据; 七、在企业管理器中利用数据导入,导出向导练习数据的导入导出;把每个表中的数据导出

到指定的文本文件中; 八、在企业管理器中,练习数据库的完整性备份和恢复;

九、把实验中生成的脚本文件,数据导出的文本文件以及数据库的备份文件复制到软盘中; 十、选作:存储过程和触发器的实现

1. 存储过程 (1)使用CREATE PROCEDURE命令创建存储过程

例1:定义存储过程,实现学生学号,姓名,课程名和成绩的查询; 例2:定义存储过程,实现按某人指定课程的成绩;

例3:定义存储过程,在查询某人所选修的课程和成绩,指定姓名时,可以只给出姓;

3

例4:定义存储过程,计算并查看指定学生的总学分

(2)使用EXEC命令执行上述存储过程 2.触发器

(1)使用CREATE TRIGGER命令对学生选课信息表创建插入触发器,实现的功能是:当向学生选课信息表中插入一记录时,检查该记录的学号在学生表中是否存在,检查该记录的课程编号是否在课程表中存在,若有一项为否,则提示“违背数据的一致性”错误信息,并且不允许插入。

(2)使用CREATE TRIGGER 命令对学生信息表创建删除触发器,实现的功能是:当在学生信息表中删除一条记录时,同时删除学生选课信息表中相应的记录。 (2)向课程信息表插入数据,在学生信息表删除记录,验证触发器的执行; 十一、 在实验老师验收所有的项目后,删除所创建的数据库;

4

实验二 在PB中实现第一个应用程序 实验目的:

1.熟悉PB8.0的集成开发环境

2.在PB8.0中连接SQL Server数据库,并使用数据库画笔进行操作; 3.通过一个应用实例,了解PB应用程序的对象以及应用程序开发步骤; 上机准备

1.了解在PB开发环境中操作数据库;(阅读教材:第四章)

2.了解在PB集成环境和开发应用程序的流程;(阅读教材:第二、三章) 实验步骤:

一、进入PB8.0集成环境; 二、在数据库画板中完成以下工作

1. 定义ODBC数据源,它指向实验一中所创建的SQL Server数据库; 2. 建立DB Profile;

3. 在PB环境中连接数据库

4. 在PB环境中操作数据库:浏览数据,更新数据,浏览和修改表结构等 5. 断开数据库的连接

三、建立第一个PB应用程序 1.使用实验一所创建的数据库

2.实现的详细步骤见教材:p127, 第六章 《第一个PB应用程序》;

3.通过该实例理解PB建立一个应用程序的过程和方法;了解画板环境和视窗操作;

4.记录在该应用程序的实现过程中遇到的问题,不清楚的问题,在后面的学习和实验中解决;

5

实验三 用户界面的设计

实验目的:

1.初步掌握用PowerScript语言编写程序;

2.学习创建窗口对象并了解其主要事件和函数的使用; 3.掌握窗口基本控件的使用;

4.学习创建菜单对象并了解其主要事件和函数的使用; 5.了解MDI应用的构成,并学习创建一个MDI应用程序; 上机准备:

1.复习PowerScript语言的基本元素和语句;(阅读教材:第五章)

2.复习窗口和基本控件的主要类型,用途,属性和事件以及布局的调整;(阅读教材:第七章)

3.了解一些常用函数的使用;(阅读教材:第七章)

4.复习菜单的建立以及和窗口的关联;(阅读教材:第七章) 5.复习MDI应用的组成和创建步骤;(阅读教材:第七章)

完成以下练习:

1.实现如下图所示的一个简单的计算器,只要求能实现简单的计算;考虑一些重复的程序语句是否可以用用户自定义的函数实现。

2.(选作)在如下图所示的窗口中放置一些基本控件,并通过编程实现所要求的功能 (1)分别调整三个刻度调控件,改变它下面的静态文本对象的背景色; (2)在单选框中所选择的颜色,该种颜色的值将显示出来;

(3)复选框中所选中的字符串会显示在他下面的单行编辑框中;

(4)在另一个单行编辑框中输入文本,然后可以在下拉列表中选择设置文本的颜色;

6

3.(选作)通过下面窗口的设计,了解Message函数和Beep函数的使用和以及参数的含义

4.设计一个登录窗口,使用用户在窗口的输入信息,作为登录指定的数据库的帐号和密码;连接后,可以根据SQLCA.SQLCODE的值,来判断连接是否成功,并用Messagebox显示不同的提示信息;

7

5.实现以下一个简单的MDI应用,了解MDI应用程序的组成和开发步骤,了解菜单对象的创建过程;

(1)创建如下菜单对象,并把它连接到MDI窗口;其中,Sheet菜单项可以在工作区中打

开所创建的工作窗口;Toolbar菜单可以调整工具栏的位置,Window菜单可以调整工作区中打开的工作窗口的位置;

(2)创建工具栏,包括退出及Window菜单中各命令所对应的工具;

8

6.把第4,5结合起来,只有当用户登录成功时,可以操作该MDI应用程序;否则要求重新输入登录信息;

9

实验四 在PB应用中实现数据处理 实验目的:

1.掌握PB中嵌入式SQL语言的语句及编程使用;

2.掌握数据窗口对象的创建及工作原理,进一步理解数据窗口对象的作用;

3.掌握使用数据库画板根据具体的要求进一步增强已创建的数据窗口对象的功能,包括修改数据窗口对象的属性,布局及控件的使用;

4.掌握数据窗口控件和数据窗口对象的联系方法,并掌握使用数据窗口控件提供的有关函数及其它方法访问数据窗口对象的数据;了解数据窗口对象的常用事件及编程; 上机准备:

1.掌握嵌入式SQL语句,在PB中使用该语句的方法,使用嵌入式SQL实现数据库操作;(阅读教材:第五章5.8)

2.复习数据窗口技术的主要内容,使用数据窗口的基本步骤; 3.复习数据窗口对象的各种数据源和显示风格的含义; 4.复习数据窗口画板的环境和操作;

5.复习数据窗口控件,数据窗口对象和数据库之间的联系方法;

6.复习数据窗口控件常用到事件和函数,了解通过它们能实现哪些数据操作; (以上内容阅读教材:第八章) 7.使用实验一所创建的数据库 完成以下练习:

一、通过嵌入式SQL语句对数据库中数据进行操作

1.利用嵌入式SELECT语句实现简单查询,查询结果显示在窗口中的单行编辑框中; 例如:

若没有找到,则显示相应的提示信息,并且让光标定位到学号所对应的单行编辑框;

2.练习游标的使用:在上例中学号换用下拉列表显示所有学生的学号,从下拉列表中选择需要查询的学号,其中下拉列表的内容通过游标添加;

3.设计一个学生基本信息输入窗口,其功能是使用嵌入式INSERT语句实现向学生基本表输入数据。在执行INSERT语句之前,在程序中应首先对输入的数据的有效性进行检查,包

10

括必要的数据是否输入了,输入的类型、范围和格式是否正确等;其次还要对输入数据进行预处理,例如去前后空格,数据类型转换等;最后还必须保证数据在逻辑上的有效性,例如学号必须是唯一的等;在INSERT语句之后,应将所有输入控件全部置空,为下一条记录的输入做准备;

二、通过数据窗口对象与数据窗口关联,对数据库中的数据进行操作

1.使用数据窗口对象实现简单查询,练习在一个窗口上显示所有学生的基本信息;

2.根据1实现的查询创建若干个数据窗口,查询内容不变,而只改变显示风格,完成数据窗口控件动态连接到指定的数据窗口对象;

3.数据窗口对象中定义检索参数实现简单条件查询;练习在一个单行编辑框中输入一个学生的姓名,然后显示该学生所选课程的课程名和成绩;

4.实现模糊查询,在练习3中的单行编辑框中只输入学生的姓,然后查看这些学生的选课的课程名和成绩;

5.实现关联与条件查询,在一个窗口中放置两个数据窗口控件,在一个数据窗口控件中显示所有开设课程的信息,当选中一条课程记录时,在另一个数据窗口控件中显示所有选了该课程的学生的学号,姓名和成绩;

6.选做:实现动态查询,也就是用户可以自己选择要查询的字段,比较的运算符,及设定比较字段值;

7.使用数据窗口的相关函数,实现数据的更新和基本浏览,包括:插入,修改和删除记录,以及“前一个”,“后一个”,“第一个”,“最后一个”一组导航按钮实现基本数据的浏览;练习在一个窗口中,实现对学生基本信息表的更新和基本浏览;

11

综合实验(一)

实验目的:

1.培养学生综合应用PowerBuilder进行程序设计和解决实际问题的能力

2.掌握应用程序设计的基本方法,巩固已经学到的编程技术,学会在编程中学习编程; 3.培养自学能力;

实验题目:小型图书管理系统 1.数据库设计

为了简单起见,本系统的数据库只涉及图书一个关系,关系模式如下: Book(bno 书号,bname 书名,author 作者,price 价格,debit借书证号)

假定每种书只有一本,其中对于一条记录,如果借书证号一列不空,表示该书已借出,借阅者由借书证号标识。 2.功能

(1)图书查询:可以按给定的书号、书名、作者查询图书信息,其中书名允许模糊查找;查不到图书时要给出提示信息;

(2)图书借阅:输入“书号”和“借书证号”,按“确定”按钮完成借阅处理。如果书号不对,或该书已借出时,要给出相应的提示信息。

(3)还书处理:输入要还的书号,按“确定”按钮完成还书处理。如果书号不对,或该书没有借出,要给出相应的提示信息;

(4)资产统计:提供一个图书完整信息的浏览界面,并显示一些统计数据,如图书总册数、图书总价值,当前图书在借总册数等;

(5)新书入库:输入一本购进新书的书号、书名、作者、价格等信息,按“确定”按钮,完成新书入库处理。如果书号编重,要给出错误提示。

(6)旧书注销:输入一个要注销的书号,按“确定”按钮完成注销工作。如果没有该书号,或该书已借出,要给出错误提示。

(7)用户只有在成功登录系统之后,才可以使用该系统。用户分成两个级别:普通用户只能使用图书查询功能和资产统计功能,只用管理员才可以使用其他功能;

(8)界面由同学自己设计,不作统一要求,但应简单明了、美观合理,方便用户进行操作 实验验收要求:

1.检查用SQL Server实现的数据库设计及数据库对象;

2.根据查询要求编写SELECT语句,并且使用查询分析器实现查询; 3.检查PB应用程序实现的系统各项功能是否正确; 4.检查是否保证了数据的有效性; 5.检查用户界面设计是否美观,合理; 6.交实验报告

实验报告要求:

1.结合听课和实验对本课程的学习进行总结;包括:

(1)对于自己所掌握的并认为重要的数据库的基本知识、概念和理论进行总结; (2)结合SQL Server 2000和PB8两个具体软件,以及所作的实验,对于一个数据库应用系统的开发方法和步骤进行总结;

(3)总结在学习的过程中,觉得那些内容的掌握对你来说比较困难; 2.针对这门课程的教学内容、实验安排及考查方法的意见和建议。

12

综合实验(二)

实验目的:

1.培养学生根据信息系统的需求分析,合理的设计数据库,并使用SQL Server正确实现数据库设计;

2.培养综合应用Powerbuilder进行程序设计和解决实际问题的能力;

3.掌握应用程序设计的基本方法,巩固已经学到的编程技术,学会在编程中学习编程; 4.发挥个人的想象能力和分析能力,培养自学能力,拓展思维空间;

实验题目:图书馆图书管理系统 功能:

1.图书查询,它的功能是,可以根据书名,作者,出版社,ISBN号,主题词,分类等信息进行查询,对查询到的结果,当单击其中一条记录时,显示该图书更详细的信息; 2.读者信息查询:它的功能是,可以根据读者输入的图书证号,查看读者的借书的情况; 3.催还书目查询:它的功能是,可以查看所有已到期,但未归还的图书以及借阅者的相关信息;

4.图书借出:它的功能时,根据输入的读者的借书证号,首先显示读者借书情况,然后输入要借出的图书编号,按确认,若借阅成功,在读者的借书情况栏中,加入该书信息; 5.图书归还:输入还书读者的借书证号,要还的图书编号,显示该书的借阅信息,若图书未过期,则还书成功;若过期,显示罚款金额,确认交罚款后,还书成功; 6.系统维护:它的功能包括:图书信息的录入和修改,读者信息的输入和修改,系统的设置,包括读者类型的设置,不同的读者可借阅图书数目不同;图书借阅时间期限设置,过期罚款金额设置;系统登录账号和密码的维护;

7.关于图书,存储的基本信息包括每本书的书名,书号,作者,出版社,出版年月,ISBN号,主题词,分类,是否可借,每本书有若干副本;

8.用户登录系统后,不同的用户具有不同的操作权限,其中普通读者可以使用查询功能,操作员可以使用图书的借和还的操作;系统管理员可以使用系统维护操作;

实验步骤:

1.问题的背景和需求分析,得到系统处理的数据项和主要功能(可以对以上的功能进行扩充和修改); 2.根据数据库概念设计方法,得到系统的E-R图; 3.根据数据库逻辑设计方法,得到系统的关系模型;

4.功能设计,包括系统的总体功能结构以及各模块的功能(在每个模块的功能描述中需给出:该模块的名称、功能描述、上级模块、下属模块、输入信息、输出信息,所使用的数据库表和处理过程描述);

5.实现数据库设计(数据库、表、视图、关系,约束等),并装入一些示例数据; 6.编写应用程序并进行测试与调试,完成上述系统的各功能模块;

7.要求应用程序用户界面有菜单栏,工具栏,快捷键,操作方便,美观;

8.数据库的模式以及应用界面和风格不做具体要求,各人按照自己的思路去做,发挥自己的创造能力;

实验验收要求:

7.检查用SQL Server实现的数据库设计及数据库对象;

8.根据查询要求编写SELECT语句,并且使用Query Analyzer实现查询;

13

9.检查PB应用程序实现的系统各项功能; 10.检查用户界面设计是否美观,合理; 11.验收后,上交软盘;

实验报告要求:

1.详细写出数据库模式设计,包括每个表的名字,字段名(写出字段存储的数据的含义),类型,宽度,是否允许空值,定义的主码,外部码,规则,约束;每个表之间的关系,针对每个表所创建的索引等;说明你的设计是否满足规范化规则,若引入非规范化设计是出于什么考虑;

2.写出构成系统的功能模块,针对每各模块的功能写出该模块的名称、功能描述、上级模块、下属模块、输入信息、输出信息,所使用的数据库表和处理过程描述;

3.给出图书借出功能模块的详细设计步骤,包括窗口对象,在窗口对象上放置的控件,属性设置以及相关事件处理程序,函数等编程,所用到的数据窗口对象的创建和设计过程; 4.写出应用系统的有关使用说明;

5.结合本管理系统的设计过程,对用到的有关数据库的原理及开发环境、方法和手段进行总结,并给出对这门课程的教学与实验的意见和建议;

上交软盘包括以下内容: 1.数据库的备份文件; 2.PB应用程序的库文件; 3.用Word编辑的实验报告

14

本文来源:https://www.bwwdw.com/article/r7cg.html

Top