《数据库技术与应用》实验报告参考

2012级硕士研究生

《数据库技术与应用》

实验报告

实验一: 创建和删除数据库

一、 实验目的

熟悉实验所需的Visual FoxPro、Ms SQL 2000或Ms Access工具,为实验做好准备。

二、 实验内容

练习建立数据库,即创建一个数据库,其数据文件和日志文件的初始大小都为1M,最大都允许增加到3M,每次增量都为1M。数据文件和日志文件存放在指定目录之下。

三、 实验要求

成功建立数据库,供后面实验使用,并学会删除数据库。

所用的执行语句如下:

1、创建数据库:

USE master

CREATE DATABASE book

ON

( NAME = book_DATA, /*数据文件*/

FILENAME = 'E:\book.mdf',

SIZE =1,

MAXSIZE = 3,

FILEGROWTH = 1 )

LOG ON

( NAME = book_LOG, /*日志文件*/

FILENAME = 'E:\book.ldf',

SIZE = 1,

MAXSIZE = 3,

FILEGROWTH = 1 )

2、删除数据库:

USE master

DROP DATABASE book

四、 实验环境

在客户机上登陆至服务器MICROSOF-5FD984\QIAO,用Windows登陆。

五、 实验步骤

创建一个 数据库,其数据文件和日志文件的初始大小都为1M,最大都允许增加到3M,每次增量都为1M。数据文件和日志文件存放在指定目录之下。

六、思考题:

1.日志文件的作用是什么?

在建库时要同时建立日志文件,日志文件的主要作用是记录下每一步操作,便于查看各个动作,在有错误操作时可以方便地更改。

2. 特定数据库系统的SQL语句格式与sql-3标准等标准有什么区别?特定数据库的这种扩充有什么意义?

SQL语句是一个国际标准~主流数据库都必须支持,关于SQL-3,只是拓展SQL后增加新的功能而已

实验二: 数据库库结构的建立

一、 实验目的

掌握数据库的设计,掌握表的建立、修改和删除等,为进一步的实验提供数据库。

二、 实验内容

练习建立基本表、修改表结构、删除表的SQL语句的使用。

三、 实验要求

成功建立一组基本表(含主码、外码、完整性约束的定义),供后面实验使用,并学会修改表结构、删除表。

所用的执行语句如下:

USE book

CREATE TABLE MovieStar(

name CHAR(30) PRIMARY KEY,

address VARCHAR(100),

gender CHAR(1),

birthday DATETIME DEFAULT 0000

)

CREATE TABLE MovieExec(

name CHAR(30),

cert# INT PRIMARY KEY,

address VARCHAR(100),

netWorth INT

)

CREATE TABLE Studio(

name CHAR(30)PRIMARY KEY,

address VARCHAR(100),

presc# INT REFERENCES MovieExec(cert#)

)

CREATE TABLE Movie(

title VARCHAR(100),

year INT CHECK(year>=1895),

length INT CHECK (length >=60 AND length<=250),

Incolor INT,

studioName CHAR(30) REFERENCES Studio(name),

producerC# INT REFERENCES MovieExec(cert#)NOT NULL,

PRIMARY KEY(title,year)

)

CREATE TABLE StarsIN(

Movietitle VARCHAR(100) NOT NULL,

Movieyear INT /*CHECK(year>=1895)*/NOT NULL,

StarName CHAR(30) REFERENCES MovieStar(name),

PRIMARY KEY(Movietitle,Movieyear,StarName),

FOREIGN KEY (Movietitle,Movieyear)

REFERENCES Movie(title,year)

)

ALTER TABLE Studio

ALTER COLUMN address CHAR (50)

ALTER TABLE Studio

ADD execname CHAR(30)

DROP TABLE StarsIN

DROP TABLE Movie

DROP TABLE studio

DROP TABLE MovieExec

DROP TABLE MovieStar

四、 实验步骤

选择课题,如《数据库系统概论》第二章第五题,画出E-R图,设计出数据库模式,然后使用CREATE TABLE语句创建基本表,并练习ALTER TABLE语句的使用。各表中要求设计适当的约束(主码、外码、 check约束等)。

五、 实验数据及处理

实验中出现的问题和系统信息

1、服务器: 消息 8141,级别 16,状态 1,行 28

列 CHECK 约束(属于列 'Movieyear')引用了另一列,表 'StarsIN'。

服务器: 消息 1759,级别 16,状态 1,行 28

在约束或计算列的定义中指定了无效的列 'year'。

服务器: 消息 1750,级别 16,状态 1,行 28

未能创建约束。请参阅前面的错误信息。

2、服务器: 消息 1770,级别 16,状态 1,行 14

外键 'FK__Studio__presc#__3C69FB99' 引用了位于被引用表 'MovieExec' 中的无效列 'cret#'。

服务器: 消息 1750,级别 16,状态 1,行 14

未能创建约束。请参阅前面的错误信息。

原因是列名写错了,应为cert#。

1、 第一次执行命令

ALTER TABLE Studio

ALTER COLUMN address CHAR (50)

显示影响行数为零的提示,之后运行会显示命令已完成。

2、 执行命令

ALTER TABLE Studio

ADD execname CHAR(30)

显示命令已成功完成。

3、 执行命令

DROP TABLE MovieStar

DROP TABLE MovieExec

DROP TABLE studio

DROP TABLE Movie

DROP TABLE StarsIN

有如下信息:

服务器: 消息 3726,级别 16,状态 1,行 1

