版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、數(shù)據(jù)庫原理與應(yīng)用主編:第一章 數(shù)據(jù)庫應(yīng)用基礎(chǔ) 學(xué)籍管理系統(tǒng)案例分析學(xué)習(xí)目標(biāo):了解數(shù)據(jù)庫系統(tǒng)的基礎(chǔ)知識(shí)能根據(jù)用戶要求實(shí)施系統(tǒng)需求分析能根據(jù)系統(tǒng)需求分析搭建關(guān)系模型積累職業(yè)素質(zhì)培養(yǎng)團(tuán)隊(duì)合作精神和語言表達(dá)能力任務(wù)的提出 新學(xué)期開始了,學(xué)生曉靈被班主任良老師叫到了辦公室。良老師說:“曉靈呀!咱們班的同學(xué)學(xué)習(xí)計(jì)算機(jī)知識(shí)有一段時(shí)間了。你作為咱們班的班長能不能利用所學(xué)到的計(jì)算機(jī)知識(shí)開發(fā)一個(gè)軟件來管理咱們班的學(xué)生信息。這樣一來,你既提高了專業(yè)知識(shí)水平和解決實(shí)際問題的能力,也更好地管理這咱們班,為同學(xué)提供更好地服務(wù)!如果這個(gè)軟件做得好,我們還可以推廣到整個(gè)年級(jí)、整個(gè)系乃至整個(gè)學(xué)院?!睍造`說:“做這個(gè)軟件非常有意
2、義,我非常愿意做這釿事。但就憑我目前所掌握的那點(diǎn)計(jì)算機(jī)知識(shí)來做這件事難度很大?!毙杩紤]的問題要想實(shí)現(xiàn)這樣的一個(gè)系統(tǒng),你首先應(yīng)該考慮好以下幾個(gè)問題:第一,要確定這個(gè)系統(tǒng)的使用者,及其操作計(jì)算機(jī)的水平、能力和素質(zhì)。第二,要確定系統(tǒng)的用戶對(duì)系統(tǒng)功能要求并且這些功能是否允許分期實(shí)現(xiàn),從而確定系統(tǒng)的邊界。第三,確定系統(tǒng)的使用環(huán)境和運(yùn)行環(huán)境。如系統(tǒng)是運(yùn)行在單機(jī)上還是運(yùn)行在網(wǎng)絡(luò)中?系統(tǒng)可能在哪些操作系統(tǒng)上運(yùn)行?第四,系統(tǒng)用戶對(duì)系統(tǒng)的性能、穩(wěn)定性有哪些要求?” 1.2 數(shù)據(jù)庫系統(tǒng)概述 1.數(shù)據(jù)庫系統(tǒng)的概念:數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫系統(tǒng) 2.數(shù)據(jù)庫系統(tǒng)的發(fā)展相關(guān)知識(shí)點(diǎn)1.2.1 數(shù)據(jù)庫系統(tǒng)的概念 1
3、數(shù)據(jù)(DATA)數(shù)據(jù)是指存儲(chǔ)在某一種媒體上能夠識(shí)別的物理符號(hào)。數(shù)據(jù)的概念包括兩個(gè)方面:其一是描述事物特性的數(shù)據(jù)內(nèi)容;其二是存儲(chǔ)在某一種媒體上的數(shù)據(jù)形式。 2數(shù)據(jù)庫(DataBase,簡稱DB) 數(shù)據(jù)庫指長期存儲(chǔ)在計(jì)算機(jī)內(nèi)有組織的、可共享的數(shù)據(jù)集合。數(shù)據(jù)庫中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和存儲(chǔ),具有較小的冗余度,較高的數(shù)據(jù)獨(dú)立性和易擴(kuò)展性,并可為各種用戶共享。 3數(shù)據(jù)處理 數(shù)據(jù)處理是指對(duì)各種形式的數(shù)據(jù)進(jìn)行收集、存儲(chǔ)、加工和傳播的一系列活動(dòng)的總和。其目的之一是從大量的、原始的數(shù)據(jù)中抽取、推導(dǎo)出對(duì)人們有價(jià)值的信息以作為行動(dòng)和決策的依據(jù);目的之二是為了借助計(jì)算機(jī)技術(shù)科學(xué)地保存和管理復(fù)雜的、大量的數(shù)據(jù)
4、,以便人們能夠方便而充分地利用這些寶貴的信息資源 4數(shù)據(jù)庫技術(shù) 數(shù)據(jù)庫技術(shù)是研究數(shù)據(jù)庫結(jié)構(gòu)、存儲(chǔ)、設(shè)計(jì)、管理和使用的一門軟件科學(xué)。數(shù)據(jù)庫技術(shù)是使數(shù)據(jù)能按一定格式組織、描述和存儲(chǔ),且具有較小的冗余度,較高的數(shù)據(jù)獨(dú)立性和易擴(kuò)展性,并可為多個(gè)用戶所共享的技術(shù)。 5數(shù)據(jù)庫管理系統(tǒng)(Data Base Management System,DBMS)數(shù)據(jù)庫管理系統(tǒng)指位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件。數(shù)據(jù)庫在建立、運(yùn)用和維護(hù)時(shí)由數(shù)據(jù)庫管理系統(tǒng)統(tǒng)一管理、統(tǒng)一控制。數(shù)據(jù)庫管理系統(tǒng)使用戶能方便地定義數(shù)據(jù)和操縱數(shù)據(jù),并能夠保證數(shù)據(jù)的安全性、完整性、多用戶對(duì)數(shù)據(jù)的并發(fā)使用及發(fā)生故障后的系統(tǒng)恢復(fù),它的職能是有效
5、地組織和存儲(chǔ)數(shù)據(jù)、獲取和管理數(shù)據(jù),接受和完成用戶提出的訪問數(shù)據(jù)的各種請(qǐng)求 6數(shù)據(jù)庫系統(tǒng)(DataBaseSystem,簡稱DBS)數(shù)據(jù)庫系統(tǒng)指在計(jì)算機(jī)系統(tǒng)中引入數(shù)據(jù)庫后構(gòu)成的系統(tǒng),一般由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)(及其開發(fā)工具)、應(yīng)用系統(tǒng)、數(shù)據(jù)庫管理員和用戶構(gòu)成。最終用戶專業(yè)用戶數(shù)據(jù)庫管理員各系統(tǒng)間的關(guān)系圖1.2.2 數(shù)據(jù)庫系統(tǒng)的發(fā)展第一代:層次和網(wǎng)狀數(shù)據(jù)庫系統(tǒng)第二代:關(guān)系數(shù)據(jù)庫系統(tǒng)第三代:以面向?qū)ο髷?shù)據(jù)模型為主要特征的數(shù)據(jù)庫系統(tǒng)1.3 信息描述與數(shù)據(jù)模型 所謂信息是客觀事物在人類頭腦中的反映。人們可以從現(xiàn)實(shí)世界中獲得各種各樣的信息,從而了解世界并且相互交流。但是信息的多樣化特性使得人們在描述和管
6、理這些數(shù)據(jù)時(shí)往往力不從心,因此人們把表示事物的主要特征抽象地用一種形式化的描述表示出來,模型方法就是這種抽象的一種表示。信息領(lǐng)域中采用的模型通常稱為數(shù)據(jù)模型。 根據(jù)模型應(yīng)用的不同目的,可以將模型分為兩類或者說兩個(gè)層次:一是概念數(shù)據(jù)模型(也稱信息模型),是按用戶的觀點(diǎn)來對(duì)數(shù)據(jù)和信息建模;一是邏輯數(shù)據(jù)模型(如網(wǎng)狀、層次、關(guān)系模型),是按計(jì)算機(jī)系統(tǒng)的觀點(diǎn)對(duì)數(shù)據(jù)建模 1.3.1 數(shù)據(jù)模型及其三要素?cái)?shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)是對(duì)系統(tǒng)靜態(tài)特性的描述。 數(shù)據(jù)操作數(shù)據(jù)操作是指對(duì)數(shù)據(jù)庫中各種對(duì)象實(shí)例所允許執(zhí)行操作的集合,包括操作和有關(guān)的操作的規(guī)則。 數(shù)據(jù)的完整性約束數(shù)據(jù)的約束條件是完整性規(guī)則的集合,用以限定符合數(shù)據(jù)模型的
7、數(shù)據(jù)庫狀態(tài)以及狀態(tài)的變化,以保證數(shù)據(jù)的正確、有效和相容。 1.3.2 數(shù)據(jù)模型的分類概念數(shù)據(jù)模型邏輯數(shù)據(jù)模型物理數(shù)據(jù)模型1.3.3概念模型及其表示方法概念模型是對(duì)現(xiàn)實(shí)世界的抽象反映,它不依賴于具體的計(jì)算機(jī)系統(tǒng),是現(xiàn)實(shí)世界到數(shù)據(jù)世界的一個(gè)中間層次, 如圖1.1所示。轉(zhuǎn)換認(rèn)識(shí)抽象信息世界 概念模型數(shù)據(jù)世界DBMS支持的數(shù)據(jù)模型現(xiàn)實(shí)世界圖1.1 數(shù)據(jù)抽象過程圖1.信息實(shí)體的概念實(shí)體:實(shí)體是客觀存在并可相互區(qū)分的事物。屬性:屬性是實(shí)體所具有的特性。一個(gè)實(shí)體可以由若干個(gè)屬性來描述。鍵:能夠惟一標(biāo)識(shí)實(shí)體的屬性集稱為鍵,也叫關(guān)鍵字。實(shí)體集:具有相同屬性的實(shí)體的集合稱為實(shí)體集。聯(lián)系:現(xiàn)實(shí)世界中事物之間的聯(lián)系必
8、然要在信息世界中加以反映。包括兩類聯(lián)系:一個(gè)是實(shí)體內(nèi)部的聯(lián)系,是指實(shí)體各個(gè)屬性之間的聯(lián)系;一個(gè)是實(shí)體之間的聯(lián)系。2.實(shí)體間的聯(lián)系一對(duì)一的聯(lián)系(1:1):如果實(shí)體集E1中的每一個(gè)實(shí)體至多和實(shí)體集E2中的一個(gè)實(shí)體有聯(lián)系,反之亦然,那么實(shí)體集E1與E2的聯(lián)系稱為“一對(duì)一聯(lián)系”記為1:1。例如,每個(gè)學(xué)生都有一個(gè)學(xué)號(hào),每位學(xué)生和學(xué)號(hào)之間具有一對(duì)一聯(lián)系。一對(duì)多聯(lián)系(1:M):如果實(shí)體集E1中的每個(gè)實(shí)體可以與實(shí)體集E2中的任意個(gè)(零個(gè)或多個(gè))實(shí)體間有聯(lián)系;而實(shí)體集E2中的每個(gè)實(shí)體至多與實(shí)體集E1中一個(gè)實(shí)體有聯(lián)系,那么稱實(shí)體集E1與實(shí)體集E2的聯(lián)系是“一對(duì)多聯(lián)系”,記為1:M。例如,一個(gè)班級(jí)內(nèi)有多名學(xué)生,而一
9、名學(xué)生只屬于一個(gè)班。班級(jí)與學(xué)生之間具有一對(duì)多聯(lián)系。多對(duì)多聯(lián)系(M: N)。如果實(shí)體集E1中的每個(gè)實(shí)體可以與實(shí)體集E2中的任意個(gè)(零個(gè)或多個(gè))實(shí)體間有聯(lián)系,反之亦然,那么稱E1與E2具有多對(duì)多聯(lián)系,記為M: N。例如,學(xué)生在選課時(shí),一個(gè)學(xué)生可以選修多門課程,一門課程也可以被多名學(xué)生選修,則學(xué)生和課程之間具有M: N聯(lián)系3.E-R模型模型,特別是具體的實(shí)物模型,人們并不陌生。例如,一張地圖、一組建筑設(shè)計(jì)沙盤、一架精致的航模飛機(jī),都是具體的模型。一眼望去,就會(huì)使人聯(lián)想到真實(shí)生活中的事物。模型是現(xiàn)實(shí)世界特征的模擬和抽象。要將現(xiàn)實(shí)世界轉(zhuǎn)變?yōu)闄C(jī)器能夠識(shí)別的形式,必須經(jīng)過兩次抽象,即使用某種概念模型為客觀事
10、物建立概念級(jí)的模型,將現(xiàn)實(shí)世界抽象為信息世界,然后再把概念模型轉(zhuǎn)變?yōu)橛?jì)算機(jī)上某一DBMS支持的數(shù)據(jù)模型,將信息世界轉(zhuǎn)變?yōu)闄C(jī)器世界概念模型的表示方法很多,其中最為著名、最為常用的是PPSChen于1976年提出的實(shí)體聯(lián)系方法(Entity-RelationshipAprroach)。該方法用E-R圖來描述現(xiàn)實(shí)世界的概念模型,E-R方法也稱為E-R概念模型。 實(shí)體聯(lián)系圖(ER圖)是抽象描述現(xiàn)實(shí)世界的有力工具。它通過畫圖將實(shí)體以及實(shí)體間的聯(lián)系刻畫出來,為客觀事物建立概念模型。下面以某學(xué)校計(jì)算機(jī)系的教學(xué)管理為例,說明實(shí)體聯(lián)系圖的建立方法。E-R圖表示方法E-R圖設(shè)計(jì)案例為了簡單起見,假設(shè)該計(jì)算機(jī)系教學(xué)
11、管理所涉及的實(shí)體有:1)教師。屬性有教師號(hào)、姓名、性別、年齡、職稱、專業(yè),其中教師號(hào)是碼。2)學(xué)生。屬性有學(xué)號(hào)、姓名、性別、年齡、籍貫、專業(yè),其中學(xué)號(hào)是碼。3)課程。屬性有課程號(hào)、課程名、學(xué)時(shí)數(shù)、學(xué)分、教材,其中課程號(hào)是碼。假設(shè)這些實(shí)體之間存在如下聯(lián)系:1)一個(gè)教師可以講授多門課程,一門課程可以被多位教師講授,即教師和課程之間是多對(duì)多的聯(lián)系。該聯(lián)系也可以表示為一個(gè)實(shí)體,這里將教師與課程之間的聯(lián)系命名為授課,假設(shè)其屬性有教師號(hào)和課程號(hào),它們分別是教師實(shí)體和課程實(shí)體各自的碼。2)一個(gè)學(xué)生可以選修多門課程,一門課程可以被多位學(xué)生選修,即學(xué)生和課程之間是多對(duì)多的聯(lián)系。這里將學(xué)生與課程之間的聯(lián)系命名為選
12、課,該聯(lián)系也可以表示為一個(gè)實(shí)體。假設(shè)其屬性有學(xué)號(hào)、課程號(hào)和成績。學(xué)號(hào)和課程號(hào)組成碼。其中學(xué)號(hào)和課程號(hào)分別是學(xué)生實(shí)體和課程實(shí)體各自的碼,成績是該聯(lián)系特有的屬性。 3)在某個(gè)時(shí)間和地點(diǎn),一位教師可指導(dǎo)多位學(xué)生,但每個(gè)學(xué)生在某個(gè)時(shí)間和地點(diǎn)只能被一位教師指導(dǎo),即教師和學(xué)生之間是一對(duì)多的聯(lián)系。這里把教師和學(xué)生之間的聯(lián)系命名為指導(dǎo),其屬性有教師號(hào)、時(shí)間和地點(diǎn)等E-R圖設(shè)計(jì)規(guī)定在E-R圖中規(guī)定:1)用長方形表示實(shí)體,在框內(nèi)寫上實(shí)體名。2)用橢圓形表示實(shí)體的屬性,并用線段把實(shí)體與其屬性連接起來。3)用菱形表示實(shí)體之間的聯(lián)系,菱形內(nèi)寫上聯(lián)系名。用線段把菱形與有關(guān)的實(shí)體連接,在線段旁標(biāo)上聯(lián)系的類型。若實(shí)體之間的聯(lián)
13、系也有屬性(實(shí)體以外的屬性),則把屬性和菱形也用線段連接起來教師實(shí)體圖學(xué)生實(shí)體圖課程實(shí)體圖實(shí)體聯(lián)系圖 關(guān)系模型是用規(guī)范的二維表結(jié)構(gòu)來表示實(shí)體以及實(shí)體間聯(lián)系的模型,由關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合和關(guān)系完整性規(guī)則三部分組成。關(guān)系數(shù)據(jù)結(jié)構(gòu)就是由一組關(guān)系結(jié)構(gòu)組成的集合, 1.4關(guān)系模型與關(guān)系數(shù)據(jù)庫1.關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)由規(guī)范的二維表結(jié)構(gòu)組成。在關(guān)系模型中,將規(guī)范的二維表稱為關(guān)系。每個(gè)關(guān)系由關(guān)系名、關(guān)系結(jié)構(gòu)和關(guān)系實(shí)例組成,對(duì)應(yīng)規(guī)范的二維表中的表名、表框架(表頭)和表中的行。一個(gè)規(guī)范的二維表由行和列組成,除第一行(表頭)以外,表的每一行稱為一個(gè)記錄(或稱為元組);表中的每一列稱為一個(gè)字段(
14、或稱為屬性),每個(gè)字段有字段名、字段數(shù)據(jù)類型和寬度,字段的取值范圍稱為值域。表頭的各列給出了各個(gè)字段的名字 2.表(關(guān)系)的性質(zhì)關(guān)系模型要求關(guān)系數(shù)據(jù)庫中的表必須具有如下性質(zhì):表中的每個(gè)字段值必須是一個(gè)值,不能是值的集合。字段必須是同質(zhì)的,即同一字段的各個(gè)值應(yīng)是同類型的數(shù)據(jù)。在同一個(gè)表中不能出現(xiàn)相同的字段名。表中不允許有完全相同的記錄,即每行記錄必須是唯一的。在一個(gè)表中記錄的次序是任意的。在一個(gè)表中字段的次序是任意的。 3.超鍵、關(guān)系鍵、候選鍵和主鍵在表中能唯一標(biāo)識(shí)記錄的字段組合稱為該表的超鍵。在表中能唯一標(biāo)識(shí)記錄且不包括多余字段的字段組合稱為該表的關(guān)系鍵。當(dāng)某些表中具有關(guān)系鍵特性的最小字段組合
15、有多個(gè),即一個(gè)表中有多個(gè)關(guān)系鍵時(shí),那么這些關(guān)系鍵都稱為該表的候選鍵。為了唯一地標(biāo)識(shí)表中的每一個(gè)記錄,保證記錄的唯一性,每個(gè)表都必須選擇一個(gè)候選鍵作為主鍵。每個(gè)表只能有一個(gè)主鍵。對(duì)于任意一個(gè)表,主鍵一經(jīng)選定,通常是不能隨意改變的。主鍵也稱為主關(guān)系鍵、鍵或主碼。1.4.2 關(guān)系模式和關(guān)系數(shù)據(jù)庫1關(guān)系模式 關(guān)系模式是對(duì)關(guān)系結(jié)構(gòu)(表結(jié)構(gòu))的描述;關(guān)系則是關(guān)系模式在某一時(shí)刻存儲(chǔ)的值,其值是動(dòng)態(tài)的、隨時(shí)間不斷變化的。 在具體的關(guān)系數(shù)據(jù)庫管理系統(tǒng)中,使用關(guān)系數(shù)據(jù)庫管理系統(tǒng)提供的SQL 語言的CREATE TABLE語句來定義關(guān)系模式的名稱、關(guān)系中的字段、字段類型、寬度、完整性約束等,將定義的語句稱為該關(guān)系的
16、關(guān)系模式。為了便于討論和描述,關(guān)系模式可以表示為: 關(guān)系名(字段名1,字段名2, ,字段名n ) 其中關(guān)系鍵用下畫線標(biāo)出,n是關(guān)系的目(也可稱為度)。2關(guān)系數(shù)據(jù)庫模式 關(guān)系數(shù)據(jù)庫模式是對(duì)關(guān)系數(shù)據(jù)庫結(jié)構(gòu)的描述,是由一組關(guān)系模式組成的集合。一個(gè)關(guān)系數(shù)據(jù)庫的結(jié)構(gòu)對(duì)應(yīng)一個(gè)具體的關(guān)系模型。上面給出的學(xué)生關(guān)系模型中STUDENT、COURSE和GRADE關(guān)系的結(jié)構(gòu)的可用下面的一組關(guān)系模式表示: STUDENT(學(xué)號(hào),姓名,年齡,性別,系名) COURSE(課程號(hào),課程名,學(xué)時(shí)數(shù),任課教師) GRADE(學(xué)號(hào),課程號(hào),成績)1.4.3 關(guān)系的完整性規(guī)則 關(guān)系模型的完整性規(guī)則是用來約束關(guān)系的,以保證數(shù)據(jù)庫中數(shù)
17、據(jù)的正確性和一致性。關(guān)系模型的完整性共有三類:實(shí)體完整性、參照完整性和用戶定義的完整性。數(shù)據(jù)完整性由實(shí)體完整性和參照完整性規(guī)則來維護(hù),實(shí)體完整性和參照完整性是關(guān)系模型必須滿足的完整性約束條件,由關(guān)系數(shù)據(jù)庫管理系統(tǒng)自動(dòng)支持 1. 實(shí)體完整性 實(shí)體完整性規(guī)則:若屬性A是基本關(guān)系R的主鍵,則屬性A不能取空值。對(duì)于實(shí)體完整性的說明如下: 一個(gè)基本關(guān)系對(duì)應(yīng)著一個(gè)現(xiàn)實(shí)世界的實(shí)體集。 現(xiàn)實(shí)世界中的實(shí)體是可區(qū)分的,即他們具有某種惟一的標(biāo)識(shí)。 關(guān)系模型中用主鍵作為惟一性標(biāo)識(shí)。 主碼不能取空值,因?yàn)橹麈I取空值說明存在某個(gè)不可標(biāo)識(shí)的實(shí)體,與第二點(diǎn)矛盾。2.參照完整性 在關(guān)系數(shù)據(jù)庫中,關(guān)系之間的聯(lián)系是通過公共屬性實(shí)現(xiàn)
18、的。這個(gè)公共屬性是一個(gè)表的主鍵和另一個(gè)表的外鍵。所謂外鍵是指若一個(gè)關(guān)系R中包含有另一個(gè)關(guān)系S的主鍵所對(duì)應(yīng)的屬性組F,則稱F為R的外鍵。外鍵的值必須是另一個(gè)表的主鍵的有效值或是一個(gè)“空值”。3.用戶自定義完整性 用戶自定義的完整性則是針對(duì)某一具體數(shù)據(jù)庫的約束條件,由應(yīng)用環(huán)境決定,它反映了某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求。如學(xué)習(xí)成績的取值范圍,用戶一般會(huì)定義在0100之間。數(shù)據(jù)庫管理系統(tǒng)應(yīng)提供定義和檢驗(yàn)這類完整性的機(jī)制,以便用統(tǒng)一的方法處理它們而不再由應(yīng)用程序完成這一任務(wù) 1.5關(guān)系數(shù)據(jù)庫規(guī)范化設(shè)計(jì)在關(guān)系數(shù)據(jù)庫中,對(duì)于同一個(gè)問題,選用不同關(guān)系模式集合作為數(shù)據(jù)庫模式,其性能的優(yōu)劣是大不相同
19、的,某些數(shù)據(jù)庫模式設(shè)計(jì)常常帶來存儲(chǔ)異常,這是不利于實(shí)際應(yīng)用的。為了區(qū)分?jǐn)?shù)據(jù)庫模式的優(yōu)劣,人們常常把數(shù)據(jù)庫模式分為各種不同等級(jí)的范式(NormalForm)。 在關(guān)系規(guī)范化中,通常將關(guān)系分為5個(gè)級(jí)別,即5種范式。滿足最低條件的稱為第一范式,簡稱1NF。1NF是關(guān)系模式應(yīng)滿足的最起碼的條件。在第一范式的基礎(chǔ)上進(jìn)一步滿足一些要求的可升級(jí)為第二范式,其余依次類推。通常,若關(guān)系R是第X范式就寫成RXNF。1.第一范式設(shè)R是一個(gè)關(guān)系模式,如果R中的每個(gè)屬性都是不可分解的,則稱R是第一范式,記為R1NF。第一范式要求不能表中套表,它是關(guān)系模式最基本的要求,數(shù)據(jù)庫模式中的所有關(guān)系模式必須是第一范式。關(guān)于第一范
20、式這個(gè)問題,在前面曾經(jīng)給過一個(gè)例子,這里再給出如圖所示的選課關(guān)系SC1,以此說明非第一范式的弊病。第二范式如果關(guān)系模式R是第一范式,且每個(gè)非碼屬性都完全依賴于碼屬性,則稱R是第二范式,記為R2NF。部分函數(shù)依賴關(guān)系是造成插入異常的原因。在第二范式中,不存在非碼屬性之間的部分函數(shù)依賴關(guān)系,即消除了部分函數(shù)依賴關(guān)系,因此第二范式解決了插入異常問題。第三范式如果關(guān)系模式R是第二范式,且沒有一個(gè)非碼屬性傳遞依賴于碼,則稱R是第三范式,記為R3NF。傳遞函數(shù)依賴關(guān)系是造成刪除異常的原因。第三范式消除了傳遞函數(shù)依賴部分,因此解決了數(shù)據(jù)的刪除異常問題。一個(gè)關(guān)系模式達(dá)到3NF,基本解決了“異常”問題,但還不能
21、徹底解決數(shù)據(jù)冗余問題。因?yàn)?NF不能很好地處理模型中含有多個(gè)候選關(guān)鍵字和候選關(guān)鍵字是組合項(xiàng)的情況,因此需要更強(qiáng)的范式。1.6 數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫設(shè)計(jì)是指對(duì)于一個(gè)給定的應(yīng)用環(huán)境,提供一個(gè)確定最優(yōu)數(shù)據(jù)模型與處理模式的邏輯設(shè)計(jì),以及一個(gè)確定數(shù)據(jù)庫存儲(chǔ)結(jié)構(gòu)與存取方法的物理設(shè)計(jì),建立起既能反映現(xiàn)實(shí)世界中信息和信息聯(lián)系,滿足用戶數(shù)據(jù)要求和加工要求,又能被某個(gè)數(shù)據(jù)庫管理系統(tǒng)所接受,同時(shí)能實(shí)現(xiàn)系統(tǒng)目標(biāo),并有效存取數(shù)據(jù)的數(shù)據(jù)庫。 1.6.1 數(shù)據(jù)庫的設(shè)計(jì)任務(wù)與內(nèi)容數(shù)據(jù)庫設(shè)計(jì)應(yīng)包含兩方面的內(nèi)容:一是結(jié)構(gòu)設(shè)計(jì),也就是設(shè)計(jì)數(shù)據(jù)庫框架或數(shù)據(jù)庫結(jié)構(gòu);二是行為設(shè)計(jì),即設(shè)計(jì)應(yīng)用程序、事務(wù)處理等。 1.6.2 數(shù)據(jù)庫的設(shè)計(jì)方法目
22、前常用的各種數(shù)據(jù)庫設(shè)計(jì)方法都屬于規(guī)范設(shè)計(jì)法,即都是運(yùn)用軟件工程的思想與方法,根據(jù)數(shù)據(jù)庫設(shè)計(jì)的特點(diǎn),提出了各種設(shè)計(jì)準(zhǔn)則與設(shè)計(jì)規(guī)范。這種工程化的規(guī)范設(shè)計(jì)方法也是在目前技術(shù)條件下設(shè)計(jì)數(shù)據(jù)庫最實(shí)用的方法。1.6.3 數(shù)據(jù)庫設(shè)計(jì)步驟需求分析概念結(jié)構(gòu)設(shè)計(jì)邏輯結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫物理設(shè)計(jì)數(shù)據(jù)庫的實(shí)現(xiàn)數(shù)據(jù)庫運(yùn)行和維護(hù)1.6.4曉靈學(xué)生管理系統(tǒng)的設(shè)計(jì)數(shù)據(jù)庫原理與應(yīng)用第2章 數(shù)據(jù)庫開發(fā)環(huán)境 SQL Server2000 的安裝與配置學(xué)習(xí)目標(biāo):了解數(shù)據(jù)庫系統(tǒng)軟件的構(gòu)成1了解對(duì)硬件及軟件環(huán)境的需求2掌握軟件的安裝及注冊方法3積累職業(yè)素質(zhì)及團(tuán)隊(duì)精神4任務(wù)的提出為了設(shè)計(jì)實(shí)現(xiàn)曉靈學(xué)生管理系統(tǒng),首先需要建立系統(tǒng)的設(shè)計(jì)與開發(fā)環(huán)境,然
23、后根據(jù)業(yè)主及用戶的需要進(jìn)行需求分析,提出系統(tǒng)的解決方案。第三,根據(jù)解決方案所確定的系統(tǒng)邊界,對(duì)系統(tǒng)的功能進(jìn)行設(shè)計(jì)。第四,根據(jù)所確定的功能組織數(shù)據(jù),進(jìn)行系統(tǒng)數(shù)據(jù)庫的設(shè)計(jì)和實(shí)現(xiàn)。最后,再根據(jù)需要進(jìn)行系統(tǒng)界面的設(shè)計(jì)。要做好上述的五步,前提是在計(jì)算機(jī)上安裝和配置好SQL Server2000數(shù)據(jù)庫管理系統(tǒng) 需考慮的問題要想成功的安裝SQL 2000數(shù)據(jù)庫管理系統(tǒng),需要解決以下幾個(gè)問題:了解SQL 2000數(shù)據(jù)庫系統(tǒng)都有哪些版本? SQL 2000數(shù)據(jù)庫管理系統(tǒng)各版本,對(duì)操作系統(tǒng)的要求有哪些?SQL 2000數(shù)據(jù)庫管理系統(tǒng)各版本,對(duì)計(jì)算機(jī)配置都有哪些要求?硬件的要求是什么?軟件環(huán)境又是什么?在安裝SQL
24、 2000數(shù)據(jù)庫管理系統(tǒng)過程中,需要注意和解決哪些問題?在安裝SQL 2000數(shù)據(jù)庫管理系統(tǒng)以后,如何驗(yàn)證安裝是否成功?在安裝SQL 2000數(shù)據(jù)庫管理系統(tǒng)以后,需要如何配置SQL 2000數(shù)據(jù)庫管理系統(tǒng)才能正常使用?相關(guān)知識(shí)點(diǎn)2.2 SQL Server2000系統(tǒng)安裝前的準(zhǔn)備2.2.1 SQL Server 數(shù)據(jù)庫的發(fā)展階段 1. 1987 Sybase SQL Server 2. 1988 SQL Server 4 3. 1996 SQL Server 6.5 4. 1998 SQL Server 7 5. 2000 SQL Server 2000 6. 2005 SQL Server
25、2005SQL Server的工作模式SQL Server采用客戶/服務(wù)器體系結(jié)構(gòu),即中央服務(wù)器用來存儲(chǔ)數(shù)據(jù)庫,該服務(wù)器可以被多臺(tái)客戶機(jī)訪問,數(shù)據(jù)庫應(yīng)用的處理過程分布在客戶機(jī)和服務(wù)器上。客戶機(jī)/服務(wù)器(Client/Server,C/S)體系結(jié)構(gòu)的應(yīng)用又被稱作分布式計(jì)算機(jī)系統(tǒng)。該系統(tǒng)的數(shù)據(jù)處理不是在單個(gè)計(jì)算機(jī)上進(jìn)行,而是把程序的不同部分在多臺(tái)計(jì)算機(jī)上同時(shí)運(yùn)行。它的最大好處是提高了數(shù)據(jù)處理和應(yīng)用能力 2.2 選擇安裝版本1)MicrosoftSQLServer 2000的企業(yè)版可以用作一個(gè)產(chǎn)品數(shù)據(jù)庫服務(wù)器,這種版本支持 Microsoft SQL Server 2000所有的功能,包括支持當(dāng)前世
26、界上最大的Web站點(diǎn)、企業(yè)在線事務(wù) 處理(Online transaction processing,OLTP)和數(shù)據(jù)倉庫。企業(yè)版是功能最齊全的數(shù)據(jù)庫,支持 數(shù)十個(gè)TB字節(jié)的數(shù)據(jù)庫,也是價(jià)格最昂貴的數(shù)據(jù)庫系統(tǒng)。作為完整的數(shù)據(jù)庫解決方案,企業(yè) 版應(yīng)該是企業(yè)首選的數(shù)據(jù)產(chǎn)品。2)Microsoft SQL Server 2000的標(biāo)準(zhǔn)版可以用作一個(gè)部門或一個(gè)工作組的數(shù)據(jù)服務(wù)器,支持GB字節(jié)的數(shù)據(jù)庫。雖然標(biāo)準(zhǔn)版不像企業(yè)版的功能那樣齊全,但是它所具有的功能已經(jīng) 能夠滿足普通企業(yè)的一般需求,這種版本是非常實(shí)用的一種數(shù)據(jù)庫版本。如果考慮企業(yè)需要 處理的數(shù)據(jù)量和財(cái)政狀況等原因,那么使用標(biāo)準(zhǔn)版本的數(shù)據(jù)庫產(chǎn)品是一
27、種比較明智的選擇?3)MicrosoftSQLServer 2000的個(gè)人版主要用于移動(dòng)用戶。這些移動(dòng)用戶的大量時(shí)間是與網(wǎng)絡(luò)斷開連接的,但是它們的業(yè)務(wù)需要LServer系統(tǒng)來存儲(chǔ)它們大量的業(yè)務(wù)數(shù)據(jù)。另外,當(dāng)只在某一個(gè)客戶機(jī)上存儲(chǔ)本地的數(shù)據(jù)時(shí),也可以使用這種個(gè)人版。這種版本的產(chǎn)品為整天奔波忙碌的用戶提供了恰當(dāng)?shù)臄?shù)據(jù)庫解決方案。 4)Microsoft SQL Server 2000的開發(fā)人員版主要用于數(shù)據(jù)庫應(yīng)用程序開發(fā)人員進(jìn)行應(yīng)用程序的開發(fā),且需要使用Microsoft SQL Server 2000來存儲(chǔ)數(shù)據(jù)。雖然,開發(fā)人員版支持企業(yè)版本的所有功能,支持開發(fā)人員使用這些功能來編寫和測試應(yīng)用程序
28、,但是開發(fā)人員版的注冊方式只是用于開發(fā)和測試應(yīng)用程序系統(tǒng),而不是用作生產(chǎn)服務(wù)器。這種版本只適用于數(shù)據(jù)庫應(yīng)用程序開發(fā)人員,不適用于普通的數(shù)據(jù)庫用戶。5)Microsoft SQL Server 2000的桌面引擎只具有Microsoft SQL Server 2000的數(shù)據(jù)庫引擎,可以用來完成數(shù)據(jù)庫本身數(shù)據(jù)存儲(chǔ)的一些功能。這種版本主要針對(duì)獨(dú)立的軟件廠商,即可以在它們的應(yīng)用程序中打包進(jìn)這種數(shù)據(jù)庫管理系統(tǒng)。舉例說明一下,桌面引擎就像是一臺(tái)沒有外包裝的計(jì)算機(jī),但是具有計(jì)算機(jī)處理數(shù)據(jù)的基本功能。這種版本的數(shù)據(jù)庫產(chǎn)品主要是由各種中間廠商來使用,而最終用戶可以借助于中間的軟件產(chǎn)品來間接地使用SQL Serv
29、er 2000系統(tǒng)。6)Microsoft SQL Server 2000的Windows CE版主要用于在Microsoft Windows CE設(shè)備上存儲(chǔ)數(shù)據(jù)??梢允褂肕icrosoft SQL Server 2000的企業(yè)版和標(biāo)準(zhǔn)版來復(fù)制數(shù)據(jù),使得Windows CE數(shù)據(jù)可以和主數(shù)據(jù)庫中的數(shù)據(jù)同步化。例如,可以將這種版本的數(shù)據(jù)庫產(chǎn)品嵌入到以Windows CE作為操作系統(tǒng)的商務(wù)通路中。7)Microsoft SQL Server 2000韻企業(yè)評(píng)估版是可以從微軟網(wǎng)站上免費(fèi)下載的一種數(shù)據(jù)庫版本。這種版本主要用來測試Microsoft SQL Server 2000的功能。雖然這種企業(yè)評(píng)估版
30、具有Microsoft SQL Server 2000的所有功能,但是其運(yùn)行時(shí)間只有120天。因此,使用這種版本時(shí)間過長就有可能給用戶帶來巨大損失,如數(shù)據(jù)的丟失等。雖然,對(duì)這種版本的分類似乎沒有必要,但是這種版本的數(shù)據(jù)庫產(chǎn)品確實(shí)存在。 通過上面的介紹可得出這樣的結(jié)論:對(duì)于所有的用戶來說,企業(yè)版、標(biāo)準(zhǔn)版和個(gè)人版是3種可以使用的數(shù)據(jù)庫產(chǎn)品,而其他版本的數(shù)據(jù)庫產(chǎn)品只是適用于一部分特殊的用戶。有時(shí)候,為了簡化,常常認(rèn)為SQLServer2000有3種版本,即企業(yè)版、標(biāo)準(zhǔn)版和個(gè)人版。 SQL Server版本應(yīng) 用企業(yè)版可作為正式環(huán)境(Production)數(shù)據(jù)庫服務(wù)器,它支持 SQL Server 2
31、000 的所有功能,且提高執(zhí)行效率,以支持最大的網(wǎng)站與企業(yè)線上交易處理(OLTP)以及數(shù)據(jù)倉儲(chǔ)系統(tǒng)標(biāo)準(zhǔn)版可作為小型工作群組或部門的數(shù)據(jù)庫服務(wù)器個(gè)人版由行動(dòng)用戶所使用,他們會(huì)有一些時(shí)間與網(wǎng)絡(luò)離線,但執(zhí)行需要SQL Server數(shù)據(jù)存儲(chǔ)的應(yīng)用程序;同時(shí)也用于執(zhí)行需要在客戶端計(jì)算機(jī)本地SQL Server 數(shù)據(jù)存儲(chǔ)的獨(dú)立應(yīng)用程序開發(fā)版由開發(fā)以SQL Server 2000 作為數(shù)據(jù)存儲(chǔ)的應(yīng)用程序的程序設(shè)計(jì)者所使用。雖然開發(fā)版可支持企業(yè)版的所有功能,以便讓開發(fā)者編寫與測試可使用這些功能的應(yīng)用程序,但是開發(fā)版只能許可作為開發(fā)與測試系統(tǒng)之用,而非營運(yùn)服務(wù)器 2SOL Server 2000的運(yùn)行環(huán)境在安裝
32、SQL Server 2000時(shí),一定要考慮以下幾個(gè)方面的內(nèi)容:1)保證計(jì)算機(jī)滿足安裝SQL Server 2000的需求。2)如果打算安裝一個(gè)故障切換群集,必須在運(yùn)行安裝程序之前取消與任何網(wǎng)絡(luò)的連接。3)如果在運(yùn)行Microsoft Windows NT或Microsoft Windows 2000的計(jì)算機(jī)上安裝SQL Server 2000,那么要事先設(shè)置一個(gè)或多個(gè)域用戶賬號(hào),這樣SQL Server 2000就可以和其他客戶端和服務(wù)器進(jìn)行通信。 4)以本地管理員權(quán)限的用戶賬號(hào)或恰當(dāng)?shù)挠蛴脩糍~號(hào)登錄系統(tǒng)。 5)關(guān)閉所有與SQL Server有關(guān)的服務(wù),包括任何使用ODBC的服務(wù),例如Mic
33、rosoft Internet information Services(11S)。 6)關(guān)閉Microsoft Windows NT事件閱讀器和文件Regedit.EXE或Regedit32EXE。2.1.2 安裝SQL Server 2000的軟硬件要求 1硬件要求 為了正確地安裝Microsoft SQL Server2000或Microsoft SQL Server 2000客戶端管理工具和庫,滿足Microsoft SQl Server 2000正常的運(yùn)行要求,計(jì)算機(jī)的芯片、內(nèi)存、硬盤空間等配備需要滿足最低的硬件配置要求,這種最低的硬件要求見表21。硬件項(xiàng)目規(guī)格說明CPU處理速度在P
34、entium 166MHz以上的Intel或與之兼容的CPURAM至少64MB的內(nèi)存空間;若是要安裝企業(yè)版建議128MB或更多磁盤空間安裝SQL Server 2000所占用的磁盤空間,會(huì)隨著選擇的安裝組件而有所不同,范圍約于95MB至270MB之間,若采用典型安裝,需占用250MB的磁盤空間另外,安裝Analysis Service與English Query需要額外的磁盤空間,安裝Analysis Service至少需要50MB的空間,安裝English Query需要80MB的磁盤空間顯示器VGA或更高分辨率,SQL Server 圖形工具要求 800600或更高分辨率。其它設(shè)備MS鼠標(biāo)
35、或兼容設(shè)備、CD-ROM光盤驅(qū)動(dòng)器、磁帶驅(qū)動(dòng)器等。 2軟件要求軟件要求包括對(duì)操作系統(tǒng)的要求和對(duì)瀏覽器的要求。對(duì)于不同的Microsoft SQL server 2000版本,所要求的操作系統(tǒng)也不一樣。因此,了解系統(tǒng)對(duì)操作系統(tǒng)的要求,也是安裝Microsoft SQL Server 2000不可缺少的知識(shí)。SQL Server版本操 作 系 統(tǒng)企業(yè)版Windows NT 4.0 Server,Windows 2000 Server,Advanced Server,Data Center Server標(biāo)準(zhǔn)版Windows NT 4.0 Server,Windows 2000 Server,Adva
36、nced Server,Data Center Server個(gè)人版Windows Me/98,Windows NT 4.0 Server,Windows 2000 Professional,Server,Advanced Server,Data Center Server開發(fā)版Windows NT 4.0,Windows 2000客戶端工具Windows Me/98,Windows NT 4.0,Windows 2000連接工具Windows Me/98/95,Windows NT 4.0,Windows 2000數(shù)據(jù)庫原理與應(yīng)用 第3章 數(shù)據(jù)庫的基本使用 數(shù)據(jù)庫及表的創(chuàng)建學(xué)習(xí)目標(biāo):了解數(shù)據(jù)庫
37、對(duì)象和表對(duì)象的作用能熟練創(chuàng)建和管理數(shù)據(jù)庫對(duì)象能熟練創(chuàng)建和管理表對(duì)象積累職業(yè)素質(zhì)培養(yǎng)團(tuán)隊(duì)合作精神和語言表達(dá)能力任務(wù)的提出為了實(shí)現(xiàn)曉靈學(xué)生管理系統(tǒng),需要建立系統(tǒng)開發(fā)環(huán)境,這就必須要在計(jì)算機(jī)中使用SQLServer2000數(shù)據(jù)庫系統(tǒng)軟件創(chuàng)建一個(gè)符合需求的數(shù)據(jù)庫,并且要在數(shù)據(jù)庫中創(chuàng)建相關(guān)的表格來存儲(chǔ)和管理數(shù)據(jù)。 需考慮的問題1. 數(shù)據(jù)庫系統(tǒng)在計(jì)算機(jī)中的存儲(chǔ)結(jié)構(gòu),數(shù)據(jù)庫文件的構(gòu)成2. 什么是系統(tǒng)數(shù)據(jù)庫,系統(tǒng)數(shù)據(jù)庫的功能3. 創(chuàng)建用戶數(shù)據(jù)庫前的考慮4. 創(chuàng)建用戶數(shù)據(jù)庫的方法5. 數(shù)據(jù)庫都包含哪些對(duì)象,各個(gè)對(duì)象的功能6. 創(chuàng)建表對(duì)象的方法7. 管理和維護(hù)數(shù)據(jù)庫及數(shù)據(jù)庫對(duì)象的方法SQL Server2000數(shù)
38、據(jù)庫架構(gòu)數(shù)據(jù)庫是SQL Server2000存放數(shù)據(jù)庫對(duì)象的邏輯實(shí)體,是數(shù)據(jù)庫服務(wù)器的主要組件,是數(shù)據(jù)庫管理系統(tǒng)的核心。在使用數(shù)據(jù)庫的時(shí)候,我們所使用的主要是邏輯組件,如表、視圖、存儲(chǔ)過程等,而其物理表現(xiàn)形式則是存儲(chǔ)在某個(gè)磁盤路徑下的操作系統(tǒng)文件。作為一名數(shù)據(jù)庫管理員,在創(chuàng)建數(shù)據(jù)庫之前,首先應(yīng)理解數(shù)據(jù)庫的各個(gè)組成部分及設(shè)計(jì)方法,以確保所設(shè)計(jì)的數(shù)據(jù)庫在實(shí)現(xiàn)后,能夠高效地運(yùn)行。數(shù)據(jù)庫架構(gòu)圖SQL Server2000數(shù)據(jù)庫對(duì)象 SQL Server2000中有以下數(shù)據(jù)庫對(duì)象:關(guān)系圖(diagrams)表(table)視圖(view)存儲(chǔ)過程(stored procedures)用戶(users)用
39、戶自定義數(shù)據(jù)類型(user-defined data types)用戶自定義函數(shù)(user-defined functions)規(guī)則(constraints)默認(rèn)值(defaults) 數(shù)據(jù)庫存儲(chǔ)結(jié)構(gòu)在前面已經(jīng)講過, SQL Server2000使用一組操作系統(tǒng)文件來存放數(shù)據(jù)庫中的數(shù)據(jù)。這些操作系統(tǒng)文件有兩種形式,一種是數(shù)據(jù)文件,一種是日志文件。其中數(shù)據(jù)文件又可分為主數(shù)據(jù)文件和次數(shù)據(jù)文件兩種。 數(shù)據(jù)庫物理存儲(chǔ)結(jié)構(gòu)數(shù)據(jù)的物理空間在文件之間的分配是通過簇按比例分配的。例如,如果文件data1有10m的存儲(chǔ)空間,文件data2有20m的存儲(chǔ)空間。當(dāng)SQL Server2000進(jìn)行空間分配時(shí),為文件1
40、分配一個(gè)簇,為文件2分配兩個(gè)簇。這樣保證兩個(gè)文件存儲(chǔ)空間的使用平衡。而簇則由“頁”構(gòu)成,“頁”是Microsoft SQL Server2000可管理的最小空間,每一個(gè)頁的大小是8KB,即8192字節(jié)。在表中,每一行數(shù)據(jù)不能跨頁存儲(chǔ)。這樣,表中每一行的字節(jié)數(shù)不能超過8192個(gè)字節(jié)。每8個(gè)連續(xù)頁稱為一個(gè)簇,即簇的大小是64KB。 系統(tǒng)數(shù)據(jù)庫master數(shù)據(jù)庫tempdb數(shù)據(jù)庫model數(shù)據(jù)庫msdb數(shù)據(jù)庫 1使用CREATE DATABASE創(chuàng)建數(shù)據(jù)庫CREATE DATABASE數(shù)據(jù)庫名ON PRIMARY ,n FILEGROUP 文件組名 ,n LOG ON ,n FOR RESTORE
41、使用CREATE DATABASE創(chuàng)建數(shù)據(jù)庫1. 創(chuàng)建簡單數(shù)據(jù)庫2. 創(chuàng)建單文件數(shù)據(jù)庫3. 創(chuàng)建多文件數(shù)據(jù)庫4.創(chuàng)建多文件組數(shù)據(jù)庫【任務(wù)3.1】使用T-SQL語句按照要求創(chuàng)建qg_test數(shù)據(jù)庫。USE masterGOCREATE DATABASE qg_testON ( NAME = qg_testdat, FILENAME = c:program filesmicrosoft sql servermssqldatatest.mdf, SIZE = 10, MAXSIZE = 100, FILEGROWTH = 10 )GO【任務(wù)3.2】使用T-SQL語句創(chuàng)建sales數(shù)據(jù)庫。USE ma
42、sterGOCREATE DATABASE SalesON ( NAME = Sales_dat, FILENAME = c:program filesmicrosoft sql servermssqldatasaledat.mdf, SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 )LOG ON( NAME = Sales_log, FILENAME = c:program filesmicrosoft sql servermssqldatasalelog.ldf, SIZE = 5MB, MAXSIZE = 25MB, FILEGROWTH = 5MB )G
43、O【任務(wù)3.3】使用T-SQL語句創(chuàng)建Archive數(shù)據(jù)庫。USE masterGOCREATE DATABASE Archive ONPRIMARY ( NAME = Arch1, FILENAME = c:program filesmicrosoft sql servermssqldataarchdat1.mdf, SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20),( NAME = Arch2, FILENAME = c:program filesmicrosoft sql servermssqldataarchdat2.ndf, SIZE = 1
44、00MB, MAXSIZE = 200, FILEGROWTH = 20),( NAME = Arch3, FILENAME = c:program filesmicrosoft sql servermssqldataarchdat3.ndf, SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20)LOG ON ( NAME = Archlog1, FILENAME = c:program filesmicrosoft sql servermssqldataarchlog1.ldf, SIZE = 100MB, MAXSIZE = 200, FILEGROW
45、TH = 20),( NAME = Archlog2, FILENAME = c:program filesmicrosoft sql servermssqldataarchlog2.ldf, SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20)GO使用ALTER DATABASE修改數(shù)據(jù)庫 ALTER DATABASE 數(shù)據(jù)庫名 ADD FILE ,n TO FILEGROUP 文件組名 | ADD LOG FILE ,n | REMOVE FILE 邏輯文件名 | ADD FILEGROUP 文件組名 | REMOVE FILEGROUP 文件組名 |
46、 MODIFY FILE | MODIFY NAME =新數(shù)據(jù)庫名 | MODIFY FILEGROUP 文件組名 | NAME=新文件組名使用ALTER DATABASE修改數(shù)據(jù)庫1.增加數(shù)據(jù)庫文件、日志文件和文件組2.刪除數(shù)據(jù)庫文件、日志文件和文件組3.修改數(shù)據(jù)庫、文件和文件組的屬性使用DROP DATABASE刪除數(shù)據(jù)庫 語法格式: DROP DATABASE 數(shù)據(jù)庫名,n 該命令可以從SQL Server 中一次刪除個(gè)或幾個(gè)數(shù)據(jù)庫。例:刪除數(shù)據(jù)庫 abc drop database abc 表功能介紹 創(chuàng)建用戶數(shù)據(jù)庫后,我們還無法將數(shù)據(jù)保存在數(shù)據(jù)庫中,還必須在數(shù)據(jù)庫中創(chuàng)建用來存放數(shù)據(jù)的
47、“容器”,這個(gè)“容器”就是表。表是數(shù)據(jù)庫中最重要的對(duì)象,是用來存儲(chǔ)數(shù)據(jù)和操縱數(shù)據(jù)的邏輯結(jié)構(gòu)。對(duì)數(shù)據(jù)庫的各種管理和操縱,實(shí)際上就是對(duì)數(shù)據(jù)庫中表的管理和操縱。 表的組成在數(shù)據(jù)模型中,一張表代表一個(gè)實(shí)體,實(shí)體名即為表名。例如:在曉靈學(xué)生管理系統(tǒng)中有一個(gè)教師信息表,它表示所有教師的基本信息都存儲(chǔ)在該表中。表由行和列組成。在關(guān)系數(shù)據(jù)模型中,行也被稱為記錄或元組,列也被稱為字段或?qū)傩?。每一行都是這個(gè)實(shí)體的一個(gè)完整描述,每個(gè)列都是對(duì)該實(shí)體的一種屬性的描述。 數(shù)據(jù)類型現(xiàn)實(shí)世界是一個(gè)多樣化的世界,現(xiàn)實(shí)世界的信息是多種多樣的,所以描述信息的數(shù)據(jù)也應(yīng)該是多種多樣的。在定義表中的列時(shí),每一個(gè)列都要有一個(gè)與之相關(guān)的特定
48、的數(shù)據(jù)類型,用來準(zhǔn)確的表示信息的類別。例如,教師的姓名可以用字符型(char,varchar)來表示,出生日期可以用日期型(datetime)來表示,如果為了表示單價(jià)可以用貨幣型(money)來表示等等 SQL Server 2000提供的系統(tǒng)數(shù)據(jù)類型 類 型名稱取值范圍長度數(shù)字型bigint-263 (-9223372036854775808) 到263-1 (9223372036854775807)8個(gè)字節(jié)int-231 (-2147483648) 到231-1 (24147483647)4個(gè)字節(jié)smallint-215 (-32768) 到213-1 (32767)2個(gè)字節(jié)tinyint
49、0-2551個(gè)字節(jié)Decimal (p,s)Numeric (p,s)P為精度(1=p=38)S為小數(shù)點(diǎn)后位數(shù)(0=s=p)38位數(shù)字字符型Char(n)存放固定長度的n個(gè)字符 1=n=8000最大8000個(gè)字符Varchar(n)存放可變長度的n個(gè)字符1=n=8000最大8000個(gè)字符貨幣型money-263到263貨幣數(shù)據(jù),小數(shù)點(diǎn)后保留4位8個(gè)字節(jié)Smallmoney-214748.3648-214748.36474個(gè)字節(jié)日期型Datetime1/1/1753 到 12/31/99998個(gè)字節(jié)smalldatetime1/1/1900 到 12/31/20794個(gè)字節(jié)位 型bit1或0的整
50、數(shù)數(shù)據(jù)1位使用CREATE TABLE創(chuàng)建表 CREATE TABLE 數(shù)據(jù)庫名. 表所有者. 表名( | | ,n ) ON | 文件組名 | DEFULT | 【任務(wù)3.11】創(chuàng)建一個(gè)職工表,該表結(jié)構(gòu)如下 列 名數(shù)據(jù)類型約束要求職工編號(hào)int主鍵職工姓名Varchar(20) 不允許空性別Char(2)默認(rèn)值“男”年齡 Tinyint不允許空CREATE TABLE 職工表 (職工編號(hào) int primay key, 職工姓名 varchar(20) not null , 性別 char(2) default 男, 年齡 tinyint not null )【任務(wù)3.12】創(chuàng)建含有計(jì)算列的
51、表 CREATE TABLE mytable ( col_1 int , col_2 int , col_3 as col_1+col_2)【任務(wù)3.13】創(chuàng)建含有標(biāo)識(shí)列的表 CREATE TABLE 訂單表 ( 訂單編號(hào) int ideneity(1,1) primary key, 商品名 varchar(20) not null , 數(shù)量 int )【任務(wù)3.14】創(chuàng)建具有檢查約束的表,表結(jié)構(gòu)如下: 列 名數(shù)據(jù)類型約束要求學(xué)號(hào)int 主鍵學(xué)生姓名Varchar(20) 不允許空性別Char(2)只能輸入“男”或“女”默認(rèn)為“男”年齡Tinyint值小于100聯(lián)系電話Varchar(11)設(shè)
52、置唯一性約束CREATE TABLE 學(xué)生表( 學(xué)號(hào) int primay key, 學(xué)生姓名 varchar(20) not null , 性別 char(2) default 男 check (性別=“男” or 性別=“女”), 年齡 tinyint not null check(年齡0 并且成績0 and 成績100) Constraint pk_cj primary key (學(xué)號(hào),課程號(hào)) constraint fk_cj foreign key(課程號(hào))references kc(課程號(hào))使用ALTER TABLE修改表 ALTER TABLE 表名 ADD ,n | WITH
53、CHECK | WITH NOCHECK ADD ,n | DROP COLUMN 列名 | CONSTRAINT 約束名 ,n | ALTER COLUMN 列名 新數(shù)據(jù)類型 ( 數(shù)據(jù)寬度 ,新小數(shù)位數(shù) ) NULL | NO NULL | CHECK | NOCHECK CONSTRAINT ALL | 約束名 ,n 使用ALTER TABLE修改表 1增加列2增加約束3刪除約束4刪除列5修改列6啟動(dòng)或暫停約束使用DROP TABLE刪除表 DROP TABLE 表名,n 使用企業(yè)管理器實(shí)現(xiàn)數(shù)據(jù)庫的創(chuàng)建、修改和刪除 1創(chuàng)建數(shù)據(jù)庫2修改數(shù)據(jù)庫3刪除數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫修改數(shù)據(jù)
54、庫使用企業(yè)管理器實(shí)現(xiàn)表的創(chuàng)建、修改和刪除 1創(chuàng)建表2修改表3刪除表創(chuàng)建表在Enterprise Manager 中創(chuàng)建表按以下步驟進(jìn)行:(1) 在要?jiǎng)?chuàng)建表的數(shù)據(jù)庫中選擇“Tables” 對(duì)象后,單擊右鍵,從快捷菜單中選擇“New Table” 選項(xiàng),或在工具欄中選擇圖標(biāo) ,即會(huì)出現(xiàn)如圖7-1 所示的定義列對(duì)話框。在此可以是設(shè)定表的列名、數(shù)據(jù)類型、精度、缺省值等屬性。創(chuàng)建表創(chuàng)建表修改表在Enterprise Manager 中選擇要進(jìn)行改動(dòng)的表,單擊右鍵,從快捷菜單中選擇“DesignTable”選項(xiàng),則會(huì)出現(xiàn)如圖7-4 所示的修改表結(jié)構(gòu)對(duì)話框??梢栽趫D7-4 所示的對(duì)話框中修改列的數(shù)據(jù)類型、名
55、稱等屬性或添加、刪除列,也可以指定表的主關(guān)鍵字約束。單擊工具欄中的圖標(biāo) ,出現(xiàn)如圖7-5 所示的編輯表和約束的屬性的對(duì)話框??梢栽谄渲芯庉嫺鞣N約束和一些表的屬性。 修改表修改表刪除表在Enterprise Manager 中用右鍵單擊要?jiǎng)h除的表從快捷菜單中選擇“刪除(Delete)” 選項(xiàng),則會(huì)出現(xiàn)如圖7-9 所示的刪除對(duì)象對(duì)話框,單擊“Drop All”按鈕,即可以刪除表。單擊“Show Dependencies”按鈕,即會(huì)出現(xiàn)如圖7-10 所示的對(duì)話框。它列出了表所依靠的對(duì)象和依賴于表的對(duì)象。當(dāng)有對(duì)象依賴于表時(shí),就不能刪除表。刪除表刪除表數(shù)據(jù)庫原理與應(yīng)用數(shù)據(jù)庫的基本管理 -學(xué)生信息的更新與
56、查詢學(xué)習(xí)目標(biāo): 熟練掌握簡單查詢數(shù)據(jù)的方法2 培養(yǎng)團(tuán)隊(duì)協(xié)作精神、語言表達(dá)能力4熟練掌握向表中添加、刪除、修改數(shù)據(jù)的方法31 培養(yǎng)職業(yè)素質(zhì)33任務(wù)的提出在本章,我們將在上一章實(shí)現(xiàn)的曉靈學(xué)生管理系統(tǒng)數(shù)據(jù)庫和各基本表的基礎(chǔ)上,輸入各相關(guān)數(shù)據(jù)。在輸入的過程中,講解數(shù)據(jù)的插入、刪除與修改的各種方法。最后我們要對(duì)曉靈學(xué)生管理系統(tǒng)所涉及的數(shù)據(jù)進(jìn)行查詢或檢索,因?yàn)槲覀冊跀?shù)據(jù)庫中存儲(chǔ)數(shù)據(jù)并不是目的,我們更觀注于對(duì)數(shù)據(jù)的查詢和使用 需考慮的問題如果想要向表中添加、刪除、修改數(shù)據(jù)可以使用相關(guān)命令或企業(yè)管理器的圖形界面實(shí)現(xiàn)。如果想要查詢表中的數(shù)據(jù),一般使用T-SQL語句,使用查詢分析器實(shí)現(xiàn)。查詢數(shù)據(jù)的語句為Selec
57、t 列名 from 表名Where 條件查詢語句的使用非常復(fù)雜,在學(xué)習(xí)情境4中,我們學(xué)習(xí)簡單的數(shù)據(jù)查詢方法,包括列的過濾,行的過濾等內(nèi)容。相關(guān)知識(shí)點(diǎn)1.使用INSERT語句插入表數(shù)據(jù)插入一行數(shù)據(jù) INSERT INTO 表名 (列名 ,n )VALUES( 表達(dá)式 | NULL | DEFULT ,n )相關(guān)知識(shí)點(diǎn)2. 使用SELECT語句查詢表數(shù)據(jù)SELECT 源表名.選擇列名 ,n FROM 源表名,n WHERE 邏輯表達(dá)式 相關(guān)知識(shí)點(diǎn)3. 使用UPDATE語句修改表數(shù)據(jù)UPDATE 表名SET 列名=表達(dá)式 | NULL | DEFULT ,n WHERE邏輯表達(dá)式相關(guān)知識(shí)點(diǎn)4. 使用
58、DELETE語句刪除表數(shù)據(jù)DELETE 表名WHERE邏輯表達(dá)式Insert語句插入數(shù)據(jù)【任務(wù)4.1】使用insert語句曉靈學(xué)生管理系統(tǒng)數(shù)據(jù)庫的學(xué)生表中添加一條記錄。 INSERT INTO student VALUES ( 40101,溫榮奇,男,1985-5-15,計(jì)算機(jī),z0401,2004-9-1,h1101, 天津市河?xùn)|區(qū)塘沽路8號(hào),注意事項(xiàng)insertvalues 語句一次只能輸入一行數(shù)據(jù)。不能對(duì)IDENTITY列、計(jì)算列等進(jìn)行賦值。向表中插入數(shù)據(jù)時(shí),不能違反完整性約束的要求。使用update語句更新數(shù)據(jù)【任務(wù)4.4】使用update語句更新所有行的數(shù)據(jù)
59、update gradeset gradenum=gradenum+5go更新部分?jǐn)?shù)據(jù)【任務(wù)4.5】使用update語句更新部分?jǐn)?shù)據(jù)。 UPDATE student STEsBanji= z0402 Where sID=040101使用delete語句刪除數(shù)據(jù)【任務(wù)4.6】使用delete語句刪除學(xué)生表中學(xué)號(hào)為040101的學(xué)生的信息。 DELETEstudent WHERE sID= 040101【任務(wù)4.7】使用delete語句刪除學(xué)生表中所有學(xué)生的信息。 DELETEstudentSELECT語句查詢幾種查詢工具的介紹企業(yè)管理器SELECT語句查詢幾種查詢工具的介紹查詢分析器 SELECT語句的語法結(jié)構(gòu)Select語句的功能是從數(shù)據(jù)庫中檢索行,并允許從一個(gè)或多個(gè)表中選擇一個(gè)或多個(gè)行或列。雖然 SELECT 語句的完整語法較復(fù)雜,但是其主要的子句可歸納如下: SELECT select_list INTO new_table FROM table_source WHERE search_condition GROUP BY group_by_expression HAVING search_condition ORDER BY order_expression ASC | DESC 1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 招投標(biāo)法規(guī)在電商行業(yè)的應(yīng)用
- 城市更新項(xiàng)目報(bào)價(jià)模板
- 城市綠化養(yǎng)護(hù)招投標(biāo)守則
- 數(shù)字化與綠色技術(shù)促進(jìn)可持續(xù)發(fā)展專題政策研究報(bào)告2024
- 水上樂園建設(shè)項(xiàng)目預(yù)審表
- 本溪市燃?xì)夤艿谰S修質(zhì)量
- 培訓(xùn)機(jī)構(gòu)參觀管理規(guī)定
- 智能家居招投標(biāo)合同樣本模板
- 建筑工程煙囪施工合同樣本
- 城市商業(yè)綜合體書店門面租賃合同
- 湖北省恩施市沙地初中2024-2025學(xué)年八年級(jí)數(shù)學(xué)上學(xué)期期中考試題卷(含答案)
- 旅游景區(qū)旅游安全風(fēng)險(xiǎn)評(píng)估報(bào)告
- 部編2024版歷史七年級(jí)上冊第三單元《第14課 絲綢之路的開通與經(jīng)營西域》說課稿
- 合同模板 交稅
- 社區(qū)計(jì)劃生育自查報(bào)告(3篇)
- 人教版小學(xué)數(shù)學(xué)六年級(jí)上冊第二單元《位置與方向》單元集體備課整體設(shè)計(jì)
- 2024年銀行考試-建設(shè)銀行紀(jì)檢監(jiān)察條線考試近5年真題集錦(頻考類試題)帶答案
- 南京六校聯(lián)合體2025屆高三上期10月聯(lián)考英語試題卷(含答案)
- 提升餐飲服務(wù)質(zhì)量
- 蘭亭序中楷毛筆臨摹字帖(可打印)
- 05-6-7-礦山壓力監(jiān)測.ppt
評(píng)論
0/150
提交評(píng)論