iT邦幫忙

2022 iThome 鐵人賽

DAY 3
1

前言

SQL(Structured Query Language 結構化查詢語言)是一種專門用來與關聯式資料庫(Relational database)溝通的程式語言。在學習 SQL 前,我們先來認識一下關連聯式資料庫吧。

關聯式資料庫

關聯式資料庫(Relational Database Menagement System, RDBMS),在 wiki 中是這樣被介紹的:

A relational database is a (most commonly digital) database based on the relational model of data, as proposed by E. F. Codd in 1970.

A system used to maintain relational databases is a relational database management system (RDBMS).

Many relational database systems are equipped with the option of using the SQL (Structured Query Language) for querying and maintaining the database.

關聯式資料庫(Relational Database),是基於關聯式資料模型(relational model of data)發展而成 [註1]。其藉由關聯式資料庫管理系統(RBDSM)維護資料,並且可以使用 SQL 去查詢以及存取資料。

關聯式資料庫範例

作為小白,我們可以使用平常用來處理數據與分析的 excel 來聯想資料庫的樣子。

雖然 excel 並不是資料庫,但我們可以藉由 excel 來認識資料庫的結構。

資料庫是由許一張或多張資料表(tabel)所組成。

每一張資料表中,每一行(row)為一筆紀錄(record);每一筆紀錄是由多個列(column)的欄位組成。

我們先來看附圖,圖中的試算表有 racehorse(賽馬)& breeder(馬主)兩張資料表。

先來看 racehorse 的內容:


(附圖:google 試算表 )

在資料表中,每一行為唯一資料,每一列為不同屬性。

比如附圖,在 racehorse 這張資料表中,每一行(row)都是每一隻賽馬的紀錄(record),每一筆記錄都由列(column)的欄位組成,這些欄位如 name、sex、 birt_daate 即為每隻賽馬的不同屬性。

我們可以想像,資料庫就是以資料表、行、列、欄位所構成。

在設計這些資料表時,我們必須定義資料表的架構——要有什麼欄位 & 資料型態。比如:賽馬的資料表,要有要有名字(name)的欄位,資料型態為字串(string)。

我們也需要預先定義資料表的關聯。比如我們還有一張資料表 breeder(馬主)。一位馬主可能會有多隻賽馬,這裡就會需要有一對多的資料表關聯。

通過資料表之間的關聯,我們就可以使用 SQL 快速查詢資料。

關聯式資料庫特性

關聯式資料庫是一種儲存並提供存取相互關係資料點的資料庫。

在關聯式資料庫中,資料表中的每一列資料行都是一條記錄。資料表的資料列中存放著資料的屬性,每條記錄通常有一個屬性值,這樣就很容易建立資料點之間的關係。

經由上面的例子,我們可以小結資料庫的特性:

  1. 資料存放在一個或多個資料表當中。資料都是透過資料表中行列的二元關係呈現(即資料表中的行與列)
  2. 資料表需預先設定架構
  3. 資料表之間的關係也需要預先定義好,使資料之間有明確的關聯
  4. 可以透過 SQL 語言進行資料操作

本節參考 & 使用資料:

  1. NoSQL是什麼?認識關聯式資料庫RDBMS和非關聯式資料庫NoSQL(alphacamp)
  2. 關聯式資料庫是什麼?(ORACLE)

在下一章節中,就要開始學習 SQL 了!

參考資料:

[註1] 1970年代, Edgar F. Codd 提出了關聯式資料(Relational Database)的概念,以及將資料組成表格的應用原則,是日後關聯式資料庫發展的基礎。


上一篇
Day 2 認識資料庫
下一篇
Day 4 安裝 PostgreSQL( for Mac )
系列文
新手小白的每天一點SQL31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言