數據庫實驗一實驗報告

實驗 1 :數據庫的定義實驗
本實驗需要 2 學時。
一、實驗目的
要求學生熟練掌握和使用 SQL 、 Transact-SQL 、 SQLServer 企業管理器創建數據庫、表、索引和修改表結構,並學會使用 SQL Server 查詢分析器接收 Transact-SQL 語句和進行結果
分析。
二、實驗內容
1) 創建數據庫和查看數據庫屬性。
2) 創建表、確定表的主碼和約束條件,爲主碼創建索引。
3) 查看和修改表結構。
4) 熟悉 SQL Server 企業管理器和查詢分析器工具的使用方法。
三、實驗步驟
1 .基本操作實驗
1)、 使用企業管理器建立學生_課程數據庫。
2)、 在企業管理器中查看學生_課程數據庫的屬性,並進行修改,使之符合要求。
3) 、 通過企業管理器,在建好的學生_課程數據庫中建立學生、課程和選課 3 個表,其結構爲:
學生 ( 學號,姓名,性別,出生日期,學院,所在系,聯繫電話 ) ;
列名 數據類型 長度 是否允許爲空值 默認值 說明
學號 Char 6 N 主鍵
姓名 Char 8 N
性別 Bit 1 N 只能爲0或1
(0是女,1是男)
出生日期 smalldatetime 4 N
學院 Char 10 N
所在系 Char 10 N
聯繫電話 char 11 Y

學號 姓名 性別 出生日期 學院 所在系 聯繫電話
020101 楊穎 0 1980-7-20 信息 計算機 88297147
020102 方露露 0 1981-1-15 信息 計算機 88297147
020103 俞奇軍 1 1980-2-20 信息 計算機 88297151
020104 胡國強 1 1980-11-7 信息 計算機 88297151
020105 薛冰 1 1980-7-29 水利工程 水利系 88297152
020201 秦盈飛 0 1981-3-10 電子商務 經濟系 88297161
020202 董含靜 0 1980-9-25 電子商務 經濟系 88297062
020203 陳偉 1 1980-8-7 電子商務 經濟系 88297171
020204 陳新江 1 1980-7-20 房建 水利系 88297171

課程 ( 課程號,課程名,教師,開課學期,學時,學分) ;
列名 數據類型 長度 是否允許爲空值 默認值 說明
課程號 Char 3 N   主鍵
課程名 Char 20 N    
教師 Char 10      
開課學期 Tinyint 1     只能1-6
學時 int 4    60  
學分 Tinyint 1 N

課程號 課程名 教師 開課學期 學時 學分
101 計算機原理 陳紅 2 45 3
102 計算方法 王頤 3 45 3
103 操作系統 徐格 2 60 4
104 數據庫原理及應用 應對剛 3 75 5
105 網絡基礎 吳江江 4 45 3
106 高等數學 孫中文 1 90 6
107 英語 陳剛 1 90 6
108 VB程序設計 趙紅韋 3 70 5

選課 ( 學號,課程號,成績 ) 。
列名 數據類型 長度 是否允許爲空值 默認值 說明
學號 Char 6 N 外鍵
課程號 Char 3 N 外鍵
成績 Tinyint 1 0-100之間

學號 課程號 成績
020101 101 85
020101 102 87
020101 107 88
020102 101 58
020102 102 63
020104 107 76
020202 103 55
020202 108 80
020203 103 57
020204 103 71

要求爲屬性選擇合適的數據類型,定義每個表的主碼,是否允許空值和默認值等列級數據約束。
4)、 在企業管理器中建立學生、課程和選課 3 個表的表級約束:每個表的主碼約束;學生表與課程表間、課程表與選課表之間的外碼約束,要求按語義先確定外碼約束表達式,再通過操作予以實現;實現選課表的課程號和學號的惟一性約束;實現學生表性別只能是“男”或“女”的 Check( 檢查 ) 約束。
2 .提高操作實驗
1)、用 SQL 描述的建立學生—課程庫操作,在 SQL Server 企業管理器中實現
2) 將設計的數據庫應用系統中的數據庫、庫中的表、索引和約束用 Transact-SQL 表達,並通過企業管理器或查詢分析器實現建庫、建表、建立表間聯繫和建立必要的索引、列級約束和表級約束的操作。
四、實驗方法
1 .創建數據庫
(1)、 使用企業管理器創建數據庫的步驟
1)、 從“開始”菜單中選擇:程序 Microsoft SQL Server 2000 企業管理器。
2)、 選中需要在其上創建數據庫的服務器,單擊前面的“ + ”號,使其展示爲樹形目錄。
圖 3-1 在數據庫的彈出菜單中選擇新建數據庫
3)、 選中“數據庫”文件夾,單擊鼠標右鍵,在彈出菜單上選擇“新建數據庫”,如圖 3-1 所示。隨後在數據庫屬性對話框的常規頁面中,輸人數據庫名,如圖 3-2 所示。

