- SQL Server 2008中文版項目教程(第3版)
- 宋曉峰 藺抗洪
- 4036字
- 2020-06-30 18:20:38
任務一 創建“教學管理數據庫”
SQL Server 2008提供了兩種方式創建數據庫。
● 圖形化交互方式。
● 命令方式。
圖形化交互方式是在【SQL Server Management Studio】的【新建數據庫】窗口中定義數據庫及其屬性。命令方式是在【SQL查詢】標簽頁中編寫并執行T-SQL命令來定義數據庫屬性。不論哪種方式,對數據庫基本屬性的理解是執行本任務的主要目的。
創建數據庫的過程就是定義數據庫屬性的過程。創建數據庫時除了數據庫名稱外,SQL Server都可以自動設置默認值。但是默認值并不一定能夠滿足實際項目的需要,必須由數據庫管理員(Database Administrator,DBA)分析具體需求,確定符合要求的屬性值。描述數據庫的屬性非常多,對于初學者只需要掌握幾個基本屬性的含義。
【基礎知識】
在介紹數據庫的相關基礎知識之前,首先講解一下“數據庫”與“實例”的關系。實例是一套完整的服務程序,而數據庫是實例的一個重要組成部分。數據庫的主要功能是有效地存儲數據,實例則提供管理和操作數據的相關程序。一個實例中可以包含多個數據庫,實例中既包括用戶根據實際需要創建的數據庫,也包括每個實例必備的4個系統數據庫,如圖2-1所示。

圖2-1 創建數據庫
圖2-1所示的4個必備數據庫的用途將在以下的知識鏈接部分詳細說明。
1.數據庫名稱
每一個數據庫都有一個唯一標識,這個標識就是數據庫的名稱。例如,我們要為一個學校創建兩個數據庫,一個用來管理教學,一個用來管理財務,則可以用“教學管理數據庫”和“財務管理數據庫”來標識。在中文版SQL Server中可以為數據庫定義中文名稱,其含義一目了然。
2.數據文件
數據文件,顧名思義是存放數據的文件。我們經常說數據是存儲在數據庫表里的,其實表只是對數據按含義和邏輯關系作的分類,它并不反映數據的物理存儲方式。數據經過有效地排列、壓縮之后存儲在硬盤的文件中,這種文件的格式不是我們熟悉的Text格式、Word格式或者Excel格式,只有利用專門的數據庫工具才能查看這些文件的具體內容。
數據文件有3個基本屬性。
(1)數據文件的“邏輯名稱”和“操作系統文件名”
每一個數據文件都有一個唯一的標識,這個標識就是數據文件的“邏輯名稱”,而“操作系統文件名”是數據文件在硬盤上的所在的文件夾和文件名的統稱。例如,要為“教學管理數據庫”定義一個名為“Pri_教學管理1”的數據文件,“Pri_教學管理1”就是“邏輯名稱”。該數據文件存放在硬盤“D”分區的“教學管理”文件夾下,字符串“D:\教學管理\Pri_教學管理1.mdf”就是它的“操作系統文件名”。
(2)數據文件分類
在SQL Server中數據文件分為以下兩類。
● 主要數據文件。
● 次要數據文件。
主要數據文件不僅包括應用數據還包括啟動數據庫時的必要信息。主要數據文件是必需的,而且一個數據庫只能有一個主要數據文件。次要數據文件是可選的,也可以不只一個。這兩種文件的“邏輯名稱”和“操作系統文件名”都可以由用戶自己定義,但它們的擴展名則各不相同,主要數據文件的文件擴展名是“.mdf”,次要數據文件的文件擴展名是“.ndf”。
(3)數據文件大小
數據文件的大小有以下3種表示方式。
● 初始尺寸。
● 最大尺寸。
● 文件增長尺寸。
初始尺寸是創建數據庫時指定的文件大小。最大尺寸表示一個數據文件的最大容量,因為硬盤的容量不論有多大畢竟是有限的,數據文件的最大尺寸不能大于硬盤的尺寸,數據文件達到最大尺寸后需要創建新的數據文件。文件增長尺寸是指在數據的存儲過程中,當數據文件達到初始尺寸后自動增長的尺度。
3.數據文件組
數據文件通常不只一個,這些文件既可以集中存放在一個硬盤分區上,也可以分布在多個硬盤分區上。如果一個表中的數據分別存放在不同的數據文件中,檢索數據時,從多個文件中同時查找,可以提高查詢效率。將多個有關聯關系的數據文件劃分為同一組,稱為“數據文件組”,可以簡稱為“文件組”。
文件組分為“主要文件組”和“用戶定義文件組”。包含主要數據文件的文件組稱為“主要文件組”,名稱必須為“PRIMARY”。由用戶自己定義的文件組稱為“用戶定義文件組”。主要數據文件必須在PRIMARY組中,次要數據文件可以在PRIMARY組中,也可以在“用戶定義文件組”中。
4.事務日志文件
為了提高數據庫的操作效率,也為了能夠在撤銷某些錯誤操作后,使數據庫回到錯誤操作之前的狀態,數據庫的每一個操作結果不是立即更新到數據文件中,而是將結果暫時存放在一個臨時文件中。這個文件就是“事務日志文件”。只有確認了操作結果或事務日志文件達到一定容量后,才將最終結果更新到數據文件中。
事務日志文件也包括“邏輯名稱”和“操作系統文件名”,其含義和數據文件的相同。一個數據庫可以有多個事務日志文件,也可以存放在硬盤的不同分區上。事務日志的文件擴展名是“.ldf”。
(一)在【數據庫屬性】對話框中創建數據庫
在【數據庫屬性】對話框中定義數據庫屬性,操作非常簡單,需要定義的屬性一目了然,只需要清楚以上基本屬性的含義,其余屬性采用默認值即可。
【操作目標】
本任務要求為“教學管理實例”創建“教學管理數據庫”,其數據文件、文件組和事務日志文件見表2-1。
表2-1 “教學管理數據庫”的數據文件和事務日志文件

