• ベストアンサー

DBで第1正規形と第2正規形の違いは?

基本情報処理試験の勉強してます。 とはいえ日常的にDBをいじってるので、 一番ストリクトにDBを切ったものが第3正規形ということはわかります。 ですが、第1正規形と第2正規形の違いがいまいちぴんときません。 どこがポイントでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • mpro-gram
  • ベストアンサー率74% (170/228)
回答No.2

私には、ここが解りやすかったです。 http://rfs.jp/sb/sql/s01/05-13.html 私としては、第2と第3の方が区別が付きにくい気がします。部分と推移の意味がつかみにくい。 SQL文操作に慣れてくると、分離した状態から考え始めるので、第3正規形となったtableの全てをjoin して第1正規化前へ戻すSQL文構築から逆算するとすこし理解が進むかも? まず、第3正規化で分離した table は、 join `th3rd` on `main`.nonprimary = `th3rd`.primary となって本星の`main`テーブルと非プライマリーキーのフィールドで結びつきます 次に、第2正規化で分離した table は、 join `th2nd` on `main`.primaryX = `th2nd`.primary となって `main`テーブルとプライマリーキーのうちの1フィールドで結びつきます つまり、複合プライマリーキーがあるテーブルでないと、第2正規形が理解しにくいのだと思います。 最後に、第1正規化で分離したtable は、こちらのtableの方が全体を連結して、これまでの`main` テーブル側が、FOREIGN KEY の関係になります。 `the1st` join `main` on `the1st`.mainid = `main`.id join `the1stCategory` on `the1st`.Categoryid = `the1stCategory`.id

その他の回答 (1)

  • kuma8ro
  • ベストアンサー率40% (212/523)
回答No.1

例えば参考URLの事例で、図1には、数量*単価=金額という関係が有ります。 これを図2、図3のようにバラして、一つの表の中に、関数で表現されるような関係を無くしたものが、第2正規形です。

参考URL:
http://design.first-database.com/2nf.html

