文档库 最新最全的文档下载
当前位置:文档库 › 数据库及其应用实验指导书

数据库及其应用实验指导书

数据库及其应用实验指导书
数据库及其应用实验指导书

《数据库及其应用》上机实验指导

实验项目一:Access的基本操作与数据库设计方法

实验1 Access启动、退出与基本设置

一.实验目的和要求

(1)掌握Access的启动、退出方法。

(2)初步熟悉Access界面及使用方法。

(3)对Access根据需要进行初步的设置。

二.实验内容

1.启动Access的几种方法

按照Windows启动程序的方法,使用以下常用的三种方法分别启动Access。

?单击“开始”按钮,选择“所有程序”|“Microsoft Office”|“Microsoft Access 2010”菜单项单击。

?双击Access桌面快捷方式(若没有快捷方式可先创建)。

?打开“计算机”窗口,找到要操作的Access数据库文件,双击。

2.退出Access的几种方法

?单击Access主窗口关闭按钮。

?选择“文件”选项卡单击,在Backstage 视图中选择“退出”项单击。

?单击Access主窗口左上角图标,选择“控制菜单”中的“关闭”项单击。

?按“ALT+F4”键组合。

3.观察并了解Access用户界面

不同方式启动进入Access,其界面有所差异。

通过“开始”按钮或桌面Access快捷方式启动进入Backstage视图;通过Access数据库文件关联则直接进入Access数据库窗口。

Access用户界面主要由三个组件组成:

?功能区。

?Backstage 视图。

?导航窗格。

(1)观察Backstage视图:不同方式进入Backstage视图,注意其差别。

(2)观察功能区:了解组成功能区的选项卡。

(3)观察导航窗格。各种对象的显示组合。

4.Access选项及其设置

在Backstage视图中选择“选项”命令单击,进入Access选项对话框窗口。在该窗口可设置默认文件夹等。

选择“当前数据库”页,如图1.1所示。在该页面可设置文档窗口显示方式、定制导航窗格等。

在“快速访问工具栏”页,可定制工具栏的项目。

图1.1 Access选项设置窗口

三.回答问题并填写实验报告

(1)如何启动Access?有几种方法?

(2)按键退出Access,对应的键是什么?

(3)几种方式进入Backstage视图?

(4)最初功能区有哪几个选项卡?

(5)如何隐藏导航窗格?

(6)更改Access默认文件夹怎样操作?

(7)怎样在“快速访问工具栏”中添加“复制”按钮图标?

实验2 大学生竞赛项目管理数据库概念设计与逻辑设计

一.实验目的和要求

(1)掌握数据库设计的基本思想和方法、步骤。

(2)掌握使用ER模型进行简单数据库概念设计的方法。

(3)掌握ER模型转换为关系模型的方法。

二.实验内容

1.实验用数据库系统的需求

某学校开发“大学生创新创业竞赛项目”管理系统,管理的内容包括:

学院信息、专业信息、学生信息、指导教师信息、项目信息。

?学院信息包括:学院编号、学院名称、院长、办公电话。

?专业信息包括:专业编号、专业名称、专业类别。

?学生信息包括:学号、姓名、性别、生日、民族、籍贯、简历、登记照。

?教师信息包括:工号、姓名、性别、职称。

?项目信息包括:项目编号、项目名称、项目类别、立项日期、完成年限、经费、是否完成。

其中,一个学院可以开设多个专业,一个专业只有一个学院开设;一个学生只有一个主修专业,一个专业可以有多名学生。一名教师只隶属一个学院。

一名学生可以参与多项项目,在项目中的分工分为:负责人、成员。

一个项目可以有1名指导教师。一名教师只能指导1个项目。

2.根据以上需求,建立项目管理数据库的ER模型

首先确定实体。根据分析,本数据库系统中的实体包括:学院、专业、学生、教师、项目。

其次,确定实体间的联系。

学院开设专业,是1:N联系。

学生主修专业,是N:1联系。

学院聘任教师,是1:N联系。

学生参与设计项目,是M:N联系。

教师指导项目,是1:1联系。

ER图如图2.1所示。

图2.1 项目管理ER图

3.将ER模型转换为关系模型。

