Open8

データベース関連のアウトプット

いなかいなか

正規化

第1正規形

1つのフィールドには1つの値しか含まないという原則が守られた形
複数の値を許すと、主キーが各列の値を一意に定めることができなくなる

テーブルを分割することによって第1正規形を満たせる

関数従属性

xの値を1つ決めればyの値が1つに決まる関係性のこと=yはxに従属する

正規化とは、テーブルの全ての列が関係従属性を満たすように整理していくこと

第2正規形

部分関数従属(複数列からなる主キーの一部の列に対して従属する列がある状態)が解消されていて、完全関数従属(主キーを構成する全ての列に対して従属性がある状態)のみのテーブルになっていること

第3正規形

推移的関数従属(2段階の関数従属がある状態)が解消されている形

いなかいなか

SQL

データ操作

DMLによって行われる。
テーブルのデータの登録・修正・削除・検索、複数の表の結合など

データ定義

DDLによって行われる。
テーブルのデータ構造の定義や削除など

CREATE,DROP,ALTER

データ制御

DCLによって行われる。
データベースのアクセス制御など

いなかいなか

DBまわりの用語

ノード

一般的には点と線で構成図を書いたときの点の部分のこととなっている。
データベースでは、データの一部とかエンティティ全体みたいなイメージ。

シャード

データベースにおける分割手法の1つ。
データを複数のノードのディスクに分割配置することで、データベースのリクエストを分散し全体のスループットを上げる目的で利用する。
お互いのノードではシェアードナッシング(システムを構成するコンピュータ間で何も共有しない方式)の独立したデータを持っている。

水平方向(行を基準にテーブル分割)と垂直方向(カラムを基準にテーブル分割)の2つの方法で実装することができる。

クラスター

1つ以上のDBインスタンスとDBインスタンスのデータを管理する1つのクラスターボリュームで構成される。

クラスターボリューム

複数のアベイラビリティゾーンにまたがる仮想データベースストレージボリューム。

https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/Aurora.Overview.html

いなかいなか

NewSQL

従来のSQLデータベースシステムのスケーラビリティやパフォーマンスの課題を解決するために設立された新しいデータベースシステム。
従来のRDBMSの機能を保持しつつ、大規模なデータセットを効率的に処理できるように設計されている。

TiDB

MySQL互換のNewSQLデータベース。

リソース

データベースのパフォーマンスや運用に関わる計算資源やインフラストラクチャ。

リソースグループ

データベースの管理やパフォーマンスの最適化に関連している。
クラスタ内のコンピューティングリソースやストレージリソースを異なるワークロードに応じて効率的に割り当て、管理するための仕組み。

ワークロード

システムが処理する特定の作業やタスクの集合を指し、リアルタイムトランザクションから分析処理、バッチ作業、機械学習など、幅広い種類のものが含まれる。

RU(リクエストユニット)

TiDB のシステム リソースの統合抽象化ユニットであり、現在 CPU、IOPS、および IO 帯域幅のメトリックが含まれている。
データベースへの単一のリクエストによって消費されるリソースの量を示すために使用される。

いなかいなか

N+1 問題

あるリソースを取得する際に、関連するリソースを個別に取得するため、データベースにN+1回のクエリが実行されてしまう問題。

悪影響

  • パフォーマンスの低下
    • クエリが増えることで、データベースへのアクセス回数が増え、アプリケーションの応答速度が低下する
  • スケーラビリティの問題
    • データが増えると、N+1クエリがデータベースサーバーに過度な負荷をかけ、スケーラビリティが制限される
  • ネットワークの負荷
    • 不要なデータベースアクセスにより、ネットワークの負荷が増加する
いなかいなか

MySQL

user

MySQLデータベースにアクセスできるアカウントのこと。
各userアカウントには、データベース内の特定の操作をを行うための権限が設定される。

いなかいなか

Secret Manager

データベースの認証情報や、パスワードなどの任意のシークレット情報をAPIコールで取得できるためのサービス。
各サーバーからこのAPIを叩くことでシークレット情報を取得でき、認証やサーバセットアップに利用できる。

メリット

アプリケーションにシークレット情報を保存する必要がなくなること。
アプリケーションに保存していると、認証情報更新のリスクやコストが高いのと、情報漏洩のリスクがあった。

自動ローテーション

データベースの認証情報を自動的に更新する設定が可能。
認証情報が変更されると、裏でLambdaが起動してデータベースの情報も一緒に更新してくれる。

いなかいなか

AWS DMS

フルロード
ソースDBからターゲットDBへ、全データを一度にコピーする方式

CDC
ソースDBの変更ログをキャッチし、ターゲットDBに反映する方式