第一章
-
為什么在 ANSI/SPARC 體系結(jié)構(gòu)中,外模式需要設(shè)計成多個?這么做有什么好處?
- 外模式:單個用戶所看的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,用戶與數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)接口。保證數(shù)據(jù)安全性,每個用戶只能看到外模式中的數(shù)據(jù),其余數(shù)據(jù)不可見。
- 重點:簡潔方便,安全性,靈活性。
-
什么是數(shù)據(jù)庫的邏輯數(shù)據(jù)獨立性?請舉例說明。
- 當概念模式發(fā)生改變時,只要修改外模式/ 模式映象,可保持外模式不變,從而保持用戶應(yīng)用程序不變,保證了數(shù)據(jù)與用戶程序的邏輯獨立性。
-
關(guān)系數(shù)據(jù)模型要求外碼所引用的屬性必須是候選碼,我們能否放松要求讓外碼引用非碼 屬性?試給出你的分析。
- 不能,候選碼唯一,非碼屬性不唯一
-
現(xiàn)實世界中的數(shù)據(jù)約束是否都可以通過關(guān)系數(shù)據(jù)模型的三類完整性規(guī)則來表示?如果 是,請解釋理由。如果不是,請給出一個反例。
- 不可以,比如優(yōu)秀率不超過40%,不及格率不超過30%。
- 注:用戶定義的完整性只能對某一屬性設(shè)置具體的約束,不能對表
的統(tǒng)計量進行約束。涉及多個元組的約束或單個元組多屬性的約束
據(jù)無法通過完整性規(guī)則來表示
第二章
三級模式
SQL語言支持數(shù)據(jù)庫三級模式結(jié)構(gòu),在SQL中,模式對應(yīng)于基本表,內(nèi)模式對應(yīng)于存儲文件,外模式對應(yīng)于視圖和部分基本表,元組對應(yīng)于表中的行,屬性對應(yīng)于表中的列。
概念模式是所有用戶的公共數(shù)據(jù)視圖:
? 不涉及數(shù)據(jù)物理存儲的細節(jié)和硬件環(huán)境
?一個數(shù)據(jù)庫只有一個概念模式
外模式是單個用戶的視圖:
? 用戶與數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)接口,對于用戶而言,外模式就是數(shù)據(jù)庫
? 建立在概念模式之上,同一模式上可有多個不同的外模式
內(nèi)模式是數(shù)據(jù)庫內(nèi)部的存儲視圖:
? 數(shù)據(jù)物理結(jié)構(gòu)和存儲方式的描述:
記錄的存儲方式:順序存儲、按B樹組織還是散列存儲?
索引按什么方式組織:排序、散列?
數(shù)據(jù)是否加密?是否壓縮存儲?
?不涉及物理塊(或頁)的大小,也不考慮具體設(shè)備的柱面或磁道大小
?一個數(shù)據(jù)庫只有一個內(nèi)模式
在數(shù)據(jù)庫中,DDL(Data Definition Language)和DML(Data Manipulation Language)是兩個重要的概念。
DDL主要用于定義數(shù)據(jù)庫的結(jié)構(gòu)和元素,例如創(chuàng)建、刪除、修改表格,定義列、限制和索引等。DDL的操作一般不會影響數(shù)據(jù)庫中的數(shù)據(jù),而是用于創(chuàng)建、修改和刪除數(shù)據(jù)庫對象的定義。
DML主要用于操作數(shù)據(jù)庫中的數(shù)據(jù),例如插入、刪除、更新和查詢數(shù)據(jù)等。DML的操作會影響數(shù)據(jù)庫中的數(shù)據(jù)。
簡單來說,DDL用于定義數(shù)據(jù)庫中的結(jié)構(gòu)和元素,DML用于對數(shù)據(jù)庫中的數(shù)據(jù)進行操作。
除了DDL和DML之外,還有DCL和DQL。
DCL是指數(shù)據(jù)控制語言(Data Control Language),用于控制數(shù)據(jù)庫用戶的訪問權(quán)限,包括授權(quán)和撤銷權(quán)限等操作,例如GRANT和REVOKE語句。
DQL是指數(shù)據(jù)查詢語言(Data Query Language),用于從數(shù)據(jù)庫中查詢數(shù)據(jù),例如SELECT語句。
第三章
- ? 超碼(Super Key)
- 在關(guān)系模式中能唯一標識一個元組的屬性集稱為關(guān)系模式
的超碼
- 在關(guān)系模式中能唯一標識一個元組的屬性集稱為關(guān)系模式
- ? 候選碼(Candidate Key)
- 不含多余屬性的超碼
- 包含在任何一個候選碼中的屬性稱為主屬性(Primary Attribute)
- 不包含在任何一個候選碼中的屬性稱為非主屬性(Non-prime Attribute)
- ? 主碼(Primary Key)
- 用戶選作元組標識的一個候選碼稱為主碼,其余的候選碼稱為替換碼(Alternate Key)
-
一個關(guān)系是一個規(guī)范化的二維表格
-
屬性值不可分解
- 不允許表中有表
-
元組不可重復(fù)
- 因此一個關(guān)系模式至少存在一個候選碼
-
沒有行序,即元組之間無序
- 關(guān)系是元組的集合
-
沒有列序,即屬性之間無序
- 關(guān)系模式是屬性的集合
-
屬性值不可分解
-
關(guān)系數(shù)據(jù)庫的數(shù)據(jù)和操作必須遵循的規(guī)則
- 實體完整性(Entity Integrity)
- 參照完整性(Referential Integrity)
- 用戶自定義完整性(User-Defined Integrity)
第四章
SQL數(shù)據(jù)庫的三級體系結(jié)構(gòu)
SQL的組成
視圖
視圖的概念
- 視圖是從一個或幾個基本表中導(dǎo)出的虛擬表,其數(shù)據(jù)沒有實際存儲,但可以和表一樣操作
- 視圖具有和表一樣的邏輯結(jié)構(gòu)定義
- 但視圖沒有相應(yīng)的存儲文件,而每個表都有相應(yīng)的存儲文件
舉例
把每門課程的課程號和平均成績定義為視圖文章來源:http://www.zghlxwxcb.cn/news/detail-409496.html
cs_view(sno,name,age):
Create View c_view
As Select c#, AVG(score) as avg_score
From sc
Group By c#
cs_view(s#,sname,age):
Create View c_view (cno, avg_score)
As Select c#, AVG(score)
From sc
Group By c#
在查詢中使用了函數(shù)時
若省略列名表,則必須為函數(shù)指定別名
若使用了列名表,則可以不指定函數(shù)的別名文章來源地址http://www.zghlxwxcb.cn/news/detail-409496.html
視圖的用途
- 邏輯數(shù)據(jù)獨立性:用戶程序與數(shù)據(jù)庫結(jié)構(gòu)
- 簡化了用戶眼中的數(shù)據(jù),使用戶可以集中于所關(guān)心的數(shù)據(jù)上
- 同一數(shù)據(jù)庫對不同用戶提供不同的數(shù)據(jù)呈現(xiàn)方式
- 安全保護
視圖的更新
- 不是所有視圖都是可更新的
- 基于連接查詢的視圖不可更新
- 使用了函數(shù)、表達式、Distinct的視圖不可更新
- 使用了分組聚集操作的視圖不可更新
- 只有建立在單個表上,而且只是去掉了基本表的某些行和列,但保留了主鍵的視圖才是可更新的
到了這里,關(guān)于【數(shù)據(jù)庫】基本概念的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!