版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、.1,Java數(shù)據(jù)庫編程,Linbo He,2,數(shù)據(jù)庫技術(shù),數(shù)據(jù)庫是研究數(shù)據(jù)管理的技術(shù),始于20世紀60年代,經(jīng)過多年開發(fā),形成了理論體系,成為計算機軟件的重要組成部分。數(shù)據(jù)庫是信息管理的基礎(chǔ),任何計算機應(yīng)用程序都需要處理大量數(shù)據(jù),很少需要數(shù)據(jù)庫。隨著網(wǎng)絡(luò)的應(yīng)用,遠程異地使用網(wǎng)絡(luò)數(shù)據(jù)庫也變得越來越重要。3,為什么要使用數(shù)據(jù)庫?4,文件系統(tǒng)可以解決很多問題,但有些問題無法在文件系統(tǒng)中解決。向文件系統(tǒng)添加這些屬性時,文件系統(tǒng)也將成為數(shù)據(jù)庫。數(shù)據(jù)冗馀與數(shù)據(jù)不匹配:冗馀多,分布式可能導致數(shù)據(jù)不同步的問題。數(shù)據(jù)難以訪問,數(shù)據(jù)孤立:由于數(shù)據(jù)存儲不采用相同的格式,因此無法使用統(tǒng)一接口訪問數(shù)據(jù)。完整性問題:數(shù)
2、據(jù)的準確性和兼容性。原子問題:確保交易完整性的方法。并行存?。哼@也是資料庫同時處理相同資料作業(yè)之非現(xiàn)場交易的一部份。安全問題:主要是數(shù)據(jù)庫訪問問題。5,關(guān)系數(shù)據(jù)庫的基本概念,數(shù)據(jù)庫:可以特定方式存儲在存儲介質(zhì)上的相關(guān)數(shù)據(jù)的集合??梢岳斫鉃閿?shù)據(jù)的倉庫。配置方法支持對數(shù)據(jù)的有效訪問。數(shù)據(jù)庫現(xiàn)在是由多個表(table)和表之間的關(guān)聯(lián)關(guān)系組成的數(shù)據(jù)集合,這是由多個行和列組成的二維關(guān)系結(jié)構(gòu)?!癆BC .DBF、customer.mdb MDB、Total。DBC”等計算機文件,稱為數(shù)據(jù)庫或庫文件。6,實體顯示為表,實體之間的關(guān)系也顯示為表。表格中的欄稱為欄位。7,數(shù)據(jù)庫的概念分層,物理層:定義數(shù)據(jù)的存儲
3、格式。能夠處理此層的人是數(shù)據(jù)庫軟件開發(fā)人員。邏輯層次:定義數(shù)據(jù)和數(shù)據(jù)之間的關(guān)系。能夠處理此層次結(jié)構(gòu)的人是數(shù)據(jù)庫的設(shè)計者。視圖層:定義最終向客戶顯示的數(shù)據(jù)的格式。此層是數(shù)據(jù)庫客戶端的開發(fā)人員和最終用戶。這三層從上到下是層透明的。用戶對數(shù)據(jù)庫結(jié)構(gòu)不感興趣,數(shù)據(jù)庫設(shè)計開發(fā)人員對存儲結(jié)構(gòu)不感興趣。8,什么是數(shù)據(jù)模型,什么是數(shù)據(jù)模型?數(shù)據(jù)模型是客觀事物及其連接的數(shù)據(jù)描述,數(shù)據(jù)模型必須具有兩種功能:對數(shù)據(jù)的描述和數(shù)據(jù)連接。數(shù)據(jù)的說明表明模型包含相應(yīng)的記錄類型,并且已命名記錄類型。每個記錄類型由相應(yīng)的數(shù)據(jù)組成,數(shù)據(jù)項被命名,每個數(shù)據(jù)項表示該數(shù)據(jù)類型和值的范圍。數(shù)據(jù)之間關(guān)聯(lián)的說明指明了不同記錄之間的關(guān)聯(lián)和聯(lián)系
4、方式。9,什么是實體模型,什么是實體模型?物理連接模型也稱為信息模型,是客觀事物與其自然連接在人腦中形成的概念。實體模型和數(shù)據(jù)模型之間有什么關(guān)系?數(shù)據(jù)模型本質(zhì)上是“信息模型”的數(shù)據(jù)表示。從物理模型到數(shù)據(jù)模型的演變是現(xiàn)實世界信息世界數(shù)據(jù)世界,10,實體和屬性,信息世界中廣泛使用的兩個術(shù)語實體,即實際的、概念上的、事物和事物之間的關(guān)系,總是統(tǒng)稱為實體。屬性:實例具有的屬性,統(tǒng)稱為屬性。實體由屬性描述。與實體集類型相同的實體集合稱為實體集。域?qū)嶓w中的每個屬性都有一個值范圍,稱為屬性的“域”。域也稱為關(guān)鍵字,可以是整數(shù)、實數(shù)、字符串等關(guān)鍵字。這是實體屬性中實體集中不同實體的相應(yīng)屬性,或可用于區(qū)分多個屬
5、性的組合。,11,實體之間的連接方式,實體之間的連接實際上反映了實體之間的語義關(guān)系。連接也是實體,因此也可以具有屬性。1:一對一連接(簡單的1:1) 2:一對多連接(簡單的13360n)3:多對一連接(簡單的m:n)。12,一對一連接(如果同一對象集中的一個對象與另一對象中的一個對象相對應(yīng),則連接1:1)?;橐鲫P(guān)系,如下圖所示。13、一對多關(guān)系,對于兩組不同的對象,一個對象對應(yīng)于另一個對象中的多個對象。相反,對方的一個實體連接到最多相當于一個實體的1:n。如下圖所示,14,多對一關(guān)系位于兩個不同類型的圖元集中時,其中一個對象通過m :n連接,對應(yīng)于一個或多個圖元。學生和課程的關(guān)系,如下圖所示。
6、15,“多對一陣列”需要a表和b表之間的關(guān)聯(lián)表,該關(guān)聯(lián)表也是多對一陣列的核心。根據(jù)關(guān)聯(lián)的表是否具有單獨的業(yè)務(wù)流程要求,可以分為兩種細分情況:具有獨立業(yè)務(wù)處理需求的業(yè)務(wù)實體對象,因此具有一些唯一屬性。本身沒有單獨的業(yè)務(wù)處理要求,因此沒有特殊的屬性。16,e-r圖的畫法,e-r圖包含三個基本圖:圖元、屬性和連接。依照慣例,實體會顯示為方塊,實體的屬性會顯示為橢圓方塊,連接對則會顯示為菱形方塊。17,18,e-r的設(shè)計原則為每個用戶創(chuàng)建該用戶信息的本地e-r圖片,以標識該用戶視圖的實體、屬性和聯(lián)系人。可用作屬性的不要用作實體。有助于簡化E - R圖。組合局部e-r圖形以生成完整的e-r圖形。在合成過
7、程中,同名圖元只能出現(xiàn)一次,必須移除不必要的連接以消除重復(fù)項。最后,強調(diào)一個系統(tǒng)的e-r圖不是唯一的,e-r圖在很多方面可能有很大的不同。19、示例,設(shè)置企業(yè)信息系統(tǒng)的用戶包括:人事科處理員工文件。供應(yīng)部處理采購工作??倓?wù)科處理倉庫業(yè)務(wù)。生產(chǎn)科處理產(chǎn)品業(yè)務(wù)。根據(jù)上述要求,設(shè)計一個反映所有用戶信息視圖的完整E - R圖。問候和查看,20,供應(yīng)科查看,生產(chǎn)科查看,21,總務(wù)科查看,22,整體e-r圖,綜合e-r圖中排除了一些連接,添加了一些新連接。這是允許的,23,導出關(guān)系模型,e-r圖只是現(xiàn)實世界的純粹反映,與數(shù)據(jù)庫特定的實現(xiàn)無關(guān)。但是,這是構(gòu)建數(shù)據(jù)模型的基礎(chǔ)。以下是從E - R圖導出關(guān)系模型的
8、原理。原則1:對于e-r圖中的每個對象,必須轉(zhuǎn)換為包含該對象所有屬性的關(guān)系,并且必須根據(jù)關(guān)系表示的含義確定用作“主鍵”的屬性。密鑰是在關(guān)系模型中實現(xiàn)連接的主要手段原則2: E - R圖中的連接情況更復(fù)雜,根據(jù)實體聯(lián)系人以不同的方式實現(xiàn)。24、數(shù)據(jù)庫語言和數(shù)據(jù)庫語言通常由以下兩部分組成:(1) DDL數(shù)據(jù)定義語言。(2)DML數(shù)據(jù)操作語言。最常用的數(shù)據(jù)庫語言是SQL。25,數(shù)據(jù)庫設(shè)計點,主鍵和外鍵通常,實體不應(yīng)有主鍵或外鍵。在全局數(shù)據(jù)庫的設(shè)計中占有重要位置的主鍵和外鍵的設(shè)計。主鍵是實體的高度抽象,用主鍵和外鍵對表示實體之間的連接。密鑰可以是沒有物理意義的數(shù)字字符串,程序自動加1實現(xiàn)。也可以是具有
9、物理意義的字段名或字段名的組合。但是前者比后者好。PK是字段名的組合時,建議的字段數(shù)不要太多。數(shù)量越多,索引占用的空間就越大,速度也越慢。,26,通俗理解的三種范式第一范式:1NF是對屬性的原子約束,屬性具有原子性,不可分解的本質(zhì);第二范式:2nb是記錄的唯一性約束,要求記錄的唯一性,即實體的唯一性。第三范式:3NF是對場冗余的約束。也就是說,任何字段都不能派生自其他字段,并且字段不能有重復(fù)項。沒有重復(fù)的數(shù)據(jù)庫設(shè)計。但是,沒有冗馀的數(shù)據(jù)庫不一定是最好的數(shù)據(jù)庫,有時為了提高運營效率,需要降低范式標準,適當?shù)乇A糁貜?fù)數(shù)據(jù)。27,3個或3個以下原則一個數(shù)據(jù)庫中的表數(shù)越少越好。只有表的數(shù)量少,系統(tǒng)的e
10、-r圖才能解釋小而精,消除重復(fù)的多余對象,形成對客觀世界的高抽象。表中組合主鍵中的字段越少越好。主鍵的作用之一是主鍵索引,另一個是子表的外鍵,因此組合主鍵的字段較少,可以節(jié)省執(zhí)行時間并節(jié)省索引存儲空間。表格中的欄位越少越好。只有在沒有數(shù)據(jù)冗馀且指示幾乎沒有數(shù)據(jù)冗馀的字段數(shù)較少的情況下,才能使用Java數(shù)據(jù)庫連接、29、JDBC,它是用于執(zhí)行由一組用Java語言編寫的類和接口組成的SQL語句的Java API。JDBC提供了一個基準,使數(shù)據(jù)庫開發(fā)人員能夠構(gòu)建更高級別的工具和界面以編寫數(shù)據(jù)庫應(yīng)用程序,JDBC也是商標名稱。30,the type of JDBC,type 1: JDBC-ODBC
11、bridge要求客戶端安裝ODBC驅(qū)動程序的效率較低,用于大容量訪問的應(yīng)用程序不適用于快速原型系統(tǒng)。access (desktop database,31,type 2: Java to native API比運行JDBC-ODBC橋的效率稍高。但是,必須從客戶端加載數(shù)據(jù)庫供應(yīng)商提供的代碼庫。不適用于基于internet的應(yīng)用程序。32,type 3: Java to net適用于需要同時連接多種數(shù)據(jù)庫的應(yīng)用程序。33,type 4: Java to native database最佳性能,通過自己的本地協(xié)議與數(shù)據(jù)庫引擎直接通信,34、JDBC和數(shù)據(jù)庫驅(qū)動程序、JDBC是特定供應(yīng)商數(shù)據(jù)庫訪問A
12、PI的高級抽象,它提供了對各種關(guān)系數(shù)據(jù)庫(主要包含一些公共接口類)的統(tǒng)一訪問方法。實際的數(shù)據(jù)庫訪問作業(yè)實施由相應(yīng)的數(shù)據(jù)庫供應(yīng)商提供。供應(yīng)商提供的特定于數(shù)據(jù)庫的訪問API通常稱為數(shù)據(jù)庫JDBC驅(qū)動程序。JDBC通過提供抽象數(shù)據(jù)庫接口(程序開發(fā)人員在編程時不必綁定到特定數(shù)據(jù)庫供應(yīng)商的API),極大地提高了應(yīng)用程序的可移植性。在運行時,即使程序代碼通過JDBC訪問數(shù)據(jù)庫,也必須調(diào)用特定于數(shù)據(jù)庫的訪問API。35,JDBC訪問數(shù)據(jù)庫分層結(jié)構(gòu),為了獨立于平臺提供,36,JDBC,JDBC使用Class.forName()裝載并在驅(qū)動程序管理器中注冊所有數(shù)據(jù)庫查詢所需的驅(qū)動程序?qū)ο蟆?7,創(chuàng)建數(shù)據(jù)庫連接。
13、首先注冊數(shù)據(jù)庫驅(qū)動程序,然后根據(jù)特定JDBC URL地址調(diào)用驅(qū)動程序管理器對象的getConnection(),以獲取表示數(shù)據(jù)庫連接的java.sql.connection對象。JDBC URL格式為jdbc:子協(xié)議:數(shù)據(jù)庫定位器,38,MySQL數(shù)據(jù)庫:jdbc:mysql:/系統(tǒng)名稱/數(shù)據(jù)庫名稱Oracle數(shù)據(jù)庫:jdbc:oracle:thin系統(tǒng)名稱:端口名稱:數(shù)據(jù)庫名稱JDBC : SQLDatabaseName=Graduate ,39,在驅(qū)動程序管理器對象中,調(diào)用getConnection()以獲得數(shù)據(jù)庫連接的特定JDBC URL。此方法有兩種形式。driver manager
14、. get connection(URL)driver manager . get connection(URL、user、password)第二種方法要求輸入用戶名和密碼信息以進行驗證。40,連接數(shù)據(jù)庫示例,41,JDBC對數(shù)據(jù)庫執(zhí)行sql,SQL,java.sql.Statement對象表示發(fā)送到數(shù)據(jù)庫執(zhí)行的SQL語句。有三種類型的Statement對象:Statement對象用于執(zhí)行不帶參數(shù)的簡單SQL語句。PreparedStatement對象用于通過運行具有或不具有參數(shù)的預(yù)編譯SQL語句CallableStatement對象來執(zhí)行數(shù)據(jù)庫存儲過程調(diào)用。42,43、Statement和S
15、tatement對象提供了三種執(zhí)行SQL語句的方法:executeQuery():(用于創(chuàng)建單個結(jié)果集的SQL,Select語句等executeUpdate: (insert,delete,Update,create table,drop table),44,prepared statement,Prepared statement實例包含編譯的SQL語句也是命名為“Prepared”的原因。PreparedStatement對象中包含的SQL語句可以有一個或多個IN參數(shù)。IN參數(shù)的值在創(chuàng)建SQL語句時未指定。相反,此語句對每個IN參數(shù)使用問號(“?”)作為占位符。每個問號的值必須在相應(yīng)的語句
16、執(zhí)行之前通過相應(yīng)的setXXX()方法提供。PreparedStatement對象已預(yù)編譯,因此運行速度比Statement對象快。因此,多次執(zhí)行的SQL語句通常作為PreparedStatement對象編寫,以提高效率。45、PreparedStatement接口也具有自己的executeQuery、executeUpdate和execute方法。Statement對象本身不包含SQL語句,因此必須將SQL語句作為參數(shù)提供給Statement.execute方法。PreparedStatement對象不會將SQL語句作為參數(shù)提供給這些方法,因為該方法已包含預(yù)編譯的SQL語句。要調(diào)用、46、CallableStatement、存儲過程,將經(jīng)常使用或復(fù)雜的任務(wù)預(yù)寫為SQL語句,使用指定的名稱保存它們,然后提供與數(shù)據(jù)庫中定義的存儲過程相同的功能的服務(wù),只需調(diào)用execute即可自動完成命令。47,存儲過程的優(yōu)點,存儲過程僅在創(chuàng)建時編譯,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年大學高級財務(wù)管理期末考試及答案(考點梳理)
- 2026年工貿(mào)試題-考試題庫及答案(名師系列)
- 2026年注冊稅務(wù)師考試題庫帶答案(基礎(chǔ)題)
- 2026年渤海理工職業(yè)學院單招職業(yè)傾向性考試模擬測試卷附答案
- 2026年版保安員(初級)內(nèi)部模擬考試題庫及參考答案(完整版)
- 2026年遼寧省本溪市單招職業(yè)傾向性考試模擬測試卷附答案
- 2026年重慶公共運輸職業(yè)學院單招(計算機)考試參考題庫附答案
- 2026年重慶輕工職業(yè)學院單招職業(yè)技能考試題庫附答案
- 小學數(shù)字化管理系統(tǒng)建設(shè)方案
- 2025-2026學年江蘇省鹽城市東臺市九年級(上)期末化學試卷(含答案)
- 海上風電回顧與展望2025年
- 地鐵春節(jié)安全生產(chǎn)培訓
- 預(yù)包裝食品配送服務(wù)投標方案(技術(shù)方案)
- 新型電力系統(tǒng)背景下新能源發(fā)電企業(yè)技術(shù)監(jiān)督管理體系創(chuàng)新
- 旅游景區(qū)旅游安全風險評估報告
- FZ∕T 54007-2019 錦綸6彈力絲行業(yè)標準
- 顱腦外傷的麻醉管理
- AED(自動體外除顫儀)的使用
- FZ∕T 74002-2014 運動文胸行業(yè)標準
- 2024年福建寧德高速交警招聘筆試參考題庫附帶答案詳解
- 中國礦業(yè)權(quán)評估準則(2011年)
評論
0/150
提交評論