数据库系统原理实验一参考题答案.docx
- 文档编号:9931063
- 上传时间:2023-05-22
- 格式:DOCX
- 页数:31
- 大小:199.27KB
数据库系统原理实验一参考题答案.docx
《数据库系统原理实验一参考题答案.docx》由会员分享,可在线阅读,更多相关《数据库系统原理实验一参考题答案.docx(31页珍藏版)》请在冰点文库上搜索。
数据库系统原理实验一参考题答案
姓名:
专业:
班级:
学号:
科目:
数据库系统原理
实验日期:
实验题目:
实验1SQLSERVER的安装及使用,数据库的建立
【实验目的】
安装并熟悉SQLSERVER2008环境,通过实验达到能熟练使用“管理器”及“命令窗口”两种方法,建立数据库及数据库表(表结构和表内容)。
重点注意数据类型及完整性约束(要求作验证)。
使用的SQL命令:
CREATEDATABASE,USE,CREATETABLE,INSERT等。
【实验内容】
1、课本第一章的例题(学生数据库(Students_Mis_2018):
4个数据表)
(1)建立数据库(CREATEDATABASE):
Students_Mis_2018(存储文件存放在自己建立的文件夹内)
(2)调用(USE)数据库:
Students_Mis_2018
(3)分别建立4个数据表的表结构(CREATETABLE):
系(Depts),学生(Students),课程(Courses),选课(Reports)
(4)插入表数据(INSERT)
(5)数据类型及完整性约束验证(难点是主外键约束)
回答以下几个问题:
(A)若先建立学生(Students)表,后建立系(Depts)表,行吗?
为什么?
(B)若先建立选课(Reports)表,后建立课程(Courses)表,行吗?
为什么?
(C)对INSERT,自己举几个违反约束条件(数据类型、主键约束、非空约束、外键约束、CHECK约束)的例子,并说明理由。
(6)分离数据库、复制数据库存储文件、附加数据库
(7)将调试好的正确命令代码及数据库存储文件保存到自己的备份盘(方便下次实验使用)
2、课本中的习题1.3(零件供应数据库(SPJ_Mis__2018):
4个数据表)
(说明:
要求同上,各表模拟数据可参照课本P110)
【实验过程】
1、
(1)建立数据库(CREATEDATABASE):
Students_Mis_2018
USEmaster
GO
CREATEDATABASEStudents_Mis_2018
ON
(
NAME=Students_Data,
FILENAME='E:
\SQL_DATEBASE\Students_Mis_data.mdf',
SIZE=10,
MAXSIZE=50,
FILEGROWTH=5
)
LOGON
(
NAME='Students_Log',
FILENAME='E:
\SQL_DATEBASE\Students_Mis_log.ldf',
SIZE=5MB,
MAXSIZE=25MB,
FILEGROWTH=5MB
)
GO
(2)调用(USE)数据库:
Students_Mis_2018
useStudents_Mis_2018
GO
(3)分别建立4个数据表的表结构(CREATETABLE):
系(Depts),学生(Students),课程(Courses),选课(Reports)
CREATETABLEDepts
(
DnoCHAR(5)PRIMARYKEY,
DnameCHAR(20)NOTNULL
)
GO
CREATETABLEStudents
(
SnoCHAR(5)PRIMARYKEY,
SnameCHAR(20)NOTNULL,
SsexCHAR
(2),
SageINT,
DnoCHAR(5),
CONSTRAINTFK_DnoFOREIGNKEY(Dno)REFERENCESDepts
)
GO
CREATETABLECourses
(
CnoCHAR(6)PRIMARYKEY,
CnameCHAR(20),
Pre_CnoCHAR(6),
CreditsINT
)
GO
CREATETABLEReports
(
SnoCHAR(5),
CnoCHAR(6),
GradeINTCHECK(Grade>=0ANDGrade<=100),
PRIMARYKEY(Sno,Cno),
CONSTRAINTStudent_ReportFOREIGNKEY(Sno)REFERENCESStudents,
CONSTRAINTReport_CourseFOREIGNKEY(Cno)REFERENCESCourses
)
GO
(4)分别对4个表插入表数据(INSERT)
INSERT
INTOdepts
VALUES('D01','自动化')
INSERT
INTOdepts
VALUES('D02','计算机')
INSERT
INTOdepts
VALUES('D03','数学')
INSERT
INTOdepts
VALUES('D04','通信')
INSERT
INTOdepts
VALUES('D05','电子')
INSERT
INTOdepts
VALUES('D06','化学')
SELECT*
FROMDepts
INSERT
INTOStudents
VALUES('S01','王建平','男',21,'D01')
INSERT
INTOStudents
VALUES('S02','刘华','女',19,'D01')
INSERT
INTOStudents
VALUES('S03','范林军','女',18,'D02')
INSERT
INTOStudents
VALUES('S04','李伟','男',19,'D03')
INSERT
INTOStudents
VALUES('S05','黄河','男',18,'D03')
INSERT
INTOStudents
VALUES('S06','长江','男',20,'D03')
SELECT*
FROMStudents
INSERT
INTOCourses
VALUES('C01','英语','',4)
INSERT
INTOCourses
VALUES('C02','数据结构','C05',2)
INSERT
INTOCourses
VALUES('C03','数据库','C02',2)
INSERT
INTOCourses
VALUES('C04','DB-设计','C03',3)
INSERT
INTOCourses
VALUES('C05','C++','',3)
INSERT
INTOCourses
VALUES('C06','网络原理','C07',3)
INSERT
INTOCourses
VALUES('C07','操作系统','C05',3)
SELECT*
FROMCourses
INSERT
INTOReports
VALUES('S01','C01','92')
INSERT
INTOReports
VALUES('S01','C03','84')
INSERT
INTOReports
VALUES('S02','C01','90')
INSERT
INTOReports
VALUES('S02','C02','94')
INSERT
INTOReports
VALUES('S02','C03','82')
INSERT
INTOReports
VALUES('S03','C01','72')
INSERT
INTOReports
VALUES('S03','C02','89')
INSERT
INTOReports
VALUES('S04','C03','75')
SELECT*
FROMReports
(5)数据类型及完整性约束验证:
(A)若先建立学生(Students)表,后建立系(Depts)表,行吗?
为什么?
答:
不行,对Students的Dno作外键约束,必须引用到Depts表的主键Dno。
必须先建立系(Depts)表,后才能建立学生(Students)表。
(B)若先建立选课(Reports)表,后建立课程(Courses)表,行吗?
为什么?
答:
不行,Reports的Cno作外键约束外键,必须引用到Courses表的主键Cno,应该先建课程表,然后再才能对表Report的Cno作外键约束。
(C)对INSERT,自己举几个违反约束条件(数据类型、主键约束、非空约束、外键约束、CHECK约束)的例子,并说明理由。
①数据类型
INSERT
INTOStudent(Sno,Sname,Ssex,Sage,Dno)
VALUES('S11','张三,'男','二十','D01')
Sage的数据类型是INT,INSERT失败
②主键不能为空或重复:
INSERTINTOdeptsVALUES(NULL,'自动化')
INSERT失败,主键Dno不能为空。
INSERTINTOdeptsVALUES('D03','数学'),('D03','历史')
INSERT失败,主键Dno不能重复。
③非空约束
如执行以下命令会违反非空约束。
因为Sname属性是非空的。
INSERT
INTOStudent(Sno,Ssex,Sage,Dno)
VALUES('S01','男','21','D01')
不能将值NULL插入列'Sname',因为Sname属性是非空约束。
INSERT失败。
④外键约束
INSERT
INTOStudent(Sno,Sname,Ssex,Sage,Dno)
VALUES('S07','李四','男',20,'D11')
Student外键Dno受Depts的主键Dno的约束,Depts中的Dno没有’D11’,不能在Student表插入’D11’
⑤CHECK约束
INSERT
INTOReports
VALUES('S01','C02',120')
不能将值120插入列'Grade'违反CHECK(Grade>=0ANDGrade<=100),INSERT失败
上例中的第一行代码的主键值为空,第二行代码的主键值重复,故插入操作失败。
(6)分离数据库、复制数据库存储文件、附加数据库
(7)将调试好的正确命令代码及数据库存储文件保存到自己的备份盘(方便下次实验使用)
2、课本中的习题1.3(零件供应数据库(SPJ_Mis__2018):
4个数据表)
(1)建立零件供应数据库(SPJ_Mis__2018)
USEmaster
GO
CREATEDATABASESPJ_Mis_2018
ON
(
NAME=student_Data,
FILENAME='E:
\SQL_DATABASE\SPJ_Mis_data.mdf',
SIZE=10,
MAXSIZE=50,
FILEGROWTH=5)
LOGON
(NAME='student_Log',
FILENAME='E:
\SQL_DATABASE\SPJ_Mis_log.ldf',
SIZE=5MB,
MAXSIZE=25MB,
FILEGROWTH=5MB
)
GO
(2)调用数据库
useSPJ_Mis_2018
GO
(3)分别建立4个数据表的表结构
CREATETABLES
(
SnoCHAR(5)PRIMARYKEY,
SnameCHAR(20)NOTNULL,
StatusINT,
SCityCHAR(20)
)
GO
CREATETABLEP
(
PnoCHAR(6)PRIMARYKEY,
PnameCHAR(20),
ColorCHAR(9),
WeightFLOAT
)
GO
CREATETABLEJ
(
JnoCHAR(5)PRIMARYKEY,
JnameCHAR(20),
JCityCHAR(20)
)
GO
CREATETABLESPJ
(
SnoCHAR(5),
PnoCHAR(6),
JnoCHAR(5),
QTYINTCHECK(QTY>=0),
PRIMARYKEY(Sno,Pno,Jno),
CONSTRAINTS_SPJFOREIGNKEY(Sno)REFERENCESS,
CONSTRAINTP_SPJFOREIGNKEY(Pno)REFERENCESP,
CONSTRAINTJ_SPJFOREIGNKEY(Jno)REFERENCESJ
)
GO
(4)插入数据
INSERT
INTOS
VALUES('S1','利群',30,'广州'),
('S2','同方',20,'杭州'),
('S3','天远',60,'北京'),
('S4','精诚',10,'上海'),
('S5','华缘',80,'重庆'),
('S6','弘治',50,'太原')
SELECT*
FROMS
INSERT
INTOP
VALUES('P1','钉子','绿',34),
('P2','螺丝','蓝',25),
('P3','螺母','橙',12),
('P4','螺栓','紫',27),
('P5','螺钉','红',53),
('P6','齿轮','绿',17),
('P7','传送带','红',28)
SELECT*
FROMP
INSERT
INTOJ
VALUES('J1','一建','济南'),
('J2','三汽','广州'),
('J3','拉链厂','杭州'),
('J4','无线电厂','北京'),
('J5','机床厂','上海'),
('J6','螺钉厂','重庆'),
('J7','机械厂','天津')
SELECT*
FROMJ
INSERT
INTOSPJ
VALUES('S1','P1','j3',340),
('S1','P1','j2',250),
('S1','P2','j5',120),
('S1','P2','j6',270),
('S1','P2','j7',530)
INSERT
INTOSPJ
VALUES('S2','P2','j1',170),
('S2','P3','j2',280),
('S2','P4','j3',100),
('S2','P4','j4',120),
('S2','P5','j7',310),
('S2','P5','j5',560),
('S2','P6','j6',200)
INSERT
INTOSPJ
VALUES('S3','P7','j1',300),
('S3','P1','j1',400),
('S4','P3','j2',410),
('S4','P4','j3',330),
('S4','P4','j4',650),
('S4','P5','j4',150)
INSERT
INTOSPJ
VALUES('S5','P7','j5',230),
('S5','P7','j7',280),
('S6','P2','j2',350),
('S6','P2','j3',420),
('S6','P6','j1',310)
SELECT*
FROMSPJ
【实验结果及分析】
【教师评语和成绩】
成绩:
指导教师:
日期:
第1章绪论
1.试述数据、数据库、数据库系统、数据库管理系统的概念。
答:
(l)数据(Data):
描述事物的符号记录称为数据。
数据的种类有数字、文字、图形、图像、声音、正文等。
数据与其语义是不可分的。
解析在现代计算机系统中数据的概念是广义的。
早期的计算机系统主要用于科学计算,处理的数据是整数、实数、浮点数等传统数学中的数据。
现代计算机能存储和处理的对象十分广泛,表示这些对象的数据也越来越复杂。
数据与其语义是不可分的。
500这个数字可以表示一件物品的价格是500元,也可以表示一个学术会议参加的人数有500人,还可以表示一袋奶粉重500克。
(2)数据库(DataBase,简称DB):
数据库是长期储存在计算机内的、有组织的、可共享的数据集合。
数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
(3)数据库系统(DataBas。
Sytem,简称DBS):
数据库系统是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。
解析数据库系统和数据库是两个概念。
数据库系统是一个人一机系统,数据库是数据库系统的一个组成部分。
但是在日常工作中人们常常把数据库系统简称为数据库。
希望读者能够从人们讲话或文章的上下文中区分“数据库系统”和“数据库”,不要引起混淆。
(4)数据库管理系统(DataBaseManagementsytem,简称DBMs):
数据库管理系统是位于用户与操作系统之间的一层数据管理软件,用于科学地组织和存储数据、高效地获取和维护数据。
DBMS的主要功能包括数据定义功能、数据操纵功能、数据库的运行管理功能、数据库的建立和维护功能。
解析DBMS是一个大型的复杂的软件系统,是计算机中的基础软件。
目前,专门研制DBMS的厂商及其研制的DBMS产品很多。
著名的有美国IBM公司的DBZ关系数据库管理系统和IMS层次数据库管理系统、美国Oracle公司的orade关系数据库管理系统、s油ase公司的s油ase关系数据库管理系统、美国微软公司的SQLServe,关系数据库管理系统等。
2.使用数据库系统有什么好处?
答:
使用数据库系统的好处是由数据库管理系统的特点或优点决定的。
使用数据库系统的好处很多,例如,可以大大提高应用开发的效率,方便用户的使用,减轻数据库系统管理人员维护的负担,等等。
使用数据库系统可以大大提高应用开发的效率。
因为在数据库系统中应用程序不必考虑数据的定义、存储和数据存取的具体路径,这些工作都由DBMS来完成。
用一个通俗的比喻,使用了DBMS就如有了一个好参谋、好助手,许多具体的技术工作都由这个助手来完成。
开发人员就可以专注于应用逻辑的设计,而不必为数据管理的许许多多复杂的细节操心。
还有,当应用逻辑改变,数据的逻辑结构也需要改变时,由于数据库系统提供了数据与程序之间的独立性,数据逻辑结构的改变是DBA的责任,开发人员不必修改应用程序,或者只需要修改很少的应用程序,从而既简化了应用程序的编制,又大大减少了应用程序的维护和修改。
使用数据库系统可以减轻数据库系统管理人员维护系统的负担。
因为DBMS在数据库建立、运用和维护时对数据库进行统一的管理和控制,包括数据的完整性、安全性、多用户并发控制、故障恢复等,都由DBMS执行。
总之,使用数据库系统的优点是很多的,既便于数据的集中管理,控制数据冗余,提高数据的利用率和一致性,又有利于应用程序的开发和维护。
读者可以在自己今后的工作中结合具体应用,认真加以体会和总结。
3.试述文件系统与数据库系统的区别和联系。
答:
文件系统与数据库系统的区别是:
文件系统面向某一应用程序,共享性差,冗余度大,数据独立性差,记录内有结构,整体无结构,由应用程序自己控制。
数据库系统面向现实世界,共享性高,冗余度小,具有较高的物理独立性和一定的逻辑独立性,整体结构化,用数据模型描述,由数据库管理系统提供数据的安全性、完整性、并发控制和恢复能力。
文件系统与数据库系统的联系是:
文件系统与数据库系统都是计算机系统中管理数据的软件。
解析文件系统是操作系统的重要组成部分;而DBMS是独立于操作系统的软件。
但是DBMS是在操作系统的基础上实现的;数据库中数据的组织和存储是通过操作系统中的文件系统来实现的。
5.试述数据库系统的特点。
答:
数据库系统的主要特点有:
(l)数据结构化数据库系统实现整体数据的结构化,这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。
解析注意这里的“整体’夕两个字。
在数据库系统中,数据不再针对某一个应用,而是面向全组织,具有整体的结构化。
不仅数据是结构化的,而且数据的存取单位即一次可以存取数据的大小也很灵活,可以小到某一个数据项(如一个学生的姓名),大到一组记录(成千上万个学生记录)。
而在文件系统中,数据的存取单位只有一个:
记录,如一个学生的完整记录。
(2)数据的共享性高,冗余度低,易扩充数据库的数据不再面向某个应用而是面向整个系统,因此可以被多个用户、多个应用以多种不同的语言共享使用。
由于数据面向整个系统,是有结构的数据,不仅可以被多个应用共享使用,而且容易增加新的应用,这就使得数据库系统弹性大,易于扩充。
解析数据共享可以大大减少数据冗余,节约存储空间,同时还能够避免数据之间的不相容性与不一致性。
所谓“数据面向某个应用”是指数据结构是针对某个应用设计的,只被这个应用程序或应用系统使用,可以说数据是某个应用的“私有资源”。
所谓“弹性大”是指系统容易扩充也容易收缩,即应用增加或减少时不必修改整个数据库的结构,只需做很少的改动。
可以取整体数据的各种子集用于不同的应用系统,当应用需求改变或增加时,只要重新选取不同的子集或加上一部分数据,便可以满足新的需求。
(3)数据独立性高数据独立性包括数据的物理独立性和数据的逻辑独立性。
数据库管理系统的模式结构和二级映像功能保证了数据库中的数据具有很高的物理独立性和逻辑独立性。
(4)数据由DBMS统一管理和控制数据库的共享是并发的共享,即多个用户可以同时存取数据库中的数据甚至可以同时存取数据库中同一个数据。
为此,DBMS必须提供统一的数据控制功能,包括数据的安全性保护、数据的完整性检查、并发控制和数据库恢复。
解析DBMS数据控制功能包括四个方面:
数据的安全性保护:
保护数据以防止不合法的使用造成的数据的泄密和破坏;数据的完整性检查:
将数据控制在有效的范围内,或保证数据之间满足一定的关系;并发控制:
对多用户的并发操作加以控制和协调,保证并发操作的正确性;数据库恢复:
当计算机系统发生硬件故障、软件故障,或者由于操作员的失误以及故意的破坏影响数据库中数据的正确性,甚至造成数据库部分或全部数据的丢失时,能将数据库从错误状态恢复到某一已知的正确状态(亦称为完整状态或一致状态)。
下面可以得到“什么是数据库”的一个定义:
数据库是长期存储在计算机内有组织的大量的共享的数据集合,它可以供各种用户共享,具有最小冗余度和较高的数据独立性。
DBMS在数据库建立、运用和维护时对数据库进行统一控制,以保证数据的完整性、安全性,并
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 系统 原理 实验 参考 答案