圖 3-2 數據庫屬性對話框
數據庫屬性對話框中有 3 個頁面:常規頁面、數據文件頁面和事務日誌頁面。數據文件頁面和事務日誌頁面主要用來定義數據庫的數據文件和日誌文件的屬性。
4)、 選擇數據文件頁面,輸入學生_課程數據庫的數據文件屬性,包括文件名、存放位置和文件屬性,如圖 3-3 所示;再選擇事務日誌頁面,輸人數據庫的日誌文件屬性,包括文件名、存放位置、大小和文件屬性,如圖 3-4 所示。在選擇文件位置時,可以單擊位於“位置”列的“…”按鍵,在調出的文件選擇器中進行位置選擇。
5)、單擊 [ 確定 ] 按鈕,關閉對話框。在企業管理器窗口中出現“學生_課程”數據庫標誌,這表明建庫工作已經完成。

圖 3-3 數據庫屬性對話框中的數據文件頁面

圖 3-4 數據庫屬性對話框中的事務日誌頁面
(2)、文件屬性參數說明
文件屬性欄設在頁面的下部,它包括下列選項:
1)、 文件自動增長複選框:選中後允許文件放滿數據時自動增長。
2)、文件增長單選框:設置允許文件自動增長時,每次文件增長的大小。其中,選“按兆字節”項爲設置文件增長爲固定的大小,單位是 MB ;選“按百分比”項爲文件按指定比例數增長,單位是%。
3)、 最大文件大小單選框:設置當允許文件擴展時,數據文件能夠增長的最大值。選“文件增長不受限制”項可使文件無限增長,直到用完磁盤空間;選“將文件增長限制爲”項時,要設置文件最多達到的固定值。
2 .查看和修改數據庫屬性參數
已經建好的數據庫,有時還需要對它的屬性參數進行查看和修改。下面我們分兩步介紹:先介紹查看和修改數據庫屬性的步驟,再介紹數據庫有關的參數及其含義。
(1)、 查看和修改數據庫屬性的步驟
1)、 啓動企業管理器,使數據庫所在的服務器展開爲樹形目錄。
2)、選中數據庫文件夾,使之展開;用鼠標右鍵單擊指定的數據庫標識,在彈出的菜單中選擇“屬性”項,如圖 3-5 所示。出現數據庫屬性對話框,如圖 3-6 所示。

圖 3-5 在企業管理器中選擇數據庫的“屬性”項

圖 3-6 數據庫屬性對話框中的選項頁面
從該對話框中可以看出,它由 6 個選項卡構成,與圖 3-2 不同的是增加了文件組、選項和權限頁面。其中:文件組頁面用於設置數據庫的文件組,其概念在前面已經介紹過;權限頁面用來設置用戶對該數據庫的訪問權限,有關選項頁面內容在下面介紹。
3)、 在選項卡中查看或修改相應的內容,單擊 [ 確定 ] 按鈕關閉對話框。
(2)、 選項頁面中的數據庫屬性參數
“選項”頁面如圖 3-6 所示。“選項”頁面分訪問、故障還原、設置和兼容性 4 個欄目。
1)、 訪問欄目。訪問欄用來設置數據庫的操作許可。
限制訪問複選框:選擇後,限制用戶訪問數據庫。
db owner , dbcreater 或 sysadmin 成員:只能由數據庫擁有者 ( 創建者 ) 使用數據庫。
單用戶:在同一時刻是否只允許一個用戶使用該數據庫。
只讀:該數據庫是否是隻讀的。
2)、 故障還原欄目。設置故障還原模型。
3)、 設置欄目。該欄目用來設置數據庫在進行數據操作時的行爲特徵,它包括 8 個複選框,其含義比較容易理解。
3 .刪除數據庫
對於不需要的數據庫,可以通過下面的方法刪除:
1)、 用鼠標右鍵單擊要刪除的數據庫,在出現的彈出菜單中選擇刪除項。
2)、在彈出的確認刪除對話框中,單擊 [ 確認 ] 按鈕。
4 .新建表
在 SQL Server 2000 的數據庫中,文件夾是按數據庫對象的類型建立的,文件夾名是該數據庫對象名。當在企業管理器中選擇服務器和數據庫文件夾,並打開已定義好的學生_課程數據庫後,會發現它自動設置了關係圖、表、視圖、存儲過程、用戶、角色、規則、默認等文件夾。要建立“學生”表,先選中學生_課程數據庫中的表文件夾,單擊鼠標右健。在彈出的菜單中選擇新建表,如圖 3-7 所示。隨後的輸入表結構對話框如圖 3-8 所示。

