您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 挑战资料库管理系统.
Page:1第2章關聯式資料庫系統Page:2大綱2.1前言2.2關聯式資料庫系統的基本術語2.3關聯式資料模型的運算模式2.4關聯式資料庫管理系統應具備的基本功能2.5資料庫管理師的主要工作Page:32.1前言Codd,E.F.於1970年首先提出了關聯式資料模型(RelationalDataModel)理論該模型植基於數學中的關連理論(RelationalTheory)關聯式資料模型的基本單位稱做值域(Domain),每一個值域可以表示一個企業的最基本資料項Page:42.1前言關聯式資料庫系統的基本觀念和術語關聯式資料庫管理系統關聯式資料庫資料表、檢視表索引、主鍵、外來鍵資料庫如何維繫資料的完整性和一致性關聯式運算維護資料庫安全交易管理與平(並)行控制資料備份與復原Page:52.2關聯式資料庫系統的基本術語一個典型的關聯式資料庫架構TableA1IndexA11TableA2IndexA21IndexA22資料庫ATableB1IndexB11TableB2IndexB21資料庫BIndexB22TableB3IndexB31關聯式資料庫管理系統(RelationalDataBasaeManagementSystem)IndexB23Page:62.2.1關聯式資料庫管理系統RDBMSRelationalDataBaseManagementSystemRDBMSOracleDB2MSSQLServerSybase資料庫教職員資料庫、學生學籍資料庫、圖書資料庫、人事資料庫、銷售資料庫、客服資料庫Page:72.2.1關聯式資料庫管理系統資料庫管理系統的主要功能提供便捷的方法讓使用者建立資料庫並管理資料管理各資料庫在電腦中的組織與架構管理資料庫物件確保資料的一致性及完整性管制資料庫的使用權限以維護資料安全決定存取資料的最佳化路徑保存資料庫存取及異動的歷史紀錄資料庫之備份與復原交易管理與並行控制Page:82.2.2資料庫(DataBase)資料庫是資料儲存在RDBMS裡的一種物件表格空間(Tablespace)資料表(BaseTable)索引(Index)資料表組成資料庫的最基本單位可以將資料表視為一個檔案不同公司所提供的RDBMS在設計上可能有些微差異;例如有的有表格空間,有的則沒有;然整體觀念上是極類似的Page:92.2.3資料表(BaseTable)資料表(BaseTable,或Table)或稱基底資料表是資料庫裡儲存資料的最基本單位可以將之視為資料檔資料表資料行資料列Page:102.2.3資料表(BaseTable)「資料行」(Column)又稱為欄位(Field)、屬性(Attribute)同一個資料行裡的資料都具有相同的屬性「資料列」(Row)又稱為記錄(Record)Page:112.2.3資料表(BaseTable)資料表、資料列、資料行及主鍵與外來鍵之關係Page:122.2.3資料表(BaseTable)EMP資料表擁有5個資料行EMP_NOEMP_NAMESEXSALARYDEPT_CODESEX資料行用來存放性別資訊,它的值域為{’男’,’女’}EMP_NAME資料行專門用來存放員工姓名,它的值域為{’張學友’,’張惠妹’,’永邦’,’王菲’,’伍百’,’SHE’}Page:132.2.3資料表(BaseTable)NULL(虛值)虛值不是空白,而是「未知,尚未確定」之意例如張惠妹是新進員工,還不確定要安置到哪一個部門,這時我們可以用虛值(NULL)來代替NOTNULL資料行必須有正確的資料值,不可為虛值例如EMP_NO和EMP_NAME兩欄位的值必須確定,不可為虛值在建立資料表時就必須宣告為NOTNULLPage:142.2.3資料表(BaseTable)資料行在資料表中的順序並沒有特別的意義因為我們查詢資料時可以輕易地指定資料行的輸出順序SELECTEMP_NO,EMP_NAME表示EMP_No在EMP_NAME之前SELECTEMP_NAME,EMP_NO表示EMP_No在EMP_NAME之後Page:152.2.3資料表(BaseTable)「資料列」(Row)又稱為記錄(Record)資料列在資料表中的順序並沒有特別的意義,因為我們查詢資料時可以輕易地指定資料列的輸出順序先印出男生後印出女生按薪資遞減順序列印Page:162.2.4索引(Index)建立好資料表之後接著也要跟著建立適當之索引(Index)建立索引的目的是為了加快存取資料之速度哪些資料行須建索引主鍵(PrimaryKey)外來鍵(ForeignKey)經常需要用來當作查詢條件的欄位索引鍵之順序遞增(Ascending)遞減(Descending)Page:172.2.4索引(Index)適當的索引可以縮短存取資料表的時間資料量越大,索引的效益越明顯不當的索引反而會增加新增資料、修改資料、刪除資料所須的時間因為這些異動也須要一併去更新索引,索引太多反而耗時常用的索引技術有B樹索引(B-treeIndex)雙向連結串列(Doubly-LinkedList)Page:182.2.5鍵(Key)的種類「鍵(Key)」可以用來唯一(Unique)識別出資料表中某一筆記錄的欄位或欄位組合稱之鍵的種類:候選鍵(CandidateKey)替代鍵(AlternateKey)主鍵(PrimaryKey)組合鍵(CompositeKey)外來鍵(ForeignKey)Page:192.2.5鍵(Key)的種類候選鍵(CandidateKey)所有可能被選為主鍵的鍵稱之替代鍵(AlternateKey)候選鍵中未被選為主鍵者均稱為替代鍵Page:202.2.5鍵(Key)的種類主鍵(PrimaryKey,PK)又稱為主要鍵從眾多候選鍵中挑選其中一個為該資料表的主鍵在建立資料表時用「PRIMARYKEY」來宣告主鍵主鍵之鍵值不可為虛值(NullValue)對資料表中紀錄之異動或查詢通常是以主鍵行之Page:212.2.5鍵(Key)的種類主鍵(PrimaryKey)SEX、SALARY及DEPT_CODE等3個資料行都無法用來識別出唯一的一筆記錄,因此不能當作「鍵(Key)」EMP_NO和EMP_NAME資料行的都可以用來識別出唯一的一筆記錄,兩者皆為候選鍵因可能會出現同姓同名的員工,所以我們選擇EMP_NO為主鍵(PK)Page:222.2.5鍵(Key)的種類組合鍵(CompositeKey)又稱為連結鍵(ConcatenatedKey),由多個屬性所組合而成的鍵稱之(Ono,Pno)為一個組合鍵,因為它可以決定出唯一的一筆記錄只要決定了訂單序號和產品代號,就可決定出訂購數量OnoPnoAmount訂單序號產品代號訂購數量1P01201P0252P01302P031003P03200Page:232.2.5鍵(Key)的種類外來鍵(ForeignKey,FK)A資料表的欄位(假設A3),其欄位值是源自於B資料表(也可能源自於同一張資料表)的某一欄位值(假設B1),則我們稱A3這個欄位為「外來鍵(FK)」。Page:242.2.5鍵(Key)的種類外來鍵(ForeignKey,FK)「外來鍵」用來建立起欄位間的「參照(考)」關係。被A3參照(考)的B1資料行通常是該資料表的主鍵(PK)。A3資料行的欄位值是參照(考)B1資料行而來,因此A3與B1都具有相同的屬性定義。A3資料行的欄位值如果不是虛值,那麼就必須存在(包含)於B1資料行中。Page:252.2.5鍵(Key)的種類外來鍵(ForeignKey,FK)參考圖2.2,對於EMP資料表而言,它是以EMP_NO為主鍵(PK),而以DEPT_CODE為外來鍵(FK)。就DEPT資料表來看,它以DEPT_CODE為主鍵,並且這個主鍵又被EMP資料表的DEPT_CODE所參考。Page:262.2.5鍵(Key)的種類外來鍵(ForeignKey,FK)藉由A、B兩張資料表間之合併(Join,或稱聯結)運算便能同時從A、B兩張資料表擷取資料。合併(聯結)運算是在SQL的SELECT…WHERE子句中下達「A.A3=B.B1」或「B.B1=A.A3」之條件行之(請參考7.10.10節)。例如:我們可以用SELECT…WHEREEMP.DEPT_CODE=DEPT.DEPT_CODE來合併EMP和DEPT兩張資料表。我們需要對外來鍵建立索引,以加快合併運算的執行速度。Page:272.2.6資料完整性(DataIntegrity)的限制完整性法則(IntegrityRule)確保資料的完整性和一致性,可以避免因新增、修改、刪除資料所引起之異常現象個體完整性(EntityIntegrity)作用在單一資料表值域完整性(DomainIntegrity)作用在單一資料表參照完整性(ReferentialIntegrity)作用在兩張資料表使用者定義完整性(UserDefineIntegrity)作用在一張、兩張或數張資料表Page:282.2.6資料完整性(DataIntegrity)的限制個體完整性(EntityIntegrity)作用在單一資料表主鍵必須能識別出唯一的資料列,因此主鍵之鍵值不可為虛值若主鍵是由多個欄位連結而成的組合鍵,則每一個欄位值都不可為虛值在建立資料表時可以將某欄位為PRIMARYKEY來確保個體完整性和唯一性在建立索引時可以宣告某欄位為UNIQUEINDEX來確保個體的唯一性Page:292.2.6資料完整性(DataIntegrity)的限制值域完整性(DomainIntegrity)作用在單一資料表限制某欄位之值必須在某一限制範圍或限制某欄位之值必須受某些條件之約束規定員工之性別(SEX)不是’男’就是’女’,不可以是虛值或其他值規定每一位員工的薪資(SALARY)必須介於20000元與150000元之間建立資料表時可以用CHECK來設定條件約束(Constraint)Page:302.2.6資料完整性(DataIntegrity)的限制參照完整性(ReferentialIntegrity)作用在兩張資料表參照完整性乃藉由「主鍵」與「外來鍵」的關係來規範兩資料表間資料的完整性例如:規定EMP資料表的DEPT_CODE欄位值必須存在於DEPT資料表的DEPT_CDE欄裡,如此可降低EMP資料表的DEPT_CODE欄位值輸入錯誤的機會,也可以保持EMP與DEPT資料表間DEPT_CODE資料之完整EMP資料表DEPT資料表Page:312.2.6資料完整性(DataIntegrity)的限制使用者定義完整性(UserDefineIntegrity)依據使用者的實際需求或商業邏輯來規範「單一資料表內」或「兩張資料表間」的資料完整性。例如:某圖書館規定若有借書逾期歸還情形,則一個月之內不得再借書。又如某公司規定筆記型電腦的使用年限為4年,滿4年後才可辦理報廢。以上這些商業邏輯均屬於使用者定義的完整性,我們可以透過條件約束(Constraint)、預存程序(StoredProcedure)、觸發程序(Trigger)的設計來達成。Page:322.2.7檢視表(View)檢視表(ViewTable)用視界(View)所定義的表格稱之檢視表是一個虛擬表格當它被使用時DBMS才從系統資料表裡找出檢視表之定義,然後臨時從一個或數個資料表(或檢視表)上擷取部分資料,重新組合後得到一個暫時性的表格Page:332.2.7檢視表(View)資料表與檢視表F11F12F13a1b1c1a2b2c2a3b3c3a4b4c4a5b
本文标题:挑战资料库管理系统.
链接地址:https://www.777doc.com/doc-3660037 .html