DB1_2010302521_刘恋

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《数据库系统概论》实验报告
题目:实验一
数据库/表的基本操作和表级约束
姓名 班级
学号
日期
刘恋
10011006 2010302521
2012.9.25 一. 实验内容、步骤以及结果:
1. 利用图形用户界面创建,备份,删除和还原数据库和数据表 (30分,每小题5分)
● 数据库和表的要求
(1) 依据课本P127(第四版教材,下同)的第三题,创建一个名为SPJ 的数据
库,初始大小为 10MB ,最大为50MB ,数据库自动增长,增长方式是按5%比例增长;日志文件初始为2MB ,最大可增长到5MB ,按1MB 增长。

数据库的逻辑文件名和物理文件名均采用默认值。

(2) 数据库
SPJ 包含供应商表,零件表,工程项目表,供应情况表。

具体每张表
的定义以及数据参看课本P74页的第五题。

● 完成以下具体操作: (1)
创建的SPJ 数据库。

(2) 在SPJ 数据库中分别创建上述的四张表(只输入一部分数据示意即可)。

(3) 备份SPJ 数据库。

(4) 删除已经创建的工程项目表(J 表)。

(5) 删除SPJ 数据库。

(6) 还原刚才删除的SPJ 数据库。

实验具体步骤:
(1)创建SPJ 数据库:右击数据库-->新建数据库-->填写相应参数-->点击确定。

如下图
(2):创建表:单击数据库SPJ-->右击‘表’-->新建表-->填写参数-->确定。

如下图
(3)备份数据库:右击数据库SPJ-->任务-->备份-->填参数-->确定。

如下图
(4)删除表:单击数据库SPJ--》单击表--》右击J--》选择删除。

如下图
(5)删除数据库:右击数据库SPJ--》选择删除命令。

如下图
(6)还原数据库。

右击数据库--》选择还原数据库命令--》填写参数--》确定。

如下图
2.利用SQL语言创建和删除数据库和数据表(30分,每小题5分)
数据库和表的要求
(1)创建用于学生信息的数据库,数据库名为Student,初始大小为20MB,最大为100MB,数据库自动增长,增长方式是按10M兆字节增长;日志文件初
始为2MB,最大可增长到5MB,按1MB增长。

数据库的逻辑文件名和物理文
件名,日志文件名请自定义。

(2)数据库Student包含学生信息,课程信息和学生选课的信息。

包含下列3个表:S:学生基本信息表;C:课程基本信息表;SC:学生选课信息表。

各表的结
构以及数据如下所示:
表 2.1 学生基本信息表(表名:S)
sno sname ssex sbirth Sdept
95001 李勇男1986/1/1 CS
95002 刘晨女1985/2/1 IS
95003 王敏女1886/10/4 MA
95004 张立男1985/6/8 IS
表 2.2 课程基本信息表(表名:C)
cno cname cpno Ccredit
1 数据库
2 4
2 数学 3
3 信息系统 1 4
4 操作系统
5 3
5 数据结构
6 3
6 C语言 2
表 2.3 学生选课信息表(表名:SC)
sno cno grade
95001 1 92
95001 2 85
95001 3 87
95002 2 78
95002 3 84
完成以下实际操作:
(1)用T-SQL语句创建数据库Student。

(2)用T-SQL语句创建上述的三张表,各个字段的数据类型请自己确定,每张表只要有主键约束即可,不要其他约束。

不用输入数据,只要表的结构就
可以。

(3)用T-SQL语句备份数据库Student。

(4)用T-SQL语句删除创建的表。

(5)用T-SQL语句删除创建的数据库。

(6)用T-SQL语句还原刚才备份的数据库Student。

具体步骤如下:
(1):创建数据库:点击新建查询--》输入SQL命令--》执行。

SQLQuery1.sql CREATE DATABASE Student
ON
(
NAME=Student_data,
FILENAME='G:\数据库\DB1\Student_data.mdf',
SIZE= 20 MB,
MAXSIZE= 100 MB,
FILEGROWTH= 10 MB
)
LOG ON
(
NAME=Student_log,
FILENAME='G:\数据库\DB1\Student_log.ldf',
SIZE= 2 MB,
MAXSIZE= 5 MB,
FILEGROWTH= 1 MB
)
GO
(2)创建表:点击新建查询--》输入SQL命令--》执行。

SQLQuery2.sql、SQLQuery3.sql SQLQuery4.sql
CREATE TABLE S(sno CHAR(5),
sname CHAR(10),
ssex CHAR(5),
sbirth CHAR(10),
sdept CHAR(6)
)
CREATE TABLE C(cno CHAR(5),
cname CHAR(5),
cpno C HAR(5),
ccredit CHAR(5)
)
CREATE TABLE SC(sno CHAR(5),
cno C HAR(5),
grade char(10)
)
(3)备份数据库:点击新建查询--》输入SQL命令--》执行。

