什麼是關聯式資料庫

以由資料列與欄位構成的表格(關聯)表示資料,並以共同的值把表格彼此關聯起來的資料庫。也稱為RDB。以SQL進行查詢與修改,並以主鍵、外鍵等限制維持資料的一致性。

日文名稱: 関係データベース

「關聯式資料庫」出現在1領域的7道練習題中(資料庫基礎等)。

這個名詞所屬的領域: 資料庫基礎

表格、資料列、欄位與關聯模型

關聯式資料庫是以E. F. Codd在1970年提出的關聯模型為基礎的資料庫。資料以表格(關聯)的形式表示,表格的一筆資料列稱為值組(Tuple),一個欄位稱為屬性,屬性可取的值的集合稱為定義域。表格之間不是以指標相連,而是以共同的值相連,例如訂單表格有客戶編號欄位,以其值指向客戶表格的資料列。因此,要以什麼條件組合哪些表格,可以在每次查詢時自由決定。

以SQL與限制管理資料

關聯式資料庫以SQL這種語言進行表格的定義(DDL)、資料的搜尋與修改(DML)以及權限的控制(DCL)。在SQL中只要寫出「想要什麼結果」,要以什麼順序讀取表格、使用哪個索引,則由DBMS的最佳化器決定。資料的正確性由限制與交易的ACID特性維持,限制包括唯一識別資料列的主鍵、讓資料列正確參照其他表格資料列的外鍵、禁止NULL與重複的NOT NULL與UNIQUE,以及規定值範圍的CHECK等。

與其他資料庫的分工

關聯式資料庫廣泛用於庫存、會計等重視資料一致性、並以各種條件組合進行搜尋的業務。另一方面,在存取量非常大的網路服務等場合,有時也會使用容易分散到多台伺服器的鍵值型、文件型等NoSQL資料庫。一般並非只用其中一種,而是依用途組合使用。

練習關聯式資料庫的題目

在關聯式資料庫的用語中,相當於表格(關聯)中一筆資料列的是下列何者?

  1. A值組(Tuple)
  2. B屬性
  3. C定義域
查看答案與解析

正確答案:A. 值組(Tuple)

關聯式資料庫以由資料列與欄位構成的表格(關聯)來表示資料,並透過值把表格彼此關聯起來。在關聯模型的用語中,表格的一筆資料列稱為值組(Tuple),一個欄位稱為屬性,某個屬性可取的值的集合稱為定義域。例如在員工表格中,一位員工的資料列是值組,「姓名」「部門」等欄位是屬性,「年齡」欄位可取的0以上整數的範圍則是定義域。關聯模型把表格視為資料列的集合,因此資料列的順序沒有意義,也不允許出現兩筆完全相同的資料列(實際的SQL表格若未設定主鍵,仍可能存入相同的資料列)。

在關聯式資料庫的表格中,被指定為主鍵的欄位(或欄位組合)必須滿足的條件是下列何者?

  1. A值必須是數值
  2. B必須是表格的第一個欄位
  3. C值在表格中不重複,且不含NULL
查看答案與解析

正確答案:C. 值在表格中不重複,且不含NULL

主鍵是用來唯一識別表格中一筆資料列的欄位或欄位組合。因此,主鍵的值不得與其他資料列重複(唯一性),也不允許代表值未定的NULL(非NULL)。在SQL的CREATE TABLE中指定PRIMARY KEY後,DBMS(資料庫管理系統)會強制遵守這兩項限制,試圖存入重複值或NULL的操作都會產生錯誤。主鍵的值可以是員工編號之類的數值,也可以是字串,欄位的位置也沒有規定。能唯一識別資料列的最小欄位組合稱為候選鍵,從候選鍵中選出的一個就是主鍵。

常見問題

關聯式資料庫的「關聯」指的是什麼?

指的是表格本身。這個名稱來自數學中把由數個集合的元素組合而成的集合稱為關聯,表格的資料列就相當於元素的組合(值組)。並不是指表格之間的連結。

關聯式資料庫與NoSQL如何分工?

重視資料一致性、經常進行表格連結等複雜搜尋的業務,適合使用關聯式資料庫。以鍵進行的簡單讀寫非常多、想分散到多台伺服器以擴大規模時,NoSQL可能較為適合。

解析中的「關聯式資料庫」

出現「關聯式資料庫」的題目(7題)

  1. 在關聯式資料庫的用語中,相當於表格(關聯)中一筆資料列的是下列何者?
  2. 在關聯式資料庫的表格中,被指定為主鍵的欄位(或欄位組合)必須滿足的條件是下列何者?
  3. 關於關聯式資料庫的檢視表,下列敘述何者正確?
  4. 將關聯式資料庫的表格正規化,主要目的是下列何者?
  5. 在E-R圖中,學生與課程之間有「一位學生修多門課,一門課有多位學生修」的多對多關係。以關聯式資料庫的表格實現此關係的適當方法是下列何者?
  6. 在有100萬筆資料列的會員表格之會員編號欄位上建立了B+樹索引。一般可預期的效果與代價組合,下列何者正確?
  7. 在稱為NoSQL的資料庫中,關於鍵值(Key-value)型的特徵,下列何者一般而言正確?

半導體、電子電路與資訊計算工具

相關名詞

主鍵 SQL 索引 檢視表 正規化 E-R圖 外鍵 NoSQL 交易 兩階段鎖定(2PL)

前往名詞解釋列表