溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

SQL Server 數(shù)據(jù)庫簡介

發(fā)布時(shí)間:2020-06-29 22:07:05 來源:網(wǎng)絡(luò) 閱讀:572 作者:Jollyxue 欄目:數(shù)據(jù)庫

使用數(shù)據(jù)庫可以高效且條理分明地存儲(chǔ)數(shù)據(jù),使人們能夠更加迅速,方便地管理數(shù)據(jù)。數(shù)據(jù)庫具有以下特點(diǎn):

         1、可以結(jié)構(gòu)化存儲(chǔ)大量的數(shù)據(jù)信息,方便用戶進(jìn)行有效的檢索和訪問。

         2、可以有效地保持?jǐn)?shù)據(jù)信息的一致性、完整性,降低數(shù)據(jù)冗余。

         3、可以滿足應(yīng)用的共享和安全方面的要求。

數(shù)據(jù)庫的基本概念:

         1、數(shù)據(jù):描述事物的符號記錄成為數(shù)據(jù)(Data)包括數(shù)字、文字、圖形、圖像、聲音、檔案記錄等都是數(shù)據(jù)。數(shù)據(jù)以“記錄”形式按統(tǒng)一的格式進(jìn)行存儲(chǔ)的。

         2、數(shù)據(jù)庫和數(shù)據(jù)庫表:表是用來存儲(chǔ)具體數(shù)據(jù)的,數(shù)據(jù)庫就是表的集合。它是以一定的組織方式存儲(chǔ)的相互的數(shù)據(jù)集合。例如,關(guān)系數(shù)據(jù)庫的表由記錄組成,記錄有字段組成,字段有字符或數(shù)字組成。它可以供各種用戶共享,具有最小冗余度和較高的數(shù)據(jù)獨(dú)立性。它是統(tǒng)一管理的相關(guān)數(shù)據(jù)的集合。

 

數(shù)據(jù)庫管理系統(tǒng)(Database Management SystemDBMS)是實(shí)現(xiàn)對數(shù)據(jù)庫資源有效組織、管理和存取的系統(tǒng)軟件。它在操作系統(tǒng)的支持下,支持用戶對數(shù)據(jù)庫的各項(xiàng)操作。DBMS主要包括:

         1、數(shù)據(jù)庫的建立和維護(hù)功能

         2、數(shù)據(jù)定義功能

         3、數(shù)據(jù)操作功能

         4、數(shù)據(jù)庫的運(yùn)行管理功能

         5、通信功能

 

數(shù)據(jù)庫系統(tǒng)(Database System DBS)是一個(gè)人一機(jī)系統(tǒng),一般由硬件、操作系統(tǒng)、數(shù)據(jù)庫、DBMS、應(yīng)用軟件和數(shù)據(jù)庫用戶(包括數(shù)據(jù)庫管理員)組成。用戶可以通過DBMS操作數(shù)據(jù)庫,也可以通過應(yīng)用程序操作數(shù)據(jù)庫。

 

應(yīng)用程序是利用DBMS,為解決某個(gè)具體的管理或數(shù)據(jù)處理的任務(wù)而編制的一系列命令的有序集合。如果應(yīng)用程序比較完善,能夠提供友好的人機(jī)界面,并編譯成可執(zhí)行文件發(fā)行,使得普通用戶不需要具備計(jì)算機(jī)的專業(yè)知識,在較短時(shí)間就學(xué)會(huì)使用,那么就稱為數(shù)據(jù)庫應(yīng)用軟件。

 

數(shù)據(jù)庫管理員(Database Administrator DBA)負(fù)責(zé)數(shù)據(jù)庫的更新和備份、數(shù)據(jù)庫系統(tǒng)的維護(hù)用戶管理等工作,保證數(shù)據(jù)庫系統(tǒng)的正常運(yùn)行。DBA一般由業(yè)務(wù)水平較高、資歷較深的人員擔(dān)任。

 

數(shù)據(jù)庫發(fā)展史