【操作步驟】
STEP 1 啟動【SQL Server Management Studio】程序,展開【教學管理實例】節點。在【數據庫】子節點上單擊鼠標右鍵,彈出快捷菜單,如圖2-2所示。

圖2-2 輸入“教學管理數據庫”
STEP 2 單擊【新建數據庫】菜單項,打開【新建數據庫】對話框。在【數據庫名稱】文本框中輸入“教學管理數據庫”,如圖2-3所示。

圖2-3 輸入數據庫名稱
STEP 3 單擊按鈕,在【數據庫文件】列表框中添加一條數據文件記錄。在新增加的記錄的【文件組】欄位,展開下拉列表框,點擊“<新文件組>”。在顯示的【教學管理數據庫的新建文件組】對話框中,在【名稱】文本框中輸入“UserFleGrp1”,如圖2-4所示。點擊
按鈕返回【新建數據庫】對話框,并按照“表2-1”中的內容輸入和修改數據文件和事務日志文件的邏輯文件名和初始大小。

圖2-4 新建文件組
STEP 4 在“Pri_教學管理1”記錄行中,單擊按鈕,顯示【更改Pri_教學管理1的自動增長設置】對話框。選中【啟用自動增長】復選框,選中【文件增長】選項組中的【按MB(M)】單選按鈕,并在其后的數值框中輸入“5”,選中【最大文件大小】選項組中的【限制文件增長(MB)(R)】單選按鈕,并在其后的數值框中輸入“60”,如圖2-5所示。

圖2-5 設置自動增長方式
STEP 5 單擊按鈕退出【更改Pri_教學管理1的自動增長設置】對話框。按照同樣方式設置“Snd_教學管理1”和“LF_教學管理1”的自動增長方式和最大文件限制。
STEP 6 在【數據庫文件】列表框中,為各個數據文件和事務日志文件輸入“表2-1”所示的操作系統文件名,即【路徑】和【文件名】欄位,如圖2-6所示。

圖2-6 設置操作系統文件名
STEP 7 單擊按鈕,創建“教學管理數據庫”。創建成功后在【對象資源管理器】中,在【教學管理實例】節點的【數據庫】節點下自動增加了【教學管理數據庫】子節點,以及【教學管理數據庫】的【數據庫關系圖】、【表】、【視圖】和【可編程性】等子節點,如圖2-7所示。

