計算機信息管理基礎_第1頁
計算機信息管理基礎_第2頁
計算機信息管理基礎_第3頁
計算機信息管理基礎_第4頁
計算機信息管理基礎_第5頁
已閱讀5頁,還剩72頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

清華大學計算機與信息管理中心

計算機信息管理基礎

?教學內容

應用:介紹開發(fā)應用系統(tǒng)的過程和方法

Delphi:可視化的,面向對象的開發(fā)工具

數據庫技術:討論表示、存貯數據,高效地獲取數據的方法,涉及DB(DataBase)

體系結構、數據模型、關系代數、DB設計理論、DB安全性、

完整性,并發(fā)控制等知識點

網絡技術:簡介計算機網絡的構成及通訊協(xié)議

?課程要求

了解計算機信息系統(tǒng)的基本概念及其應用,掌握開發(fā)計算機信息系統(tǒng)涉及的基礎

知識,開發(fā)過程和開發(fā)方法

?參考書

1.計算機信息管理基礎清華大學計算中心編著(教材)

2.數據庫技術與應用龍守湛編著(科學出版社)

3.數據庫系統(tǒng)概論(第2版)薩師炮、王珊編著(高等教育出版社)

4.Oracle數據庫系統(tǒng)基礎俞盤祥編著清華大學出版社

5.Delphi:程序設計黃建華、羅慶祖、江政杰編著(清華大學出版社)

清華大學計算機與信息管理中心

第一章信息系統(tǒng)的概念及其應用

1.1基本概念

?數據和信息

數據(Data):為客觀實體的屬性值,它表示原始的,沒有加工過的數據。如數

字、字符串、語言、聲音、圖形等。

信息:通過加工和處理以后的數據。信息有如下特點:

-有一定的含義

?具有可用性(強調經過加工),與目的有關

?可傳遞、可存貯、可共享

?時間性

信息和數據的關系,如圖所示:

數據——>處理(器)——》信息

存儲

原始數據,用實體(Entity)>屬性(Property),屬性值(Value)表示。通過

分析、匯總獲得信息

信息可以從多種角度分類,按應用領域可分為經濟信息、社會信息、科技信息、

軍事信息、外交信息等。按形式分類,可分成數據信息、圖像信息、聲音信息等。

?信息管理

信息管理是?種管理行為,從數據角度,信息管理是指對數據本身的各種管理活

動。其中有數據結構的管理,對數據的維護、數據的安全、保密管理、數據處理等。

這種管理是技術上的措施,是多用戶共享使用數據環(huán)境下不可缺少的功能。

在企業(yè)管理過程中,為了達到某種特定目標,在大量的信息中選擇有用的信息,

進行有效的收集、分類、整理、分析和傳遞等一系列的信息處理的過程也稱為信息管

理。

例如:一個企業(yè),它的經營目標是T,Q,C,So圍繞這一目標,我們把整個生

產經營活動歸為以下3類:

生產活動:圍繞物料流進行

管理活動:圍繞生產活動進行。它對生產活動進行指揮、監(jiān)控、協(xié)調、控制,并

從生產活動中收集信息進行分類、匯總,作為領導決策的依據。

信息管理是各種信息系統(tǒng)應具備的主要功能。

?信息系統(tǒng)的主要形式:人——機系統(tǒng)

以計算機為主要支持工具,通過人和機器一系列的交互活動,獲取知識,獲取信

息。

1.2信息系統(tǒng)的應用及其發(fā)展

?電子數據處理階段

1946年第一臺計算機誕生以來,計算機主要做統(tǒng)計,計算。

?事務處理系統(tǒng)階段

計算機逐步應用于企業(yè)的部分業(yè)務管理,生成財務報告,簡單的訂票系統(tǒng),管理

活動以人工為主。(60年代末)

?管理信息系統(tǒng)階段

MIS(ManagementInformationsystem70年代中期)

MIS系統(tǒng)是以一個部門的管理為背景,以基層事務處理系統(tǒng)為基礎,以完成該部

門的總體任務為目標,強調企業(yè)中各局部系統(tǒng)之間信息相互聯(lián)系的綜合系統(tǒng)。

MIS系統(tǒng)對企業(yè)的影響

a.提高了科學管理水平

b.增強了企業(yè)組織的活力

c.提高了管理人員的素質和管理水平

d.提高了企業(yè)對環(huán)境的適應能力

e.提高了企業(yè)的經濟效益和社會效益

?辦公信息系統(tǒng)階段

?計算機集成制造系統(tǒng)(CIMS)階段

清華大學計算機與信息管理中心

第二章計算機網絡基礎

2.1計算機網絡的基本組成

所謂計算機網絡就是利用通訊設備和線路將地理位置不同的,功能獨立的多個計

算機系統(tǒng)互連起來,以功能完善的網絡軟件(即網絡通訊協(xié)議,信息交換方式及網絡

操作系統(tǒng)等)實現(xiàn)網絡中資源共享和信息傳遞的系統(tǒng)。

組成網絡的基本軟硬件部件:

?網卡和媒體

?網絡工作站

?網絡服務器

?網間連接器

?網絡系統(tǒng)軟件

2.2數據通信系統(tǒng)

?數據傳輸技術

傳送數據可以按一次一位或一次多位的方式進行,這就是所謂的串行傳送與并行

傳送。從硬件的角度,不同的傳送方式有不同的I/O接口電路,并行數據傳送由并行

