实验二 数据库的附加/分离、导入/导出与备份/还原
一、实验目的
1、理解备份的基本概念,掌握各种备份数据库的方法。
2、掌握如何从备份中还原数据库。
3、掌握数据库中各种数据的导入/导出。
4、掌握数据库的附加与分离,理解数据库的附加与分离的作用。
二、实验内容
1、将“实验一”所创建的数据库EDUC,进行数据完整备份。备份名字为备份路径:D:/ EDUC.bak。
2、更改EDUC数据库里的内容,比如,删除一个表,或者在数据库中增加一个新表,或者修改某个表的数据,等等。
增加一个新表,
3、还原EDUC数据库,使它回复到原来的内容。(比较、体会操作1-3之间,数据库中数据的变化。)
4、将EDUC数据库从数据库服务器上分离,并找到EDUC数据库的数据文件和日志文件(创建该数据库时数据文件及日志文件的存放路径),把它们拷到别的路径,比如C盘。(也可以放到自己带的U盘里)
5、将“操作4”中放到C盘的EDUC数据库附加到数据库服务器中。
6、分别把EDUC数据库中的“student”表导出到ACCESS数据库和EXCEL表格中(需先新建ACCESS空数据库和EXCEL空表格)。
7、将ACCESS类型的EDUC数据库中的Class表的数据库导入(追加数据)到SQL Server里的EDUC数据库的Class表中;将student.xls中的数据库导入(追加数据)到SQL Server里的EDUC数据库的student表中。
8、在“实验一”已创建EDUC数据库的基础上,将school数据库中Student,Course,StudentGrade中的数据分别导入EDUC的Student,Course,StudentGrade三个表中,并将school数据库中的Class,Deparment,Teacher, CourseTeacher表及数据也导入到EDUC数据库中。导入数据时,注意两个数据库中对应的字段名称、类型、长度等的差异,并在导入时作出相应处理。
三、实验要求
1、完成对数据库的附加分离、备份还原与导入\导出。
2、完成“实验内容”中的步骤6后,从“student”表中导出到ACCESS和EXCEL表中的数据与原来在SQL SERVER里“student”中的数据有何不同?从数据类型、数据长度、数据内容、约束等方面进行阐述。
答:
一、数据类型
SQL SERVER:能够准确存储并区分“student”表中的字段,如学号(字符类型)、姓名(字符类型)、性别(字符类型)、出生日期(日期时间类型)这些字段的数据类型。
ACCESS:在导入SQL SERVER的“student”表数据时,ACCESS将某些数据类型转换为最接近的自身支持的数据类型。例如将SQL SERVER中的整数类型转换为ACCESS中的长整型或整型。
EXCEL:EXCEL会将所有数据视为文本或数字(取决于单元格的格式设置)。
二、数据长度
SQL SERVER:在“student”表中,字段的长度是根据实际需求设置的,以确保数据的完整性和准确性。
ACCESS:如果SQL SERVER中的字段长度超过了ACCESS中对应数据类型的最大长度,ACCESS会截断数据或显示错误。
EXCEL:在导入数据时,会因格式设置不当而导致数据显示异常(如日期时间格式的数据被显示为文本)。
三、数据内容的表现形式
SQL SERVER:能够准确存储和显示数据内容,包括特殊字符、空格和换行符等。
ACCESS:ACCESS在导入数据时会改变数据内容的表现形式。例如,日期时间类型的数据会被转换为ACCESS默认的日期时间格式。
EXCEL:EXCEL在导入数据时也会改变数据内容的表现形式。例如日期时间类型的数据。
四、约束条件
SQL SERVER:学号字段设置为主键约束和唯一约束,以确保每个学生都有一个唯一的学号。
ACCESS:在导入数据时,ACCESS会忽略或转换SQL SERVER中的某些约束条件。例如,如果SQL SERVER中的字段设置了检查约束(如性别字段只能为“男”或“女”),ACCESS无法识别或执行该约束。
EXCEL:在将SQL SERVER的“student”表数据导入EXCEL后,原有的约束条件将不再有效。用户需要依靠EXCEL的功能来手动检查数据的完整性和一致性。
3、完成“实验内容”中的步骤8过程中,数据能否成功导入?碰到哪些问题?如何解决?成功后,EDUC数据库有何变化?
答:
数据可以成功导入。
Student,Course,StudentGrade中的数据被更新,新增Class,Deparment,Teacher, CourseTeacher表。
四、实验小结
1. 什么情况下使用数据库的备份和还原?什么情况下使用数据库的数据导入和导出?为什么?
答:备份和还原的应用场景:在服务器进行数据传输、数据存储和数据交换有可能产生数据故障。比如发生意外停机或存储介质损坏。如果没有采取数据备份和数据恢复手段与措施,就会导致数据的丢失。此外,备份还可以用于数据迁移和升级,确保数据的无缝迁移和升级过程中的数据安全。
导入和导出的应用场景:数据库的导入与导出允许数据在不同系统、实例和工具之间流动,从而支持各种业务需求。通过数据导入和导出,可以确保数据的一致性和完整性,也提供了额外的数据保护手段。此外,它们还支持数据分析和报告等高级功能,为业务决策提供更深入的数据洞察。
2.什么时候需要使用数据库的附加和分离?“附加”操作和“分离”操作的关系是什么?
数据库的附加:如果某个数据库长时间不用,或者数据库日志占用了很大空间时,通过分离数据库的方式来删除以前的日志,节省了空间。
数据库的分离:在服务器上新安装数据库软件后,需要将已有的数据库附加到新的数据库实例中。当数据库文件被移动到不同的存储位置时,需要进行附加操作以重新建立与数据库文件的连接。
关系:数据库的附加是分离操作的逆操作。数据库分离是指将数据库的数据文件(MDF)和日志文件(LDF)从SQL Server实例中分离出来。而附加操作则是将分离的数据库文件重新加载到SQL Server实例中。
3.在后续的实验过程中我们经常需要用到数据库的附加和分离,因为实验需要数据,每次实验前重建数据是不现实的。所以保存老师给的实验数据非常重要。实验操作过程中是否遇到了操作不成功的情况?如何解决的?您的收获有哪些?
问题:附加数据库时报错:“有关详细信息,请单击“消息”列中的超链接。”
解决方法:这是由于权限的问题,找到数据库所在文件或文件件:点击右键,选中属性,点击安全 → 编辑 → 添加 → 高级 → 立即查找 →选中 Everyone → 勾选上完全控制。
五、作业
1、设有一个SPJ数据库,包含S、P、J、SPJ4个关系模式:
S(SNO,SNAME,STATUS.CITY)、P(PNO,PNAME,COLOR,WEIGHT)
J(JNO,JNAME,CITY)、SPJ(SNO,PNO,JNO,QTY)
供应商S由供应商代码SNO、供应商姓名SNAME、供应商状态STATUS、供应商所在城市CITY组成;
零件表P由零件代码PNO、零件名PNAME、零件颜色COLOR零件重量WEIGHT组成;
工程项目表J由工程项目代码JNO、工程项目名JNAME、工程项目坐在城市CITY组成;
SPJ表由供应商代码SNO、零件号代码PNO、工程号代码JNO、供应数量QTY组成,表示某供应商供应某种零件给某工程项目的数量为QTY。具体表内容如教材P70面6题所示。请用关系代数完成下列查询:
1)求供应工程J1零件P1的供应商号码SNO;
2)求供应工程J1零件为红色的供应商号码SNO;
3)求没有使用天津供应商生产的红色零件的工程号JNO;
4)求至少使用了供应商S1所供应的全部零件的工程号JNO;
5)求使用了红色零件带没有使用蓝色零件的工程号;
6)求供应了蓝色零件工程项目在北京的供应商的姓名和所在城市。
7)检索至少使用了两种零件的工程号。
8)检索J1号工程不使用的零件号。
2、试述等值连接与自然连接的区别和联系。
答:
(1)等值连接:从关系R和S的笛卡尔积中选取A,B属性值相等的元组;
(2)自然连接:是特殊的等值连接,R和S具有相同的属性组B,在结果中去掉重复的属性列。
连接运算符是“=”的连接运算称为等值连接。它是从关系R与S的广义笛卡尔积中选取A,B属性值相等的那些元组。
自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。
3、关系代数的基本运算有哪些?
答:
并、差、笛卡尔积、投影和选择5种运算为基本的运算。其他3种运算,即交、连接和除,均可以用这5种基本运算来表达。
4、为什么关系中的元组没有先后顺序?
答:
关系是元组的集合,集合中的元素是没有顺序的,所以关系中元组的顺序无关紧要。
5、为什么关系中不允许有重复元组?
答:
因为每个关系模式都有一个主键,在关系中主键是唯一存在的。假若有重复元组,则其主键相等,那么起不了唯一标识的作用。所以关系中不允许有重复元组。