合并理论与实作-南华大学资讯管理学系暨研究所.ppt

合并理论与实作-南华大学资讯管理学系暨研究所.ppt

  1. 1、本文档共138页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
合并理论与实作-南华大学资讯管理学系暨研究所.ppt

第 八 章 合併理論與實作;本章內容 ;前言 ;8-1 關聯式代數運算子 ;8-2、非集合運算子;8-2.1、限制(Restrict) ;【概念圖】  ;【實例】請在下列的學生選課表中,請找出課程學分數為3的記錄? 【解答】以SQL達成關聯式代數的運算功能 【執行結果】;8-2.2 投影(Project) ;【概念圖】  ;【實例】請在下列的學生選課表中,請找出學生「姓名」與「課程名稱」? 【解答】以SQL達成關聯式代數的運算功能 【執行結果】;8-2.3 卡氏積(Cartesian Product);【概念圖】  ;【實例】請在下列的「學生表」與「課程表」中,請找出學生表與課程 表的所有可能配對的集合? 【解答】 1.分析: 已知:學生表R1 (學號,姓名,課號) 課程表R2 (課號,課名,學分數) 兩個資料表的「卡氏積」,可以表示為: 學生表R1 (學號,姓名,課號) ╳ 課程表R2 (課號,課名,學分數)=新資料表R3 R1有(r1=3)個屬性,(m=2)筆記錄,R2有(r2=3)個屬性,(n=3)筆記錄, R3會有(r1+r2)個屬性=6個屬性 新資料表R3(學號,姓名,學生表.課號,課程表.課號,課名,學分數) R3會有(m ×n)筆記錄=6筆記錄;在資料記錄方面,每一位學生(2位)均會對應到每一門課程資料(3門),亦即二位學生資料,產生(2×3)=6筆記錄。如下圖所示: 因此,「學生表」與「課程表」在經過「卡氏積」之後,共會產生6筆記錄,如下圖所示: ;以上面所產生的六筆記錄中,不知您是否有發現,有一些不太合理的記錄。 例如:「張三」只選修課號為C001,但是卻多出了兩筆不相關的紀錄(C002,C003)。因此,如何從「卡氏積」所展開的全部組合中,挑選出合理的記錄,就必須要再透過下一章節所要介紹的「內部合併(Inner Join)」。;2.撰寫「關聯式代數」與「SQL」 ;8-2.4 合併(Join)  ;【概念圖】  ;【合併的分類】 ;二、結果合併:(不需要FK?PK) (一)Cross Join(卡氏積) (二)Union(聯集) (三)Intersect(交集) (四)Except(差集) ;8-2.4.1 內部合併(Inner Join);【兩種作法】 ;【實例】 ;1.分析 從上圖中,我們就可以將此條關聯線條寫成: 學??表.課號=課程表.課號 因此,我們將這兩個資料表進行「卡氏積」運算,其結果如下圖所示,接下來,從展開後的記錄中,找尋那幾筆記錄具有符合「學生表.課號=課程表.課號」的條件,亦即「學生表」的「課號」等於「課程表」的「課號」。 ;2.撰寫SQL程式碼 (1)第一種做法:(Equi-Join最常用) (2)第二種做法:INNER JOIN 【執行結果】;3.綜合分析: 當我們欲查詢的欄位名稱是來源於兩個或兩個以上的資料表時,如下表所示:;則必須要進行以下的分析: 步驟一:辨識「目標屬性」及「相關表格」 學生資料表(學號,姓名,系碼) ? ? 選課資料表(學號,課號,成績) ? ?目標屬性:學號, 姓名, 平均成績 ?相關表格:學生資料表, 選課資料表 ;步驟二:將相關表格進行「卡氏積」 【執行結果】總共產生20筆記錄及6個欄位數;步驟三:進行「合併(Join);本題以「內部合併」為例」, 亦即在Where 中加入「相關表格」的關聯性 【執行結果】產生5筆記錄 ;步驟四:加入限制條件 【執行結果】產生4筆記錄;步驟五:投影使用者欲「輸出的欄位名稱」 【執行結果】投影出4個欄位;步驟六:使用群組化及聚合函數 【執行結果】 ;步驟七:使用「聚合函數」之後,再進行篩選條件 【執行結果】各人平均成績大於或等於90分者;步驟八:依照某一欄位或「聚合函數」結果,來進行「排序」。 【執行結果】由低分到高分;4.結論: 「學生表」與「課程表」在經過「卡氏積」之後,會展開成各種組合,並產生龐大記錄,但大部份都是不太合理的配對組合。 所以,我們就必須要再透過「內部合併(Inner Join)」來取出符合「限制條件」的記錄。因

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档