圖 3-7 數據庫中的表文件夾的彈出菜單

圖 3-8 輸入表結構對話框
輸入表結構對話框是一張表,它的列屬性有列名、數據類型、長度和是否允許空 4 項。用戶把新建表的結構填入對話框的表中,表中的每一行定義新建表 ( 學生 ) 的一列,每一列定義新建表的一個列屬性。當光標移到表中的某一行時,下面的列描述就會對應當前行顯示輸入項,
用戶可在其中對關係的屬性進行進一步說明。列描述包括數據的精度、小數位數、默認值、是否標識等項。
輸入表結構時應注意以下幾點:
1)、“列名”列用於輸入字段名,例如“編號”、“類別”等,列名類似於變量名,其命名規格與變量一致。列名中不允許出現空格,一張表也不允許有重複的列名。
2)、“數據類型”列中的數據類型是通過選擇方法,而不是直接鍵人數據類型字符輸入的。當鼠標指針移向該列時,就會出現控制鍵,單擊後就出現數據類型彈出框,如圖 3-8 所示,可選擇其中之一爲指定的數據類型。
3)、“長度”列、精度和小數位數項不是所有字段都必選的。例如 int 和 datetime 型的長度是固定的,也不需要數據精度值。數據精度僅對一些數值型、字符型、貨幣型等數據有效,小數位僅對一些數值型數據有效。
4)、“允許空”列用於設置是否允許字段爲空值,默認項用於設置字段的默認值。
5)、標識、標識種子和標識遞增量用於設置字段具有的新生行遞增性、初始值以及步長,以便讓 SQL Server 2000 自動填寫該列的值。具有標識性能的字段的數據類型只能爲 int , Smallint , tinyint,decimal(p , 0) 或 numeric(p , 0) ,而且不允許爲空值。一個表只允許有一列具有標識性能。
6)、列名前的一列按鈕爲字段標註按鈕列。鑰匙圖標說明這個字段爲主碼,黑三角圖標說明所指示行爲當前字段。
7)、在對話框中單擊鼠標右鍵,則會出現一個彈出框,如圖 3-9 所示。
其中的幾個選項非常有用:選擇“設置主鍵”項,則定義當前字段爲主碼,表中第一列處會顯示鑰匙圖案;選擇“插入列”項,則在當前字段處插入一個新行;選擇“刪除列”項,則刪除當前字段;選擇“屬性”項,可調出表屬性對話框,如圖 3-10 所示,可以在其中定義索引/鍵、與其他表間的關聯和約束等屬性,具體方法在下面介紹。

圖 3-9 建表對話框中的彈出框

圖 3-10 表屬性對話框
8)、 字段輸入完後,就可以關閉建表對話框了。最後,會彈出輸入表名對話框,如圖 3-11 所示。在對話框中輸入“學生”表名,單擊 [ 確定 ] 按鈕後,建表工作就完成了。