根據(jù)數(shù)據(jù)模型的發(fā)展,可以劃分為三個(gè)階段:第一代的網(wǎng)狀、層次數(shù)據(jù)庫系統(tǒng);第二代的關(guān)系數(shù)據(jù)庫系統(tǒng);第三代的以面向?qū)ο竽P蜑橹饕卣鞯臄?shù)據(jù)庫系統(tǒng)。

20世紀(jì)60年代,層次模型與網(wǎng)狀模型的數(shù)據(jù)庫系統(tǒng),數(shù)據(jù)庫的代表是1969IBM公司研制的層次模型的數(shù)據(jù)庫管理系統(tǒng)——IMSImformation Management System,信息管理系統(tǒng))和20世紀(jì)70年代美國數(shù)據(jù)系統(tǒng)語言協(xié)會(huì)(CODASYL)下屬數(shù)據(jù)庫任務(wù)組(DBTG)提議的網(wǎng)狀模型。

20世紀(jì)70年代初,第二代數(shù)據(jù)庫——關(guān)系數(shù)據(jù)庫開始出現(xiàn)。逐漸成為占主導(dǎo)地位的數(shù)據(jù)庫,成為行業(yè)主流。關(guān)系數(shù)據(jù)系統(tǒng)將結(jié)構(gòu)化查詢語言(Structured Query LanguageSQL)作為數(shù)據(jù)定義語言(DataDefinition Language,DDL)和數(shù)據(jù)操作語言(Data Manipulation LanguageDML),它一誕生就成為關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言。

20世紀(jì)80年×××始,各種適應(yīng)不同領(lǐng)域的新型數(shù)據(jù)庫系統(tǒng)不斷涌現(xiàn),如工程數(shù)據(jù)庫、多媒體數(shù)據(jù)庫、圖形數(shù)據(jù)庫、智能數(shù)據(jù)庫、分布式數(shù)據(jù)庫及面向?qū)ο髷?shù)據(jù)庫等。

經(jīng)典數(shù)據(jù)模型

     數(shù)據(jù)是現(xiàn)實(shí)世界中“量”的抽象,而數(shù)據(jù)模型(Data Model)是數(shù)據(jù)特征的抽象。在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)模型是它的核心與基礎(chǔ)。數(shù)據(jù)模型表現(xiàn)為數(shù)據(jù)的結(jié)構(gòu)、定義在其上的操作及約束條件。它從概念層次上描述了系統(tǒng)的靜態(tài)特征、動(dòng)態(tài)特征和約束條件,為數(shù)據(jù)庫系統(tǒng)的信息表示與操作提供了一個(gè)抽象框架。

DBMS的發(fā)展過程中,出現(xiàn)了網(wǎng)狀模型、層次模型和關(guān)系模型三種經(jīng)典的數(shù)據(jù)模型。

數(shù)據(jù)模型所描述的內(nèi)容包括三方面:數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和數(shù)據(jù)約束。

網(wǎng)狀模型

   數(shù)據(jù)記錄組織成圖的形式,使用“數(shù)據(jù)結(jié)構(gòu)圖”進(jìn)行抽象的分析和表示。網(wǎng)狀模型適合表達(dá)復(fù)雜的數(shù)據(jù)關(guān)系的實(shí)現(xiàn),也可以將數(shù)據(jù)冗余減小到最小。它的數(shù)據(jù)結(jié)構(gòu)模型能直觀反映現(xiàn)實(shí)中數(shù)據(jù)之間的聯(lián)系。

數(shù)據(jù)操作

   網(wǎng)狀模型的數(shù)據(jù)操作是建立在關(guān)系鏈基礎(chǔ)上的導(dǎo)航式的操作。網(wǎng)狀模型以圖為基礎(chǔ)、

