第6章數(shù)據(jù)庫系統(tǒng)及其應(yīng)用_第1頁
第6章數(shù)據(jù)庫系統(tǒng)及其應(yīng)用_第2頁
第6章數(shù)據(jù)庫系統(tǒng)及其應(yīng)用_第3頁
第6章數(shù)據(jù)庫系統(tǒng)及其應(yīng)用_第4頁
第6章數(shù)據(jù)庫系統(tǒng)及其應(yīng)用_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第六章第六章 數(shù)據(jù)庫系統(tǒng)及其應(yīng)用數(shù)據(jù)庫系統(tǒng)及其應(yīng)用一、數(shù)據(jù)管理技術(shù)的發(fā)展過程一、數(shù)據(jù)管理技術(shù)的發(fā)展過程數(shù)據(jù)管理數(shù)據(jù)管理 是計(jì)算機(jī)應(yīng)用系統(tǒng)中的重要組成部分,包括數(shù)據(jù)的獲取、存儲(chǔ)、查詢、更新等等舉例:電子地圖網(wǎng)站、教務(wù)管理系統(tǒng) 數(shù)據(jù)管理技術(shù)的發(fā)展過程: 1人工管理階段(人工管理階段(50年代)年代)程序與數(shù)據(jù)不獨(dú)立,不同程序之間不能共享數(shù)據(jù) 應(yīng)用程序1應(yīng)用程序2應(yīng)用程序n 。數(shù)據(jù)集1數(shù)據(jù)集2數(shù)據(jù)集n 。2文件系統(tǒng)階段(文件系統(tǒng)階段(50-60年代)年代) 數(shù)據(jù)以文件形式存儲(chǔ),程序和數(shù)據(jù)有一定的獨(dú)立性 應(yīng)用程序1應(yīng)用程序2應(yīng)用程序n 。文件1文件2文件n 。存取方 法3數(shù)據(jù)庫階段(數(shù)據(jù)庫階段(70年

2、代)年代) 數(shù)據(jù)庫管理系統(tǒng)對(duì)數(shù)據(jù)庫進(jìn)行管理應(yīng)用程序1應(yīng)用程序2 。用 戶數(shù)據(jù)庫管理系統(tǒng) 數(shù)據(jù)庫應(yīng)用程序n4高級(jí)數(shù)據(jù)庫階段(高級(jí)數(shù)據(jù)庫階段(80年代)年代) 分布式數(shù)據(jù)庫系統(tǒng)、面向?qū)ο髷?shù)據(jù)庫、多媒體分布式數(shù)據(jù)庫系統(tǒng)、面向?qū)ο髷?shù)據(jù)庫、多媒體數(shù)據(jù)庫、數(shù)據(jù)倉庫、程數(shù)據(jù)庫、空間數(shù)據(jù)庫數(shù)據(jù)庫、數(shù)據(jù)倉庫、程數(shù)據(jù)庫、空間數(shù)據(jù)庫二、數(shù)據(jù)庫系統(tǒng)的組成二、數(shù)據(jù)庫系統(tǒng)的組成 數(shù) 據(jù) 庫 (DB) 數(shù)據(jù)庫管理系統(tǒng) (DBMS) 應(yīng)用 程序應(yīng)用程序應(yīng)用程序 用戶用戶用戶 數(shù)據(jù)庫管理員 (DBA)1.數(shù)據(jù)庫系統(tǒng)(數(shù)據(jù)庫系統(tǒng)(DBS):它由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫管理員、數(shù)據(jù)庫應(yīng)用程序、用戶組成。 用戶 用戶 用戶 (

3、1)數(shù)據(jù)庫(數(shù)據(jù)庫(DB):相關(guān)信息或數(shù)據(jù)的有規(guī)則的集合。 (2)數(shù)據(jù)庫管理系統(tǒng)(數(shù)據(jù)庫管理系統(tǒng)(DBMS):對(duì)數(shù)據(jù)庫進(jìn)行管理軟件,是數(shù)據(jù)庫系統(tǒng)的核心。其職能是維護(hù)數(shù)據(jù)庫,操作數(shù)據(jù)庫數(shù)據(jù)。 用戶或者程序必須通過DBMS來管理DB。 (3)數(shù)據(jù)庫管理員(DBA) (4 ) 數(shù)據(jù)庫應(yīng)用程序 (5)用戶 2.根據(jù)數(shù)據(jù)模型的設(shè)計(jì)方法不同,數(shù)據(jù)庫系統(tǒng)可分為層次型、網(wǎng)狀型、關(guān)系型、面層次型、網(wǎng)狀型、關(guān)系型、面向?qū)ο笮?。向?qū)ο笮汀?目前應(yīng)用最為廣泛的是關(guān)系型數(shù)據(jù)庫。關(guān)系型數(shù)據(jù)庫。 層次模型舉例層次模型舉例網(wǎng)狀模型舉例網(wǎng)狀模型舉例關(guān)系模型舉例關(guān)系模型舉例三、三、 關(guān)系數(shù)據(jù)庫簡介關(guān)系數(shù)據(jù)庫簡介1基本概念基本概念

4、 (1)表、記錄、字段)表、記錄、字段 在關(guān)系數(shù)據(jù)庫中,表是存儲(chǔ)和管理數(shù)據(jù)的基本單元。表是一種格式化的二維數(shù)組,橫向?yàn)樾?,稱為記錄;縱向?yàn)榱?,也叫字段。如學(xué)生表t_student學(xué)號(hào)姓名性別年齡2001A030301李小春男192001A030302張玉妹女192001A030303劉志剛男20一個(gè)表描述一種關(guān)系,表中的行定義叫做關(guān)系模式字段類型字段類型 在確定表的結(jié)構(gòu)時(shí),需要定義一個(gè)表由哪些字段組成,同時(shí)要定義字段的類型。學(xué)號(hào)-varchar(11) : 可變長字符型,最大長度為11姓名-varchar(8) :可變長字符型,最大長度為8性別-varchar(2) :可變長字符型,最大長度為