根据图2.1所示的ER模型,得到的关系模型如下。

①学院(学院编号,学院名称,院长,办公电话)

②专业(专业编号,专业名称,专业类别,学院编号)

③教师(工号,姓名,性别,职称,学院编号)

④学生(学号,姓名,性别,生日,民族,籍贯,专业编号,简历,登记照)

⑤项目(项目编号,项目名称,项目类别,立项日期,完成年限,经费,是否完成,工号)

⑥项目分工(学号,项目编号,分工)

虽然教师和项目是1:1联系,这里没有必要将其合并。

三.回答问题并填写实验报告

(1)什么是实体?如何在需求中确定实体?

(2)什么是实体码?它在转换为关系模型后成为关系的什么?

(3)1:1联系、1:n联系、m:n联系转换为关系时是如何处理的?

(4)在本实验中,如果允许一名教师指导多个项目,ER图和关系有何变化?

(5)如果一个项目允许有0-2位教师指导,ER图和关系有何变化?

实验3 项目管理数据库的物理设计与创建

一.实验目的和要求

(1)掌握Access的数据类型。

(2)初步熟悉数据库物理设计。

(3)掌握通过设计视图创建表,理解完整性的定义。

(4)掌握关系的建立,理解关系的作用。

(5)掌握导入方式创建表。

二.实验内容

1.根据实验二的逻辑设计,结合实际,完成数据库的物理设计

数据库名称:项目管理。

文件存放文件夹“E:\test”。

表包括:学院、专业、学生、教师、项目、项目分工。对应表结构如表3.1至表3.6所示。

民族文本型10 ↑

籍贯文本型40

专业编号文本型 4 专业√

简历备注型√

登记照OLE对象√

字段名类型宽度小数位主键/索引参照表约束Null值工号文本型 6 ↑(主)

姓名文本型10

性别文本型 2 男or 女

职称文本型10

学院编号文本型 2 学院√

字段名类型宽度小数位主键/索引参照表约束Null值项目编号文本型10 ↑(主)

项目名称文本型50

项目类别文本型10

立项日期日期时间型

完成年限字节1或2

经费货币5000~50000

是否完成是/否型

指导老师工号文本型 6 不重复索引教师

字段名类型宽度小数位主键/索引参照表约束Null值

项目编号文本型10 ↑项目

学号文本型8 ↑学生

分工文本型 6 负责人、成员

2.创建数据库文件

在E盘上建立“test”文件夹。

启动Access,进入Backstage 视图,选择“新建”命令单击,接着,在中间窗格选择“空数据库”单击。

选择窗口右下侧的“文件名”栏右边的文件夹浏览按钮()单击,打开“文件新建数据库”对话框。选择E盘、“test”文件夹,在“文件名”栏输入“项目管理”,单击“确定”按钮。

返回Backstage 视图。单击“创建”按钮,空数据库“项目管理”建立起来了。

3.使用表设计视图,完成学院表、专业表和其他表的创建。

(1)在上述操作后,数据库中会自动创建初始表“表1”,如图3.1所示。

单击功能区“视图”按钮的下拉按钮,下拉出视图切换表,选择“设计视图”单击,弹出“另存为”对话框,如图3.2所示。输入“学院”,单击“确定”按钮,新表被命名为“学院”,并进入学院表的设计视图,如图3.3所示。

图3.1 初始表界面

图3.2 “另存为”对话框

图3.3 “学院表”对话框

在设计视图中,按照表的设计,依次输入字段名,选择类型,定义字段属性(将自动生成的ID字段删除,或将其改为“学院编号”,类型改为“文本”,字段长度设为2)。

定义主键。选中“学院编号”字段,单击功能区“主键”按钮,设为主键。这样,学院表就定义完毕,如图3.3所示。单击快速工具栏“保存”按钮保存。

(2)创建专业表。在功能区选择“创建”选项卡单击,切换到“创建”选项卡。单击“表设计”按钮,Access自动进入“表1”的设计视图,然后按照“专业”表的设计,依次

定义各字段的字段名、数据类型、字段属性等。

单击快速工具栏的“保存”按钮,弹出“另存为”对话框,输入“专业”,单击“确定”按钮,完成表的定义。

