版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、2020年9月22日,第1頁,第6章 表,本章概述 本章要點(diǎn) 本章內(nèi)容,2020年9月22日,第2頁,本章概述,數(shù)據(jù)庫中的數(shù)據(jù)是如何組織和存儲的?數(shù)據(jù)庫中的數(shù)據(jù)之間的關(guān)系是如何描述的?數(shù)據(jù)庫中的主要的數(shù)據(jù)對象是什么?為何更好地回答這些問題,需要理解表的概念和特點(diǎn)。表是數(shù)據(jù)庫中最基本、最重要、最核心的對象,是組織數(shù)據(jù)的方式,是存儲數(shù)據(jù)的地方。 其他許多數(shù)據(jù)庫對象,例如索引、視圖等,都是依附于表對象存在的。從某種意義上,管理數(shù)據(jù)庫實(shí)際上就是管理數(shù)據(jù)庫中的表。表結(jié)構(gòu)的設(shè)計質(zhì)量直接影響到數(shù)據(jù)庫中數(shù)據(jù)的使用效率。 本章將全面講述有關(guān)表的管理技術(shù)。,2020年9月22日,第3頁,本章要點(diǎn),設(shè)計表時應(yīng)該考慮
2、的因素 表的基本特點(diǎn)和類型 使用CREATE TABLE語句創(chuàng)建表 修改表的結(jié)構(gòu) 標(biāo)識符列的作用和特點(diǎn) 已分區(qū)表的作用和管理方式,2020年9月22日,第4頁,本章內(nèi)容,6.1 設(shè)計表時應(yīng)該考慮的因素 6.2 表的基本特點(diǎn)和類型 6.3 創(chuàng)建和修改表 6.4 已分區(qū)表 6.5 本章小結(jié),6.1 設(shè)計表時應(yīng)該考慮的因素,設(shè)計數(shù)據(jù)庫實(shí)際上就是設(shè)計數(shù)據(jù)庫中的表。在設(shè)計表時,要使用盡可能少的表數(shù)量,在達(dá)到設(shè)計要求的前提下,使每個表中包含的列的數(shù)量盡可能地少。合理的表結(jié)構(gòu),可以大大提高整個數(shù)據(jù)庫數(shù)據(jù)的查詢效率。 為了提高數(shù)據(jù)庫的效率,設(shè)計出高質(zhì)量的存儲數(shù)據(jù)的表,在設(shè)計表時,應(yīng)該從整體上考慮下面7個因素。
3、,2020年9月22日,第5頁,1. 因素一:考慮表將要存儲哪些數(shù)據(jù)對象,繪制出ER圖,ER圖是描述數(shù)據(jù)庫中所有實(shí)體以及實(shí)體之間關(guān)系的圖形,是輔助設(shè)計關(guān)系模型的工具。實(shí)際上,表就是關(guān)系模型,也對應(yīng)著模型中的實(shí)體,是存儲數(shù)據(jù)的對象。在設(shè)計表時,應(yīng)該綜合考慮這些問題:數(shù)據(jù)庫的目的是什么?數(shù)據(jù)庫中將要包含哪些數(shù)據(jù)?數(shù)據(jù)庫中應(yīng)該包含多少表?每一個表將要包含哪些數(shù)據(jù)?表和表之間是否存在關(guān)系?如果存在關(guān)系,那么存在什么樣的關(guān)系?對這個因素的深入思考,有助于創(chuàng)建合理、完整的表。,2020年9月22日,第6頁,2. 因素二:考慮表中將要包含的列以及這些列的數(shù)據(jù)類型、精度等屬性。,確定了表之后,就要確定表的內(nèi)容
4、。每一個表包含多個列,每一個列都有一個數(shù)據(jù)類型,數(shù)字?jǐn)?shù)據(jù)類型的列還需要確定列的精度和約度,這些都是設(shè)計表時必不可少的因素。數(shù)字列應(yīng)該使用數(shù)字?jǐn)?shù)據(jù)類型,字符列應(yīng)該使用字符數(shù)據(jù)類型,日期列應(yīng)該使用日期數(shù)據(jù)類型。對于數(shù)字列,需要認(rèn)真考慮其精度和約度,對于字符列,應(yīng)該考慮其是否使用定長字符列和字符長度??紤]這些因素的目標(biāo)是:使得表中的列的數(shù)量盡可能地少。如果列的數(shù)量過多,應(yīng)該考慮將該表分解成兩個表或多個表。,2020年9月22日,第7頁,3. 因素三:考慮列的屬性,例如哪些列允許空值,哪些列不允許空值,列允許空值,表示該列可以不包含任何的數(shù)據(jù),空值既不是數(shù)字0,也不是空字符,而是表示未知。如果允許列包
5、含空值,表示可以不為該列輸入具體的數(shù)據(jù);如果不允許列包含空值,在輸入數(shù)據(jù)時必須為該列提供數(shù)據(jù)。例如,在包含訂單的orders表中,訂單代碼、產(chǎn)品代碼、客戶代碼等列不允許空置,但是訂單描述列則可以包含空值??紤]這個因素的目標(biāo)是,盡可能地不使用允許空值的列,因?yàn)榭罩盗杏锌赡軒硪庀氩坏降牟樵冃Ч?。如果不得不允許某些列為空,那么應(yīng)該使得這些列的數(shù)量最少。,2020年9月22日,第8頁,4. 因素四:考慮表是否使用主鍵,如果使用則在何處使用主鍵,主鍵是唯一確定每一行數(shù)據(jù)的方式,是一種數(shù)據(jù)完整性對象。主鍵往往是一個列或多個列的組合。一個表中最多只能有一個主鍵。一般地,應(yīng)該為每一個表都指定主鍵,借此可以確
6、定行數(shù)據(jù)的唯一性。,2020年9月22日,第9頁,5. 因素五:考慮是否使用約束、默認(rèn)值、規(guī)則,以及在何處使用這些對象。,約束、默認(rèn)值、規(guī)則等都是數(shù)據(jù)完整性對象,用來確保表中的數(shù)據(jù)質(zhì)量。對表中數(shù)據(jù)的查詢操作,只能在滿足定義的約束、默認(rèn)值、規(guī)則等條件下,才能執(zhí)行成功。這些因素的考慮往往與表中數(shù)據(jù)的商業(yè)特性相關(guān)。,2020年9月22日,第10頁,6. 因素六:考慮是否使用外鍵,在何處使用外鍵,在ER圖中,需要繪制出實(shí)體之間的關(guān)系。在表的設(shè)計時,實(shí)體之間的關(guān)系需要借助主鍵外鍵對來實(shí)現(xiàn)。因此,該因素也是確保ER圖完整實(shí)施的一個重要內(nèi)容。只有通過這種關(guān)系,才能確保表和表之間強(qiáng)制的商業(yè)性關(guān)系。,2020年
7、9月22日,第11頁,7. 因素七:考慮是否使用索引,在何處使用索引,使用什么樣的索引?,索引也是一種數(shù)據(jù)庫對象,是加快對表中數(shù)據(jù)檢索的手段,是提高數(shù)據(jù)庫使用效率的一種重要方法。在哪些列上使用索引,在哪些列上不使用索引,是使用聚集索引,還是使用非聚集索引,是否使用全文索引,等等。對這些因素的認(rèn)真考慮和實(shí)現(xiàn),也是對表質(zhì)量的更高的要求。,2020年9月22日,第12頁,6.2 表的基本特點(diǎn)和類型,到底什么是表呢?數(shù)據(jù)庫中有多少種表呢?為何需要回答這些問題,本節(jié)將講述兩方面的內(nèi)容,首先分析和描述表的基本特點(diǎn),然后討論表的分類方式和表的類型。,2020年9月22日,第13頁,表的基本特點(diǎn),表是關(guān)系模型
8、中表示實(shí)體的方式,是用來組織和存儲數(shù)據(jù)、使之具有行列結(jié)構(gòu)的數(shù)據(jù)庫對象。一般而言,表具有下列一些基本特點(diǎn):代表實(shí)體、由行和列組成、行和列的順序是不重要的等等。 下面,詳細(xì)講述這些特點(diǎn)。,2020年9月22日,第14頁,表名必須唯一,在Microsoft SQL Server 2008系統(tǒng)的數(shù)據(jù)庫中,對指定的架構(gòu)來說,表名必須是唯一的,這是由系統(tǒng)強(qiáng)制性實(shí)現(xiàn)的。但是,如果為表指定了不同的架構(gòu),那么可以創(chuàng)建多個具有相同名稱的表。 例如,在一個數(shù)據(jù)庫中,可以創(chuàng)建兩個表employees,其中一個employees表的架構(gòu)所有者是Peter,另外一個employees表的架構(gòu)所有者是Hillary。當(dāng)引用
9、這些表時,區(qū)分的方法是在表名前面加上架構(gòu)所有者,即Peter.employees 和Hillary.employees。,2020年9月22日,第15頁,表的類型,在Microsoft SQL Server 2008系統(tǒng)中,按照表的作用,可以把表分為4種類型,即普通表、已分區(qū)表、臨時表和系統(tǒng)表。每一種類型的表都有自己的作用和特點(diǎn)。 普通表,又稱標(biāo)準(zhǔn)表,就是通常提到的作為數(shù)據(jù)庫中存儲數(shù)據(jù)的表,是最經(jīng)常使用的表的對象,也是最重要、最基本的表。普通表經(jīng)常簡稱為表。其他類型的表都是有特殊用途的表,它們往往是在特殊應(yīng)用環(huán)境下,為了提高系統(tǒng)的使用效率,派生出來的表。,2020年9月22日,第16頁,6.3
10、 創(chuàng)建和修改表,如果希望在數(shù)據(jù)庫中新增加表,如何執(zhí)行操作呢?如果希望修改已經(jīng)存在的表的結(jié)構(gòu),那么如何進(jìn)行修改呢? 本節(jié)將主要圍繞創(chuàng)建和修改表展開討論。內(nèi)容包括創(chuàng)建表、增加和刪除列、修改列的屬性、設(shè)置標(biāo)識符列、查看表的信息、刪除表等。,2020年9月22日,第17頁,創(chuàng)建表,在Microsoft SQL Server 2008系統(tǒng)中,可以使用CREATE TABLE語句或可視化的SQL Server Management Studio圖形工具來創(chuàng)建表。下面主要研究如何使用CREATE TABLE語句創(chuàng)建表。 CREATE TABLE語句是一種經(jīng)常使用的創(chuàng)建表的方法,也是一種最靈活、最強(qiáng)大的創(chuàng)建表
11、的方式。,2020年9月22日,第18頁,創(chuàng)建students表,2020年9月22日,第19頁,創(chuàng)建orders表,2020年9月22日,第20頁,在創(chuàng)建表中使用計算列,2020年9月22日,第21頁,使計算列中的數(shù)據(jù)物理化,2020年9月22日,第22頁,創(chuàng)建全局臨時表,2020年9月22日,第23頁,增加或刪除列,表創(chuàng)建之后,用戶可以根據(jù)需要使用ALTER TABLE語句修改表的結(jié)構(gòu)。在表中增加新列、刪除已有的列是修改表結(jié)構(gòu)時常見的操作。 當(dāng)用戶向表中增加一個新列時,Microsoft SQL Server為表中該列在已有數(shù)據(jù)的每一行中的相應(yīng)位置插入一個數(shù)據(jù)值。因此,向表中增加一個新列時
12、,最好為該列定義一個默認(rèn)約束,使該列有一個默認(rèn)值。如果該新列沒有默認(rèn)約束,并且表中已經(jīng)有了其他數(shù)據(jù),那么必須指定該新列允許空值,否則,系統(tǒng)將產(chǎn)生一個錯誤信息。,2020年9月22日,第24頁,在表中新增列,2020年9月22日,第25頁,新增列不允許空值時產(chǎn)生的錯誤消息,2020年9月22日,第26頁,刪除表中的列,2020年9月22日,第27頁,更改該列的數(shù)據(jù)類型,使用ALTER TABLE語句除了可以增加新列和刪除列之外,還可以對列的屬性進(jìn)行更改。本節(jié)主要講述如何更改列的數(shù)據(jù)類型。使用ALTER TABLE語句更該列的數(shù)據(jù)類型的基本語法形式如下所示: ALTER TABLE table_n
13、ame ALTER COLUMN column_name new_type_name,2020年9月22日,第28頁,更改空表中的列的數(shù)據(jù)類型,2020年9月22日,第29頁,更改非空表中的列的數(shù)據(jù)類型,2020年9月22日,第30頁,創(chuàng)建和修改標(biāo)識符列,標(biāo)識符列是唯一標(biāo)識表中每一行數(shù)據(jù)的符號。在Microsoft SQL Server 2008系統(tǒng)中,可以創(chuàng)建兩種類型的標(biāo)識符列,即IDENTITY列和ROWGUIDCOL列。下面,詳細(xì)研究這兩種標(biāo)識符列的創(chuàng)建和修改方式。,2020年9月22日,第31頁,IDENTITY,使用IDENTITY屬性的列是IDENTITY列,每一個表中最多只能有一
14、個IDENTITY列。定義IDENTITY屬性時需要指定兩個值:種子值和增量值。表中第一行的IDENTITY列的值是種子值,其他行IDENTITY列的值是在前一行的值的基礎(chǔ)上增加一個增量值得到的。 IDENTITY屬性的語法形式如下所示: IDENTITY (seed, increment),2020年9月22日,第32頁,創(chuàng)建具有IDENTITY屬性的表,2020年9月22日,第33頁,ROWGUIDCOL,ROWGUIDCOL列是全局唯一標(biāo)識符列。每一個表中最多允許創(chuàng)建一個ROWGUIDCOL列。從理論上來看,分布在Internet上的兩個不同的計算機(jī)中的ROWGUIDCOL列的值出現(xiàn)相同
15、的現(xiàn)象的概率是微乎其微的。在創(chuàng)建表時,可以使用UNIQUEIDENTIFIER數(shù)據(jù)類型定義ROWGUIDCOL列。,2020年9月22日,第34頁,創(chuàng)建具有ROWGUIDCOL列的表,2020年9月22日,第35頁,查看表的信息,表創(chuàng)建之后,可以使用許多函數(shù)、存儲過程查看有關(guān)表的各種信息。 COLUMNPROPERTY函數(shù)用于查看有關(guān)表中的列的信息,這些信息包括是否為空、是否是計算得到的列、是否具有IDENTITY屬性、是否ROWGUIDCOL列等。 sp_depends存儲過程用于查看指定表的依賴對象,這些依賴對象包括依賴于表的視圖、存儲過程等。 sp_help存儲過程用于查看有關(guān)表結(jié)構(gòu)的信
16、息。前面示例中已經(jīng)使用過該存儲過程,這里就不再重復(fù)了。,2020年9月22日,第36頁,刪除表,刪除表就是將表中數(shù)據(jù)和表的結(jié)構(gòu)從數(shù)據(jù)庫中永久性去除。表被刪除之后,就不能再恢復(fù)該表的定義。刪除表可以使用DROP TABLE語句來完成,該語句的語法形式如下: DROP TABLE table_name,2020年9月22日,第37頁,使用圖形工具執(zhí)行有關(guān)表的操作,在Microsoft SQL Server 2008系統(tǒng)中,可以使用可視化工具執(zhí)行有關(guān)表的操作,這些操作包括創(chuàng)建表、修改表的結(jié)構(gòu)、查看依賴關(guān)系、查看有關(guān)屬性信息等。,2020年9月22日,第38頁,6.4 已分區(qū)表,如果一個表中包含了大量
17、的、以多種不同方式使用的數(shù)據(jù),一般的查詢又不能按照預(yù)期的成本完成,就應(yīng)該考慮使用已分區(qū)表。已分區(qū)表是指按照數(shù)據(jù)水平方式分區(qū),將數(shù)據(jù)分布于一個數(shù)據(jù)庫的多個不同的文件組中。在對數(shù)據(jù)進(jìn)行查詢或更新時,這些已分區(qū)表將被視為獨(dú)立的邏輯單元。,2020年9月22日,第39頁,分區(qū)函數(shù)和分區(qū)方案,在對表進(jìn)行分區(qū)之前,必須考慮如何創(chuàng)建分區(qū)函數(shù)和分區(qū)方案。 分區(qū)函數(shù)定義如何根據(jù)某些列中的值將表中的數(shù)據(jù)行映射到一組分區(qū) 分區(qū)方案則將分區(qū)函數(shù)指定的分區(qū)映射到文件組中。,2020年9月22日,第40頁,6.5 本章小結(jié),本章詳細(xì)研究了表對象的管理特點(diǎn)。首先,分析了設(shè)計表時應(yīng)該考慮的主要因素,有效地確定這些因素可以提高表的設(shè)計質(zhì)量。其次,對表的基本特點(diǎn)、類型進(jìn)行了介紹。接下來,詳細(xì)研究了表的各種管理操作,包括創(chuàng)建表、修改表的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 長度計量員節(jié)假日后復(fù)工安全考核試卷含答案
- 項目管理考試題及答案
- 線性代數(shù)真題及答案
- 風(fēng)險管理實(shí)務(wù)與控制指導(dǎo)(標(biāo)準(zhǔn)版)
- 裝配鉗工春節(jié)假期安全告知書
- 2025年物流倉儲設(shè)備操作與維護(hù)手冊
- 風(fēng)險評估與應(yīng)對措施手冊
- 大學(xué)VF考試題及答案
- 2025年醫(yī)學(xué)影像技師專業(yè)資格及水平考核試題及答案解析
- 毒麻藥處方權(quán)試題及答案
- T-CPQS A0011-2022 二手車車況檢測及評估通則
- 吸毒的危害性后果
- 2025年湖南邵陽經(jīng)開貿(mào)易投資有限公司招聘12人筆試考試參考試題及答案解析
- 錄用通知(入職通知書)offer模板
- 畜禽屠宰加工工國家職業(yè)標(biāo)準(zhǔn)(征求意見稿)
- 倉儲內(nèi)部考核管理辦法
- 建筑工程交通導(dǎo)改與組織方案
- 醫(yī)療器械維修知識考核試題庫及答案
- 春天綠化養(yǎng)護(hù)知識培訓(xùn)
- 無人機(jī)基礎(chǔ)概論課程課件
- 數(shù)據(jù)中心消防培訓(xùn)課件
評論
0/150
提交評論