5、2年齡-int: 整數(shù)型 數(shù) 據(jù) 類 型 說 明 CHAR(n) 長度為n的定長字符串 VARCHAR(n) 最大長度為n的變長字符串 INT 全字長整數(shù) SMALLINT 半字長整數(shù) NUMERIC(p,d) 十進(jìn)制小數(shù),由p位數(shù)字(不包括符號(hào)和小數(shù)點(diǎn))組成的定點(diǎn)數(shù),小數(shù)點(diǎn)后面有d位數(shù)字 REAL 浮點(diǎn)數(shù) DOUBLE RECISION 雙精度浮點(diǎn)數(shù) FLOAT(n) 精度至少為n位數(shù)字的浮點(diǎn)數(shù) DATE 日期,形如YYYY-MM-DD(年-月-日) TIME 時(shí)間,形如HH:MM:SS(時(shí):分:秒) SQLSQL提供的基本數(shù)據(jù)類型提供的基本數(shù)據(jù)類型(2)主鍵)主鍵 若表中的一個(gè)或某幾個(gè)字段

6、能夠唯一確定表中的一條記錄,則該字段可定義為表的關(guān)鍵字,被選用的關(guān)鍵字稱為主鍵主鍵 StudentsStudents表表男男張智忠張智忠學(xué)號(hào)學(xué)號(hào)姓名姓名性別性別黨員黨員專業(yè)專業(yè)出生年出生年月月助學(xué)金助學(xué)金990001王濤王濤男男No物理物理82-01-21¥160.0160.00 0990002莊前莊前女女Yes物理物理82-09-21¥200.0200.00 0990101丁保華丁保華男男No數(shù)學(xué)數(shù)學(xué)81-04-18¥180.0180.00 0990102姜沛棋姜沛棋女女No數(shù)學(xué)數(shù)學(xué)81-12-02¥280.0280.00 0No數(shù)學(xué)數(shù)學(xué)80-08-06¥240.0240.00 099020

