• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:データベースの初歩の質問)

データベース初心者の疑問点とは?

このQ&Aのポイント
  • データベースの初心者が知りたい疑問点や失敗事例、おすすめの学習サイトについて紹介します。
  • 正規化についての理解や学習方法、正規化をしないと困る理由について解説します。
  • データベースの学習において実際のプログラミングで理解を深める方法や課題について考えてみます。

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

  • ベストアンサー
noname#246547
noname#246547
回答No.2

>・(小規模)設計で痛い失敗や初心者の起こしやすいミス  てどこですか? テーブルの設計(正規化)ですね。 適当にテーブル分割するために、更新や検索に無駄が生じやすいです。 適当にテーブル分割すると、DBMSが上手く実行計画を構築できず、 検索処理が著しく重たくなることがあります。 また、なんでもかんでもindexを張ることもありがちですね。 >・データベースについて解かりやすいサイトがあれば教えて  いただけませんか? これといっておすすめサイトが思い浮かばないのですが、 まずは、データ操作言語(select,insert,update,dalete等)をマスターしましょう。 >・プログラム習得の際、殆どマニュアルで解からない所が多い~ 習うより慣れろでいいんじゃないですか? ある程度慣れてから、マニュアルを読み直してみてください。 >現在実践中ですが、単にデータを書き込みや読み込みが出来る  だけで、そこから先に進めません ある程度理解できてきたら、ここのサイトのデータベースの質問を一緒に考える(あるいは回答してみるよう頑張ってみる)といいかも。 >・正規化をしないと、困る事てなんですか? データに冗長が生じ、更新や検索に手間がかかります。 ただし、検索スピードを上げるためにわざと第一正規形で止めたりはします。(例:履歴データ等) >・正規化して別れたテーブルに同じカラムが出来ますが、  データ変更などの操作は、どのテーブルに対して行うのですか? 主キーとなるデータの更新が頻繁に行われることは少ないと思います。 主キーが変更になるような場合は、キーに対して外部キー(cascade)を設定しておき、自動で更新されるようにしてもいいと思います。 主キー以外の項目は正規化をきっちりやってあるならば、 そのテーブル以外に同じ項目は無いはず。 ただし、わざと正規化しないこともあるので、その場合は該当する項目全てをupdateすることになります。 >・第3正規化位までが学習できる初心者向けサイトがあれば  教えていただけませんか? http://www.atmarkit.co.jp/fdb/rensai/db_enginer03/db_enginer03_1.html あと、ここで正規化の質問がありました。 http://okwave.jp/qa2932196.html

akaginoyama
質問者

お礼

教えていただいたサイトを用語を調べながら、 何度も読み返しております。 教えていただいた、サイトの正規化の前のページ にあるエンティティをテーブル分けしている所が 私が作成したテーブルと構造が違うような気がします。 まず、その辺からクリアしてみます。

その他の回答 (2)

noname#246547
noname#246547
回答No.3

>テーブル1のIDのデータを変更してもテーブル2には、 >反映されない様ですが、上記の例で新しい登録があった場合は >テーブル1と2両方書き換えるのでしょうか? 先の回答にも書きましたが、「外部キー」の「cascade」制約を調べてみてください。 あなたの期待する動きをDBMSが実現しています

akaginoyama
質問者

お礼

ご指摘の通りでした。 見落としていた訳では無いのですが、理解不足でした。 未だ、理解したとは、到底言いがたいですが、 おかげさまで全てのテーブルが完成致しました。 有難うございます。

回答No.1

DB(SQL)も動作を確認しながら覚えるしかないと思います。 >・正規化して別れたテーブルに同じカラムが出来ますが、 正規化して同じデータ項目(カラム)が出来ますか? 同じカラムを無くす事、データ項目の重複を無くすことが正規化ですから、それは正規化が出来ていないと言うことです。

akaginoyama
質問者

お礼

説明不足ですみません。 同じカラムと言ったのは、主キーの事です。 例、 ●テーブル1 ID PASS ●テーブル2 ID ←ここの事です。 ログイン回数 テーブル1のIDのデータを変更してもテーブル2には、 反映されない様ですが、上記の例で新しい登録があった場合は テーブル1と2両方書き換えるのでしょうか? 想像していたのは、テーブル1のIDを変更するとテーブル2のIDの 内容も変更されると思っておりましたが、どこかに、ミスがあるの でしょうか?