資源描述:
《數(shù)據(jù)庫和表的創(chuàng)建》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第2章數(shù)據(jù)庫和表的創(chuàng)建創(chuàng)建數(shù)據(jù)庫和表是Oracle10g最基本的工作,數(shù)據(jù)庫和表是Oracle用于組織和管理數(shù)據(jù)的對象。本章將講述數(shù)據(jù)庫、表的基本概念,以及創(chuàng)建數(shù)據(jù)庫和表的兩種方式。2.1基本概念Oracle是一種關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)。關(guān)系數(shù)據(jù)庫是按照二維表結(jié)構(gòu)方式組織的數(shù)據(jù)集合,每個表體現(xiàn)了集合理論中定義的數(shù)學(xué)概念──關(guān)系。2.1.1數(shù)據(jù)庫數(shù)據(jù)庫(Database)是一個數(shù)據(jù)容器,它包含了表、索引、視圖、過程、函數(shù)、包等對象,并對其進行統(tǒng)一的管理。2.1.1數(shù)據(jù)庫數(shù)據(jù)庫的內(nèi)部結(jié)構(gòu)表空間(TABLESPACE)表空間是數(shù)據(jù)庫
2、的邏輯劃分,一個表空間只屬于一個數(shù)據(jù)庫。下面是Oracle10g版本默認創(chuàng)建的主要表空間。SYSTEM表空間。SYSTEM表空間用于存放Oracle系統(tǒng)內(nèi)部表和數(shù)據(jù)字典的數(shù)據(jù)。SYSAUX表空間。SYSAUX表空間是Oracle10g新增加的表空間,主要存放Oracle系統(tǒng)內(nèi)部的常用樣例用戶的對象。UNDO表空間。UNDO表空間是存儲撤銷信息的表空間。USERS表空間。USERS表空間是Oracle系統(tǒng)建議用戶使用的表空間。TEMPORARY表空間。在Oracle數(shù)據(jù)庫中,臨時表空間主要供用戶臨時使用。除了Oracle系統(tǒng)默認創(chuàng)建的表空
3、間以外,用戶可以根據(jù)應(yīng)用系統(tǒng)的規(guī)模及其所要存放對象創(chuàng)建多個表空間,以區(qū)分用戶數(shù)據(jù)和系統(tǒng)數(shù)據(jù)。2.1.1數(shù)據(jù)庫數(shù)據(jù)庫的內(nèi)部結(jié)構(gòu)(2)表(TABLE)表是數(shù)據(jù)庫中存放用戶數(shù)據(jù)的對象。它包含一組固定的列。表中的列描述該表所跟蹤的實體的屬性,每個列都有一個名字和若干個屬性。表結(jié)構(gòu)的一個樣例如圖2.1所示除了Oracle系統(tǒng)默認創(chuàng)建的表空間以外,用戶可以根據(jù)應(yīng)用系統(tǒng)的規(guī)模及其所要存放對象創(chuàng)建多個表空間,以區(qū)分用戶數(shù)據(jù)和系統(tǒng)數(shù)據(jù)2.1.1數(shù)據(jù)庫1.數(shù)據(jù)庫的內(nèi)部結(jié)構(gòu)(3)約束條件(CONSTRAINT)可以為一個表列創(chuàng)建約束條件,此時,表中的每一行都
4、必須滿足約束條件定義所規(guī)定的條件。約束條件有以下5種。①主鍵(PrimaryKey):主鍵是表中的一列或多個列。②缺省(DEFAULT)約束條件:在表中插入一行數(shù)據(jù)但沒有為列指定值時生成一個在定義表時預(yù)先指定的值。③檢查(CHECK)約束條件:該約束條件確保指定列中的值符合一定的條件。④惟一性(UNIQUE)約束條件:用于保證應(yīng)具有惟一性而又不是主鍵的一部分的那些列的惟一性。⑤外鍵(ForeignKey)約束條件:該約束條件規(guī)定表間的關(guān)系性質(zhì)。2.1.1數(shù)據(jù)庫1.數(shù)據(jù)庫的內(nèi)部結(jié)構(gòu)(4)分區(qū)(PARTITION)在非常大的數(shù)據(jù)庫中,可以通
5、過把一個大表的數(shù)據(jù)分成多個小表來簡化數(shù)據(jù)庫的管理,這些小表稱作分區(qū)。(5)索引(INDEX)索引是幫助用戶在表中快速地找到記錄的數(shù)據(jù)庫結(jié)構(gòu),它既可以提高數(shù)據(jù)庫性能,又能夠保證列值的惟一性。(6)用戶(USER)用戶帳號雖然不是數(shù)據(jù)庫中的一個物理結(jié)構(gòu),但它與數(shù)據(jù)庫中的對象有著重要的關(guān)系,這是因為用戶擁有數(shù)據(jù)庫的對象。(7)方案(SCHEMA)用戶帳號擁有的對象集稱為用戶的方案(SCHEMA)。(8)同義詞為了給不同的用戶使用數(shù)據(jù)庫對象時提供一個簡單的、惟一標(biāo)識數(shù)據(jù)庫對象的名稱,可以為數(shù)據(jù)庫對象創(chuàng)建同義詞。(9)權(quán)限及角色(ROLE)為了訪
6、問其他帳號所有的對象,必須首先被授予訪問這個對象的權(quán)限。2.1.1數(shù)據(jù)庫1.數(shù)據(jù)庫的內(nèi)部結(jié)構(gòu)(10)段(SEGMENT)、盤區(qū)(EXTENT)和數(shù)據(jù)塊(DATABLOCK)依照不同的數(shù)據(jù)處理性質(zhì),可能需要在數(shù)據(jù)表空間內(nèi)劃分出不同區(qū)域,以存放不同數(shù)據(jù),將這些區(qū)域稱之為“段”(SEGMENT)。圖2.2說明了段、盤區(qū)和數(shù)據(jù)塊之間的關(guān)系。數(shù)據(jù)段數(shù)據(jù)段盤區(qū)數(shù)據(jù)塊2k2k2k2k數(shù)據(jù)表空間圖2.2段、盤區(qū)和數(shù)據(jù)塊之間的關(guān)系2.1.1數(shù)據(jù)庫數(shù)據(jù)庫外部結(jié)構(gòu)(1)數(shù)據(jù)文件(DATAFILE)每一個Oracle10g數(shù)據(jù)庫有一個或多個數(shù)據(jù)文件,而一個數(shù)據(jù)
7、文件只能屬于一個表空間。數(shù)據(jù)庫、表空間和數(shù)據(jù)文件之間的關(guān)系如圖2.3所示。圖2.3數(shù)據(jù)庫、表空間和數(shù)據(jù)文件之間的關(guān)系2.1.1數(shù)據(jù)庫(2)重做日志文件(REDOLOGFILES)除了數(shù)據(jù)文件外,最重要的Oracle10g數(shù)據(jù)庫實體檔案就是重做日志文件。(redologfiles)。Oracle保存所有數(shù)據(jù)庫事務(wù)的志。這些事務(wù)被記錄在聯(lián)機重做日志文件(OnlineRedoLogFile)中。當(dāng)數(shù)據(jù)庫中的數(shù)據(jù)遭到破壞時,可以用這些日志來恢復(fù)數(shù)據(jù)庫。(3)控制文件(CONTROLFILES)每個Oracle10g數(shù)據(jù)庫都有一個控制文件,用以記
8、錄與描述數(shù)據(jù)庫的外部結(jié)構(gòu)。它們包括:①Oracle10g數(shù)據(jù)庫名稱與建立時間。②數(shù)據(jù)文件與重置日志文件名稱及其所在位置。③日志記錄序列碼(logsequencenumber)。2.1.2表表是用來存儲和操作