- 零基礎學SQL
- 孫瀏毅等編著
- 12字
- 2019-01-02 03:50:51
第一篇 關系數據庫與SQL語言
第1章 關系數據庫介紹
關系數據庫是一個二維表的集合,可以用來存儲不同類型的數據信息。用戶可以根據自己的需要查詢其中的信息。目前經常使用的數據庫包括Oracle數據庫、MySQL數據庫、Microsoft SQL Server數據庫和DB2數據庫等。本章主要介紹關系數據庫中涉及的幾個重要的概念以及幾種常用的關系數據庫,最后以MySQL 5.0數據庫為例,介紹了MySQL 5.0數據庫的安裝和使用方法。
本章重點:
?概念模型和關系數據模型
?關系模式
?常用關系數據庫介紹
?MySQL 5.0數據庫的安裝和使用方法
1.1 數據模型
數據模型主要包括概念模型、邏輯數據模型和物理數據模型。概念模型是以客戶的觀點和想法為基礎,對現實世界事物的抽象;邏輯數據模型是指用戶看到的數據庫中的數據模型,常用的是關系數據模型;物理數據模型是用來表示數據的存儲結構的。本節主要介紹概念模型和關系數據模型。
1.1.1 概念模型
在關系數據庫的設計中,概念模型通常是通過E-R圖來描述的。其中,E表示實體的意思;R表示關系的意思。因此E-R圖也叫做實體—關系圖。
在E-R圖中的E是英文單詞Entity的縮寫,表示實體的意思。這里所說的實體可以理解為現實世界中的事物,例如,高等院校中的院系、教師等。E-R圖中的R是英文單詞Relationship的縮寫,表示關系的意思。這里所說的關系可以理解為實體與實體之間的相互聯系。例如,高等院校中院系與教師之間的相互聯系。在E-R圖中還涉及的一個概念是屬性,英文單詞為Attribute,它用來描述實體的特征。例如,高等院校中院系的編號、名稱;教師的姓名、編號、工資、所在院系等。
在E-R圖中,關系是用來表示實體與實體之間相互聯系的。關系可以分為一對一、一對多和多對多三種類型。下面通過例子來講解關系中的這3種類型。
?一對一(1:1):在高等院校中,校長和學校的關系就是一對一的關系。每一個學校只有一名校長,一名校長只能管理一個學校。
?一對多(1:n):在高等院校中,院系和學生之間就是一對多的關系。一個院系中可以對應多個學生,而每一個學生只是其中某一個院系中的成員。
?多對多(n:m):在高等院校中,課程與授課教師之間就是多對多關系。一門課程可以由幾個不同的教師來講授,一名教師也可以講授多門不同的課程。
在E-R圖共有3種符號:矩形、橢圓(或者圓形)和菱形。其中,矩形用來表示實體,橢圓或者圓形用來表示屬性,菱形用來表示關系。下面來看一下如何使用E-R圖描述上面講到的3種關系。
1. 使用E-R圖描述一對一關系
這里以學校和校長為例,使用E-R圖描述一對一關系。其E-R圖如圖1.1所示。

圖1.1 一對一關系
圖1.1描述了學校和校長的一對一關系。其中,矩形中的學校和校長表示實體;橢圓中的學校編號、學校名稱表示實體學校的屬性,校長名稱、校長年齡、校長性別表示實體校長的屬性;菱形中的管理表示學校和校長之間的關系,即學校是由校長來管理的。
2. 使用E-R圖描述一對多關系
這里以學生和院系為例,使用E-R圖描述一對多關系。其E-R圖如圖1.2所示。

圖1.2 一對多關系
圖1.2描述了學生和院系的一對多關系。其中,矩形中的學生和院系表示實體;橢圓中的院系編號、院系名稱表示實體院系的屬性,學生編號、學生名稱、學生年齡表示實體學生的屬性;菱形中的屬于表示院系和學生之間的關系,即學生是屬于某一個院系的。
3. 使用E-R圖描述多對多關系
這里以教師和課程為例,使用E-R圖描述多對多關系。其E-R圖如圖1.3所示。
圖1.3描述了教師和課程的多對多關系。其中,矩形中的教師和課程表示實體;橢圓中的課程編號、課程名稱表示實體課程的屬性,教師編號、教師名稱、教師職稱表示實體教師的屬性;菱形中的授課表示院系和學生之間的關系,即課程是由教師來講授的。

圖1.3 多對多關系
1.1.2 關系數據模型
在數據庫管理系統的實現中,關系數據模型通過二維表的形式描述實體與屬性之間的關系。兩個二維表之間的關系也包括一對一、一對多和多對多3種類型。
?一對一(1:1):在二維表A和二維表B中,如果表A中的一條記錄只與表B中的一條記錄相對應,同時表B中的每一條記錄也只與表A中的一條記錄相對應,那么這兩個數據表之間就是一對一的關系。
?一對多(1:n):二維表A和二維表B中,如果表A中的一條記錄只與表B中的一條記錄相對應,但是表B中的每一條記錄卻能對應表A中的多條記錄,那么這兩個數據表之間就是一對多的關系。
?多對多(n:m):二維表A和二維表B中,如果表A中的一條記錄與表B中的多條記錄相對應,同時表B中的每一條記錄也與表A中的多條記錄相對應,那么這兩個數據表之間就是多對多的關系。
二維表是由行和列兩部分組成的。其中,二維表中的行用來描述實體中的具體數據,二維表中的列用來表示實體中的屬性。在二維表還涉及與其有關的一些概念,這些與二維表有關的概念將在4.1節中介紹。
- Redis使用手冊
- Access 2007數據庫應用上機指導與練習
- 大數據導論
- 算法與數據中臺:基于Google、Facebook與微博實踐
- 大話Oracle Grid:云時代的RAC
- Dependency Injection with AngularJS
- 數據科學工程實踐:用戶行為分析與建模、A/B實驗、SQLFlow
- 云原生數據中臺:架構、方法論與實踐
- 區塊鏈技術應用與實踐案例
- MySQL技術內幕:SQL編程
- 計算機組裝與維護(微課版)
- Web Services Testing with soapUI
- 從實踐中學習sqlmap數據庫注入測試
- Gideros Mobile Game Development
- PostgreSQL高可用實戰