フィールド、を列と定義してる人と、セルと定義している人がいる...
どっちが正しい...
ということがあり、改めて用語の定義を見直してみた
PostgreSQL テーブル用語まとめ
出典:
俯瞰図:
Database【データベース】
ローカルなSQLオブジェクトの名前付き集合。
Excel で言う「ファイル」に該当するかな
テーブルから属性まで、全ての要素はSQLオブジェクトと言うみたい
基本的に1つのデータベースに対してのアクセスになるので、一番大きい単位だと思うと良さそう
標準SQL では Catalog【カタログ】
とも呼ばれるみたい
Schema【スキーマ】
スキーマは、同じデータベースに存在するSQLオブジェクトのための名前空間です。
各SQLオブジェクトは正確に一つのスキーマに存在する必要があります。より一般的には、スキーマという用語は、与えられたデータベースあるいはその部分集合中のすべてのデータの記述(テーブル定義、制約、コメントなど)の意味で用いられます。
Excel で言う「ブック」に該当するかな
1つのデータベースの中に定義する、名前空間のようなもの
スキーマを使うことで、複数のテーブルグループが同居できる
省略すると public
が使われる
つまり Database は物理的な単位、Schema は論理的な単位
mysql
の場合、Schema = Database
なので、意識する必要が無い
Table【テーブル】
共通のデータ構造を持つタプルの集合(同じ数の属性が同じ順序で、位置ごとに同じ名前と型を持ちます)。
テーブルは、PostgreSQLにおけるリレーションの最も一般的な形式です。
Excel で言う「シート」に該当する
よく見かける、縦横があるテーブルと同義
タプルは後述
Column【列】
テーブルまたはビューに含まれる属性。
Excel で言う「縦の列」に該当する
列要素
SQL では列ごとに属性を定義していく
Tuple【タプル】/ Row【行】 / Record
属性を一定の順序で集めたもの。
この順序はタプルが含まれるテーブル(または他のリレーション)によって定義されます。
その場合タプルは、しばしば行と呼ばれます。
また結果セットの構造によって定義される場合もあります。
その場合、タプルはレコードと呼ばれることがあります。
Excel で言う「横の行」に該当する
難しく書いてあるが、要するに行要素
タプルは、順序がある決まった集合の要素、って考え方
Attribute【属性】
タプル内にある特定の名前とデータ型を持つ要素。
Excel で言う「セル」に該当する
でもセルも属性、列も属性だと、属性がこんがらがる気がする
おわりに
SQLはいろんな派生があるせいで、用語が入り乱れている気がする
属性ってわかりにくいな?
一応 mysql のも調べた
結局フィールドってなんだ...?