实验二 数据库的附加/分离、导入/导出与备份/还原
实验二 数据库的附加/分离、导入/导出与备份/还原
一、实验目的
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、为什么关系中不允许有重复元组?
答:
因为每个关系模式都有一个主键,在关系中主键是唯一存在的。假若有重复元组,则其主键相等,那么起不了唯一标识的作用。所以关系中不允许有重复元组。
相关文章:
实验二 数据库的附加/分离、导入/导出与备份/还原
实验二 数据库的附加/分离、导入/导出与备份/还原 一、实验目的 1、理解备份的基本概念,掌握各种备份数据库的方法。 2、掌握如何从备份中还原数据库。 3、掌握数据库中各种数据的导入/导出。 4、掌握数据库的附加与分离,理解数据库的附加与分离的作用。…...
RubyFPV开源代码之系统简介
RubyFPV开源代码之系统简介 1. 源由2. 工程架构3. 特性介绍(软件)3.1 特性亮点3.2 数字优势3.3 使用功能 4. DEMO推荐(硬件)4.1 天空端4.2 地面端4.3 按键硬件Raspberry PiRadxa 3W/E/C 5. 软件设计6. 参考资料 1. 源由 RubyFPV以…...
php代码审计2 piwigo CMS in_array()函数漏洞
php代码审计2 piwigo CMS in_array()函数漏洞 一、目的 本次学习目的是了解in_array()函数和对项目piwigo中关于in_array()函数存在漏洞的一个审计并利用漏洞获得管理员帐号。 二、in_array函数学习 in_array() 函数搜索数组中是否存在指定的值。 in_array($search,$array…...
第25章 测试驱动开发模式深度剖析
写在前面 这本书是我们老板推荐过的,我在《价值心法》的推荐书单里也看到了它。用了一段时间 Cursor 软件后,我突然思考,对于测试开发工程师来说,什么才更有价值呢?如何让 AI 工具更好地辅助自己写代码,或许…...
PHP校园助手系统小程序
🔑 校园助手系统 —— 智慧校园生活 📱一款基于ThinkPHPUniapp框架深度定制的校园助手系统,犹如一把智慧之钥,专为校园团队精心打造,解锁智慧校园生活的无限精彩。它独家适配微信小程序,无需繁琐的下载与安…...
转换算术表达式
文章目录 构造二叉树表示的算术表达式:按先序次序输入二叉树中结点的值(操作数及运算符均以一位字符表示,注意转换), #字符表示空树,如上图的算术表达式 输入2##*3##4## 输入格式 第一行输入表示要计算的算术表达式的二叉树结点的…...
【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】1.2 ndarray解剖课:多维数组的底层实现
1.2 《ndarray解剖课:多维数组的底层实现》 内容介绍 NumPy 的 ndarray 是其核心数据结构,用于高效处理多维数组。在这篇文章中,我们将深入解析 ndarray 的底层实现,探讨其内存结构、维度、数据类型、步长等关键概念,…...
计算机网络 (61)移动IP
前言 移动IP(Mobile IP)是由Internet工程任务小组(Internet Engineering Task Force,IETF)提出的一个协议,旨在解决移动设备在不同网络间切换时的通信问题,确保移动设备可以在离开原有网络或子网…...
css粘性定位超出指定宽度失效问题
展示效果 解决办法:外层容器添加display:grid即可 完整代码 <template><div class"box"><div class"line" v-for"items in 10"><div class"item" v-for"item in 8">drgg</div>&…...
10 Hyperledger Fabric 介绍
简介 HypeLedger(超级账本)是由Linux基金会2015年创建的首个面向企业应用场景的开源分布式账本平台。 HypeLedger Fabric是HypeLedger种的区块链项目之一HypeLedger Fabric引入权限管理在架构设计上支持可插拔、可扩展是首个面向联盟链场景的开源项目 …...
AI Agent的多轮对话:提升用户体验的关键技巧
在前面的文章中,我们讨论了 AI Agent 的各个核心系统。今天,我想聊聊如何实现一个好用的多轮对话系统。说实话,这个话题我琢磨了很久,因为它直接影响到用户体验。 从一个槽点说起 还记得我最开始做对话系统时的一个典型场景&…...
分布式光纤应变监测是一种高精度、分布式的监测技术
一、土木工程领域 桥梁结构健康监测 主跨应变监测:在大跨度桥梁的主跨部分,如悬索桥的主缆、斜拉桥的斜拉索和主梁,分布式光纤应变传感器可以沿着这些关键结构部件进行铺设。通过实时监测应变情况,能够精确捕捉到车辆荷载、风荷…...
机器学习10-解读CNN代码Pytorch版
机器学习10-解读CNN代码Pytorch版 我个人是Java程序员,关于Python代码的使用过程中的相关代码事项,在此进行记录 文章目录 机器学习10-解读CNN代码Pytorch版1-核心逻辑脉络2-参考网址3-解读CNN代码Pytorch版本1-MNIST数据集读取2-CNN网络的定义1-无注释版…...
面向程序员的Lean 4教程(2) - 数组和列表
面向程序员的Lean 4教程(2) - 数组和列表 上一节我们介绍了Lean4的基本语法,因为大部分程序员都有一定的编程基础,所以并没有介绍过细。这一节我们介绍Lean4中的线性表结构:数组和列表,顺带复习一下上一节的流程控制等内容。 数…...
【C++高并发服务器WebServer】-7:共享内存
本文目录 一、共享内存1.1 shmget函数1.2 shmat1.3 shmdt1.4 shmctl1.5 ftok1.6 共享内存和内存映射的关联1.7 小demo 二、共享内存操作命令 一、共享内存 共享内存允许两个或者多个进程共享物理内存的同一块区域(通常被称为段)。由于一个共享内存段会称…...
【力扣Hot 100】链表1
1. 相交链表 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节点 c1 开始相交**:** !https://assets.leetcode-cn.com/aliyun-lc-upload/uplo…...
稀土抗菌剂:提升产品质量,保障公共健康
随着全球对抗菌技术需求的不断增长,传统的抗菌剂逐渐暴露出其局限性,包括耐药性、环境污染及副作用等问题。在此背景下,稀土抗菌剂作为一种新兴的抗菌材料,凭借其卓越的抗菌性能、环保特性以及应用多样性,正在成为各行…...
机器学习11-学习路径推荐
机器学习11-学习路径推荐 本文希望摒除AI学习商业宣传要素,推荐一条极简的AI学习路线!推荐内容均为在线免费内容,如果有条件可以咨询专业的培训机构! 文章目录 机器学习11-学习路径推荐[toc] 1-AI培训路线第一阶段 Python-人工智能…...
postgresql根据主键ID字段分批删除表数据
生产环境针对大表的处理相对比较麻烦。 方案1、直接truncate,可能会遇到系统卡主的情况,因为truncate的过程中会对表进行加锁,会导致数据不能正常的写入 方案2、创建一个同结构的表结构,rename旧表,不停业务rename表担…...
《边界感知的分而治之方法:基于扩散模型的无监督阴影去除解决方案》学习笔记
paper:Boundary-Aware Divide and Conquer: A Diffusion-Based Solution for Unsupervised Shadow Removal 目录 摘要 1、介绍 2、相关工作 2.1 阴影去除 2.2 去噪扩散概率模型(Denoising Diffusion Probabilistic Models, DDPM) 3、方…...
java后端之事务管理
Transactional注解:作用于业务层的方法、类、接口上,将当前方法交给spring进行事务管理,执行前开启事务,成功执行则提交事务,执行异常回滚事务 spring事务管理日志: 默认情况下,只有出现Runti…...
深入浅出 SQLSugar:快速掌握高效 .NET ORM 框架
SQLSugar 是一个高效、易用的 .NET ORM 框架,支持多种数据库(如 SQL Server、MySQL、PostgreSQL 等)。它提供了丰富的功能,包括 CRUD 操作、事务管理、动态表名、多表联查等,开发者可以通过简单的链式操作实现复杂的数…...
数据结构——概念与时间空间复杂度
目录 前言 一相关概念 1什么是数据结构 2什么是算法 二算法效率 1如何衡量算法效率的好坏 2算法的复杂度 三时间复杂度 1时间复杂度表示 2计算时间复杂度 2.1题一 2.2题二 2.3题三 2.4题四 2.5题五 2.6题六 2.7题七 2.8题八 四空间复杂度 1题一 2题二 3…...
浅谈在AI时代GIS的发展方向和建议
在AI时代,GIS(地理信息系统)的发展正经历着深刻的变革,随着人工智能技术的进步,GIS不再仅仅是传统的地图和空间数据处理工具,而是向更加智能化、自动化、精准化的方向发展。作为一名GIS开发工程师ÿ…...
牛客周赛 Round 78 A-C
A.时间表查询! 链接:https://ac.nowcoder.com/acm/contest/100671/A 来源:牛客网 题目描述 今天是2025年1月25日,今年的六场牛客寒假算法基础集训营中,前两场比赛已经依次于 20250121、20250123 举行;而…...
Java I/O 流介绍
Java学习资料 Java学习资料 Java学习资料 一、引言 在 Java 编程中,I/O(Input/Output)流是处理输入和输出操作的核心机制。它允许程序与外部设备(如文件、网络连接、键盘、显示器等)进行数据交互。通过使用 I/O 流&…...
linux 内核学习方向以及职位
### 学习路径 1. 基础阶段: - C语言高级特性 - 指针和内存管理 - 数据结构实现 - 位操作 - 多线程编程 - Linux系统编程 - 文件I/O操作 - 进程管理 - 信号处理 - IPC机制 - Socket编程 - 必备知识 - 操作系统原理 - 计算机体系结构 - …...
HTML-新浪新闻-实现标题-样式1
用css进行样式控制 css引入方式: --行内样式:写在标签的style属性中(不推荐) --内嵌样式:写在style标签中(可以写在页面任何位置,但通常约定写在head标签中) --外联样式…...
【电磁兼容】CE 传导骚扰
一。是什么? 传导骚扰是指电气或电子设备产生的不需要的电磁能量,这些能量通过导线或其他金属路径传播到其他设备或者系统中。这种类型的干扰通常发生在同一电源线路连接的不同装置之间,或者是共享相同布线系统的组件间。 传导骚扰可以分为两…...
能说说MyBatis的工作原理吗?
大家好,我是锋哥。今天分享关于【Redis为什么这么快?】面试题。希望对大家有帮助; 能说说MyBatis的工作原理吗? MyBatis 是一款流行的持久层框架,它通过简化数据库操作,帮助开发者更高效地与数据库进行交互。MyBatis…...
