版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
網(wǎng)絡數(shù)據(jù)庫主講教師:李永勝——數(shù)學與計算機科學學院Tel-mail:lyshlh@163.com課程與上機安排總課時:20學時,5周,4節(jié)/周其中:2節(jié)理論課,2節(jié)上機課課程性質:通選課考核方式:考查,筆試,安排在第五次課進行,地點:逸夫樓7樓。教材:自編,即上課所使用的課件。推薦教材:《網(wǎng)絡數(shù)據(jù)庫SQLServer2000》杜佰林主編,清華大學出版社出版,2007年9月版價格27元前言數(shù)據(jù)庫軟件是應用軟件中最基礎、最低層的支持全球數(shù)據(jù)庫目前每年有超過80億美元的市場規(guī)模由于數(shù)據(jù)庫涉及高端技術,門檻很高,使得數(shù)據(jù)庫市場的競爭僅在有限的選手之間進行主流的大型數(shù)據(jù)庫產品OracleSQLServerSybaseDB2InformixSQLServer2000簡介MicrosoftSQLServer2000中文版(以后簡稱為SQLServer2000或SQLServer),是基于客戶機/服務器(Client/Server)模型的新一代大型關系型數(shù)據(jù)庫管理系統(tǒng)(DBMS)。SQLServer2000是專為配合.NET體系結構而設計的。它所提供的工具和支持系統(tǒng)能夠幫助客戶建立活動服務器頁面和COM+對象,從而實現(xiàn)商務邏輯并訪問由SQLServer進行管理的數(shù)據(jù)。目前的最新版本是SQLServer2005SQLServer的官方網(wǎng)站:/china/sql1.1.1SQLServer2000的體系結構與運行環(huán)境
SQLServer2000是一個基于客戶機/服務器(C/S)模式的關系數(shù)據(jù)庫管理系統(tǒng)??蛻舳藨贸绦?/p>
SQLServer2000
提交SQL語句
查詢結果返回前臺
客戶端
服務器端
圖1.1SQLServer2000客戶機/服務器結構示意圖
1.2.1SQLServer環(huán)境需求SQLServer2000常見的版本企業(yè)版(EnterpriseEdition)標準版(StandardEdition)個人版(PersonalEdition)開發(fā)版(DeveloperEdition)SQLServer2000各版本簡介企業(yè)版:作為生產數(shù)據(jù)庫服務器使用。是各個版本中功能最為強大、齊全而又最為復雜的版本。它包含了SQLServer數(shù)據(jù)庫以及分析服務的所有功能。標準版:作為小工作組或部門的數(shù)據(jù)庫服務器使用。對于中小型組織在可擴展性、可用性、性能以及分析服務方面的要求不是特別高的情況下,是一個更好的選擇。個人版:供移動的用戶使用。其功能與標準版相當,但在某些方面會有所區(qū)別。開發(fā)版:供程序員用來開發(fā)將SQLServer2000用作數(shù)據(jù)存儲的應用程序,只能將開發(fā)版作為開發(fā)和測試系統(tǒng)使用,不能作為生產服務器使用。安裝、運行SQLServer2000的硬件需求(1)計算機Inter及其兼容計算機,Pentium166Mz或者更高處理器或DECAlpha和其兼容系統(tǒng)。(2)內存(RAM)企業(yè)版最少64MB內存,其他版本最少需要32MB內存,建議使用更多的內存。(3)硬盤空間完全安裝(Full)需要180MB的空間,典型安裝(Typical)需要170MB的空間,最小安裝(Minimum)需要65MB的空間。2、安裝、運行SQLServer2000的軟件需求SQLServer2000企業(yè)版必須運行于安裝WindowsNTServerEnterpriseEdition4.0或者Windows2000AdvancedServer以及更高版本的操作系統(tǒng)下。SQLServer2000標準版必須運行于安裝WindowsNTServerEnterpriseEdition4.0、WindowsNTServer4.0、Windows2000Server以及更高版本的操作系統(tǒng)下。SQLServer2000個人版可在多種操作系統(tǒng)下運行,如可運行于Windows9x,WindowsNT4.0或Windows2000的服務器版或工作站版的操作系統(tǒng)下。SQLServer2000開發(fā)者版可運行于上述Windows9x以外的所有操作系統(tǒng)下。1.2.2SQLServer2000的安裝SQLServer2000的安裝過程與其它MicrosoftWindows系列產品類似。用戶可根據(jù)向導提示,選擇需要的選項一步一步地完成。1.3SQLServer工具和實用程序1.3.1企業(yè)管理器1.3.2服務管理器1.3.3查詢分析器1.3.1企業(yè)管理器企業(yè)管理器是基于一種新的被稱為微軟管理控制臺(MicrosoftManagementConsole)的公共服務器管理環(huán)境,它是SQLServer中最重要的一個管理工具。企業(yè)管理器不僅能夠配置系統(tǒng)環(huán)境和管理SQLServer,而且由于它能夠以層疊列表的形式來顯示所有的SQLServer對象,因而所有SQLServer對象的建立與管理都可以通過它來完成。利用企業(yè)管理器可以完成的操作管理SQLServer服務器;建立與管理數(shù)據(jù)庫;建立與管理表、視圖、存儲過程、觸發(fā)程序、角色、規(guī)則、默認值等數(shù)據(jù)庫對象,以及用戶定義的數(shù)據(jù)類型;備份數(shù)據(jù)庫和事務日志、恢復數(shù)據(jù)庫;復制數(shù)據(jù)庫;設置任務調度;設置警報;提供跨服務器的拖放控制操作;管理用戶帳戶;建立Transact-SQL命令語句以及管理和控制SQLMail。圖1-20SQLServer企業(yè)管理器(EnterpriseManager)界面1.3.2服務管理器(ServiceManager)SQLServer服務管理器是在服務器端實際工作時最有用的實用程序,其界面如圖1-21所示。服務管理器用來啟動、暫停、繼續(xù)和停止數(shù)據(jù)庫服務器的實時服務,其提供的服務包括:SQLServer、SQLServerAgent、MSDTC(MicrosoftDistributedTransactionCoordinator,微軟分布式事務協(xié)調器)。圖1-21SQLServer服務管理器(ServiceManager)界面1.3.3查詢分析器(QueryAnalyzer)SQLServer2000新的圖形化查詢分析器用于輸入和執(zhí)行Transaction-SQL語句,并且迅速查看這些語句的結果,以分析和處理數(shù)據(jù)庫中的數(shù)據(jù)。這是一個非常實用的工具,對掌握SQL語言,深入理解SQLServer的管理工作有很大幫助。第2章服務器管理2.2服務器注冊2.3服務器啟動、暫停和停止2.4服務器連接與斷開2.5服務器配置選項設置上一章返回目錄2.2服務器注冊所謂服務器注冊是指將網(wǎng)絡系統(tǒng)中的其它SQLServer服務器注冊到企業(yè)管理器中,以便于管理。注冊過程1.在企業(yè)管理器中,右鍵單擊“SQLServer組,選擇“新建SQLServer注冊”,就會出現(xiàn)如圖3-3所示的注冊SQLServer向導對話框。圖2-3注冊服務器向導對話框
2.在注冊服務器向導對話框中不選擇復選框,單擊“下一步”按鈕,就會出現(xiàn)選擇或創(chuàng)建服務器名稱對話框,如圖3-5所示。在可用服務器中選擇本機的服務器,如“702-12”,或者將本機右下角的服務器名稱復制到可用服務器中,并添加到右邊的方框中,然后單擊“下一步”。圖3-5選擇或創(chuàng)建服務器名稱3.出現(xiàn)選擇身份驗證模式對話框,即選擇WindowsNT身份驗證或SQLServer身份驗證。WindowsNT身份驗證可以使用戶只需維護、使用一個WindowsNT登錄帳戶和口令,而使用SQLServer身份驗證,則必須維護WindowsNT登錄帳戶和SQLServer登錄帳戶及口令。如圖3-6和圖3-7所示。我們上機時應該選擇WindowsNT身份驗證圖3-6選擇身份驗證模式4.單擊“下一步”按鈕,就會出現(xiàn)選擇服務器組或創(chuàng)建服務器組對話框,如圖3-8所示圖3-8選擇服務器組或創(chuàng)建服務器組5.服務器組確定后,單擊“下一步”按鈕,就會出現(xiàn)確定注冊對話框,單擊“完成”按鈕,則企業(yè)管理器將注冊服務器,如下圖3-9所示。6.接著出現(xiàn)注冊SQLServer消息對話框,注冊成功后,按“關閉”按鈕結束設置。圖3-10注冊SQLServer消息2.3服務器啟動、暫停和停止啟動服務器,下面介紹常用的兩種方法:1.自動啟動服務器2.用企業(yè)管理器(EnterpriseManager)啟動暫停和關閉服務器的方法與啟動服務器的方法類似,只需在相應的窗口中選擇“暫停(Pause)”或“停止(Stop)”選項即可。為了保險起見,我們通常會在停止運行SQLServer之前先暫停SQLServer。其主要原因在于,一旦暫停SQLServer,將不再允許任何新的上線者,然而原先已聯(lián)機到SQLServer的用戶仍然能繼續(xù)作業(yè),這樣可以確保原來正在進行中的作業(yè)不會中斷,而可以持續(xù)進行并加以完成。暫停和關閉服務器2.4網(wǎng)絡服務器的連接在企業(yè)管理器中,從操作(Action)菜單中選擇新建SQLServer注冊,然后單擊下一步。稍作等待后,出現(xiàn)“注冊SQL向導對話框”。如下圖。2.4網(wǎng)絡服務器的連接3、在對話框的左邊列表中選擇需要連接的網(wǎng)絡服務器的名稱(也可以輸入其IP地址),然后將其添加到右邊的“添加服務器”列表中。4、在出現(xiàn)的對話框中選擇“SQL身份驗證登錄”。5、單擊“下一步”,進入登錄對話框,并輸入用戶名:sa,密碼為空(機房的密碼已經(jīng)設為空),然后單擊“下一步”,“下一步”…直到完成。圖3-12連接SQLServer時的輸入登錄名和口令窗口2.5服務器配置選項設置使用SQLServer企業(yè)管理器配置服務器的操作方法為:在企業(yè)管理器的SQLServer組(Group)中用右鍵單擊所要進行配置的服務器,從快捷菜單中選擇“屬性(Properties)”選項,就會出現(xiàn)如圖3-13所示的對話框,其中可以進行服務器的屬性(配置選項)的設置。(注意:一般不用對其進行配制,按默認即可)圖3-13服務器屬性設置對話框第3章數(shù)據(jù)庫管理3.1數(shù)據(jù)庫的存儲結構3.2創(chuàng)建、修改和刪除數(shù)據(jù)庫3.3數(shù)據(jù)庫備份3.4恢復數(shù)據(jù)庫3.5數(shù)據(jù)庫的維護上一章返回目錄3.2.1創(chuàng)建數(shù)據(jù)庫每個數(shù)據(jù)庫都由以下幾個部分的數(shù)據(jù)庫對象所組成:關系圖、表、視圖、存儲過程、用戶、角色、規(guī)則、默認、用戶自定義數(shù)據(jù)類型和用戶自定義函數(shù)。每個SQLServer實例有四個系統(tǒng)數(shù)據(jù)庫(master、model、tempdb和msdb)以及一個或多個用戶數(shù)據(jù)庫,這些數(shù)據(jù)庫不能隨意刪除。記錄SQLServer系統(tǒng)的所有系統(tǒng)級別信息保存所有的臨時表和臨時存儲過程用作在系統(tǒng)上創(chuàng)建的所有數(shù)據(jù)庫的模板供代理程序調度警報和作業(yè)以及記錄操作員時使用創(chuàng)建數(shù)據(jù)庫的方法使用企業(yè)管理器(EnterpriseManager)創(chuàng)建數(shù)據(jù)庫使用Transact-SQL語言創(chuàng)建數(shù)據(jù)庫。(2)使用企業(yè)管理器創(chuàng)建數(shù)據(jù)庫(1)在企業(yè)管理器中,單擊工具欄中的圖標,或在數(shù)據(jù)庫文件夾或其下屬任一數(shù)據(jù)庫圖標上單擊右鍵,選擇新建數(shù)據(jù)庫選項,就會出現(xiàn)如圖4-9所示的對話框。(2)在常規(guī)(General)頁框中,要求用戶輸入數(shù)據(jù)庫名稱以及排序規(guī)則名稱,上機時輸入數(shù)據(jù)庫名:Stu_db,排序規(guī)則按默認即可。(3)點擊數(shù)據(jù)文件(DataFiles)頁框,從該頁框可以看到數(shù)據(jù)庫文件的邏輯名稱、存儲位置、初始容量大小和所屬文件組名稱,如圖4-10所示。(4)點擊事務日志(TransactionLog)頁框,該頁框用來設置事務日志文件信息,如圖4-11所示。(5)單擊圖4-11中的“確定”按鈕,則開始創(chuàng)建新的數(shù)據(jù)庫。圖4-9創(chuàng)建數(shù)據(jù)庫對話框中的常規(guī)頁框圖4-10創(chuàng)建數(shù)據(jù)庫對話框中的數(shù)據(jù)文件頁框圖4-11創(chuàng)建數(shù)據(jù)庫對話框中的事務日志頁框(3)使用Transact-SQL語言創(chuàng)建數(shù)據(jù)庫,語法如下:在查詢分析器中輸入以下語句:CREATEDATABASEdatabase_name[設置日志文件、默認規(guī)則等的語句]3.2.2修改數(shù)據(jù)庫利用企業(yè)管理器修改數(shù)據(jù)庫右鍵單擊要修改的數(shù)據(jù)庫,選擇“屬性”,然后在屬性中修改即可。3.2.3刪除數(shù)據(jù)庫1.利用企業(yè)管理器刪除數(shù)據(jù)庫2.利用Drop語句刪除數(shù)據(jù)庫Drop語句可以從SQLServer中一次刪除一個或多個數(shù)據(jù)庫。其語法如下:Dropdatabasedatabase_name[,…n](在查詢分析器中輸入語句)3.3數(shù)據(jù)庫備份與還原右鍵單擊所要備份的數(shù)據(jù)庫選擇“所有任務”,選擇“備份”或“還原”即可。第4章數(shù)據(jù)庫對象的操作4.1數(shù)據(jù)類型4.2表操作4.3視圖操作4.4索引操作4.5存儲過程4.6觸發(fā)器4.7圖表上一章返回目錄4.1數(shù)據(jù)類型4.1.1系統(tǒng)數(shù)據(jù)類型4.1.2自定義數(shù)據(jù)類型4.1.1系統(tǒng)數(shù)據(jù)類型1.整型數(shù)據(jù)類型2.浮點數(shù)據(jù)類型3.字符數(shù)據(jù)類型4.日期和時間數(shù)據(jù)類型5.文本和圖形數(shù)據(jù)類型6.貨幣數(shù)據(jù)類型7.位數(shù)據(jù)類型8.二進制數(shù)據(jù)類型9.特殊數(shù)據(jù)類型10.新增數(shù)據(jù)類型1.整型數(shù)據(jù)類型整型數(shù)據(jù)類型是最常用的數(shù)據(jù)類型之一,它主要用來存儲數(shù)值,可以直接進行數(shù)據(jù)運算,而不必使用函數(shù)轉換。int(integer):int(或integer)數(shù)據(jù)類型可以存儲從-231(-2,147,483,648)到231-1(2,147,483,647)范圍之間的所有正負整數(shù)。Smallint:可以存儲從-215(-32,768)到215-1范圍之間的所有正負整數(shù)。Tinyint:可以存儲從0到255范圍之間的所有正整數(shù)。2.浮點數(shù)據(jù)類型浮點數(shù)據(jù)類型用于存儲十進制小數(shù)。Real:可以存儲正的或者負的十進制數(shù)值,最大可以有7位精確位數(shù)。Float:可以精確到第15位小數(shù),其范圍從-1.79E-308到1.79E+308。3.字符數(shù)據(jù)類型字符數(shù)據(jù)類型可以用來存儲各種字母、數(shù)字符號和特殊符號。Char:其定義形式為char(n),每個字符和符號占用一個字節(jié)的存儲空間。Varchar:其定義形式為varchar(n)。用char數(shù)據(jù)類型可以存儲長達255個字符的可變長度字符串。4.日期和時間數(shù)據(jù)類型Datetime:用于存儲日期和時間的結合體。它可以存儲從公元1753年1月1日零時起到公元9999年12月31日23時59分59秒之間的所有日期和時間。Smalldatetime:與datetime數(shù)據(jù)類型類似,但其日期時間范圍較小,它存儲從1900年1月1日到2079年6月6日內的日期。5.文本和圖形數(shù)據(jù)類型
Text:用于存儲大量文本數(shù)據(jù),其容量理論上為1到231-1(2,147,483,647)個字節(jié),但實際應用時要根據(jù)硬盤的存儲空間而定。
Ntext:與text數(shù)據(jù)類型類似,存儲在其中的數(shù)據(jù)通常是直接能輸出到顯示設備上的字符,顯示設備可以是顯示器、窗口或者打印機。Image:用于存儲照片、目錄圖片或者圖畫,其理論容量為231-1(2,147,483,647)個字節(jié)。6.貨幣數(shù)據(jù)類型Money:用于存儲貨幣值,存儲在money數(shù)據(jù)類型中的數(shù)值以一個正數(shù)部分和一個小數(shù)部分存儲在兩個4字節(jié)的整型值中,存儲范圍為-922337213685477.5808到922337213685477.5808,精度為貨幣單位的萬分之一。Smallmoney:與money數(shù)據(jù)類型類似,但其存儲的貨幣值范圍比money數(shù)據(jù)類型小,其存儲范圍為-214748.3468到214748.3467。7.位數(shù)據(jù)類型Bit:稱為位數(shù)據(jù)類型,其數(shù)據(jù)有兩種取值:0和1,長度為1字節(jié)。8.二進制數(shù)據(jù)類型Binary:其定義形式為binary(n),數(shù)據(jù)的存儲長度是固定的,即n+4字節(jié),當輸入的二進制數(shù)據(jù)長度小于n時,余下部分填充0。
Varbinary:其定義形式為varbinary(n),數(shù)據(jù)的存儲長度是變化的,它為實際所輸入數(shù)據(jù)的長度加上4字節(jié)。其它含義同binary。4.2表操作4.2.1創(chuàng)建表4.2.2增加、刪除和修改字段4.2.3創(chuàng)建、刪除和修改約束4.2.4查看表格4.2.1創(chuàng)建表在SQLServer2000中,每個數(shù)據(jù)庫中最多可以創(chuàng)建200萬個表,用戶創(chuàng)建數(shù)據(jù)庫表時,最多可以定義1024列,也就是可以定義1024個字段。
SQLServer2000提供了兩種方法創(chuàng)建數(shù)據(jù)庫表,第一種方法是利用企業(yè)管理器(EnterpriseManager)創(chuàng)建表;另一種方法是利用Transact-SQL語句中的create命令創(chuàng)建表。1.利用EnterpriseManager創(chuàng)建表在EnterpriseManager中,展開指定的服務器和數(shù)據(jù)庫,打開想要創(chuàng)建新表的數(shù)據(jù)庫,用右鍵單擊表對象,從彈出的快捷菜單中選擇新建表選項,或者在工具欄中選擇圖標,就會出現(xiàn)新建表對話框,在該對話框中,可以定義列的以下屬性:列名稱、數(shù)據(jù)類型、長度、精度、小數(shù)位數(shù)、是否允許為空、缺省值、標識列、標識列的初始值、標識列的增量值和是否有行的標識。然后根據(jù)提示進行設置。1.利用EnterpriseManager創(chuàng)建表上機練習:利用“企業(yè)管理器分別建立表Stu_info、Subject、CJ、SKB注意:表的結構和數(shù)據(jù)均在Excel文件數(shù)據(jù)庫表結構.xls中。2.利用CreateTable命令創(chuàng)建表格式:CreateTableTable_Name(字段名1字段類型,(寬度)[Primarykey][notnull],字段名2字段類型,(寬度)[Primarykey][notnull],……)上機練習:利用命令建立表Jsgl_Hpsx注意:其語句和格式均在Excel文件Jsgl_Hpsx.xls中。4.3查詢分析器的使用SQL的查詢分析器是SQL語句輸入和執(zhí)行的窗口,具有強大的功能,在實際開發(fā)中被廣泛的使用。查詢分析器的打開:在“企業(yè)管理器”中,單擊“工具”--“SQL查詢分析器”即可打開SQL的查詢分析器。4.4、數(shù)據(jù)的導入SQL數(shù)據(jù)庫可以與Access、Excel等文件實現(xiàn)數(shù)據(jù)導入、導出。4.4.1導入Access數(shù)據(jù)庫利用DTS導入、導出向導導入Access數(shù)據(jù)庫的步驟如下:(1)打開EnterpriseManager(企業(yè)管理器),選定需導入數(shù)據(jù)的數(shù)據(jù)庫,右鍵單擊,選擇“所有任務”---導入數(shù)據(jù),啟動數(shù)據(jù)導入向導工具,就會出現(xiàn)歡迎使用向導對話框。(2)單擊“下一步”按鈕,則出現(xiàn)選擇數(shù)據(jù)源對話框。(3)按照提示選擇數(shù)據(jù)源,單擊“下一步”,選擇導入的目的地,單擊“下一步”----下一步----完成。4.4.2、導入Excel文件數(shù)據(jù)庫(1)啟動企業(yè)管理器,展開選定的服務器,用右鍵單擊該服務器圖標,從快捷菜單中選擇所有任務(alltasks),然后再從子菜單中選擇導入數(shù)據(jù),啟動數(shù)據(jù)導入向導工具,就會出現(xiàn)歡迎使用向導對話框,如圖9-1所示。(2)單擊“下一步”按鈕,則出現(xiàn)選擇數(shù)據(jù)源對話框,如圖9-18所示。(3)按照提示進行相應操作即可。注意:數(shù)據(jù)類型的轉換和數(shù)據(jù)的準確性。4.5、數(shù)據(jù)的導出1.導出數(shù)據(jù)庫至Access(1)打開企業(yè)管理器,展開指定的服務器,用右鍵單擊該服務器圖標,從彈出的快捷菜單中選擇所有任務(alltasks)選項,然后再從子菜單中選擇導出數(shù)據(jù)選項,則會出現(xiàn)數(shù)據(jù)轉換服務導入和導出向導對話框,如圖9-28所示,它顯示了該導出向導所能完成的操作。2、其他操作跟數(shù)據(jù)的導入類似。注意:導出到Access數(shù)據(jù)庫時,數(shù)據(jù)庫須先建立。3.4附加數(shù)據(jù)庫當本機的某數(shù)據(jù)庫需要“復制”到另一臺計算機中,則通常使用“附加數(shù)據(jù)庫”的方法。方法:1、在目的計算機的企業(yè)管理器中,右鍵單擊“數(shù)據(jù)庫”項,選擇“所有任務”--“附加數(shù)據(jù)庫”。2、按彈出窗口的提示進行操作即可。第5章Transact-SQL語言
Transact-SQL是Microsoft公司對SQL(結構化數(shù)據(jù)查詢語言)最新標準的擴展,是SQLServer2000核心組件之一。程序設計人員要編寫具有實際意義的C/S或B/S模式下的數(shù)據(jù)庫應用程序,必須借助于Transact-SQL語言。返回目錄Transact-SQL語言主要組成部分Transact-SQL(T-SQL)是SQLServer的編程語言,是結構化查詢語言SQL的增強版本,它主要包括:數(shù)據(jù)定義語言(DDL,DataDefinitionLanguage)數(shù)據(jù)操縱語言(DML,DataManipularionLanguage)數(shù)據(jù)控制語言(DCL,DataControlLanguage)系統(tǒng)存儲過程(SystemStoredProcedure)一些附加的語言元素5.1數(shù)據(jù)定義語言(DDL)數(shù)據(jù)定義語言是指用來定義和管理數(shù)據(jù)庫以及數(shù)據(jù)庫中的各種對象的語句,這些語句包括CREATE、ALTER和DROP等語句。在SQLServer2000中,數(shù)據(jù)庫對象包括表、視圖、觸發(fā)器、存儲過程、規(guī)則、缺省、用戶自定義的數(shù)據(jù)類型等。這些對象的創(chuàng)建、修改和刪除等都可以通過使用CREATE、ALTER、DROP等語句來完成。程序清單5-1:創(chuàng)建數(shù)據(jù)庫的一個例子CREATEDATABASEJsgl_Hpsx程序清單5-2:修改視圖的一個例子ALTERVIEWyourviewASSELECTtitle,ytd_salesFROMtitlesWHEREtype='mod_cook'GOSELECT*FROMyourviewGO
5.2數(shù)據(jù)操縱語言(DML)數(shù)據(jù)操縱語言是指用來查詢、添加、修改和刪除數(shù)據(jù)庫中數(shù)據(jù)的語句,這些語句包括SELECT、INSERT、UPDATE、DELETE等。這是在實際的開發(fā)中,用得最多的一種語言。一、SELECT語句SELECT語句的語法形式如下:SELECTselect_list
[INTOnew_table]
FROMtable_source
[WHEREsearch_condition]
[GROUPBYgroup_by_expression]
[HAVINGsearch_condition]
[ORDERBYorder_expression[ASC|DESC]]幾種常用語句的用法SELECT子句用于指定所選擇的要查詢的特定表中的列,它可以是星號(*)、表達式、列表、變量等。INTO子句用于指定所要生成的新表的名稱。FROM子句用于指定要查詢的表或者視圖,最多可以指定16個表或者視圖,用逗號相互隔開。WHERE子句用來限定查詢的范圍和條件。GROUPBY子句是分組查詢子句。HAVING子句用于指定分組子句的條件。Select、From、Into子句的用法SELECT子句用于指定所選擇的要查詢的特定表中的列,它可以是星號(*)、表達式、列表、變量等。FROM子句用于指定要查詢的表或者視圖,最多可以指定16個表或者視圖,用逗號相互隔開。例1:從Stu_info表中查詢所有同學的“學號、姓名、性別和年齡信息。Select學號,姓名,性別,年齡fromstu_ifnoSelect*fromstu_infoINTO子句用于指定所要生成的新表的名稱。例3:從Stu_info表中查詢所有同學的“學號、姓名、性別和年齡信息,并保存到新表stu_part中.Select學號,姓名,性別,年齡intostu_partfromStu_infoWhere子句的用法
Where子句用來限定查詢的范圍和條件。形式:Select….From….Where條件1、用于表示W(wǎng)here條件的關系運算符號有:=、>、<、>=、<=、<>等例1:從Stu_info表中查詢所有男同學信息。Select*fromstu_infoWhere性別=‘男’2、用于表示W(wǎng)here條件的邏輯運算符號有:OR、AND、NOT例2:從Stu_info表中查詢所有年齡大于20的女同學。Select*fromstu_infoWhere性別=‘女’and年齡>20例3:從Stu_info表中查詢所有軟件2班和會計1班的同學。、Select*fromstu_infoWhere所在班級=‘軟件2班’or所在班級=‘會計1班’Where子句的用法
3、用于表示W(wǎng)here條件的特殊運算符號有:%(代表任意字符)、Between(介于)、Like(象)等例1:從Stu_info表中查詢所有姓李的同學信息。Select*fromstu_infoWhere姓名Like‘李%’例2:從CJ表中查詢所有成績介于80到90分之間的同學信息。Select*fromCJWhere成績Between80and90例3:從Stu_info表中查詢所有1班的同學信息。Select*fromstu_infoWhere班級名Like‘%1班’Groudby、Having、Orderby子句的用法
GROUPBY子句可以將查詢結果按照指定的字段分組,它常常與一些統(tǒng)計函數(shù)共用。統(tǒng)計函數(shù):Count(*):計數(shù),Sum(求和字段)求和,Avg(求平均值字段)求平均值。HAVING子句可以實現(xiàn)對分組后的結果按照某種條件進行篩選。例1:統(tǒng)計Stu_info表中男女同學的人數(shù)和平均年齡。Select性別Count(*)as人數(shù),avg(年齡)as平均年齡fromstu_infoGroupby性別例2:從成績表中篩選出選修了一門以上課程的學生學號及其選修門數(shù)。Select學號,Count(*)as選修門數(shù)FromCJGroupby學號HavingCount(*)>1注意:as用于重新指定查詢的列標題Groudby、Having、Orderby子句的用法
ORDERBY子句可以根據(jù)一個列或者多個列來排序查詢結果,在該子句中,既可以使用列名,也可以使用相對列號。ASC表示升序排列,DESC表示降序排列,默認是升序排列例1:將Stu_info
表中的同學按照年齡從高到低降序排列。Select*fromStu_infoOrderby年齡Desc在實際的開發(fā)過程中,一個SQL查詢語句一次往往使用到多個表。在關系型數(shù)據(jù)庫中,一個涉及到多個表的查詢稱為連接查詢,連接查詢是關系型數(shù)據(jù)庫中最重要的操作。我們主要介紹最簡單的自然連接,為了區(qū)別列來源,可以在連接中對表指定別名。例1、列出所有選修了課程的學生的學號、課程名稱、課程號、成績。selecta.學號,a.課程號,a.成績,b.課程名fromCja,subjectbwhere(a.課程號=b.課程號)(b.課程號=c.課程號)例2:列出所有選修了課程的學生的學號、姓名、課程號、成績。selecta.學號,a.課程號,a.成績,b.姓名fromCja,Stu_infobwhere(a.學號=b.學號)二、基于多表的連接查詢。
例3、列出所有學生的學習成績,要求輸出姓名、課程名稱、課程號、成績。selecta.姓名,c.課程名,b.成績,b.課程號fromstu_infoa,cjb,subjectcwhere(a.學號=b.學號)and(b.課程號=c.課程號)帶條件的多表查詢:例4、列出選修了“C801”課程且成績在90分以上的所有學生清單。(包括學號,姓名,性別,年齡,所在院系,課程號)selecta.學號,姓名,性別,年齡,所在院系,b.課程號fromstu_infoa,cjbwherea.學號=b.學號andb.課程號='C801'and成績>90
在SQL語言中,一個“Select查詢塊”可以嵌套在另一個查詢塊的Where字句中,則稱這種查詢?yōu)榍短撞樵?。嵌套查詢可以用多個簡單查詢構成十分復雜的查詢,從而大大增強SQL的查詢能力。嵌套查詢處理過程:先處理內層查詢,在處理外層查詢。例1:查詢“沈香娜”同學所在班級的所有學生名單。select學號,姓名,性別,年齡,所在院系,班級名fromstu_infowhere班級名=(select班級名fromstu_infowhere姓名='沈香娜')三、嵌套查詢。例2:列出與“劉成鍇”同學在同一個系的所有女學生的名單。select學號,姓名,性別,年齡,所在院系,班級名fromstu_infowhere所在院系=(select所在院系fromstu_infowhere姓名=‘劉成鍇’)and性別=‘女’例3:列出年齡最大的學生信息(在Where字句中使用集合函數(shù))Select*fromstu_infoWhere年齡=(selectmax(年齡)fromstu_info)三、嵌套查詢。
在嵌套查詢中,由于一個子查詢的結果往往是一個集合,因此IN子句經(jīng)常被用來確定某個列值是否在內部查詢的結果集中。例1:列出學習“C801”、“C804”的學生學號、姓名、課程名和成績。Selecta.學號,姓名,b.成績,c.課程名FromStu_infoa,cjb,SubjectcWherea.學號=b.學號andb.課程號=c.課程號andc.課程號In('C801','C804')四、帶IN的子查詢
例2:列出所有選修了“高等數(shù)學”的同學學號、姓名和所在院系。Select學號,姓名,所在院系FromStu_infoWhere學號In(Select學號fromCjWhere課程號In(Select課程號fromSubjectWhere課程名='高等數(shù)學'))四、帶IN的子查詢
在SQL語言中,關鍵字Exists代表“存在”的含義,它只查找滿足條件的那些記錄,一旦找到一個匹配的記錄則馬上停止查找。例1:列出所有選修了課程“C801”的學生清單Select學號,姓名,性別,所在院系FromStu_infoWhereExists(Select*From成績表Where學號=Stu_info.學號and課程號=‘C801’)語句處理過程:首先從Stu_info取出第一條記錄,看其學號是否與內循環(huán)的相關字段(學號)相匹配,若是則將該記錄放入結果集,然后繼續(xù)取Stu_info的下一條記錄,重復這一過程,直到Stu_info表的記錄全部檢查完為止。五、帶Exists的子查詢
[UNION]關鍵字可以將兩個或多個結果表進行邏輯聯(lián)合,列出在各個結果表中返回記錄。注意:1、參加[UNION]操作的各個結果表的字段個數(shù)必須相同,對應的數(shù)據(jù)類型也必須相同。2、使用[UNION]將結果表進行邏輯聯(lián)合時,系統(tǒng)將會自動去掉重復的記錄。例1:顯示計算機系的學生以及性別為女的學生名單。Select*fromstu_infoWhere所在院系=‘計算機’UNIONSelect*fromstu_infoWhere性別=‘女’六、聯(lián)合查詢
例2:顯示講授了“C801”課程或者講授了“C803”課程的教師的姓名、講授課程號和班級名Select教師名,課程號,班級名fromskbWhere課程號='C801'UNIONSelect教師名,課程號,班級名fromskbWhere課程號='C803'六、聯(lián)合查詢
有些問題使用子查詢解決會更簡單,有些問題使用連接查詢可以變得簡單,因此要根據(jù)實際情況進行選擇:1、當需要頻繁地計算統(tǒng)計函數(shù)的值并將其用在外查詢中作比較時,應該使用子查詢。2、當SELECT中的列來自于多于一個表時,則應該使用連接查詢。
七、子查詢和連接查詢的選擇1、添加記錄。格式:Insertinto表名(字段列表)values(值列表)如:為stu_info表插入一條新記錄Insertintostu_info(學號,姓名,性別,年齡,所在院系,班級名)values(‘200203004’,‘陳動’,‘男’,20,‘計算機’,‘軟件2班’)注意:字段名和它的值必須一一對應,字符型字段的值必須用單引號引起來。八、更新操作語句。2、修改記錄。格式:Update表名Set字段名1=新值1,字段名2=新值2,……[Where條件]如:將學號為‘200203001’的同學所選修的課程號為“C801”的課程成績調整為95分。UpdateCjset成績=95where學號='200203001'and課程號='C801'思考:將所有同學的年齡都增加1,怎么編寫其SQL語言。Updatestu_infoset年齡=年齡+13、刪除記錄。格式:DeleteFrom表名[Where條件]如:刪除表stu_info中學號為‘200203004’的同學信息。deletefromstu_infowhere學號=‘200203004’思考:若要刪除該表的所有記錄,SQL語句該怎樣編寫?deletefromstu_info4、復制表。方法:insertinto新表名select*from舊表完成數(shù)據(jù)的復制。例:復制授課表SKB5、刪除表DropTable表名一、視圖簡介視圖是從一個或多個表導出的虛表。視圖不是實際上的表,它僅僅定義了有關的數(shù)據(jù)關系,只是將表中的數(shù)據(jù)按一定的關系聯(lián)系在一起,并將其顯示出來的一個“虛表”,所以視圖所對應的數(shù)據(jù)不進行實際存儲,數(shù)據(jù)庫中只存儲視圖的定義。視圖常用于集中、簡化和定制顯示數(shù)據(jù)庫中的信息。視圖象是一個過濾器,對于一個或多個基表中的數(shù)據(jù)進行篩選、引用。一般對于視圖的查詢不受任何限制,但要通過視圖來修改基表的數(shù)據(jù)則有一些限制。第六章視圖
視圖的優(yōu)點:為用戶集中信息,簡化用戶的數(shù)據(jù)查詢和處理屏蔽數(shù)據(jù)庫的復雜性簡化用戶權限的管理便于數(shù)據(jù)共享可以重新組織數(shù)據(jù)以便輸出到其他應用程序中第六章視圖
二、視圖的創(chuàng)建。
在Microsoft
SQLServer2000中創(chuàng)建視圖主要有以下3種方法:使用向導、使用企業(yè)管理器、使用Transact-SQL命令。1、使用企業(yè)管理器創(chuàng)建視圖。(1)啟動企業(yè)管理器,展開要使用的數(shù)據(jù)庫(如Stu_db)。(2)鼠標右擊該數(shù)據(jù)庫中的【視圖】圖標,在彈出的菜單中選擇【新建視圖】命令,彈出新視圖對話框,右鍵單擊圖標窗格打開【添加表】對話框。(3)基表或視圖選擇完成之后,表books的結構出現(xiàn)在視圖創(chuàng)建/修改窗口的數(shù)據(jù)表顯示區(qū)。在表中選擇需要在視圖中顯示的列,此時在窗口下邊的視圖定義列顯示表格中和SQL語句區(qū)中也會相應地出現(xiàn)所選擇的列和SQL語句,如需加入限制條件、函數(shù)或計算列,可以手動在SQL語句區(qū)輸入。(4)單擊工具欄按鈕運行所定義的視圖,在視圖執(zhí)行結果顯示區(qū)顯示出這個視圖的查詢結果。用戶可以發(fā)現(xiàn)當定義了WHERE子句時,視圖執(zhí)行之后,在基表相應列的右邊會出現(xiàn)一個圖標,并且在視圖定義列的表格中出現(xiàn)相應的列名與準則,即視圖的查詢條件。2、使用Transact-SQL命令格式:
CREATEVIEWview_name[(column[,…n])[WITHENCRYPTION]ASSelect_statement[WITHCHECKOPTION]命令中的參數(shù)含義如下:WITHENCRYPTION:給系統(tǒng)表syscomments中視圖定義的SELECT命令加密。AS:說明視圖要完成的操作。Select_statement:定義視圖的SELECT命令。
需要特別注意,視圖中的SELECT命令不能包括INTO、ORDERBY等子句。另外,臨時表也不能在查詢中引用。WITHCHECKOPTION:強制所有通過視圖修改的數(shù)據(jù)滿足select_Statement語句中指定的選擇條件。例:使用語句創(chuàng)建視圖VIEW_Student2,查詢學生的學號、姓名、性別、年齡、課程號、成績等信息。CREATEVIEWVIEW_Student2ASSELECTStu_Info.學號,Stu_Info.姓名,Stu_Info.性別,Stu_Info.年齡,CJ.課程號,CJ.成績FROMStu_InfoINNERJOINCJONStu_Info.學號=CJ.學號三、使用企業(yè)管理器修改視圖視圖建立之后,由于某種原因(如基表中的列發(fā)生了改變或需要在視圖中增/刪若干列等),需要對視圖進行修改。利用企業(yè)管理器修改視圖的步驟如下:(1)展開服務器,展開數(shù)據(jù)庫。(2)單擊【視圖】圖標,在窗口右邊顯示出當前數(shù)據(jù)庫中的所有視圖。(3)右鍵單擊要修改的視圖名,在彈出的快捷菜單中選擇【設計視圖】命令,便可進入視圖設計窗口,用戶可以在這個窗口中對視圖進行修改。還有一種利用視圖屬性對話框修改視圖的方法,用鼠標雙擊要修改的視圖名,彈出視圖屬性對話框,在這個對話框中顯示出定義視圖的Transact-SQL命令,用戶可以直接在這個對話框中修改。四、視圖的使用對于視圖的使用主要包括視圖的檢索、通過視圖對基表進行插入、修改、刪除行的操作。對于視圖的檢索幾乎沒有限制,但是對通過視圖實現(xiàn)表的插入、修改、刪除操作則有一定的限制條件。視圖檢索
視圖定義之后,用戶便可以像查詢基本表一樣查詢視圖。視圖的查詢總是轉換為對它所依賴的基表的等價查詢。利用Transact-SQL的SELECT命令和企業(yè)管理器都可以對視圖查詢,其使用方法與基本表的查詢完全一樣,這里不再贅述。例:檢索視圖VIEW_Student2中學號為‘200203001’的學生信息。五、利用視圖更新表數(shù)據(jù)視圖也可以使用INSERT命令插入行,當執(zhí)行更新操作命令時,實際上是向視圖所引用的基表中執(zhí)行了相應的更新操作。視圖更新命令與基本表中使用的命令格式完全一樣。注意:如果視圖中有下面所述屬性,則插入、更新或刪除基表將失敗。更新所影響的列來自于兩個以上的表。視圖的列是從集合函數(shù)派生的。視圖中的SElECT命令包含GROUPBY子句或DISTINCT選項。視圖的列是從常量或表達式派生的。
例1:在視圖View_Student2中插入一條記錄。InsertintoView_Student2(學號,姓名,性別,年齡)values(‘200203005’,‘陳動’,‘男’,20)執(zhí)行語句后,我們可以在表Stu_info中看到結果。
六、刪除視圖視圖創(chuàng)建后,隨時都可以刪除。刪除操作很簡單,通過企業(yè)管理器或DROPVIEW命令都可以完成。利用企業(yè)管理器刪除視圖操作步驟如下:(1)在當前數(shù)據(jù)庫中單擊視圖圖標。(2)在右邊視圖列表窗口內單擊需刪除的視圖。(3)單擊工具欄上的刪除圖標,彈出刪除視圖對話框,如圖5-24所示。(4)單擊【全部除去】按鈕,將選中的視圖刪除。
利用DROPVIEW命令刪除視圖語法格式為DROPVIEW{view}[,...n]DROPVIEW命令可以刪除多個視圖,各視圖名之間用逗號分隔。視圖刪除后,在系統(tǒng)表中存儲的關于視圖的信息也會被隨之刪除,對視圖的權限同樣被刪除。刪除視圖View_Student2DropViewView_Student2一、什么是存儲過程?應用程序與SQLServer數(shù)據(jù)庫交互執(zhí)行某些操作有兩種方法:一種是存儲在本地的應用程序記錄操作命令,應用程序向SQLServer發(fā)送每一個命令,并對返回的數(shù)據(jù)進行處理;另一種是在SQLServer中定義某個過程,其中記錄了一系列的操作,每次應用程序只需調用該過程就可完成該操作。這種在SQLServer中定義的過程被稱為存儲過程。所以,存儲過程就是T-SQL語句的預編譯集合,是一組T-SQL語句構成的代碼塊。第七章SQL的存儲過程。
二、存儲過程的功能SQLServer中的存儲過程類似于編程語言中的過程和函數(shù),它具有以下功能:接受輸入?yún)?shù)并返回多個輸出值。包含T-SQL語句用以完成特定的SQLServer操作。返回一個指示成功與否及失敗原因的狀態(tài)代碼給調用它的過程。
第七章SQL的存儲過程。
三、存儲過程的優(yōu)點存儲過程有以下幾個優(yōu)點:允許模塊化編程,增強代碼的重用性和共享性使用存儲過程可以加快運行速度使用存儲過程可以減少網(wǎng)絡流量。存儲過程可以作為安全性機制。四、存儲過程的種類存儲過程有以下幾種類型:系統(tǒng)存儲過程、用戶存儲過程、臨時存儲過程、擴展存儲過程、遠程存儲過程。
第七章SQL的存儲過程。
系統(tǒng)存儲過程是由系統(tǒng)提供的過程,可以作為命令直接執(zhí)行。系統(tǒng)存儲過程存儲在master數(shù)據(jù)庫中,其前綴為sp_。系統(tǒng)存儲過程可以在任意一個數(shù)據(jù)庫中執(zhí)行。用戶存儲過程是創(chuàng)建在用戶數(shù)據(jù)庫中的存儲過程。其名稱前面一般不加sp_前綴。主要在應用程序中使用,以完成特定的任務。臨時存儲過程屬于用戶存儲過程。如果用戶存儲過程前面加上符號“#”,則該存儲過程稱為局部臨時存儲過程,只能在一個用戶會話中使用;如果用戶存儲過程前面加上符號“##”,則該過程稱為全局存儲過程,可以在所有用戶會話中使用。擴展存儲過程是在SQLServer環(huán)境之外執(zhí)行的動態(tài)鏈接庫DLL,其前綴為xp_。盡管這些動態(tài)鏈接庫在SQLServer環(huán)境之外,但它們可以被加載到SQLServer系統(tǒng)中,并且按照存儲過程的方式執(zhí)行。遠程存儲過程是指從遠程服務器上調用的存儲過程,或者是從連接到另外一個服務器上的客戶機上調用的存儲過程。
在SQLServer中創(chuàng)建存儲過程主要有以下3種方法:使用向導、使用企業(yè)管理器、使用Transact-SQL命令。使用企業(yè)管理器創(chuàng)建存儲過程1、利用企業(yè)管理器創(chuàng)建存儲過程步驟如下:(1)展開要在其中創(chuàng)建存儲過程的數(shù)據(jù)庫。(2)右擊【存儲過程】圖標,在快捷菜單中選擇【新建存儲過程...】命令,打開新建存儲過程對話框。(3)在新建存儲過程對話框的文本框中書寫存儲過程定義?!緳z查語法】按鈕用于檢查存儲過程語法的正確性。定義完存儲過程后,單擊【確定】按鈕保存存儲過程。注意:[OWNER].[PROCEDURENAME]指存儲過程的所有者和名字,一般所有者可以省略,但名字不能省。例1:創(chuàng)建一個簡單的存儲過程,查詢學生的相關信息。
四、創(chuàng)建存儲過程2、利用語句創(chuàng)建存儲過程簡單的語句格式:CreateProc存儲過程名asSQL語句。例1:創(chuàng)建一個簡單的存儲過程,查詢學生的相關信息。CREATEPROCEDUREStu_info_Proc2AsSELECT*FROMStu_info
第四章SQL的存儲過程。
1、使用企業(yè)管理器進行修改修改存儲過程只需在相應數(shù)據(jù)庫的存儲過程對象項中找到要修改的存儲過程,雙擊存儲過程打開存儲過程屬性窗口,在窗口中直接進行修改,完成后單擊【確定】按鈕。2、使用查詢分析器進行修改打開查詢分析器,按F8鍵(或單擊工具欄上的對象瀏覽器按鈕),在對象瀏覽器窗口中,打開存儲過程所在的數(shù)據(jù)庫,打開[存儲過程]文件夾,右擊要修改的存儲過程名(如test),在彈出的菜單中選擇【編輯】(如圖7-13所示),則存儲過程出現(xiàn)在查詢分析器的編輯窗口中,修改完畢保存即可。
五、存儲過程的修改。
簡單存儲過程的執(zhí)行:Exec存儲過程名
六、存儲過程的執(zhí)行。1、使用企業(yè)管理器刪除存儲過程展開數(shù)據(jù)庫后,單擊存儲過程圖標,在右邊窗口中出現(xiàn)的存儲過程中選擇要刪除的過程,單擊右鍵,在彈出的快捷菜單中單擊【刪除】選項,即將存儲過程刪除。2、使用T-SQL命令刪除存儲過程利用DROPPROCEDURE命令刪除存儲過程,其語法結構如下:DROPPROCEDURE{procedure}[,...n]例:刪除存儲過程Stu_info_Proc2七、刪除存儲過程。
8.1數(shù)據(jù)庫技術概述
8.2數(shù)據(jù)模型
8.3數(shù)據(jù)庫設計
第八章:補充知識(數(shù)據(jù)庫技術概述)8.1數(shù)據(jù)庫技術概述8.1.1數(shù)據(jù)庫基本概念1、數(shù)據(jù)(Data)
數(shù)據(jù)是描述現(xiàn)實世界事物的符號記錄,是用物理符號記錄的可以鑒別的信息。2、數(shù)據(jù)庫(DataBase,簡記為DB)數(shù)據(jù)庫是長期存儲在計算機內、有組織的、可共享的數(shù)據(jù)集合。這種集合具有如下特點:最小的冗余度應用程序對數(shù)據(jù)資源共享數(shù)據(jù)獨立性高統(tǒng)一管理和控制3、數(shù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem,簡記為DBMS)數(shù)據(jù)庫管理系統(tǒng)的基本功能數(shù)據(jù)庫管理系統(tǒng)是位于用戶與操作系統(tǒng)之間的一個數(shù)據(jù)管理軟件,它的基本功能包括以下幾個方面:數(shù)據(jù)定義功能用戶通過數(shù)據(jù)定義語言(DDL,DataDefinitionLanguage)它可以方便地對數(shù)據(jù)庫中的數(shù)據(jù)對象進行定義。數(shù)據(jù)操縱功能用戶可以使用數(shù)據(jù)操縱語言(DML,DataManipulationLanguage)操縱數(shù)據(jù),實現(xiàn)對數(shù)據(jù)的基本操作。如查詢、插入、刪除和修改。數(shù)據(jù)庫的運行管理功能數(shù)據(jù)庫在建立、運行和維護時由數(shù)據(jù)庫管理系統(tǒng)統(tǒng)一管理和控制,以保證數(shù)據(jù)的安全性、完整性,對并發(fā)操作的控制以及發(fā)生故障后的系統(tǒng)恢復等。數(shù)據(jù)庫的建立和維護功能它包括數(shù)據(jù)庫初始數(shù)據(jù)的輸入、轉換功能,數(shù)據(jù)庫的轉儲、恢復功能,數(shù)據(jù)庫的重組織功能和性能監(jiān)視、分析功能等。數(shù)據(jù)庫系統(tǒng)(DataBaseSystem,簡記為DBS)
數(shù)據(jù)庫系統(tǒng)一般由數(shù)據(jù)庫、操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)(及其開發(fā)工具)、應用系統(tǒng)、數(shù)據(jù)庫管理員(DBA)和用戶構成。4、數(shù)據(jù)庫系統(tǒng)8.1.2數(shù)據(jù)庫技術的產生與發(fā)展
數(shù)據(jù)管理技術經(jīng)歷了如下三個階段:人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。1、人工管理階段這一階段是指20世紀50年代中期以前,計算機主要用于科學計算,當時的計算機硬件狀況是:外存只有磁帶、卡片、紙帶,沒有磁盤等直接存取的存儲設備;軟件狀況是:沒有操作系統(tǒng),沒有管理數(shù)據(jù)的軟件,數(shù)據(jù)處理方式是批處理。人工管理階段的特點是:數(shù)據(jù)不保存、數(shù)據(jù)無專門軟件進行管理、數(shù)據(jù)不共享、數(shù)據(jù)不具有獨立性、數(shù)據(jù)無結構。2、文件系統(tǒng)階段這一階段從20世紀50年代后期到60年代中期,計算機硬件和軟件都有了一定的發(fā)展。計算機不僅用于科學計算,還大量用于管理。這時硬件方面已經(jīng)有了磁盤、磁鼓等直接存取的存儲設備。在軟件方面,操作系統(tǒng)中已經(jīng)有了數(shù)據(jù)管理軟件,一般稱為文件系統(tǒng)。處理方式上不僅有了文件批處理,而且能夠聯(lián)機實時處理
文件階段的數(shù)據(jù)管理特點是:數(shù)據(jù)可以長期保存、由文件系統(tǒng)管理數(shù)據(jù)、程序與數(shù)據(jù)有一定的獨立性、數(shù)據(jù)共享性差、數(shù)據(jù)獨立性差、記錄內部有結構。3、數(shù)據(jù)庫系統(tǒng)階段從20世紀60年代后期以來,計算機硬件和軟件技術得到了飛速發(fā)展,為了解決多用戶、多應用共享數(shù)據(jù),使數(shù)據(jù)為盡可能多的應用服務,文件系統(tǒng)已不能滿足應用需求,一種新的數(shù)據(jù)管理技術--數(shù)據(jù)庫技術應運而生。數(shù)據(jù)庫系統(tǒng)階段具有以下的特點:數(shù)據(jù)結構化在描述數(shù)據(jù)時不僅描述數(shù)據(jù)本身,還描述數(shù)據(jù)之間的聯(lián)系。數(shù)據(jù)共享性高、冗余度小、易擴充數(shù)據(jù)可以被多個應用共享。這不僅大大減小了數(shù)據(jù)的冗余度、節(jié)約存儲空間、減少存取時間,而且可以避免數(shù)據(jù)之間的不相容性和不一致性。數(shù)據(jù)獨立性高數(shù)據(jù)獨立性包括物理獨立性和邏輯獨立性。數(shù)據(jù)的物理獨立性是指當數(shù)據(jù)的物理存儲改變時,應用程序不用改變。數(shù)據(jù)的邏輯獨立性是指當數(shù)據(jù)的邏輯結構改變時,用戶應用程序不用改變。統(tǒng)一的數(shù)據(jù)管理和控制數(shù)據(jù)庫對系統(tǒng)中的用戶是共享資源。計算機的共享一般是并發(fā)的,即多個用戶可以同時存取數(shù)據(jù)庫中的數(shù)據(jù),甚至可以同時存取數(shù)據(jù)庫中同一個數(shù)據(jù)。因此,數(shù)據(jù)庫管理系統(tǒng)必須提供以下幾個方面的數(shù)據(jù)控制保護功能。數(shù)據(jù)的安全性(security)保護數(shù)據(jù)的完整性(integrity)控制數(shù)據(jù)庫恢復(recovery)并發(fā)(concurrency)控制8.1.3數(shù)據(jù)庫系統(tǒng)的體系結構1、集中式系統(tǒng)DBMS和應用程序以及與用戶終端進行通信的軟件等都運行在一臺宿主計算機上,所有的數(shù)據(jù)處理都是在宿主計算機中進行。宿主計算機一般是大型機、中型機或小型機。應用程序和DBMS之間通過操作系統(tǒng)管理的共享內存或應用任務區(qū)來進行通信,DBMS利用操作系統(tǒng)提供的服務來訪問數(shù)據(jù)庫。終端通常是非智能的,本身沒有處理能力。集中系統(tǒng)的主要優(yōu)點是:具有集中的安全控制,以及處理大量數(shù)據(jù)和支持大量并發(fā)用戶的能力。集中系統(tǒng)的主要缺點是:購買和維持這樣的系統(tǒng)一次性投資太大,并且不適合分布處理。2、個人計算機系統(tǒng)與大型系統(tǒng)不同,通常個人計算機(微機)上的DBMS功能和數(shù)據(jù)庫應用功能是結合在一個應用程序中的,這類DBMS(如FoxPro、Acssce)的功能靈活,系統(tǒng)結構簡潔,運行速度快,但這類DBMS的數(shù)據(jù)共享性、安全性、完整性等控制功能比較薄弱。3、客戶/服務器系統(tǒng)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《創(chuàng)新的概念與過程》課件
- 《環(huán)境科學知識講座》課件
- 攪拌站設備承包安裝合同書范本(2篇)
- 2025年廣西從業(yè)資格證貨運考試試題答案
- 2024年甲乙丙物流服務合同
- 2025年濮陽駕??荚囏涍\從業(yè)資格證考試
- 2025年銀川如何考貨運從業(yè)資格證
- 2025年長沙下載貨運從業(yè)資格證模擬考試題
- 2024年度城市出租車運營權租賃合同書3篇
- 2025年昭通貨運上崗證考試題答案
- 2025年小學五年級數(shù)學(北京版)-分數(shù)的意義(三)-3學習任務單
- 網(wǎng)絡信息安全工程師招聘面試題及回答建議(某大型央企)2025年
- 生物人教版(2024版)生物七年級上冊復習材料
- 中華人民共和國野生動物保護法
- 數(shù)字化轉型成熟度模型與評估(DTMM)國家標準解讀 2024
- 河南省名校八校聯(lián)考2024-2025學年高二上學期期中模擬考試語文試題(含答案解析)
- 第五單元觀察物體(一) (單元測試)-2024-2025學年二年級上冊數(shù)學 人教版
- 【初中生物】脊椎動物(魚)課件-2024-2025學年人教版(2024)生物七年級上冊
- 聘請專家的協(xié)議書(2篇)
- 辦公環(huán)境家具成品保護方案
- 2024年湖北省武漢市中考英語真題(含解析)
評論
0/150
提交評論