7、1程玲程玲女女Yes計(jì)算機(jī)計(jì)算機(jī)82-11-14¥200.0200.00 0990202黎敏艷黎敏艷女女Yes計(jì)算機(jī)計(jì)算機(jī)83-02-21¥160.0160.00 0990103(3)實(shí)體()實(shí)體(Entity) 客觀存在的并可相互區(qū)分的事物客觀存在的并可相互區(qū)分的事物,如學(xué)生、課程等等。在關(guān)系數(shù)據(jù)庫中,實(shí)體用表表示。(4)聯(lián)系()聯(lián)系(Relationship) 實(shí)體之間存在的對(duì)應(yīng)關(guān)系實(shí)體之間存在的對(duì)應(yīng)關(guān)系,分為三種: 一對(duì)一(一對(duì)一(1:1)、一對(duì)多()、一對(duì)多(1:n)、)、多對(duì)多(多對(duì)多(m:n)(5)關(guān)系模型:關(guān)系模型:用表表示實(shí)體及實(shí)體之間的聯(lián)系的模型用表表示實(shí)體及實(shí)體之間的聯(lián)系的

8、模型(6)E-R圖:圖:對(duì)現(xiàn)實(shí)世界的第一級(jí)抽象,其中矩形表示對(duì)現(xiàn)實(shí)世界的第一級(jí)抽象,其中矩形表示實(shí)體類型,菱形表示實(shí)體聯(lián)系,橢圓形表示字段(屬性)實(shí)體類型,菱形表示實(shí)體聯(lián)系,橢圓形表示字段(屬性) 2關(guān)系數(shù)據(jù)庫的設(shè)計(jì)關(guān)系數(shù)據(jù)庫的設(shè)計(jì) 需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)、物理設(shè)計(jì)E-R圖表 邏輯設(shè)計(jì)遵循規(guī)范化理論規(guī)范化理論四、結(jié)構(gòu)化查詢語言四、結(jié)構(gòu)化查詢語言SQL1.SQL語言概述: 1974年提出,逐漸成為國際標(biāo)準(zhǔn)數(shù)據(jù)庫語言 SQL的特點(diǎn): l功能一體化;l語法結(jié)構(gòu)的統(tǒng)一性: SQL有兩種使用方式:自含式有兩種使用方式:自含式 、嵌入式、嵌入式,使使用方式不同,但語法結(jié)構(gòu)相同用方式不同,但語法結(jié)構(gòu)相

9、同l高度的非過程化高度的非過程化l語言簡潔,功能豐富2.SQL的數(shù)據(jù)定義操作的數(shù)據(jù)定義操作l定義基本表:定義基本表:基本表定義語句的一般形式:基本表定義語句的一般形式:CREATE TABLE CREATE TABLE ( 1NOT NULL NOT NULL , 2NOT NULL NOT NULL ,. . )例例6-16-1使用使用SQLSQL語句建立學(xué)生表語句建立學(xué)生表S S、課程表課程表C C和學(xué)生選課和學(xué)生選課成績表成績表SCSC。( (表在表在203203頁頁) ) 解:(解:(1 1)創(chuàng)建基本表)創(chuàng)建基本表S S: CREATE TABLE S CREATE TABLE S(學(xué)

10、號(hào)學(xué)號(hào) CHAR(4) NOT NULL,CHAR(4) NOT NULL,姓名姓名 CHAR(8) NOT NULLCHAR(8) NOT NULL,年齡年齡 SMALLINTSMALLINT,性別性別 CHARCHAR(2 2),),系別系別 CHARCHAR(2020),),PRIMARY KEY PRIMARY KEY (學(xué)號(hào))學(xué)號(hào)) (2 2)創(chuàng)建基本表)創(chuàng)建基本表C C: CREATE TABLE C CREATE TABLE C (課程號(hào)課程號(hào) CHARCHAR(4 4)NOT NULLNOT NULL,課程名課程名 CHARCHAR(4 4)NOT NULLNOT NULL,教

11、師名教師名 CHARCHAR(8 8),), PRIMARY KEY PRIMARY KEY (課程號(hào))課程號(hào)) )(3 3)創(chuàng)建基本表)創(chuàng)建基本表SCSC: CREATE TABLE SC CREATE TABLE SC (學(xué)號(hào)學(xué)號(hào) CHARCHAR(4 4)NOT NULLNOT NULL, 課程號(hào)課程號(hào) CHARCHAR(4 4)NOT NULLNOT NULL, 成績成績 CHARCHAR(8 8)SMALLINTSMALLINT, PRIMARY KEY PRIMARY KEY (學(xué)號(hào),課程號(hào)),學(xué)號(hào),課程號(hào)), FOREIGN KEY FOREIGN KEY (學(xué)號(hào))學(xué)號(hào))REFE