數據端口進行,它把一個字節(jié)/字的寬度同時進行輸入/輸出;而串行數據傳送由串行

數據端口進行,它把一個字節(jié)/字變成按位方式進行輸入/輸出。

?數據交換技術

最簡單的形式是在兩個用某種類型的傳輸介質直接連接的設備之間進行數據通

信;但是直接連接兩個設備常常是不現(xiàn)實的。通常是通過有中間結點的網絡來把數據

從源地發(fā)送到目的地實現(xiàn)通訊。這些中間結點并不關心數據內容,只起一個交換設備

的作用把數據從一個結點傳送到另一個結點。

通常將希望通信的設備稱為站,而將提供通信的設備稱為結點。

常用的交換技術有:

a.線路交換

使用線路交換的方式,就是通過網絡中的結點在兩個站之間建立?條專用的通信

線路。最普通的線路交換例子是電話系統(tǒng)。

?建立線路:在傳送任何數據之前,必須建立站到站的線路。

?傳送數據

?拆除線路

b.存儲交換

在存貯交換中,不需要在兩個站之間建立一條專用通路。如果一個站想要發(fā)送一

個報文(信息的?個邏輯單位),它把一個目的地址附加在報文上,然后把報文從結

點到結點地通過網絡。在每個結點暫存整個報文,然后轉發(fā)到下一個結點。

c.分組交換

試圖結合線路交換和存儲交換的優(yōu)點,而使兩者缺點最少。

分組交換很象報文交換。形式上的主要差別在于,在分組交換網絡中,要限制所

傳輸的數據單位的長度,也就是說,將數據報文分割成若干長度較短的分組進行傳輸,

每個分組除數據信息外,還包含地址標識,分組編號,檢驗信息等。

報文在發(fā)送端進行分割,其中每個分組可經過不同的路山傳輸。途中經過每個結

點的時候,先存儲后轉發(fā),并檢查,有錯誤時重發(fā),回送應答信息。當接收端正確收

到全部分組后,再按分組編號重新裝成數據報文。

2.3計算機網絡的體系結構

計算機網絡體系結構是指通過系統(tǒng)的整體設計,為網絡硬件,軟件、協(xié)議,存取

控制和拓撲提供標準。

網絡體系結構廣泛采用的是國際標準化組織(ISO)在1979年提出的開放系統(tǒng)互

連(OSI)的參考模型。該模型用七個功能層次描述網絡的結構:

層次功能

應用層提供各種網絡服務,如文件傳輸,虛擬終端,電子郵件等

表示層數據表示和字符編碼轉換

會話層對話管理,包括通訊的建立和拆除

傳輸層端到端的數據發(fā)送

網絡層確定分組從源端到H的端的路徑選擇

數據鏈路層任務是把物理層傳輸比特的功能加強,使之為網絡層顯現(xiàn)

一條無措線路

物理層涉及原始數據在通訊道上的傳輸

OSI參考模型層次和功能

從網絡互連的角度來看,網絡體系結構的關鍵要素是協(xié)議和拓撲。

協(xié)議

協(xié)議是規(guī)則的集合,它規(guī)定了網絡的不同部分是如何交互的,從而保證了網絡上

的設備彼此之間能夠通訊。

*低層協(xié)議。通常在OSI模型的物理層和數據鏈路層操作,低層協(xié)議規(guī)定網絡

基本的物理和邏輯特征。

*高層協(xié)議。通常在OSI模型的網絡層以上層操作,高層協(xié)議規(guī)定網絡內部更

復雜的邏輯結構,

拓撲

拓撲是網絡上的設備之間的連接形式?;镜木钟蚓W拓撲類型包括:

?總線拓撲,所有設備連接到干線電纜構成網絡的總線,或中樞(backbone)

?星型拓撲,所有設備連接到一個中心點,此中心點稱做網絡的集線器(hub)。

?環(huán)型拓撲,所有設備彼此串行連接,就像連成鏈一樣,構成了?個回路或稱做環(huán)

(ring)<,

?混合拓撲:以上拓撲的混合結構。

2.4局域網的基本組成

*網卡和媒體

網卡和媒體影響所組成網絡的傳輸率,拓撲結構、地理范圍、傳輸效率,輸可

靠性等。

*網絡工作站

網絡工作站為聯(lián)網用戶所使用的計算機。在這類微機工作站上可配置DOS、

OS/2、Windows等操作系統(tǒng)和網絡軟件。

*網絡服務器

局域網中服務器配置有兩種:文件服務器和通訊服務器。文件服務器在局域網

上可選用高檔微機作為文件服務器。在文件服務器上可配置大容量的硬盤,優(yōu)質打印

機,為網上用戶提供服務。

服務器上配置相應的軟件,可與遠程主機等設備通訊。

*網間連接器

網絡的互連有四種可能型式

?LAN-LAN

?LAN-WAN

?WAN-WAN

?LAN-WAN-LAN

網間互連的設備主要有:

中繼器(一層)

中繼器是最低層次的設備,它只起放大信號的作用。在規(guī)劃網絡時,若網絡段

已超過最大長度,則要用中繼器來延伸。

*網橋(二層)

橋是一種存儲轉發(fā)設備,用來連接兩個同類的網絡。所謂同類網絡是指操作系

統(tǒng)是一致的。在橋接的網絡中若山文件服務器兼做網橋稱內橋。若專門用一臺微機作

為兩個網絡互連的設備稱外橋。

*路由器(三層)

