SQL server速成基礎之數據庫應用系統

本篇文章給大家帶來了關于sql server的相關知識,其中主要介紹了關于數據庫基礎的相關問題,包括了簡單的數據庫應用系統、數據庫設計的介紹,下面一起來看一下,希望對大家有幫助。

SQL server速成基礎之數據庫應用系統

推薦學習:《sql server

數據庫概念

  • 數據庫
    把按一定模型組織的數據稱為數據庫(database, DB)。數據庫是
    事務處理,信息管理等應用系統等核心和基礎。

  • 數據庫管理系統(DataBase Management System, DBMS)
    管理數據庫等系統,它將大量的數據按一定的數據模型組織起來,提
    供存儲、維護、檢索數據的功能,使應用系統可以以統一的方式方便、
    及時、準確地從數據庫中獲取所需信息。

??有人可能會問:我的數據就存放在自己電腦的excel表里就可以了,為什么還要搞個數據庫呢

??那是這是因為數據庫比excel有更多的優勢。數據庫可以存放大量的數據,允許很多人同時使用里面的數據。舉個例子你就明白了,excel好比是一個移動硬盤,你使用了這個移動硬盤其他人就用不了了。數據庫好比是網盤,很多人可以同時訪問里面里的數據,而且網盤比移動硬盤能放更多的數據。
SQL server速成基礎之數據庫應用系統

1.1 一個簡單的數據庫應用系統

數據庫如何組織(存放)數據?

??在項目開發時,必須選擇一個合適的數據庫管理系統將數據按一定數據模型組織起來,并對數據進行統一管理,為需要使用數據的應用程序提供一致的訪問手段。數據模型主要包括關系模型、層次模型、網狀模型。目前,關系模型較為常用。

??關系模型以二維表格(關系表)的形式組織數據庫中的數據。例如:表1.1描述了某一時刻學生圖書借閱系統中的學生數據.
SQL server速成基礎之數據庫應用系統

SQL server速成基礎之數據庫應用系統

表格中的一行稱為記錄,一列稱為一個字段,標題為字段名。

  1. 關系表結構表示形式:關系表名(字段名1,字段名2…字段
    名n)
  1. 碼:一個字段或字段最小組合的值可以唯一標識其對應記錄。一個
    表中可以有多個碼,一般指定一個碼為主碼,在關系表中用下劃線表
    示。如,學生表xs(借書證號,姓名,性別,出生時間,專業,借書
    量)。

1.2 數據庫設計

表之間的關系:

學生表

SQL server速成基礎之數據庫應用系統

成績表

SQL server速成基礎之數據庫應用系統

??例如我想知道學生表里學號“0001” 的成績是多少?那么我就可以在成績表里去查找“學號”值是0001的行,最后在成績表里發現有3行數據的學號都是“0001” ,對應的就找到了該學生的三門課程的成績。關系就是數據能夠對應的匹配。

1.2.1 E-R模型

??E-R模型用來表示實體集與實體集之間的聯系的圖稱為實體(entity)-聯系 (relationship)模型( E-R圖)。

??通常,E-R模型把每一類數據對象的個體稱為“實體”,而每一類對象個體的 集合稱為“實體集”,例如,在圖書管理系統中主要涉及“讀者”(又稱為學生)和 “圖書”等實體集,非主要實體集還有班級、班主任等。把每個實體集涉及的信息項稱為屬性。

??(1)實體集表示 在E-R圖中,使用矩形表示實體集,使用橢圓表示屬性,使用菱形表示聯 系。用線段連接實體集與屬性,當一個屬性或屬性組合指定為主碼時,在實體集與屬性的連接線上標記一斜線。
SQL server速成基礎之數據庫應用系統
SQL server速成基礎之數據庫應用系統

(2)實體集之間存在各種關系
??1.一對一的聯系(1 : 1) A中的一個實體至多與B中的一個實體相聯系,B中的一個實體也至多與A中的一個實體相聯系。例如,“班級”與“班主任”這兩個實體集之間的聯系是一對一的聯系,因為一個班級只有一個班主任,反過來,一個班主任只屬于一個班級。“班級”與“班主任”兩個實體集的E-R模型如圖1.2所示。
SQL server速成基礎之數據庫應用系統
??2.一對多的聯系(1 : n) A中的一個實體可以與B中的多個實體相聯系,而B中的一個實體至多與A中的一個實體相聯系。例如,“班級”與“學生”(讀者)這兩個實體集之間的聯系是一對多的聯系,因為一個班級可有若干學生,反過來,一個學生只能屬于一個班級。“班級”與“學生”兩個實體集的E-R模型如圖1.3所示。
SQL server速成基礎之數據庫應用系統
??3.多對多的聯系(m : n) A中的一個實體可以與B中的多個實體相聯系,而B中的一個實體也可與A中的多個實體相聯系。例如,“讀者”(學生)與“圖書”這兩個實體集之間的聯系是多對多的聯系,因為一個讀者可借多本圖書,反過來,一個書號的圖書可被多個學生借。“讀者”與“圖書”兩個實體集的E-R模型如圖1.4所示。
SQL server速成基礎之數據庫應用系統

