SQL server速成基礎之資料庫應用系統
這篇文章為大家帶來了關於SQL server的相關知識,其中主要介紹了關於資料庫基礎的相關問題,包括了簡單的資料庫應用系統、資料庫設計的介紹,下面一起來看一下,希望對大家有幫助。
推薦學習:《SQL教學》
#資料庫概念
資料庫
把以一定模型組織的資料稱為資料庫(DataBase, DB)。資料庫是
事務處理,資訊管理等應用系統等核心和基礎。資料庫管理系統(DataBase Management System, DBMS)
管理資料庫等系統,它將大量的資料按一定的資料模型組織起來,提
供儲存、維護、檢索資料的功能,使應用系統可以以統一的方式方便、
及時、準確地從資料庫中獲取所需資訊。
有人可能會問:我的資料就存放在自己電腦的excel表裡就可以了,為什麼還要搞個資料庫呢
那是這是因為資料庫比excel有更多的優勢。資料庫可以存放大量的數據,允許很多人同時使用裡面的數據。舉個例子你就明白了,excel好比是一個行動硬碟,你使用了這個行動硬碟其他人就用不了了。資料庫好比是網盤,很多人可以同時存取裡面的數據,而且網盤比行動硬碟能放更多的數據。
1.1 一個簡單的資料庫應用系統
#資料庫如何組織(存放)資料?
在專案開發時,必須選擇一個合適的資料庫管理系統將資料按一定資料模型組織起來,並對資料進行統一管理,為需要使用資料的應用程式提供一致的存取手段。資料模型主要包括關係模型、層次模型、網狀模型。目前,關係模型較為常用。
關係模型以二維表格(關係表)的形式組織資料庫中的資料。例如:表1.1描述了某一時刻學生圖書借閱系統中的學生資料.
- #表格中的一行稱為記錄,一列稱為一個字段,標題為字段名。
- 關係表結構表示形式:關聯表名(欄位名稱1,欄位名稱2…欄位
位元n)
- #碼:一個欄位或欄位最小組合的值可以唯一標識其對應記錄。一個
表中可以有多個碼,一般指定一個碼為主碼,在關係表中用底線表
示。如,學生表xs(借書證號,姓名,性別,出生時間,專業,借書
量)。
1.2 資料庫設計
#表之間的關係:
(1)實體集表示 在E-R圖中,使用矩形表示實體集,使用橢圓表示屬性,使用菱形表示聯 系。用線段連接實體集與屬性,當一個屬性或屬性組合指定為主碼時,在實體集與屬性的連接線上標記一斜線。
(2)實體集合之間存在著各種關係
1.一對一的聯繫(1 : 1) A中的一個實體至多與B中的一個實體相聯繫,B中的一個實體也至多與A中的一個實體相聯繫。例如,「班級」與「班主任」這兩個實體集之間的聯繫是一對一的聯繫,因為一個班級只有一個班主任,反過來,一個班主任只屬於一個班級。 「班級」與「班主任」兩個實體集的E-R模型如圖1.2所示。
2.一對多的聯繫(1 : n) A中的一個實體可以與B中的多個實體相聯繫,而B中的一個實體至多與A中的一個實體相聯繫。例如,「班級」與「學生」(讀者)這兩個實體集之間的聯繫是一對多的聯繫,因為一個班級可有若干學生,反過來,一個學生只能屬於一個班級。 「班級」與「學生」兩個實體集合的E-R模型如圖1.3所示。
3.多對多的聯繫(m : n) A中的一個實體可以與B中的多個實體相聯繫,而B中的一個實體也可與A中的多個實體相聯繫。例如,「讀者」(學生)與「圖書」這兩個實體集之間的聯繫是多對多的聯繫,因為一個讀者可藉多本圖書,反過來,一個書號的圖書可被多個學生藉。 「讀者」與「圖書」兩個實體集的E-R模型如圖1.4所示。
設有商店和顧客兩個實體,「商店」有屬性:商店編號、商店名稱、地址、電話,「顧客」有屬性:顧客編號、姓名、地址、年齡、性別。假設顧客每次去商店購物都有一個消費金額和日期。試畫出E-R圖,並註明屬性和聯繫類型。
假設每個學生選修若干門課程,且每個學生每選一門課只有一個成績,每個教師只擔任一門課的教學,一門課由若干教師任教。 「學生」有屬性:學號、姓名、地址、年齡、性別。 「教師」有屬性:職工號碼、教師姓名、職稱,「課程「有屬性:課程號碼、課程名稱。試畫出ER圖,並註明屬性和聯繫類型。
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圖,並轉換成關係模型。
練習2:假設每個學生選修若干門課程,且每個學生每選一門課只有一個成績,每個教師只擔任一門課的教學,一門課由若干教師任教。 「學生」有屬性:學號、姓名、地址、年齡、性別。 「教師」有屬性:職工號碼、教師姓名、職稱,「課程」有屬性:課程號碼、課程名稱。試畫出ER圖,並將E-R圖轉換成關係模型。
1.3 資料庫應用系統
# 如圖1.5所示描述了資料庫系統的組成。
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存取資料庫的介面模型。
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#等。應用程式與資料庫、資料庫管理系統之間的關係如圖所示。
2. 瀏覽器/伺服器架構的應用系統
基於Web的資料庫應用採用三層(瀏覽器/Web伺服器/資料庫伺服器)模式,也稱B/S架構,如圖所示。
推薦學習:《SQL教學》
以上是SQL server速成基礎之資料庫應用系統的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

