Ch04 關聯式資料庫 資料庫管理.

Slides:



Advertisements
Similar presentations
ACCESS 入門 主講人 : 黃國倫 日期 :2002/11/14. Outline  ACCESS介紹  資料分析方法  建立ACCESS資料庫  ACCESS查詢功能  建立表單  進階查詢-SQL.
Advertisements

2010 年 6 月课件制作人:王亚楠 1 模块 2 项目开发概论 教学课件 年 6 月课件制作人:王亚楠 2 目录 目标 了解:数据库技术的基本概念与结构 理解:数据模型的分类与结构组成 掌握:关系数据库及 SQL 的基本理论 知识 掌握:数据库设计的方法与步骤 内容 2.1 数据库技术基础.
正規化範例 第 1 、 2 階正規化. 正規化範例 ( 水果供應商 ) 編號姓名電話地址 郵遞區 號 品名價格 001 林國鐘 高雄市 100 頻果 100 香蕉 60 鳳梨 葉連芳 台北市 400 葡萄 60 頻果 郭明正
第六章 資料倉儲與採礦技術 6.1 資料倉儲與採礦定義 6.2 資料採礦之步驟與技術分類 6.3 資料採礦在顧客關係管理之應用
CH 5 邏輯資料庫設計與關聯式模型 關聯式資料模型、關聯式資料模型元件、關聯表( Relation )、關聯表的必要條件
08 CSS 基本語法 8-1 CSS 的演進 8-2 CSS 樣式規則與選擇器 8-3 連結HTML 文件與CSS 樣式表
Chap 4 關聯式資料庫模型.
資料表關聯與正規化.
第4章 關聯式資料庫模型 關聯式資料模式的特點、優缺點、關係連結法 4-1 關聯式資料庫模型的基礎 關聯式資料模型的組成元素
Access資料庫管理系統 授課教師:陳恩航 老師 學歷:國立台灣科技大學資管系博士 經歷:國立台北商業技術學院資管系.
第 八 章 資料庫安全 本投影片(下稱教用資源)僅授權給採用教用資源相關之旗標書籍為教科書之授課老師(下稱老師)專用,老師為教學使用之目的,得摘錄、編輯、重製教用資源(但使用量不得超過各該教用資源內容之80%)以製作為輔助教學之教學投影片,並於授課時搭配旗標書籍公開播放,但不得為網際網路公開傳輸之遠距教學、網路教學等之使用;除此之外,老師不得再授權予任何第三人使用,並不得將依此授權所製作之教學投影片之相關著作物移作他用。
資料庫 設計與 SQL 單元六 曹祖聖 台灣微軟特約資深講師
陳維魁 博士 儒林圖書公司 第九章 資料抽象化 陳維魁 博士 儒林圖書公司.
Views ,Stored Procedures, User-defined Function, Triggers
歐陽芳泉 清雲科技大學資訊管理系 第1章 資料處理與資料庫 歐陽芳泉 清雲科技大學資訊管理系.
Chap 5 關聯式代數與計算.
LINQ 建國科技大學 資管系 饒瑞佶.
資料庫系統 Database Systems
資料庫系統 Database Systems
課程名稱:資料庫系統 授課老師:李春雄 博士
課程名稱:資料庫系統 授課老師:李春雄 博士
SQL結構化查詢語言 SQL是 Structured Query Language 的縮寫,簡單的說,SQL是一種與資料庫溝通的共通語言,它是當時在 IBM 工作的 E.F. Codd於1970 年針對關聯式模型 ( relational model ),所建構出來的資料庫理論,也因此有了所謂關聯式資料庫的系統,但在發展的初期,由於各種關聯式資料庫系統廠商的.
本 章 重 點 12-1 資料庫管理系統的基礎概念 12-2 SQL(Structured Query Language)語法簡介
課程名稱:資料庫系統 授課老師:李春雄 博士
Chap 7 關聯式資料庫的正規化.
二.資料庫系統建立與管理 Access 資料庫:windows下的單機資料庫 Access 操作 Mysql資料庫介紹.
2-3 基本數位邏輯處理※.
高等資料庫管理系統 Advanced Database Management System
Microsoft SQL Server 2000 李金双.
第八章 利用SELECT查詢資料.
資料庫管理 操作DBMS 指導教授:楊維邦  助教:廖皓翔.
第五章 關聯式資料庫的理論基礎.
資料正規化.
第 2 章 規劃關聯式資料庫.
SQL語法 定義與操作指令.
表格正規化簡介 講授大綱: 第一正規化 資料表的切割 第二正規化 第三正規化 Boyce/Codd正規化 第四正規化 第五正規化
課程名稱:資料庫系統 授課老師:李春雄 博士
課程名稱:資料庫系統 授課老師:李春雄 博士
第4章 關聯式資料庫模型 4-1 關聯式資料庫模型的基礎 4-2 關聯式資料庫模型的資料結構 4-3 關聯式資料庫模型的完整性限制條件
第10章 SQL定義、操作與控制指令 10-1 SQL語言的基礎 10-2 SQL查詢工具 10-3 資料庫的實體資料模型
單元3:軟體設計 3-1實體關係圖 Ch 08 System models.
類別(class) 類別class與物件object.
SQL Stored Procedure SQL 預存程序.
SQL結構化查詢語言 SQL是 Structured Query Language 的縮寫,簡單的說,SQL是一種與資料庫溝通的共通語言,它是當時在 IBM 工作的 E.F. Codd於1970 年針對關聯式模型 ( relational model ),所建構出來的資料庫理論,也因此有了所謂關聯式資料庫的系統,但在發展的初期,由於各種關聯式資料庫系統廠商的.
資料庫系統導論.
連結資料庫管理系統.
App Inventor2呼叫PHP存取MySQL
第二章 SPSS的使用 2.1 啟動SPSS系統 2.2 結束SPSS系統 2.3 資料分析之相關檔案 2.4 如何使用SPSS軟體.
網頁程式設計 本章投影片錄自HTML5、CSS3、RWD、jQuery Mobile跨裝網頁設計 陳惠貞 著 碁峰資訊股份有限公司出版
TB-054A  周天穎 編著 儒林圖書公司 發行.
CH03 行銷資訊系統資料庫模組--資料庫概論
Ch05 實體關圖與正規化分析 資料庫管理.
第 19 章 XML記憶體執行模式.
5 資料庫設計工具的使用 5-1 資料庫設計的基礎 5-2 啟動塑模工具與新增專案 5-3 新增實體 5-4 建立關聯性
PHP與MySQL 入門學習指南 凱文瑞克 著 第 22 章 SQL 介紹與建立MySQL資料庫.
資料庫管理系統 緒 論.
Class & Object 靜宜大學資工系 蔡奇偉副教授 ©2011.
MicroSim pspice.
第二章 關聯式資料庫.
SQL語法教學 2015/10/15 John.
第 4 章 認識 SQL 語言與資料型別.
資料表示方法 資料儲存單位.
第3章 关系数据库 内容提要 关系模型的数据结构 关系模型的常用术语 关系数据库的完整性概念 数据库的关系运算 函数依赖的定义
資料結構與C++程式設計進階 期末考 講師:林業峻 CSIE, NTU 7/ 15, 2010.
連結資料庫 MYSQL.
多站台網路預約系統之 AJAX即時資料更新機制
資料庫應用與實作 一到六章重點、習題.
SQLite資料庫 靜宜大學資管系 楊子青.
Chapter 4 Multi-Threads (多執行緒).
Joining Multiple Tables
Presentation transcript:

Ch04 關聯式資料庫 資料庫管理

本章大綱 本章內容包含課本第9章 關聯式資料庫模型 關聯式資料庫 關聯式資料庫設計

關聯式資料庫模型-說明 關聯式資料庫模型(Relational Database Model)是1969年E. F. Codd博士在IBM公司的研究成果,不同於其它資料庫模型,關聯式資料庫模型是以數學集合論為理論基礎建立的資料庫模型。

關聯式資料庫模型-元素 資料結構(Data Structures):資料的組成方式,以關聯式資料庫模型來說,就是欄和列組成表格的關聯表(Relations)。 資料操作或運算(Data Manipulation或Operations):資料相關操作新增、更新、刪除和查詢的關聯式代數(Relational Algebra)和關聯式計算(Relational Calculus)。 完整性限制條件(Integrity Constraints):維護資料完整性的條件,其目的是確保儲存的資料是合法資料。

關聯式資料庫模型-名詞 關聯式資料庫模型的相關術語通常是用來說明資料庫系統的相關理論,SQL Server或Access等資料庫管理系統使用的資料庫相關名詞另成一套術語,不過這些名詞或術語都代表相同意義,如下表所示:

關聯式資料庫模型的資料結構-說明 關聯式資料庫是一組關聯表(Relations)的集合,關聯表是關聯式資料庫模型的資料結構(Data Structures),使用二維表格組織資料。每一個關聯表是由2部分組成,如下圖所示:

關聯式資料庫模型的資料結構-關聯表綱要 關聯表綱要(Relation Schema) 關聯表綱要主要是指關聯表名稱、關聯表屬性(欄位)和定義域清單(資料類型),多個關聯表綱要集合起來就是「關聯式資料庫綱要」(Relational Database Schema)。

關聯式資料庫模型的資料結構-關聯表綱要語法 關聯表Students擁有sid、name、address、tel和birthday屬性(欄位)集合,關聯表綱要表示法的語法,如下所示: relation_name (attribute1, attribute2, attribute3, … , attributeN) 上述語法的說明,如下所示: relation_name:關聯表名稱。 attribute1, attribute2, attribute3, …. , attributeN:括號中是屬性清單,通常省略屬性的定義域,加上底線的屬性就是主鍵。

關聯式資料庫模型的資料結構-關聯表實例 關聯表實例(Relation Instance) 在定義好關聯表綱要後,我們就可以將資料儲存到關聯表,稱之為關聯表實例(Relation Instance),這是指某個時間點儲存在關聯表的資料(因為儲存的資料可能隨時改變),在這個二維表格中的每一筆記錄稱為「值組」(Tuples)。

關聯式資料庫模型的資料操作或運算-代數說明 關聯式代數是低階運算子導向語言(Operator-oriented Language),用來描述如何得到查詢結果的步驟,如同程式語言一行一行的執行程式,這是一種程序式(Procedural)的查詢語言,一個關聯式代數運算式,如下所示: Result = σ Students.d_no = Departments.d_no (Students X Departments)

關聯式資料庫模型的資料操作或運算-代數運算子1 關聯式代數運算子中有些是源於傳統集合論的運算子和數學符號,如下所示: 交集(Intersection):∩ 聯集(Union):∪ 差集(Difference):- 卡笛生乘積(Cartesian Product):x

關聯式資料庫模型的資料操作或運算-代數運算子2 在關聯式代數運算子中屬於特殊關聯式運算子和其數學符號,如下所示: 選取(Selection):δ 投影(Projection):π 合併(Join): 除法(Division):÷

關聯式資料庫模型的資料操作或運算-計算 關聯式計算(Relational Calculus) 關聯式計算是高階的宣告式語言(Declarative Language),屬於非程序式(Non-procedural)查詢語言,並不用一步一步描述其過程,而是使用值組或定義域變數建立查詢運算式(Query Expression)直接宣告和定義查詢結果的關聯表,如下所示: { t | P(t) } { <x1, x2, …., xn> | P(<x1, x2, …., xn>) }