5 .定義表的完整性約束和索引
表的約束包括碼 ( 主鍵 ) 約束、外碼約束 ( 關聯或關係約束 ) 、唯一性約束、 Check( 檢查 ) 約束 4 種。這些約束可以在表屬性對話框中定義。
(1)定義索引和鍵
選擇“索引/鍵”頁面,其界面如圖 3-10 所示。
1)、 查看、修改或刪除索引時,先要在“選定的索引”下拉菜單中選擇索引名,其索引內容就顯示在表中。需要時,可以直接在表中修改索引內容,如改變索引列名,改變排序方法等。對於不需要的索引可以單擊 [ 刪除 ] 按鈕,直接刪除此索引。
2)、 新建一個索引時,單擊 [ 新建] 按鈕,並在下面的表中輸入索引名、索引列名及排列順序。
3)、 設置 UNIQUE 複選框,確定是否爲唯一索引約束。設置 CLUSTERED 複選框,確定是否爲羣集索引 (CLUSTERED) 。
(2) 定義表間關聯
選擇表頁面
1)、 查看、修改或刪除表關聯時,先要在“選定的關係”下拉菜單中選擇關聯名 ( 即關係名 ) ,其關聯內容就顯示在表中。需要時,可以直接在表中修改關聯內容,例如改變主鍵,改變外碼鍵等。對於不需要的關聯可以單擊 [ 刪除 ] 按鈕,直接刪除此關聯。
2)、 新建一個關聯時,單擊 [ 新建 ] 按鈕,選擇庫中的關聯表 ( 參照表 ) 後,在表中輸入關聯名、主碼和外碼。
3)、 設置“創建中檢查現存數據”複選框,確定新建關聯時是否對數據進行檢查,要求符合外碼約束;設置“對複製強制關係”複選框,確定在進行數據複製時是否要符合外碼約束;設置“對 INSERT 和 UPDATE 強制關係”複選框,確認在對數據插入和更新時,是否符合外碼約束;設置“級聯更新相關的字段”複選框和“級聯刪除相關的記錄”複選框,確認被參照關係的主碼值被修改時,是否也將參照表中的對應的外碼值修改,而被參照關係的主碼值被刪除時,是否也將參照表中對應外碼的記錄刪除。
(3)定義 CHECK 約束
選擇 CHECK 約束頁面
1)、 查看、修改或刪除 CHECK 約束時,先要在“選定的約束”下拉菜單中選擇約束名,其約束內容就顯示在約束表達式框中。需要時,可以直接在框中修改約束表達式。對於不需要的 CHECK 約束可以單擊 [ 刪除 ] 按鈕,直接刪除此約束。
2)、新建一個 CHECK 約束時,單擊 [ 新建 ] 按鈕,並在表中輸入約束名和約束表達式。
3)、設置“創建中檢查現存數據”,確認在創建約束時是否對錶中數據進行檢查,要求符合約束要求;設置“對複製強制約束”複合框,確認對數據複製時是否要求符合約束條件;設置“對 INSERT~UPDATE 強制約束”,確認在進行數據插入和數據修改時,是否要求符合約束條件。
6 .修改表結構
當需要對建好的表修改結構時,首先要在企業管理器中找到該表,用鼠標右鍵單擊該表名,就會出現彈出菜單,如圖 3-14 所示。隨後,在彈出的菜單中選擇“設計表”項,企業管理器會把如圖 3-9 所示的建表對話框調出,用戶可對原有內容進行修改。
五、實驗報告要求
1)、分別用 SQL 和 Transact-SQL 表示學生_課程數據庫建庫和建表 ( 建索引 ) 操作,用 SQL 和 Transact-SQL 表示學生—課程庫建表和建庫操作。指出 SQL 和 Transact-SQL 定義語句的不同之處。
建庫操作
在這裏插入圖片描述
建表操作
在這裏插入圖片描述
2)、指出學生_課程數據庫中各表的主碼、外碼和數據約束
學生表的主碼是學號,沒有外碼和數據約束,
課程表的主碼是課程號,沒有外碼,數據約束爲開課學期只能爲1-6,
選課表沒有主碼,外碼爲學號和課程號,數據約束爲成績在0-100之間

3)、實驗操作步驟和實驗結果,實驗中出現的問題和解決方法。
實驗步驟:
在這裏插入圖片描述
實驗結果:成功建立數據庫學生_課程及各表。
實驗中出現的問題:不知道如何同時創建數據庫和在此數據庫各表。
解決方法:分開創建數據庫和在此數據庫各表
不知道如何給屬性增加數據約束。
解決方法:仔細瀏覽課件及上網搜索資料後就知道了。
4)、 體會和提高。
在接觸數據庫之前以爲數據庫挺難的,開始學習之後發現其實挺有趣的吧,開始實驗課之後,學的內容可以上手實驗了,自己動手建立數據庫及其數據庫中的各表,還有索引,約束條件那些,挺有意思的,在實驗的過程中,讓我知道了如何去用語句建立數據庫,建立表,如何在指定數據庫下建立表,讓我認識到了數據庫的語言sql和T-sql,雖然它們兩並沒有多大的區別。
六、注意事項
1)、建表中如果出現錯誤,應採用相應的修改結構或刪除結構的方法。
2)、 注意數據庫的主碼、外碼和數據約束的定義。
七、思考題
(1)、爲什麼要建立索引 ?學生_課程庫中建立多少索引合適。
答:建立索引可以加快查詢速度,學生_課程庫中建立兩個索引合適。

(2)、 學生_課程庫的選課表中,屬性學號、課程號採用數值型,還是採用字符型的 ? 採用哪種數據類型更好 ?
答:字符型,採用字符型更好,因爲有時候學號、課程號會採用字符加數值的形式。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章