SQLQuery5.sql
USE Student
GO
BACKUP DATABASE Student
TO DISK='G:\数据库\DB1\备份数据库\backup_Student'
WITH INIT
GO
(4)删除表:点击新建查询--》输入SQL命令--》执行。

SQLQuery6.sql、SQLQuery7.sql、SQLQuery8.sql
DROP TABLE S
GO
DROP TABLE C
GO
DROP TABLE S C
GO
(5)删除数据库:点击新建查询--》输入SQL命令--》执行。

SQLQuery9.sql
USE master
GO
DROP DATABASE Student
GO
(6)还原数据库:点击新建查询--》输入SQL命令--》执行。

SQLQuery10.sql RESTORE DATABASE Student
FROM DISK='G:\数据库\DB1\备份数据库\backup_Student'
WITH REPLACE
GO
3.利用图形用户界面对上题中创建的Student库的S表中,增加以下的约束和索引。

(25
分,每小题5分)
(1)将学号(sno)设置为主键,主键名为pk_sno。

(2)为性别(ssex)添加默认约束(默认值),其值为“男”。

(3)为姓名(sname)添加唯一约束(唯一键),约束名为uk_sname。

(4)为出生日期(sbirth)添加CHECK约束,约束名为ck_sbirth,其检查条件为:
出生日期大于1986年1月1日。

为sbirth创建一个降序排列的UNIQUE索引,索引名为IX_Sbirth。

具体步骤如下:
(1)设主键:单击数据库Student--》单击表--》单击S--》右击sno--》选择‘修改’命令--》对话框中右击sno--》选择‘设置主键’--》修改主键名为‘pk_sno’--》保存。

如图:
(2)设默认约束:单击数据库Student--》单击表--》单击S--》右击sno--》选择‘修改’命令--》单击cno-->在默认值栏输入‘男’--》保存。

下图
(3)唯一约束。

单击数据库Student--》单击表--》单击S--》右击sname--》选择‘修改’命令--》右击sname-->选择‘索引和键’命令--》打开‘索引和键’框图--》添加--》是否唯一改为‘是’--》--》名称改为‘us_sname’--》关闭。

(4)(4)设CHECK约束:单击数据库Student--》单击表--》单击S--》右击sbirth--》选择‘修改’命令--》右击sbirth-->选择‘设置CHECK’命令--》打开‘CHECK约束’框图--》添加--》设置检查条件sbirth>1986/1/1--》名称改为‘ch_sbirth’--》关闭。

(5)降序的UNIQUE索引。

单击数据库Student--》单击表--》单击S--》右击sbirth--》选择‘修改’命令--》右击sbirth-->选择‘索引和键’命令--》打开‘索引和键’框图--》添加--》sbirth--》降序’--》关闭。

4、用SQL语言为Student数据库中的SC表添加外键约束,要求如下:将sno,cno设
置为外键,其引用表为分别是S表和C表,外键名称分别为fk_sno,fk_cno。

(2分)
具体步骤:点击新建查询--》输入SQL命令--》执行。

SQLQuery11.sql、
USE Student
GO
ALTER TABLE SC WITH NOCHECK
ADD CONSTRAINT fk_sno FOREIGN KEY(sno)REFERENCES S(pk_sno) ON DELETE CASCADE
GO
SQLQuery12.sql
USE Student
GO
ALTER TABLE SC WITH NOCHECK
ADD CONSTRAINT fk_cno FOREIGN KEY(cno)REFERENCES C(pk_cno) ON DELETE CASCADE
GO
5、利用图形用户界面根据上面的外键定义画出由S,C,SC表构成的数据库关系图。

(3
分)
单击数据库--》右击Student-->选择’新建数据库关系图‘--》添加表’S/C/SC'--》完成。

6、用SQL语言删除S表中所创建的约束或者索引(第3小题中的(1)-(5))。

(10分,每小题2分)
具体步骤:
点击新建查询--》输入SQL命令--》执行。

SQLQuery13.sql
USE Student
GO
ALTER TABLE SC
DROP CONSTRAINT fk_cno
GO
SQLQuery14.sql
USE Student
GO
ALTER TABLE SC
DROP CONSTRAINT fk_sno
GO
SQLQuery15.sql
USE Student
GO
ALTER TABLE S
DROP CONSTRAINT DF_S_ssex
GO
SQLQuery16.sql
USE Student
GO
ALTER TABLE S
DROP CONSTRAINT ck_sbirth
GO
SQLQuery17.sql
USE Student
GO
ALTER TABLE S
DROP CONSTRAINT PK_S
GO
SQLQuery18.sql
USE Student
GO
ALTER TABLE C
DROP CONSTRAINT PK_C
GO
二、实验中出现的问题以及解决方案
1、约束和键无法保存:通过改变‘工具’--’选项‘--‘设计’--取消‘阻止保存要求设置更改’来改变。

通过这次的实验,让我初步了解了SQL2008的运行以及初步的SQL语言的应用,我感到学到了不少的东西,不过好友很多的东西要深入的学习。

批阅者:
批阅日期:
实验成绩:
批注:。

相关文档
最新文档