實驗課程名稱:資料庫系統概論
廣東東軟學院
學生實驗報告
實驗課程名稱:資料庫系統概論
實驗專案名稱:資料庫的建立和管理
實驗型別:綜合性
指導教師:
實驗日期: 年 月 日
學生姓名 |
|
學 號 |
|
班 級 |
|
專業名稱 |
|
實驗組 其他成員 |
|
||
實驗地點 |
|
||
實驗成績 (教師簽名) |
|
一、實驗目的與要求 1.熟悉SQL Sever2008的圖形介面工作環境; 2.理解幾個主要系統資料庫; 3.掌握分別利用SQL Sever Management Studio和Transact-SQL語句建立資料庫的方法; 4.理解資料庫檔案和檔案組,掌握檔案和檔案組的兩種增加、刪除、修改檔案和檔案組的方法。 5.掌握分別用SQL Sever Management Studio和Transact-SQL語句兩種方式修改資料庫,包括(刪除資料庫,分離資料庫,附加資料庫等) 6.掌握使用SQL Sever Management Studio和T-SQL語言建立表、修改表已經刪除表。 7.掌握建立、刪除和修改約束的方法。 8.瞭解如何讓檢視錶的定義、資料的依賴關係。
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
二、實驗原理 1.資料庫的組織結構 1)邏輯儲存結構 SQL Sever資料庫由一個表集合組成。這些表包含結構化的資料以及為支援對資料的操作額保證資料的完整性而定義的其他物件,如檢視、索引、儲存過程、使用者定義函式和觸發器等,它們夠成了資料庫的邏輯儲存結構,如圖1-1所示。 2)物理儲存結構 資料庫的物理儲存結構是說明包含資料庫物件的資料庫檔案是如何在磁碟上儲存的。建立資料庫實際上就是在硬碟上建立資料庫檔案的過程,資料庫檔案是存放資料庫資料和資料庫物件的檔案。 在SQL Sever資料庫中存在主要資料檔案、次要資料檔案和事務日誌3種資料庫檔案。主要資料檔案(簡稱主檔案)包含資料庫的啟動資訊並用於儲存資料,副檔名為.mdf。每個資料庫必須且只有一個主檔案,該檔案存放兩種物件,即使用者物件和系統物件。使用者物件包含表、檢視及儲存過程等,用於儲存使用者輸入的資料;系統物件有表名、資料庫使用者帳號、索引地址等維護資料庫工作所需要的資訊。系統表應該儲存在主檔案中,而使用者資料可移動到次要資料檔案中。 次要資料檔案主要儲存使用者資料,檔案的副檔名為.ndf。如果主檔案包含了資料庫中所有資料,則可以不要次要檔案,但如果資料庫非常大(如超出了單個windows檔案的最大值),就應該有多個次要資料檔案來輔助存放使用者資料,但不能存放系統物件。使用次要資料檔案可以讓資料庫檔案不斷得到擴充,並可以通過將不同的檔案存放到不同的磁碟空間中實現同時對多個磁碟進行訪問,從而提高資料儲存的併發性。 圖1-1 SQL Sever主要通過事務日誌檔案來實現資料的恢復,副檔名為.ldf。資料庫必須至少包含一個事務日誌檔案,每個日誌檔案僅能被一個資料庫所擁有,資料和日誌資訊不應混在一起。 3)資料庫檔案組 為了方便資料的分配、放置和管理,SQL Sever允許對檔案進行分組處理,在同一個組中的檔案共同組成一個檔案組。例如,可以分別在三個硬碟驅動器上建立三個資料檔案Data1.ndf、Data2.ndf和Data3.ndf,並將它們指派到檔案組Filegroup中,然後在Filegroup上建立一個表,這樣對錶中資料的查詢將分散到三個磁碟上,從而查詢效能得到改善。此外,將維護要求相近的表和索引分配到相同的檔案組中,備份時僅備份檔案組,而非資料龐大的整個資料庫,能提高系統的可維護性。再有,對於不允許修改的表(如歷史資料),可以將它們置於檔案組中(主檔案除外)然後將這些檔案組標記為只讀,從而起到保護資料的目的。 檔案和檔案組的設計遵循如下規則:一個檔案或檔案組不能由多個資料庫使用;一個檔案只能是一個檔案組的成員;事務日誌檔案不能屬於任何檔案組。 2.資料庫的分離和附加 資料庫的分離和附加是一對互逆的操作。分離資料庫是指將資料庫從SQL Sever例項中刪除,即從資料庫的邏輯結構中刪除,但並不會將其物理檔案(資料檔案和日誌檔案)從磁碟上刪除,之後,就可以使用這些檔案將資料庫附加到任何SQL Sever例項,包括分離該資料庫的伺服器。當需要將資料庫物理檔案從當前位置移到另一磁碟或儲存路徑下時,可先分離再附加資料庫。通常,附加資料庫時會將資料庫重置為它分離或複製時的狀態。 在進行資料庫分離操作時,要注意以下幾點: (1)不能對資料庫物件進行更新操作和執行任務,使用者也不能連線在該資料庫上。 (2)在移動資料庫之前,最好為資料庫做一個完整的備份。 (3)確保資料庫要移動的目標位置及將來資料增長能有足夠的空間。 三、實驗原理 1.資料庫的建立 包括主要資料檔案,邏輯檔名,物理檔名,次要資料檔案,日誌檔案,檔案組等。 2.資料庫的管理 1)修改資料庫(擴充套件、收縮,分離,附加,移動,複製等) 2)修改資料庫屬性(新增資料檔案或日誌檔案,新增檔案組,刪除檔案和檔案組,修改某個檔案屬性,重新命名檔案,重新命名資料庫等)
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
四、實驗裝置與軟體環境 1.Windows XP Professional SP3/Windows7 2.SQL Server 2008
五、實驗步驟 1.使用SQL Sever Management Studio建立資料庫,具體要求如下: 1)資料庫名稱為Test1。 2)主要資料檔案:邏輯檔名為Test1Data1,物理檔名為Test1Data1.mdf,初始容量為5MB,最大容量為10MB,增量為1MB。 3)次要資料檔案:邏輯檔名為Test1Data2,物理檔名為Test1Data2.ndf, 初始容量為3MB,最大容量為20MB,增量為2MB。 4)事務日誌檔案:邏輯檔名為Test1Log1,物理檔名為Test1Log1.ldf,初始容量為1MB,最大容量為5MB,增量為1MB。
2.使用Transact-SQL語句建立資料庫,具體要求如下: 1)資料庫名稱為Test2。 2) 主要資料檔案:邏輯檔名為Test2Data1,物理檔名為Test2Data1.mdf,初始容量為5MB,最大容量為10MB,增量為10%。 3) 次要資料檔案:邏輯檔名為Test2Data2,物理檔名為Test2Data2.ndf, 初始容量為3MB,最大容量為20MB,增量為2MB。 4) 事務日誌檔案:邏輯檔名為Test2Log1,物理檔名為Test2Log1.ldf,初始容量為1MB,最大容量為5MB,增量為1MB。
3.使用Transact-SQL語句建立資料庫Test3,具體要求如下: 1)該資料庫名稱為Test3 2)包含兩個檔案組:PRIMARY和Test3_group1 3)三個資料檔案:主檔案Test3_data1,Test3_data2放在PRIMARY檔案組中,Test_data3放在Test3_group1檔案組中。 4)一個日誌檔案:Test3_log 5)各檔案的初始容量、最大容量、增量可任意設定。
4.使用Transact-SQL語句修改資料庫屬性,具體要求如下: 1)向3中建立的Test3資料庫增加一個新的檔案組,名稱為Test3_group2 2)向檔案組Test3_group2中新增檔案Test3_data4。 3)刪除檔案Test3_data4。 4)刪除剛新增的檔案組Test3_group2 5)修改Test3資料庫中主要資料檔案Test3_data1的屬性,初始容量為2MB,最大容量為20MB,增幅為1MB;修改日誌檔案的屬性,初始容量為2MB,最大容量為50MB,增幅為1MB. 6)修改Test3資料庫的名稱為new_Test3。
5.分別使用dbcc shrinkdatabase和dbcc shrinkfile對資料庫Test2進行壓縮。
6.分別採用SQL Sever Management Studio和T-SQL語言刪除資料庫Test1.
7.建立表,並建立相應的約束。 要求:在學生管理資料庫XSGL中建立如下三個表:建立名為Student(學生資訊)的表,表中的各列要求如下:
建立名為Course(課程資訊)的表,表中的各列要求如下:
建立名為SC(選課成績)表,表中的各列要求如下:
兩種方法SQL Sever Management Studio和T-SQL語言建立表、修改表以及刪除表。
8、增加、修改和刪除欄位,要求: 1)給Student表中增加一個memo欄位,型別為varchar(200) 2)將memo欄位的型別改為nvarchar(250) 3)刪除memo欄位。 4)修改表Cource的名稱為CourceInfo
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
實驗過程與結果(可貼圖) 要求:寫出實驗的具體流程和實驗的結果,需要分點說明,相應的地方需要截圖說明。 1.使用SQL Sever Management Studio建立資料庫,具體要求如下: 1)資料庫名稱為Test1。 2)主要資料檔案:邏輯檔名為Test1Data1,物理檔名為Test1Data1.mdf,初始容量為5MB,最大容量為10MB,增量為1MB。 3)次要資料檔案:邏輯檔名為Test1Data2,物理檔名為Test1Data2.ndf, 初始容量為3MB,最大容量為20MB,增量為2MB。 4)事務日誌檔案:邏輯檔名為Test1Log1,物理檔名為Test1Log1.ldf,初始容量為1MB,最大容量為5MB,增量為1MB。 CREATE DATABASE Test1 ON PRIMARY ( NAME = TestData1, filename = 'D:\Test1Data1.mdf', size = 5, filegrowth = 1, maxsize = 10 ),filegroup Test1Data2 ( NAME = Test1Data2, filename = 'D:\Test1Data2.ndf', size = 3, filegrowth = 2, maxsize = 20 ) log ON ( NAME = Test1Log1, filename = 'D:\Test1Log1.ldf', size = 1, maxsize = 5, filegrowth = 1 ); 2.使用Transact-SQL語句建立資料庫,具體要求如下: 1)資料庫名稱為Test2。 2) 主要資料檔案:邏輯檔名為Test2Data1,物理檔名為Test2Data1.mdf,初始容量為5MB,最大容量為10MB,增量為10%。 3) 次要資料檔案:邏輯檔名為Test2Data2,物理檔名為Test2Data2.ndf, 初始容量為3MB,最大容量為20MB,增量為2MB。 4) 事務日誌檔案:邏輯檔名為Test2Log1,物理檔名為Test2Log1.ldf,初始容量為1MB,最大容量為5MB,增量為1MB。 create database Test2 on primary ( name = TestData1, filename = 'D:\Test2Data1.mdf', size = 5, maxsize = 10, filegrowth = 10% ), filegroup Test2Data2 ( name = Test2Data2, filename = 'D:\Test2Data2.ndf', size = 3, maxsize = 20, filegrowth = 2) log on ( name = Test2Log1, filename = 'D:\Test2Log1.ldf', size = 1, maxsize = 5, filegrowth = 1); 3.使用Transact-SQL語句建立資料庫Test3,具體要求如下: 1)該資料庫名稱為Test3 2)包含兩個檔案組:PRIMARY和Test3_group1 3)三個資料檔案:主檔案Test3_data1,Test3_data2放在PRIMARY檔案組中,Test_data3放在Test3_group1檔案組中。 4)一個日誌檔案:Test3_log 5)各檔案的初始容量、最大容量、增量可任意設定。 create database Test3 on primary ( name = Test3_Data1, filename = 'D:\Test3Data1.mdf', size = 1, filegrowth = 1, maxsize=unlimited), ( name = Test3_Data2, size = 1, filename = 'D:\Test3Data2.ndf', maxsize = unlimited, filegrowth = 2), filegroup Test3_group1( name = Test_data3, size = 5, filename = 'D:\Test3Data3.ndf', maxsize = unlimited, filegrowth = 3 ) log on ( name = Test3_log, size = 1, filename = 'D:\Test3Log.lfg', filegrowth = 1, maxsize = 5); 4.使用Transact-SQL語句修改資料庫屬性,具體要求如下: 1)向3中建立的Test3資料庫增加一個新的檔案組,名稱為Test3_group2 2)向檔案組Test3_group2中新增檔案Test3_data4。 3)刪除檔案Test3_data4。 4)刪除剛新增的檔案組Test3_group2
5)修改Test3資料庫中主要資料檔案Test3_data1的屬性,初始容量為2MB,最大容量為20MB,增幅為1MB;修改日誌檔案的屬性,初始容量為2MB,最大容量為50MB,增幅為1MB.
6)修改Test3資料庫的名稱為new_Test3。
5.分別使用dbcc shrinkdatabase和dbcc shrinkfile對資料庫Test2進行壓縮。 6.分別採用SQL Sever Management Studio和T-SQL語言刪除資料庫Test1.
建立表,並建立相應的約束。在學生管理資料庫XSGL中建立如下三個表:建立名為Student(學生資訊)的表,建立名為Course(課程資訊)的表, 建立名為SC(選課成績)表,實現截圖如下: create table Cource( Cno Char(10) primary key, Cname Varchar(40) unique, Credit smallint check(Credit >= 0 and Credit <=10), Cteacher Char(10) ); create table SC( Sno int foreign key references Student(Sno), Cno Char(10) foreign key references Cource(Cno), Grade Smallint check(Grade>=0 and Grade<=100) );
create table Student( Sno int primary key, --學生學號 Sname Nchar(8) not null,--學生姓名 Sex Char(2) default '男' check(Sex = '男' or Sex = '女'), Birthday DateTime not null,--出生日期 Age smallint,--當前時間-birthday Sdept Char(10)--教師 );
5. 增加、修改和刪除欄位. 1)給Student表中增加一個memo欄位,型別為varchar(200) 2)將memo欄位的型別改為nvarchar(250) 3)刪除memo欄位。 4)修改表Cource的名稱為CourceInfo 5)實現截圖如下:
--1)給Student表中增加一個memo欄位,型別為varchar(200) alter table Student add memo varchar(200); --2)將memo欄位的型別改為nvarchar(250) alter table Student alter column memo nvarchar(200); --3)刪除memo欄位。 alter table Student drop column memo; --4)修改表Cource的名稱為CourceInfo EXEC sp_rename 'Cource','CourceInfo';
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
操作異常問題與解決方案
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
實驗總結 在這次實驗資料庫的建立和管理中,我更加深刻理解SQL SERVER的使用,對資料庫建立,刪除,修改約束的方法,比如給Student的Sno新增外來鍵的方法:Sno int foreign key references Student(Sno), 建立檔案組的方法: Alter database Text3 add filegroup[PRIMARY].本次實驗主要了解到了倆點:1.資料庫的組織結構(包括資料庫的組織結構分為邏輯儲存結構,物理儲存結構以及資料庫檔案組)2.資料庫的分離和附加,資料庫的分離和附加是一對互逆的操作,在進行資料庫的分離時要注意三點,(1).不能對資料庫物件進行更新操作和執行任務,使用者也不能連線在該資料庫上。(2).在移動資料庫之前,最好為資料庫做一個完整的備份。(3).確保資料庫要移動的目標位置及將來資料增長能有足夠的空間。 在這次實驗遇到最大的問題就是在建立資料庫Text3裡,在這過程中建立的檔案組以及向指定檔案組裡新增指定檔案,新增檔案組可以實現,但是新增指定檔案不懂語句怎麼新增,網上找了一些實列但是新增過程也總是不理想,最後分類一個個來新增實現就可以了.最後實現三個表,表與表之間的關係,這個可以解決,只要理清那個表是主關鍵表,新增外來鍵直接foreign key references, 在這次實驗我更加了解到資料庫的知識點以及程式相關知識,給我帶來了豐富的體驗,同時也看到了自己的不足之處,只有更加了解自己方可取勝!
|
其他要求:
- 格式:實驗報告正文部分的小標題為宋體小四加粗;正文為宋體小四,不用加粗,行距為20磅。
- 所提交的報告要刪除本模板中紅色字部分的說明。
/*1.使用SQL Sever Management Studio建立資料庫,具體要求如下:
1)資料庫名稱為Test1。
2)主要資料檔案:邏輯檔名為Test1Data1,物理檔名為Test1Data1.mdf,初始容量為5MB,最大容量為10MB,增量為1MB。
3)次要資料檔案:邏輯檔名為Test1Data2,物理檔名為Test1Data2.ndf, 初始容量為3MB,最大容量為20MB,增量為2MB。
4)事務日誌檔案:邏輯檔名為Test1Log1,物理檔名為Test1Log1.ldf,初始容量為1MB,最大容量為5MB,增量為1MB。
*/
CREATE DATABASE Test1
ON PRIMARY (
NAME = TestData1,
filename = 'D:\Test1Data1.mdf',
size = 5,
filegrowth = 1,
maxsize = 10
),filegroup
Test1Data2 (
NAME = Test1Data2,
filename = 'D:\Test1Data2.ndf',
size = 3,
filegrowth = 2,
maxsize = 20 ) log
ON (
NAME = Test1Log1,
filename = 'D:\Test1Log1.ldf',
size = 1,
maxsize = 5,
filegrowth = 1
);
/*2.使用Transact-SQL語句建立資料庫,具體要求如下:
1)資料庫名稱為Test2。
2) 主要資料檔案:邏輯檔名為Test2Data1,物理檔名為Test2Data1.mdf,
初始容量為5MB,最大容量為10MB,增量為10%。
3) 次要資料檔案:邏輯檔名為Test2Data2,物理檔名為Test2Data2.ndf,
初始容量為3MB,最大容量為20MB,增量為2MB。
4) 事務日誌檔案:邏輯檔名為Test2Log1,物理檔名為Test2Log1.ldf,
初始容量為1MB,最大容量為5MB,增量為1MB。
*/
create database Test2
on primary (
name = TestData1,
filename = 'D:\Test2Data1.mdf',
size = 5,
maxsize = 10,
filegrowth = 10% ), filegroup
Test2Data2 (
name = Test2Data2,
filename = 'D:\Test2Data2.ndf',
size = 3,
maxsize = 20,
filegrowth = 2) log on (
name = Test2Log1,
filename = 'D:\Test2Log1.ldf',
size = 1,
maxsize = 5,
filegrowth = 1);
/*3.使用Transact-SQL語句建立資料庫Test3,具體要求如下:
1)該資料庫名稱為Test3
2)包含兩個檔案組:PRIMARY和Test3_group1
3)三個資料檔案:主檔案Test3_data1,Test3_data2放在PRIMARY檔案組中,Test_data3放在Test3_group1檔案組中。
4)一個日誌檔案:Test3_log
5)各檔案的初始容量、最大容量、增量可任意設定。
*/
create database Test3
on primary (
name = Test3_Data1,
filename = 'D:\Test3Data1.mdf',
size = 1,
filegrowth = 1,
maxsize=unlimited),
(
name = Test3_Data2,
size = 1,
filename = 'D:\Test3Data2.ndf',
maxsize = unlimited,
filegrowth = 2),
filegroup Test3_group1(
name = Test_data3,
size = 5,
filename = 'D:\Test3Data3.ndf',
maxsize = unlimited,
filegrowth = 3
) log on (
name = Test3_log,
size = 1,
filename = 'D:\Test3Log.lfg',
filegrowth = 1,
maxsize = 5);
/*4.使用Transact-SQL語句修改資料庫屬性,具體要求如下:
1)向3中建立的Test3資料庫增加一個新的檔案組,名稱為Test3_group2
2)向檔案組Test3_group2中新增檔案Test3_data4。
3)刪除檔案Test3_data4。
4)刪除剛新增的檔案組Test3_group2
5)修改Test3資料庫中主要資料檔案Test3_data1的屬性,初始容量為2MB,
最大容量為20MB,增幅為1MB;修改日誌檔案的屬性,初始容量為2MB,
最大容量為50MB,增幅為1MB.
6)修改Test3資料庫的名稱為new_Test3。
*/
alter database Test3 add filegroup Test3_group2;
alter database Test3 add file(
name = Test3_data4,
filename = 'D:\Test3_data4.ndf',
size = 1,
maxsize = unlimited,
filegrowth = 1
) to filegroup Test3_group2;
alter database Test3 remove file Test3_data4;
alter database Test3 remove filegroup Test3_group2;
alter database Test3 modify file (
name = Test3_Data1,
size = 2,
maxsize = 20,
filegrowth = 1);
alter database Test3 modify file (
name = Test3_log,
size = 2,
maxsize = 50,
filegrowth = 1);
alter database Test3 modify name = new_Test3;
/*5.分別使用dbcc shrinkdatabase和dbcc shrinkfile對資料庫Test2進行壓縮。*/
/*6.分別採用SQL Sever Management Studio和T-SQL語言刪除資料庫Test1.*/
drop database Test1;
create table Student(
Sno int primary key, --學生學號
Sname Nchar(8) not null,--學生姓名
Sex Char(2) default '男' check(Sex = '男' or Sex = '女'),
Birthday DateTime not null,--出生日期
Age smallint,--當前時間-birthday
Sdept Char(10)--教師
);
create table Cource(
Cno Char(10) primary key,
Cname Varchar(40) unique,
Credit smallint check(Credit >= 0 and Credit <=10),
Cteacher Char(10)
);
create table SC(
Sno int foreign key references Student(Sno),
Cno Char(10) foreign key references Cource(Cno),
Grade Smallint check(Grade>=0 and Grade<=100)
);
--1)給Student表中增加一個memo欄位,型別為varchar(200)
alter table Student add memo varchar(200);
--2)將memo欄位的型別改為nvarchar(250)
alter table Student alter column memo nvarchar(200);
--3)刪除memo欄位。
alter table Student drop column memo;
--4)修改表Cource的名稱為CourceInfo
EXEC sp_rename 'Cource','CourceInfo';
相關文章
- 軟體工程概論——課程匯入介面以及資料匯入資料庫軟體工程資料庫
- 資料庫系統概論 第一章 緒論資料庫
- 【資料庫系統】資料庫系統概論====第十三章 資料庫技術發展資料庫
- 《資料庫系統原理》課程筆記資料庫筆記
- 《資料庫系統概論》 (第4版) 個人筆記資料庫筆記
- 資料庫課程設計-宿舍管理系統資料庫
- 資料庫概論 (一)資料庫概念資料庫
- 《資料庫系統概論》第一章筆記資料庫筆記
- 資料庫事務概論資料庫
- 王珊資料庫系統概論第5版視訊教材資料庫
- 修改資料庫名稱資料庫
- 資料庫課程作業筆記 - 驗收資料庫筆記
- 《資料探勘導論》實驗課——實驗四、資料探勘之KNN,Naive BayesKNNAI
- nid修改資料庫名稱資料庫
- 如何修改MySQL資料庫名稱MySql資料庫
- C#取資料庫名稱與資料庫中表名的方法C#資料庫
- 資料庫課程設計—超市零售資訊管理系統(Python實現)資料庫Python
- Oracle資料庫概論及就業前景Oracle資料庫就業
- 資料庫課程設計資料庫
- 用NID修改資料庫名稱資料庫
- 二、修改資料庫全域性名稱資料庫
- 資料庫名,資料庫例項名,資料庫域名,作業系統環境變數資料庫作業系統變數
- Postgresql10資料庫之更改資料庫的名稱SQL資料庫
- 李巨集毅機器學習課程筆記-1.機器學習概論機器學習筆記
- 資料庫系統架構討論資料庫架構
- Duplicate 複製資料庫實驗過程資料庫
- 大資料概論(2)大資料
- 資料倉儲概論
- 【資料庫課程】研討02資料庫
- 資料庫實戰:SQL Server系列網路課程資料集資料庫SQLServer
- 資料結構課程設計-宿舍管理系統資料結構
- 2.6.2 確定全域性資料庫名稱資料庫
- OCP課程23:管理Ⅰ之資料庫體系結構資料庫
- linux檔案系統概論Linux
- 資料庫課程作業筆記 - 編寫表單驗證資料庫筆記
- 使用手工方法Clone異名資料庫實驗資料庫
- 使用RMAN Duplicate方法搭建異名資料庫實驗資料庫
- 資料庫 校驗名稱唯一性,用於新增和修改功能資料庫