當兩個以上同類網絡互連時,必須選用路由器。路由器除了具有網橋的全部功

能外,還提供路經選擇功能。路山器有兩種類型:內部路由器和外部部山器。內部路

由器由文件服務器實現(xiàn),也可以在網絡中單獨用一臺PC機作為外部路由器。

*網關(Gateway)

網間連接器網關運行在OSI模型的高層,能支持從傳送層到應用層的協(xié)議。它

可執(zhí)行協(xié)議的轉換,使不同協(xié)議的局域網通信。當異類局域網(異種網絡操作系統(tǒng)),

局域網與主機,局部網與廣域網互連時,在局域網上.必須配置網關。

2.5SQL*Net簡介

網絡的出現(xiàn),使計算機的使用方式發(fā)生了根本的變化,大大提高了資源的利用

率。網絡技術的發(fā)展也使得數據庫系統(tǒng)從集中式數據庫發(fā)展成為分布式數據庫系統(tǒng),

使得分布式數據庫中的用戶可以象存取本地數據庫一樣存取遠程數據庫。

SQL*Net是Oracle公司為分布式Oracle數據庫管理系統(tǒng)開發(fā)的一個通訊軟件模

塊(選件),該選件與各種操作系統(tǒng)所支持的通信協(xié)議一起為Oracle關系數據庫管理

系統(tǒng)(RDBMS)提供分布式的處理環(huán)境。分布處理是指不同網絡結點上的多個程序通過

網絡傳送信息來協(xié)調它們的工作。

*SQL*Net支持的通訊模式有:

■客戶/服務器(Client/Server)通訊模式

■服務器/服務器(Server/Server)

■瀏覽器/應用服務器/DB服務器(Browse/AppServer/DBServer)通訊模式

?SQL*Net提供以下功能:

a.網絡上任何地方的用戶,通過SQL*Net可以向網內任一結點上的Oracle數據

庫注冊并使用遠程的數據庫。

b.通過SQL*Net,利用Oracle數據庫的分布處理能力,用戶可以同時存取網內

多個數據庫中的數據。Oracle分布式數據庫系統(tǒng)支持用戶在一條SQL語句中查詢、

修改多個結點中的數據。

c.SQL*Net獨立于它所支持的網絡協(xié)議,無論什么協(xié)議,SQL*Net提供相同的

功能。

d.SQL*Net為分布式Oracle數據庫系統(tǒng)中的用戶提供了物理位置透明性。

*SQL*Net提供的數據訪問方式有:

,本地訪問

■遠程訪問

■分布式的訪問

第三章數據庫技術

數據庫方法

數據庫技術是管理數據的一種最新方法,它研究如何組織數據,存儲數據,如何

能夠高效地獲取和處理數據的方法。

現(xiàn)實世界

信息系統(tǒng)的三個世界

3.1數據庫技術的發(fā)展及概述

階段1:人工管理階段(50年代中期)

沒有統(tǒng)一的數據管理軟件

階段2:文件系統(tǒng)階段(50—60年代中)

有統(tǒng)一的軟件處理數據(如,COBOL語言)

數據可以組織成:順序、索引、直接文件形式

處理特點:程序+數據

階段3:數據庫階段(60年代末至今)

*有統(tǒng)一的數據管理軟件,管理數據

*數據具有獨立性

*強調面向企業(yè)面向系統(tǒng)組織數據

3.2數據庫的體系結構

3.2.1三級模式的結構

DB的體系結構分成三級:

內模式又稱存儲模式,是數據在數據庫系統(tǒng)的內部表示,即為數據的物理結構

和存儲方式的描述。

外模式又稱用戶模式,表示用戶能看到的數據。

概念模式又稱邏輯模式,是DB中全體數據的邏輯結構和特征的描述。

DBMS在這三級結構之間提供了兩層映象:

外模式/模式映象、模式/內模式映象

3.2.2數據庫系統(tǒng)

一個數據庫系統(tǒng)是一個實際可運行的,按照一定的數據模型存貯,維護并向應

用系統(tǒng)提供數據或信息支持的系統(tǒng)。它由以下部分組成:

?數據庫(Database,DB)

?數據庫管理系統(tǒng)(DatabaseManagementSystem,DBMS)

DBMS的主要功能:

a.數據庫定義:包括全局邏輯結構(Schema)的定義。局部邏輯結構(subschema)

的定義,安全保密等的定義。

b.數據庫管理:數據存取、完整性、安全性、并先控制等。

&數據庫的建立和維護、建庫、庫的遷移,再組織,數據的后備和恢復、性能

監(jiān)控等.

?應用系統(tǒng)開發(fā)工具(程序設計軟件)

?數據庫管理員(DatabaseAdministrator,DBA)

3.2.3分布式數據管理系統(tǒng)

通訊模式:

clien/serverserver/serverclient/Appserver/DBserver

3.3數據模型

在DB技術中我們使用模型的概念描述數據庫的結構和語義。即描述現(xiàn)實世界

中對象集及對象集之間關系的模型稱作數據模型。

目前廣泛使用的數據模型分為兩種類型:

概念數據模型:描述信息世界中數據及數據之間關系的模型,它獨立之于

計算機。

?結構數據模型:描述計算機世界中,數據及數據之間表示、存貯、處理特

征的模型,它依賴于具體的計算機。

3.3.1實體一聯(lián)系方法(Entity-RelationshipApproach)也叫E—R方法。

