VB教程第5章數據庫項目開發概述_第1頁
VB教程第5章數據庫項目開發概述_第2頁
VB教程第5章數據庫項目開發概述_第3頁
VB教程第5章數據庫項目開發概述_第4頁
VB教程第5章數據庫項目開發概述_第5頁
已閱讀5頁,還剩57頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

5.1數據庫基礎知識5.2數據庫設計5.3SQL語言簡介5.4ODBC與ADO簡介第5章數據庫應用開發概述1§5.1數據庫基礎知識數據庫技術研究如何科學合理地組織數據、存儲數據、如何高效的訪問數據應用程序1應用程序2數據庫管理系統

數據庫2Database,簡稱DB

數據庫是指長期存儲在計算機內、有組織、可共享、統一管理的數據的集合。

§5.1.1四個基本概念----數據庫3§5.1.1四個基本概念----數據庫管理系統DatabaseManagementSystem,簡稱DBMS數據庫管理系統是位于用戶與操作系統間的一層數據管理軟件,屬系統軟件的范疇。數據庫管理系統負責定義數據和操縱數據,并能夠保證數據庫中數據的安全性、完整性,以及進行多用戶對數據的并發使用及發生故障后的系統恢復。

Access、SQLServer、Oracle、Sybase、Foxpro

是典型的數據庫管理系統4§5.1.1四個基本概念----數據庫管理員DatabaseAdministrator,簡稱DBADBA是指全面負責數據庫系統的“規劃、設計、維護、管理和正常使用的”人員,其職責如下:(1)參與數據庫設計的全過程,決定數據庫的結構和內容;(2)定義數據的安全性和完整性,負責分配用戶對數據庫的使用權限和口令管理;(3)監督控制數據庫的使用和運行,改進和重新構造數據庫系統。當數據庫受到破壞時,應負責恢復數據庫;當數據庫的結構需要改變時,完成對數據結構的修改。DBA不僅要有較高的技術專長和較深的資歷,并應具有了解和闡明管理要求的能力。特別對于大型數據庫系統,DBA極為重要。對于常見的微機數據庫系統,通常只有一個用戶,常常不設DBA,DBA的職責由應用程序員或終端用戶代替。5§5.1.1四個基本概念----數據庫系統數據庫系統是指由數據庫、數據庫管理系統、應用系統、數據庫管理員和用戶等構成的系統。

廣義的講,數據庫系統由下面幾部分構成硬件及數據庫軟件:包括操作系統、DBMS、編譯系統及應用開發工具軟件等人員:包括數據庫管理員、用戶等。數據庫系統的各類人員對數據庫的各種操作請求,都由DBMS完成,DBMS是數據庫系統的核心軟件。6用戶用戶用戶…...應用系統應用開發工具數據庫管理系統操作系統數據庫數據庫管理員長期儲存在計算機內、有組織、可共享的數據集合。負責定義數據和操縱數據,并能夠保證數據庫中數據的安全性、完整性、并發控制及恢復數據庫系統組成7§5.1.2常用數據模型在數據庫中是用數據模型這個工具來對現實世界進行抽象的。數據模型是數據庫系統中用于提供信息表示和操作手段的形式構架。根據模型應用的目的不同,可將數據模型分為兩類。概念模型(信息模型):按照用戶的觀點對數據和信息建模邏輯模型(層次、網狀、關系):按照計算機系統的觀點對數據建模。81.概念模型三個世界認識抽象現實世界信息世界概念模型機器世界DBMS支持的數據模型概念模型用于信息世界建模,是現實世界到信息世界的第一層抽象,是用戶與數據庫設計人員之間進行交流的語言,因此概念模型應強調語義表達能力。要易于用戶理解91.概念模型信息世界中的基本概念實體(Entity):客觀存在并可相互區別的事物稱為實體,如:一個學生、一個部門、一門課、學生的一次選課、部門的一次訂貨等。實體集(EntitySet):同型實體的集合稱為實體集。如:全體學生就是一個實體集。屬性(Attribute):實體所具有的某一特性稱為屬性。一個實體可以由若干個屬性來刻畫。例如學生實體可以用學號、姓名、性別、出生年月等屬性組成。碼(Key):唯一標識實體的屬性集稱為碼。如:學號是學生實體的碼。101.概念模型聯系:事物之間的聯系可以分為三類一對一聯系(1:1)如果對于實體集A中的每一個實體,實體集B中至多有一個實體與之聯系,反之亦然,則稱實體集A與實體集B具有一對一聯系。如班級和班長之間的聯系一對多聯系(1:n):如果對于實體集A中的每一個實體,實體集B中有n個實體與之聯系(n>=0),反之,對于實體集B中的每一個實體,實體集A中至多只有一個實體與之聯系,則稱實體集A與實體集B具有一對多聯系。如班導師和學生之間的聯系。111.概念模型聯系:多對多聯系(m:n):如果對于實體集A中的每一個實體,實體集B中有n個實體與之聯系(n>=0),反之,對于實體集B中的每一個實體,實體集A中也有m個實體(m>=0)與之聯系,則稱實體集A與實體集B具有多對多聯系。如:學生和課程之間的關系。多個實體之間也可以存在一對一、一對多、多對多的聯系,如學生、課程和教科書之間的聯系。同一個實體集內的各實體之間也可以存在一對一、一對多、多對多的聯系,如職工實體集內有領導和被領導的聯系。121.概念模型概念模型的表示方法:實體聯系方法實體型:用矩形框表示,矩形框內寫上實體名。如:屬性:用橢圓形表示,并用無向邊將其與相應的實體聯系起來。如:課程學生學生學號學號學號姓名性別年齡1311.概念模型概念模型的表示方法:實體聯系方法聯系:用菱形表示,菱形框內寫明聯系名,并用無向邊分別與有關實體連接起來,同時在無向邊旁標上聯系的類型(1:1,1:n,m:n)。如:班級班長管理11班級班長管理n1班級學生組成m班級課程管理n學生選修141.概念模型實體聯系參考書教師課程講授1nm職工領導1n151.概念模型E-R圖實例學生班級課程學號姓名性別年齡班級編號所屬專業系課程號課程名學分教師參考書課程號姓名性別年齡職稱書號書名內容提要價格161.概念模型E-R圖實例班級成績組成領導學生學生人員選修課程講授教師參考書1nn1nm領導領導1nm172.邏輯模型不同的數據模型具有不同的數據結構形式,目前最常用的數據模型有層次模型、網狀模型和關系模型。層次模型和網狀模型統稱為非關系模型,在非關系模型中,實體用記錄表示,實體之間的聯系轉換成記錄之間的兩兩聯系。182.關系模型關系模型中的重要概念關系:一個二維表是一個關系元組:表中的一行即為一個元組屬性:表中的一列即為一個屬性主碼:表中的某個屬性組,它可以唯一確定一個元組。域:屬性的取值范圍分量:元組中的一個屬性值。關系模式:對關系的描述。一般表示為:關系名(屬性1,屬性2,...,屬性n)

