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

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

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

圖1.3 多對多關(guān)系
1.1.2 關(guān)系數(shù)據(jù)模型
在數(shù)據(jù)庫管理系統(tǒng)的實現(xiàn)中,關(guān)系數(shù)據(jù)模型通過二維表的形式描述實體與屬性之間的關(guān)系。兩個二維表之間的關(guān)系也包括一對一、一對多和多對多3種類型。
?一對一(1:1):在二維表A和二維表B中,如果表A中的一條記錄只與表B中的一條記錄相對應(yīng),同時表B中的每一條記錄也只與表A中的一條記錄相對應(yīng),那么這兩個數(shù)據(jù)表之間就是一對一的關(guān)系。
?一對多(1:n):二維表A和二維表B中,如果表A中的一條記錄只與表B中的一條記錄相對應(yīng),但是表B中的每一條記錄卻能對應(yīng)表A中的多條記錄,那么這兩個數(shù)據(jù)表之間就是一對多的關(guān)系。
?多對多(n:m):二維表A和二維表B中,如果表A中的一條記錄與表B中的多條記錄相對應(yīng),同時表B中的每一條記錄也與表A中的多條記錄相對應(yīng),那么這兩個數(shù)據(jù)表之間就是多對多的關(guān)系。
二維表是由行和列兩部分組成的。其中,二維表中的行用來描述實體中的具體數(shù)據(jù),二維表中的列用來表示實體中的屬性。在二維表還涉及與其有關(guān)的一些概念,這些與二維表有關(guān)的概念將在4.1節(jié)中介紹。
- 數(shù)據(jù)浪潮
- 輕松學(xué)大數(shù)據(jù)挖掘:算法、場景與數(shù)據(jù)產(chǎn)品
- SQL查詢:從入門到實踐(第4版)
- 云計算與大數(shù)據(jù)應(yīng)用
- 云計算服務(wù)保障體系
- Hadoop 3.x大數(shù)據(jù)開發(fā)實戰(zhàn)
- Spark大數(shù)據(jù)編程實用教程
- Oracle RAC日記
- 云數(shù)據(jù)中心網(wǎng)絡(luò)與SDN:技術(shù)架構(gòu)與實現(xiàn)
- Mastering LOB Development for Silverlight 5:A Case Study in Action
- Filecoin原理與實現(xiàn)
- Node.js High Performance
- 改進的群智能算法及其應(yīng)用
- Access 2010數(shù)據(jù)庫應(yīng)用技術(shù)教程(第二版)
- 數(shù)據(jù)產(chǎn)品經(jīng)理寶典:大數(shù)據(jù)時代如何創(chuàng)造卓越產(chǎn)品