Sqlsever 基礎培訓資料 第一部分
《Sqlsever 基礎培訓資料 第一部分》由會員分享,可在線閱讀,更多相關《Sqlsever 基礎培訓資料 第一部分(51頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、第一部分第一部分數(shù)據(jù)庫的設計數(shù)據(jù)庫和應用程序數(shù)據(jù)庫服務器應用程序數(shù)據(jù)庫和應用程序q應用程序應用程序q作用:響應操作并顯示結(jié)果、向數(shù)據(jù)庫請求數(shù)據(jù)作用:響應操作并顯示結(jié)果、向數(shù)據(jù)庫請求數(shù)據(jù)q要求:要求:美觀、操作簡單方便美觀、操作簡單方便q數(shù)據(jù)庫數(shù)據(jù)庫q作用:存儲數(shù)據(jù)、檢索數(shù)據(jù)、生成新的數(shù)據(jù)作用:存儲數(shù)據(jù)、檢索數(shù)據(jù)、生成新的數(shù)據(jù)q要求:統(tǒng)一、安全、性能等要求:統(tǒng)一、安全、性能等數(shù)據(jù)庫能夠做什么q存儲大量數(shù)據(jù),方便檢索和訪問q保持數(shù)據(jù)信息的一致、完整q共享和安全q通過組合分析,產(chǎn)生新的有用信息時下流行的數(shù)據(jù)庫qOracleqOracle公司的產(chǎn)品q“關系-對象”型數(shù)據(jù)庫q產(chǎn)品免費、服務收費qSQL
2、Serverq針對不同用戶群體的五個特殊的版本q易用性好qDB2qIBM公司的產(chǎn)品q支持多操作系統(tǒng)、多種類型的硬件和設備數(shù)據(jù)庫的基本概念 6-1這些客觀存在的、可以被描述事物都是這些客觀存在的、可以被描述事物都是“實體實體”數(shù)據(jù)庫的基本概念 6-2行(記錄)列列數(shù)據(jù)庫的基本概念 6-3 產(chǎn)品數(shù)據(jù)庫表 數(shù)據(jù)庫就是“數(shù)據(jù)”的“倉庫”數(shù)據(jù)庫由表、關系以及操作對象組成 數(shù)據(jù)存放在表中數(shù)據(jù)庫的基本概念 6-4馬蘭A004楊可A003劉開泰B008李新愛B007數(shù)據(jù)庫數(shù)據(jù)庫檢索數(shù)據(jù)檢索數(shù)據(jù)插入數(shù)據(jù)插入數(shù)據(jù)更新數(shù)據(jù)更新數(shù)據(jù)刪除數(shù)據(jù)刪除數(shù)據(jù)數(shù)據(jù)庫的基本概念 6-5編號姓名年齡民族部門1王濤33漢族人事管理部2
3、李梅27漢族人事管理部1127李梅21133王濤1部門編碼民族編碼年齡姓名編號回族2漢族1民族民族編碼市場營銷部2人事管理部1部門部門編碼存在冗余為減少數(shù)據(jù)查找的麻煩,允許數(shù)據(jù)有一定的冗余為減少數(shù)據(jù)查找的麻煩,允許數(shù)據(jù)有一定的冗余數(shù)據(jù)庫的基本概念 6-6Roll NumberNameAddressBookTaken12Alicia Ruth12,Temple StreetAC09114Jason Darren123,Sunset Blvd.AC04315Mary Beth32,Golden AvenueAC02112Alicia Ruth12,Temple StreetAC04312Alici
4、a Ruth12,Tmple StreetAC01115Mary Beth33,Golden AvenueAC011不同的地址不同的地址!存在不正確、不準確的數(shù)據(jù),數(shù)據(jù)庫存在不正確、不準確的數(shù)據(jù),數(shù)據(jù)庫“失去了完整性失去了完整性”姓名姓名知識點 數(shù)據(jù)庫有哪些基本操作?建庫 建表 加約束 創(chuàng)建登錄帳戶 目標 了解設計數(shù)據(jù)庫的基本步驟 熟練實現(xiàn)建庫、建表、加約束建表SQL Server的數(shù)據(jù)類型分類備注和說明數(shù)據(jù)類型說明二進制數(shù)據(jù)類型存儲非子符和文本的數(shù)據(jù)Image可用來存儲圖像文本數(shù)據(jù)類型字符數(shù)據(jù)包括任意字母、符號或數(shù)字字符的組合Char固定長度的非 Unicode 字符數(shù)據(jù)Varchar可變長
5、度非 Unicode 數(shù)據(jù)Nchar固定長度的 Unicode 數(shù)據(jù)Nvarchar可變長度 Unicode 數(shù)據(jù)Text存儲長文本信息Ntext存儲可變長度的長文本日期和時間日期和時間在單引號內(nèi)輸入Datetime 日期和時間數(shù)字數(shù)據(jù)該數(shù)據(jù)僅包含數(shù)字,包括正數(shù)、負數(shù)以及分數(shù)intsmallint整數(shù)floatreal數(shù)字貨幣數(shù)據(jù)類型用于十進制貨幣值MoneyBit數(shù)據(jù)類型表示是/否的數(shù)據(jù)Bit存儲布爾數(shù)據(jù)類型什么是主鍵 關系數(shù)據(jù)庫說,為了唯一區(qū)分表的每一行記錄,必須為表確定一個主鍵。主鍵可以是一個或多個列組成,這些主鍵列的值不能重復。主鍵是兩個表進行關聯(lián)的基礎,所謂“關系”體現(xiàn)的是一個表的字
6、段與另一個表的主鍵的關聯(lián) 選擇主鍵的原則 最少性 盡量選擇單個鍵作為主鍵 穩(wěn)定性 盡量選擇數(shù)值更新少的列作為主鍵再論數(shù)據(jù)完整性數(shù)據(jù)完整性數(shù)據(jù)完整性可靠性可靠性準確性準確性再論數(shù)據(jù)完整性 數(shù)據(jù)存放在表中“數(shù)據(jù)完整性的問題大多是由于設計引起的”創(chuàng)建表的時候,就應當保證以后數(shù)據(jù)輸入是正確的錯誤的數(shù)據(jù)、不符合要求的數(shù)據(jù)不允許輸入創(chuàng)建表:保證數(shù)據(jù)的完整性創(chuàng)建表:保證數(shù)據(jù)的完整性=實施完整性約束實施完整性約束完整性包括2-1 輸入的類型是否正確?年齡必須是數(shù)字 輸入的格式是否正確?身份證號碼必須是18位 是否在允許的范圍內(nèi)?性別只能是”男”或者”女”是否存在重復輸入?學員信息輸入了兩次 是否符合其他特定要
7、求?信譽值大于5的用戶才能夠加入會員列表 列值要求(約束)整行要求(約束)實體完整性河南新鄉(xiāng)趙可以0010016河南新鄉(xiāng)張麗鵑0010015江西南昌雷銅0010014湖南新田吳蘭0010013山東定陶李山0010012.地址地址姓名姓名學號學號江西南昌雷銅0010014約束方法:唯一約束、主鍵約束、標識列約束方法:唯一約束、主鍵約束、標識列域完整性河南新鄉(xiāng)趙可以0010016河南新鄉(xiāng)張麗鵑0010015江西南昌雷銅0010014湖南新田吳蘭0010013山東定陶李山0010012.地址地址姓名姓名學號學號湖北江門李亮8700000000約束方法:限制數(shù)據(jù)類型、檢查約束、外鍵約束、約束方法:限制
8、數(shù)據(jù)類型、檢查約束、外鍵約束、默認值、非空約束默認值、非空約束為什么需要設計數(shù)據(jù)庫修建茅屋需要設計嗎?修建大廈需要設計嗎?結(jié)論:當數(shù)據(jù)庫比較復雜時我們需要設計數(shù)據(jù)庫為什么需要設計數(shù)據(jù)庫良好的數(shù)據(jù)庫設計:q 節(jié)省數(shù)據(jù)的存儲空間q 能夠保證數(shù)據(jù)的完整性q 方便進行數(shù)據(jù)庫應用系統(tǒng)的開發(fā)糟糕的數(shù)據(jù)庫設計:q 數(shù)據(jù)冗余、存儲空間浪費q 內(nèi)存空間浪費q 數(shù)據(jù)更新和插入的異常軟件項目開發(fā)周期 需求分析階段:分析客戶的業(yè)務和數(shù)據(jù)處理需求;概要設計階段:設計數(shù)據(jù)庫的E-R模型圖,確認需求信息 的正確和完整;詳細設計階段:將E-R圖轉(zhuǎn)換為多張表,進行邏輯設計,并應用數(shù)據(jù)庫設計的三大范式進行審核;代碼編寫階段:選擇
9、具體數(shù)據(jù)庫進行物理實現(xiàn),并編寫 代碼實現(xiàn)前端應用現(xiàn)實世界建模信息世界數(shù)據(jù)庫世界模型轉(zhuǎn)換 規(guī)范化設計數(shù)據(jù)庫的步驟-1 收集信息:與該系統(tǒng)有關人員進行交流、坐談,充分理解數(shù)據(jù)庫需要完成的任務BBS論壇的基本功能:l用戶注冊和登錄,后臺數(shù)據(jù)庫需要存放用戶的注冊信息和在線狀態(tài)信息;l用戶發(fā)貼,后臺數(shù)據(jù)庫需要存放貼子相關信息,如貼子內(nèi)容、標題等;l論壇版塊管理:后臺數(shù)據(jù)庫需要存放各個版塊信息,如版主、版塊名稱、貼子數(shù)等;設計數(shù)據(jù)庫的步驟-2 標識對象(實體Entity)標識數(shù)據(jù)庫要管理的關鍵對象或?qū)嶓w 實體一般是名詞:l用戶:論壇普通用戶、各版塊的版主。l用戶發(fā)的主貼l用戶發(fā)的跟貼(回貼)l版塊:論壇的
10、各個版塊信息設計數(shù)據(jù)庫的步驟-3論壇用戶:l呢稱l密碼l電子郵件l生日l性別l用戶的等級l備注信息l注冊日期l狀態(tài)l積分主貼l發(fā)貼人l發(fā)貼表情l回復數(shù)量l標題l正文l發(fā)貼時間l點擊數(shù)l狀態(tài):l最后回復時間回貼l貼子編號l回貼人,l回貼表情l標題l正文l回貼時間l點擊數(shù)版塊l版塊名稱l版主l本版格言l點擊率l發(fā)貼數(shù) 標識每個實體的屬性(Attribute)設計數(shù)據(jù)庫的步驟-4 標識對象之間的關系(Relationship)l跟貼和主貼有主從關系:我們需要在跟貼對象中表明它是誰的跟貼;l版塊和用戶有關系:從用戶對象中可以根據(jù)版塊對象查出對應的版主用戶的情況;l主貼和版塊有主從關系:需要表明發(fā)貼是屬
11、于哪個版塊的;l跟貼和版塊有主從關系:需要表明跟貼是屬于哪個版塊的;繪制E-R圖1111M1MMM M用戶積分性別用戶等級備注信息注冊日期版塊名稱本版留言發(fā)貼數(shù)狀態(tài)密碼昵稱電子郵件生日論壇用戶(BBSUser)管理發(fā)表發(fā)表跟隨屬于屬于點擊率版主標題發(fā)貼人貼子編號正文點擊率版塊(BBSSection)發(fā)貼(BBSTopic)發(fā)貼人正文狀態(tài)貼子編號所在版塊最后回復時間發(fā)貼表情回復數(shù)量點擊率發(fā)貼時間標題M跟貼(BBSReply)所在版塊發(fā)貼時間最后回復時間發(fā)貼表情1論壇E-R圖 如何將E-R圖轉(zhuǎn)換為表 3-2UID主鍵TID主鍵RID主鍵SID主鍵如何將E-R圖轉(zhuǎn)換為表添加各表之間的關系數(shù)據(jù)規(guī)范化
12、僅有好的RDBMS并不足以避免數(shù)據(jù)冗余,必須在數(shù)據(jù)庫的設計中創(chuàng)建好的表結(jié)構(gòu) 最初定義了規(guī)范化的三個級別,范式是具有最小冗余的表結(jié)構(gòu)。這些范式是:第一范式(1st NF First Normal Fromate)第二范式(2nd NFSecond Normal Fromate)第三范式(3rd NF Third Normal Fromate)第一范式(1st NF)BuyerIDCountryCity1142中國中國日本美國北京北京東京紐約BuyerIDAddress1234中國北京市 美國紐約市英國利物浦日本東京市 第一范式的目標是確保每列的原子性 如果每列都是不可再分的最小數(shù)據(jù)單元(也稱為最
13、小的原子單元),則滿足第一范式(1NF)第二范式(2nd NF)如果一個關系滿足1NF,并且除了主鍵以外的其他列,都依賴與該主鍵,則滿足第二范式(2NF)(一是表必須有一個主鍵;二是沒有包含在主鍵中的列必須完全依賴于主鍵,而不能只依賴于主鍵的一部分)第二范式要求每個表只描述一件事情Orders字段字段例子例子訂單編號產(chǎn)品編號訂購日期價 格001A0012000-2-3$29.00 Orders字段字段例子例子訂單編號訂購日期0012000-2-3Products字段字段例子例子產(chǎn)品編號價 格A001$29.00例如(學生選課表):學生課程教師教師職稱教材教室上課時間李四Spring張老師jav
14、a講師Spring深入淺出 08:00張三Struts楊老師 java講師Struts in Action 13:30 修改后,選課表:學生課程教師教師職稱教室上課時間李四Spring張老師java講師08:00張三Struts楊老師java講師13:30課程表:課程教材SpringSpring深入淺出StrutsStruts in Action 第三范式(3rd NF)如果一個關系滿足2NF,并且除了主鍵以外的其他列都不傳遞依賴于主鍵列,則滿足第三范式(3NF)(首先是 2NF,另外非主鍵列必須直接依賴于主鍵,不能存在傳遞依賴。即不能存在:非主鍵列 A 依賴于非主鍵列 B,非主鍵列 B 依賴
15、于主鍵的情況)Orders字段字段例子例子訂單編號訂購日期顧客編號0012000-2-3AB001顧客姓名TonyTony Orders字段字段例子例子訂單編號訂購日期顧客編號0012000-2-3AB001 選課表:學生課程教師教師職稱教室上課時間李四Spring張老師java講師08:00張三Struts楊老師java講師 13:30課程表:課程教材SpringSpring深入淺出StrutsStruts in Action 學生課程教師教室上課時間李四Spring張老師08:00張三Struts楊老師13:30教師表:教師教師職稱張老師java講師楊老師java講師 課程表:課程教材Sp
16、ringSpring深入淺出StrutsStruts in Action總結(jié) 在需求分析階段,設計數(shù)據(jù)庫的一般步驟為:收集信息 標識對象 標識每個對象的屬性 標識對象之間的關系 在概要設計階段和詳細設計階段,設計數(shù)據(jù)庫的步驟為:繪制E-R圖 將E-R圖轉(zhuǎn)換為表格 應用三大范式規(guī)范化表格總結(jié) 為了設計結(jié)構(gòu)良好的數(shù)據(jù)庫,需要遵守一些專門的規(guī)則,稱為數(shù)據(jù)庫的設計范式。第一范式(1NF)的目標:確保每列的原子性。第二范式(2NF)的目標:確保表中的每列,都和主鍵相關 第三范式(3NF)的目標:確保每列都和主鍵列直接相關,而不是間接相關 關于范式 范式可以避免數(shù)據(jù)冗余,減少數(shù)據(jù)庫的空間,減輕維護數(shù)據(jù)完整
17、性的麻煩,但是操作困難,因為需要聯(lián)系多個表才能得到所需要數(shù)據(jù),而且范式越高性能就會越差。要權衡是否使用更高范式是比較麻煩的,一般在項目中,用得最多的也就是第三范式,我認為使用到第三范式也就足夠了,性能好而且方便管理數(shù)據(jù) 規(guī)范化實例假設某建筑公司要設計一個數(shù)據(jù)庫。公司的業(yè)務規(guī)則概括說明如下:公司承擔多個工程項目,每一項工程有:工程號、工程名稱、施工人員等 公司有多名職工,每一名職工有:職工號、姓名、性別、職務(工程師、技術員)等 公司按照工時和小時工資率支付工資,小時工資率由職工的職務決定(例如,技術員的小時工資率與工程師不同)公司定期制定一個工資報表,如圖-1所示規(guī)范化實例-2工程號工程號工程
18、名稱工程名稱職工號職工號姓名姓名職務職務小時工資率小時工資率工時工時實發(fā)工資實發(fā)工資A1花園大廈1001齊光明工程師6513845.001002李思岐技術員6016960.001004葛宇宏律師60191140.00小計2945.00A2立交橋1001齊光明工程師6515975.001003鞠明亮工人5517935.00小計1910.00A3臨江飯店1002李思岐技術員60181080.001004葛宇洪技術員6014840.00小計1920.00圖-1 某公司的工資表規(guī)范化實例-3工程工程號號工程名工程名稱稱職工職工號號姓名姓名職務職務小時工資小時工資率率工時工時A1花園大廈1001齊光明工
19、程師6513A1花園大廈1002李思岐技術員6016A1花園大廈1001齊光明工程師6513A1花園大廈1003鞠明亮工人5517A3臨江飯店1002李思岐技術員6018A3臨江飯店1004葛宇洪技術員6014圖-2 某公司的項目工時表規(guī)范化實例-41.表中包含大量的冗余,可能會導致數(shù)據(jù)異常:更新異常 例如,修改職工號=1001的職務,則必須修改所有職工號=1001的行 添加異常 若要增加一個新的職工時,首先必須給這名職工分配一個工程。或者為了添加一名新職工的數(shù)據(jù),先給這名職工分配一個虛擬的工程。(因為主關鍵字不能為空)刪除異常 例如,1001號職工要辭職,則必須刪除所有職工號1001的數(shù)據(jù)行
20、。這樣的刪除操作,很可能丟失了其它有用的數(shù)據(jù)規(guī)范化實例-52采用這種方法設計表的結(jié)構(gòu),雖然很容易產(chǎn)生工資報表,但是每當一名職工分配一個工程時,都要重復輸入大量的數(shù)據(jù)。這種重復的輸入操作,很可能導致數(shù)據(jù)的不一致性。一張表描述了多件事情,如圖-3所示。應用范式規(guī)范化設計工程號工程名稱 職工號姓名職務小時工資率工時圖圖-3 函數(shù)依賴圖函數(shù)依賴圖工程信息員工信息項目工時信息應用第二范式規(guī)范化工程號工程名稱職工號姓名職務小時工資率工程號職工號工時圖圖-4 應用第二范式應用第二范式工程表員工表項目工時表滿足第三范式嗎?滿足第三范式嗎?應用第三范式規(guī)范化工程號工程名稱職工號姓名職務職務小時工資率工程號職工號工時工程表員工表職務表工程表規(guī)范化和性能的關系 為滿足某種商業(yè)目標,數(shù)據(jù)庫性能比規(guī)范化數(shù)據(jù)庫更重要 通過在給定的表中添加額外的字段,以大量減少需要從中搜索信息所需的時間 通過在給定的表中插入計算列(如成績總分),以方便查詢 進行規(guī)范化的同時,還需要綜合考慮數(shù)據(jù)庫的性能。演講完畢,謝謝觀看!
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。