實驗二 數據庫的附加/分離、導入/導出與備份/還原

實驗二 數據庫的附加/分離、導入/導出與備份/還原

一、實驗目的
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、為什么關系中不允許有重復元組?
答:
因為每個關系模式都有一個主鍵,在關系中主鍵是唯一存在的。假若有重復元組,則其主鍵相等,那么起不了唯一標識的作用。所以關系中不允許有重復元組。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/67023.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/67023.shtml
英文地址,請注明出處:http://en.pswp.cn/web/67023.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

技術中臺與終搜——2

文章目錄 5、語言處理與自動補全技術探測5.1 自定義語料庫5.1.1 語料庫映射OpenAPI5.1.2 語料庫文檔OpenAPI 5.2 產品搜索與自動補全5.2.1 漢字補全OpenAPI5.2.2 拼音補全OpenAPI 5.3 產品搜索與語言處理5.3.1 什么是語言處理(拼寫糾錯)5.3.2 語言處理Op…

15_業務系統基類

創建腳本 SystemRoot.cs 因為 業務系統基類的子類 會涉及資源加載服務層ResSvc.cs 和 音樂播放服務層AudioSvc.cs 所以在業務系統基類 提取引用資源加載服務層ResSvc.cs 和 音樂播放服務層AudioSvc.cs 并調用單例初始化 using UnityEngine; // 功能 : 業務系統基類 public c…

k8s優雅重啟

理論上處于terminating狀態的pod,k8s 就會把它從service中移除了,只用配置一個優雅停機時長就行了。kubectl get endpoints 驗證 因此,優雅重新的核心問題,是怎么讓空閑長連接關閉,再等待處理中的請求執行完。 一些底…

【Linux】華為服務器使用U盤安裝統信操作系統

目錄 一、準備工作 1.1 下載UOS官方系統 1.2制作啟動U盤 1.3 服務器智能管理系統iBMC 二、iBMC設置U盤啟動 一、準備工作 1.1 下載UOS官方系統 服務器CPU的架構是x86-64還是aarch64),地址:統信UOS生態社區 - 打造操作系統創…

27. 【.NET 8 實戰--孢子記賬--從單體到微服務】--簡易報表--報表服務

報表是每個記賬應用所具備的功能,要實現報表功能就需要把賬本的核心功能(記賬)完成,因此報表服務作為本專欄第一部分單體應用開發中最后一個要實現的功能,這一篇文章很簡單,我們一起來實現一個簡單的報表服…

基于 Node.js 的天氣查詢系統實現(附源碼)

項目概述 這是一個基于 Node.js 的全棧應用,前端使用原生 JavaScript 和 CSS,后端使用 Express 框架,通過調用第三方天氣 API 實現天氣數據的獲取和展示。 主要功能 默認顯示多個主要城市的天氣信息 支持城市天氣搜索 響應式布局設計 深色主題界面 優雅的加載動畫 技術棧 …

cursor重構谷粒商城04——vagrant技術快速部署虛擬機

前言:這個系列將使用最前沿的cursor作為輔助編程工具,來快速開發一些基礎的編程項目。目的是為了在真實項目中,幫助初級程序員快速進階,以最快的速度,效率,快速進階到中高階程序員。 本項目將基于谷粒商城…

leetcode 面試經典 150 題:簡化路徑

鏈接簡化路徑題序號71題型字符串解法棧難度中等熟練度??? 題目 給你一個字符串 path ,表示指向某一文件或目錄的 Unix 風格 絕對路徑 (以 ‘/’ 開頭),請你將其轉化為 更加簡潔的規范路徑。 在 Unix 風格的文件系統中規則如下…

如何在gitee/github上面搭建obsidian的圖床

在搭建圖床之前我們需要知道圖床是一個什么東西,圖床顧名思義就是存放圖片的地方,那么我們為什么要搭建圖床呢?因為我們在寫博客的時候,很多同學都是在本地使用typora或者是obsidian進行markdown語法的文章的書寫,文件格式通常都是…