關聯式資料庫模型的資料操作或運算-SQL語言與代數與計算1 SQL結構化查詢語言的基礎就是關聯式代數和計算,SQL語言的語法可以視為一種關聯式計算的版本,關聯式資料庫管理系統內部的查詢處理模組(Query Processor)是將SQL指令轉換成關聯式代數運算式後,使用關聯式代數進行實際的資料查詢。

關聯式資料庫模型的資料操作或運算-SQL語言與代數與計算2 資料庫管理系統執行SQL指令敘述的過程,當輸入SQL指令後,SQL指令會轉換成關聯式代數運算式,以便進行最佳化處理,最後產生程式碼來執行查詢。

關聯式資料庫模型的資料操作或運算-SQL語言與代數與計算3 關聯式代數運算式也可以反過來轉換成對應的SQL指令敘述。例如:在前述的關聯式代數運算式相當於執行SQL語言的SELECT指令、FROM和WHERE子句,如下所示: SELECT * FROM Students, Departments WHERE Students.d_no = Departments.d_no 上述SQL語言的SELECT指令包含多種關聯式代數運算子,WHERE子句是合併與選取運算,FROM子句屬於卡笛生乘積運算,再加上UNION、EXCEPT和INTERSECT指令,就可以寫出關聯式代數運算式對應的SQL指令敘述。

關聯式資料庫模型的完整性限制條件-說明 關聯式資料庫模型的完整性限制條件(Integrity Constraints)是資料庫設計的一部分,其目的是檢查資料庫儲存的資料和保障資料的正確性,不但可以防止授權使用者將不合法的資料存入資料庫,還能夠避免關聯表之間的資料不一致。

關聯式資料庫模型的完整性限制條件-實體完整性 實體完整性(Entity Integrity) 實體完整性是關聯表內部的完整性條件,主要是用來規範關聯表主鍵的使用規則。即在關聯表的主鍵不可以是「空值」(NULL),主鍵(Primary Key)是一個可以代表關聯表每一筆記錄的屬性或多個屬性的組合。

關聯式資料庫模型的完整性限制條件-實體完整性(更新規則) 關聯式資料庫管理系統支援實體完整性,所以可以用來定義主鍵的更新規則(Update Rule),如下所示: 主鍵的更新規則:更新規則是指在基底關聯表的一個值組更新主鍵或新增值組時,如果主鍵是空值就違反實體完整性,所以資料庫管理系統必須拒絕這項操作。

關聯式資料庫模型的完整性限制條件-參考完整性 參考完整性(Referential Integrity) 參考完整性是關聯表與關聯表間的完整性條件,主要是規範外來鍵的使用規則,即關聯表中不可包含無法對應的「外來鍵」(Foreign Keys,簡稱FK)。

關聯式資料庫模型的完整性限制條件-參考完整性(範例) 例如:Books關聯表的publisher和a_no是外來鍵,換句話說,這2個鍵值一定分別存在Publishers和Authors關聯表,如下圖所示:

關聯式資料庫模型的完整性限制條件-參考完整性(使用規則) 外來鍵的更新規則(Update Rule):如果一個值組擁有外來鍵,當合法使用者試圖在更新或新增值組時,更改到外來鍵的值,資料庫管理系統會如何處理? 外來鍵的刪除規則(Delete Rule):如果一個值組擁有外來鍵,當合法使用者試圖刪除參考的主鍵時,資料庫管理系統會怎麼處理?

關聯式資料庫模型的完整性限制條件-參考完整性(處理方式) 資料庫管理系統可能有3種處理方式,如下所示: 限制性處理方式(Restricted):拒絕刪除或更新操作。 連鎖性處理方式(Cascades):連鎖性處理方式是當更新或刪除時,需要作用在所有影響的外來鍵,否則拒絕此操作。例如:在刪除客戶時,所有外來鍵參考的訂單資料也需一併刪除,當更改訂單項目編號,則所有訂單中擁有此項目的外來鍵也需一併更改。 空值化處理方式(Nullifies):將所有可能的外來鍵都設為空值,否則拒絕此操作。例如:當刪除客戶時,就將Orders關聯表中參考此客戶主鍵的外來鍵,即客戶編號都設為空值。

