第一章 數據庫基礎知識本章以概念為主,主要是了解數據庫的基本概念,數據庫技術(shù)的發(fā)展,數據模型,重點(diǎn)是關(guān)系型數據。
第一節:信息,數據與數據處理一、信息與數據:1、信息:是現實(shí)世界事物的存在方式或運動(dòng)狀態(tài)的反映。或認為,信息是一種已經(jīng)被加工為特定形式的數據。
信息的主要特征是:信息的傳遞需要物質(zhì)載體,信息的獲取和傳遞要消費能量;信息可以感知;信息可以存儲、壓縮、加工、傳遞、共享、擴散、再生和增值2、數據:數據是信息的載體和具體表現形式,信息不隨著(zhù)數據形式的變化而變化。數據有文字、數字、圖形、聲音等表現形式。
3、數據與信息的關(guān)系:一般情況下將數據與信息作為一個(gè)概念而不加區分。二、數據處理與數據管理技術(shù):1、數據處理:數據處理是對各種形式的數據進(jìn)行收集、存儲、加工和傳輸等活動(dòng)的總稱(chēng)。
2、數據管理:數據收集、分類(lèi)、組織、編碼、存儲、檢索、傳輸和維護等環(huán)節是數據處理的基本操作,稱(chēng)為數據管理。數據管理是數據處理的核心問(wèn)題。
3、數據庫技術(shù)所研究的問(wèn)題不是如何科學(xué)的進(jìn)行數據管理。4、數據管理技術(shù)的三個(gè)階段:人工管理,文件管理和數據庫系統。
第二節:數據庫技術(shù)的發(fā)展一、數據庫的發(fā)展:數據庫的發(fā)展經(jīng)歷了三個(gè)階段:1、層次型和網(wǎng)狀型: 代表產(chǎn)品是1969年IBM公司研制的層次模型數據庫管理系統IMS。2、關(guān)系型數據型庫: 目前大部分數據庫采用的是關(guān)系型數據庫。
1970年IBM公司的研究員E.F.Codd提出了關(guān)系模型。其代表產(chǎn)品為sysem R和Inges。
3、第三代數據庫將為更加豐富的數據模型和更強大的數據管理功能為特征,以提供傳統數據庫系統難以支持的新應用。它必須支持面向對象,具有開(kāi)放性,能夠在多個(gè)平臺上使用。
二、數據庫技術(shù)的發(fā)展趨勢:1、面向對象的方法和技術(shù)對數據庫發(fā)展的影響:數據庫研究人員借鑒和吸收了面向對旬的方法和技術(shù),提出了面向對象數據模型。2、數據庫技術(shù)與多學(xué)科技術(shù)的有機組合:3、面向專(zhuān)門(mén)應用領(lǐng)域的數據庫技術(shù)三、數據庫系統的組成:數據庫系統(DBS)是一個(gè)采用數據庫技術(shù),具有管理數據庫功能,由硬件、軟件、數據庫及各類(lèi)人員組成的計算機系統。
1、數據庫(DB):數據庫是以一定的組織方式存放于計算機外存儲器中相互關(guān)聯(lián)的數據集合,它是數據庫系統的核心和管理對象,其數據是集成的、共享的以及冗余最小的。2、數據庫管理系統(DBMS):數據庫管理系統是維護和管理數據庫的軟件,是數據庫與用戶(hù)之間的界面。
作為數據庫的核心軟件,提供建立、操作、維護數據庫的命令和方法。3、應用程序:對數據庫中數據進(jìn)行各種處理的程序,由用戶(hù)編寫(xiě)。
4、計算機軟件:5、計算機硬件:包括CPU、內存、磁盤(pán)等。要求有足夠大的內存來(lái)存放操作系統、數據庫管理系統的核心模塊以及數據庫緩沖;足夠大的磁盤(pán)能夠直接存取和備份數據;比較主的通道能力;支持聯(lián)網(wǎng),實(shí)現數據共享。
6、各類(lèi)人員。四、數據庫系統的特點(diǎn):1、數據共享:2、面向全組織的數據結構化:數據不再從屬于一個(gè)特定應用,而是按照某種模型組織成為一個(gè)結構化的整。
它描述數據要身的特性,也描述數據與數據之間的種種聯(lián)系。3、數據獨立性:4、可控數據冗余度:5、統一數據控制功能:數據安全性控制:指采取一定的安全保密措施確保數據庫中的數據不被非法用戶(hù)存取而造成數據的泄密和破壞;數據完整性控制:是指數據的正確性、有效性與相容性。
并發(fā)控制:多個(gè)用戶(hù)對數據進(jìn)行存取時(shí),采取必要的措施進(jìn)行數據保護;數據恢復:系統能進(jìn)行應急處理,把數據恢復到正確狀態(tài)。第三節:數據模型一、數據組織:關(guān)系型數據庫中的數據層次如下:1、數據項(field):又稱(chēng)字段,用于描述實(shí)體的一個(gè)屬性,是數據庫的基本單位。
一般用屬性名作項名;2、記錄(Record):又稱(chēng)為結點(diǎn),由若干個(gè)數據項組成,用于描述一個(gè)對象;3、文件(File):由若干個(gè)記錄組成;4、數據庫(Data Base):由邏輯相關(guān)的文件組成。二、數據模型:數據的組織形式稱(chēng)為數據模型,它決定 數據(主要是結點(diǎn))之間聯(lián)系的表達方式。
主要包括層次型、網(wǎng)狀型、關(guān)系型和面向對象型四種。層次型和網(wǎng)狀型是早期的數據模型,又稱(chēng)為格式化數據系統數模型。
以上四種模型決定了四種類(lèi)型的數據庫:層次數據庫系統,網(wǎng)狀數據庫系統,關(guān)系型數據庫系統以及面向對象數據庫系統。目前微機上使用的主要是關(guān)系型數據庫。
1、層次型:是以記錄為結點(diǎn)的有向樹(shù);圖如教材P7圖1--22、網(wǎng)狀型:樹(shù)的集合,它的表示能力以及精巧懷強于層次型,但獨立性下降。3、關(guān)系型:在關(guān)系型中,數據被組織成若干張二維表,每張表稱(chēng)為一個(gè)關(guān)系。
一張表格中的一列稱(chēng)為一個(gè)“屬性”,相當于記錄中的一個(gè)數據項(或稱(chēng)為字段),屬性的取值范圍稱(chēng)為域。表格中的一行稱(chēng)為一個(gè)“元組”,相當于記錄值。
可用一個(gè)或若干個(gè)屬性集合的值標識這些元組,稱(chēng)為“關(guān)鍵字”。每一行對應的屬性值叫做一個(gè)分量。
表格的框架相當于記錄型,一個(gè)表格數據相當于一個(gè)同質(zhì)文件。所有關(guān)系由關(guān)系的框架和若干元組構成,或者說(shuō)關(guān)系是一張二維表。
關(guān)系型。
判斷題:對錯錯錯對對錯對錯對
填空題:1.操作系統 2.order by , group by 3.表,元組,屬性。4.數據結構,完整性約束 5.關(guān)系 6.一對一,一對多,多對多 7.創(chuàng )建,修改,刪除 8.min,sum 9.視圖,虛擬或查詢(xún) 10.exec 11. 系統存儲過(guò)程,用戶(hù)定義存儲過(guò)程
用SQL建立索引 為了給一個(gè)表建立索引,啟動(dòng)任務(wù)欄SQL Sever程序組中的ISQL/w程序。
進(jìn)入查詢(xún)窗口后,輸入下面的語(yǔ)句: CREATE INDEX mycolumn_index ON mytable (myclumn) 這個(gè)語(yǔ)句建立了一個(gè)名為mycolumn_index的索引。 你可以給一個(gè)索引起任何名字,但你應該在索引名中包含所索引的字段名,這對你將來(lái)弄清楚建立該索引的意圖是有幫助的。
注意: 在本書(shū)中你執行任何SQL語(yǔ)句,都會(huì )收到如下的信息: This command did not return data,and it did not return any rows 這說(shuō)明該語(yǔ)句執行成功了。 索引mycolumn_index對表mytable的mycolumn字段進(jìn)行。
這是個(gè)非聚簇索引,也是個(gè)非唯一索引。(這是一個(gè)索引的缺省屬性) 如果你需要改變一個(gè)索引的類(lèi)型,你必須刪除原來(lái)的索引并重建 一個(gè)。
建立了一個(gè)索引后,你可以用下面的SQL語(yǔ)句刪除它: DROP INDEX mytable。 mycolumn_index 注意在DROP INDEX 語(yǔ)句中你要包含表的名字。
在這個(gè)例子中,你刪除的索引是mycolumn_index,它是表mytable的索引。 要建立一個(gè)聚簇索引,可以使用關(guān)鍵字CLUSTERED。)
記住一個(gè)表只能有一個(gè)聚簇索引。 (這里有一個(gè)如何對一個(gè)表建立聚簇索引的例子: CREATE CLUSTERED INDEX mycolumn_clust_index ON mytable(mycolumn) 如果表中有重復的記錄,當你試圖用這個(gè)語(yǔ)句建立索引時(shí),會(huì )出現錯誤。
但是有重復記錄的表也可以建立索引;你只要使用關(guān)鍵字ALLOW_DUP_ROW把這一點(diǎn)告訴SQL Sever即可: CREATE CLUSTERED INDEX mycolumn_cindex ON mytable(mycolumn) WITH ALLOW_DUP_ROW 這個(gè)語(yǔ)句建立了一個(gè)允許重復記錄的聚簇索引。 你應該盡量避免在一個(gè)表中出現重復記錄,但是,如果已經(jīng)出現了,你可以使用這種方法。
要對一個(gè)表建立唯一索引,可以使用關(guān)鍵字UNIQUE。對聚簇索引和非聚簇索引都可以使用這個(gè)關(guān)鍵字。
這里有一個(gè)例子: CREATE UNIQUE COUSTERED INDEX myclumn_cindex ON mytable(mycolumn) 這是你將經(jīng)常使用的索引建立語(yǔ)句。 無(wú)論何時(shí),只要可以,你應該盡量對一個(gè)對一個(gè)表建立唯一聚簇索引來(lái)增強查詢(xún)操作。
最后,要建立一個(gè)對多個(gè)字段的索引──復合索引──在索引建立語(yǔ)句中同時(shí)包含多個(gè)字段名。下面的例子對firstname和lastname兩個(gè)字段建立索引: CREATE INDEX name_index ON username(firstname,lastname) 這個(gè)例子對兩個(gè)字段建立了單個(gè)索引。
在一個(gè)復合索引中,你最多可以對16個(gè)字段進(jìn)行索引。 用事務(wù)管理器建立索引 用事務(wù)管理器建立索引比用SQL語(yǔ)句容易的多。
使用事務(wù)管理器,你可以看到已經(jīng)建立的索引的列表,并可以通過(guò)圖形界面選擇索引選項。 使用事務(wù)管理器你可以用兩種方式建立索引:使用Manage Tables窗口或使用Manage Indexes窗口。
要用Manage Tables 窗口建立一個(gè)新索引,單擊按鈕Advanced Options(它看起來(lái)象一個(gè)前面有一加號的表)。這樣就打開(kāi)了Advanced Options對話(huà)框。
這個(gè)對話(huà)框有一部分標名為Primary Key要建立一個(gè)新索引,從下拉列表中選擇你想對之建立索引的字段名。 如果你想建立一個(gè)對多字段的索引,你可以選擇多個(gè)字段名。
你還可以選擇索引是聚簇的還是非聚簇的。在保存表信息后,索引會(huì )自動(dòng)被建立。
在Manage Tables窗口中的字段名旁邊,會(huì )出現一把鑰匙。 你已經(jīng)為你的表建立了“主索引”。
主索引必須對不包含空值的字段建立。 另外,主索引強制一個(gè)字段成為唯一值字段。
要建立沒(méi)有這些限制的索引,你需要使用Manage Indexes窗口。從菜單中選擇Manage|Indexes,打開(kāi)Manage Indexes 窗口。
在Manage Indexes 窗口中,你可以通過(guò)下拉框選擇表和特定的索引。 (見(jiàn)圖11。
2)。要建立一個(gè)新索引,從Index下拉框中選擇New Index。
然后就可以選擇要對之建立索引的字段。單擊按鈕Add,把字段加人到索引中。
數據庫是“按照數據結構來(lái)組織、存儲和管理數據的倉庫.J.Martin給數據庫下了一個(gè)比較完整的定義:數據庫是存儲在一起的相關(guān)數據的集合,這些數據是結構化的,無(wú)有害的或不必要的冗余,并為多種應用服務(wù);數據的存儲獨立于使用它的程序;對數據庫插入新數據,修改和檢索原有數據均能按一種公用的和可控制的方式進(jìn)行。
當某個(gè)系統中存在結構上完全分開(kāi)的若干個(gè)數據庫時(shí),則該系統包含一個(gè)“數據庫集合”。 數據庫的基本結構分三個(gè)層次,反映了觀(guān)察數據庫的三種不同角度。
(1)物理數據層。 它是數據庫的最內層,是物理存貯設備上實(shí)際存儲的數據的集合。
這些數據是原始數據,是用戶(hù)加工的對象,由內部模式描述的指令操作處理的位串、字符和字組成。 (2)概念數據層。
它是數據庫的中間一層,是數據庫的整體邏輯表示。指出了每個(gè)數據的邏輯定義及數據間的邏輯聯(lián)系,是存貯記錄的集合。
它所涉及的是數據庫所有對象的邏輯關(guān)系,而不是它們的物理情況,是數據庫管理員概念下的數據庫。 (3)邏輯數據層。
它是用戶(hù)所看到和使用的數據庫,表示了一個(gè)或一些特定用戶(hù)使用的數據集合,即邏輯記錄的集合。 數據庫不同層次之間的聯(lián)系是通過(guò)映射進(jìn)行轉換的。
數據庫的主要特點(diǎn) (1)實(shí)現數據共享。 數據共享包含所有用戶(hù)可同時(shí)存取數據庫中的數據,也包括用戶(hù)可以用各種方式通過(guò)接口使用數據庫,并提供數據共享。
(2)減少數據的冗余度。 同文件系統相比,由于數據庫實(shí)現了數據共享,從而避免了用戶(hù)各自建立應用文件。
減少了大量重復數據,減少了數據冗余,維護了數據的一致性。 (3)數據的獨立性。
數據的獨立性包括數據庫中數據庫的邏輯結構和應用程序相互獨立,也包括數據物理結構的變化不影響數據的邏輯結構。 (4)數據實(shí)現集中控制。
文件管理方式中,數據處于一種分散的狀態(tài),不同的用戶(hù)或同一用戶(hù)在不同處理中其文件之間毫無(wú)關(guān)系。利用數據庫可對數據進(jìn)行集中控制和管理,并通過(guò)數據模型表示各種數據的組織以及數據間的聯(lián)系。
(5)數據一致性和可維護性,以確保數據的安全性和可靠性。 主要包括:①安全性控制:以防止數據丟失、錯誤更新和越權使用;②完整性控制:保證數據的正確性、有效性和相容性;③并發(fā)控制:使在同一時(shí)間周期內,允許對數據實(shí)現多路存取,又能防止用戶(hù)之間的不正常交互作用;④故障的發(fā)現和恢復:由數據庫管理系統提供一套方法,可及時(shí)發(fā)現故障和修復故障,從而防止數據被破壞 (6)故障恢復。
由數據庫管理系統提供一套方法,可及時(shí)發(fā)現故障和修復故障,從而防止數據被破壞。數據庫系統能盡快恢復數據庫系統運行時(shí)出現的故障,可能是物理上或是邏輯上的錯誤。
比如對系統的誤操作造成的數據錯誤等。
更新記錄 要修改表中已經(jīng)存在的一條或多條記錄,應使用SQL UPDATE語(yǔ)句。
同DELETE語(yǔ)句一樣,UPDATE語(yǔ)句可以使用WHERE子句來(lái)選擇更新特定的記錄。請看這個(gè)例子: UPDATE mytable SET first_column='Updated!' WHERE second_column='Update Me!' 這個(gè)UPDATE 語(yǔ)句更新所有second_column字段的值為'Update Me!'的記錄。
對所有被選中的記錄,字段first_column的值被置為'Updated!'。 下面是UPDATE語(yǔ)句的完整句法: UPDATE {table_name|view_name} SET [{table_name|view_name}] {column_list|variable_list|variable_and_column_list} [,{column_list2|variable_list2|variable_and_column_list2}… [,{column_listN|variable_listN|variable_and_column_listN}]] [WHERE clause] 注意: 你可以對文本型字段使用UPDATE語(yǔ)句。
但是,如果你需要更新很長(cháng)的字符串,應使用UPDATETEXT語(yǔ)句。這部分內容對本書(shū)來(lái)說(shuō)太高級了,因此不加討論。
要了解更多的信息,請參考Microsoft SQL Sever 的文檔。 如果你不提供WHERE子句,表中的所有記錄都將被更新。
有時(shí)這是有用的。 例如,如果你想把表titles中的所有書(shū)的價(jià)格加倍,你可以使用如下的UPDATE 語(yǔ)句: 你也可以同時(shí)更新多個(gè)字段。
例如,下面的UPDATE語(yǔ)句同時(shí)更新first_column,second_column,和third_column這三個(gè)字段: UPDATE mytable SET first_column='Updated!' Second_column='Updated!' Third_column='Updated!' WHERE first_column='Update Me1' 技巧: SQL忽略語(yǔ)句中多余的空格。 你可以把SQL語(yǔ)句寫(xiě)成任何你最容易讀的格式。
用SELECT 創(chuàng )建記錄和表 你也許已經(jīng)注意到,INSERT 語(yǔ)句與DELETE語(yǔ)句和UPDATE語(yǔ)句有一點(diǎn)不同,它一次只操作一個(gè)記錄。然而,有一個(gè)方法可以使INSERT 語(yǔ)句一次添加多個(gè)記錄。
要作到這一點(diǎn),你需要把INSERT 語(yǔ)句與SELECT 語(yǔ)句結合起來(lái),象這樣: INSERT mytable (first_column,second_column) SELECT another_first,another_second FROM anothertable WHERE another_first='Copy Me!' 這個(gè)語(yǔ)句從anothertable拷貝記錄到mytable。 只有表anothertable中字段another_first的值為'Copy Me!'的記錄才被拷貝。
當為一個(gè)表中的記錄建立備份時(shí),這種形式的INSERT 語(yǔ)句是非常有用的。在刪除一個(gè)表中的記錄之前,你可以先用這種方法把它們拷貝到另一個(gè)表中。
簡(jiǎn)單的講就是一個(gè)數據庫系統,比較小型但很實(shí)用 應用比較廣泛
詳解如下:
MySQL是一個(gè)真正的多用戶(hù)、多線(xiàn)程SQL數據庫服務(wù)器。SQL(結構化查詢(xún)語(yǔ)言)是世界上最流行的和標準化的數據庫語(yǔ)言。MySQL是以一個(gè)客戶(hù)機/服務(wù)器結構的實(shí)現,它由一個(gè)服務(wù)器守護程序mysqld和很多不同的客戶(hù)程序和庫組成。
SQL是一種標準化的語(yǔ)言,它使得存儲、更新和存取信息更容易。例如,你能用SQL語(yǔ)言為一個(gè)網(wǎng)站檢索產(chǎn)品信息及存儲顧客信息,同時(shí)MySQL也足夠快和靈活以允許你存儲記錄文件和圖像。
MySQL 主要目標是快速、健壯和易用。最初是因為我們需要這樣一個(gè)SQL服務(wù)器,它能處理與任何可不昂貴硬件平臺上提供數據庫的廠(chǎng)家在一個(gè)數量級上的大型數據庫,但速度更快,MySQL就開(kāi)發(fā)出來(lái)。自1996年以來(lái),我們一直都在使用MySQL,其環(huán)境有超過(guò) 40 個(gè)數據庫,包含 10,000個(gè)表,其中500多個(gè)表超過(guò)7百萬(wàn)行,這大約有100 個(gè)吉字節(GB)的關(guān)鍵應用數據。
MySQL建立的基礎是業(yè)已用在高要求的生產(chǎn)環(huán)境多年的一套實(shí)用例程。盡管MySQL仍在開(kāi)發(fā)中,但它已經(jīng)提供一個(gè)豐富和極其有用的功能集
聲明:本網(wǎng)站尊重并保護知識產(chǎn)權,根據《信息網(wǎng)絡(luò )傳播權保護條例》,如果我們轉載的作品侵犯了您的權利,請在一個(gè)月內通知我們,我們會(huì )及時(shí)刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學(xué)習?shū)B(niǎo). 頁(yè)面生成時(shí)間:2.775秒