本書采用項目導向的形式編寫,以任務為核心,由任務驅動,選擇學生比較熟悉的“學生管理數據庫系統”的案例來組織教學內容,通過對連貫的項目、具體任務的介紹,可以較容易地掌握相關知識并且形成系統概念,易學易會。
本書通過對學生管理數據庫關系模式的設計,數據庫的創建和管理,表和記錄的操作,數據的查詢,視圖的管理等12個項目循序漸進地展開教學內容。主要介紹了學生管理數據庫的創建和管理,同時也介紹了數據庫的Web應用,將一個以數據庫為后臺數據中心的Web應用系統有序地展示在讀者面前,從而幫助讀者逐步實現系統分析、設計和應用數據庫的能力。
本書可以作為應用型本科、高職高專以及成人教育相關課程的教材,也是一本很好的自學教材和參考書。
項目一 掌握數據庫基礎知識 1
任務一 學生管理數據庫系統基本需求 2
任務二 數據庫基礎知識 7
任務三 數據庫系統的結構 14
任務四 初步認識SQL Server 2005 24
項目小結 37
上機實訓 37
習題 39
項目二 設計數據庫關系模式 43
任務一 認識關系數據庫 44
任務二 數據庫設計步驟 60
任務三 使用E-R模型設計數據庫模式 69
項目小結 74
上機實訓 74
習題 75
項目三 創建和管理數據庫 77
任務一 創建數據庫 79
任務二 查看數據庫 87
任務三 修改數據庫 90
任務四 刪除數據庫 94
任務五 分離或附加數據庫 95
任務六 備份或還原數據庫 99
項目小結 105
上機實訓 105
習題 106
項目四 創建和管理數據庫表 107
任務一 創建數據庫表 108
任務二 設計表數據完整性 117
任務三 修改數據庫表 126
任務四 刪除數據庫表 131
任務五 創建和管理索引 133
項目小結 141
上機實訓 141
習題 143
項目五 編輯數據庫表記錄 147
任務一 插入記錄 148
任務二 更新記錄 152
任務三 刪除記錄 155
任務四 數據的導入和導出 157
項目小結 168
上機實訓 168
習題 169
項目六 數據查詢 171
任務一 基本查詢 173
任務二 連接查詢 189
任務三 子查詢 197
任務四 集合查詢 203
項目小結 205
上機實訓 206
習題 207
項目七 創建和管理數據庫視圖 209
任務一 創建視圖 210
任務二 系統存儲過程在視圖中的
應用 217
任務三 修改視圖 220
任務四 刪除視圖 223
任務五 使用視圖 225
項目小結 228
上機實訓 228
習題 229
項目八 數據庫編程基礎 231
任務一 Transact-SQL基礎 232
任務二 表達式 236
任務三 流程控制 241
任務四 函數 246
項目小結 262
上機實訓 262
習題 263
項目九 創建和管理數據庫存儲過程 265
任務一 創建存儲過程 266
任務二 執行存儲過程 275
任務三 修改存儲過程 282
任務四 查看存儲過程 283
任務五 刪除存儲過程 288
項目小結 289
上機實訓 290
習題 291
項目十 創建和管理觸發器 293
任務一 創建DML觸發器 295
任務二 管理DML觸發器 303
任務三 創建和管理DDL觸發器 307
項目小結 311
上機實訓 312
習題 312
項目十一 安全管理數據庫 315
任務一 身份驗證管理 316
任務二 權限管理 322
任務三 角色管理 332
項目小結 346
上機實訓 346
習題 348
項目十二 數據庫綜合應用案例 349
任務一 創建應用程序項目文件 351
任務二 數據組件的設計和使用 365
任務三 用戶頁面設計 374
任務四 通過ASP.NET頁面操縱
數據庫 382
項目小結 393
上機實訓 393
習題 394
習題參考答案 395
參考文獻 399
項目一
掌握數據庫基礎知識
項目導入
數據庫技術是信息處理的基礎,它不僅反映數據本身所代表的基本信息,還反映數據之間的聯系,是相關數據的集合。數據庫技術是計算機領域發展最快的學科之一,目前,數據庫技術已從第一代的網狀、層次數據庫系統,第二代的關系數據庫系統,發展到以面向對象模型為主要特征的第三代數據庫系統。其中建立在關系模型基礎上的關系數據庫是當前最流行的、應用最廣泛的數據庫,當前所開發的基于數據庫的應用系統基本上都是關系數據庫。
因此,在本項目中,首先對數據庫的基礎知識進行初步的討論,然后對數據庫開發所使用的平臺SQL Server 2005再作概括介紹。
項目分析
數據庫技術是為了解決計算機信息處理過程中大量數據有效地組織和存儲的問題,在數據庫系統中減少數據存儲冗余、實現數據共享、保障數據安全以及高效地檢索數據和處理數據而設計的,所以,數據庫是相關數據的集合。
本教材中以“學生管理數據庫系統”為教學案例,以關系數據庫技術作為基礎,不但需要對數據庫的基礎理論有一定的了解,同時還需要掌握一種數據庫開發平臺,即數據庫管理系統(DBMS)的使用方法,才能在開發平臺上有效地開發出一個實用的學生管理數據庫系統。因此,本項目將包括數據庫的基礎知識介紹和數據庫開發平臺SQL Server 2005的使用能力訓練兩部分內容。
能力目標
* 了解學生管理數據庫的基本需求。
* 了解數據管理技術的3個階段。
* 掌握數據庫、數據管理系統和數據庫系統的基本概念。
* 掌握SQL Server數據庫的基本組成和有關知識。
知識目標
* 能根據實際環境進行數據庫應用系統的需求分析和功能設計。
* 具備使用數據庫理論分析相關信息抽象數據的能力。
* 了解并掌握數據庫開發平臺SQL Server 2005的概況和基本設置方法。
任務一 學生管理數據庫系統基本需求
【任務要求】
根據學生管理的工作流程,對學生管理數據庫系統進行整體分析與規劃。
* 分析學生管理數據庫系統的整體需求,掌握需求分析的基本方法。
* 規劃學生管理數據庫系統應具備的功能模塊。
【知識儲備】
一個數據庫應用系統的開發設計通常要經歷多個環節,簡單地說可以分為對應用系統前臺應用界面(應用層)和后臺數據庫(數據層)兩個部分的設計,每一部分的設計都是一個龐大、復雜的工程,因此,通常都是結合軟件工程的原理和方法進行數據庫軟件的設計。從一個應用軟件開發的角度講,一般一個數據庫應用系統的開發流程如圖1-1所示。
圖1-1 數據庫應用系統開發流程
就數據庫系統的規劃設計來講,一般設計過程包括需求分析、數據庫概念結構設計、數據庫邏輯結構設計、數據庫物理結構設計、數據庫實施及數據庫的運行維護6個環節。設計一個數據庫應用系統,首先要對系統的應用環境進行分析,掌握用戶需求,這是整個開發的基礎。需求分析的準確與否,關系到數據庫應用系統的開發質量,本任務將主要討論學生管理數據庫系統的需求分析環節。
1. 需求分析的任務
需求分析是指在開發設計開始階段,收集用戶的功能要求,了解系統的應用環境,對需要使用的數據進行收集整理,建立起一個完整數據集的過程。比如系統的用戶種類、相關應用的歷史數據、有關表單資料的查閱以及實際運作流程等,從而得出所開發系統功能的運行過程。
用戶需求包括數據需求和處理需求兩部分。數據需求是指數據庫中存儲哪些數據結構;處理需求是指用戶要完成什么處理功能,以及對這些處理的響應時間、處理方法等有什么要求。
需求分析階段的任務主要包括以下幾個方面。
(1) 分析用戶活動,產生業務流程圖。
了解用戶當前的業務活動和職能,理清其處理流程。把用戶業務分成若干個子處理過程,使每個處理功能明確、界面清楚,并畫出業務流程圖。
(2) 確定系統范圍,產生系統范圍圖。
在和用戶經過充分討論的基礎上,確定計算機所能進行數據處理的范圍,確定哪些工作由人工完成,哪些工作由計算機系統完成,即確定人機界面。
(3) 分析用戶活動所涉及的數據,產生數據流圖。
深入分析用戶的業務處理,以數據流圖形式表示出數據庫的方向和對數據所進行的加工。數據流圖有四個基本成分:數據流、加工或處理、文件、外部實體。
(4) 分析系統數據,產生數據字典。
數據字典提供對數據庫時間描述的集中管理,其功能是存儲和檢索各種數據描述。數據字典是數據收集和數據分析的主要成果,在數據庫設計中占有很重要的地位。
2. 需求分析的方法
調查了解了用戶的需求以后,還需要進一步分析和表達用戶的需求。用于需求分析的方法有很多種,主要的方法有自頂向下和自底向上兩種,其中自頂向下的結構化分析方法(Structured Analysis,SA)是一種簡單實用的方法。
1) SA方法
SA方法是從最上層的系統組織入手,采用自頂向下、逐層分解的方法分析系統。SA方法把每個系統都抽象成圖1-2所示的數據流圖形式。
圖1-2 系統最上層的數據流圖
在SA方法中,處理過程的處理邏輯常常借助判定表和判定樹來描述,系統中的數據則借助數據字典(DD)來描述。
2) 數據流圖
數據流圖(Data Flow Diagram,DFD)表達了數據與處理的關系。數據流圖中的基本元素如下。
(1) 圓圈符:表示處理,輸入數據在此進行變換產生輸出數據。在其中注明處理的名稱。
(2) 矩形符:描述一個輸入源點或輸出匯點。在其中注明源點或匯點的名稱。
(3) 箭頭:命名的箭頭描述一個數據流。內容包括被加工的數據及其流向,流線上要注明數據名稱,箭頭代表數據流動的方向。
(4) 右開口矩形框:向右開口的矩形框表示文件和數據存儲,要在其內標明相應的具體名稱。
3) 數據字典
數據流圖表達了數據和處理的關系,數據字典則是系統中各類數據描述的集合,是各類數據結構和屬性的清單。它與數據流圖互為解釋,數據字典貫穿于數據庫需求分析直到數據庫運行的全過程。在不同的階段,其內容形式和用途各有區別,在需求分析階段,它通常包含以下5個部分的內容。
(1) 數據項。
數據項是不可再分的數據單位,通常包括數據項名、含義、別名、類型、長度、取值范圍以及與其他數據項的邏輯關系。
(2) 數據結構。
數據結構反映了數據之間的組合關系。一個數據結構可以由若干個數據項組成,也可以由若干個數據結構組成,或由若干個數據項和數據結構混合組成。它包括數據結構名、含義及組成該數據結構的數據項名或數據結構名。
(3) 數據流。
數據流可以是數據項,也可以是數據結構,它表示某一加工處理過程的輸入或輸出數據。數據流包括數據流名、說明、流出的加工名、流入的加工名以及組成該數據流的數據結構或數據項。
(4) 數據存儲。
數據存儲是處理過程中要存儲的數據,它可以是手工憑證、手工文檔或計算機文檔。數據存儲包括數據存儲名、說明、輸入數據流、輸出數據流、數據量、存取頻率和存取方式。
(5) 處理過程。
處理過程包括處理過程名、說明、輸入數據流、輸出數據流,并簡要說明處理工作、頻度要求、數據量及響應時間等。
最終形成的數據流圖和數據字典是“系統需求分析說明書”的主要內容,是下一步進行概念結構設計的基礎。
在本任務中,從項目準備的角度,對學生管理數據庫系統先做一個整體的概括分析,對學生管理數據庫中所需要準備的數據及其相關理論進行一個框架層面上的了解,為后續進行數據庫規劃和應用開發做好充足的知識和技能上的準備。
【任務實施】
學生管理數據庫系統,具有不同的用戶群體,不同的用戶群體又對數據有著不同的需求,正確地分析相應用戶的要求并恰當地將其表達出來,是學生管理數據庫系統設計的起始工作。在本任務實施前,首先要對用戶環境進行準確的分析。
1. 用戶類型分析
學生管理數據庫系統通常的用戶為學生、教師和教學管理人員。不同的用戶有不同的信息查詢和信息管理要求。學生管理數據庫系統,應便于應用系統的管理員對數據庫中的基本信息數據進行管理和維護,教師用戶能夠對基本信息進行查詢并對部分信息進行更新管理,學生對與自己相關的數據可以進行查詢,對個人的基本信息可以進行維護。
2. 功能需求分析
學生管理數據庫系統其主要功能是實現基礎資料、學生管理、課程管理和成績管理四大模塊的管理。其中,基礎資料中包括院系、班級、宿舍、教師基本資料的管理,還包括對記錄的增加、刪除、修改和查詢;學生管理中,包括學生檔案和學生學籍的管理,還包括對其中學生各個屬性的增加、刪除、修改和查詢;課程管理中,包括對新的課程進行設置,以及對班級選課的管理;成績管理中,包括對學生成績的錄入和對學生成績進行分析管理。
【任務實踐】
1. 設計完成學生管理數據庫系統的數據流圖
根據任務實施環節對學生管理數據庫系統應用環境的分析,繪制學生管理數據庫系統的數據流圖,如圖1-3所示。
圖1-3 學生管理數據庫系統的數據流圖
2. 設計相關功能模塊
根據功能需求分析的情況,確定學生管理數據庫系統的功能模塊。
(1) 基本信息管理:包括院系信息管理和專業信息管理等功能。
(2) 班級信息管理:包括班級信息管理和班級信息瀏覽等功能。
(3) 教師信息管理:包括教師信息錄入和管理等功能。
(4) 學生基本信息管理:包括學生信息的錄入、管理、查詢以及導入、導出等功能。
(5) 系統維護:主要用于實現數據的備份、還原和清理功能。
(6) 用戶管理:主要用于實現用戶管理、更改密碼等功能。
……