?實體:實體表示一個現(xiàn)實和抽象事物的集合,這些事物必須具有相同的

屬性和特征。

實體用長方形表示,框內寫上實體名,如部門用DEPT表示。

?聯(lián)系:表示實體和實體之間的關系或聯(lián)系

實體之間的聯(lián)系用菱形表示,在菱形邊框內寫上聯(lián)系名。兩個實體之間聯(lián)

系的基數(類型)可以是可寫在連線旁,例如,實體之間的聯(lián)系為:

DEPTPROJ

D-EPR-E

n

EMPEMP

屬性,用于描述實體的性質和特征,用橢圓形表示。例如:

'、---------------------------

DEPT

1

D-E

EMP

:L

?實體實例:實體中的一個元素就是這個實體的實例。

例如:計算機系、電子系、職工張三、李四等

?屬性值,為一個屬性的取值,例如,ENAME的取值,王明,張麗等。

3.3.2結構數據模型一也稱數據模型

結構數據模型直接面向數據庫中數據的邏輯結構.它一方面把信息世界的信息在

機器世界中以數據形式存儲,同時,描述了數據世界中存儲的數據集上的操作。因此

一個數據模型由三個部分組成:

對象類型的集合:操作符的集合和完整性規(guī)則的集合。

對象類型的集合:描述全部數據的邏輯結構。

操作符集合:表示數據結構支持的操作。

完整性規(guī)則集合:描述數據及其聯(lián)系所指定的制約或依存規(guī)則。

目前,實際的數據庫系統(tǒng)支持的數據模型有:

層次模型、網狀模型、關系模型和OO模型。

*層次模型:

層次模型是用樹結構表示實體及其實體之間的聯(lián)系。它的主要特征是一棵有向

樹。樹的結點是記錄類型。根結點只有一個,根結點以外的結點有且只有一個父結點。

圖中R1是根,R2,R3是R1的子女,R2,R3為兄弟,R2,R4,R5稱為葉子。

IMS(InformationManagementSYStem)是IBM公司研制的最早的大型數據庫系

統(tǒng),也是層次模型的典型代表。

?網狀模型

用網絡結構表示實體以其實體之間聯(lián)系的數據模型稱為網狀模型。網狀模型滿足

卜列條件:

a.有一個以上結點無雙親

b.至少有?個結點有多于一個雙親

網狀模型數據庫的代表是DBTG系統(tǒng)。DBTG(DataBaseTaskGroup數據庫任務

組)是美國CODASYL(conferenceOnDataSystemLanguage數據系統(tǒng)語言協(xié)商會)下屬

的一個組織,主要研究數據庫語言。1969年DBTG小組提出了一份報告,即有名的

“DBTG報告”。1971年報告被正式通過。

?關系模型

用表格結構表示實體以及實體間聯(lián)系的數據模型叫關系模型。關系模型是由若干

“關系”(Relational)組成的集合。

在網狀和層次模型中用指針的鏈接表示實體之間的聯(lián)系,

例如:

而在關系模型中,通過子女關系繼承父親關系的主碼表示關系或表格之間的聯(lián)

系。例如:

DEPT關系:EMP關系

DNODNAMEDIRECTOREMPNOENAMEJOBSALDEPTNO

D)ComputerWangEiLiclerk500Di

D2RadioLiE2wangmanager900DI

D3AutomationZhangE3liuworker450D,

gaoanalyst850D

E52

“關系”本身涉及存儲結構、訪問技術等細節(jié),與網狀、層次模型比起來實現(xiàn)較

復雜,效率也低。但提供給用戶的界面較簡單,容易為初學者接受。

?面向對象模型(Object-Orientedmodel)

面向對象模型中最基本的概念是對象(Object)和類(Class)。對象的概念與記錄元

組的概念相似,但遠比它們復雜。每個對象都有一個唯一的標識符,而且把一個狀態(tài)

(State)和一個行為封裝在一起。對象的狀態(tài)是該對象屬性值的集合,對象的行為是在

對象狀態(tài)上操作的方法(程序代碼)的集合。

類的概念類擬于表格或記錄型,它把共享同一屬性集合和方法集合的所有對象組

合在一起,命名為類。

面向對象模型特點:

a.語義強

b.支持復雜的數據類型(向量、矩陣、有序集等)

c.有封裝性、繼承性。

d.具有版本管理功能

e.支持長事務等

一個子類可以從其直接父類或間接父類那里繼承

D甲TClass

BMPClass

PROJClass

所有的屬性和方法。

類與類之間的關系,用指針定實現(xiàn)

查詢:導航查詢

信息世界、機器世界術語的對應關系如下:

信息模型(信息世界)數據模型(機器世界)

E-R方法(model)網狀模型關系模型

實體記錄型關系(表)

實體實例記錄(值)元組(行)

屬性數據項屬性(域)

屬性值數據項值元組分量(列值)

清華大學計算機與信息管理中心

3.3.3數據庫設計

?概念設計

1)定義實體

實體山基本實例綜合而成,這些實體實例具有相同的特征和類型。實體的每一個

實例是實體的一個成員,每個成員具有同?類型的標識信息。

例如:

實體:雇員

為了幫助建模人員區(qū)分實體和非實體,對于每一個候選實體建模人員可提出下列

問題:

?它能被描述嗎(它有性質嗎?)

?有n個這類的實例嗎?

??個實例可被區(qū)分或標識嗎?

?它屬于描述某物嗎?(回答“是”則隱含是一個屬性而不是實體)