12、RENCES SREFERENCES S(學(xué)號(hào)),學(xué)號(hào)), FOREIGN KEY FOREIGN KEY (課程號(hào))課程號(hào))REFERENCES CREFERENCES C(課程號(hào)),課程號(hào)), CHECK CHECK (成績成績 IS NULL IS NULL )OROR(成績成績 BETWEEN 0 AND 100BETWEEN 0 AND 100) (4 4)最基本的語句最基本的語句l修改基本表修改基本表:v在基本表中增加列:在基本表中增加列: ALTER TABLE ALTER TABLE ADD ADD 例例6-26-2在例在例6-16-1的學(xué)生基本表的學(xué)生基本表S S中增加一個(gè)屬

13、性中增加一個(gè)屬性“家庭地址家庭地址”: ALTER TABLE S ADD ALTER TABLE S ADD 家庭地址家庭地址 VARCHARVARCHAR(4040)v在基本表中刪除列:在基本表中刪除列: ALTER TABLE ALTER TABLE DROP DROP 這里,這里, 可以取可以取CASCADECASCADE和和 RESTRICTRESTRICT兩種方式。兩種方式。例例6-36-3在學(xué)生基本表在學(xué)生基本表S S中刪除一個(gè)屬性中刪除一個(gè)屬性“系別系別”: ALTER TABLE S DROP ALTER TABLE S DROP 系別系別 CASCADECASCADE 或或

14、 ALTER TABLE S DROP ALTER TABLE S DROP 系別系別 RESTRICTRESTRICTv最基本的操作最基本的操作 l撤銷基本表撤銷基本表:v撤銷基本表語句:撤銷基本表語句: DROP TABLE DROP TABLE 可以取可以取CASCADECASCADE和和 RESTRICTRESTRICT兩種方式。兩種方式。例例6-46-4若要撤銷學(xué)生基本表若要撤銷學(xué)生基本表S S,可用下列語句實(shí)現(xiàn)可用下列語句實(shí)現(xiàn) DROP TABLE S CASCADEDROP TABLE S CASCADE 或或 DROP TABLE S RESTRICTDROP TABLE S

15、RESTRICTv最基本的操作最基本的操作 3.SQL的數(shù)據(jù)操縱操作的數(shù)據(jù)操縱操作: 查詢查詢插入插入修改修改刪除刪除l數(shù)據(jù)查詢操作數(shù)據(jù)查詢操作數(shù)據(jù)查詢語句的一般形式:數(shù)據(jù)查詢語句的一般形式: SELECT SELECT FROM FROM WHERE WHERE GROUP BY GROUP BY 1 HAVING HAVING ORDER BY ORDER BY 簡單查詢:在單個(gè)基本表上的查詢,不涉及多個(gè)基本表的連接查詢和嵌套查簡單查詢:在單個(gè)基本表上的查詢,不涉及多個(gè)基本表的連接查詢和嵌套查詢等復(fù)雜的情況。詢等復(fù)雜的情況。例例6-76-7在基本表在基本表S S中查詢?nèi)w學(xué)生的詳細(xì)信息:中