192.關系模型關系模型的數據結構:二維表學號95001950029500395004。。。95700姓名性別系別年齡籍貫李勇劉晨王名張立楊曉冬男女女男。。。男計算機科學信息數學計算機科學。。。物理20191819。。。21江蘇山東北京北京。。。山西整數字符串男女信息數學,...141516171819202122...北京上海山東...學生登記表關系名主鍵關系域字段名記錄行字段(列)20關系模型在關系模型中,實體以及實體間的聯系都是用關系來表示的,例如,學生、課程、學生與課程之間的多對多聯系在關系模型中可以表示如下:學生(學號,姓名,性別,系別,年齡,籍貫)課程(課程號,課程名,學分)選修(學號,課程號,成績)關系模型要求關系必須是規范化的,關系的每一分量必須是一個不可分的數據項。

21§5.2數據庫設計主要的內容:需求分析概念設計。概念模型和E_R圖邏輯設計。關系模型設計物理設計22§5.2數據庫設計數據庫設計的主要任務針對特定用途,在給定的軟、硬件環境下,設計出結構合理、性能良好的數據庫,使之能較好地滿足客戶需求。

數據庫的設計一般分為以下四個步驟(于1978年在新奧爾良會議上提出,因此簡稱新奧爾良法):需求分析、概念設計、邏輯設計、物理設計。23圖5–6數據庫設計步驟

DBMS特征信息結構(與軟件、硬件無關)邏輯數據庫結構、應用程序說明書需求分析概念設計邏輯設計物理設計需求說明書總體信息需求處理需求硬件、操作系統特征

24§5.3關系數據庫標準語言SQL簡介

自結構化查詢語言SQL(StructureQueryLanguage)成為國際標準語言后,各個數據庫廠家紛紛推出各自支持的SQL軟件,SQL已成為關系數據庫領域中的一個主流語言。SQL的特點:功能強大使用靈活語言簡潔,易學易用25§5.3.1SQL的基本概念SQL功能SQL命令數據定義CREATE,ALTER,DROP數據操縱

INSERT,UPDATE,DELETE數據查詢SELECT數據控制GRANT,REVOKE創建表、視圖、索引等向數據表中插入指定的紀錄在數據庫中查找滿足條件的記錄授予用戶一定的訪問權限26§5.3.2常用的SQL語句建立數據庫的目的是為了查詢數據,因此說數據查詢是數據庫的核心操作。SQL語言提供了SELECT語句進行數據庫的查詢,該語言具有語言靈活的使用方式和豐富的功能。查詢語句一般格式為:

SELECT[ALL|DISTINCT]<目標列表達式>[,<目標列表達式>]…FROM<表名或視圖名>[,<表名或視圖名>]…[WHERE<條件表達式>][GROUPBY<列名1>[HAVING<條件表達式>]][ORDERBY<列名2>[ASC|DESC]];27§5.3.2常用SQL數據查詢整個SELECT語句的含義是,根據WHERE子句的表達式,從FROM子句指定的基本表或視圖中找出滿足條件的元組,再按SELECT子句中的目標列表達式,選出元組中的屬性值形成結果表。如果有GROUP子句,則將結果按<列名1>的值進行分組,該屬性列值相等的元組為一個組,每個組產生結果表中的一條記錄.如果GROUP子句帶HAVING短語,則只有滿足指定條件的組才予輸出.如果有ORDER子句,則結果表還要按<列名2>的值的升序或降序排序.28“學生-課程”數據庫中包括三個表1.“學生信息”表StuInfo由學號、姓名、班級、來源這4個屬性組成,可記為:

StuInfo(學號,姓名,班級,來源).其中學號為主碼.2.“課程信息”表ClassInfo由課程代號,課程名稱,任課教師,學分4個屬性組成,可記為:

ClassInfo(課程代號,課程名稱,任課教師,學分).其中課程代號為主碼.3.“學生成績”表StuScore由學號,課程代號,成績3個屬性組成,可記為:

StuScore(學號,課程代號,成績),其中(學號,課程代號)為主碼.29例1:查詢考試成績在80分以上的學生學號。

SELECT學號

FROMstuScoreWHERE成績>=80;或者:

SELECTDISTINCT

學號

FROMstuScoreWHERE成績>=80;DISTINCT表示將查詢結果中的重復信息去掉。

30例2:查詢學生信息表中姓張的學生的基本信息。

SELECT*FROMstuInfo

WHERE姓名like'張%';或者:查詢學生信息表中姓張的學生且名字為單字的學生的基本信息。

SELECT*FROMstuInfo

WHERE姓名like'張__';“%”:代表零個或多個字符。“_”:代表一個字符。

31例3:查詢學生成績表中成績在85~90之間的學生成績信息。

SELECT*FROMstuScoreWHERE成績BETWEEN85AND90;BETWEEN…AND…指明字段值必須滿足的范圍

32例4:查詢學生信息表中的所有信息并按學號降序排序。

SELECT*FROMstuInfo

ORDERBY學號DESC;在ORDERBY子句中,ASC表示升序,DESC表示降序。

33例5:查詢各個班級的總人數。

SELECT班級,COUNT(*)AS人數

FROMstuInfo

GROUPBY班級;COUNT函數用于統計個數,AS用于起別名。

34例6:查詢學號為“20050001”的學生的總成績、最高分、最低分、平均分。

SELECT

SUM(成績)AS總成績,AVG(成績)

AS

平均成績,MAX(成績)

AS

最高成績,MIN(成績)AS

最低成績

FROMstuScoreWHERE

學號='20050001';SUM函數用于計算數值型數據的總和AVG函數用于計算數值型數據的平均值MAX函數用于計算數值型數據的最大值MIN函數用于計算數值型數據的最小值

35例7:在成績表中查詢成績不多于2門的學號和相應門數。

SELECT學號,COUNT(*)AS門數

FROMstuScoreGROUPBY學號

HAVINGCOUNT(*)<=2;

36例8:查詢學生的姓名、課程名、成績。

SELECTstuInfo.姓名,classInfo.課程名稱,stuScore.成績

FROMstuInfo,classInfo,stuScoreWHEREstuInfo.學號=stuScore.學號andclassInfo.課程代號=stuScore.課程代號;本例涉及到三個表之間的關聯

37SQL---數據更新之插入語句數據更新有插入、刪除、更新三種操作插入語句:一次插入一條記錄的格式為:

INSERTINTO表名[(字段名[,字段名]…)]VALUES(常量[,常量]…);

一次插入多條記錄的格式為:

INSERT

INTO

表名[(字段名[,字段名]…)]SELECT

查詢語句;38例9:將一條記錄“1004”、“計算機”、“王海”、2插入到課程信息表中。INSERTINTOclassInfo

VALUES(‘1004’,‘計算機’,‘王海’,2);例10:將成績表中學號為“20050001”的全部記錄插入到scoreBack表中,其中scoreBack是一張新建的表,其表結構與成績表相同。INSERTINTOscoreBack