2)定義聯(lián)系

一個“聯(lián)系”可以被簡單地定義為兩個實體之間的一種關聯(lián)或連接。為了建立兩

個實體之間的關聯(lián),實體間的聯(lián)系應該從兩個方向檢驗。

例如,考慮實體"班級”(CLASS)和“學生”(STUDENT)之間的聯(lián)系。一

個班級可以有多名學生,從另一個方面分析一名學生只能在?個班中。

確定了兩個實體之間聯(lián)系的基數后,要給聯(lián)系命名。

3)定義屬性

屬性表示一個同類型的屬性值的集合。屬性從屬于實體,它用來描述實體的特征

和性質。一個屬性只有一個所有者,一個所有者叫實體。

概念設計實例:

為選課系統(tǒng)設計E-R模型。已知:一個班級可以有多名學生,一名學生只能屬

于一個班級;一個班級可以有多門必修課程,一門課程可能是多個班級的必修課;一

名學生可選修多門課程,一門課程可以被多名學生選修;一門課程可以有多個上課時

間,一個上課時間內可能有多門課程上課,根據以上管理規(guī)范,構造E—R模型。

?邏輯設計

任務:把概念模型(E-R模型)轉換成具體的DBMS能處理的模型(模式)。

概念模型||使用要求||約束,安全性第DBMS特性

|(支持模型)

邏輯設計

DBMS可程序設計物理設計

處理模型指南指南

E-R模型轉換成關系模型的轉換規(guī)則:

1:

父家關系:實體名轉換成關系名

屬性:實體屬性就是關系的屬性

子女關系:實體名轉換成關系名

屬性:子女實體屬性加雙親的主碼屬性

雙親實體:同上

聯(lián)系:轉換成--個關系

屬性:聯(lián)系的屬性加各雙親的主碼屬性

CE

數據庫設計習題:

(1)根據我校情況為教務管理設計概念模型,并用E—R圖表示。在教務管理

中涉及教師信息、學生信息、課程信息、以及學生選課成績。希望可方便地獲取某教

師講授的課程及聽課學生的情況,可獲取某學生所選修的課程。

(2)為商店銷售管理設計概念模型,并用E-R圖表示。要求包含下列信息:

銷售人員的情況、商品庫存情況、銷售記錄、和顧客信息。

(3)為醫(yī)院住院部管理設計概念模型,并用E-R圖表示。要求包含下列信息:

大夫信息、病人信息、病房信息、科的信息和病人治療信息等。每個大夫只屬于一個

科,?個科管理多個病房,在??個病房中可有多張床位,病人在住院時,只有一個主

治大夫負責醫(yī)治。

(4)為學校管理信息設計概念模型,要求包括下列信息:系、教研組、教師、

班級、學生、課程、及課程開設記錄。在清華大學,課程的開設是由教研組負責,每

個教師只屬于一個教研組,班級由系統(tǒng)一管理。

3.4關系數據庫語言SQL(StructureQueryLanguage)

70年代初,E.F.CODD首先提出關系數據模型。70年代中期,IBM公司在研制

SYSTEMR關系數據庫管理系統(tǒng)中研制了SQL語言,最早的SQL語言叫(SEQUEL)。

在1979年Oracle公司推出了商用SQL。1986年10月美國國家標準化研究所(ANSI)

采用SQL作為關系數據庫管理系統(tǒng)的標準語言,后為國際標準化組織(ISO)采納為

國際標準。目前市場上的一些大型的關系數據庫系統(tǒng)幾乎都支持SQL的某形式。例

如:Oracle,UDB,SQLServer,Sybase,InformaxIngress等關系數據庫系統(tǒng)的產品。

SQL語言的優(yōu)點:

(1)非過程化語言

SQL是一種非過程化語言,它一次處理的是一個記錄集合,對數據提供自動導

航。SQL允許用戶在高層的數據結構上工作,而不對單個記錄進行操作。SQL不要求

用戶指定對數據的存取方法,SQL語句使用查詢優(yōu)化器,由系統(tǒng)決定對指定數據存取

的最快速手段。當關系的設計者在關系表上定義了索引,系統(tǒng)會自動地利用索引進行

快速檢索,用戶不需知道表上是否有索引,表有什么類型的索引等細節(jié)。

(2)統(tǒng)一語言

SQL可用于所有用戶的數據庫活動類型,包括數據庫系統(tǒng)管理員,程序員等操

作簡單,使用方便。

(3)關系數據庫的公共語言

用戶可將使用SQL的技能從一個RDBMS很容易地轉到另個系統(tǒng),所有用SQL

語言寫的程序具有可移植性。

本課內所介紹的SQL語言是在分布式的關系數據庫系統(tǒng)Oracle上實現(xiàn)的,為

ANSI標準和ISO標準的超集,所描述的SQL語言特性僅適用于Oracle?

3.4.1SQL支持的主要數據類型:

字符型:CHAR(n)字符數據,長度為n個字符

VARCHAR2(n)變長字符型

數字型:NUMBER(n)數字數據。最大可達105位

NUMBER(m,n)m位數字,其中n位為小數位

日期型:DATEDD-MON-YY例如:17—DEC—85

長型行碼數:LONGRAW二進制行碼數,變長,可達2GB

3.4.2SQL支持的運算符

?算術運算符:

?邏輯運算符:與“AND”、或“OR”,非“NOT”

,比較符:=,!=,>,<,>=,<=

