資料庫簡短總覽
表格、列、欄和索引鍵如何協同運作以建立資料庫。
如果您要開始使用 Metabase,了解幾個關鍵的資料庫術語會很有幫助。
表格
基本上,*資料庫*是由一個或多個*表格*組成。表格包含一個或多個*欄*和一個或多個*列*。列由*儲存格*組成,每個儲存格都有一個*值*,該值對應於其所屬的欄。
這是一個表格範例
名稱 | 年齡 |
---|---|
John | 25 |
Jenny | 31 |
在這裡,欄是 Name
和 Age
。第一列包含兩個儲存格,一個是 John
,另一個是 25
,分別對應於 Name 和 Age 欄。
欄
欄中的所有儲存格都包含相同類型的資訊。例如,在上面的範例表格中,Name
欄的每個儲存格都包含名稱,而 Age
欄則列出年齡。
每個欄位都有一個類型,用於描述欄位中儲存的資料類型。
欄 vs 欄位
關於欄和欄位的注意事項,因為這些術語可以互換使用
-
**欄位**是用於儲存資料的元素(例如,
PRODUCT_ID
欄位儲存產品的識別碼)。 -
**欄**是值的列表,通常是來自單一欄位的值的列表(例如,
PRODUCT_ID
欄儲存來自PRODUCT_ID
欄位的值)。但是,欄也可能是來自多個欄位的值的列表。例如,一個欄可能包含來自運算式的值,該運算式計算來自兩個不同欄位的值的差值:例如,TOTAL_WITH_DISCOUNT
欄可以從DISCOUNT
欄位取值,並從SUBTOTAL
欄位的值中減去它們,並列出差值。
在 Metabase(和其他地方),您經常會看到這兩個術語互換使用,因為在大多數情況下,欄指的是來自單一欄位的資料。
索引鍵
*主索引鍵*(也稱為實體索引鍵)是表格中唯一識別每一列的欄位。例如,想像一個汽車預訂應用程式,您可以在其中提前預訂汽車。預訂的 ID 可以是預訂號碼,而且沒有兩個預訂會共用相同的預訂號碼,從而允許每個預訂透過其預訂號碼來唯一識別。
範例
預訂表格
預訂 ID | 名稱 | 年齡 |
---|---|---|
11 | John | 25 |
12 | Jenny | 31 |
在上面的表格中,Reservation ID
欄位是 ID(主索引鍵)。
表格之間的關係
表格可以包含對其他表格的參考,這會在它們之間建立關係。
讓我們擴展我們假設的汽車預訂應用程式的資料庫。我們可以有兩個表格:一個用於預訂(我們稱之為 **Reservations**),另一個用於客戶(我們將稱之為 **Customers**)。
為了將預訂資料連接到相應的客戶資料,我們將使用*外來索引鍵*。外來索引鍵是表格中的一種特殊欄位,它參考另一個表格中具有相符值的欄。幾乎總是,外來索引鍵指向的欄位是另一個表格中的 *ID* 或 *主索引鍵*。
在這種情況下,我們將 **Reservations** 表格中的每個記錄連接到進行該預訂的相應客戶的記錄。為此,我們將在 **Reservations** 表格中建立一個 Customer
欄,其值與 **Customers** 表格中 ID
欄的值相符。
預訂
顧客 | 日期 | 汽車 |
---|---|---|
11 | 12/20/2015 | 豐田 Camry |
12 | 1/2/2016 | Range Rover |
顧客
ID | 名稱 | 年齡 |
---|---|---|
11 | John | 25 |
12 | Jenny | 31 |
雖然主索引鍵和外來索引鍵之間的內建關係使資料庫使用者更容易操作,但即使沒有索引鍵關係,大多數資料庫也允許您在兩個表格之間建立聯結。請查看我們的指南,了解不同的 SQL 聯結類型 以及 如何在 Metabase 中使用聯結。
現在,如果我們想使用 Metabase 分析我們假設的應用程式的資料庫,我們可以提出一個問題,例如:*2015 年 12 月進行預訂的所有顧客的平均年齡是多少?*
為此,我們將開啟預訂表格,新增篩選器以僅查看 2015 年 12 月 1 日至 12 月 31 日之間的預訂,然後選取「平均值...」。若要特別選取年齡的平均值,我們將使用外來索引鍵,並從我們的預訂表格參考的 *Customers* 表格中選取年齡。
下一步:資料類型
既然我們對資料庫有了基本的了解,讓我們進一步了解 資料類型。
下一步:資料類型和中繼資料
為什麼資料類型很重要,以及中繼資料如何幫助您更好地理解您的資料。