練習1

??設有商店和顧客兩個實體,“商店”有屬性:商店編號、商店名、地址、電 話,“顧客”有屬性:顧客編號、姓名、地址、年齡、性別。假設顧客每次去商店購物有一個消費金額和日期。試畫出E-R圖,并注明屬性和聯系類型。
SQL server速成基礎之數據庫應用系統

==練習2==

??假設每個學生選修若干門課程,且每個學生每選一門課只有一個成績,每個教師只擔任 一門課的教學,一門課由若干教師任教。“學生”有屬性:學號、姓名、地址、年齡、性別。“教師”有屬性:職工號、教師姓名、職稱,“課程“有屬性:課程號、課程名。 試畫出ER圖,并注明屬性和聯系類型。

SQL server速成基礎之數據庫應用系統

1.2.2邏輯數據模型

??下面將根據三種聯系從E-R圖獲得關系模式的方法。

??1.(1 : 1)聯系的E-R圖到關系模式的轉換
?? a. 每個實體集各對應一個關系模式;
?? b. 對于(1 : 1)的聯系,既可單獨對應一個關系模式,也可以不單獨對應一個關系模式。
??(1)聯系單獨對應一個關系模式,則由聯系屬性、參與聯系的各實體集的主碼屬性構成關系模式,其主碼可選參與聯系的實體集的任一方的主碼。
??例如,考慮圖1.2描述的“班級(bj)”與“班主任(bzr)”實體集通過屬于(sy)聯系E-R模型,可設計如下關系模式(下橫線表示該字段為主碼):
bj(班級編號,院系,專業,人數)
bzr(員工號,姓名,聯系電話)
sy(員工號,班級編號)
??(2)聯系不單獨對應一個關系模式,聯系的屬性及一方的主碼加入另一方實體集對應的關系模式中。
??例如,考慮圖1.2描述的“班級(bj)”與“班主任(bzb)”實體集通過屬于(sy)聯系E-R模型,可設計如下關系模式:
bj(班級編號,院系,專業,人數)
bzr(員工號,姓名,聯系電話,班級編號)
或者:
bj(班級編號,院系,專業,人數,員工號)
bzr(員工號,姓名,聯系電話)

??2.(1 : n)聯系的E-R圖到關系模式的轉換
??a. 每個實體集各對應一個關系模式;
??b. 對于(1 : n)的聯系,既可單獨對應一個關系模式,也可以不單獨對應一個
關系模式。
??(1)聯系單獨對應一個關系模式,則由聯系的屬性、參與聯系的各實體集的 主碼屬性構成關系模式,n端的主碼作為該關系模式的主碼。
??例如,考慮圖1.3描述的“班級(bj)”與“學生(xs)”實體集E-R模型,可設計如下關系模式:
bj(班級編號,院系,專業,人數)
xs(借書證號,姓名,性別,出生時間,專業,借書量)
sy(借書證號,班級編號)
??(2)聯系不單獨對應一個關系模式,則將聯系的屬性及1端的主碼加入n端實
體集對應的關系模式中,主碼仍為n端的主碼。
??例如,圖1.3描述的“班級(bj)”與“讀者(xs)”實體集E-R模型可設計如下關系模式:
bj(班級編號,院系,專業,人數)
xs(借書證號,姓名,性別,出生時間,專業,借書量,班級編號)

??3.(m : n)聯系的E-R圖到關系模式的轉換
??a. 每個實體集各對應一個關系模式;
??b. 對于(m : n)的聯系,單獨對應一個關系模式,該關系模式包括聯系的屬性、參與聯系的各實體集的主碼屬性,該關系模式的主碼由各實體集的主碼屬性共同組成。
??例如,圖1.4描述的“讀者(xs)”與“圖書(book)”實體集之間的借閱聯
系(jy)可設計如下關系模式:
xs(借書證號,姓名,性別,出生時間,專業,借書量)
book(ISBN,書名,作譯者,出版社,價格,復本量,庫存量,內容提要)
jy(借書證號,ISBN,索書號,借閱時間)
關系模式jy的主碼是由“借書證號”和“ISBN”兩個屬性組合起來構成的一
個主碼,一個關系模式只能有一個主碼。

??練習1:設有商店和顧客兩個實體,“商店”有屬性:商店編號、商店名、地址、電 話,“顧客”有屬性:顧客編號、姓名、地址、年齡、性別。假設顧客每次去商店購物有一個消費金額和日期。繪制E-R圖,并轉換成關系模型。

