《數(shù)據(jù)庫原理》數(shù)據(jù)庫技術(shù)與應(yīng)用
《《數(shù)據(jù)庫原理》數(shù)據(jù)庫技術(shù)與應(yīng)用》由會員分享,可在線閱讀,更多相關(guān)《《數(shù)據(jù)庫原理》數(shù)據(jù)庫技術(shù)與應(yīng)用(54頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、數(shù)據(jù)庫技術(shù)與應(yīng)用 Visual FoxPro 6.0篇 鄭州輕院民族學(xué)院 2021/4/17 目 錄 第 2章 Visual FoxPro 6.0基礎(chǔ) 第 3章 項目管理器 第 4章 創(chuàng)建數(shù)據(jù)庫和表 第 5章 表的基本操作 第 6章 索引和排序 第 7章 多表操作 第 8章 查詢與視圖 第 1章 數(shù)據(jù)庫基本原理 2021/4/17 第 9章 結(jié)構(gòu)化查詢語言 SQL 第 10章 報表設(shè)計 第 11章 程序設(shè)計基礎(chǔ) 第 12章 程序設(shè)計 第 13章 表單設(shè)計 第 14章 菜單設(shè)計 第 15章 應(yīng)用程序的生成與發(fā)布 目 錄 2021/4/17 第 1章 數(shù)據(jù)庫基本原理 信息在現(xiàn)代社會和經(jīng)濟發(fā)展中所起
2、的作用越來越大 , 信息資源的開發(fā)和利 用水平已成為衡量一個國家綜合國力的重要標(biāo)志之一 。 在計算機的三大主要應(yīng) 用領(lǐng)域 ( 科學(xué)計算 、 數(shù)據(jù)處理和過程控制 ) 中 , 數(shù)據(jù)處理是計算機應(yīng)用的主要 方面 。 數(shù)據(jù)庫技術(shù)就是作為數(shù)據(jù)處理中的一門技術(shù)而發(fā)展起來的 。 數(shù)據(jù)處理是指對各種形式的數(shù)據(jù)進行收集 、 存儲 、 加工和傳播的一系列活 動的總和 。 其目的之一是從大量的 、 原始的數(shù)據(jù)中抽取 、 推導(dǎo)出對人們有價值 的信息以作為行動和決策的依據(jù);目的之二是為了借助計算機科學(xué)地保存和管 理復(fù)雜的 、 大量的數(shù)據(jù) , 以便人們能夠方便而充分地利用這些寶貴的信息資源 。 數(shù)據(jù)庫技術(shù)所研究的問題就是
3、如何科學(xué)地組織和存儲數(shù)據(jù) , 如何高效地獲 取和處理數(shù)據(jù) 。 數(shù)據(jù)庫技術(shù)作為數(shù)據(jù)管理的主要技術(shù)目前已廣泛應(yīng)用于各個領(lǐng) 域 , 數(shù)據(jù)庫系統(tǒng)已成為計算機系統(tǒng)的重要組成部分 。 數(shù)據(jù)庫技術(shù) 數(shù)據(jù)模型 關(guān)系數(shù)據(jù)庫 2021/4/17 數(shù)據(jù)庫發(fā)展與應(yīng)用 數(shù)據(jù)庫的應(yīng)用已越來越廣泛。從小型的單項事 務(wù)處理系統(tǒng)到大型復(fù)雜的信息系統(tǒng)大都用先進 的數(shù)據(jù)庫技術(shù)來保持系統(tǒng)數(shù)據(jù)的整體性、完整 性和共享性。 1)電腦抽獎 : 采用數(shù)據(jù)庫技術(shù) ,不必修改程序 ,只變 更獎項設(shè)置 ,即可應(yīng)用于不同的抽獎活動 。 2)招生考試 : 通過對數(shù)據(jù)庫排序和索引 ,完成考生 按志愿從高分到低分排列 ,根據(jù)學(xué)校招生計劃錄取 , 錄滿為止
4、 。 3)銀行儲蓄 : 為每個用戶建立能夠唯一識別的帳戶 , 同時記錄用戶的往來明細 ,做到存儲量大 ,運算速度 快 ,準(zhǔn)確程度高 。 2021/4/17 數(shù)據(jù)庫技術(shù)產(chǎn)生于 20世紀(jì) 60年代末 70年代初 , 其主要目的是有效地管理和 存取大量的數(shù)據(jù)資源 。 數(shù)據(jù)庫技術(shù)主要研究如何存儲 、 使用和管理數(shù)據(jù) , 是計 算機數(shù)據(jù)管理技術(shù)發(fā)展的新階段 。 近年來 , 數(shù)據(jù)庫技術(shù)和計算機網(wǎng)絡(luò)技術(shù)的發(fā)展相互滲透 、 相互促進 , 已成 為當(dāng)今計算機領(lǐng)域發(fā)展迅速 、 應(yīng)用廣泛的兩大領(lǐng)域 。 數(shù)據(jù)庫技術(shù)不僅應(yīng)用于事 務(wù)處理 , 并且進一步應(yīng)用到情報檢索 、 人工智能 、 專家系統(tǒng) 、 計算機輔助設(shè)計 等領(lǐng)
5、域 。 1.1 數(shù)據(jù)庫技術(shù) 數(shù)據(jù)庫的基本概念 數(shù)據(jù)管理技術(shù)的發(fā)展 數(shù)據(jù)庫系統(tǒng)的組成 2021/4/17 數(shù)據(jù)庫技術(shù)涉及到許多基本概念 , 主要包括:數(shù)據(jù) 、 數(shù)據(jù)處理 、 數(shù)據(jù)庫 、 數(shù)據(jù)庫管理系統(tǒng) 以及 數(shù)據(jù)庫系統(tǒng) 等 。 1.數(shù)據(jù) 數(shù)據(jù)是指存儲在某一種媒體上能夠識別的物理符號 。 數(shù)據(jù)的概念包括兩個 方面:其一是描述事物特性的數(shù)據(jù)內(nèi)容;其二是存儲在某一種媒體上的數(shù)據(jù)形 式 。 由于描述事物特性必須借助一定的符號 , 這些符號就是數(shù)據(jù)形式 。 數(shù)據(jù)形 式可以是多種多樣的 , 例如某人的出生日期是 “ 1964年 2月 17日 ” , 當(dāng)然也可以 將該形式改寫為 “ 02/17/64”, 但其
6、含義并沒有改變 。 數(shù)據(jù)的概念在數(shù)據(jù)處理領(lǐng)域已經(jīng)大大地拓寬了 。 數(shù)據(jù)不僅僅指數(shù)字 、 字母 、 文字和其他特殊字符組成的文本形式的數(shù)據(jù) , 而且還包括圖形 、 圖像 、 動畫 、 影像 、 聲音 ( 包括語音 、 音樂 ) 等多媒體數(shù)據(jù) 。 1.1.1 數(shù)據(jù)庫的基本概念 2021/4/17 2.數(shù)據(jù)處理 數(shù)據(jù)處理是指對各種形式的數(shù)據(jù)進行收集 、 存儲 、 加工和傳播的一系列活動的總 和 。 其目的之一是從大量的 、 原始的數(shù)據(jù)中抽取 、 推導(dǎo)出對人們有價值的信息以作為 行動和決策的依據(jù);目的之二是為了借助計算機科學(xué)地保存和管理復(fù)雜的 、 大量的數(shù) 據(jù) , 以便人們能夠方便而充分地利用這些寶貴
7、的信息資源 。 3.數(shù)據(jù)庫 數(shù)據(jù)庫可以直觀地理解為存放數(shù)據(jù)的倉庫 。 只不過這個倉庫是在計算機的大容量 存儲器上 , 例如硬盤就是一種最常見的計算機大容量存儲設(shè)備 。 而且數(shù)據(jù)必須按一定 的格式存放 , 因為它不僅需要存放 , 而且還要便于查找 。 所以可以認為數(shù)據(jù)是被長期存放在計算機內(nèi) 、 有組織的 、 可以表現(xiàn)為多種形式的 可共享的數(shù)據(jù)集合 。 數(shù)據(jù)庫技術(shù)使數(shù)據(jù)能按一定格式組織 、 描述和存儲 , 且具有較小 的冗余度 , 較高的數(shù)據(jù)獨立性和易擴展性 , 并可為多個用戶所共享 。 人們總是盡可能地收集各種各樣的數(shù)據(jù) , 然后對它們進行加工 , 目的是要從這些 數(shù)據(jù)中得到有用的信息 。 在社
8、會飛速發(fā)展的今天 , 人們接觸的事物越來越多 , 反映這 些事物的數(shù)據(jù)量也急劇增加 。 過去人們手工管理和處理數(shù)據(jù) , 現(xiàn)在借助計算機來保存 和管理復(fù)雜的大量數(shù)據(jù) , 這樣就可能方便而充分地利用這些寶貴的數(shù)據(jù)資源 , 數(shù)據(jù)庫 技術(shù)正是由于這一需求驅(qū)動而發(fā)展起來的一種計算機軟件技術(shù) 。 2021/4/17 4.數(shù)據(jù)庫管理系統(tǒng) 數(shù)據(jù)庫管理系統(tǒng) ( DataBase Management System, 簡稱 DBMS) 是計算機系統(tǒng)軟 件 , 它的職能是有效地組織和存儲數(shù)據(jù) 、 獲取和管理數(shù)據(jù) , 接受和完成用戶提出的訪 問數(shù)據(jù)的各種請求 。 數(shù)據(jù)庫管理系統(tǒng)主要功能包括以下幾個方面: ( 1) 數(shù)
9、據(jù)定義功能 DBMS提供了數(shù)據(jù)定義語言 DDL( Data Definition Language) , 用戶通過它可以 方便地對數(shù)據(jù)庫中的相關(guān)內(nèi)容進行定義 。 例如 , 對數(shù)據(jù)庫 、 表 、 索引進行定義 。 ( 2) 數(shù)據(jù)操縱功能 DBMS提供了數(shù)據(jù)操縱語言 DML( Data Manipulation Language) , 用戶通過它可 以實現(xiàn)對數(shù)據(jù)庫的基本操作 。 例如 , 對表中數(shù)據(jù)的查詢 、 插入 、 刪除和修改 。 ( 3) 數(shù)據(jù)庫運行控制功能 這是 DBMS的核心部分 , 它包括并發(fā)控制 ( 即處理多個用戶同時使用某些數(shù)據(jù)時 可能產(chǎn)生的問題 ) 、 安全性檢查 、 完整性約束
10、條件的檢查和執(zhí)行 、 數(shù)據(jù)庫的內(nèi)部維護 ( 例如 , 索引的自動維護 ) 等 。 所有數(shù)據(jù)庫的操作都要在這些控制程序的統(tǒng)一管理下 進行 , 以保證數(shù)據(jù)的安全性 、 完整性以及多個用戶對數(shù)據(jù)庫的并發(fā)使用 。 2021/4/17 ( 4) 數(shù)據(jù)庫的建立和維護功能 數(shù)據(jù)庫的建立和維護功能包括數(shù)據(jù)庫初始數(shù)據(jù)的輸入 、 轉(zhuǎn)換功能 , 數(shù)據(jù) 庫的轉(zhuǎn)儲 、 恢復(fù)功能 , 數(shù)據(jù)庫的重新組織功能和性能監(jiān)視 、 分析功能等 。 這 些功能通常是由一些實用程序完成的 。 它是數(shù)據(jù)庫管理系統(tǒng)的一個重要組成 部分 。 5.數(shù)據(jù)庫系統(tǒng) 數(shù)據(jù)庫系統(tǒng)是指擁有數(shù)據(jù)庫技術(shù)支持的計算機系統(tǒng) , 它可以實現(xiàn)有組織 地 、 動態(tài)地存儲
11、大量相關(guān)數(shù)據(jù) , 提供數(shù)據(jù)處理和信息資源共享服務(wù) 。 數(shù)據(jù)庫 系統(tǒng)不僅包括數(shù)據(jù)本身 , 即實際存儲在計算機中的數(shù)據(jù) , 還包括相應(yīng)的硬件 、 軟件和各類人員 。 DBS=DB + DBMS + 硬件 + 相應(yīng)軟件 + DBA + 用戶 2021/4/17 計算機對數(shù)據(jù)的管理是指對數(shù)據(jù)的組織 、 分類 、 編碼 、 存儲 、 檢索 和維護提供操作手段 。 與其他技術(shù)的發(fā)展一樣 , 計算機數(shù)據(jù)管理也經(jīng)歷了由低級到高級的 發(fā)展過程 。 計算機數(shù)據(jù)管理隨著計算機硬件 、 軟件技術(shù)和計算機應(yīng)用范 圍的發(fā)展而不斷發(fā)展 , 多年來大致經(jīng)歷了如下三個階段: l 人工管理階段 l 文件系統(tǒng)階段 l 數(shù)據(jù)庫系統(tǒng)階
12、段 1.1.2 數(shù)據(jù)管理技術(shù)的發(fā)展 2021/4/17 應(yīng)用程序 A1 應(yīng)用程序 A2 應(yīng)用程序 An 數(shù)據(jù)集 S1 數(shù)據(jù)集 S2 數(shù)據(jù)集 Sn 圖 1-1 數(shù)據(jù)的人工管理 1.人工管理階段 20世紀(jì) 50年代以前 , 計算機主要用于數(shù)值計算 。 從當(dāng)時的硬件看 , 外存 只有紙帶 、 卡片 、 磁帶 , 沒有直接存取設(shè)備;從軟件看 ( 實際上 , 當(dāng)時還未 形成軟件的整體概念 ) , 沒有操作系統(tǒng)及管理數(shù)據(jù)的軟件;從數(shù)據(jù)看 , 數(shù)據(jù) 量小 , 數(shù)據(jù)無結(jié)構(gòu) , 由用戶直接管理 , 且數(shù)據(jù)間缺乏邏輯組織 , 數(shù)據(jù)依賴于 特定的應(yīng)用程序 , 缺乏獨立性 。 2021/4/17 2.文件系統(tǒng)階段 2
13、0世紀(jì) 50年代后期到 20世紀(jì) 60年代中期 , 出現(xiàn)了磁鼓 、 磁盤等直接存取數(shù)據(jù)的存 儲設(shè)備 。 1954年出現(xiàn)了第一臺商業(yè)數(shù)據(jù)處理的電子計算機 UNIVACI, 標(biāo)志著計算機開 始應(yīng)用于以加工數(shù)據(jù)為主的事務(wù)處理 。 人們得益于計算機驚人的處理速度和大容量的 存儲能力 , 從而解脫了從大量傳統(tǒng)紙張文件中尋找數(shù)據(jù)的困難 , 這種基于計算機的數(shù) 據(jù)處理系統(tǒng)也就從此迅速發(fā)展起來 。 這種數(shù)據(jù)處理系統(tǒng)是把計算機中的數(shù)據(jù)組織成相互獨立的數(shù)據(jù)文件 , 系統(tǒng)可以按 照文件的名稱對其進行訪問 , 對文件中的記錄進行存取 , 并可以實現(xiàn)對文件的修改 、 插入和刪除 , 這就是文件系統(tǒng) 。 文件系統(tǒng)實現(xiàn)了記
14、錄內(nèi)的結(jié)構(gòu)化 , 即給出了記錄內(nèi)各 種數(shù)據(jù)間的關(guān)系 。 但是 , 文件從整體來看卻是無結(jié)構(gòu)的 。 其數(shù)據(jù)面向特定的應(yīng)用程序 , 因此數(shù)據(jù)共享性 、 獨立性差 , 且冗余度大 , 管理和維護的代價也很大 。 應(yīng)用程序 A1 應(yīng)用程序 A2 應(yīng)用程序 An 數(shù)據(jù)集 S1 數(shù)據(jù)集 S2 數(shù)據(jù)集 Sn 文件 系統(tǒng) 圖 1-2 數(shù)據(jù)的文件系統(tǒng) 2021/4/17 3.數(shù)據(jù)庫系統(tǒng)階段 20世紀(jì) 60年代后期 , 計算機性能得到提高 , 更重要的是出現(xiàn)了大容量磁盤 , 存儲 容量大大增加且價格下降 。 在此基礎(chǔ)上 , 有可能克服文件系統(tǒng)管理數(shù)據(jù)時的不足 , 而 去滿足和解決實際應(yīng)用中多個用戶 , 多個應(yīng)用程
15、序共享數(shù)據(jù)的要求 , 從而使數(shù)據(jù)能為 盡可能多的應(yīng)用程序服務(wù) , 這就出現(xiàn)了數(shù)據(jù)庫這樣的數(shù)據(jù)管理技術(shù) 。 數(shù)據(jù)庫的特點是 數(shù)據(jù)不再只針對某一特定應(yīng)用 , 而是面向全組織 , 具有整體的結(jié)構(gòu)性 , 共享性高 , 因 此冗余度小 , 具有一定的程序與數(shù)據(jù)間的獨立性 , 并且實現(xiàn)了對數(shù)據(jù)進行統(tǒng)一的控制 。 應(yīng)用程序 A1 應(yīng)用程序 A2 應(yīng)用程序 An 數(shù) 據(jù) 庫 數(shù)據(jù)庫 管理系統(tǒng) 圖 1-3 數(shù)據(jù)的數(shù)據(jù)庫系統(tǒng) 從文件系統(tǒng)到數(shù)據(jù)庫系統(tǒng) , 標(biāo)志著數(shù)據(jù)管理技術(shù)質(zhì)的飛躍 。 20世紀(jì) 80年代后不僅 在大 、 中型機上實現(xiàn)并應(yīng)用了數(shù)據(jù)庫管理系統(tǒng) , 即使在微型計算機上也配置了經(jīng)過功 能簡化的數(shù)據(jù)庫管理系
16、統(tǒng) ( 例如 , Visual FoxPro等 ) , 使數(shù)據(jù)庫技術(shù)得到廣泛的應(yīng)用 和普及 。 2021/4/17 數(shù)據(jù)庫系統(tǒng)由四部分組成: 硬件系統(tǒng) 、 系統(tǒng)軟件 ( 包括操作系統(tǒng)和數(shù)據(jù)庫 管理系統(tǒng) ) 、 數(shù)據(jù)庫應(yīng)用系統(tǒng) 和 各類人員 。 1.1.3 數(shù)據(jù)庫系統(tǒng)的組成 數(shù)據(jù)庫應(yīng)用系統(tǒng) 圖 1-4 數(shù)據(jù)的數(shù)據(jù)庫系統(tǒng) 數(shù)據(jù)庫管理系統(tǒng) 操作系統(tǒng) 硬件 2021/4/17 1.硬件系統(tǒng) 由于一般數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)量很大 , 加之 DBMS豐富的強有力的功能使得自身的體 積就很大 , 因此整個數(shù)據(jù)庫系統(tǒng)對硬件資源提出了較高的要求 , 這些要求是: ( 1) 有足夠大的內(nèi)存以存放操作系統(tǒng) 、 DBMS的核
17、心模塊 、 數(shù)據(jù)緩沖區(qū)和應(yīng)用 程序 。 ( 2) 有足夠大的直接存取設(shè)備存放數(shù)據(jù) ( 例如 , 磁盤 ) , 有足夠的其它存儲設(shè) 備來進行數(shù)據(jù)備份 。 ( 3) 要求計算機有較高的數(shù)據(jù)傳輸能力 , 以提高數(shù)據(jù)傳送率 。 2.系統(tǒng)軟件 系統(tǒng)軟件主要包括操作系統(tǒng) 、 數(shù)據(jù)庫管理系統(tǒng) 、 與數(shù)據(jù)庫接口的高級語言及其編 譯系統(tǒng)和以 DBMS為核心的應(yīng)用開發(fā)工具 。 操作系統(tǒng)是計算機系統(tǒng)必不可少的系統(tǒng)軟件 , 也是支持 DBMS運行必不可少的系 統(tǒng)軟件 。 數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)不可或缺的系統(tǒng)軟件 , 它提供數(shù)據(jù)庫的建立 、 使用 和維護功能 。 一般來講 , 數(shù)據(jù)庫管理系統(tǒng)的數(shù)據(jù)處理能力較弱 ,
18、所以需要提供與數(shù)據(jù)庫接口的 高級語言及其編譯系統(tǒng) , 以便于開發(fā)應(yīng)用程序 。 2021/4/17 以 DBMS為核心的應(yīng)用開發(fā)工具 。 應(yīng)用開發(fā)工具是系統(tǒng)為應(yīng)用開發(fā)人員和最終用 戶提供的高效率 、 多功能的應(yīng)用生成器 、 第四代語言等各種軟件工具 。 例如 , 報表設(shè) 計器 、 表單設(shè)計器等 。 它們?yōu)閿?shù)據(jù)庫系統(tǒng)的開發(fā)和應(yīng)用提供了有力的支持 。 當(dāng)前開發(fā) 工具已成為數(shù)據(jù)庫軟件的有機組成部分 。 3.數(shù)據(jù)庫應(yīng)用系統(tǒng) 數(shù)據(jù)庫應(yīng)用系統(tǒng)是為特定應(yīng)用開發(fā)的數(shù)據(jù)庫應(yīng)用軟件 。 數(shù)據(jù)庫管理系統(tǒng)為數(shù)據(jù)的 定義 、 存儲 、 查詢和修改提供支持 , 而數(shù)據(jù)庫應(yīng)用系統(tǒng)是對數(shù)據(jù)庫中的數(shù)據(jù)進行處理 和加工的軟件 ,
19、它面向特定應(yīng)用 。 例如 , 基于數(shù)據(jù)庫的各種管理軟件:管理信息系統(tǒng) 、 決策支持系統(tǒng)和辦公自動化等都屬于數(shù)據(jù)庫應(yīng)用系統(tǒng) 。 4.各類人員 參與分析 、 設(shè)計 、 管理 、 維護和使用數(shù)據(jù)庫的人員均是數(shù)據(jù)庫系統(tǒng)的組成部分 。 他們在數(shù)據(jù)庫系統(tǒng)的開發(fā) 、 維護和應(yīng)用中起著重要的作用 。 分析 、 設(shè)計 、 管理和使用 數(shù)據(jù)庫系統(tǒng)的人員主要是:數(shù)據(jù)庫管理員 、 系統(tǒng)分析員 、 應(yīng)用程序員和最終用戶 。 ( 1) 數(shù)據(jù)庫管理員 ( DataBase Administrator, 簡稱 DBA) 數(shù)據(jù)庫是整個企業(yè)或組織的數(shù)據(jù)資源 , 因此企業(yè)或組織設(shè)立了專門的數(shù)據(jù)資源管 理機構(gòu)來管理數(shù)據(jù)庫 , 數(shù)據(jù)庫
20、管理員則是這個機構(gòu)的一組人員 , 負責(zé)全面管理和控制 數(shù)據(jù)庫系統(tǒng) 。 具體的職責(zé)包括: 2021/4/17 l 決定數(shù)據(jù)庫的數(shù)據(jù)內(nèi)容和結(jié)構(gòu):數(shù)據(jù)庫中要存放哪些數(shù)據(jù) , 是由系統(tǒng)需求來決定的 。 為了更好地對數(shù)據(jù)庫系統(tǒng)進行有效的管理和維護 , DBA應(yīng)該參加或了解數(shù)據(jù)庫設(shè)計的全過 程 , 并與最終用戶 、 應(yīng)用程序員 、 系統(tǒng)分析員密切合作共同協(xié)商 , 搞好數(shù)據(jù)庫設(shè)計 。 l 決定數(shù)據(jù)庫的存儲結(jié)構(gòu)和存取策略: DBA要綜合最終用戶的應(yīng)用要求 , 和數(shù)據(jù)庫設(shè) 計人員共同決定數(shù)據(jù)庫的存儲策略以求獲得較高的存取效率和存儲空間利用率 。 l 定義數(shù)據(jù)的安全性要求和完整性約束條件: DBA的重要職責(zé)是保證
21、數(shù)據(jù)庫的安全性 和完整性 , 即數(shù)據(jù)不被非法用戶所獲得 , 并且保證數(shù)據(jù)庫中數(shù)據(jù)的正確性和數(shù)據(jù)間的相容 性 。 因此 DBA負責(zé)確定各個最終用戶對數(shù)據(jù)庫的存取權(quán)限 , 數(shù)據(jù)的保密級別和完整性約束 條件 。 l 監(jiān)控數(shù)據(jù)庫的使用和運行: DBA還有一個重要職責(zé)就是監(jiān)視數(shù)據(jù)庫系統(tǒng)的運行情況 , 及時處理運行過程中出現(xiàn)的問題 。 當(dāng)系統(tǒng)發(fā)生某些故障時 , 數(shù)據(jù)庫中的數(shù)據(jù)會因此遭到不 同程度的破壞 , DBA必須在最短時間內(nèi)將數(shù)據(jù)庫恢復(fù)到某種一致狀態(tài) , 并盡可能不影響或 少影響計算機系統(tǒng)其它部分的正常運行 。 為此 , DBA要定義和實施適當(dāng)?shù)暮笤突謴?fù)策略 。 例如 , 采用周期性的轉(zhuǎn)儲數(shù)據(jù)和維護
22、日志文件等方法 。 l 數(shù)據(jù)庫的改進和重組: DBA還負責(zé)在系統(tǒng)運行期間監(jiān)視系統(tǒng)的存儲空間利用率 、 處 理效率等性能指標(biāo) , 對運行情況進行記錄 , 統(tǒng)計分析 、 依靠工作實踐并根據(jù)實際應(yīng)用環(huán)境 , 不斷改進數(shù)據(jù)庫設(shè)計 。 不少數(shù)據(jù)庫產(chǎn)品都提供了對數(shù)據(jù)庫運行情況進行監(jiān)視和分析的實用 程序 , DBA可以方便地使用這些實用程序來完成這些工作 。 2021/4/17 l 另外 , 在數(shù)據(jù)庫運行過程中 , 大量數(shù)據(jù)不斷插入 、 刪除 、 修改 , 隨著運行時間的延 長 , 在一定程度上會影響系統(tǒng)的性能 。 因此 , DBA要定期對數(shù)據(jù)庫進行重新組織 , 以提高系 統(tǒng)的性能 。 l 當(dāng)最終用戶的需求
23、增加和改變時 , DBA還要對數(shù)據(jù)庫進行較大的改造 , 包括修改部分 設(shè)計 , 實現(xiàn)對數(shù)據(jù)庫中數(shù)據(jù)的重新組織和加工 。 ( 2) 系統(tǒng)分析員 系統(tǒng)分析員是數(shù)據(jù)庫系統(tǒng)建設(shè)期的主要參與人員 , 負責(zé)應(yīng)用系統(tǒng)的需求分析和規(guī)范說明 , 要和最終用戶相結(jié)合 , 確定系統(tǒng)的基本功能 , 數(shù)據(jù)庫結(jié)構(gòu)和應(yīng)用程序的設(shè)計 , 以及軟硬件的 配置 , 并組織整個系統(tǒng)的開發(fā) 。 所以系統(tǒng)分析員是一類具有各領(lǐng)域業(yè)務(wù)和計算機知識的專家 , 在很大程度上影響數(shù)據(jù)庫系統(tǒng)的質(zhì)量和成敗 。 ( 3) 應(yīng)用程序員 應(yīng)用程序員根據(jù)系統(tǒng)的功能需求負責(zé)設(shè)計和編寫應(yīng)用系統(tǒng)的程序模塊 , 并參與對程序模 塊的測試 。 ( 4) 最終用戶 數(shù)
24、據(jù)庫系統(tǒng)的最終用戶是有不同層次的 , 不同層次的用戶其需求的信息以及獲得信息的 方式也是不同的 。 一般可將最終用戶分為操作層 、 管理層和決策層 。 他們通過應(yīng)用系統(tǒng)的用 戶接口使用數(shù)據(jù)庫 。 常用的接口方式有菜單驅(qū)動 、 表格操作 、 圖形顯示 、 隨機查詢和對數(shù)據(jù) 庫中的數(shù)據(jù)進行統(tǒng)計 , 分析時使用專用的軟件和分析決策模型 。 2021/4/17 1.2 數(shù)據(jù)庫中的兩種模型 信息模型 數(shù)據(jù)模型 1.2.1 信息模型 信息模型用于總結(jié)、抽象現(xiàn)實世界中的事物、現(xiàn)象。目前在數(shù)據(jù)庫設(shè) 計中廣泛使用的信息模型設(shè)計方法是實體 聯(lián)系法( EntityRelationship Approach),簡稱
25、ER方法。此方法是由 P.P.S.Chen于 1976年提出,由于 它將各種元素歸納總結(jié)后以不同的圖形表示,所以也被稱為 ER圖法。 1實體 實體即現(xiàn)實世界中存在的事物。例如學(xué)校、學(xué)生、課程、教師等等, 都是實體的例子。在 ER圖中實體集用長方形框表示,在長方形框中寫入 實體集的名稱,如圖 1-2所示。 2聯(lián)系 現(xiàn)實世界中事物之間的種種關(guān)系即為實體集間的聯(lián)系。例如學(xué)生與老 師之間有學(xué)生向老師學(xué)習(xí),老師教學(xué)生的聯(lián)系。 2021/4/17 1.2.1 信息模型 在 ER圖中聯(lián)系用菱形框表示,在菱形框中寫入聯(lián)系的名稱。例 如校 長與學(xué)校的聯(lián)系是 “ 領(lǐng)導(dǎo) ” ;培訓(xùn)班與某種培訓(xùn)的聯(lián)系是 “ 屬于 ”
26、 ;學(xué)生與 培訓(xùn)班的聯(lián)系是 “ 選擇 ” ,如圖 1-3所示。 圖 1-2 實體集的表示 圖 1-3 聯(lián)系的表示 2021/4/17 1.2.1 信息模型 實體集間的聯(lián)系根據(jù)它們之間的 對應(yīng)關(guān)系可分為一對一( 1: 1)類型, 例如學(xué)校與校長,因為一所學(xué)校只能 有一個校長,一個校長只能領(lǐng)導(dǎo)一所 學(xué)校,故一個校長對應(yīng)一所學(xué)校,一 所學(xué)校對應(yīng)一個校長,如圖 1-4( a)所 示;一對多( 1: M)類型,例如培訓(xùn) 種類與培訓(xùn)班,因為一種培訓(xùn)可以開 設(shè)多個班,而一個班只能屬于某一種 培訓(xùn),如圖 1-4( b)所示;多對多( N: M)類型,例如學(xué)生與培訓(xùn)班,因為一 名學(xué)生可以選擇上多個培訓(xùn)班,一個
27、培訓(xùn)班也可以同時允許多名學(xué)生參加, 如圖 1-4( c)所示。 圖 1-4 聯(lián)系的種類 2021/4/17 1.2.1 信息模型 3屬性 屬性是實體的特征。每個實體都可以有多個屬性,將這些屬性結(jié)合起 來就刻畫了這個實體。例如在學(xué)生管理系統(tǒng)中,每個學(xué)生可以有身份證號、 姓名、性別、年齡等屬性。這些屬性構(gòu)成了實體的屬性集。另外,聯(lián)系也可 以有屬性,例如學(xué)生經(jīng)過某項培訓(xùn)后取得的成績。成績屬性既不能算是學(xué)生 的屬性,也不能算是培訓(xùn)的屬性,只是當(dāng)學(xué)生參加了培訓(xùn)后才出現(xiàn)的屬性, 所以把成績屬性作為學(xué)生與培訓(xùn)的聯(lián)系的屬性。但并不是所有的聯(lián)系都有屬 性。 在 ER圖中屬性用橢圓形框表示,在橢圓形框中寫入屬性的
28、名 稱,如圖 1-5所示。 圖 1-5 屬性的表示 2021/4/17 1.2.1 信息模型 4用 E R 圖描述信息模型 有了基本符號后,便可以描述事物、現(xiàn)象,構(gòu)建信息模型了。在 ER 圖中通常用有向線段或無向線段連接各基本元素。例如連接實體與屬性、實 體與聯(lián)系、聯(lián)系與屬性。 由于任何一個屬性都是描述某個實體集的,所以在 ER圖中屬性均唯 一的與其實體集相連。通常使用無向線段。 實例 1: 招生管理系統(tǒng)中系統(tǒng)管理員實體集與其屬性間的連接 2021/4/17 1.2.1 信息模型 若系統(tǒng)管理員實體集有管理員編號、姓名、密碼、權(quán)限四個屬性,則 表示系統(tǒng)管理員實體集與其屬性間的連接如圖 1-6所示
29、。 實體集間若彼此有關(guān)系可以通過聯(lián)系表示,所以在實體集與聯(lián)系之間 就要有連接。此連接通常也使用無向線段表示。但若兩個實體集間有包含 關(guān)系,就必須用有向線段表示。例如學(xué)校中的系主任和教師,因為系主任 也是教師,所以教師中包含系主任,有一種包含關(guān)系。 2021/4/17 1.2.1 信息模型 實例 2: 招生管理系統(tǒng)中培訓(xùn)班與培訓(xùn)的聯(lián)系 若培訓(xùn)班實體集有培訓(xùn)編號、開班編號、開課日期、負責(zé)人等屬性, 培訓(xùn)項目實體集有培訓(xùn)編號、培訓(xùn)名稱、面向?qū)ο蟆⑺谡n程等屬性。 兩個實體集間的聯(lián)系是“開設(shè)”。則表示培訓(xùn)班與培訓(xùn)項目間的聯(lián)系如 圖 1-7所示。 圖 1-7 實體間的聯(lián)系 2021/4/17 1.5 招
30、生管理系統(tǒng)的設(shè)計 圖 1-11 培訓(xùn)學(xué)校招生管理系統(tǒng) E-R圖 2021/4/17 作 業(yè) 某醫(yī)院病房計算機管理中需要下列信息: 科室:科名、科地址、科電話、醫(yī)生姓名 病房:病房號、床位號、所屬科室名 醫(yī)生:姓名、職稱、所屬科室名、年齡、工作證號 病人:病歷號、姓名、性別、診斷、主管醫(yī)生、病房號 其中,一個科室有多個病房、多個醫(yī)生,一個病房只能屬于一個科 室,一個醫(yī)生只能屬于一個科室,但可負責(zé)多個病人的診斷,一個病人 的主管醫(yī)生只有一個。 請設(shè)計出計算機管理系統(tǒng)的 E-R圖。 2021/4/17 人們經(jīng)常以模型來刻畫現(xiàn)實世界中的實際事物 。 地圖 , 沙盤 , 航模都是具 體的實物模型 , 它
31、們會使人們聯(lián)想到真實生活中的事物 , 人們也可以用抽象的 模型來描述事物及事物運動的規(guī)律 。 這里討論的數(shù)據(jù)模型就是這一類模型 , 它 是以實際事物的數(shù)據(jù)特征的抽象來刻畫事物的 , 描述的是事物數(shù)據(jù)的表征及其 特性 。 數(shù)據(jù)庫是某個企業(yè)或組織所涉及的數(shù)據(jù)的提取和綜合 , 它不僅反映數(shù)據(jù)本 身 , 而且反映數(shù)據(jù)之間的聯(lián)系 , 也是事物之間的聯(lián)系的反映 。 如何在數(shù)據(jù)庫系 統(tǒng)的形式化結(jié)構(gòu)中抽象表示和處理現(xiàn)實世界中的數(shù)據(jù)是非常重要的問題 。 在數(shù) 據(jù)庫中是用數(shù)據(jù)模型對現(xiàn)實世界進行抽象的 , 現(xiàn)有的數(shù)據(jù)庫系統(tǒng)均是基于某種 數(shù)據(jù)模型的 。 因此 , 了解數(shù)據(jù)模型的基本概念是學(xué)習(xí)數(shù)據(jù)庫的基礎(chǔ) 。 數(shù)據(jù)庫中
32、最常見的數(shù)據(jù)模型有三種 , 它們是: 1.2.2 數(shù)據(jù)模型 層次模型 網(wǎng)狀模型 關(guān)系模型 2021/4/17 若用圖來表示 , 層次模型是一棵倒立的樹 。 在數(shù)據(jù)庫中 , 滿足以下兩個條 件的數(shù)據(jù)模型稱為層次模型: ( 1) 有且僅有一個結(jié)點無父結(jié)點 , 這個結(jié)點稱為 “ 根結(jié)點 ” ; ( 2) 其他結(jié)點有且僅有一個父結(jié)點 。 在層次模型中 , 結(jié)點層次從根開始定義 , 根為第一層 , 根的子結(jié)點為第二 層 , 根為其子結(jié)點的父結(jié)點 , 同一父結(jié)點的子結(jié)點稱為兄弟結(jié)點 , 沒有子結(jié)點 的結(jié)點稱為葉結(jié)點 。 在圖 1-5所示的抽象層次模型中 , R1為根結(jié)點; R2和 R3為兄弟結(jié)點 , 并且
33、 是 R1的子結(jié)點; R4和 R5為兄弟結(jié)點 , 并且是 R2的子結(jié)點; R3、 R4和 R5為葉結(jié) 點 。 1.2.2.1 層次模型 2021/4/17 層次模型對具有一對多層次關(guān)系的描述非常自然 、 直觀 、 容易理解 , 這 是層次數(shù)據(jù)庫的突出優(yōu)點 。 R1 R2 R3 R4 R5 圖 1-5 層次模型 2021/4/17 若用圖來表示 , 網(wǎng)狀模型是一個網(wǎng)絡(luò) 。 在數(shù)據(jù)庫中 , 滿足以下兩個條件的 數(shù)據(jù)模型稱為網(wǎng)狀模型 。 ( 1) 允許一個以上的結(jié)點無父結(jié)點; ( 2) 一個結(jié)點可以有個父結(jié)點 。 1.2.2.2 網(wǎng)狀模型 R1 R2 R4 R5 R3 L3 L4 L5 L2 L1
34、圖 1-6 網(wǎng)狀模型 2021/4/17 在圖 1-6所示的抽象網(wǎng)狀模型中 , R1與 R4之間的聯(lián)系被命名為 L1, R1與 R3之間的聯(lián)系被命名為 L2, R2與 R3之間的聯(lián)系被命名為 L3, R3與 R5之間的 聯(lián)系被命名為 L4, R4與 R5之間的聯(lián)系被命名為 L5。 R1為 R3和 R4的父結(jié)點 , R2也是 R3的父結(jié)點 。 R1和 R2沒有父結(jié)點 。 網(wǎng)狀模型允許一個以上的結(jié)點無父結(jié)點或某一個結(jié)點有一個以上的父結(jié) 點 , 從而構(gòu)成了比層次結(jié)構(gòu)復(fù)雜的網(wǎng)狀結(jié)構(gòu) 。 2021/4/17 在關(guān)系模型中 , 數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表 。 在數(shù)據(jù)庫中 , 滿足下列條 件的二維表稱為關(guān)系
35、模型: ( 1) 每一列中的分量是類型相同的數(shù)據(jù); ( 2) 列的順序可以是任意的; ( 3) 行的順序可以是任意的; ( 4) 表中的分量是不可再分割的最小數(shù)據(jù)項 , 即表中不允許有子表: ( 5) 表中的任意兩行不能完全相同 。 表 1-1給出的 Student( 學(xué)生基本情況 ) 表便是一個關(guān)系模型 。 1.2.2.3 關(guān)系模型 2021/4/17 關(guān)系數(shù)據(jù)庫采用關(guān)系模型作為數(shù)據(jù)的組織方式 。 層次數(shù)據(jù)庫是數(shù)據(jù)庫系統(tǒng)的先驅(qū) , 而網(wǎng)狀數(shù)據(jù)庫則為數(shù)據(jù)庫在概念 、 方法 、 技術(shù) 上的發(fā)展奠定了基礎(chǔ) 。 它們是數(shù)據(jù)庫技術(shù)研究最早的兩種數(shù)據(jù)庫 , 而且也曾得到廣泛 的應(yīng)用 。 但是 , 這兩種
36、數(shù)據(jù)庫管理系統(tǒng)存在著結(jié)構(gòu)比較復(fù)雜 、 用戶不易掌握 、 數(shù)據(jù)存 取操作必須按照模型結(jié)構(gòu)中已定義好的存取路徑進行 、 操作比較復(fù)雜等缺點 , 這就限 制了這兩種數(shù)據(jù)庫管理系統(tǒng)的發(fā)展 。 關(guān)系數(shù)據(jù)庫以其具有嚴(yán)格的數(shù)學(xué)理論 、 使用簡單靈活 、 數(shù)據(jù)獨立性強等特點 , 而 被公認為是最有前途的一種數(shù)據(jù)庫管理系統(tǒng) 。 它的發(fā)展十分迅速 , 目前已成為占據(jù)主 導(dǎo)地位的數(shù)據(jù)庫管理系統(tǒng) 。 自 20世紀(jì) 80年代以來 , 作為商品推出的數(shù)據(jù)庫管理系統(tǒng)幾 乎都是關(guān)系型的 。 例如 , ORACLE、 SYBASE、 INFORMIX、 Visual FoxPro等 。 RecNo StudID Name Se
37、x Birthday EntranceScore 1 981101 趙文化 男 2-28-80 500 2 981102 徐逸華 男 6-7-81 630 3 981103 郭茜茜 女 11-17-82 650 4 981201 錢 途 男 5-1-80 380 5 981202 高 涵 男 11-06-80 630 6 981203 李曉鳴 女 11-17-82 400 表 1-1 Student表 2021/4/17 綜 合 習(xí) 題 某工廠(包括廠名和廠長姓名)需建立一個數(shù)據(jù)庫來存儲以下信息: 一個廠內(nèi)有多個車間,每個車間有車間號、車間主任姓名、地址和電話。 一個車間多個工人,每個工人有職
38、工號、姓名、年齡、性別和工種。 一個車間生產(chǎn)多種產(chǎn)品,產(chǎn)品有產(chǎn)品號、產(chǎn)品名和價格。 一個車間生產(chǎn)多種零件,一個零件也可能為多個車間制造。零件有零件號、零 件名、重量和價格。 一個產(chǎn)品由多種零件組成,一種零件也可裝配出多種產(chǎn)品。 產(chǎn)品和零件均寸入倉庫中。 廠內(nèi)有多個倉庫,倉庫有倉庫號、倉庫主任姓名和電話。 試: ( 1)畫出該系統(tǒng)的實體 聯(lián)系模型 E-R圖。 ( 2)給出相應(yīng)的關(guān)系數(shù)據(jù)模型。 ( 3)畫出該系統(tǒng)的層次模型。 2021/4/17 關(guān)系數(shù)據(jù)庫采用了關(guān)系模型作為數(shù)據(jù)的組織方式 , 這就涉及到關(guān)系模型中 的一些基本概念 。 另外 , 對關(guān)系數(shù)據(jù)庫進行查詢時 , 若要找到用戶關(guān)心的數(shù)據(jù) ,
39、 就需要對關(guān)系進行一定的關(guān)系運算 。 1.3 關(guān)系數(shù)據(jù)庫 關(guān)系數(shù)據(jù)庫的基本概念 傳統(tǒng)的集合運算 關(guān)系運算 2021/4/17 在關(guān)系數(shù)據(jù)庫中 , 經(jīng)常會提到關(guān)系 、 屬性等關(guān)系模型中的一些基本概念 。 為了進一 步了解關(guān)系數(shù)據(jù)庫 , 首先給出關(guān)系模型中的一些基本概念 。 關(guān)系:一個關(guān)系就是一張二維表 , 每個關(guān)系有一個關(guān)系名 。 在計算機中 , 一個關(guān)系 可以存儲為一個文件 。 在 Visual FoxPro中 , 一個關(guān)系就是一個表文件 。 屬性:二維表中垂直方向的列稱為屬性 , 有時也叫做一個字段 。 域:一個屬性的取值范圍叫做一個域 。 元組:二維表中水平方向的行稱為元組 , 有時也叫做
40、一條記錄 。 碼:又稱為關(guān)鍵字 。 二維表中的某個屬性 , 若它的值唯一地標(biāo)識了一個元組 , 則稱 該屬性為侯選碼 。 若一個關(guān)系有多個侯選碼 , 則選定其中一個為主碼 , 這個屬性稱為主 屬性 。 分量:元組中的一個屬性值叫做元組的一個分量 。 關(guān)系模式:是對關(guān)系的描述 , 它包括關(guān)系名 、 組成該關(guān)系的屬性名 、 屬性到域的映 像 。 通常簡記為: 關(guān)系名 ( 屬性名 1, 屬性名 2, , 屬性名 n) 1.3.1 關(guān)系數(shù)據(jù)庫的基本概念 2021/4/17 屬性到域的映像通常直接說明為屬性的類型 、 長度等 。 關(guān)系數(shù)據(jù)庫:采用關(guān)系模式作為數(shù)據(jù)的組織方式的數(shù)據(jù)庫叫做關(guān)系數(shù)據(jù)庫 。 對關(guān)
41、系數(shù)據(jù)庫的描述 , 稱為關(guān)系數(shù)據(jù)庫的型 , 它包括若干域的定義以及在這些域上定義的 若干關(guān)系模式 。 這些關(guān)系模式在某一時刻對應(yīng)的關(guān)系的集合 , 稱為關(guān)系數(shù)據(jù)庫的值 。 表 1-1中的關(guān)系是一個學(xué)生基本情況表 。 表中的每一行是一條學(xué)生記錄 , 是關(guān)系的 一個元組 , Studid( 學(xué)號 ) 、 Name( 姓名 ) 、 Sex( 性別 ) 、 Birthday( 出生日期 ) 、 Entrancescore( 入學(xué)成績 ) 等均是屬性 。 其中學(xué)號是唯一識別一條記錄的屬性 , 因此 稱為主碼 。 對于學(xué)號這一屬性 , 域是 “ 000001”“ 999999”, 對于姓名屬性 , 域是由
42、2 4個漢字組成的字符串 , 對于性別屬性 , 域是 “ 男 ” 、 “ 女 ” 。 學(xué)生基本情況表的關(guān)系模式可記為: Student( Studid, Name, Sex, Birthday, Entrancescore) 一個關(guān)系模式在某一時刻的內(nèi)容 ( 稱為相應(yīng)模式的狀態(tài) ) , 是元組的集合 , 稱為 關(guān)系 。 在不至于引起混淆的情況下 , 往往將關(guān)系模式和關(guān)系統(tǒng)稱為關(guān)系 。 2021/4/17 1.3.2 傳統(tǒng)的集合運算 運算符 符號 含義 鍵盤格式 示例 集合 運算符 并 UNION RS, 或 R UNION S 交 INTERSECT RS ,或 R INTERSECT S -
43、 差 MINUS R-S,或 R MINUS S 乘 TIMES R S,或 R TIMES S 2021/4/17 傳統(tǒng)集合運算舉例 R A B C a1 b1 c1 a1 b2 c2 a2 b2 c1 RS A B C a1 b1 c1 a1 b2 c2 a2 b2 c1 a1 b3 c2 S A B C a1 b2 c2 a1 b3 c2 a2 b2 c1 RS A B C a1 b2 c2 a2 b2 c1 2021/4/17 傳統(tǒng)集合運算舉例 R A B C a1 b1 c1 a1 b2 c2 a2 b2 c1 R-S A B C a1 b1 c1 R S A B C A B C a
44、1 b2 c1 a1 b2 c2 a1 b2 c1 a1 b3 c2 a1 b2 c1 a2 b2 c1 a1 b2 c2 a1 b2 c2 a1 b2 c2 a1 b3 c2 a1 b2 c2 a2 b2 c1 a2 b2 c1 a1 b2 c2 a2 b2 c1 a1 b3 c2 a2 b2 c1 a2 b2 c1 S A B C a1 b2 c2 a1 b3 c2 a2 b2 c1 2021/4/17 對關(guān)系數(shù)據(jù)庫進行查詢時 , 若要找到用戶關(guān)心的數(shù)據(jù) , 就需要對關(guān)系進行一定的關(guān) 系運算 。 關(guān)系運算有兩種:一種是傳統(tǒng)的集合運算 ( 并 、 差 、 交 、 廣義笛卡爾積等 ) ; 另一
45、種是專門的關(guān)系運算 ( 選擇 、 投影 、 連接 ) 。 傳統(tǒng)的集合運算 ( 并 、 差 、 交 、 廣義笛卡爾積 ) 不僅涉及關(guān)系的水平方向 ( 即二維 表的行 ) , 而且涉及關(guān)系的垂直方向 ( 即二維表的列 ) 。 關(guān)系運算的操作對象是關(guān)系 , 運算的結(jié)果仍為關(guān)系 。 ( 1) 選擇 選擇運算即在關(guān)系中選擇滿足某些條件的元組 。 也就是說 , 選擇運算是在二維表中 選擇滿足指定條件的行 。 例如 , 在 Student( 學(xué)生基本情況 ) 表中 , 若要找出所有女學(xué)生 的元組 , 就可以使用選擇運算來實現(xiàn) , 條件是: Sex=“女 ” 。 ( 2) 投影 投影運算是在關(guān)系中選擇某些屬性
46、列 。 例如 , 在 Student( 學(xué)生基本情況 ) 表中 , 若 要僅顯示所有學(xué)生的 Studid( 學(xué)號 ) 、 Name( 姓名 ) 和 Sex( 性別 ) , 那么可以使用投影 運算來實現(xiàn) 。 ( 3) 連接 連接運算是從兩個關(guān)系的笛卡爾積中選取屬性間滿足一定條件的元組 。 1.3.3 關(guān)系運算 2021/4/17 關(guān)系運算符 專門 關(guān)系 運算符 選擇 R where C 姓名 =“張三 ” (S)或 S where 姓名 =張三 投影 R 考號,姓名 (S)或 S考號 ,姓名 連接 JOIN RS ,或 R JOIN S 2021/4/17 假設(shè)現(xiàn)有兩個關(guān)系:關(guān)系 R和關(guān)系 S,
47、 關(guān)系 R如表 1-2所示 , 關(guān)系 S如表 1-3所示 。 現(xiàn) 在對關(guān)系 R和關(guān)系 S進行廣義笛卡爾積運算 , 那么運算結(jié)果為表 1 4所示的關(guān)系 T。 StudID Name Sex 981102 徐逸華 男 981103 郭茜茜 女 981202 高 涵 男 表 1-2 關(guān)系 R StudID Subid Score 981102 1021 100 981103 1031 98 981101 1011 88 981202 1021 90 表 1-3 關(guān)系 S 2021/4/17 表 1-4 關(guān)系 T StudID Name Sex StudID Subid Score 981102 徐逸
48、華 男 981102 1021 100 981102 徐逸華 男 981103 1031 98 981102 徐逸華 男 981101 1011 88 981102 徐逸華 男 981202 1021 90 981103 郭茜茜 女 981102 1021 100 981103 郭茜茜 女 981103 1031 98 981103 郭茜茜 女 981101 1011 88 981103 郭茜茜 女 981202 1021 90 981202 高 涵 男 981102 1021 100 981202 高 涵 男 981103 1031 98 981202 高 涵 男 981101 1011 8
49、8 981202 高 涵 男 981202 1021 90 2021/4/17 如果進行條件為 “ R. StudID=S. StudID”的連接運算 , 那么連接結(jié)果為關(guān)系 U, 如 表 1-5所示 。 從表 1-5可以看出關(guān)系 U是關(guān)系 T的一個子集 。 表 1-5 關(guān)系 U StudID Name Sex StudID Subid Score 981102 徐逸華 男 981102 1021 100 981103 郭茜茜 女 981103 1031 98 981202 高 涵 男 981202 1021 90 連接條件中的屬性稱為連接屬性 , 兩個關(guān)系中的連接屬性應(yīng)該有相同的數(shù)據(jù)類型 ,
50、 以保證其是可比的 。 當(dāng)連接條件中的關(guān)系運算符為 “ ” 時 , 表示等值連接 。 表 1-5的 關(guān)系 U為關(guān)系 R和關(guān)系 S在條件 “ R. StudID=S. StudID”下的等值連接 。 若在等值連接的 關(guān)系 U中去掉重復(fù)的屬性 ( 或?qū)傩越M ) , 則此連接稱為自然連接 。 表 1-6所示的關(guān)系 V 是關(guān)系 R和關(guān)系 S在條件 “ R. StudID=S. StudID”下的自然連接 。 對關(guān)系數(shù)據(jù)庫的實際操作 , 往往是以上幾種操作的綜合應(yīng)用 。 例如:對關(guān)系 V再 進行投影運算 , 可以得到僅有屬性 Studid( 學(xué)號 ) 、 Name( 姓名 ) 、 Subid( 課程編號
51、 ) 和 Score( 成績 ) 的關(guān)系 W, 如表 1-7所示 。 2021/4/17 表 1-6 關(guān)系 V StudID Name Sex Subid Score 981102 徐逸華 男 1021 100 981103 郭茜茜 女 1031 98 981202 高 涵 男 1021 90 以上這些關(guān)系運算 , 在關(guān)系數(shù)據(jù)庫管理系統(tǒng)中都有相應(yīng)的操作命令 。 表 1-7 關(guān)系 W StudID Name Subid Score 981102 徐逸華 1021 100 981103 郭茜茜 1031 98 981202 高 涵 1021 90 2021/4/17 連接運算舉例 R A B C
52、a1 b1 5 a1 b2 6 a2 b3 8 a2 b4 12 S B E b1 3 b2 7 b3 10 b3 2 b5 2 自然連接 R S A B C E a1 b1 5 3 a1 b2 6 7 a2 b3 8 10 a2 b3 8 2 2021/4/17 學(xué)生 -課程數(shù)據(jù)庫 S 學(xué)生表 學(xué) 號 姓名 性別 年齡 S# SNAME SEX AGE 2004101 張明 男 19 2004102 李華 女 20 2004103 王強 男 18 2004104 秦永 男 19 C 課程表 課程號 課程名 學(xué)分 任課教師 C# CNAME CREDIT TEACHER 1 數(shù)據(jù)庫 6 呂 睿
53、 2 應(yīng)用軟件 4 方志廣 3 C語言 6 盧建增 4 科技導(dǎo)論 3 賈新建 SC 學(xué)生選課表 學(xué)號 課程號 成績 S# C# GRADE 200401 1 92 200401 2 85 200401 3 88 200402 2 90 200402 3 80 200403 1 78 200403 4 86 200404 2 70 200404 3 68 200404 4 90 關(guān)系數(shù)據(jù)庫的規(guī)范化設(shè)計 2021/4/17 關(guān)系模式可能存在的問題 例 有一個關(guān)系模式 R( TNAME, ADDRESS, C#, CNAME),其屬性分別表示教師姓名、教師地址、教的 課程號和課程名。 TNAME ADDRESS C# CNAME T1 A1 C1 N1 T1 A1 C2 N2 T1 A1 C3 N3 T2 A2 C4 N4 T2 A2 C5 N5 T2 A2 C6 N6 2021/4/17 在上例中,關(guān)系 R存在著數(shù)據(jù)冗余和更新 異?,F(xiàn)象,應(yīng)該用下面兩個關(guān)系模式 R1和 R2替代 R。 R1( TNAME, ADDRESS) R2( TNAME, C#, CNAME) 2021/4/17 謝謝大家!
- 溫馨提示:
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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。