(3)按照相同的方法,可依次建立“学生”、“教师”、“项目”和“项目分工”表。在定义表的过程中,注意主键、索引、有效性规则等约束的实现。

若已给定表的电子表数据,可利用导入方式,创建表,然后进行字段属性的调整。(参见后续实验)。

4.定义表之间的关系

当所有表都定义好后,通过建立关系实现表之间的引用完整性。

单击“数据库工具”选项卡,然后单击“关系”按钮,启动“关系”操作窗口。单击“显示表”按钮,弹出“显示表”对话框,在对话框中按住Shift键选中所有表,如图3.4所示。

图3.4 “关系”窗格及“显示表”对话框

单击“添加”按钮,将各表添加到关系窗口中。

选中“学院”表中的“学院编号”字段,拖到“专业”表内的“学院编号”上,弹出“编辑关系”对话框,选中“实施参照完整性”复选框。单击“创建”按钮,创建“专业”表和“学院”表之间的关系。

类似方式建立“教师”和“学院”、“学生”和“专业”、“教师”和“项目”,以及“项目”和“学生”表之间的关系,得到整个数据库的关系,如图3.5所示。

注意,“教师”和“项目”之间是1:1的联系。

5.输入表记录

当一个数据库的所有表建立好后,可开始输入记录。由于表之间存在联系,输入时,应该先输入被引用数据的表记录,然后再输入引用其它表数据的表记录。这里,输入记录的依次顺序是:学院表、专业表、教师表、学生表,然后是项目表,最后是项目分工表。

在对象导航窗格选中“学院”表双击,进入数据表视图,然后依次输入各条记录。

(本实验用数据参见附录一)

图3.5 数据库表之间的关系

三.回答问题并填写实验报告

(1)Access存储数据时,用到几个数据库文件?扩展名是什么?

(2)数据库及表结构,分别属于数据库设计中的什么步骤?

(3)在表结构设计中,应该包含哪些内容?

(4)在本实验设计中,共使用了哪些数据类型?不同类型对宽度如何规定?

(5)定义表之间的关系时,“实施参照完整性”的意义是什么?在“编辑关系”对话框中选中或者撤销“级联更新相关字段”复选框,对于数据表的操作有何影响?

(6)建立表的关系,是否要求发生关系的两个字段必须同名?

(7)如何输入学生的照片?

实验项目二:数据库的操作与管理

实验4 项目管理系统数据库的操作与管理

一.实验目的和要求

(1)进一步了解表的设计视图的操作。

(2)进一步理解数据完整性的意义及设置。

(3)掌握相关字段属性的设置。

(4)掌握查阅选项的定义。

(5)掌握数据表视图的几种操作。

二.实验内容

1.数据完整性及有效性规则与有效性文本

数据库的完整性包括:实体完整性、参照完整性、域完整性和用户定义的完整性。

(1)实体完整性通过定义表的主键实现。定义主键后,主键字段不允许重复取值、不允许取空值。主键可以作为外键的参照字段,实现参照完整性。

(2)参照完整性要求外键字段取值必须与对应的主键字段一致,或者取NULL值。通过设置表之间的关系来实现参照完整性。定义关系时指定父表和子表中发生联系的字段,并设置有关检验开关。创建参照完整性后,输入、删除和修改主键值或外键值都有可能引起不一致。当数据的操作引发不一致时,Access自动检验并拒绝引起不一致的操作。

(3)域完整性指对单个字段取值的约束。定义数据类型、不允许取空值、创建不重复索引等都是域约束。

(4)用户定义的完整性,是指由用户规定的对于表中数据取值的约束。如输入掩码、定义有效性规则等。

如在“项目”表中,定义“经费”字段必须是5000~50000元之间。则在项目表的设计视图中,选定“经费”为当前字段,在“字段”属性窗格的“有效性规则”栏中输入:>=5000 AND <=50000

然后,在“有效性文本”栏中输入:项目经费不在5000元到50000元之间!

2.设置格式属性与输入掩码属性

(1)设置字段格式属性。

①要使“项目”表中的“立项日期”字段以“红色”、“中文日期”格式显示,在“项目”表设计视图中,选中“立项日期”字段,然后设置“格式”字段属性值为:

yyyy\年m\月d\日[红色]

②要使“项目”表中“经费”字段的显示为:“¥开头、千位逗号分隔、2位小数、蓝色”,在设计视图中,选中“经费”字段,设置“格式”字段属性值为:¥#,###.00[蓝色]

③要使“学院”表中“办公电话”字段的显示为:Tel三位区号-七位电话号码,在“学院”表设计视图中,选中“办公电话”字段,然后设置“格式”字段属性值为:"Tel"@@@-@@@@

(2)字段输入掩码设置。

输入掩码可定义每一位的输入字符集,属于用户定义的约束方法。

如在“教师”表中,由于“工号”是6位文本,第1位是字母、后5位是0~9数字组成,因此,可以规定每一位的输入字符集。在“教师”表设计视图中选中“工号”字段,定义“输入掩码”字段属性的值为:L00000

又如在“学院”表中,“办公电话”虽然定义为20位文本,但根据电话数据的设置为3位区号,7位电话号码,一共需输入10位0~9数字。因此,可以规定每一位的输入字符集。在“学院”表设计视图中选中“办公电话”字段,定义“输入掩码”字段属性的值为:0000000000

3.设置查阅选项

“查阅”控件与字段绑定,可以提示字段的输入。为“项目”表的“项目类别”定义查阅控件绑定的操作如下。

进入“项目”表设计视图,选中“项目类别”字段,单击“查阅”选项卡,在“显示控件”栏中选择“列表框”,在“行来源类型”栏中选择“值列表”,在“行来源”栏中输入“国家级重点;国家级一般;校级”。如图4.1所示。

单击工具栏“保存”按钮保存,即可使用查阅列表用于输入。

图4.1 查阅设计

4.数据表视图下数据记录的显示与操作

(1)添加、修改、删除数据操作。

例如,进入数据表视图对教师信息进行添加、删除、修改的操作。

利用数据表视图进行记录输入操作,选择“新记录”标记,然后输入记录。输入的数

据应该满足各种完整性的要求。

要修改表数据,选中要修改的记录,直接修改即可。

删除表数据,在数据表视图中在左侧的“记录选定器”上选中该记录,单击右键,在快捷菜单中选择“删除记录”命令单击,或按Delete键,删除记录。

无论添加、修改还是删除记录,不符合完整性约束的操作都会被拒绝。

(2)数据表视图中的设置。

数据表视图是浏览表中数据的界面,可以做不同的设置,以获得不同的效果。

①数据表视图中父子表的展开。

进入“学院”表数据表视图。若需要展开“信息学院”记录的子表,单击记录左端的“+”号。由于“学院”表的子表有两个,因此会弹出“插入子数据表”对话框。在其中选中“教师”表。由于“教师”表有“项目”表的子表,可以进一步单击有关教师的子表展开器“+”,这样又展开了下一层子表,如图4.2所示。

②按照指定的字段排序浏览。

在“项目”数据表视图中,若按照“经费”的大小排列,选中“经费”字段,然后单击“降序”按钮,数据即重新排列显示。

③在学生表中只显示女生数据记录。

在“学生”表数据表视图中,选中“性别”字段,选择“筛选器”按钮单击,在“性别”字段上拉出命令列表,在“文本筛选器”下勾选“女”,单击“确定”按钮。如图 4.3所示。这时,显示的都是女生信息。

若要取消筛选,单击“切换筛选”按钮即可。

图4.2 学院表数据表视图中子表展开操作

图4.3 “按窗体筛选”窗口

三.回答问题并填写实验报告

(1)定义表时,设置“有效性文本”字段属性有何作用?

(2)在定义“文本”型字段格式时,“@”符号与“&”符号作为占位符有何区别?在定义“数字”型字段格式时,“#”符号与“0”符号作为占位符有何区别?

(3)在定义“日期/时间”型字段格式时,一个m或d与两位的mm或dd在使用时有何区别?用“\”符号的作用是什么?若设计格式为“dddddd[红色]”,有何区别?

(4)定义“输入掩码”属性的实质意义是什么?在定义“学号”字段的输入掩码时,不使用“0”而使用“9”或“#”有和区别?