數(shù)據(jù)約束

   網(wǎng)狀模型的數(shù)據(jù)約束是零散孤立的,或者分散在各個(gè)節(jié)點(diǎn),或者集中成為一種關(guān)系鏈,這樣容易導(dǎo)致不一致性或降低效率。通常網(wǎng)狀模型不具體實(shí)現(xiàn)數(shù)據(jù)約束,而由應(yīng)用程序自身來實(shí)現(xiàn)數(shù)據(jù)約束。

層次模型

   層次模型中,數(shù)據(jù)記錄組織成樹的形式,使用“樹結(jié)構(gòu)圖”。

數(shù)據(jù)操作

在層次模型上的數(shù)據(jù)操作不可避免地具有網(wǎng)狀模型的特點(diǎn)——導(dǎo)航性。這樣的結(jié)構(gòu)有利于提高數(shù)據(jù)的查詢效率,但數(shù)據(jù)存取上還存在著必須導(dǎo)航的要求,因此,層次模型的數(shù)據(jù)庫在數(shù)據(jù)操作上依然比較復(fù)雜。

數(shù)據(jù)約束

    層次模型的數(shù)據(jù)約束與網(wǎng)狀模型相似,由于結(jié)構(gòu)的簡化,去掉了網(wǎng)狀模型中多對多和多對一的關(guān)系,層次模型的數(shù)據(jù)約束可以做到適當(dāng)?shù)南到y(tǒng)實(shí)現(xiàn),還是要依靠應(yīng)用程序本身實(shí)現(xiàn)。

層次模型的實(shí)現(xiàn)技術(shù)比關(guān)系模型優(yōu)越,比網(wǎng)狀模型簡單,所以一直獨(dú)領(lǐng)風(fēng)騷。它的代表是IBM公司的IMS系統(tǒng)。該系統(tǒng)曾是使用最早和最廣的幾個(gè)數(shù)據(jù)庫之一,在歷史上曾是最大的數(shù)據(jù)庫之一,由于它的開發(fā)者是最早開始處理并發(fā)、恢復(fù)、完整性和高效查詢等問題的人,其中的一些技術(shù)和思想自然應(yīng)用到DB2中,這是DB2長盛不衰的根源。

關(guān)系模型

   數(shù)據(jù)結(jié)構(gòu)。關(guān)系模型建立在關(guān)系代數(shù)的理論基礎(chǔ)上,數(shù)據(jù)結(jié)構(gòu)適用簡單易懂的二維數(shù)據(jù)表,“實(shí)體—關(guān)系”(E-R)圖來直接表示,E-R圖中包含了實(shí)體(數(shù)據(jù)對象),關(guān)系和屬性三個(gè)要素。

   實(shí)體:也稱為實(shí)例,對應(yīng)現(xiàn)實(shí)世界中可區(qū)別與其他對象的“事件”或“事物”。

實(shí)體集:具有相同類型及共享相同性質(zhì)的實(shí)體集合。

屬性:實(shí)體所具有的某一特性,一個(gè)實(shí)體可以有多個(gè)屬性。

聯(lián)系:實(shí)體集之間的對應(yīng)關(guān)系成為聯(lián)系,也稱為關(guān)系。

  數(shù)據(jù)操作。對于數(shù)據(jù)庫的用戶而言,關(guān)系模型使用從關(guān)系代數(shù)上抽象出來的數(shù)據(jù)庫操作語言(DML)進(jìn)行操作。結(jié)構(gòu)化查詢語言(SQL)就是其中最重要的一種。它的特色是直接面向結(jié)果,簡化操作步驟,使得數(shù)據(jù)庫應(yīng)用的設(shè)計(jì)變得非常簡單易懂。

對于數(shù)據(jù)庫的物理結(jié)構(gòu)而言, 關(guān)系數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)簡單、功能強(qiáng)、數(shù)據(jù)獨(dú)立性高、理論基礎(chǔ)堅(jiān)實(shí)。嚴(yán)格的關(guān)系數(shù)據(jù)庫以二維的數(shù)據(jù)庫表作為基本數(shù)據(jù)結(jié)構(gòu),利用簡單或復(fù)雜的索引技術(shù)實(shí)現(xiàn)查詢算法,實(shí)現(xiàn)起來相對比較簡單,也方便了預(yù)編譯技術(shù)將SQL語言直接轉(zhuǎn)化為有效的數(shù)據(jù)檢索算法。