関連するQ&A

  • ジョブとタスクの違いは?

    基本情報処理試験の勉強をしてるのですが、ジョブとタスクの違いがわかりません。 どなたか教えていただけないでしょうか? よろしくお願いします。

  • 浮動小数点の正規化方法について

    基本情報処理技術者試験を20日に受けます。勉強不足で困っています。どなたか教えてください。 問題「数値を16ビットの浮動小数点表示法で表現する。10進数0.375を正規化せよ:ここでの正規化は仮数部の有効数字よりも上位の0がなくなるように指数部を調節する操作である。」  答え「0111111000000000」 最初の1ビットが仮数部の符号、次の4ビットが2のべき乗の指数部で負数は2の補数、残りの11ビットが仮数部の絶対値 となっています。 0.375を2進数に直すところまではわかったのですが、次の正規化がよくわかりません。よろしくお願いいたします。

  • テクニカルエンジニア(DB)って

    基本情報・ソフトウェア開発技術者は、取りました。 春にテクニカルエンジニア(DB)を受けようかと思っていますが、実際業務でバリバリやっていないと取得は難しいでしょうか? ちなみに、私は・・・ 現在25歳女で、昨年まで2年間、開発系SE(というよりプログラマ)をやっていましたが、 現在は派遣社員でFileMakerで、ちとデータベース設計っぽいことをやっている程度です。 SE時代にもあまりOracleとかの経験は無く(SQLだけ試験を突破しましたが)実際、多少のSQLを使うくらいでした。設計はある程度したことがあります。 ソフトウェア開発の勉強をしていた時に、比較的DBは得意分野ではありました。 過去問を見てみろ・・・と言われればそれまでなのですが、受験経験者の方がいらしたらどんな手ごたえだったのか、教えてください。

  • 正規表現文字列をDB登録

    正規表現に詳しくないことと、PHPも携わったばかりなので、苦戦しています。ご教授いただけると助かります。 以下のようなことをやろうとしています。 1.フォームで入力された正規表現を文字列としてDBに登録していきます。 例{http://[w-.]*test_site.jp}i 2.登録データを取り出して、preg_replace()を使いたいです $url_text = {http://[\w\-.]*test_site\.jp}i $db_data ←1のデータ(配列になってます) preg_replace($db_data, '', $url_text, -1) そうすると、$db_dataの中身は\がないために、エラーとなります。 Warning: preg_replace(): Compilation failed: range out of order in character class at offset 10 DBから取得した後に、変換するような関数などあるんでしょうか。 それとも他の方法を探したほうがよいのでしょうか。 一致したものを省きたいような処理なのですが・・・。 ためしにpreg_quote()をかけてみましたが変な風に置換されてダメでした。 うまく説明もできなくて申し訳ないですが、何か良い案ありますでしょうか。 必要であれば、補足いたします。 ぜひお願いいたします。

    • ベストアンサー
    • PHP
  • 第3正規化とは何でしょうか

    データベースの第三正規化がよく分かりません。 第二正規化との違いがよく分かりません。 第2→主キーの一部に従属する項目を分離 第3→主キーに従属しない項目を分離 という説明があったり (このテキストでは、主キーを常に複合キーとしているようであり、その複合キーの(2つとして)どちらかを主キーとする表をつくるのが2で、その複合キーのどちらとも関係しない列を主キーとする表を3としているようなのですが、そもそも主キーは複合キーとは限らないはずだと思うのですが・・) 別のテキストでは(ある基本情報技術者試験のテキスト) 第2→関数従属 第3→推移的関数従属 という説明があったりします(推移的関数従属というのをネットで調べてみましたが、その概念がここでどう当てはまるのか分かりません) このへん教えていただけませんでしょうか? あるいは、分かりやすくある程度体系的に教えているページや本があれば教えてください。

  • 増設しやすいDBサーバの設計について

    ・将来、負荷に合わせ、DBサーバを増設する。 ・当初は、一台のDBサーバでサービスを開始する。 という前提で考えた場合に、 増設がしやすいDBサーバの設計ポイントは どんな点があるでしょうか? (例えば、InnoDBのデータベースディレクトリはこうしておくと良い、等) 参考になるURL等でも構いませんのでよろしくお願い致します。 頂いた情報を元に、勉強していこうと思います。

    • ベストアンサー
    • MySQL
  • 情報処理技術者試験 新試験制度について

    情報処理技術者試験について教えてください。 新試験制度によって変更に伴って、 今後の情報処理関係の資格取得に当たって考えていることがあります。 私は基本情報処理試験の取得を考えているのですけれども、新しくなった試験の分別がまだついておらず悩んでいるのですが・・・ IT パスポート試験 (レベル1) = シスアド級 基本情報技術者試験 (レベル2)= 基本情報処理 + シスアド? 応用情報技術者試験 (レベル3)= ソフトウェア開発? という分別で合っていますでしょうか? 仮に基本情報技術者試験 (レベル2)取得する前提で勉強するならば、基本情報処理 + シスアドの勉強を進めていき、知識を固めていくのが無難でしょうか?

  • 【資格】OracleVSデータベーススペシャリスト

    いつもお世話になっております。 データベース資格として、現在Oracleと情報処理試験のデータベーススペシャリストを考えております。今秋に1つ落ち着いたので、目標を立てたいと思っています。 私はDBに関する知識はほとんどなく、1から勉強する身です。 そこで教えていただきたいのですが、以下の7つの試験を難易度の高い順に並べるとどのような順番になるでしょうか。もちろん個人的なご意見でも結構です。 よろしくお願いします ・基本情報処理試験 ・応用情報処理試験 ・データベーススペシャリスト ・Oracleブロンズ ・Oracleシルバー ・Oracleゴールド ・Oracleプラチナ(←一番上かな?)

  • E-R図 表記法について

    基本情報処理試験  E-R図の勉強をしているのですが 表記法 A---B 線の上部に0..*又1..*この部分が分かりません 検索したのですが・・・・。 どういう意味なのでしょうか。 E-R図、表記法、正規化について分かりやすいサイトがあれば 教えてもらえないでしょうか よろしくお願いします http://情報処理試験.jp/FE22a-am/k46.html H22午前問46

  • 非正規採用について

    企業の採用試験をうけましたが、正規採用ではなく非正規採用となりましたが、正規との待遇の違いの大きさに、驚きました。時給でそれも 安く、賞与はなし、社会保険もなし、これでは都合の いい、便利使いのような気がします。 同じ様に試験を受けたのに、これほどの差をつけるとは、非正規採用を 受けるか迷っています。 この条件なら、別にパート専用の採用をすればいいのにと思うのですが それなら、受けるほうも納得いくと思います。 「一年後、本採用もあり」とありますが、信用できないでしょうか? 今、非正規採用が増えていると聞きますが、就職状況はこんなもんなんでしょうか?正社員や企業にいいように利用されているんでしょうか?