(5)可以采用查阅方法输入的字段类型有哪些?绑定查阅列表框控件进行输入,如果不点击其中的值,而是输入不同的值,是否可以输入?如果一定要使输入的值限定在列表框的值的范围内,应该如何实现?

(6)若为“专业”表的“学院编号”字段设计“查阅”控件。数据从“学院”表中来,显示“学院编号”和“学院名称”两列数据,采用列表框。写出设计过程。

(7)在数据表浏览展开子表时,可以最多展开多少层子表?若要同时展开每条记录的的子表,应该如何操作?

实验项目三:ACCESS表达式及数据库查询操作

实验5 SQL视图中表达式练习

一.实验目的和要求

(1)掌握Access表达式的基本概念。

(2)了解不同类型数据的常量、参数、运算与函数的使用。

二.实验内容

1.进入SQL视图及在不同视图间切换

在Access中打开“项目管理”数据库。

选择“创建”选项卡“查询”组“查询设计”按钮单击,弹出查

询设计窗口及“显示表”对话框。关闭“显示表”对话框,单击“设

计”选项卡“结果”组“SQL视图”按钮单击,进入“SQL视图”。

在SQL视图输入SQL命令并单击“运行”按钮,就可以查看运行

结果。如果需要在不同的视图之间切换,可选择“视图”的下拉按钮

单击,则拉出所有视图列表,用户可在其中选择切换。如图5.1所示。

2.不同类型数据的表达式运算

图5.1视图按钮在SQL视图中分别输入以下命令,分别进入数据表视图查看结果。

SELECT -5.12^2+(17 mod 3);

SELECT "Hello "+",World!",TRIM(" 清华大学 "),LEFT("清华大学出版社",2)+RIGHT("清华大学出版社",3);

SELECT "你毕业的年份是", VAL(LEFT([你的学号],2))+4;

SELECT "现在是"+STR(YEAR(DATE()))+"年","现在是"+STR(MONTH(DATE()))+"月","现在的时间是:"+CSTR(TIME()),"今天是星期"+ STR(WEEKDAY(DATE()));

SELECT "张三">"李四","ABCD"<"abcd",(DATE()-#1992-10-8#)>1000;

三.回答问题并填写实验报告

(1)有哪几种方式可进入“SQL视图”?如果用“记事本”编写了SQL语句,是否可以在SQL视图中使用?如何操作?

(2)写出本实验中各表达式运算的结果,体会运算的意义。对于参数自己输入数据。

(3)为什么不能在数字常量前加“¥”或“$”符号表示币值常量?“¥”或“$”有何作用?

实验6 使用SQL命令进行查询和操作(需了解,选作)

一.实验目的和要求

(1)掌握SQL语言中SELECT语句的主要应用。

(2)掌握SQL的插入、更新、删除操作命令的基本应用。

(3)了解SQL定义数据表的基本方法。

(4)理解查询对象的意义和建立方法。

二.实验内容

1.练习SQL查询的SELECT语句

进入项目管理数据库数据库窗口,进入SQL视图。

在“SQL视图”中输入以下SELECT命令,查看执行结果,并仔细体会查询的实现。

①查询“学院”、“专业”、“学生”完整数据。

SELECT *

FROM ((学院 INNER JOIN 专业 ON 学院.学院编号=专业.学院编号)

INNER JOIN 学生 ON 专业.专业编号=学生.专业编号);

②查询“工商管理”专业所有女生信息。

SELECT 专业名称,学生.*

FROM 专业 INNER JOIN 学生 ON 专业.专业编号=学生.专业编号

WHERE 专业.专业名称="工商管理" AND 学生.性别="女";

③查询作为“项目负责人”的学生的学号、姓名、性别。保存为“负责人”查询。

SELECT 学生.学号,姓名,性别

FROM 学生 INNER JOIN 项目分工 ON 学生.学号=项目分工.学号

WHERE 分工="负责人" ;

单击保存按钮,弹出“另存为”对话框,输入“负责人”,单击“确定”按钮。

④查询没有参与项目的学生学号、姓名、专业名称。

SELECT 学号,姓名,专业名称

FROM 学生 INNER JOIN 专业 ON 学生.专业编号=专业.专业编号

WHERE 学号 NOT IN (SELECT 学号 FROM 项目分工);

⑤查询参与项目超过1项的学生学号、姓名和参与项目数。

SELECT 学生.学号,姓名,COUNT(*)

FROM 学生 INNER JOIN 项目分工 ON 学生.学号=项目分工.学号

GROUP BY 学生.学号,姓名

HAVING COUNT(*)>1;

⑥查询参与项目最多的学生学号、姓名和参与项目数。

SELECT TOP 1 学生.学号,姓名,COUNT(*) AS 参与项目数

FROM 学生 INNER JOIN 项目分工 ON 学生.学号=项目分工.学号

GROUP BY 学生.学号,姓名

ORDER BY COUNT(*) DESC ;

⑦查询与农村或农业有关的项目及负责人姓名。

SELECT 项目.*,姓名

FROM (学生 INNER JOIN 项目分工 ON 学生.学号=项目分工.学号)

INNER JOIN 项目 ON 项目.项目编号=项目分工.项目编号

WHERE 分工="负责人" AND (项目名称 LIKE "*农业*" OR 项目名称 LIKE "*农村*");

2.练习SQL的创建表、插入、更新、删除操作命令

①在教师表中添加一个新教工信息,数据如命令所示。

INSERT INTO 教师 VALUES("Z09031","杨飞","男","讲师","09");

②将“校级”项目的经费增加1000元。

UPDATE 项目

SET 经费=经费+1000 WHERE 项目类别="校级";

③创建“已结项项目”表,包括:项目编号、项目名称、项目类别、指导教师工号、负责人学号。

CREATE TABLE 已结项项目

(项目编号 TEXT(10) PRIMARY KEY,

项目名称 TEXT(60) NOT NULL,

指导教师工号 TEXT(8) REFERENCES 教师(工号),

负责人学号 TEXT(8) REFERENCES 学生(学号) ) ;

④将已结项的项目转入“已结项项目”表,然后删除“已结项”的项目数据。

先执行下列语句:

INSERT INTO 已结项项目(项目编号,项目名称,指导教师工号,负责人学号)

SELECT 项目.项目编号,项目名称,指导教师工号,学号

FROM 项目 INNER JOIN 项目分工 ON 项目.项目编号=项目分工.项目编号

WHERE 分工="负责人" AND 是否结项;

然后执行下列语句:

DELETE FROM 项目

WHERE 是否结项;

三.回答问题并填写实验报告

(1)不命名保存查询,与将查询保存为查询对象有何区别?查询对象有什么作用?

(2)上述实验中,插入“已结项项目”表的命令是否可以省略字段列表?为什么?

(3)删除“已结项项目”的命令的条件为什么没有比较对象?

实验7 选择查询操作

一.实验目的和要求

(1)理解Access选择查询的意义和类别。

(2)掌握一般选择查询的操作应用。

(3)理解并掌握交叉查询的应用。

(4)理解参数查询的意义。

二.实验内容

1.进入查询设计视图进行交互式选择查询设置

进入项目管理数据库窗口,然后进入设计视图。

(1)查询“专业”表,显示开设的所有专业涉及的学科门类。

通过“显示表”对话框将“专业”表加入设计视图。在设计网格中“字段”栏选择“专业类别”字段并勾选“显示”栏。因为该字段的值有重复,因此,进入“属性表”对话框,选择“唯一值”属性值“是”。

(2)查询所有专业涉及的学科门类,以及每个学科门类开设的专业数,并仅显示开设专业数为2个以上的学科门类及其专业数信息,显示信息为专业类别、专业数。

通过“显示表”对话框将“专业”表加入设计视图。在设计网格中“字段”栏选择“专业类别”和“专业编号”字段并勾选“显示”栏。然后,单击工具栏“汇总”按钮增加“总计”栏,将“专业类别”字段设置为“分组”,将“专业编号”字段设置为“计数”。在“专业编号”字段的“条件”栏填入>2。最后,在“专业编号”的“字段”栏中的专业编号前面加上“专业数:”,作为查询后的列名。设计完成,如图2.7.1所示。

图2.7.1 选择查询设计视图

(3)查询各专业学生的人数。

相关文档