人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

NOSQL:スキーマレスの意味

NOSQL系のDBでよくあるスキーマレスという言葉ですが、これは、
・スキーマがなくてもOK という意味合いなのか
・スキーマがあってはならない という意味合いなのかどちらでしょうか。
もちろん、スキーマがあってはならないなんて言うことは無いと思うのですが、
スキーマを定義してNOSQLを利用するという事が、NOSQLの本来的意義に反しているのかなぁと疑問に思っています。

現在自前のCMSの構築にMongoDBを使用しようと考えています。
例えばartileオブジェクトは配下にtitleとauthor,contentを保有しなければならず
contentに含まれるcodeオブジェクトはlineオブジェクトの集合からなる…
などのルール(スキーマ)を決めてPHPからパースする予定です。

もちろんスキーマレスという構造上,こういったルールを強制することはできないと言うことは理解しております。
ただ、こうやって事前にスキーマを決めてからスキーマレスのDBを使うという方法が
正しいのかどうかについて疑問に思い質問させて頂きました。

詳しい方いらっしゃいましたらお願い致します。


●質問者: mikakane
●カテゴリ:インターネット ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● a-kuma3
ベストアンサー

スキーマレスと言っても、どんなデータがどうやって入ってるかを知らないと、
取り出しも、更新もできないわけで。
その約束事を、NoSQL Database ではシステムとして持っていない、というだけの話です。
質問にあるように embed を使うなら、なおさらです。

MongoDB のようにフィールド名があるようなタイプは、スキーマレスというよりは、
スキーマフリーと呼ぶ方がしっくりくると思います

Key-Value データベースだって、キーの意味を決めないとデータのやり取りはできないし、
名前と値という二つだけのフィールドという固定のスキーマになっている、とも言えますし。

もちろんスキーマレスという構造上,こういったルールを強制することはできないと言うことは理解しております。
ただ、こうやって事前にスキーマを決めてからスキーマレスのDBを使うという方法が
正しいのかどうかについて疑問に思い質問させて頂きました。

正しいかどうかというか、普通に作ると、そのような手順になると思います。

MongoDB だと、将来的な追加/変更が楽チンなので、ルールを緩くしておいたり、
設計の煮詰め度合いを軽くしておいて、必要なら後で変えよう、というやり方ができるね、
ってところが RDBMS と違うだけです。

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