- ベストアンサー
正規形の定義
第二正規形と第三正規形の定義を教えてください。 どの文献を参考にしても「候補キー」や「主キー」という語を用いて説明がしてあります。が、私はそのあたりからさっぱりわからないので、とても理解しづらいです。もっと噛み砕いた、わかりやすい表現での定義を求めています。どうか、よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- 「第1正規化」の定義について
はじめまして。 今までなんとなくAccessを使っていたのですが、一度きちんと勉強しておこうと思い、データベースの入門から始めているところです。 そこで、どうしても解らないところがでてきてしまいました。タイトル通り「第1正規化」についてなのですが、 http://www.kogures.com/hitoshi/webtext/db-seikika/ http://www.microsoft.com/japan/office/previous/xp/suminaka/access/database/database1_3.htm 上記最初のURL内「第1正規化」の項を参照すると、第1正規化とは 「繰り返しの部分を複数のレコードにして,繰り返しを排除する操作」 とあります。 これは、 「1レコードに繰り返しデータが存在している状態」を「非正規形」とし 「1レコードに存在する繰り返しデータを全て独立したレコードに書き出す」 事をもって「第1正規化」(第1正規形)と呼んでいるようです。 (便宜的に「定義A」と呼びます) 表を主キーで分割してはいません。 一方、以下のURLを参照すると・・・ http://sql.main.jp/cont/norm/nto1.html http://d.hatena.ne.jp/end0tknr/20080830/1220044407 http://www.techscore.com/tech/sql/SQL16/16_02.html/ 最後のURL内では、非正規形の定義は同様ですが、 「主キーによる表の分割を行い繰り返しを排除する」 事によって、「第1正規化」と呼んでいます。 (定義Bと呼びます) また、上記中段のURL内では、定義Aの状態も「非正規形」であると表現しているように読み取れます。 つまり解らない事というのは、「定義A」と「定義B」のどちらが正しい「第1正規化」(第1正規形)なのか?という事です。 Webや解説書等を漁ってみると、体感で 定義A:定義B=4:6 くらいのようで、定義Bが多いものの、かなり割れています。 個人的には、「データの重複を無くし」「汎用性を持たせる」という目的からすれば定義Bを第1正規形と扱った方が良いような気はしますが、こんなに書かれ方が分かれていると、どちらを信じて良いのか迷ってしまいます。 それとも、どちらも第1正規化の範疇なのでしょうか? 仕事上後進の指導もする事になるため、極力正確な理解をしておきたいのです。 どうか、お知恵を貸していただけないでしょうか。
- ベストアンサー
- その他(データベース)
- 第3正規化とは何でしょうか
データベースの第三正規化がよく分かりません。 第二正規化との違いがよく分かりません。 第2→主キーの一部に従属する項目を分離 第3→主キーに従属しない項目を分離 という説明があったり (このテキストでは、主キーを常に複合キーとしているようであり、その複合キーの(2つとして)どちらかを主キーとする表をつくるのが2で、その複合キーのどちらとも関係しない列を主キーとする表を3としているようなのですが、そもそも主キーは複合キーとは限らないはずだと思うのですが・・) 別のテキストでは(ある基本情報技術者試験のテキスト) 第2→関数従属 第3→推移的関数従属 という説明があったりします(推移的関数従属というのをネットで調べてみましたが、その概念がここでどう当てはまるのか分かりません) このへん教えていただけませんでしょうか? あるいは、分かりやすくある程度体系的に教えているページや本があれば教えてください。
- 締切済み
- 情報処理技術者
- 正規表現であるStringの集合を定義する
次の特徴を持つStringの集合を定義する正規表現Qはどのように表せばいいでしょうか? 1.0と1のみを使うString 2.「接頭辞」の0の数が1の数より2つ多くない 3.「接頭辞」の1の数が0の数より2つ多くない 接頭辞とはあるStringの先頭から始まる全てのsubstringのことです。例として123456789の接頭辞は"", 1, 12, 123, 1234, 12345, ..., 123456789となります。 この正規表現Qによって定義されるStringの集合の例として "", 10, 01, 0101, 1010, ... 正規表現Qで定義できない集合の例は 0011, 1100, 1110100, 10101100, ... 0011には接頭辞00が存在し、これは0の数が1の数より2つ多いので(0の数は2で1の数は0)正規表現Qでは定義できません。 これは不可能でしょうか?不可能の場合文脈自由文法で定義は可能でしょうか?
- ベストアンサー
- その他([技術者向] コンピューター)
- 参考文献の定義
今、わたしは小論文を書いているのですが、少し困ったことがあります。それは、「参考文献の定義」です。 そのまま書き写した文章を引用文献と表記するのに対して、自分の考えを生み出すために参考にした文献を参考文献と表記することは分かっています。ただ、少し自分の表現を交えた場合、「参考文献」と表記すればよいのでしょうか?まねてもよいとするならば、どこまでまねてもよいのでしょうか?(すべてまねると引用となるので、引用文献と参考文献の境界は?) もちろん、マナーとしては人の文章をまねることは物書きとして失格ということは理解しています。ただ、ここで聞きたいのは著作権上の法律としてはどうなのかということです。もし、ご存知の方いらっしゃいましたらお教えくださいませ。よろしくお願い致します。
- ベストアンサー
- その他(法律)
- 第1正規形→第2正規形
正規化についてお聞きしたいです。 大学の図書館の本の貸し借りのデータベースで 現在第1正規化した↓のテーブルがあるのですが 図書ID|書名|配架場所|学生証番号 | 氏名|学部|在籍期限|返却期限|貸出日 (図書IDは重複がないものとする。主キーは図書ID、学生証番号である) これを第2正規形に正規化した場合 学生証番号(主キー)|氏名|学部|在籍期限 図書ID(主キー)|書名|配架場所 学生証番号(主キー)|図書ID(主キー)|返却期限|貸出日 ↑のように3つの表に分ければ良いのでしょうか? あとこれを第3正規形にするにはどうすればいいでしょうか? 第2から第3への方法がよくわからないので、わかる方ご指導下さい。
- ベストアンサー
- その他(データベース)
- 第1正規形から第2正規形へ
正規化についてお聞きしたいです。 大学の図書館の本の貸し借りのデータベースで 現在第1正規化した↓のテーブルがあるのですが 本の貸借 学生ID|学生氏名|学部|学部棟 | 図書番号|出版社|本のタイトル 111 山田花子 経済 102B 100122 A社 経済白書 222 小林武 理学 201C 200021 D社 人間失格 555 鈴木一郎 文学 301D 103455 D社 走れメロス 555 鈴木一郎 文学 301D 204333 B社 バカの壁 666 沢井竹子 経済 102B 104444 C社 雑学無駄知識 (図書番号は重複がないものとする。) これを第2正規形に正規化した場合 学生ID(主キー)|学生氏名|学部|学部棟 学生ID(主キー)|図書番号(主キー)|出版社|本のタイトル ↑のように2つの表に分ければ良いのでしょうか? まだ完全に第2正規化を理解できていないので みなさんもし宜しければ力を貸してください。 学生ID(主キー)|学生氏名|学部|学部棟 学生ID(主キー)|図書番号(主キー)|出版社|本のタイトル
- 締切済み
- その他(データベース)
- 正規表現について
正規表現について 正規表現について昨日から取り組み始めたのですが、ごく簡単な説明ですでに四苦八苦しております。 下記HPを参考に始めたのですが、「^http://.+/$」の場合の「.+」の部分がよくわからずにおります。 http://www.scollabo.com/banban/php/php_15.html とりあえず、 「^http://」は、http:// から始まる場合 「/$」は / が末尾に来る場合 という理解なのですが、この私の理解で間違いはないでしょうか? 「.+」では、「 . 」は任意の1文字と説明があるのですが、ここでの 任意 とはどの部分をさす事なのかもよくわからないでいます。(/でしょうか?) リンク先HPでも本来十分解説がされているのかもしれませんが、「.+」について少しご解説をいただけないでしょうか。 よろしくお願いします。
- ベストアンサー
- PHP
- 正規表現について教えてください。
正規表現について教えてください。 JavaScriptでプログラミングを行っています。 その中で文字列に対しゼロサプレスを行いたいと思い 調べた結果、正規表現を使用する以下のコードで 実現可能なことが分かりました。 val.replace(/^0+([0-9]+.*)/, "$1") コードを記述し実行すると確かに可能なのですが 正規表現を調べてみても何故これでゼロサプレスが可能なのか よく理解できませんでした。 申し訳ありませんが初心者でも理解できるように説明して頂けないでしょうか。 宜しくお願いします。
- ベストアンサー
- JavaScript
- |。ってなんですか? 正規表現
正規表現の学習中です。読んでいる本の中に次の式がありました。 (?<=^|。)[^。]+。 日本語の文章の中から一文を抽出するための正規表現です。 。以外の文字がダーッと連なった後に。が来る文字列 とのことです。 [^。]は。以外の文字 +はそれが1個以上ある ですから [^。]+ は 。以外の文字が1個以上ある という意味です。 その後に。が付きますから、 [^。]+。 だけで 。以外の文字がダーッと連なった後に。が来る文字列 ということになります。 では (?<=^|。) の意味は何でしょう。 (?<=なんたら) は後方参照を意味しますから、 ^|。 のすぐ後に [^。]+ が続くと言いたいのでしょうか。 だとすると ^|。 が問題です。 ^もしくは。 という意味なら、^は正規表現で記号として使われている文字ですから、 \^|。 と表現されそうなものです。 それに、。は文末でしか利用されない文字ですから、これに注目して検索を行うというのは理解できますが、^は日本語でなんら特徴を持つ文字ではありません。 ^もしくは。 という理解は間違いでしょう。 それでは^を記号として考えるとして、その前後を[]で囲んでいないから、この^は文字列の先頭を表すのでしょうか。そうすると件の正規表現は 先頭の|。のすぐ後から。以外の文字が連なった後に。が来る文字列 という意味になります。日本語の一文を抽出する正規表現という解説にかなり近づいてはいます。 しかし |。 とは一体何? |はorを意味する記号ですが、 何とか or 。 という意味でしょうか。 でも「何とか」は「何とか」なりに何か文字表現がなされていても良さそうですし、それに 先頭の「何とか」または。のすぐ後から・・・ という解釈は意味不明。 |。 はどのように解釈すべきなのでしょうか。 お手数をお掛けします。
- ベストアンサー
- Perl
- リンク先が、それぞれ第何正規化に該当するか教えて
正規化が分かりません。 冗長性を排除したい、という意図だけは分かるのですが… 例えば、リンク先で回答されているケースは、それぞれ第何正規化に該当するのでしょうか? >個人IDがあり、住所情報を正規化するとしましょう >項目は「郵便番号」「都道府県」「市区町村」「番地」「電話番号」「メールアドレス」としますよ >個人IDを主キーとする「郵便番号テーブル」を作る >個人IDを主キーとする「都道府県テーブル」を作る >個人IDを主キーとする「市区町村テーブル」を作る ・これは第1正規化ですか? >個人IDを主キーとする「番地テーブル」を作る >個人IDを主キーとする「電話番号テーブル」を作る >個人IDを主キーとする「メールアドレステーブル」を作る ・この内容は重複しないと思うのですが、分けると、正規化したことになるのでしょうか? ・また、その場合は、第何正規化に該当するのでしょうか? ▽DBの「非正規化」について http://okwave.jp/qa/q5776795.html
- ベストアンサー
- MySQL
- LBT-TWS05BKのワイヤレスイヤホンの充電ができない状況について、質問があります。
- 12月28日に購入したLBT-TWS05BKのワイヤレスイヤホンを充電しようとしていますが、ずっと充電しても100%にならず、充電ケースに入れると右のイヤホンの光が青と紫が交互に点滅しています。
- エレコム株式会社の製品であるLBT-TWS05BKの充電が正常に行えない状況が発生しています。ご利用のワイヤレスイヤホンを充電する際に、右のイヤホンの光が青と紫が交互に点滅し続ける現象が発生しており、充電が完了しない問題が発生しています。
お礼
ご丁寧な解答をくださって、どうもありがとうございました。 もう一度、自分の中で順を追って整理してみたいと思います。 また何か機会があれば、そのときはよろしくお願いします。