用語集に戻る
データベース中級

NoSQL

のーえすきゅーえる

一言で言うと

従来のSQL型データベースとは異なる、柔軟な構造でデータを管理するデータベースの総称。

もう少し詳しく

一言で言うと

従来のSQL型データベースとは異なる、柔軟な構造でデータを管理するデータベースの総称。

もう少し詳しく

NoSQLは「Not Only SQL」の略で、従来の表形式(リレーショナル)以外のデータベースのことです。ExcelのようなきっちりしたSQL型データベースに対して、NoSQLは「付箋を自由に貼れるホワイトボード」のようなものです。

SQL型では「名前、メール、年齢」とカラムが決まっていますが、NoSQLではデータごとに項目が違ってもOKです。Aさんには「趣味」の項目があるけど、Bさんにはない、ということが許されます。

代表的なNoSQLには、MongoDB(ドキュメント型)、Redis(キーバリュー型)、Firebase(リアルタイムDB)などがあります。大量のデータを高速に処理したい場合や、データの構造が頻繁に変わる場合に適しています。

実務でどう使うか

  • マーケティング: FirebaseやDynamoDBなど、モバイルアプリのバックエンドでNoSQLが使われていることが多いです。データの柔軟性を知っておくと、要件定義時に「この項目は後から追加できますか?」という質問に答えやすくなります

  • デザイン: NoSQLはデータ構造が柔軟なので、「ユーザーごとにカスタムフィールドを持てる」ようなUI設計が可能になります

  • PM: 技術選定で「RDBかNoSQLか」は頻出の議論です。データの特性に応じて最適な選択ができるよう、両者の違いを理解しておきましょう
  • コードで見てみよう

    // MongoDB(NoSQL)でのデータ保存例
    // → カラム(項目)を事前に定義する必要がない

    // ユーザーAのデータ(趣味あり)
    db.users.insertOne({
    name: "田中太郎",
    email: "tanaka@example.com",
    hobbies: ["読書", "映画"] // この項目はAさんだけ
    });

    // ユーザーBのデータ(趣味なし、SNSあり)
    db.users.insertOne({
    name: "佐藤花子",
    email: "sato@example.com",
    twitter: "@sato_hanako" // この項目はBさんだけ
    });
    // → SQLなら事前にカラムを定義しないとエラーになる

    関連する用語

    この用語を学べるコース

    この用語を実際に使ってみよう

    チョットデキルなら、5分のレッスンで実際にコードを書いて学べます。

    コース一覧を見る