SQL server速成基礎之數據庫應用系統

??練習2:假設每個學生選修若干門課程,且每個學生每選一門課只有一個成績,每個教師只擔任 一門課的教學,一門課由若干教師任教。“學生”有屬性:學號、姓名、地址、年齡、性別。 “教師”有屬性:職工號、教師姓名、職稱,“課程”有屬性:課程號、課程名。 試畫出ER圖,并將E-R圖轉換成關系模型。

SQL server速成基礎之數據庫應用系統

1.3 數據庫應用系統

??如圖1.5所示描述了數據庫系統的構成。
SQL server速成基礎之數據庫應用系統

1.3.1應用系統的數據接口

1.ODBC數據庫接口
??ODBC即開放式數據庫互連(Open DataBase Connectivity),是微軟公司推出的一種實現應用程序和關系數據庫之間通信的接口標準。符合該標準的數據庫就可以通過sql語句編寫的程序對數據庫進行操作,但只針對關系數據庫。目前所有的關系數據庫都符合該標準。ODBC本質上是一組數據庫訪問API(應用程序編程接口),由一組函數調用組成,核心是SQL語句。

2.ADO數據庫接口
??ADO(ActiveX Data Object)是微軟公司開發的基于COM的數據庫應用程序接口,通過ADO連接數據庫,可以靈活地操作數據庫中的數據。使用ADO訪問關系數據庫有兩種途徑:一種是通過ODBC驅動程序,另一種是通過數據庫專用的OLE DB Provider,后者有更高的訪問效率。

3.ADO.net數據庫接口
??ADO.NET數據模型從ADO發展而來,但它不只是對 ADO的改進,而是采用
了一種全新的技術。主要體現在以下幾個方面:
(1)ADO.NET不是采用ActiveX技術,而是與.NET框架緊密結合的產物。
(2)ADO.NET包含對xml標準的完全支持,這對于跨平臺交換數據具有重 要意義。
(3)ADO.NET既能在與數據源連接的環境下工作,又能在斷開與數據源連接的條件下工作。特別是后者,非常適合于網絡應用的需要,因為在網絡環境下,始終做到保持與數據源連接,不符合網站的要求,不僅效率低,付出代價高,而且常會引發由于多個用戶同時訪問而帶來的沖突。

??ADO.NET 提供了面向對象的數據庫視圖,并且在其對象中封裝了許多數據庫屬性和關系。最重要的是,它通過多種方式封裝和隱藏了很多數據庫訪問的細 節。可以完全不知道對象在與ADO.NET對象交互,也不用擔心數據移動到另外一個數據庫或者從另一個數據庫獲得數據等細節問題。圖1.6顯示了通過ADO.NET訪問數據庫的接口模型。

SQL server速成基礎之數據庫應用系統

4.JDBC數據庫接口
??JDBC(Java DataBase Connectivity)是JavaSoft (原來SUN公司的業務部門)開發的,Java語言編寫的用于數據庫連接和操作的類和接口,可為多種關系數據庫提供統一的訪問方式。通過JDBC對數據庫的訪問包括4個主要組件:Java應用程序、JDBC驅動器管理器、驅動器和數據源。
使用JDBC接口操作數據庫有如下優點:
(1)JDBC API與ODBC十分相似,有利于用戶理解;
(2)使編程人員從復雜的驅動器調用命令和函數中解脫出來,而致力于應用
程序功能的實現;
(3)JDBC支持不同的關系數據庫,增強了程序的可移植性。

5.數據庫連接池技術
??對于網絡環境下的數據庫應用,由于用戶眾多,使用傳統的JDBC方式進行數據庫連接,系統資源開銷過大成為制約大型企業級應用效率的瓶頸,采用數據庫連 接池技術對數據庫連接進行管理,可以大大提高系統的效率和穩定性。

1.3.2應用系統架構

??1. 客戶/服務器架構的應用系統
??DBMS通過命令和適合專業人員的界面操作數據庫。對于一般的數據庫應用系統,除了DBMS外,還需要設計適合普通人員操作數據庫的界面。目前,流行的開發數據庫界面的工具主要有Visual Basic、Visual C++、Visual C#等。應用程序與數據庫、數據庫管理系統之間的關系如圖所示。

SQL server速成基礎之數據庫應用系統

??2. 瀏覽器/服務器架構的應用系統
??基于Web的數據庫應用采用三層(瀏覽器/Web服務器/數據庫服務器)模式,也稱B/S架構,如圖所示。
SQL server速成基礎之數據庫應用系統

推薦學習:《sql server

? 版權聲明
THE END
喜歡就支持一下吧
點贊15 分享