未能除去对象 'MovieStar',因为该对象正由一个 FOREIGN KEY 约束引用。

服务器: 消息 3726,级别 16,状态 1,行 2

未能除去对象 'MovieExec',因为该对象正由一个 FOREIGN KEY 约束引用。

服务器: 消息 3726,级别 16,状态 1,行 3

未能除去对象 'studio',因为该对象正由一个 FOREIGN KEY 约束引用。

服务器: 消息 3726,级别 16,状态 1,行 4

未能除去对象 'Movie',因为该对象正由一个 FOREIGN KEY 约束引用。

4、 更改执行顺序为

DROP TABLE StarsIN

DROP TABLE Movie

DROP TABLE studio

DROP TABLE MovieExec

DROP TABLE MovieStar

可解决此问题,结果为The command(s) completed successfully.

六、 思考题:什么是外码?它的作用是什么?

外码即外键码,若关系R的一个属性(或属性组) X,不是R的主键码,而是(/对应)另一个关系S的主键码,则称X为关系R的外键码。他参照第二个关系(可以是同一个关系)的某个(些)属性。他有两方面的含义:1,必须说明第二个关系的被参照属性为该关系的主键码;2,出现在第一个关系的外键码属性中的任何值也必须在第二个关系的相应属性中,也就是存在连接这两个属性或属性集的参照完整性。

从其定义可以看出外码的最重要的作用是保证这两个属性或属性集的参照完整性。 实验三: 用SQL语言建立查询

一、实验目的

学习基本表数据增删改的SQL语句的使用,为以后的实验准备数据。

二、实验内容

在实验二的基础上,向各表中添加数据,并做适当的修改与更新,用SQL语言、工具建立视图,掌握数据库中查询、视图的应用和关系、区别。

三、实验要求

添加足够数据供后面实验使用。

所用的执行的语句如下:

INSERT INTO MovieStar(name,address,gender,birthday)

VALUES('FEIWENLI','WASHINGTON STREET 45','F','19300405')

INSERT INTO MovieStar(name,address,gender,birthday)

VALUES('蒋雯莉','北京朝阳','F','19450405')

INSERT INTO MovieStar(name,address,gender,birthday)

VALUES('王刚','香港九龙','M','19421024')

INSERT INTO MovieStar(name,address,gender,birthday)

VALUES('高曙光','上海中山','M','19500815')

DELETE MovieStar

FROM MovieStar

WHERE name='蒋雯莉'

四、实验步骤

选择实验数据,依次插入表内,之后用DELETE 语句删除表内记录,用DROP TABLE删除表结构,之后重新执行建表和插入语句,使表内保存足够的记录,在建立查询。

五、实验数据及处理

实验中出现的问题和系统信息

1、运行第一句的结果:

(1 行受影响) 成功插入几行会有几行这样的结果出现。

2、运行 DELETE MovieStar

FROM MovieStar

WHERE name='蒋雯莉'

(1 行受影响) 成功插入几行会有几行这样的结果出现。

六、 思考题:DELETE 语句与DROP TABLE语句有何不同?

DROP TABLE删除的是表的定义,即完成该操作后表不复存在,并将表的属性及其内容以及其他的附加属性;而DELETE删除的是表中的记录,该操作不改变表的属性,操作完成后表仍然存在。

实验四: 掌握报表的设计方法

一、实验目的

学习SELECT语句的使用,生成报表。

二、实验内容

在实验三的基础上,熟悉使用SELECT语句,设计相关数据报表。

三、实验要求

1. 设计并实现符合以下要求的SELECT语句:

单表的简单查询(含:group by……having和order by子句)

涉及多表的连接查询:

子查询

带聚合运算的查询

2. 对以上查询设计报表:

至少用高级语言或数据库自带的报表生成工具设计3个报表

四、实验步骤

单表的简单查询(含:group by……having和order by子句),之后是 涉及多表的子查询,带聚合运算的查询,执行语句并记录结果。

五、实验数据及处理

1. 实验过程中出现的问题和系统信息

name address gender birthday

------------------------------ -------------------------------------------------------------------------------------- FEIWENLI WASHINGTON STREET 45 F 1930-04-05 00:00:00.000

高曙光 上海中山 M 1950-08-15 00:00:00.000

蒋雯莉 北京朝阳 F 1945-04-05 00:00:00.000

王刚 香港九龙 M 1942-10-24 00:00:00.000

2. 涉及多表的连接查询:子查询以及带聚合运算的查询;

3. 对以上查询设计报表

六、 思考题:使用聚合运算符应注意什么?

聚合运算是应用于表的指定列,要用于任何可比类型(例如算术值或者字符串)的聚集。使用聚组函数时,可用GROUP BY 子句对查询结果进行分组计算,用HAVING 子句选择满足条件的组,分组的原则:指定列相等的分为一组,只有在GROUP BY 子句中出现的属性,才能以非聚组的形式出现。

 

第二篇:实验报告--参考

附件(四)

深 圳 大 学 实 验 报 告

      课程名称:­       《计算机基础2                             

      实验项目名称                                         

              

学院     建筑与城市规划学院                                         

        

      专业                                   

        

      指导教师隋杰                

           

      报告人           学号          

班级:             

      

      实验时间:                                       

      实验报告提交时间:                         

教务处制

注:1、报告内的项目或内容设置,可根据实际情况加以调整和补充。

    2、教师批改学生实验报告时间应在学生提交实验报告时间后10日内。

相关推荐