數(shù)據(jù)約束。關(guān)系模型的數(shù)據(jù)約束可以針對實(shí)體,也可以針對實(shí)體的屬性,還可以針對關(guān)系,并可以在定義實(shí)體、實(shí)體屬性和關(guān)系時(shí)全面實(shí)現(xiàn)。關(guān)系模型使用的數(shù)據(jù)定義語言(DDL)和關(guān)系模型在理論上對關(guān)系數(shù)據(jù)庫核心實(shí)現(xiàn)的要求,使得數(shù)據(jù)約束可以很容易實(shí)現(xiàn),但是他的效率并不高。

總和來說,關(guān)系模型相比網(wǎng)狀模型和層次模型有更為堅(jiān)實(shí)和完整的理論基礎(chǔ)。相比層次模型和網(wǎng)狀模型而言,關(guān)系模型與用戶更靠近些,而網(wǎng)狀模型和層次模型與底層實(shí)現(xiàn)的結(jié)合更緊密。這樣的特色也更容易讓關(guān)系模型成為商業(yè)數(shù)據(jù)庫的選擇。

當(dāng)今主流數(shù)據(jù)庫介紹

  SQL Server Microsoft公司的數(shù)據(jù)庫產(chǎn)品。在設(shè)計(jì)上,Microsoft SQL Server大量利用了Microsoft Windows操作系統(tǒng)的底層結(jié)構(gòu),直接面向Microsoft Windows,尤其是Windows系列服務(wù)器操作系統(tǒng)的用戶。

  Oracle 公司成立于1977年,20136月,Oracle 12C正式發(fā)布,使企業(yè)能夠快速實(shí)現(xiàn)私有云。Oracle數(shù)據(jù)庫成為世界上使用廣泛的數(shù)據(jù)庫系統(tǒng)之一。Oracle公司在數(shù)據(jù)庫領(lǐng)域一直處于領(lǐng)先地位,不僅數(shù)據(jù)庫核心相當(dāng)優(yōu)秀,而且其相關(guān)的支持產(chǎn)品也相當(dāng)完善和全面。Oracle能適應(yīng)70多種操縱系統(tǒng)。

DB21970,IBM公司的德加·考特提出關(guān)系模型的概念.他被稱為關(guān)系數(shù)據(jù)庫之父”.DB2支持從PCUNIX,從中小型到大型機(jī),IBM到非IBM(HPSun UNIX系統(tǒng)等)各種操縱系統(tǒng)平臺(tái)。DB2服務(wù)器端的最佳運(yùn)行環(huán)境還是IBM自己的操作系統(tǒng)平臺(tái)OS/400。

DB2數(shù)據(jù)庫核心又稱為DB2通用服務(wù)器,可以運(yùn)行與多種操作系統(tǒng)之上,它根據(jù)相應(yīng)的平臺(tái)環(huán)境做了調(diào)整和優(yōu)化,以便達(dá)到較好的性能。

MySQL 也是一個(gè)關(guān)系型數(shù)據(jù)庫管理系統(tǒng),現(xiàn)已被Oracle公司收購。MySQL運(yùn)行與Linux操作系統(tǒng)之上,ApacheNginx作為Web服務(wù)器,MySQL作為后臺(tái)數(shù)據(jù)庫,PHP/Perl/Python作為腳本解釋器。這四款軟件都是免費(fèi)或開源的。業(yè)內(nèi)稱為“LAMP”組合。

關(guān)系數(shù)據(jù)庫的基本概念

   關(guān)系數(shù)據(jù)庫系統(tǒng)是基于關(guān)系模型的數(shù)據(jù)庫系統(tǒng)。是關(guān)系模型應(yīng)用到數(shù)據(jù)庫領(lǐng)域的實(shí)例化。它的基本概念來自于關(guān)系模型。

