第一篇:數據庫系統開發總結
數據庫系統開發課程指導思想:
1.掌握SQL的基本語法,重視SQL語言的基本編程
2.針對數據庫應用項目編程,從總體功能出發進行系統功能設計和數據庫設計,在設計的基礎上,靈活編程和調試程序,做好調試記錄。
本學期所學內容要點:
第一章
數據庫有關的基本概念、、DBMS的功能、E-R模型、SQL SERVER的體系結構
第二章
SQL SERVER 的系統數據庫、重要的系統表、主要的工具
第三章
T-SQL 語言---語法、常用函數
第四章
創建、修改數據庫
第五章
1.創建與管理表
2.數據的查詢---與第七章結合3.增、刪、改
第六章
1.創建與管理視圖
2.創建索引
3.存儲過程的設計、觸發器的設計
4.游標
第七章 查詢
第八章
數據保護
1.安全性
2.完整性
3.數據庫的回復
第九章
數據庫系統的設計
第二篇:系統開發總結
課程綜合論文系統開發總結
經過了兩個月緊張而有序的系統開發,收獲頗豐,感觸頗深。現下分經驗收獲、教訓反思、下步設想三大部分總結如下:
一、經驗收獲
1.編寫程序前,對已完成設計構思的系統進行主次分析,排好功能實現順序,列出程序編寫步驟,對于理清編程思路很有幫助。人的邏輯思維可能很發達,在設計當中可以不用筆記,在腦中就能想好三到五個功能的邏輯關系和編寫步驟。然而我們面對的是一個龐大的系統,大系統下分多個子系統,子系統下分多個功能模塊,功能模塊下分多個功能頁面,功能頁面下分多個子功能,而且子系統、功能模塊、功能頁面、子功能之間的邏輯關系構成了一張復雜龐大的邏輯關系網。這就需要我們在原先做好設計流程圖上,系統規劃,全面分析,逐步細化、反復斟酌、推敲,然后列出編程計劃。
2.善于借鑒他人的成果,實現自己的功能,可以有效地縮短開發時間,提高工作效率,是快速提高編程能力的最佳途徑。借鑒他人的勞動成果并不是簡單地拷貝別人的源代碼,如果只是這樣的話,你會因為系統經常的報錯,卻束手無策,最后將其認為是雞肋而抱怨連天。應該是先要分析讀透他人的程序思想,取其精華,去其糟粕,使之成為自己的思想,然后將這些功能塊與自己的功能塊融合。比如在短消息功能模塊中,如果只是單憑自己凝思構想的話,可能也會設計得很好,但是在一兩個星期內完成是不可能的。后來發現了《自動化辦公系統》有相同的功能模塊,開始只是簡單代碼拷貝、粘貼,結果可想而知,出現了一大堆的錯誤。后來只好深入解讀其編程思路,先是了解其數據庫相關表的關系和作用,根據數據預測各個字段的用途以及之間的數據關系,然后理解每個代碼塊的功能和之間的相互關系,最后自己又認真敲打了一遍。經過這么一個完整的過程,對于程序編寫時在規范性,安全性,高效性上的要求和運用有了進一步的理解。這對于我一個編程新手來說是有很大的裨益的。
3.及時、清楚、完整的工作日志,有利于快速提高自身的業務水平,也有利于提高編程效率。工作日志是指將工作中出現的事件按照一定的順序記錄下來。寫工作日志就像是記錄流水帳似的填寫事件的相關要素,看似簡單的工作記錄卻蘊含著很深的學問,工作日志需要包含哪些要素才能記錄完整、一目了然的事件?日志要如何記錄、分門別類才能更有利于以后我們的在學習?我是這樣做的,以一天為工作節點,睡覺之前回憶今天所完成的任務,遇到什么困難,怎樣解決,自己有什么心得體會,以表格形式,字段要素依次為:時間、事件、重點難點、解決死路、心得體會,把事件相對完整地記錄下來,還可以按照時間、困難等級和心得體會來分類,以方便以后查閱學習。
4.每編完一個功能,應及時與其它完成功能一起測試,運行無誤后,方可進行下一步開發。這樣做是為了在測試時如果出錯能很方便地找到出錯的環節和病因所在,我們稱之為“step by step”(一步一腳印),對于一個初級的程序開發者來說是很有幫助的。對于編程人員來說每一個環節都是來不得有半點差錯的,每一個功能都是環環相扣,相互關聯,相互作用的。如果一環出錯,將會對系統造成不可估計的影響,最可怕的危害是它有可能會成為系統的一個隱形的漏洞或是黑客工具的后門。
二、教訓反思
1.學習與實踐的結合不當。當我進行程序開發的時候,發現以前學習的知識點到用時卻忘得一干二凈了,也只好重新學習基本知識了。如果以前把知識學得透徹點,理解深刻點,也許在開發過程中可以縮短時間,提高效率。反思自我,歸其原因:不是當時的學習不夠認真,而是缺乏對知識點的運用實踐;對于像我這樣“半路出家”的編程人員來說,只是理解知識點是遠遠不夠的,如果當時沒有經過編譯、運行、調試的過程,很快就會忘記的。
2.學習目標不專一。我們都知道在學習的時候是最忌諱這個還沒學明白就去學那個的,結果當然是哪個也沒學明白。VS.NET中微軟本身就提供了有很多的控件,再加上它支持第三方提供的控件,這么多的控件各有各的特性,要想運用這些控件就必須了解它提供的接口和性質。由于多數是免費的控件,在控件介紹上就比較模糊或者根本就沒有,在學習上造成很大的阻礙。這個沒學好,就想用另一個,造成學習不深入,學習效果不好。
三、下步設想
1.文章的類型應該有動態添加功能。論文分為“學員論文”、“示范論文”、“論文題目”三大類,只是從整體上粗糙地進行分類,不利于學員的人性化學習。我們還可以從論文的研究方向、深度、等級等進行細化分類的。研究方向可以分為:軍事理論、情報分析、心理學、教育學、管理學、計算機等;性質可以分為:課程論文、畢業論文、學術論文等;等級可以分為:一、二、三或優、良、中、一般、差等。細化分類后的文章更有利于學員的閱讀學習,學員可以根據論文的研究方向進行搜索相同方向的學習,也可以根據論文的性質進行學習,還可以把自己的論文與不同等級的論文進行對比,找出自己的差距和不足,有效地提高學習效率。
2.利用XML,減少數據庫的負擔,提高系統的整體效率。根據XML是一種數據流不同驗證就可以直接通過防火墻,高效的數據傳輸可以有效地在胖客戶端快速顯示幾千字甚至上萬字的文章。一篇文章所占的空間并不大,最多也是幾百KB,但是資源一多,文章的數量很有可能超過幾百萬篇,至少占幾個G的資源,而一般來說數據庫要運行這么大的數據是很困難的。
3.增加RSS閱讀器,將最新的文章提供給其它的網站。這樣可以增強本網站與其它網站的聯系性,也可以在網絡的無限空間里有效地推廣我們的網站。
第三篇:測繪2010,地信2010測繪專業(數據庫系統開發實驗)
測繪2010-4,地理信息2010-1,2班題目
利用數據庫把各個宿舍的書籍管理起來
測繪2010-1,2,3班題目
利用數據庫把各個宿舍的每學期考試成績及相關管理起來
數據庫實驗-小型圖書管理系統
實驗目的采用C/S模式完成一個小型的圖書管理系統;完成從需求分析、數據模式設計到編碼實現、系統調試的所有流程;通過此一圖書管理系統的實現,在實踐中掌握數據庫系統設計的特點、方法和步驟。
實驗環境
SQL Server 2000 +Visual Basic
5人組成一組,共同開發完成;
問題及算法描述
完成一個小型圖書管理系統,功能要求如下:
假定需要保存“圖書”,“讀者”,“借閱”和'作者'信息以及他們之間的關系。
1)圖書基本信息(圖書編號、書名、類別、出版社、出版日期、作者、內容摘要,存放地點,數量)
2)讀者基本信息(讀者編號、讀者名稱、性別、讀者類別、工作單位、家庭住址、聯系電話)
3)借閱基本信息(借閱編號(自動編號)、讀者編號、讀者名稱、圖書編號、書名、出借日期、還書日期)
要求:
1)能對以上三個基本信息進行添加、修改和刪除等操作。
2)能隨時查閱圖書的基本情況;
3)能隨時查詢讀者的借閱情況;
4)能完成借書和還書的功能;
5)以上每項操作應打印出報表
提供的最后資料:
系統需求分析
系統設計(系統總體設計,數據庫設計)
系統實施
運行結果
最后的程序
數據庫實驗-成績管理系統
實驗目的采用C/S模式完成一個小型的圖書管理系統;完成從需求分析、數據模式設計到編碼實現、系統調試的所有流程;通過此一成績管理系統的實現,在實踐中掌握數據庫系統設計的特點、方法和步驟。
實驗環境
SQL Server 2000 +Visual Basic
4人組成一組,共同開發完成;
問題及算法描述
完成一個成績管理系統,功能要求如下:
假定需要保存“成績”,“學生”,“班級”,“系表“,“課程表”,”課程類型“,”教師“信息以及他們之間的關系。
1)成績基本信息(學號、課程編號、成績)
2)學生基本信息(學號、姓名、所屬班級、生日、性別、家庭住址、聯系電話、簡歷)
3)班級基本信息(班級編號、班級名稱、班級所屬部門編號)
4)系基本信息(部門編號、部門名稱)
5)課程基本信息(課程編號、課程姓名、課程學時數、課程類型號)
6)課程類型基本信息(類型編號、類型名稱)
7)教師基本信息(教師編號、教師姓名、所屬部門編號、學歷、職稱、生日、性別、家庭住址、電話、簡歷)
關系:
學生與成績、成績與課程、課程與課程類型、學生與班級、班級與系、教師與系 要求:
1)能對以上基本信息進行添加、修改、刪除和查詢等操作。
2)統計某一學生選課情況
3)統計某一學生成績情況
4)統計某一門課選修情況
5)統計某系中的班級、學生、老師情況
6)以上每項操作應打印出報表
提供的最后作業資料:
系統需求分析
系統設計(系統總體設計,數據庫設計)
系統實施
運行結果
最后的程序
實驗報告封面
數據庫系統開發實驗
×××××系統開發實驗報告
班級:
小組成員(姓名和學號): 組長:
年月日
第四篇:系統開發總結
宿舍管理信息系統
系統管理
指導老師(李政忙老師)
開發團隊成員:
姓名: 楊正明
姓名: 胡友文
姓名: 趙 坤
姓名: 卓仁慧
姓名: 肖遠林
姓名: 李茂良
姓名: 宋 潔
總結書寫人:宋學號:學號:20094042073 學號:20094086066 學號:20094042044 學號: 20094082052 學號: 20094084012 學號:20094084032 學號:20094171085
潔
20094171085
系統開發總結
我們小組經過了這幾個月的緊張而有序的系統開發,收獲頗豐,感觸頗深。現下分經驗收獲、教訓反思、下步設想三大部分總結如下:
二、教訓反思
1.學習與實踐的結合不當。當我們進行程序開發的時候,發現以前學習的知識點到用時卻忘得一干二凈了,也只好重新學習基本知識了。如果以前把知識學得透徹點,理解深刻點,也許在開發過程中可以縮短時間,提高效率。反思自我,歸其原因:不是當時的學習不夠認真,而是缺乏對知識點的運用實踐;對于像我們這樣“半路出家”的編程人員來說,只是理解知識點是遠遠不夠的,如果當時沒有經過編譯、運行、調試的過程,很快就會忘記的。
2.學習不精,對VFP的學習只是一些簡單的膚淺的了解,導致我們在設計的時候,程序指令混亂,在設計的過程中遇到了很多的麻煩,最后還有很多都是借鑒的老師上課時候講的,才得以完成。所以VFP沒學好,也是我們的教訓之一。
3.在做系統的時候,沒有經常討論,而是各自做各自的。沒有溝通,導致我們再系統設計的時候的環節出現短時間的斷裂,這是很不好的一點,以后一定要改正的。不然要是真正做系統的時候,會耽誤很多東西。
二、經驗收獲 1.編寫程序前,對已完成設計構思的系統進行主次分析,排好功能實現順序,列出程序編寫步驟,從系統規劃對于理清編程思路很有幫助。人的邏輯思維可能很發達,在設計當中可以不用筆記,在腦中就能想好三到五個功能的邏輯關系和編寫步驟。然而我們面對的是一個龐大的系統,大系統下分多個子系統,子系統下分多個功能模塊,功能模塊下分多個功能頁面,功能頁面下分多個子功能,而且子系統、功能模塊、功能頁面、子功能之間的邏輯關系構成了一張復雜龐大的邏輯關系網。這就需要我們在原先做好設計流程圖上,系統規劃,全面分析,逐步細化、反復斟酌、推敲,然后列出編程計劃。
2.善于借鑒他人的成果,實現自己的功能,可以有效地縮短開發時間,提高工作效率,是快速提高編程能力的最佳途徑。借鑒他人的勞動成果并不是簡單地拷貝別人的源代碼,如果只是這樣的話,你會因為系統經常的報錯,卻束手無策,最后將其認為是雞肋而抱怨連天。應該是先要分析讀透他人的程序思想,取其精華,去其糟粕,使之成為自己的思想,然后將這些功能塊與自己的功能塊融合。如果其中有些內容只是單憑自己凝思構想的話,可能也會設計得很好,但是在 短時間內完成是不可能的。這次系統考試,開始只是簡單代碼拷貝、粘貼,結果可想而知,出現了一大堆的錯誤。后來只好深入解讀其編程思路,先是了解其數據庫相關表的關系和作用,根據數據預測各個字段的用途以及之間的數據關系,然后理解每個代碼塊的功能和之間的相互關系,最后自己又認真敲打了一遍。經過這么一個完整的過程,對于程序編寫時在規范性,安全性,高效性上的要求和運用有了進一步的理解。這對于我們一個編程新手來說是有很大的好處的。
3.及時、清楚、完整的工作筆記,有利于快速提高自身的業務水平,也有利于提高編程效率。工作筆記是指將工作中出現的事件按照一定的順序記錄下來。寫工作筆記就像是記錄流水帳似的填寫事件的相關要素,看似簡單的工作記錄卻蘊含著很深的學問,工作筆記需要包含哪些要素才能記錄完整、一目了然的事件?筆記要如何記錄、分門別類才能更有利于以后我們的在學習?我是這樣做的,以一天為工作節點,睡覺之前回憶今天所完成的任務,遇到什么困難,怎樣解決,自己有什么心得體會,以表格形式,字段要素依次為:時間、事件、重點難點、解決死路、心得體會,把事件相對完整地記錄下來,還可以按照時間、困難等級和心得體會來分類,以方便以后查閱學習。
4.每編完一個功能,應及時與其它完成功能一起測試,運行無誤后,方可進行下一步開發。這樣做是為了在測試時如果出錯能很方便地找到出錯的環節和病因所在,我們稱之為“step by step”(一步一腳印),對于一個初級的程序開發者來說是很有幫助的。對于編程人員來說每一個環節都是來不得有半點差錯的,每一個功能都是環環相扣,相互關聯,相互作用的。如果一環出錯,將會對系統造成不可估計的影響。
要完成一個優秀的系統,必須熟練掌握工具的特點及用法,要學會舉一反三,充分實現VFP程序的靈活性。在平時的學習實踐中,要不斷開動腦筋,活學活用。要發揚團體合作的精神,互幫互助,共同進步。善于發問,善于思考。
第五篇:數據庫總結
數據庫老師畫的重點
數據庫:數據庫是長期存儲在計算機內、有組織、可共享的大數據集合。數據庫操縱功能:查詢select、插入insert、刪除delete、修改update 數據庫系統的特點:1數據結構化2數據的共享高,冗余度低,易擴充3數據獨
立性高4數據由DBMS統一管理和控制
數據模型的組成要素:數據結構、數據操作、完整性約束 概念模型:要出大體,畫圖 信息世界中的基本概念————
1、實體:客觀存在并可以相互區別的事物稱為實體
2、屬性:實體所具有的某一特性
3、碼(key):唯一標識實體的屬性集稱為碼
4、域(domain):域是一組具有相同數據類型的集合
5、實體型(entity type):具有相同屬性的實體必然具有共同的特征和性質。用實體名
及屬性名集合來抽象和刻畫同類實體,稱為實體型。
6、實體集(entity set):同一類型的實體的集合
7、聯系:在現實世界中,事物內部以及事物之間是有聯系的,這些聯系在信息世界中
反應為實體(型)內部的聯系和實體(型)之間的聯系。實體內部的聯系通常是指
組成實體的各屬性之間的聯系;實體之間的聯系通常是指不同實體集之間的聯系
最常用的數據模型:
1、層次模型(Hierarchical Model)
2、網狀模型(Network Model)
3、關系模型(Relational Model)
4、面向對象模型(Object Oriented Model)
5、對象關系模型(Object Relational Model)其中層次模型和網狀模型統稱為格式化模型
數據庫系統的三級模式結構:
1、模式(scheme):模式也稱邏輯模式,是數據庫中全體數據的邏輯結構和特征的描述,是所有用戶的公共數據視圖。他是數據庫系統模式結構的中間層,既不設計涉及數據的物理存儲細節和硬件環境,也與具體的應用程
序、所使用的應用開發工具及高級程序設計語言無關。
2、外模式(external schema):外模式也稱為子模式(subschema)或用戶模式,他是數
據庫用戶(包括應用程序員和最終用戶)能看見和使用
的局部數據的邏輯結構和特征的描述,是數據庫用戶的數據視圖,是與某一應用有關的數據的邏輯表示。
3、內模式(internal scheme):內模式也稱存儲模式(storage schema),一個數據庫只有
一個內模式。他是數據庫物理結構和存儲方式的描述,是
數據在數據庫內部的表達方式。數據庫的二級映像功能與數據庫獨立性————
為了能夠在系統內部實現這3個抽象層次的聯系和轉換,數據庫管理系統在這三個模式之間提供了兩層映像:
·外模式/模式 映像 ·模式/內模式 映像
正是這兩層映像保證了數據庫系統中的數據能夠具有較高的邏輯獨立性和物理獨立性 關系(relation):D1*D2*D3··*Dn的子集叫做在域D1、D2、D3···Dn上的關系,表示
為R(D1、D2、D3···Dn)
這里的的R表示關系的名字,n是關系的目或度(degree)關系中每個元素是關系中的元組,通常用t表示 當n=1時,稱關系為單元關系(unary relation),或一元關系 當n=2時,稱該關系為二元關系(binary relation)
關系是笛卡爾積的有限子集,所以關系也是一個二維表,表的每行對應一個元組,表的每列對應一個域。由于域可以相同,為了加以區分,必須對每列起一個名字,稱為屬性(attribute)。n目關系必有n個屬性。
若關系中的某一屬性組的值能夠唯一的標識一個元組,則稱該屬性組為候選碼(candidate key)
若一個關系有多個候選碼,則選定其中一個為主碼(primary key)候選碼的諸屬性稱為主屬性(prime attribute)。不包含在任何候選碼中的屬性稱為非主屬性(non-prime attribute)或非碼屬性(non-key attribute)P46 沒有搞明白干嘛使得!!!!!!!!!!!
關系的三類完整性約束:實體完整性、參照完整性、用戶定義的完整性 實體完整性和參照完整性被稱作關系的兩個不變性
1、實體完整性(entity integrity):主碼中的屬性即主屬性不能取空值
2、參照完整性(referential integrity):
若屬性(或屬性組)F是基本關系R的外碼,它與基本關系S的的主碼K相對應(基
本關系R和S不一定是不同的關系),則對于R中每個元組在F上的值必須為:
·或者取空值(F的每個屬性值均為空值)·或者等于S中某個元組的主碼值
SQL(Structured Query Language),即結構化查詢語言,是關系數據庫的標準語言。SQL 的特點:
1、綜合統一
2、高度非過程化
3、面向集合的操作方式
4、以同一種語法結構提供多種使用方式
5、語言簡潔、易學易用 SQL的動詞:
數據查詢:select 數據定義:create、drop、alter(房間)修改表
數據操縱:insert、update(家具)修改數據、delete 數據控制:grant、revoke
繪制ER圖————
在ER圖中有如下四個成分:
矩形框:表示實體,在框中記入實體名。菱形框:表示聯系,在框中記入聯系名。
橢圓形框:表示實體或聯系的屬性,將屬性名記入框中。對于主屬性名,則在其名稱下
劃一下劃線。
連線:實體與屬性之間;實體與聯系之間;聯系與屬性之間用直線相連,并在直線上
標注聯系的類型。(對于一對一聯系,要在兩個實體連線方向各寫1; 對于一對
多聯系,要在一的一方寫1,多的一方寫N;對于多對多關系,則要在兩個實體
連線方向各寫N,M。
基本表是本身獨立存在的表,在SQL中一個關系就對應一個基本表。一個(或多個)基本表對應一個存儲文件,一個表可以帶若干索引,索引也可以放在存儲文件中。存儲文件的邏輯結構組成了關系數據庫的內模式。存儲文件的物理結構是任意的,對用戶是透明的。
視圖是從一個或幾個基本表導出的表。它本身不獨立存儲在數據庫中,即數據庫中只存放視圖的定義而不存放視圖對應的數據。這些數據仍存放在導出視圖的基本表中,因此視圖是一個虛表。視圖在概念上與基本表等同,用戶可以在視圖上再定義視圖。
基本表的定義、刪除與修改:
1、定義基本表:create table ***()
2、定義主鍵:Primary key == not null(中間不用連接符號)unique
3、定義外碼的語句:foreign key(某個字段)references 某表(某字段)
4、定義主碼語句:primary key(***,***)
5、修改基本表:alter table 某表名 add 列名<數據類型>[完整性約束]
drop <完整性約束名>(字段名)
alter column<列名><數據類型>
6、刪除表:drop table 表名[restrict | cascade級聯刪除]
7、建立索引:create [unique] [clustered] index 索引名
on 表名(列名[asc | desc],······)·clustered 表示是聚簇索引
·unique表明此索引的每一個索引值只對應唯一的數據記錄 ·用戶可以在最經常查詢的列上建立聚簇索引以提高查詢效率 ·在一個基本表上只能建立一個聚簇索引
·建立局促索引后,更新該索引列上的數據時,往往導致表中記
錄的物理順序的額變更,代價較大,因此對于經常更新的列不
宜建立聚簇索引
8、刪除索引:drop index <索引名>
上機的時候不太一樣:drop index 表名。索引名字
9、數據的查詢:
select [all | distinct] <目標列表達式>,······ from 表名或者視圖名,··· where 條件表達式
group by 列名1 [having 條件表達式] order by 列名2 [asc | desc] ·如果有group by 子句,則結果按“列名1”的值進行分組,該屬性列值相
等的元組為一個組。通常會在每組中作用聚集函數。如果group by 子句帶
having短語,則只有滿足指定條件的組才予以輸出。
·如果有order by 子句,則結果表按“列名2”的值的升序或降序排序 ·select Sname Name,‘Year of Birth:’Birth,2013-Sage Birthday,lower
(Sdept)Department
from Student
lower表示小寫
常用的查詢條件————
比
較:大于、等于、小于、不等于(< >/!=)、大于/小于等于、不小于、不大于、not+上述比較運算符
確定范圍:between and,not between and 確定集合:in,not in 字符匹配:like,not like 空
值:is null,is not null 多重條件(邏輯運算):and,or,not
例子————
·select Sname,Sage
from Student
where Sdept(not)in(‘cs’,‘ma’,‘is’)
字符匹配:[not] like ‘字符串’[escape‘換嗎字符’] 百分號表示任意長度、下劃線表
示任意單個字符 聚集函數————
count([distinct | all] *)
統計元組個數 count([distinct| all] 列名)
統計一列中值的個數 sum([distinct| all] 列名)
計算一列值的總和(此列必須是數值型)avg([distinct| all] 列名)
計算一列的平局值(此列必須是數值型)max([distinct| all] 列名)
求一列中的最大值 min ·如果指定distinct短語,則表示在計算時要取消指定列中的重復值。如果不指定distinct
短語或者指定all短語(all為缺省值),則表示不取消重復。
·注意在聚集函數遇到空值時,除count(*)外,都跳過空值而只處理非空值。·注意where子句中不能用聚集函數作為條件表達式
group by子句————
where 子句與having 短語的區別在于作用對象不同。Where 子句作用對象作用于基本表或試圖,從中選擇條件的元組。Having短語作用于組,從中選擇滿足條件的組。
例子:select Sno from SC
group by Sno having count(*)>3 查詢了選修3門以上課程的學生學號 鏈接查詢—————— 例子:
非自然鏈接
·select Student.*,SC.*
from Student,SC
Where Student.Sno=SC.Sno
自然鏈接
·select Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade
from Student,SC
where Student.Sno=SC.Sno
自身鏈接
·select FIRST.Cno,SECOND.Cpno
from Course FIRST,Course SECOND
where FIRST.Cpno=SECOND.Cpno
外連接
·select Student.Sno,Sname,Sage,Sdept,Cno,Grade
from Student left outer join SC
on Student.Sno=SC.Sno ·左外鏈接列出左邊關系中所有的元組,右外連接列出右邊關系中的所有元組
嵌套查詢
·select Sname from Student
where Sno in(select Sno from SC where Cno=‘2’)
·找出每個學生超過他選修課程平均成績的課程號
Select Sno,Cno From SC x Where Grade >=(select avg(Grade)
From SC y Where y.Sno=x.Sno)
授權————
Grant 權限,····· On 對象類型 對象名,····· To 用戶,·····
[with grant option]只一句表示權限的傳遞
例子: ·Grant all privileges
On Student,Course
To U1,U2
·grant update(Sno),select
on Student
to u4
·revoke update(Sno)
on table Student
from u4
一個滿足BCNF的關系模式有:
·所有非主屬性對每一個碼都是完全函數依賴
3NF 編輯
3NF,即第三范式是要求一個數據庫表中不包含已在其它表中已包含的非主關鍵字信息。例如,存在一個部門信息表,其中每個部門有部門編號(dept_id)、部門名稱、部門簡介等信息。那么在員工信息表中列出部門編號后就不能再將部門名稱、部門簡介等與部門有關的信息再加入員工信息表中。如果不存在部門信息表,則根據第三范式(3NF)也應該構建它,否則就會有大量的數據冗余。簡而言之,第三范式就是屬性不依賴于其它非主屬性。滿足第三范式(3NF)必須先滿足第二范式(2NF)
2NF(第二范式)
第二范式(2NF)是在第一范式(1NF)的基礎上建立起來的,即滿足第二范式(2NF)必須先滿足第一范式(1NF)。第二范式(2NF)要求數據庫表中的每個實例或行必須可以被唯一地區分。為實現區分通常需要為表加上一個列,以存儲各個實例的唯一標識。如圖3-2 員工信息表中加上了員工編號(emp_id)列,因為每個員工的員工編號是唯一的,因此每個員工可以被唯一區分。這個惟一屬性列被稱為主關鍵字或主鍵、主碼。