《第6章數(shù)據(jù)庫系統(tǒng)及其應用》由會員分享,可在線閱讀,更多相關(guān)《第6章數(shù)據(jù)庫系統(tǒng)及其應用(40頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,第六章 數(shù)據(jù)庫系統(tǒng)及其應用,一、數(shù)據(jù)管理技術(shù)的發(fā)展過程,數(shù)據(jù)管理,是計算機應用系統(tǒng)中的重要組成部分,包括數(shù)據(jù)的獲取、存儲、查詢、更新等等,舉例:電子地圖網(wǎng)站、教務管理系統(tǒng),數(shù)據(jù)管理技術(shù)的發(fā)展過程:,1人工管理階段(50年代),程序與數(shù)據(jù)不獨立,不同程序之間不能共享數(shù)據(jù),應用程序,1,應用程序,2,應用程序,n,。,數(shù)據(jù)集,1,數(shù)據(jù)集,2,數(shù)據(jù)集,n,。,2文件系統(tǒng)階段(50-60年代),數(shù)據(jù)以文件形式存儲,程序和數(shù)據(jù)有一定的獨立性,應用程序,1,應用程序,2,應用程序,n,。,文件,1,文件,2,文件,n,
2、。,存取方 法,3數(shù)據(jù)庫階段(70年代),數(shù)據(jù)庫管理系統(tǒng)對數(shù)據(jù)庫進行管理,應用程序,1,應用程序,2,。,用 戶,數(shù)據(jù)庫管理系統(tǒng),數(shù)據(jù)庫,應用程序,n,4高級數(shù)據(jù)庫階段(80年代),分布式數(shù)據(jù)庫系統(tǒng)、面向?qū)ο髷?shù)據(jù)庫、多媒體數(shù)據(jù)庫、數(shù)據(jù)倉庫、程數(shù)據(jù)庫、空間數(shù)據(jù)庫,二、數(shù)據(jù)庫系統(tǒng)的組成,數(shù) 據(jù) 庫,(,DB),數(shù)據(jù)庫管理系統(tǒng),(,DBMS),應用,程序,應用,程序,應用,程序,用戶,用戶,用戶,數(shù)據(jù)庫管理員,(,DBA),1.數(shù)據(jù)庫系統(tǒng)(,DBS),:,它由數(shù)據(jù)庫、數(shù)據(jù)庫管理系,統(tǒng)、數(shù)據(jù)庫管理員、數(shù)據(jù)庫應用程序、用戶組成,。,用戶,用戶,用戶,(1),數(shù)據(jù)庫(,DB),:,相關(guān)信息或數(shù)據(jù)的有規(guī)則的
3、集合。,(2),數(shù)據(jù)庫管理系統(tǒng)(,DBMS),:,對數(shù)據(jù)庫進行管理軟件,是數(shù)據(jù)庫系統(tǒng)的核心。其職能是維護數(shù)據(jù)庫,操作數(shù)據(jù)庫數(shù)據(jù)。,用戶或者程序必須通過,DBMS,來管理,DB。,(3),數(shù)據(jù)庫管理員,(,DBA),(4)數(shù)據(jù)庫應用程序,(5),用戶,2.根據(jù)數(shù)據(jù)模型的設計方法不同,數(shù)據(jù)庫,系統(tǒng)可分為,層次型、網(wǎng)狀型、關(guān)系型、面,向?qū)ο笮汀?目前應用最為廣泛的是,關(guān)系型數(shù)據(jù)庫。,層次模型舉例,網(wǎng)狀模型舉例,關(guān)系模型舉例,三、關(guān)系數(shù)據(jù)庫簡介,1基本概念,(1)表、記錄、字段,在關(guān)系數(shù)據(jù)庫中,,表,是存儲和管理數(shù)據(jù)的基本單元。表是一種格式化的二維數(shù)組,橫向為行,稱為,記錄,;縱向為列,也叫,字段,。
4、如學生表,t_student,學號,姓名,性別,年齡,2001,A030301,李小春,男,19,2001,A030302,張玉妹,女,19,2001,A030303,劉志剛,男,20,一個表描述一種,關(guān)系,,表中的行定義叫做,關(guān)系模式,字段類型,在確定表的結(jié)構(gòu)時,需要定義一個表由哪些字段組成,同時要定義字段的類型。,學號-,varchar(11):,可變長字符型,最大長度為11,姓名-,varchar(8):,可變長字符型,最大長度為8,性別-,varchar(2):,可變長字符型,最大長度為2,年齡-,int:,整數(shù)型,數(shù) 據(jù) 類 型,說 明,CHAR(n),長度為,n,的定長字符串,VA
5、RCHAR(n),最大長度為,n,的變長字符串,INT,全字長整數(shù),SMALLINT,半字長整數(shù),NUMERIC(p,d),十進制小數(shù),由,p,位數(shù)字(不包括符號和小數(shù)點)組成的定點數(shù),小數(shù)點后面有,d,位數(shù)字,REAL,浮點數(shù),DOUBLE RECISION,雙精度浮點數(shù),FLOAT(n),精度至少為,n,位數(shù)字的浮點數(shù),DATE,日期,形如,YYYY-MM-DD(,年-月-日),TIME,時間,形如,HH:MM:SS(,時:分:秒),SQL,提供的基本數(shù)據(jù)類型,(2)主鍵,若表中的一個或某幾個字段能夠唯一確定表中的一條記錄,則該字段可定義為表的關(guān)鍵字,被選用的關(guān)鍵字稱為,主鍵,Studen
6、ts,表,男,張智忠,學號,姓名,性別,黨員,專業(yè),出生年月,助學金,990001,王濤,男,No,物理,82-01-21,¥,160.00,990002,莊前,女,Yes,物理,82-09-21,¥,200.00,990101,丁保華,男,No,數(shù)學,81-04-18,¥,180.00,990102,姜沛棋,女,No,數(shù)學,81-12-02,¥,280.00,No,數(shù)學,80-08-06,¥,240.00,990201,程玲,女,Yes,計算機,82-11-14,¥,200.00,990202,黎敏艷,女,Yes,計算機,83-02-21,¥,160.00,990103,(3)實體(,Ent
7、ity),客觀存在的并可相互區(qū)分的事物,,如學生、課程等等。在關(guān)系數(shù)據(jù)庫中,實體用表表示。,(4)聯(lián)系(,Relationship),實體之間存在的對應關(guān)系,,分為三種:,一對一(1:1)、一對多(1:,n)、,多對多(,m:n),(5),關(guān)系模型:,用表表示實體及實體之間的聯(lián)系的模型,(6),E-R,圖:,對現(xiàn)實世界的第一級抽象,其中矩形表示實體類型,菱形表示實體聯(lián)系,橢圓形表示字段(屬性),2關(guān)系數(shù)據(jù)庫的設計,需求分析、概念設計、邏輯設計、物理設計,E-R,圖,表,邏輯設計遵循,規(guī)范化理論,四、結(jié)構(gòu)化查詢語言,SQL,1.,SQL,語言概述:,1974年提出,逐漸成為國際標準數(shù)據(jù)庫語言,S
8、QL,的特點:,功能一體化;,語法結(jié)構(gòu)的統(tǒng)一性:,SQL,有兩種使用方式:自含式、嵌入式,,,使用方式不同,但語法結(jié)構(gòu)相同,高度的非過程化,語言簡潔,功能豐富,2.,SQL,的數(shù)據(jù)定義操作,定義基本表:,基本表定義語句的一般形式:,CREATE TABLE,(,NOT NULL ,,NOT NULL ,,.,),例6-1使用,SQL,語句建立學生表,S、,課程表,C,和學生選課,成績表,SC。(,表在203頁),解:(1)創(chuàng)建基本表,S:,CREATE TABLE S,(,學號,CHAR(4)NOT NULL,姓名,CHAR(8)NOT NULL,,年齡,SMALLINT,,性別,CHAR(2
9、),,系別,CHAR(20),,PRIMARY KEY(,學號),(2)創(chuàng)建基本表,C:,CREATE TABLE C,(,課程號,CHAR(4)NOT NULL,,課程名,CHAR(4)NOT NULL,,教師名,CHAR(8),PRIMARY KEY (,課程號),(3)創(chuàng)建基本表,SC:,CREATE TABLE SC,(,學號,CHAR(4)NOT NULL,,課程號,CHAR(4)NOT NULL,,成績,CHAR(8)SMALLINT,,PRIMARY KEY(,學號,課程號),,FOREIGN KEY(,學號),REFERENCES S(,學號),,FOREIGN KEY(,課程
10、號),REFERENCES C(,課程號),,CHECK(,成績,IS NULL)OR(,成績,BETWEEN 0 AND 100),(4),最基本的語句,修改基本表:,在基本表中增加列:,ALTER TABLE,ADD ,例6-2在例6-1的學生基本表,S,中增加一個屬性“家庭地址”:,ALTER TABLE S ADD,家庭地址,VARCHAR(40),在基本表中刪除列:,ALTER TABLE,DROP ,這里,可以取,CASCADE,和,RESTRICT,兩種方式。,例6-3在學生基本表,S,中刪除一個屬性“系別”:,ALTER TABLE S DROP,系別,CASCADE,或,AL
11、TER TABLE S DROP,系別,RESTRICT,最基本的操作,撤銷基本表:,撤銷基本表語句:,DROP TABLE ,可以取,CASCADE,和,RESTRICT,兩種方式。,例6-4若要撤銷學生基本表,S,,可用下列語句實現(xiàn),DROP TABLE S CASCADE,或,DROP TABLE S RESTRICT,最基本的操作,3.,SQL,的數(shù)據(jù)操縱操作:,查詢插入修改刪除,數(shù)據(jù)查詢操作,數(shù)據(jù)查詢語句的一般形式:,SELECT,FROM,WHERE,GROUP BY,HAVING,ORDER BY,簡單查詢:在單個基本表上的查詢,不涉及多個基本表的連接查詢和嵌套查,詢等復雜的情況
12、。,例6-7在基本表,S,中查詢?nèi)w學生的詳細信息:,SELECT*FROM S,例6-8在基本表,S,中查詢計算機科學與工程系和電氣工程系學生的學號、姓名和年齡:,SELECT,學號,姓名,年齡,FROM S,WHERE,系別計算機科學與工程系,OR,系名電氣工程系,例,6-9,在基本表,S,中查詢年齡在,18,20,歲,學生的姓名和性別:,SELECT,姓名,性別,FROM S,WHERE,年齡,18 AND,年齡,=80,嵌套查詢:在查詢語句,WHERE,后面的條件表達式中出現(xiàn)另一個查詢,該查詢又稱為子查詢,,,SQL,允許多層嵌套。,例,6-16,在基本,表,S,、,C,和,SC,中查
13、詢選修課程號為,C001,學生的學號和姓名。,SELECT,學號,姓名,FROM S,WHERE S.,學號,IN,(,SELECT,學號,FROM SC WHERE,課程,號,C001,),例,6-17,在基本表,S,、,C,和,SC,中查詢選修課程名為操作系統(tǒng)學生的學號和姓名:,SELECT,學號,姓名,FROM S,WHERE,學號,IN,(,SELECT,學號,FROM SC WHERE,課程號,IN,(,SELECT,課程號,FROM C WHERE,課程名,操作系統(tǒng)),數(shù)據(jù)插入操作,數(shù)據(jù)插入語句的一般形式:,INSERT INTO(,.),VALUES,(,.),例6-18在學生基
14、本表,S,中插入一名新學生的元組,其學號、姓名、年齡、性別和所在系別分別為20022503、周冰、22、男和計算機科學與工程系。,INSERT INTO S,VALUES,(20022503,,周冰,22,男,計算機科學與,工程系),數(shù)據(jù)修改操作,數(shù)據(jù)修改語句的一般形式:,UPDATE,SET ,.,WHERE,例6-21在學生基本表,S,中把學號為20022501學生的系別改為,電氣工程系:,UPDATE S,SET,系別電氣工程系,WHERE,學號20022501,數(shù)據(jù)刪除操作,數(shù)據(jù)刪除語句的一般形式:,DELETE FROM,WHERE,該語句從指定的基本表中刪除滿足條件的那些記錄,當沒有,WHERE,子句時表示刪除該基本表中的全部記錄,但該基本表的定義仍然保存,例6-20在學生基本表,S,中刪除學號為20022501學生的記錄:,DELETE FROM S WHERE,學號20022501,Oracle,DB2,Sybase,Microsoft SQL Server,Access,Visual FoxPro,五、常用數(shù)據(jù)庫管理系統(tǒng)簡介,六、數(shù)據(jù)庫技術(shù)的新發(fā)展,基本特征:,將通用數(shù)據(jù)庫技術(shù)與其他學科相結(jié)合,分布式數(shù)據(jù)庫,數(shù)據(jù)倉庫,多媒體數(shù)據(jù)庫,工程數(shù)據(jù)庫,空間數(shù)據(jù)庫,并行數(shù)據(jù)庫,