關(guān)系數(shù)據(jù)庫使用的存儲(chǔ)結(jié)構(gòu)是多個(gè)二維表格,反映事物及其聯(lián)系的數(shù)據(jù)描述是以平面表格形式體現(xiàn)的。

關(guān)系數(shù)據(jù)庫是由數(shù)據(jù)表之間的關(guān)聯(lián)組成的,其中:

   數(shù)據(jù)表通常是一個(gè)由行和列組成的二維表,每一個(gè)數(shù)據(jù)表分別說明數(shù)據(jù)庫中某一特定的方面或部分的對象及其屬性。

   數(shù)據(jù)表中的行通常叫做記錄或者元組,它代表眾多具有相同屬性的對象中的一個(gè)。

   數(shù)據(jù)表中的列通常叫做字段或者屬性,它代表相應(yīng)數(shù)據(jù)庫中存儲(chǔ)的共有的屬性。

主鍵與外鍵

   數(shù)據(jù)表中的每行記錄都必須是唯一的,而不允許出現(xiàn)完全相同的記錄,通過定義主鍵(主關(guān)鍵字,Primary Key)可以保證記錄(實(shí)體)的唯一性。

鍵,即關(guān)鍵字,它是關(guān)系模型中一個(gè)非常重要的元素。

主鍵唯一標(biāo)識表中的行數(shù)據(jù),一個(gè)主鍵值對應(yīng)一行數(shù)據(jù)。主鍵由一個(gè)或多個(gè)字段組成,其值具有唯一性,不允許取空值(NULL)。一個(gè)表只能有一個(gè)主鍵。

如果一個(gè)屬性集能唯一地表示表的一行而又不含有多于的屬性,那么這個(gè)屬性集稱為候選鍵。表中可以有多個(gè)候選鍵,但是只能有一個(gè)候選鍵可以選作表的主鍵,其他候選鍵稱為備用鍵。

外鍵

一個(gè)關(guān)系數(shù)據(jù)庫通常包含多個(gè)表,通過外鍵(ForeignKey)可以使這些表關(guān)聯(lián)起來。

外鍵是用于建立和加強(qiáng)兩個(gè)表數(shù)據(jù)之間的鏈接的一列或多列。通過將表中主鍵值的一列或多列添加到另一個(gè)表中,可創(chuàng)建兩個(gè)表之間的鏈接。這個(gè)列就稱為第二個(gè)表的外鍵。

“主表”和“從表”總是成對出現(xiàn)的,相互之間以“外鍵”形成關(guān)聯(lián)。

數(shù)據(jù)完整性規(guī)則

   關(guān)系數(shù)據(jù)庫的數(shù)據(jù)與更新操作必須遵守四類完整規(guī)則:

  1、實(shí)體完整性規(guī)則

    實(shí)體完整性規(guī)則要求關(guān)系中的元組在主鍵的屬性上不能有空值。如果出現(xiàn)空值,那么主鍵值就起不到唯一標(biāo)識元組的作用。

2、域完整性規(guī)則

   域完整性也稱為列完整性,指定一個(gè)數(shù)據(jù)集對某一個(gè)列是否有效或確定是否允許空值。

3、引用完整性規(guī)則

     如果兩個(gè)表相互關(guān)聯(lián),那么引用完整性規(guī)則要求不允許引用不存在的元組。

4、用戶定義的完整性規(guī)則

    用戶定義完整規(guī)則是針對某一具體數(shù)據(jù)的約束條件,由應(yīng)用環(huán)境決定。它反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求。系統(tǒng)提供定義和檢驗(yàn)這類完整性的機(jī)制,以便用統(tǒng)一的系統(tǒng)方法進(jìn)行處理,不再由應(yīng)用程序承擔(dān)這項(xiàng)工作。

實(shí)體完整性規(guī)則和域完整性規(guī)則是關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)要求在數(shù)據(jù)庫系統(tǒng)的核心層實(shí)現(xiàn)的。


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI