こんにちは、しょうぞうです。
全然ブログ更新してないですね・・・。最終更新日を見たら4月14日でした・・・
4月から新米エンジニアになり、3ヶ月の研修を行っていたのですが、研修期間中はずーーっと勉強し続けていたのでブログを書いている暇がありませんでした。
現在は、社内で受託案件をチームで行っているのですが、その中でDB設計の重要性と難しさを痛感したので基本的なことからですが、アウトプットがてらブログを書いていきたいと思います。
データベース設計は開発の命であり、そこで間違いがあるとシステム全体に影響が出てしまいます。
さらに開発工程で最初の方に行われるので、データベース設計が失敗すると工程を遡って修正しなければいけないので修正コストがかなりかかってしまいます。
データベース設計が工程の中で一番重要なんじゃないかと考えている今日この頃です。
今回は、データベース設計でよく出てくる単語を細かく書いていきます。
DB設計で使われる単語
DB設計の話し合いで使われる単語をおさらいしていきます。
単語の意味を本当に重要で、まず単語を理解していかないと話についていけないということを現在進行形で痛感しています。
ただでさえDB設計は抽象的な話し合いになりがちなので、単語の意味で詰まっていたら話がどんどん先に進んでいって置いていかれてしまいます。
なので、今一度データベース用語の意味をしっかりアウトプットしていきます。
よく使われる単語
テーブル
テーブルとは、データベースの種類ごとの単位をテーブルといいます。
データベースには複数の表が入っており、個々の表をテーブルといいます。
例えば、ユーザーテーブルというものがあったとしたら、ユーザーを表す情報が入っているテーブルということなります。
最近、会話の中でHTMLのtableとごっちゃになることがありました。
カラム
カラムとは、英語でColumnと呼びます。
列を表す意味で、テーブルの表における縦の列を表すものです。
縦列には、属性を表すものを追加していきます。
属性とは、そのものに備わっている固有の性質・特徴を指します。
レコード
レコードは英語でrecordと呼びます。
行を表す意味で、テーブル上における横の行を表すものです。
カラムとレコードは頻繁に会話の中で出てくるので、優先的に覚えておくと理解が早くなります。
フィールド
フィールドは、カラムとレコードつまりは、縦と横の線でクロスした一マスのことを表します。
Excelでいう”セル”に相当します。
関連用語
主キー
主キーは、英語でPrimary Keyと呼ばれるものです。
データベースのデータ(行・レコード)を一意にする役割を持っています。
一意とは、意味や値が一つに確定していることを表します。
複合主キー
主キーの分類の一つで、複数の項目を使って一つの主キーとしての役割をもつものを複合キーといいます。
主キーだけでは、一意に特定できない内容を複合主キーを使ってもう一つのカラムに主キーを設定することでデータを特定することができます。
サロゲートキー
サロゲートキーは、主キーの分類の一つで主キー専用の項目がないので、機械的に番号を振った主キーのことです。
サロゲートキーを設定することで、人工的に主キーを設定することができるので、簡単にレコードに対して一意性を持たせることができます。
逆に、すでにある項目で主キーを設定する場合は、ナチュラルキーといいます。
ナチュラルキーとサロゲートキーの付け方はメリット・デメリットがあるらしいのですが、詳しい話はわからないので勉強してから書いていきたいと思います。
外部キー
外部キーとは、関連したテーブル間を結ぶために設定するもので、データの整合性をデータベースに保証するものです。
外部キーを設定して参照する側は子テーブル、設定元は親テーブルと言います。
親テーブルに存在しない情報を子テーブルに登録させたり、削除させたりしないようにするために設定します。
外部キーを設定しまくると依存関係が増えて、後々めんどくさくなるらしいですが今のところわかってないのでこれも勉強していきます。
まとめ
チーム開発を現在進行形で行っているのですが、DB設計は抽象的な話し合いになるので、チームのメンバーがどのようなイメージをしているのかを共有するのがとても大変であるということを感じています。
なので、基本的な用語を理解していないとどんどん話が先に進んで置いてかれてしまいます。
今回は、図もなくただ自分のアウトプットのために記事を書きましたが、今後時間に余裕があれば図でもっと分かりやすく説明していきたいと思います。
最近は、コロナの影響でジムに行けていないので、プログラミングに関する記事を多めに書いていきたいです。
ブログを継続して書けますように・・・
コメント