SELECT*FROMstuScoreWHERE學號='20050001';39SQL---數據更新之刪除語句刪除語句指從數據表中刪除符合條件的記錄。它的格式為:DELETEFROM表名

[WHERE條件表達式];例11:刪除學生成績表中學號為“20050003”的記錄。DELETEFROMstuScoreWHERE學號='20050003';40SQL---數據更新之更新語句更新語句指修改數據表中符合指定條件記錄的某個或某些字段值。它的格式為:UPDATE表名SET列名=值表達式[,列名=值表達式…][WHERE條件表達式];例12:修改學生信息表中學號為“20050001”同學的來源為“河北”。

UPDATEstuInfoSET來源='河北'WHERE學號='20050001';41例13:將學生成績表中全部學生的成績加上五分作為最終成績。UPDATEstuScoreSET成績=成績+5;

42§5.4ODBC與ADO簡介開放數據庫互連標準(OpenDatabaseConnectivity,簡稱ODBC)是Microsoft推出的一種客戶端連接后臺數據庫的技術。ODBC把SQL作為訪問數據庫的標準,實現了用相同的代碼訪問不同數據庫格式的。ODBC體系結構主要由數據庫應用程序、ODBC驅動程序管理器、ODBC驅動程序、ODBC數據源四部分組成。

5.4.1ODBC體系結構43

數據庫管理系統數據庫應用程序ODBC驅動程序管理器ACCESS驅動程序SQLServer驅動程序Oracle驅動程序ACCESS數據源SQLServer數據源Oracle數據源……

ODBC體系結構44§5.4.2配置ODBC數據源ODBC數據源管理器窗口451)在Windows2000環境下,單擊“開始”-“設置”-“控制面板”,進入“控制面板”窗口,再雙擊“管理工具”,進入“管理工具”窗口

462)雙擊“數據源(ODBC)”,進入“ODBC數據源管理器”對話框,選擇“系統DSN”選項卡。473)單擊“添加”按鈕,進入“創建新數據源”對話框,選擇“MicrosoftAccessDriver(*.mdb)”。484)單擊“完成”按鈕,進入“ODBCMicrosoftAccess安裝”對話框,在數據源名后面的文本框內輸入一個新名稱(班級學生)。495)單擊“選擇”按鈕,進入“選擇數據庫”對話框,在右邊選擇數據庫所在的目錄,左邊選擇指定的數據庫。506)單擊兩次“確定”按鈕,返回“ODBC數據源管理器”對話框,可以看到“班級學生”數據源顯示在“系統DSN”選項卡的列表框中。51§5.4.3ADO簡介ADO對象模型主要包括連接(Connection)、命令(Command)、記錄集(Recordset)、錯誤(Error)、參數(Parameter)、字段(Field)對象對象描述Connection提供了訪問數據源的途經,指定連接的數據庫Command將對數據源執行的指定命令Recordset執行查詢所得到的記錄集Error連接的錯誤信息Parameter與命令對象相關的參數Field表示記錄集中的字段信息Property體現

ADO對象的特性52§5.4.4ADOData控件用ADO控件創建數據庫應用程序:1)添加ADO控件到工具箱。創建一個新的VB工程,單擊“工程”菜單-“部件”,打開“部件”對話框,選中“MicrosoftADODataControl6.0(OLEDB)”-單擊“確定”按鈕。532)雙擊工具箱中的ADO控件將其添加到窗體上并適當調整其位置。3)單擊該控件的ConnectionString屬性右側的…按鈕,出現“屬性頁”窗口,選擇“使用ODBC數據源名稱”,選擇“班級學生”數據源,單擊“確定”按鈕。544)單擊該控件RecordSource屬性右側的…按鈕,選擇相應的數據表。5)至此,ADO控件的配置完畢。在VB窗體上添加標簽與文本框控件,文本框的名字從上到下依次為txtNum、txtName、txtClass、txtOrigin

。556)分別設置各文本框的DataSource屬性和DataField屬性,各文本框的DataSource屬性均為Adodc1,DataField屬性則分別為學號、姓名、班級、來源。7)單擊運行按鈕,運行結果如圖所示。565.4.5

ADO編程基于ADO的應用程序存取數據源的主要步驟如下:1)連接到指定的數據源;2)打開記錄集對象;3)對記錄集進行添加、刪除、修改、查詢記錄等操作;4)關閉已打開的連接。兩個ADO對象:Connection對象

Recordset對象571)用CONNECTION對象連接到數據源State屬性:AdStateClosed(關閉,默認)

AdStateOpen

(打開)Open方法:打開到數據源的連接,如果能成功打開數據源,就可以對它發出命令并且處理結果語法為:Connection.OpenConnectionString,UserID,Password,OptionsClose方法:Connectio

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論