HQL和SQL在Hibernate框架中進行比較:HQL(1.物件導向語法,2.資料庫無關的查詢,3.類型安全),而SQL直接操作資料庫(1.與資料庫無關的標準,2.可執行複雜查詢和資料操作)。

《OracleSQL中除法運算的用法》在OracleSQL中,除法運算是常見的數學運算之一。在資料查詢和處理過程中,除法運算可以幫助我們計算欄位之間的比例或得出特定數值的邏輯關係。本文將介紹OracleSQL中除法運算的用法,並提供具體的程式碼範例。一、OracleSQL中除法運算的兩種方式在OracleSQL中,除法運算可以用兩種不同的方式來進行

Oracle和DB2是兩個常用的關聯式資料庫管理系統,它們都有自己獨特的SQL語法和特性。本文將針對Oracle和DB2的SQL語法進行比較與區別,並提供具體的程式碼範例。資料庫連接在Oracle中,使用以下語句連接資料庫:CONNECTusername/password@database而在DB2中,連接資料庫的語句如下:CONNECTTOdataba

MyBatis動態SQL標籤解讀:Set標籤用法詳解MyBatis是一個優秀的持久層框架,它提供了豐富的動態SQL標籤,可以靈活地建構資料庫操作語句。其中,Set標籤是用來產生UPDATE語句中SET子句的標籤,在更新作業中非常常用。本文將詳細解讀MyBatis中Set標籤的用法,以及透過具體的程式碼範例來示範其功能。什麼是Set標籤Set標籤用於MyBati

SQL中的Identity是什麼,需要具體程式碼範例在SQL中,Identity是一種用於產生自增數字的特殊資料類型,它常用於唯一識別表中的每一行資料。 Identity欄位通常與主鍵列搭配使用,可確保每筆記錄都有獨一無二的識別碼。本文將詳細介紹Identity的使用方式以及一些實際的程式碼範例。 Identity的基本使用方式在建立表格時,可以使用Identit

在Springboot+Mybatis-plus不使用SQL語句進行多表添加操作我所遇到的問題準備工作在測試環境下模擬思維分解一下:創建出一個帶有參數的BrandDTO對像模擬對後台傳遞參數我所遇到的問題我們都知道,在我們使用Mybatis-plus中進行多表操作是極其困難的,如果你不使用Mybatis-plus-join這一類的工具,你只能去配置對應的Mapper.xml文件,配置又臭又長的ResultMap,然後再寫對應的sql語句,這種方法雖然看上去很麻煩,但具有很高的靈活性,可以讓我們

解決方法:1、檢查登入使用者是否具有足夠的權限來存取或操作該資料庫,確保該使用者俱有正確的權限;2、檢查SQL Server服務的帳戶是否具有存取指定檔案或資料夾的權限,確保該帳戶具有足夠的權限來讀取和寫入該文件或資料夾;3、檢查指定的資料庫文件是否已被其他進程打開或鎖定,嘗試關閉或釋放該文件,並重新運行查詢;4、嘗試以管理員身份運行Management Studio等等。

如何使用SQL語句在MySQL中進行資料聚合和統計?在進行資料分析和統計時,資料聚合和統計是非常重要的步驟。 MySQL作為一個功能強大的關聯式資料庫管理系統,提供了豐富的聚合和統計函數,可以很方便地進行資料聚合和統計操作。本文將介紹使用SQL語句在MySQL中進行資料聚合和統計的方法,並提供具體的程式碼範例。一、使用COUNT函數進行計數COUNT函數是最常用
