Swift 元組

本教程屬於 Swift 系列。 元組用於將多個值分組成一個集合。例如,我們可以聲明一個包含 String 和 Int 值的變量 dog: let dog: (String, Int) 然後我們可以用名字和年齡來初始化它們: let dog: (String, Int) = ("Roger", 8) 但是與任何其他變量一樣,類型可以在初始化期間推斷出來: let dog = ("Roger", 8) 您可以使用命名元素: let dog = (name: "Roger", age: 8) dog.name //"Roger" dog.age //8 一旦定義了一個元組,您可以以以下方式將其解構到單個變量中: let dog = ("Roger", 8) let (name, age) = dog 如果您只需要獲取其中一個值,可以使用特殊的底線關鍵字忽略其他值: let dog = ("Roger", 8) let (name, _) = dog 元組是一個非常有用的工具,可以滿足各種需求。 最明顯的一個需求是以簡潔的方式分組相似的數據。 另一個需求是從函數返回多個項目。函數只能返回單個項目,因此元組是一種方便的結構。 另一個元組所允許的有用功能是交換元素: var a = 1 var b = 2 (a, b) = (b, a) // a == 2 // b == 1

關聯模型

關聯模型是在資料模型帖子中列出的邏輯資料模型中最受歡迎的,並且它是基於SQL資料庫的基礎。 關聯模型基於兩個簡單的概念: 表格 關聯 關聯模型可以追溯到1969年,當時英國計算機科學家Edgar F. Codd提出了這一概念。作為計算機程序員,我們習慣於關注新奇的事物,但一個能夠在計算機領域中持續50年的技術絕對值得學習。 模型基於表格的事實使其非常直觀易用,因為我們習慣於使用表格來組織事物。比如,想想Excel電子表格。 使用像PostgreSQL、Oracle、MySQL、SQLite和MS SQL Server等基於SQL的資料庫,可以使用關聯模型對使用ER模型分析的數據進行建模,並且幾乎可以立即將其轉換為SQL資料庫格式,這可以被視為關聯模型在現實世界中的實現,但我們將在其他帖子中討論這一點。 在這篇帖子中,我想探討的是關聯模型基於的理論和概念,不是用數學术语表達,而是在實踐中的含義。 如果你是一個學生,你可能會發現我在這裡寫的內容與你的教科書上的內容不一樣,但也許你可以通過閱讀這種更容易理解的方式來掌握在你的學習材料中表達的更正式的概念。 表格 在關聯模型中,表格是一組項目的集合。 它按行和列組織: 名稱 年齡 Flavio 36 Roger 7 Syd 6 元組 表中的每個項目稱為元組。您也可以使用記錄或行這些術語。 元組表示表的一行,如下所示: Flavio 36 屬性 屬性是元組中的一個單一項目。 在這個例子中: Flavio 36 “Flavio”是一個屬性。 36是另一個屬性。 元組是唯一的 表中的每個元組都是唯一的。 在關聯模型中,我們不能有重複的數據,這意味著表中的每一行在至少一個屬性上必須不同。 關聯鍵 確保元組唯一性的是關聯鍵。 關鍵是必須唯一識別元組的一個屬性。 如果關聯鍵是一組屬性,它必須是非冗餘的。這意味著如果我們刪除鍵的其中一個屬性,該鍵將無法確保其唯一性。 如果可以確定多於一個鍵,其中一個鍵將被識別為主鍵。 關鍵完整性約束 表中的任何元組的關鍵屬性不能為null,並且不能重複。 根據一個鍵,我們必須能夠指向一個特定的元組/行,而不會產生歧義。 域限制條件 每個屬性都有關於它可以包含的值的規則。 例如,如果我們決定存儲數字,就不能存儲字符串。我們還可能決定不存儲長於10個字符的字符串作為名稱。 我們也可以稱之為類型。 參考完整性約束 如果一個表包含對一個次要表或同一表中的其他元組的引用,那麼我們必須遵守規則,以防止引用的破壞。 特別是,我們必須避免以下情況破壞引用: 在其他表中,避免刪除或編輯我們指向的記錄的主鍵。 避免插入指向其他表中不存在的鍵的新記錄。 避免改變我們指向的記錄的鍵,而不確保新鍵存在於其他表中。 數據庫管理系統(DBMS)將實施措施來幫助我們實現參考完整性。