JVM堆空間

JVM(Java虛擬機)堆空間是Java內存管理的核心區域之一,用于存儲Java對象實例。以下是關于JVM堆空間的詳細介紹: 1. 堆空間的作用 ? 存儲對象實例:幾乎所有的Java對象實例(通過new關鍵字創建的對象&#xf…

Redis 的熱 Key(Hot Key)問題及解決方法

Redis 的熱 Key(Hot Key)問題及解決方法 1. 什么是 Redis 熱 Key? Redis 熱 Key(Hot Key)指的是訪問頻率極高的 Key,通常會造成以下問題: 單 Key 訪問量過大:熱點 Key 可能被高并…

SSM東理咨詢交流論壇

🍅點贊收藏關注 → 添加文檔最下方聯系方式咨詢本源代碼、數據庫🍅 本人在Java畢業設計領域有多年的經驗,陸續會更新更多優質的Java實戰項目希望你能有所收獲,少走一些彎路。🍅關注我不迷路🍅 項目視頻 js…

http的請求體各項解析

一、前言 做Java開發的人員都知道,其實我們很多時候不單單在寫Java程序。做的各種各樣的系統,不管是PC的 還是移動端的,還是為別的系統提供接口。其實都離不開http協議或者https 這些東西。Java作為編程語言,再做業務開發時&#…

gradle生命周期鉤子函數

文章目錄 0. 總結表格1. 構建初始階段gradle.settingsEvaluated()gradle.projectsLoaded() 2. 配置階段gradle.beforeProject()gradle.afterProject()gradle.projectEvaluated()gradle.afterEvaluate()gradle.taskGraph.whenReady 3. 執行階段gradle.taskGraph.beforeTaskgradl…

Qt Enter和HoverEnter事件

介紹 做PC開發的過程中或多或少都會接觸到鼠標的懸停事件,Qt中處理鼠標懸停有Enter和HoverEnter兩種事件 相同點 QEvent::Enter對應QEnterEvent,描述的是鼠標進入控件坐標范圍之內的行為,QEnterEvent可以抓取鼠標的位置;QEvent…

【云安全】云原生-Docker(五)容器逃逸之漏洞利用

漏洞利用逃逸 通過漏洞利用實現逃逸,主要分為以下兩種方式: 1、操作系統層面的內核漏洞 這是利用宿主機操作系統內核中的安全漏洞,直接突破容器的隔離機制,獲得宿主機的權限。 攻擊原理:容器本質上是通過 Linux 的…

如何優化深度學習模型來提高錯別字檢測準確率?

為了優化深度學習模型以提高錯別字檢測的準確率,可以從以下幾個方面入手: 1. 數據增強 數據增強是提高模型泛化能力的有效方法。通過在訓練數據中引入噪聲,模型可以學習到更多變的模式,從而提高對未見數據的識別能力。 刪除字符:以一定概率刪除文本中的一個字符。增加字…

二叉搜索樹中的搜索(力扣700)

首先介紹一下什么是二叉搜索樹。 二叉搜索樹是一個有序樹: 若它的左子樹不空,則左子樹上所有結點的值均小于它的根結點的值;若它的右子樹不空,則右子樹上所有結點的值均大于它的根結點的值;它的左、右子樹也分別為二叉…

pytest自動化測試 - 構造“預置條件”的幾種方式

<< 返回目錄 1 pytest自動化測試 - 構造“預置條件”的幾種方式 1.1 使用夾具構造預置條件 在夾具章節中&#xff0c;我們介紹了夾具的作用&#xff0c;其中一項就是構造預置條件。pytest.fixture裝飾器中如果測試數據使用yield返回&#xff0c;則yield前的語句為預置條…

微信小程序date picker的一些說明

微信小程序的picker是一個功能強大的組件&#xff0c;它可以是一個普通選擇器&#xff0c;也可以是多項選擇器&#xff0c;也可以是時間、日期、省市區選擇器。 官方文檔在這里 這里講一下date picker的用法。 <view class"section"><view class"se…