16、查詢?nèi)w學(xué)生的詳細(xì)信息: SELECT SELECT * * FROM S FROM S 例例6-86-8在基本表在基本表S S中查詢計(jì)算機(jī)科學(xué)與工程系和電氣工程系學(xué)生的學(xué)號(hào)、中查詢計(jì)算機(jī)科學(xué)與工程系和電氣工程系學(xué)生的學(xué)號(hào)、姓名和年齡:姓名和年齡: SELECT SELECT 學(xué)號(hào),姓名,年齡學(xué)號(hào),姓名,年齡 FROM S FROM S WHERE WHERE 系別系別計(jì)算機(jī)科學(xué)與工程系計(jì)算機(jī)科學(xué)與工程系 OR OR 系名系名電氣工程系電氣工程系例例6-96-9在基本表在基本表S S中查詢年齡在中查詢年齡在18182020歲歲 學(xué)生的姓名和性別:學(xué)生的姓名和性別: SELECT SELECT

17、姓名,性別姓名,性別 FROM S FROM S WHERE WHERE 年齡年齡 18 AND 18 AND 年齡年齡 = 80= 80v嵌套查詢:在查詢語句嵌套查詢:在查詢語句WHEREWHERE后面的條件表達(dá)式中出現(xiàn)另一后面的條件表達(dá)式中出現(xiàn)另一個(gè)查詢個(gè)查詢, ,該查詢又稱為子查詢?cè)摬樵冇址Q為子查詢,SQLSQL允許多層嵌套。允許多層嵌套。例例6-166-16在基本在基本表表S S、C C和和SCSC中查詢選修課程號(hào)為中查詢選修課程號(hào)為C001C001學(xué)生的學(xué)生的學(xué)號(hào)和姓名。學(xué)號(hào)和姓名。 SELECT SELECT 學(xué)號(hào),姓名學(xué)號(hào),姓名 FROM S FROM S WHERE S. WH

18、ERE S.學(xué)號(hào)學(xué)號(hào) IN IN (SELECT SELECT 學(xué)號(hào)學(xué)號(hào) FROM SC WHERE FROM SC WHERE 課程課程 號(hào)號(hào)C001C001)例例6-176-17在基本在基本表表S S、C C和和SCSC中查詢選修課程名為操作系統(tǒng)學(xué)中查詢選修課程名為操作系統(tǒng)學(xué)生的學(xué)號(hào)和姓名:生的學(xué)號(hào)和姓名: SELECT SELECT 學(xué)號(hào),姓名學(xué)號(hào),姓名 FROM S FROM S WHERE WHERE 學(xué)號(hào)學(xué)號(hào) IN IN (SELECT SELECT 學(xué)號(hào)學(xué)號(hào) FROM SC WHERE FROM SC WHERE 課程號(hào)課程號(hào) ININ (SELECT SELECT 課程課程號(hào)號(hào)

19、FROM C WHERE FROM C WHERE 課程名課程名 操作系統(tǒng)操作系統(tǒng))l數(shù)據(jù)插入操作數(shù)據(jù)插入操作數(shù)據(jù)插入語句的一般形式:數(shù)據(jù)插入語句的一般形式: INSERT INTO INSERT INTO ( 1, .2 .) VALUESVALUES( 1, .2 .)例例6-186-18在學(xué)生基本表在學(xué)生基本表S S中插入一名新學(xué)生的元組,其學(xué)號(hào)、中插入一名新學(xué)生的元組,其學(xué)號(hào)、姓名、年齡、性別和所在系別分別為姓名、年齡、性別和所在系別分別為2002250320022503、周冰、周冰、2222、男和計(jì)算機(jī)科學(xué)與工程系。男和計(jì)算機(jī)科學(xué)與工程系。 INSERT INTO S INSERT INTO S VALUES VALUES(2002250320022503,周冰周冰,2222,男男, 計(jì)計(jì)算機(jī)科學(xué)與算機(jī)科學(xué)與 工程系工程系 )l數(shù)據(jù)修改操作數(shù)據(jù)修改操作數(shù)據(jù)修改語句的一般形式:數(shù)據(jù)修改語句的一般形式: UPDATE UPDATE SET SET 1 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論