計(jì)算機(jī)導(dǎo)論(第2版)(微課視頻版)課件 第11章 數(shù)據(jù)庫(kù)_第1頁(yè)
計(jì)算機(jī)導(dǎo)論(第2版)(微課視頻版)課件 第11章 數(shù)據(jù)庫(kù)_第2頁(yè)
計(jì)算機(jī)導(dǎo)論(第2版)(微課視頻版)課件 第11章 數(shù)據(jù)庫(kù)_第3頁(yè)
計(jì)算機(jī)導(dǎo)論(第2版)(微課視頻版)課件 第11章 數(shù)據(jù)庫(kù)_第4頁(yè)
計(jì)算機(jī)導(dǎo)論(第2版)(微課視頻版)課件 第11章 數(shù)據(jù)庫(kù)_第5頁(yè)
已閱讀5頁(yè),還剩67頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第11章

數(shù)據(jù)庫(kù)目錄2第一節(jié)文件和數(shù)據(jù)庫(kù)概念第二節(jié)數(shù)據(jù)管理工具第三節(jié)數(shù)據(jù)庫(kù)設(shè)計(jì)第四節(jié)SQL第五節(jié)云數(shù)據(jù)庫(kù)第六節(jié)大數(shù)據(jù)第一節(jié)文件和數(shù)據(jù)庫(kù)概念數(shù)據(jù)庫(kù)概念數(shù)據(jù)庫(kù)層次數(shù)據(jù)庫(kù)常用詞匯數(shù)據(jù)庫(kù)的分類數(shù)據(jù)庫(kù)模型數(shù)據(jù)庫(kù)概念數(shù)據(jù)庫(kù)(Database)是數(shù)據(jù)的集合,數(shù)據(jù)庫(kù)中的數(shù)據(jù)能夠按照特定的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ),能對(duì)多個(gè)用戶共享,具有盡可能小的冗余度,且與應(yīng)用程序彼此獨(dú)立。4第一節(jié)文件和數(shù)據(jù)庫(kù)概念數(shù)據(jù)庫(kù)概念數(shù)據(jù)庫(kù)層次數(shù)據(jù)庫(kù)常用詞匯數(shù)據(jù)庫(kù)的分類數(shù)據(jù)庫(kù)模型數(shù)據(jù)庫(kù)層次數(shù)據(jù)庫(kù)可以分為三個(gè)層次,不同類型的用戶接觸的層次不盡相同:6物理層物理層是數(shù)據(jù)庫(kù)最底層的抽象,它描述了數(shù)據(jù)是怎樣在物理介質(zhì)上存儲(chǔ)的。通常只有數(shù)據(jù)庫(kù)的研究人員才會(huì)接觸數(shù)據(jù)庫(kù)的物理層邏輯層邏輯層是比物理層的層次稍高的抽象。它描述了數(shù)據(jù)條目存儲(chǔ)的內(nèi)容及數(shù)據(jù)之間的關(guān)系。數(shù)據(jù)庫(kù)的管理者使用邏輯層進(jìn)行管理。視圖層視圖層是最高層次的抽象,只關(guān)注于數(shù)據(jù)庫(kù)的某一部分。絕大部分?jǐn)?shù)據(jù)庫(kù)用戶接觸到的是視圖層。第一節(jié)文件和數(shù)據(jù)庫(kù)概念數(shù)據(jù)庫(kù)概念數(shù)據(jù)庫(kù)層次數(shù)據(jù)庫(kù)常用詞匯數(shù)據(jù)庫(kù)的分類數(shù)據(jù)庫(kù)模型數(shù)據(jù)庫(kù)常用詞匯8字段記錄關(guān)系基數(shù)實(shí)體數(shù)據(jù)庫(kù)常用詞匯數(shù)據(jù)庫(kù)常用詞匯:字段字段是數(shù)據(jù)庫(kù)的基本組成元素,存放著屬于同一類的信息。例如在iTunes播放列表中,名稱字段存儲(chǔ)的是歌曲的名稱,時(shí)間字段存儲(chǔ)的是歌曲的時(shí)長(zhǎng)等。字段又分變長(zhǎng)字段和定長(zhǎng)字段。其中變長(zhǎng)字段的長(zhǎng)度可以根據(jù)輸入數(shù)據(jù)的長(zhǎng)度動(dòng)態(tài)分配,只要不超過(guò)預(yù)設(shè)的最大值。定長(zhǎng)字段則會(huì)分配固定大小的空間,即使數(shù)據(jù)很小,也會(huì)占用掉整個(gè)空間。9數(shù)據(jù)庫(kù)常用詞匯:字段10iTunes播放列表中的字段數(shù)據(jù)庫(kù)常用詞匯:記錄與實(shí)體11記錄。記錄是一組字段的集合,代表著一條信息。例如在iTunes播放列表中,每一首歌曲對(duì)應(yīng)著一條記錄,每條記錄都包含該歌曲的名稱、時(shí)間、播放次數(shù)等信息。記錄類型。記錄類型是記錄模板即字段名的集合,記錄類型不包含具體的數(shù)據(jù)。實(shí)體。實(shí)體是所有同類物品或生物的集合。每一個(gè)實(shí)體都對(duì)應(yīng)著一個(gè)記錄類型,例如,歌曲這個(gè)實(shí)體對(duì)應(yīng)著名稱、時(shí)間、播放次數(shù)的記錄類型。數(shù)據(jù)庫(kù)常用詞匯:關(guān)系與基數(shù)12關(guān)系。關(guān)系是指不同記錄類型之間的聯(lián)系。例如,零售商出售的商品ID必須在該商品生產(chǎn)者記錄的商品ID列表里,否則該商品就有可能是偽造產(chǎn)品,這便是一種關(guān)系?;鶖?shù)?;鶖?shù)是指兩個(gè)記錄類型間可能存在的聯(lián)系的個(gè)數(shù)。例如:對(duì)特定種類產(chǎn)品只能由一個(gè)廠商生產(chǎn),而一個(gè)廠商卻可以生產(chǎn)多種產(chǎn)品,這是一對(duì)多關(guān)系。多對(duì)多關(guān)系如廠商和超市的貨物供應(yīng),超市可以選擇多個(gè)廠商的貨物,廠商也可以供給超市多種貨物。一對(duì)一關(guān)系如專輯和其描述的關(guān)系,一個(gè)專輯只允許有一個(gè)描述,而一個(gè)描述也只適用于一個(gè)專輯,一對(duì)一關(guān)系在數(shù)據(jù)庫(kù)中很少見。數(shù)據(jù)庫(kù)常用詞匯:關(guān)系與基數(shù)13實(shí)體關(guān)系圖(EntityRelationshipDiagram,簡(jiǎn)稱ER圖)常用來(lái)表示實(shí)體間的關(guān)系與基數(shù)。第一節(jié)文件和數(shù)據(jù)庫(kù)概念數(shù)據(jù)庫(kù)概念數(shù)據(jù)庫(kù)層次數(shù)據(jù)庫(kù)常用詞匯數(shù)據(jù)庫(kù)的分類數(shù)據(jù)庫(kù)模型數(shù)據(jù)庫(kù)的分類15數(shù)據(jù)庫(kù)系統(tǒng)可以用不同方式來(lái)分類,包括數(shù)據(jù)庫(kù)所支持的用戶數(shù)量、數(shù)據(jù)庫(kù)的層數(shù)、數(shù)據(jù)庫(kù)所處環(huán)境等。常見數(shù)據(jù)庫(kù)的分類如下:常見數(shù)據(jù)庫(kù)的分類單用戶數(shù)據(jù)庫(kù)系統(tǒng)與多用戶數(shù)據(jù)庫(kù)系統(tǒng)客戶端—服務(wù)器數(shù)據(jù)庫(kù)系統(tǒng)與N層數(shù)據(jù)庫(kù)系統(tǒng)基于磁盤的和在內(nèi)存中的數(shù)據(jù)庫(kù)系統(tǒng)操作型數(shù)據(jù)庫(kù)和分析型數(shù)據(jù)庫(kù)集中式和分布式數(shù)據(jù)庫(kù)系統(tǒng)第一節(jié)文件和數(shù)據(jù)庫(kù)概念數(shù)據(jù)庫(kù)概念數(shù)據(jù)庫(kù)層次數(shù)據(jù)庫(kù)常用詞匯數(shù)據(jù)庫(kù)的分類數(shù)據(jù)庫(kù)模型數(shù)據(jù)庫(kù)模型17數(shù)據(jù)庫(kù)模型描述了數(shù)據(jù)在數(shù)據(jù)庫(kù)中的存儲(chǔ)結(jié)構(gòu)與表現(xiàn)方式,可以分為以下幾種:數(shù)據(jù)庫(kù)模型:平面文件18平面文件處于數(shù)據(jù)庫(kù)定義的邊緣,因?yàn)樗?jiǎn)單到無(wú)法在記錄間建立關(guān)系。iTunes播放列表就是一個(gè)平面文件,常見的平面文件還有電子表格、電子郵件地址簿等。用戶可以對(duì)平面文件進(jìn)行增、刪、改、查,但無(wú)法指定記錄間的關(guān)系。除了平面文件外,其他的數(shù)據(jù)庫(kù)模型都允許建立關(guān)系。數(shù)據(jù)庫(kù)模型:層次數(shù)據(jù)庫(kù)19層次數(shù)據(jù)庫(kù)使用樹形結(jié)構(gòu)來(lái)描述關(guān)系,由于“樹”的限制,只能定義一對(duì)一或一對(duì)多的關(guān)系,無(wú)法定義多對(duì)多關(guān)系。常見的層次數(shù)據(jù)庫(kù)如Windows的注冊(cè)表。層次數(shù)據(jù)庫(kù)現(xiàn)今已很少被使用。層次數(shù)據(jù)庫(kù)示意圖如下:數(shù)據(jù)庫(kù)模型:網(wǎng)狀數(shù)據(jù)庫(kù)20網(wǎng)狀數(shù)據(jù)庫(kù)在樹的基礎(chǔ)上將其擴(kuò)成了網(wǎng)狀結(jié)構(gòu),從而可以表現(xiàn)多對(duì)多關(guān)系。目前除了DNS系統(tǒng)等專用系統(tǒng)或應(yīng)用還在使用網(wǎng)狀數(shù)據(jù)庫(kù),其他網(wǎng)狀數(shù)據(jù)庫(kù)都已被關(guān)系數(shù)據(jù)庫(kù)或?qū)ο髷?shù)據(jù)庫(kù)所取代。數(shù)據(jù)庫(kù)模型:關(guān)系數(shù)據(jù)庫(kù)21關(guān)系數(shù)據(jù)庫(kù)是目前最常使用到的數(shù)據(jù)庫(kù),它將存儲(chǔ)在一張張表格中。每個(gè)表格代表一個(gè)實(shí)體,表格中每行代表一個(gè)記錄,每列代表一個(gè)字段。而關(guān)系是通過(guò)將不同表中的相同字段聯(lián)系起來(lái)而指定的。數(shù)據(jù)庫(kù)模型:維度數(shù)據(jù)庫(kù)22維度數(shù)據(jù)庫(kù)是關(guān)系數(shù)據(jù)庫(kù)的一種擴(kuò)展,關(guān)系數(shù)據(jù)庫(kù)采用的是二維的表格,而維度數(shù)據(jù)庫(kù)采用了三維或更多維的“數(shù)據(jù)空間”來(lái)描述數(shù)據(jù)或關(guān)系,因此維度數(shù)據(jù)庫(kù)也稱多維數(shù)據(jù)庫(kù)。維度數(shù)據(jù)庫(kù)可以更形象地表現(xiàn)數(shù)據(jù),但使用和維護(hù)維度數(shù)據(jù)庫(kù)需要更多的專業(yè)技術(shù)。數(shù)據(jù)庫(kù)模型:對(duì)象數(shù)據(jù)庫(kù)23對(duì)象數(shù)據(jù)庫(kù)也叫面向?qū)ο髷?shù)據(jù)庫(kù),它將實(shí)體抽象為類,將字段抽象為屬性,將數(shù)據(jù)存儲(chǔ)為對(duì)象的形式,并定義出方法——對(duì)象能執(zhí)行的行為。對(duì)象數(shù)據(jù)庫(kù)適合表示屬性差別極小的不同類對(duì)象——只需設(shè)置一個(gè)父類存放它們的共有屬性,再設(shè)置相應(yīng)數(shù)目的派生類存放各自的特有屬性,并繼承父類即可。對(duì)象數(shù)據(jù)庫(kù)是一種正在發(fā)展的數(shù)據(jù)庫(kù),它能夠更好地表現(xiàn)日常生活中的實(shí)體和關(guān)系。數(shù)據(jù)庫(kù)模型:對(duì)象-關(guān)系數(shù)據(jù)庫(kù)24對(duì)象-關(guān)系數(shù)據(jù)庫(kù)將關(guān)系數(shù)據(jù)庫(kù)和對(duì)象數(shù)據(jù)庫(kù)的特征相結(jié)合。數(shù)據(jù)像傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)一樣存儲(chǔ)在表格中,但增加了對(duì)象數(shù)據(jù)庫(kù)的功能——可以擴(kuò)充自定義的數(shù)據(jù)類型和操作,支持復(fù)雜對(duì)象的查詢,以及支持繼承的概念。數(shù)據(jù)庫(kù)模型:文檔數(shù)據(jù)庫(kù)25面向文檔的數(shù)據(jù)庫(kù)可以存儲(chǔ)非結(jié)構(gòu)化的數(shù)據(jù),如講演的原話或雜志的文章。由于文章具有可變的長(zhǎng)度和結(jié)構(gòu),因此不需要將數(shù)據(jù)塑造成適應(yīng)數(shù)據(jù)庫(kù)的結(jié)果。文檔數(shù)據(jù)庫(kù)可按照這樣的方式來(lái)創(chuàng)建,即將類似于HTML的結(jié)構(gòu)化標(biāo)記插入到文檔自身。格式化文檔數(shù)據(jù)庫(kù)的兩種常用的方式是使用XML和JSON,相對(duì)而言,XML更靈活。數(shù)據(jù)庫(kù)模型:圖形數(shù)據(jù)庫(kù)26圖形數(shù)據(jù)庫(kù)包含節(jié)點(diǎn)、邊和特性。圖形數(shù)據(jù)庫(kù)是NoSQL數(shù)據(jù)庫(kù)的一種類型,是一種非關(guān)系型數(shù)據(jù)庫(kù),它應(yīng)用圖形理論存儲(chǔ)實(shí)體之間的關(guān)系信息。關(guān)系型數(shù)據(jù)庫(kù)用于存儲(chǔ)“關(guān)系型”數(shù)據(jù)的效果并不好,其查詢復(fù)雜、緩慢、超出預(yù)期,而圖形數(shù)據(jù)庫(kù)的獨(dú)特設(shè)計(jì)恰恰彌補(bǔ)了這個(gè)缺陷。第二節(jié)數(shù)據(jù)管理工具數(shù)據(jù)管理軟件數(shù)據(jù)庫(kù)管理系統(tǒng)數(shù)據(jù)庫(kù)和WebXML數(shù)據(jù)管理軟件數(shù)據(jù)管理軟件是最簡(jiǎn)單的數(shù)據(jù)管理工具,它可以創(chuàng)建并維護(hù)平面文件,但不能在記錄間建立關(guān)系,也沒(méi)有足夠能力維護(hù)企業(yè)所需的大量數(shù)據(jù)。常見的數(shù)據(jù)管理軟件如MicrosoftWord和MicrosoftExcel,它們都提供了創(chuàng)建與管理表格的工具。28第二節(jié)數(shù)據(jù)管理工具數(shù)據(jù)管理軟件數(shù)據(jù)庫(kù)管理系統(tǒng)數(shù)據(jù)庫(kù)和WebXML數(shù)據(jù)庫(kù)管理系統(tǒng)數(shù)據(jù)庫(kù)管理系統(tǒng)(DataBaseManagementSystem,簡(jiǎn)稱DBMS)是專業(yè)的數(shù)據(jù)管理工具,是專門用來(lái)管理數(shù)據(jù)庫(kù)中數(shù)據(jù)的軟件。數(shù)據(jù)庫(kù)管理系統(tǒng)具有良好的數(shù)據(jù)獨(dú)立性——即DBMS只負(fù)責(zé)數(shù)據(jù),而程序需要通過(guò)編程語(yǔ)言向DBMS申請(qǐng)以獲取數(shù)據(jù)。數(shù)據(jù)庫(kù)管理系統(tǒng)支持網(wǎng)絡(luò)訪問(wèn),可以管理數(shù)十億條的記錄,并支持每秒數(shù)百次甚至上千次的并發(fā)事務(wù)處理。DBMS≠DB30數(shù)據(jù)庫(kù)管理系統(tǒng)DBMS可以分為很多種,每一種都專用于某一數(shù)據(jù)庫(kù)模型,但也有一些DBMS可以同時(shí)處理多種數(shù)據(jù)庫(kù)模型:31XMLDBMS,用于處理XML格式的數(shù)據(jù)。對(duì)象數(shù)據(jù)庫(kù)管理系統(tǒng)(ObjectDBMS,簡(jiǎn)稱ODBMS),用于處理對(duì)象數(shù)據(jù)庫(kù)模型。關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(RelationalDBMS,簡(jiǎn)稱RDBMS),用于處理關(guān)系數(shù)據(jù)庫(kù)模型。數(shù)據(jù)庫(kù)管理系統(tǒng)32關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)是時(shí)下最流行的數(shù)據(jù)庫(kù)管理系統(tǒng)。在商業(yè)領(lǐng)域最常用的RDBMS如Oracle、MicrosoftSQLServer、MySQL等,個(gè)人用戶則可以考慮使用MicrosoftAccess。第二節(jié)數(shù)據(jù)管理工具數(shù)據(jù)管理軟件數(shù)據(jù)庫(kù)管理系統(tǒng)數(shù)據(jù)庫(kù)和WebXML數(shù)據(jù)庫(kù)和Web數(shù)據(jù)庫(kù)是可以通過(guò)Web訪問(wèn)的,但它的訪問(wèn)方式非?!半[秘”,以至于大多數(shù)Web用戶甚至發(fā)覺(jué)不到信息是由數(shù)據(jù)庫(kù)生成的。例如,網(wǎng)上商城商品的價(jià)格、圖片和描述其實(shí)都是來(lái)自數(shù)據(jù)庫(kù),并經(jīng)由一定的處理生成的;12306網(wǎng)站上的列車時(shí)刻表也是源于數(shù)據(jù)庫(kù)??梢酝ㄟ^(guò)靜態(tài)或動(dòng)態(tài)發(fā)布的方式將數(shù)據(jù)庫(kù)中的內(nèi)容提供到Web上。靜態(tài)Web發(fā)布是將數(shù)據(jù)庫(kù)中的數(shù)據(jù)轉(zhuǎn)換成HTML文檔,從而提供訪問(wèn),其實(shí)質(zhì)是生成了一個(gè)數(shù)據(jù)庫(kù)的“快照”。Web用戶只可以對(duì)此HTML文檔進(jìn)行查看或搜素,而不能更改數(shù)據(jù)庫(kù)中的內(nèi)容。34數(shù)據(jù)庫(kù)和Web如果要通過(guò)Web對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行修改,或進(jìn)行定制性的查看(如網(wǎng)上商城的“猜你喜歡”功能),則需要借助動(dòng)態(tài)Web發(fā)布。動(dòng)態(tài)Web發(fā)布依靠服務(wù)器端腳本在用戶瀏覽器和DBMS間建立連接。服務(wù)器端腳本可以用PHP、Ruby、Python、ASP等語(yǔ)言進(jìn)行編寫。操作系統(tǒng)、Web服務(wù)器軟件、數(shù)據(jù)庫(kù)管理系統(tǒng)和服務(wù)器端腳本共同組成了Web服務(wù)器框架。用戶通過(guò)網(wǎng)頁(yè)提交的記錄其實(shí)都是表單的形式,在HTML語(yǔ)言中就是<form>標(biāo)簽下的內(nèi)容,<form>標(biāo)簽會(huì)指定提交方式和提交到服務(wù)器端腳本的文件名。用戶提交后,<form>標(biāo)簽中的內(nèi)容就會(huì)提交到對(duì)應(yīng)腳本進(jìn)行處理,腳本處理完畢后再將結(jié)果以HTML文檔的方式返回給用戶。35第二節(jié)數(shù)據(jù)管理工具數(shù)據(jù)管理軟件數(shù)據(jù)庫(kù)管理系統(tǒng)數(shù)據(jù)庫(kù)和WebXMLXMLXML(ExtensibleMarkupLanguage,可擴(kuò)展標(biāo)記語(yǔ)言)是對(duì)HTML語(yǔ)言的擴(kuò)展與補(bǔ)充。它與HTML語(yǔ)言在語(yǔ)法上的區(qū)別是:HTML中并不是所有標(biāo)簽都成對(duì)出現(xiàn),而XML要求所有標(biāo)簽必須成對(duì)出現(xiàn);HTML的標(biāo)簽不區(qū)分大小寫,而XML標(biāo)簽區(qū)分大小寫。XML支持自定義的標(biāo)簽,如<author>標(biāo)簽可以標(biāo)記作者,<from>標(biāo)簽可以標(biāo)記來(lái)源。HTML和XML是為不同的目的而設(shè)計(jì)的。HTML被設(shè)計(jì)用來(lái)顯示數(shù)據(jù),關(guān)注于數(shù)據(jù)的外觀;而XML被設(shè)計(jì)為傳輸和存儲(chǔ)數(shù)據(jù),關(guān)注于數(shù)據(jù)的內(nèi)容。37XML可以理解為,XML僅僅是純文本,XML文件不會(huì)做任何事情,但應(yīng)用程序卻可以利用XML文件的易讀性和標(biāo)記性有針對(duì)性地處理XML文件。例如,應(yīng)用程序可以直接搜索<author>標(biāo)簽找到該文件的作者,而無(wú)需借助人工查詢。XML文件可以用瀏覽器或任何的文字處理軟件打開。38XMLXML和數(shù)據(jù)庫(kù)都可以用來(lái)存儲(chǔ)數(shù)據(jù)。XML可在多個(gè)平臺(tái)上訪問(wèn),占用資源更少,操作更方便,但對(duì)復(fù)雜的操作如排序、更新支持不是很好,且在數(shù)據(jù)量增大時(shí),查看與搜索的壓力也會(huì)增大,所以XML文件通常用于存儲(chǔ)程序的配置,而程序所用到的數(shù)據(jù)還是要用數(shù)據(jù)庫(kù)存儲(chǔ)。XML提供了服務(wù)器和瀏覽器通過(guò)Web交換數(shù)據(jù)的方式,一些RDBMS可以接受XML形式的查詢并將結(jié)果到處到XML文件,同Web發(fā)送到用戶瀏覽器。39第三節(jié)數(shù)據(jù)庫(kù)設(shè)計(jì)定義字段組織記錄設(shè)計(jì)界面設(shè)計(jì)報(bào)表模板載入數(shù)據(jù)定義字段構(gòu)建關(guān)系數(shù)據(jù)庫(kù)的第一步是定義字段,即明確數(shù)據(jù)庫(kù)中要存放什么數(shù)據(jù)。定義字段前,首先要明確如何組織數(shù)據(jù)。數(shù)據(jù)庫(kù)通常需要保證一張表里的任意兩條記錄都是互不相同的,因此需要將一個(gè)字段設(shè)置成主鍵(primarykey),主鍵字段中的數(shù)據(jù)不允許重復(fù),即可保證記錄是不重復(fù)的。41例如,如果要構(gòu)建一個(gè)音樂(lè)數(shù)據(jù)庫(kù),那么可能的字段有歌曲名、專輯名、作者、時(shí)長(zhǎng)、描述等等。例如,用戶的姓名是存放在一個(gè)字段里還是分成姓和名存放在兩個(gè)字段里。定義字段字段可以存放的數(shù)據(jù)取決于它的數(shù)據(jù)類型,不同DBMS有不同的數(shù)據(jù)類型,但大體可分為以下幾類:整型數(shù)據(jù)類型(int或integer)浮點(diǎn)數(shù)據(jù)類型(real、float、decimal、numeric)字符數(shù)據(jù)類型(char、varchar)日期和時(shí)間數(shù)據(jù)類型(datetime)文本和圖形數(shù)據(jù)類型(text、image)貨幣數(shù)據(jù)類型(money)位數(shù)據(jù)類型(bit)二進(jìn)制數(shù)據(jù)類型(binary、varbinary)42定義字段數(shù)據(jù)庫(kù)提供了進(jìn)行數(shù)據(jù)檢查的工具,以防用戶輸入不合法的數(shù)據(jù)。數(shù)據(jù)庫(kù)管理員還可以指定字段樣式,以便輸入數(shù)據(jù)時(shí)添加為自動(dòng)的格式。如何將字段編組為表也需要一定的技巧。原則之一是“一事一表”,這樣可以減少數(shù)據(jù)冗余。43不合法的數(shù)據(jù)包括:數(shù)據(jù)類型不符

數(shù)據(jù)值不符第三節(jié)數(shù)據(jù)庫(kù)設(shè)計(jì)定義字段組織記錄設(shè)計(jì)界面設(shè)計(jì)報(bào)表模板載入數(shù)據(jù)組織記錄對(duì)于同一張表,不同的數(shù)據(jù)庫(kù)用戶關(guān)注的重點(diǎn)可能不同。例如,倉(cāng)庫(kù)管理員會(huì)關(guān)注商品的庫(kù)存排序情況,而營(yíng)銷人員可能更關(guān)注商品的價(jià)格排序情況。這就需要數(shù)據(jù)庫(kù)去組織記錄,數(shù)據(jù)庫(kù)組織記錄的方式可以分為排序和索引兩種。45排序:

是對(duì)物理介質(zhì)上的數(shù)據(jù)進(jìn)行重新排列,以得到有序的數(shù)據(jù)。每張表最多只能有一個(gè)排序字段,數(shù)據(jù)會(huì)按此字段在物理介質(zhì)上排序。索引:

是一個(gè)鍵列表,每個(gè)鍵中都有索引排序字段的信息,并提供了一個(gè)指向?qū)?yīng)記錄的指針。索引按照索引排序字段進(jìn)行排序,以達(dá)到組織記錄的效果,但索引不會(huì)改變記錄的物理存儲(chǔ)位置。因此一張表可以有多個(gè)索引,以對(duì)多個(gè)不同的字段進(jìn)行排序。組織記錄46記錄表索引表商品ID價(jià)格庫(kù)存庫(kù)存商品ID10013.24352100510109.817171010100521.721581003100353.61584351001索引按照索引排序字段進(jìn)行排序,以達(dá)到組織記錄的效果,但索引不會(huì)改變記錄的物理存儲(chǔ)位置。因此一張表可以有多個(gè)索引,以對(duì)多個(gè)不同的字段進(jìn)行排序。第三節(jié)數(shù)據(jù)庫(kù)設(shè)計(jì)定義字段組織記錄設(shè)計(jì)界面設(shè)計(jì)報(bào)表模板載入數(shù)據(jù)設(shè)計(jì)界面數(shù)據(jù)庫(kù)的用戶通常不是登錄DBMS后對(duì)數(shù)據(jù)進(jìn)行修改,而是通過(guò)Web訪問(wèn)網(wǎng)頁(yè)或通過(guò)應(yīng)用程序進(jìn)行數(shù)據(jù)的創(chuàng)建與修改。數(shù)據(jù)庫(kù)的設(shè)計(jì)者或?qū)iT的工程師需要設(shè)計(jì)出一個(gè)能完整包含記錄所需字段的頁(yè)面。設(shè)計(jì)界面時(shí)常須注意:48將字段按照邏輯順序排列好,字段的文本框最好對(duì)齊,而不要參差不一。為正在輸入的字段提供視覺(jué)效果,如文本框加亮等。提供必要的說(shuō)明以確保輸入數(shù)據(jù)的合法性。如果字段過(guò)多,可考慮分頁(yè)或使用滾動(dòng)條,而不要擠在一起。應(yīng)用合適的字體和樣式。第三節(jié)數(shù)據(jù)庫(kù)設(shè)計(jì)定義字段組織記錄設(shè)計(jì)界面設(shè)計(jì)報(bào)表模板載入數(shù)據(jù)設(shè)計(jì)報(bào)表模板報(bào)表是打印出來(lái)的或展示在屏幕上的數(shù)據(jù)庫(kù)中部分?jǐn)?shù)據(jù)或全部數(shù)據(jù)的列表。多數(shù)DBMS都包含了報(bào)表生成器,可以根據(jù)設(shè)計(jì)好的報(bào)表模板,填入數(shù)據(jù)后生成報(bào)表。一個(gè)好的報(bào)表模板應(yīng)遵循以下原則:50提供且僅提供用戶所需的信息。能夠簡(jiǎn)化用戶的手工計(jì)算。無(wú)歧義的表示信息。以用戶可以理解的方式表現(xiàn)信息。第三節(jié)數(shù)據(jù)庫(kù)設(shè)計(jì)定義字段組織記錄設(shè)計(jì)界面設(shè)計(jì)報(bào)表模板載入數(shù)據(jù)載入數(shù)據(jù)數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)完成后,需要將數(shù)據(jù)載入到數(shù)據(jù)庫(kù)中。最原始的做法是手工輸入數(shù)據(jù),這可能會(huì)花費(fèi)很長(zhǎng)時(shí)間,并且不可避免地會(huì)有拼寫錯(cuò)誤。如果數(shù)據(jù)是以電子的方式存在于其他數(shù)據(jù)庫(kù)或文件中,就可以使用數(shù)據(jù)庫(kù)提供的導(dǎo)入導(dǎo)出程序,或?qū)懸粋€(gè)專門的轉(zhuǎn)換程序來(lái)載入數(shù)據(jù)。DBMS會(huì)提供導(dǎo)入導(dǎo)出程序,可以將數(shù)據(jù)在不同的數(shù)據(jù)庫(kù)或文件之間進(jìn)行轉(zhuǎn)換,如果導(dǎo)入導(dǎo)出程序不支持所需文件的格式,就需要寫一個(gè)專門的轉(zhuǎn)換程序。對(duì)于大量數(shù)據(jù)來(lái)說(shuō),編寫轉(zhuǎn)換程序的效率和準(zhǔn)確率依然要比手工錄入高。52第四節(jié)SQLSQL添加記錄查詢信息更新字段連接表SQLSQL(StructuredQueryLanguage,結(jié)構(gòu)化查詢語(yǔ)言)是用來(lái)進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)、查詢與管理的語(yǔ)言,任何對(duì)數(shù)據(jù)庫(kù)的操作都需要通過(guò)SQL語(yǔ)句(也稱SQL查詢)命令數(shù)據(jù)庫(kù)進(jìn)行。SQL語(yǔ)句很像是一個(gè)英文句子,如SELECTNameFROMStudentWHERESid=‘1001’就是一個(gè)最簡(jiǎn)單的SQL語(yǔ)句,它命令數(shù)據(jù)庫(kù)從Student表中找到學(xué)號(hào)為1001的學(xué)生,并返回其姓名。其中的大寫單詞如SELECT、FROM和WHERE是SQL關(guān)鍵字,數(shù)據(jù)庫(kù)通過(guò)識(shí)別關(guān)鍵字來(lái)判斷指令的類型,并執(zhí)行對(duì)應(yīng)操作。54SQL關(guān)鍵字不一定是大寫的,大多數(shù)DBMS接受任意形式大小寫的關(guān)鍵字,如SELECT和select、SeLeCt的效果是一樣的。每個(gè)SQL關(guān)鍵字都有對(duì)應(yīng)的語(yǔ)法。55關(guān)鍵字含義示例SELECT查找記錄SELECT*FROMStudentWHEREClass=’3’DELETE刪除記錄DELETEFromMusicwhereID=’7’UPDATE更新記錄UPDATEStudentSETAge=20WHERESid=‘1002’CREATE創(chuàng)建數(shù)據(jù)庫(kù)、表等CREATETableStudentINSERT插入記錄INSERTINTOStudent(Sid,Age)VALUES(‘1020’,19)常見的SQL關(guān)鍵字第四節(jié)SQLSQL添加記錄查詢信息更新字段連接表添加記錄SQL添加記錄的語(yǔ)法有如下兩種:INSERTINTO...VALUES(...),用于插入單條記錄。