關聯式資料庫-說明 關聯式資料庫(Relational Database)是一種使用關聯式資料庫模型的資料庫,它是由多個已正規化的關聯表所組成,在關聯表間使用外來鍵與參考主鍵的資料值來建立連接,以便實作一對一、一對多和多對多關聯性,如果只擁有一個關聯表,也屬於合法的關聯式資料庫。

關聯式資料庫-一對一圖例

關聯式資料庫-一對多圖例

關聯式資料庫設計-說明 關聯式資料庫設計(Relational Database Design)的目的是建立關聯式資料庫,更正確的說,這是建立關聯式資料庫綱要,也就是定義資料表欄位和主索引等資料。

關聯式資料庫設計-主鍵與外來鍵 主鍵與外來鍵:定義資料表記錄的身份證字號 Access的主索引鍵就是主鍵(Primary Key),這是用來識別資料表唯一記錄的欄位資料,我們可以將資料表一到多個欄位集合建立成主鍵。

關聯式資料庫設計-正規化分析(目的) 正規化分析(Normalization):將欄位置於正確的資料表 刪除重複資料(Eliminating Redundancy):資料表中的重複資料不只浪費儲存空間,而且可能產生資料維護問題。 刪除不一致的相依關係(Eliminating Inconsistent Dependency):資料相依是讓相關的資料都能儲存在同一個資料表。

關聯式資料庫設計-正規化分析(階段) 正規化分析在處理資料時分為幾個階段,每個階段需要符合的條件,如下所示: 第一階正規化型式(1NF):資料表擁有主索引且一欄只有單一值。 第二階正規化型式(2NF):符合1NF且資料表沒有子集合記錄(不包括外來鍵欄位)的重複資料。 第三階正規化型式(3NF):符合1NF、2NF且資料表欄位都與主鍵相依。

關聯式資料庫設計-關聯性(說明) 關聯性(Relationships):定義資料查詢的方向 關聯式資料庫的關聯性分為很多種,不過在說明前需要先了解【實體】的基本定義,如下所示: 實體(Entity):這是將單一資料表的資訊使用一個名稱來代表,例如:【學生資料表】是一個名為【學生】的實體 屬性(Attributes):實體擁有的特性,例如:一位學生擁有學號、姓名、生日和電話等特性。

關聯式資料庫設計-關聯性(種類) 一對一關聯性(1:1):指一個實體的記錄,或稱為實例(Instance)只關聯到另一個實體的一筆記錄,例如:學校目前只有一個社團,所以學生在社團活動中只能擔任一個職位,同樣的,這個職位屬於一位指定學生。 一對多關聯性(1:N):指一個實體的記錄關聯到另一個實體的一筆或多筆記錄,例如:學校的每門課程都只有一位教授開課,一位教授實體可以教授一門到多門課程。 多對多關聯性(M:N):指一個實體的多筆記錄關聯到另一個實體的多筆記錄,例如:學生與課程實體,一位學生實體可以選修多門課程,一門課程實體可以允許多位學生實體來選修,通常多對多關聯性需要使用一個結合資料表來建立,以此例就是選課資料表的實體。

關聯式資料庫設計-完整性限制條件 完整性限制條件(Integrity Constraints):維護正確的關聯性 完整性限制條件是一種規則,可以確保關聯資料表中記錄的正確性,2個通用的資料完整性規則,可以適用所有的關聯式資料庫,如下所示: 實體完整性(Entity Integrity):實體的主鍵不可以是空值(NULL),即主鍵一定擁有唯一值,如此才能代表資料表的記錄。 參考完整性(Referential Integrity):資料庫中不可以包含無法對應的外來鍵值,換句話說,表示主鍵值的資料表中根本沒有此外來鍵值的記錄,這筆擁有外來鍵的記錄是從何而來。