圖2-7 “教學管理數據庫”及其子節點
【知識鏈接】
在“教學管理實例”創建成功后,SQL Server自動為其創建了4個系統數據庫。每一個實例都擁有4個系統數據庫用于存儲基本信息。系統數據庫既不能修改也不能刪除。初學者只要了解它們的功能就行了;在對SQL Server有了更深的理解之后再去研究它們。下面簡要介紹它們的功能。
(1)master
master數據庫記錄實例的系統級信息,如登錄賬戶、鏈接服務器等系統配置。master數據庫還記錄所有其他數據庫是否存在及這些數據庫文件的位置。另外,master還記錄實例的初始化信息。因此,如果master數據庫不可用,則實例無法啟動。創建用戶自定義的數據庫時必須在master數據庫下創建。
(2)model
model數據庫用作在實例上創建的所有數據庫的模板。
(3)msdb
msdb數據庫由SQL Server Agent管理警報方案和作業調度。
(4)tempdb
tempdb是連接到實例的所有用戶都可用的全局資源,它保存所有臨時表和臨時存儲過程。每次啟動SQL Server時,都要重新創建tempdb,以便保證該數據庫總是空的。在斷開連接時會自動刪除臨時表和存儲過程。
(二)用create database語句創建數據庫
通過對本節的執行,讀者應掌握create database的基本語法,并能夠在今后的學習工作中熟練使用。
【基礎知識】
(1)T-SQL介紹
結構化查詢語言(Structured Query Language,SQL)是目前使用最廣泛的數據庫標準查詢語言。SQL首先由IBM公司開發,后來被許多數據庫管理軟件公司接受而成為了行業內的一個標準。現在最新的標準是SQL99。
SQL是一種類似于英語的描述語言,易于理解。通常將SQL分為以下兩個基本類型。
● DDL(Data Definition Language)。
● DML(Data Manipulation Language)。
DDL用于定義、修改數據庫對象,包括create(創建)、alter(修改)和drop(刪除)命令。DML用于檢索、更新表中的記錄,包括insert(添加)、delete(刪除)、update(修改)和select(查詢)命令。
SQL是目前使用廣泛的數據庫管理軟件(SQL Server、Oracle、DB2、Sybase等)的語言標準。Transact-SQL(簡稱T-SQL)是Microsoft公司在標準SQL的基礎上創建的符合SQL Server特點的數據庫訪問語言,一直以來就是SQL Server的開發、管理工具。
(2)create database的語法
create database的語法雖然復雜,但實質還是對屬性的定義。為了方便讀者理解,把語句分解成幾個有序的項目,每一個項目對應一個屬性,并且與本示例結合,給出對應的項目,見表2-2。將各項目按順序組合起來就形成一個完整的create database語句。
表2-2 create database的語法規則

需要注意以下3點規則。
● 創建數據庫時必須在master數據庫下創建。
● 主要文件組和次要文件組之間必須用“,”隔開。
● 同一文件組的各個文件的屬性用“( )”括起來,文件之間用“,”隔開。
【操作目標】
本節要求用create database創建“教學管理數據庫”,數據庫的屬性見表2-1。
【操作步驟】
STEP 1 啟動【SQL Server Management Studio】程序,點擊快捷按鈕,在【SQL查詢】標簽頁中輸入表2-2所示的“本示例語句”列的語句。單擊工具欄上的
按鈕,執行create database語句。執行成功后系統提示成功信息,如圖2-8所示。

圖2-8 用create database創建數據庫
STEP 2 在【對象資源管理器】窗口中,刷新并展開【教學管理實例】節點的【數據庫】子節點,會看到存在一個名為“教學管理數據庫”的子節點。
請讀者注意,因為不是通過交互方式創建的數據庫,所以在create database執行成功后,【數據庫】節點下面不會自動出現【教學管理數據庫】子節點,需要對【數據庫】節點刷新后才能看到。后面的操作中,每一個通過T-SQL語句創建、修改的數據庫對象都要通過刷新來查看結果。
- Facebook Application Development with Graph API Cookbook
- 深度實踐OpenStack:基于Python的OpenStack組件開發
- C++面向對象程序設計(微課版)
- Java Web程序設計
- Processing互動編程藝術
- QTP自動化測試進階
- Visual FoxPro程序設計
- The Complete Coding Interview Guide in Java
- Modern C++ Programming Cookbook
- OpenCV 3 Blueprints
- Django Design Patterns and Best Practices
- 交互式程序設計(第2版)
- .NET 4.0面向對象編程漫談:應用篇
- 3D Printing Designs:Octopus Pencil Holder
- R語言數據分析從入門到實戰