リレーショナルデータベースとは [閉まっている]


9

私は主にシステム管理者であり、データベースのインストール、アカウントの設定、特権の付与など以外はデータベースを直接操作しません。ボスが私に近づいて「リレーショナルデータベースとは何ですか?」私はおそらく満足のいく答えを出すことができませんでした...おそらく、特別なプログラミング言語(SQLなど)でクエリできるカテゴリ別にデータが保存および整理されていることについて、つぶやきます。

では、リレーショナルデータベースが何であるかについて、誰かが良い「ボスの回答」を与えることができるでしょうか。また、ファイルサーバーにデータを格納するだけの場合とどう違うのでしょうか。巧妙だがアクセスしやすい類推と、表、列、レコード、フィールドの説明のボーナスポイント。「Boss Answer」は、非技術者向けの簡単な1つ(多分2つ)のパラグラフの説明として定義します。ほとんどの場合は上司ですが、まれに、実際に1日何をしているのかと尋ねられることがあります。


2
serverfaultがこの質問に適しているかどうかはわかりませんが、それは役に立ちます。おそらくDBA.SEまたはProgrammers.SEでしょう。
2011年

1
上司がそのような質問をするのはなぜですか。さらに重要なのは、上司がシステム管理と何をするのでしょうか。
ジョンガーデニアーズ

1
@John Gardeniers、多くの「システム管理者」が「データベース管理」の帽子をかぶっているので、ここに属している可能性があります。つまり、RDBMSの仕組みをよく理解しています。上司が質問をする理由については、誰もが知っていますが、概念を明確に伝える方法を知っていることはIMOにとって良いことです。
Zoredache

1
@Zoredache、私の仕事では多くの帽子をかぶっています。彼らがすべてSFの話題になっているわけではありません。
ジョンガーデニア

以下の回答は非常に適切ですが、非リレーショナルデータベース(btrieveなど)を使用しても、適切なアプリケーションロジックを通じて正規化されたデータ間の関係を維持できることに注意してください。
Mark Henderson

回答:


16

リレーショナルデータベースだけで保存されていないデータを:それは格納関係データ間を、そして簡単にそれを作る(まあ、簡単に)それらの関係を使用します。リレーショナルデータベースの用語の初期の頃は、テーブルは「リレーション」と呼ばれていました。これは、リレーションと他のリレーションとの関係とともに、データの関連ビット(フィールド、現在は列)が格納されていたためです。

正規化とは、関係を複雑にすることなく行うことです。「すべてを可能な限り単純にするが、それ以上単純にはしない」。(Alan Perlis)時々「しかし単純ではない」とは、完全に正規化されたものを格納しないことを意味します。「単純」は最終的には複雑になるためです。(郵便番号から状態を取得できますが、なぜわざわざですか?)


10

リレーショナルデータベースはデータを構造化する方法であるため、単一のファクトが単一の場所に格納されます。したがって、JohnとJane Doeの両方が同じ会社で働いている場合、会社に固有の詳細情報を1つの場所(テーブル)に保存するだけです。ジョンとジェーンに固有のデータを別の場所に格納し、ジョンとジェーンの両方と会社との関係を3番目の場所に格納します。理想的な世界では、これは、会社のFAX番号が変更された場合にのみ、単一のフィールド/行を変更する必要があることを意味します。

RDBMSでホストされているすべてのデータベースが適切に正規化されているわけではないことを理解してください。妥協はパフォーマンスと他の理由のために作られています。

データベースの正規化に関する記事を参照してください。 http://en.wikipedia.org/wiki/Database_normalization


4

リレーションデータベースシステムを区別するには、2つの主要な概念があります。1つ目は、アイテム間の関係が格納されることです。これは、スプレッドシートの類推で説明されたデータのテーブルモデルです。RDBMSは、スプレッドシートよりも複雑になります。これは、(使用しているアナロジーのどちら側に応じて)テーブルまたはワークシート間で多くの参照を行うことがより簡単で一般的な方法であるためです。

2つ目は、RDBMSがトランザクションの概念、つまりACIDプロパティを実装することです。

  • 原子性、
  • 一貫性、
  • 分離、および
  • 耐久性

リレーショナルモデルでは、多くの複雑な関係を含めたり、照会したり、並べ替えたり、グループ化したりすることができます。トランザクションモデルは、トランザクションが完全にまたはまったく起こらないようにし、関係モデルの一貫性と正確性を維持します。まあ、少なくとも正しいプログラミングがそれを維持することを可能にすることです。


3

リレーショナルデータベースは、多くのワークシートを備えたExcelワークブックのようなものであり、インデックス作成やキャッシュなどのパフォーマンスの最適化を行い、同時に多くのユーザーによる安全なアクセスを強制し、拡散する可能性のあるデータを効率的に表示できるようにする周囲のソフトウェア環境です。さまざまなワークシートの多く。


1

リレーショナルデータベースは、リレーショナルモデルに格納されているデータを格納および取得するためのツールです。

データのリレーショナルモデルは、少ない数(読んだ本に応じて、4または5のルール)に従って構築されます。これにより、一貫した方法でデータにアクセスできるようになり、設計の正確性が証明され、データベース管理システム(DBMS)は、データをすばやく取得するためのほとんどの作業を行います。また、データの構造を正式に文書化するためのツールも提供します。データベースを実装すると、本質的にほとんどの文書が実装されます。

ほとんどの人は、正確さが重要である理由を理解していません。つまり、ソリューションの開発でバグが発生する可能性が低く、同様の領域で作業する2人の異なるプログラマが作業を繰り返す可能性が低いということです。

アプリケーションのフロントエンドとは別のエンティティとして、データの構造の一貫したビューにより、データベース管理システムを使用すると、フロントエンドでさまざまなツールをさまざまな目的に使用できるため、より多くの活用が可能になります。ソリューションを構築する際の既製のコンポーネントの数。

データを保存するためのリレーショナルモデル以外にも他のモデルがありますが、データを開発および管理するためのツールのシンプルさ、柔軟性、および可用性の両方で(私の経験上)他のモデルはありません。


1

100%非技術的な答え:

リレーショナルデータベースは、冗長性を最小限に抑え、データを簡単に検索できるようにデータを格納する場所です。

ペットショップのデータベースがあるとします。店にはアイテムがあり、顧客がいて、売り上げがあります。これをExcelに入れると、列に次のようになります。

お客様名| お客様の電話番号| お客様の住所| 購入したアイテム| 価格| 日付

最初の顧客であるスミス夫人はキャットフードを購入します。

お客様名| お客様の電話番号| お客様の住所| 購入したアイテム| 価格| 日付
スミス夫人| 123-555-1234 | 10 Main St | キャットフード| $ 15 | 2011-03-11

そして、スミス夫人も猫のおもちゃを欲しがっています。

お客様名| お客様の電話番号| お客様の住所| 購入したアイテム| 価格| 日付
スミス夫人| 123-555-1234 | 10 Main St | キャットフード| $ 15 | 2011-03-11
スミス夫人| 123-555-1234 | 10 Main St | 猫のおもちゃ| $ 1 | 2011-03-11

そして、彼女は基本的に2週間ごとに戻ってきて、同じものを購入します。この方法では、多くの情報を複製するため、エラーが発生する可能性があります。また、これに在庫を保存することはできません。それは、他のExcelシート全体である必要があり、販売ごとに更新する必要があります。

データベースを使用すると、顧客(情報を含む)、アイテム(説明と価格を含む)、販売(顧客とアイテム間のリンク、日付と数量を含む)の3つのエンティティを個別に作成できます。


また、これは言及することが非常に重要です:pinaldave.com/blogfolder/dilbert5.jpg
MPelletier

1

ここにいくつかの良い技術的な答えがあります。しかし、上司はそれらのどれも理解しませんでした!

まず、非常に簡単な説明から始めます。「データをファイルに保存すると、1つの長いリストとして表示されます。リレーショナルデータベースは、マップやグラフのようにデータを保存するため、マップのさまざまな部分が互いにリンクします。

そして、例-'....たとえば、あなたの名前はあなたの住所にリンクし、次にあなたの都市にリンクするかもしれません。

彼が気にしているビジネス上の利点が続く-「これの利点は、複雑なデータを取得するためのコードを書くことがはるかに安価になることです。また、リレーショナルデータベースは非常に信頼性が高く、高速です。

そして、信頼性ステートメントで終わります-「リレーショナルデータベースは何年も前から存在しており、非常に成熟したテクノロジーです。私たちの特定の製品は[ここに製品名] 'です。


0

私の上司はDBAですが、簡単に言えば次のとおりです。

Excelの2つのテーブルと、あるテーブルのアイテムを別のテーブルのアイテムを参照するLOOKUP関数について考えます。次に、少なくとも10倍に拡大します。

それは、一部の人々や仕事のコンピュータレベルについてです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.