




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
數據、數據庫、數據庫管理系統、數據庫系統(了解)數據庫管理系統的功能和特點(了解)常用的數據模型(了解)ER模型表達方法(熟悉)數據庫系統結構(三級模式,兩級映像)(熟悉)數據獨立性(物理獨立性、邏輯獨立性)(掌握)第一章緒論數據(Data)是數據庫中存儲的基本對象數據的定義描述事物的符號記錄數據的種類文本、圖形、圖像、音頻、視頻、學生的檔案記錄、貨物的運輸情況等數據的特點數據與其語義是不可分的數據庫數據庫的定義數據庫(Database,簡稱DB)是按一定的方式存儲在計算機設備上、相關的數據集合。三、數據庫管理系統什么是DBMS是建立、管理和維護數據庫的軟件系統,是一種位于應用軟件與操作系統之間,實現數據庫管理功能的系統軟件。DBMS的主要功能1定義數據庫提供數據定義語言(DDL)
定義數據庫中的數據對象2操縱數據庫
提供數據操縱語言(DML)
實現對數據庫的基本操作(查詢、插入、刪除和修改)3控制數據庫4維護數據庫5通信功能四、數據庫系統數據庫系統(DatabaseSystem,簡稱DBS)
在計算機系統中引入數據庫后的系統構成數據庫系統的構成數據庫數據庫管理系統(及其開發工具)數據庫應用系統數據庫管理員
1.1.3數據庫系統的特點數據結構化數據的共享性高,冗余度低,易擴充數據獨立性高數據由DBMS統一管理和控制兩大類數據模型DBMS支持的數據模型概念模型認識抽象信息世界機器世界現實世界中客觀對象的抽象過程現實世界現實世界概念模型數據庫設計人員完成邏輯模型物理模型由DBMS完成概念模型邏輯模型數據庫設計人員完成
一、數據結構什么是數據結構描述數據庫的組成對象,以及對象之間的聯系描述的內容與數據類型、內容、性質有關的對象與數據之間聯系有關的對象數據結構是對系統靜態特性的描述五、概念模型的表示方法實體-聯系方法(E-R方法)用E-R圖來描述現實世界的概念模型E-R方法也稱為E-R模型E-R圖實體型用矩形表示,矩形框內寫明實體名。屬性用橢圓形表示,并用無向邊將其與相應的實體連接起來學生教師學生學號年齡性別姓名聯系的屬性課程選修學生mn成績聯系的屬性:聯系本身也是一種實體型,也可以有屬性。如果一個聯系具有屬性,則這些屬性也要用無向邊與該聯系連接起來
1.2.4最常用的數據模型非關系模型層次模型(HierarchicalModel)網狀模型(NetworkModel)關系模型(RelationalModel)面向對象模型(ObjectOrientedModel)對象關系模型(ObjectRelationalModel)一、關系數據模型的數據結構
在用戶觀點下,關系模型中數據的邏輯結構是一張二維表,它由行和列組成。學號姓名年齡性別系名年級2005004王小明19女社會學20052005006黃大鵬20男商品學20052005008張文斌18女法律2005………………學生登記表屬性元組關系數據模型的數據結構(續)關系(Relation)一個關系對應通常說的一張表元組(Tuple)表中的一行即為一個元組屬性(Attribute)表中的一列即為一個屬性,給每一個屬性起一個名稱即屬性名關系數據模型的數據結構(續)主碼(Key)表中的某個屬性組,它可以唯一確定一個元組。域(Domain)屬性的取值范圍。分量元組中的一個屬性值。關系模式對關系的描述關系名(屬性1,屬性2,…,屬性n)學生(學號,姓名,年齡,性別,系,年級)關系數據模型的數據結構(續)關系術語一般表格的術語關系名表名關系模式表頭(表格的描述)關系(一張)二維表元組記錄或行屬性列屬性名列名屬性值列值分量一條記錄中的一個列值非規范關系表中有表(大表中嵌有小表)表1.2術語對比四、關系數據模型的優缺點優點建立在嚴格的數學概念的基礎上概念單一實體和各類聯系都用關系來表示對數據的檢索結果也是關系關系模型的存取路徑對用戶透明具有更高的數據獨立性,更好的安全保密性簡化了程序員的工作和數據庫開發建立的工作關系數據模型的優缺點(續)缺點存取路徑對用戶透明導致查詢效率往往不如非關系數據模型為提高性能,必須對用戶的查詢請求進行優化增加了開發DBMS的難度1.3.2數據庫系統的三級模式結構模式(Schema)
外模式(ExternalSchema)內模式(InternalSchema)數據庫系統的三級模式結構(續)圖1.28數據庫系統的三級模式結構一、模式(Schema)模式(也稱邏輯模式)數據庫中全體數據的邏輯結構和特征的描述所有用戶的公共數據視圖,綜合了所有用戶的需求一個數據庫只有一個模式模式的地位:是數據庫系統模式結構的中間層與數據的物理存儲細節和硬件環境無關與具體的應用程序、開發工具及高級程序設計語言無關二、外模式(ExternalSchema)外模式(也稱子模式或用戶模式)數據庫用戶(包括應用程序員和最終用戶)使用的局部數據的邏輯結構和特征的描述數據庫用戶的數據視圖,是與某一應用有關的數據的邏輯表示三、內模式(InternalSchema)內模式(也稱存儲模式)是數據物理結構和存儲方式的描述是數據在數據庫內部的表示方式記錄的存儲方式(順序存儲,按照B樹結構存儲,按hash方法存儲)索引的組織方式數據是否壓縮存儲數據是否加密數據存儲記錄結構的規定一個數據庫只有一個內模式1.4數據庫系統的組成數據庫數據庫管理系統(及其開發工具)應用系統軟、硬件平臺人員二、軟件DBMS支持DBMS運行的操作系統與數據庫接口的高級語言及其編譯系統以DBMS為核心的應用開發工具為特定應用環境開發的數據庫應用系統三、人員數據庫管理員系統分析員和數據庫設計人員應用程序員用戶關系數據結構及形式化定義(了解)基本關系操作(掌握)關系完整性(三類完整性,掌握)關系代數(傳統集合運算,專門關系運算,掌握)第二章關系數據庫關系(Relation)1)關系D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的關系,表示為
R(D1,D2,…,Dn)
R:關系名n:關系的目或度(Degree)關系的表示關系也是一個二維表,表的每行對應一個元組,表的每列對應一個域屬性關系中不同列可以對應相同的域為了加以區分,必須對每列起一個名字,稱為屬性(Attribute)n目關系必有n個屬性碼
候選碼(Candidatekey)若關系中的某一屬性組的值能唯一地標識一個元組,則稱該屬性組為候選碼簡單的情況:候選碼只包含一個屬性全碼(All-key)最極端的情況:關系模式的所有屬性組是這個關系模式的候選碼,稱為全碼(All-key)主碼若一個關系有多個候選碼,則選定其中一個為主碼(Primarykey)主屬性候選碼的諸屬性稱為主屬性(Primeattribute)不包含在任何侯選碼中的屬性稱為非主屬性(Non-Primeattribute)或非碼屬性(Non-keyattribute)1.什么是關系模式關系模式(RelationSchema)是型關系是值關系模式是對關系的描述元組集合的結構屬性構成屬性來自的域屬性與域之間的映象關系元組語義以及完整性約束條件屬性間的數據依賴關系集合2.定義關系模式關系模式可以形式化地表示為:
R(U,D,DOM,F)
R關系名
U
組成該關系的屬性名集合
D
屬性組U中屬性所來自的域
DOM屬性向域的映象集合
F
屬性間的數據依賴關系集合定義關系模式(續)關系模式通常可以簡記為
R(U)或R(A1,A2,…,An)R:關系名A1,A2,…,An:屬性名注:域名及屬性向域的映象常常直接說明為屬性的類型、長度2.1.3
關系數據庫關系數據庫在一個給定的應用領域中,所有關系的集合構成一個關系數據庫關系數據庫的型與值2.關系數據庫的型與值關系數據庫的型:關系數據庫模式對關系數據庫的描述。關系數據庫模式包括若干域的定義在這些域上定義的若干關系模式關系數據庫的值:關系模式在某一時刻對應的關系的集合,簡稱為關系數據庫2.2.1基本關系操作
常用的關系操作查詢:選擇、投影、連接、除、并、交、差數據更新:插入、刪除、修改查詢的表達能力是其中最主要的部分選擇、投影、并、差、笛卡爾基是5種基本操作關系操作的特點集合操作方式:操作的對象和結果都是集合,一次一集合的方式2.外碼(ForeignKey)設F是基本關系R的一個或一組屬性,但不是關系R的碼。如果F與基本關系S的主碼Ks相對應,則稱F是基本關系R的外碼基本關系R稱為參照關系(ReferencingRelation)基本關系S稱為被參照關系(ReferencedRelation)或目標關系(TargetRelation)數據庫系統概論AnIntroductiontoDatabaseSystem第三章關系數據庫標準語言SQL3.1SQL概述SQL(StructuredQueryLanguage)結構化查詢語言,是關系數據庫的標準語言SQL是一個通用的、功能極強的關系數據庫語言SQL概述及特點
字面看SQL只是一個查詢語言,而實際上SQL作為一種標準數據庫語言,從對數據庫的隨機查詢到數據庫的管理和程序設計,SQL幾乎無所不能,功能十分豐富.SQL語言是一種關系數據庫語言,提供數據的定義、查詢、更新和控制等功能。
SQL語言不是一個應用程序開發語言,只提供對數據庫的操作能力,不能完成屏幕控制、菜單管理、報表生成等功能,可成為應用開發語言的一部分。
SQL語言不是一個DBMS,它屬于DBMS語言處理程序。大部分DBMS產品都支持SQL,成為操作數據庫的標準語言3.1.2
SQL語言的基本概念首先介紹兩個基本概念:基本表和視圖。基本表(BASETABLE):是獨立存在的表,不是由其它的表導出的表。一個關系對應一個基本表,一個或多個基本表對應一個存儲文件。視圖(VIEW):是一個虛擬的表,是從一個或幾個基本表導出的表。它本身不獨立存在于數據庫中,數據庫中只存放視圖的定義而不存放視圖對應的數據,這些數據仍存放在導出視圖的基本表中。當基本表中的數據發生變化時,從視圖中查詢出來的數據也隨之改變。SQL的基本概念(續)SQL視圖2視圖1基本表2基本表1基本表3基本表4存儲文件2存儲文件1外模式模式內模式SQL支持關系數據庫三級模式結構其中外模式對應于視圖和部分基本表,模式對應于基本表,內模式對應于存儲文件。3.2學生-課程數據庫學生-課程模式S-T:
學生表:Student(Sno,Sname,Ssex,Sage,Sdept)
課程表:Course(Cno,Cname,Cpno,Ccredit)
學生選課表:SC(Sno,Cno,Grade)
3.3數據定義SQL的數據定義功能:模式定義、表定義、視圖和索引的定義
二、數據類型數據類型含義CHAR(n)長度為n的定長字符串VARCHAR(n)最大長度為n的變長字符串INT長整數(也可以寫作INTEGER)SMALLINT短整數NUMERIC(p,d)定點數,由p位數字(不包括符號、小數點)組成,小數后面有d位數字REAL取決于機器精度的浮點數DoublePrecision取決于機器精度的雙精度浮點數FLOAT(n)浮點數,精度至少為n位數字DATE日期,包含年、月、日,格式為YYYY-MM-DDTIME時間,包含一日的時、分、秒,格式為HH:MM:SS三、模式與表每一個基本表都屬于某一個模式一個模式包含多個基本表定義基本表所屬模式方法一:在表名中明顯地給出模式名Createtable“S-T”.Student(......);/*模式名為S-T*/Createtable“S-T”.Cource(......);Createtable“S-T”.SC(......);方法二:在創建模式語句中同時創建表方法三:設置所屬的模式3.3.3索引的建立與刪除誰可以建立索引DBA或表的屬主(即建立表的人)DBMS一般會自動建立以下列上的索引
PRIMARYKEYUNIQUE誰維護索引
DBMS自動完成
使用索引
DBMS自動選擇是否使用索引以及使用哪些索引索引的分類1.按照索引記錄的存放位置可分為聚集索引與非聚集索引聚集索引:按照索引的字段排列記錄,并且依照排好的順序將記錄存儲在表中。非聚集索引:按照索引的字段排列記錄,但是排列的結果并不會存儲在表中,而是另外存儲。2.唯一索引的概念唯一索引表示表中每一個索引值只對應唯一的數據記錄,這與表的PRIMARYKEY的特性類似,因此唯一性索引常用于PRIMARYKEY的字段上,以區別每一筆記錄。當表中有被設置為UNIQUE的字段時,SQLSERVER會自動建立一個非聚集的唯一性索引。而當表中有PRIMARYKEY的字段時,SQLSERVER會在PRIMARYKEY字段建立一個聚集索引。3.復合索引的概念復合索引是將兩個字段或多個字段組合起來建立的索引,而單獨的字段允許有重復的值。索引RDBMS中索引一般采用B+樹、HASH索引來實現B+樹索引具有動態平衡的優點HASH索引具有查找速度快的特點采用B+樹,還是HASH索引則由具體的RDBMS來決定索引是關系數據庫的內部實現技術,屬于內模式的范疇CREATEINDEX語句定義索引時,可以定義索引是唯一索引、非唯一索引或聚簇索引數據查詢語句格式
SELECT
[ALL|DISTINCT]<目標列表達式>[,<目標列表達式>]…FROM
<表名或視圖名>[,<表名或視圖名>]…[WHERE<條件表達式>][GROUPBY<列名1>[HAVING<條件表達式>]][ORDERBY<列名2>[ASC|DESC]];
3.4.1單表查詢查詢僅涉及一個表:一、選擇表中的若干列二、選擇表中的若干元組三、ORDERBY子句四、聚集函數五、GROUPBY子句一、選擇表中的若干列查詢指定列
[例1]查詢全體學生的學號與姓名。
SELECTSno,Sname
FROMStudent;
[例2]查詢全體學生的姓名、學號、所在系。
SELECTSname,Sno,Sdept
FROMStudent;2.查詢全部列選出所有屬性列:在SELECT關鍵字后面列出所有列名將<目標列表達式>指定為*[例3]查詢全體學生的詳細記錄。SELECTSno,Sname,Ssex,Sage,SdeptFROMStudent;或SELECT*FROMStudent;3.查詢經過計算的值SELECT子句的<目標列表達式>可以為:算術表達式字符串常量函數列別名
3.4.1單表查詢查詢僅涉及一個表:一、選擇表中的若干列二、選擇表中的若干元組三、ORDERBY子句四、聚集函數五、GROUPBY子句消除取值重復的行(續)指定DISTINCT關鍵詞,去掉表中重復的行
SELECTDISTINCTSno
FROMSC;執行結果:
Sno 200215121 2002151222.查詢滿足條件的元組查詢條件謂詞比較=,>,<,>=,<=,!=,<>,!>,!<;NOT+上述比較運算符確定范圍BETWEENAND,NOTBETWEENAND確定集合IN,NOTIN字符匹配LIKE,NOTLIKE空值ISNULL,ISNOTNULL多重條件(邏輯運算)AND,OR,NOT表3.4常用的查詢條件(1)比較大小[例7]查詢計算機系全體學生的名單。
SELECTSnameFROMStudent
WHERESdept=‘CS’;[例8]查詢所有年齡在20歲以下的學生姓名及其年齡。
SELECTSname,SageFROMStudentWHERESage<20;[例9]查詢考試不及格的學生的學號。
SELECTDISTINCTSnoFROMSC
WHEREGrade<60;(2)確定范圍謂詞:
BETWEEN…AND…NOTBETWEEN…AND…[例10]查詢年齡在20~23歲(包括20歲和23歲)之間的學生的姓名、系別和年齡
SELECTSname,Sdept,SageFROMStudentWHERESageBETWEEN20AND23;[例11]查詢年齡不在20~23歲之間的學生姓名、系別和年齡
SELECTSname,Sdept,Sage FROMStudent WHERESageNOTBETWEEN20AND23;(3)確定集合謂詞:IN<值表>,NOTIN<值表>
[例12]查詢信息系(IS)、數學系(MA)和計算機科學系(CS)學生的姓名和性別。
SELECTSname,Ssex FROMStudent
WHERESdeptIN('IS','MA','CS');[例13]查詢既不是信息系、數學系,也不是計算機科學系的學生的姓名和性別。SELECTSname,SsexFROMStudent
WHERESdeptNOTIN('IS','MA','CS');(4)字符匹配謂詞:
[NOT]LIKE‘<匹配串>’[ESCAPE‘<換碼字符>’]匹配串為固定字符串[例14]查詢學號為200215121的學生的詳細情況。
SELECT*FROMStudentWHERESnoLIKE‘200215121';等價于:
SELECT*FROMStudentWHERESno='200215121';(6)多重條件查詢邏輯運算符:AND和OR來聯結多個查詢條件
AND的優先級高于OR
可以用括號改變優先級可用來實現多種其他謂詞
[NOT]IN[NOT]BETWEEN…AND…多重條件查詢(續)[例23]查詢計算機系年齡在20歲以下的學生姓名。
SELECTSnameFROMStudentWHERESdept='CS'ANDSage<20;多重條件查詢(續)改寫[例12][例12]查詢信息系(IS)、數學系(MA)和計算機科學系(CS)學生的姓名和性別。SELECTSname,SsexFROMStudentWHERESdeptIN('IS','MA','CS')可改寫為:SELECTSname,SsexFROMStudentWHERESdept='IS'ORSdept='MA'ORSdept='CS';三、ORDERBY子句ORDERBY子句可以按一個或多個屬性列排序升序:ASC;降序:DESC;缺省值為升序當排序列含空值時ASC:排序列為空值的元組最后顯示DESC:排序列為空值的元組最先顯示四、聚集函數聚集函數:計數COUNT([DISTINCT|ALL]*)COUNT([DISTINCT|ALL]<列名>)計算總和SUM([DISTINCT|ALL]<列名>) 計算平均值AVG([DISTINCT|ALL]<列名>)最大最小值
MAX([DISTINCT|ALL]<列名>)
MIN([DISTINCT|ALL]<列名>)五、GROUPBY子句GROUPBY子句分組:細化聚集函數的作用對象未對查詢結果分組,聚集函數將作用于整個查詢結果對查詢結果分組后,聚集函數將分別作用于每個組作用對象是查詢的中間結果表按指定的一列或多列值分組,值相等的為一組GROUPBY子句(續)[例32]查詢選修了3門以上課程的學生學號。
SELECTSnoFROMSCGROUPBYSnoHAVINGCOUNT(*)>3;
一、等值與非等值連接查詢等值連接:連接運算符為=[例33]查詢每個學生及其選修課程的情況
SELECTStudent.*,SC.* FROMS
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年軟考網絡管理員考試復習指導試題及答案
- 2025年網絡管理員考試心得試題及答案
- 第二次月考提升卷(Unit 4、Unit 5)(含答案)-2024-2025學年人教精通版英語六年級下冊
- 學習云原生技術考試考題及答案解析
- 2025合同范本 租房協議書
- 2025法學概論考試的常見問題及試題及答案
- 學期重點項目與計劃推進
- 保安人員心理素質提升的實踐方案計劃
- 2025帶薪休假合同「下載」
- 信息處理技術員商務溝通題及答案
- GB/T 26251-2010氟和氟氮混合氣
- GB/T 24815-2009起重用短環鏈吊鏈等用6級普通精度鏈
- 無機化學氧族元素課件
- 儲煤場管理制度(6篇)
- 線描畫基本功教學課件
- 齒軌卡軌車課件
- 醫院工會經費使用與管理辦法、制度規則
- 重癥胰腺炎(1)課件
- 克拉潑改進型電容三點式振蕩器
- 介入導管室耗材準備及管理
- SPC基礎知識培訓教材-入門級_課件
評論
0/150
提交評論