例如,如下的查詢表示在Student表中插入一條記錄,其中學(xué)號(hào)是1020,年齡是19: INSERTINTOStudent(Sid,Age)VALUES(‘1020’,19)INSERTINTO....(),用于同時(shí)插入多條記錄,括號(hào)中是一個(gè)子查詢,通常是一個(gè)SELECT語(yǔ)句。

例如,如下的查詢表示從Student2表中提取出所有的學(xué)號(hào)和年齡記錄,插入到Student表中。 INSERTINTOStudent(Sid,Age)(SELECTSid,AgeFROMStudent2)57第四節(jié)SQLSQL添加記錄查詢信息更新字段連接表查詢信息59通用的查詢信息的語(yǔ)法是SELECT...FROM...WHERE...,但其中可以應(yīng)用一些關(guān)鍵字或符號(hào)來(lái)進(jìn)行更復(fù)雜的查詢,常用的關(guān)鍵字或符號(hào)有如下幾種:星號(hào)(*),表示所有信息比較符號(hào)如>,>=,=等,需要注意的是,不等于用<>表示OR和ANDBETWEEN...AND...,用于指定值的連續(xù)范圍IN,用于指定離散的數(shù)據(jù)范圍NOT,用于取反LIKE,用于字符串匹配ORDERBY,對(duì)查詢結(jié)果進(jìn)行排序第四節(jié)SQLSQL添加記錄查詢信息更新字段連接表更新字段61更新字段的通用語(yǔ)法是UPDATE...SET...WHERE...,可以對(duì)一條記錄或多條記錄同時(shí)進(jìn)行修改。WHERE子句同樣可以應(yīng)用AND、OR、INT、BETWEEN...AND...、LIKE等關(guān)鍵字。例如,如下的查詢選出Product表中所有價(jià)格大于400的商品,并將其價(jià)格修改為400。UPDATEProductSETPrice=400WHEREPrice>400第四節(jié)SQLSQL添加記錄查詢信息更新字段連接表連接表63使用SQL語(yǔ)句可以將兩個(gè)表通過(guò)共同字段連接起來(lái),連接得到的新表中僅包含在共同字段上值相同的記錄的組合。通過(guò)連接表可以進(jìn)行多表查詢,在SQL中,有兩種方法可以連接表:直接調(diào)用多張表。在SELECT...FROM...WHERE中引用多張表,并在WHERE后指明這多張表的連接原則。如:SELECT*FROMStudent,Course,SCWHEREStudent.Sid=SC.sidANDSC.cid=Course.Cid使用JOIN關(guān)鍵字,語(yǔ)法為SELECT...FROM...JOIN...ON...WHERE...。如:SELECT*FROMStudentJOINSCONStudent.Sid=SC.Sid第五節(jié)云數(shù)據(jù)庫(kù)云數(shù)據(jù)庫(kù)云數(shù)據(jù)庫(kù)65云數(shù)據(jù)庫(kù)是運(yùn)行在云計(jì)算平臺(tái)中的數(shù)據(jù)庫(kù),例如AmazonEC2、GoGrid、Salesforce和Rackspace。云數(shù)據(jù)庫(kù)使企業(yè)能夠用更少的室內(nèi)硬件與維護(hù)花費(fèi)來(lái)創(chuàng)建簡(jiǎn)單規(guī)模的數(shù)據(jù)庫(kù),而僅僅需要支付數(shù)據(jù)存儲(chǔ)和運(yùn)輸?shù)馁M(fèi)用。云數(shù)據(jù)庫(kù)按照部署模式可分為虛擬機(jī)映像和數(shù)據(jù)庫(kù)即服務(wù)兩類,每一類又可分為基于SQL的數(shù)據(jù)模型(SQLDataModel)和支持多種語(yǔ)言的數(shù)據(jù)模型(NoSQLDataModel,其中NoSQL是NotonlySQL的簡(jiǎn)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論