IN,NOTIN,ANY,ALL,判斷是否是集合的成員。

BETWEENAND判斷列值是否滿足指定的區(qū)間

LIKE匹配模式

IS[NOT]NULL測試空值等

3.4.3常用SQL命令介紹

3.4.3.1表的基本操作

?表的建立

關系數據庫的主要特點之?就是用表的方式組織數據。表是SQL語言存放數據、

查找數據以及更新數據的基本數據結構。在SQL語言中,表有嚴格的定義,它是一

種二維表,對于這種表有如下規(guī)定:

1)每-張表都有一個名字,通常稱為表名或關系名。表名必須以字母開頭,最大

長度為30個字符。

2)一張表可以由若干列組成,列名唯一,列名也稱作屬性名。

3)表中的一行稱為一個元組,它相當于一條記錄。

4)同一列的數據必須具有相同的數據類型。

5)表中的每一個列值必須是不可分割的基本數據項。

當用戶需要新的數據結構或表存放數據時,首先要生成一個表。

語句句法:

CREATETABLE表名[表約束]

例名1數據類型[缺省值,列約束]

(列名2數據類型[缺省值,列約束]

列名n數據類型[缺省值,列約束]

[TABLESPACE表空間名]

[STORAGE(存貯子句)]

[ENABLE約束名]

[DISABLE約束名]

(注:n<=254對于oracle7>

?桿入數據

當一個表新建成時,它里面沒有數據,通過向表中托入數據,建成表的實例。

語句句法:

INSERTINTO表名[(列名1,…)]

VALUES(值1,'值2',…)

[子查詢];

將新雇傭的職員JOE增加到你的EMP表中,并按照表的結構將該職員的信息

添加完整。

INSERTINTOEMP

VALUSE(7901JJOErENGINEER,,7839,'15-SEP-97',1500,NULL,20);

?修改數據

對表中已有數據進行修改,語句句法:

UPDATE表名SET列名1=表達式1,列名2=表達式2,…

WHERE條件;

例如:

將JOE提升為經理(MANAGER)。

UPDATEEMP

SETJOB=,MANAGER'

WHEREENAME=tJOE,;

?刪除數據

刪除表中已有數據。語句句法:

DELETEFROM表名WHERE條件;

例如:

刪除部門30中的全部職工

DELETEFROMDEPTWHEREDEPTNO=30;

?修改表的結構。

a.在已存在的表中增加新列(屬性)。語句句法:

ALTERTABLE表名ADD(新列名數據類型(長度));

例如:

ALTERTABLEDEPTADD(DMGRCHAR(8));

b.增加已有列寬度。語句句法

ALTERTABLEDEPTMODIFY(DNAMEVARCHAR2(20));

?表的刪除。語句句法

DROPTABLE表名;

例如:

DROPTABLEEMP;

數據庫邏輯設計實例:

將下面所示的E-R圖(模型)設計成關系模式。

DEPT(DEPTNO,DNAME,LOC)

EMP(EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO)

SALGRADE(GRADE,LOSAL,HISAL)

3.4.3.2查詢語句

SELECT命令的語法為:

SELECT[D1STINCTIALLJ{*1模式名.]{表名I視圖名I

快照名].*…I{表達式[列別名]…}}[,[模式名.]{表名I

視圖名1}.*…I表達式[列別名]]…

FROM[模式名.]{表名I視圖名映照名}[@數據庫鏈名][表別名]

[,[模式名」{表名I視圖名快照名}[@數據庫鏈名]

[表別名]]…

[WHERE條件]

[STARTWITH條件CONNECTBY條件]

[GROUPBY表達式[,表達式]…[HAVING條件]

[UNIONIUNIONALLIINTERSECTIMINUS]SELECT命令

[ORDERBY{表達式I位置}[ASCIDESC][,{表達式位置[ASCIDESC]}]…]

?SELECTFROM子句

SQL>SELECT*FROMEMP;

SQL>SELECTDISTINCTJOBFROMEMP:

?WHERE子句,從表中獲?。z索)滿足條件的記錄

SQL>SELECT*FROMEMPWHEREDEPTNO=30;

查詢工資高于或等于4500的第30部門的銷售員的情況。

SQL>SELECTENAME,DEPTNO.SALFROMEMP

WHEREJOB='SALESMAN'ANDDEPTNO=30ANDSAL>=4500;

?BETWEENAND

查詢工資不在1200至3000之間的職工信息

SQL>SELECTENAME,JOB,SAL,DEPTNOFROMEMP

WHERESALNOTBETWEEN1200AND3000;

?IN,ANY的用法,判斷是否是集合的成員

SQL>SELECTENAME,JOB,SAL,DEPTNODEPARTMENT

FROMEMPWHEREJOBIN('SALESMAN','MANAGER');

SQL>SELECTENAME,JOB,SALFROMEMP

WHEREJOB=ANY(,SALESMAN','MANAGER。;

(注:ANY前面可使用!=,>,>=,v,v=等)

?字符串匹配

找出姓名以M開頭的職工。

SQL>SELECTENAME,JOB,DEPTNOFROMEMP

WHEREENAMELIKE'M%'

“一”匹配任一字符

?CONNECTBY子句

列出BLAKE管轄的職工的職務結構

SQL>SELECTLEVEL,ENAME,EMPNO,DEPTNO,MGR

FROMEMPCONNECTBYPRIOREMPNO=MGR

STARTWITHENAME=4BLAKE,;

?GROUPBY子句

將返回行分組,每組返回一個總計信息

Oracle提供的分組函數有:

AVGCOUNTMAXMINSUM

平均值查詢行數最大值最小值求和

列出某單位的工資總額,最高工資,最低工資級最高和最低工資差額。

SQL>SELECTSUM(SAL),MAX(SAL),MIN(SAL),MAX(SAL)-MIN(SAL)

FROMEMP;

列出最小工資值小于1000的部門的最高工資,最低工資及其差額

SQL>SELECTDEPTNO,MAX(SAL),MIN(SAL),MAX(SAL)-MIN(SAL)

FROMEMPGROUPBYDEPTNOHAVINGMIN(SAL)<1000;

?ORDERBY子句(使查詢結果有序)

按部門號升序,按職工號降序列出職工信息

SQL>SELECTENAME,DEPTNO,SALFROMEMP

ORDERBY2ASC,3DESC;

查詢語句示范:

1.查詢EMP表中的所有信息。

2.查詢EMP表中的所有職員的名字,并且按字母的升序進行排序。

3.查詢EMP表中在部門10和部門20中工作的職員的名字、工資、受雇日期、

并按照受雇II期的先后順序排序。

4.顯示所有部門的地址不以“N”字母打頭的部門信息。

5.顯示工資比傭金高的職工名字、部門號、工資和傭金,并按工資的降序排列。

如果有兩個或兩個以上的職員有相同的工資,則按他們的名字的字母順序排列。

6.查詢在第20號部門工作,工資大于1500元的職員信息,并按工資由高到低

的次序排序。

7.查詢工資為1500元的職員的工資級別。

8.查詢沒有傭金且工資低于1000元的職員名字,工資額和所在部門號。

9.顯示部門30中所有職員的工資總和,并使顯示結果以TOTAL30為列頭。

10.顯示各部門的部門號及所屬職員的平均工資,并按平均值山大到小的次序排

列。

11.查詢公司各個部門中職業(yè)為辦事員(CLERK)的職員的工資總和及人數。

12.查詢平均工資大于1500元的部門的工資總額,職員人數和平均工資。

13.查詢1981年6月30口之后受雇的職員的最高報酬(包括工資和傭金)。

14.查詢部門20中工資大于該部門平均工資的職員的信息。

SELECT*

FROMEMP

WHEREDEPTNO=20ANDSAL>

(SELECTAVG(SAL)

FROMEMP

WHEREDEPTNO=20);

15.查詢能獲得紅利(即在BONUS表中存在)的推銷員的名字,受雇日期及

工資額。

SELECTENAME,HIREDATE,SAL

FROMEMP

WHEREJOB=tSALESMAN,AND

ENAMEIN(SELECTENAME

FROMBONUS);

16.查詢職員“SMITH”所在的部門名稱。

SELECTDNAME

FROMDEPT

WHEREDEPTNO=

(SELECTDEPTNO

FROMEMPWHEREENAME=tSMITH,);

17.查詢部門10中所有所賺的工資在最高一級的職員名字,工資及受雇II期。

SELECTENAME,SAL,HIREDATE

FROMEMP

WHEREDEPTNO=10ANDSAL>

(SELECTLOSAL

FROMSALGRADE

WHEREGRADE=5);

18.查詢在紐約工作并且工資比“SCOTT”高的職員的名字、職業(yè)、工資。

SELECTENAME,JOB,SAL

FROMEMP,DEPT

WHERELOC=€NEWYORK'

ANDEMP.DEPTNO=DEPT.DEPTNO

ANDSAL>

(SELECTSAL

FROMEMP

WHEREENAME=tSCOTT,);

19.查詢在第30號部門工作的所有受雇時間早于他的老板的職員的名字和受雇

日期及其老板的名字及受雇日期。

SELECTE.ENAME,E.HIREDATE,M.ENAME,

M.HIREDATEFROMEMPE,EMPM

WHEREE.HIREDATE<M.HIREDATE

ANDE.DEPTNO30ANDE.MGR=M.EMPNO;

20.查詢最先受雇的職員姓名及受雇日期。

SELECTENAME,HIREDATE

FROMEMP

WHEREHIREDATE=

(SELECTMIN(HIREDATE)

FROMEMP);

21.查詢公司中所有職員所賺工資及所處的工資級別。

SELECTE.ENAME,E.SAL,S.GRADE

FROMEMPE,SALGRADES

WHEREE.SALBETWEENS.LOSALANDS.HISAL;

3.4.3.3分布查詢

分布的查詢是從兩個或多個數據庫中檢索數據,這些數據物理上存放在網絡中的

多個數據庫中,而邏輯上是一個數據庫。

分布查詢前先建立數據庫鏈路,然后執(zhí)行分布查詢語句。

語句語法:

CREATE[PUISLIC]DATABASELINKIink-name

CONNECTTOuserIDENTIFIEDBYpasswdUSING'Connect-string'

例如:

SQL>CREATEDATABASELINKL-EMP

CONNECTTOclasslIDENTIHEDBYclass1

using5T:166.111.4.4:or7o,;

SQL>SELECTDNAME,ENAME,DEPT.DEPTNO

FROMDEPT,EMP@L-EMP

WHEREDEPT.DEPTNO=EMP.DEPTNO;

?分布查詢語句實例

假如本地結點數據庫名為OR7O,網絡地址為166.111.4.4;遠程數據庫為0RAD7,

網絡地址為166.111.4.3。現(xiàn)在要在本地機器上訪問遠程數據庫中用戶studeutx(密碼

為studentx)中的DEPT,EMP表,請寫出相關的SQL語句?若要訪問本地的DEPT,

遠程數據庫中的EMP,如何修改SQL語句。

D:>SQLPLUSstudentx/studentx@T:166111.4.4:Or70J

SQL>CREATEDATABASELINKS_emp

CONNECTTOstudentxIDENTIFIEDBYstudentx

using4T:166.111.4.3:0rad7,;

SQL>SELECTDNAME,ENAMEFROMDEPT@S_emp,emp@S_emp

WHEREDEPT.DEPTNO=EMP.DEPTNO;

SQL>SELECTDNAME,ENAME,DEPT.DEPTNO

FROMDEPT,EMP@s_emp

WHEREDEPT.DEPTNO=EMP.DEPTNO;

*UNION,INTERSECT,MINUS子句

設關系:

BASKETBALL(NAME,AGE,SEX,HEIGHT,WEIGHT)

VOLLEYBALL(NAME,AGE,SEX,HEIGHT,WEIGHT)

操作實例:

o查找年齡小于30歲的體育代表隊員信息

SELECT*FROMBASKETBALLWHEREAGE<30

UNION

SELECT*FROMVOLLEYBALL

WHEREAGE<30;

查找年齡小于25歲的既是籃球隊員又是排球隊員的信息

SELECT*FROMBASKETBALL

WHEREAGE<25

INTERSECT

SELECT*FROMVOLLEYBALL

WHEREAGE<25;

查找只參加籃球隊未參加排球隊員的信息

SELECT*FROMBASKETBALL

MINUSSELECT*FROMVOLLEYBALL;

3.4.3.3分布查詢

分布的查詢是從兩個或多個數據庫中檢索數據,這些數據物理上存放在網絡中的

多個數據庫中,而邏輯上是一個數據庫。

分布查詢前先建立數據庫鏈路,然后執(zhí)行分布查詢語句。

語句語法:

CREATE[PUBLIC]DATABASELINKlink-name

CONNECTTOuserIDENTIFIEDBYpasswdUSING'Connect-string'

例如:

SQL>CREATEDATABASELINKL-EMP

CONNECTTOclasslIDENTIFIEDBYclass1

USING9T:166,111.4.4:or7o,;

SQL>SELECTDNAME,ENAME,DEPT.DEPTNO

FROMDEPT,EMP@L-EMP

WHEREDEPT.DEPTNO=EMP.DEPTNO;

?分布查詢語句實例

假如本地結點數據庫名為OR70,網絡地址為166.111.4.4;遠程數據庫為ORAD7,

網絡地址為166.111.4.3?,F(xiàn)在要在本地機器上訪問遠程數據庫中用戶studeutx(密碼

為studentx)中的DEPT,EMP表,請寫出相關的SQL語句?若要訪問本地的DEPT,

遠程數據庫中的EMP,如何修改SQL語句。

D:>SQLPLUSstudentx/studentx@T:166.111.4.4:Or70J

SQL>CREATEDATABASELINKS_emp

CONNECTTOstudentxIDENTIFIEDBYstudentx

USINGtT:166.111.4.3:0rad7,;

SQL>SELECTDNAME,ENAMEFROMDEPT@S_emp,EMP@S_emp

WHEREDEPT.DEPTNO=EMP.DEPTNO;

SQL>SELECTDNAME,ENAMEFROMDEPT,EMP@s_emp

WHEREDEPT.DEPTNO=EMP.DEPTNO;

3.5關系數據庫

3.5.1關系模型的基本概念

關系數據庫的基本結構是表(tables),即關系(relations)。關系是命名的二維表。關

系數據庫是相關關系的集合。

例如,供店商(Supplier)供應零件(PART)的關系,用E-R模型表示為:

Q1,1□_________

/

^SuDDlie?—||PARTkl]

用二維表格表示則為:

關系Supplier關系SP

SNOSNAMESTATUSCITYSNOPNOQTY

S1Smith20LondonSIPl300

S2Jones10ParisSIP2200

S3Blake30ParisSIP3400

S4Clake20LondonSIP4200

S5Adams30AthensSIP5100

S2P6100

關系PartS2P2300

PNOPNAMECOLORWEIGHTS3P3400

P1RedRed12S4P4200

P2boltGreen17S4P5300

P3ScrewBlue17S4P6400

P4ScrewRed14

P5CamBlue12

P6CogRed19

關系數據庫

一個關系數據庫是由一個域集和一個關系集組成的。其中域(domain)是值的集

合。例如:整數值域,實數值域、字符值域等。在關系模型中,域必須是簡單域,即

域值是不可再分的。

關系的數學定義

設D1,D2,…,Dn為一組域,D1,D2,…Dn上的笛卡爾積定義為:D1XD2X…

XDn={(dl,d2,-,dn)IdieDi,i=l,2,—,n}

其中每一個元素(dl,d2,…dn)稱為一個n元組,簡稱元組。元組中每一個值di

叫做一個分量。

D1XD2X…XDn的子集叫做在域D1,D2,…,Dn上的關系(Relation)。如果其名

為R,該關系則可表示為:

R(D1,D2—,Dn)

例:已知三個域:MEN(男人域)、WOMEN(女人域)CHILDREN

溫馨提示

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

評論

0/150

提交評論