データベース第3回目 意味ごとにテーブルを分ける

Slides:



Advertisements
Similar presentations
データベース. レシートを見てみよう コンビニやスーパーで買物をするときの レシートを見てみよう – 何がかいてあるだろうか? – レジで全部打ち込んでいる? – なぜ、打ち込まないのにレシートには商品名 や価格が出てくるの?
Advertisements

IBMユーザ研究会九州研T3 5章 Webの発展可能性. WWWの発展が企業に与えるもの 顧客・ユーザのリテラシー向上 顧客・ユーザの操作的な ” 常識 ” の変化 システム開発プロジェクトでの応用 ウェブの発展を、企業はどう捉えて、 自らをどう変えていく必要があるか? 新しいプラットフォームをより深く理解することで、
DB(データベース)のおはなし 作成者:小野正広 DBと言っても、  ドラゴンボール ではないですぞ! 3/1/2017.
情報理工学部 情報システム工学科 ラシキアゼミ 3年 H 井奈波 和也
リレーショナル・データベース データベース論 第10回.
CG基礎 日本文理大学 坪倉篤志 <配布資料-02> 概要 先週の復習 第1回,コンピュータグラフィックス概要
Wixのログイン メールアドレスとパスワードを記入してGO 再度、尋ねてきますのでもう一度入力して「新規登録」
Shimatterシステムの 初期モデルの正規化
MySQLに接続するデータベースプログラム
~手続き指向からオブジェクト指向へ(Ⅰ)~
JavaによるCAI学習ソフトウェアの開発
主キーと主要属性の定義.
情報理工学部 情報システム工学科 ラシキアゼミ3年 H 岡田 貴大
Accessによる SQLの操作 ~実際にテーブルを操作してみよう!~.
Accessによるデータベース(3) Ver /11.
SQL J2EE I 第3回 /
コンピュータと情報 第3回 補遺 ファイルとフォルダ.
稚内北星学園大学 情報メディア学部 助教授 安藤 友晴
「まめだくん Ver.1.0」 特徴と利用方法.
Webサイト運営 09fi118 橋倉伶奈 09fi131 本間昂 09fi137 三上早紀.
PowerPoint初級編 院内研究発表入門.
データベース.
Web上で管理・利用できる 面接予約データベースシステムの構築
Day3 Day4 Day3 Day4.
サーバ構成と運用 ここから私林がサーバ構成と運用について話します.
(B2) 親: minami, kazuki 多様な認証機器に対応する 認証システム (B2) 親: minami, kazuki.
14.テーブル定義,一対多の関係,多対多の関係, 外部キー,索引(インデックス),データベース操作
マイクロソフト Access を使ってみよう 第1回
マイクロソフト Access での SQL 演習 第1回 SQL問い合わせ(クエリ)
マイクロソフト Access を使ってみよう 第4回
データベースとJavaをつなげよう! ~JDBC~
情報処理1~第12回~ 野中良哲.
2003年度 データベース論 安藤 友晴.
JIMDO勉強会その2 アカウント新規作成.
管理画面操作マニュアル <サイト管理(1)> 基本設定 第9版 改訂 株式会社アクア 1.
ホスティングサーバの作成と、 ラズベリーパイの利用
データベースシステム入門 9.従属,従属関係,第三正規形
データベースを使ったプログラミング ~JDBCを使ってみよう~
JDBC J2EE I 第4回 /
第2回.リレーショナルデータベース入門 SQL を用いたテーブルへの行の挿入 SQL 問い合わせの発行と評価結果の確認.
第1回.リレーショナルデータベースを使ってみよう
第1回.リレーショナルデータベースを使ってみよう
第2回.リレーショナルデータベース入門 SQL を用いたテーブルへの行の挿入 SQL 問い合わせの発行と評価結果の確認.
総合政策学部4年 伊藤玲子 総合政策学部4年 阿部雅美 +CreWな皆様
理学部 情報科学科 指導教官 千葉 滋 助教授 学籍番号 03_03686 内河 綾
マイクロソフト Access での SQL 演習 第5回 副問い合わせ
Javaによる Webアプリケーション入門 第7回
WEBアプリケーションの開発 2002年度春学期 大岩研究会2.
マイクロソフト Access での SQL 演習 第4回 並べ替え(ソート)
ネットワークプログラミング (5回目) 05A1302 円田 優輝.
オープンソース開発支援のための リビジョン情報と電子メールの検索システム
マイクロソフト Access を使ってみよう 第2回
情報処理概論Ⅰ 2007 第10回 2007/6/27 情報処理概論Ⅰ 第10回.
マイクロソフト Access を使ってみよう 第3回
UDPマルチキャストチャット      空川幸司.
平成29年度第65回関東高等学校柔道大会 宿泊・弁当申込方法
データベースの作り方  リサーチカンファレンス.
Firebaseを用いた 位置情報共有システム
3.リレーショナルデータベース,主キー, SQL
コンピュータにログイン 第1章 コンピュータにログイン 啓林館 情報A最新版 (p.6-13)
gate登録システム: 設計ポリシーから使い方まで
人を幸せにするアプリケーションの開発 2004年度春学期 大岩研究プロジェクト2 2004年4月8日(木) 発表:武田林太郎.
Annotation EJB 3.0 コース 第3回 2006年8月4日.
関係データベースとSQL MZ Platform講習会(上級).
リレーショナル・データベース J2EE I (データベース論) 第2回 /
第2回.リレーショナルデータベース入門 SQL を用いたテーブルへの行の挿入 SQL 問い合わせの発行と評価結果の確認.
第1回.リレーショナルデータベースを使ってみよう
SQL J2EE I (データベース論) 第3回 /
プログラミング演習II 2004年11月 2日(第3回) 理学部数学科・木村巌.
SQL データベース論 第11回.
Presentation transcript:

データベース第3回目 意味ごとにテーブルを分ける 2003年7月3日 by CreW

前回の復習(前回の目標) Javaのプログラムからデータベースを使える JDBCとは何か,説明できる JDBCを使えるようになる

前回の復習(前回学んだこと) Javaプログラムから テーブルにデータを挿入する方法 テーブルに入っている情報を取得する方法

今回の目標 テーブルを意味によって分ける理由が分かる 2つのテーブルを関連付ける方法がわかる

今回変更する点 前回の「サブゼミ疑問だらけ掲示板」は全員に共通した「入室パスワード」で入室できた. 今回は投稿者ごとに異なったログイン名とパスワードによって入室可能にしたい.

テーブルを設計する 先週のテーブルに新たな項目を追加した どのようにデータが格納されるでしょうか 実はこの設計には問題があります department grade contributor login title content date password どのようにデータが格納されるでしょうか 実はこの設計には問題があります

このテーブルの問題を 整理しよう 意味の違う情報が同じテーブルで管理されているから使いにくい 投稿者の新規作成をする毎に情報のないデータ(タイトル,内容,投稿日)が存在する 情報が重複している(投稿するごとにログイン名とパスワードを格納するのは非効率) 意味の違う情報が同じテーブルで管理されているから使いにくい

問題点を検証してみよう ①新規ユーザ登録をする ②投稿する このように格納するしかありません! 武田林太郎さんが投稿者登録をして発言する 実際にテーブルを作って操作してみよう department grade contributor login title content date password 総合政策学部 4年 武田林太郎 s00581rt null rintaro … … … … … … ①新規ユーザ登録をする ②投稿する このように格納するしかありません!

テーブルに意味を持たせる ここでの問題は,意味の違う情報が一つのテーブルにあることです

扱うデータを整理しましょう 質問掲示板で扱うデータは、 投稿者情報 投稿情報 これらを格納できるようにテーブルを作りましょう 学部名,学年,投稿者名,ログイン名,パスワード 投稿情報 タイトル,内容,投稿日 これらを格納できるようにテーブルを作りましょう

意味ごとに テーブルを分けよう 投稿者情報と投稿情報は別々テーブルて管理しよう 投稿者情報 学部名 学年 投稿者 ログイン名 パスワード タイトル 内容 投稿日

意味ごとにテーブルを分けなかった 場合の問題 意味ごとにテーブルを分けなかったらどんな問題があるでしょう?

意味ごとにテーブルを分けなかった 場合の問題 ほかにもこんな問題が考えられます 情報に重複が出る (投稿の毎に会員の情報を入れている) 変更がとても大変  (例:100回発言した会員が、メールアドレスを変更したくなったら??)

意味ごとにテーブルを 分けたけど・・ それぞれの投稿情報は投稿毎に誰が投稿したのかを知っていないといけない 2つのテーブル間に関連が必要 学部名 学年 投稿者 ログイン名 パスワード タイトル 内容 投稿日

どの列で関連を もたせればいいのか 投稿情報は、投稿者情報から一人の投稿者を特定したい  投稿情報は、投稿者情報から一人の投稿者を特定したい  投稿情報は、投稿者情報のユニークな値を持つ列項目をもって関連成立したい

テーブル間で関連をもたせる 2つのテーブルで同じ値をとる列で関連をもたせる 投稿情報テーブルが投稿した投稿者を特定したいので投稿者情報テーブルのいずれかの列をもてば関連が成立する 学部 学年 投稿者 ログイン名 パスワード 総合政策学部 4年 武田林太郎 s00581rt rintaro ログイン名 タイトル 内容 投稿日 s00581rt Javaについて 分からない点が.. 7/2

主キーという概念 今回の場合のようにテーブルの行を特定したくなった場合に、行を一意に識別するための情報が必要になる これを、主キーという 主キーとは、テーブルの中で行を特定するための情報であり、列を割り当てて用いる 主キーはユニーか値を持つ列でなければならない

投稿情報は投稿者情報の主キーをもつことで投稿者を特定できるようになる 投稿者名は主キーになれるか? 同姓同名の投稿者がいると投稿者を特定できないのでだめ パスワードは主キーになれるか? 万が一同じパスワードをもつ投稿者がいたらどちらか一方かを特定できないのでだめ ログイン名は主キーになれるか? ログイン名は投稿者ごとに違うもの(ユニーク)なので主キーになれる

ログイン名で関連をもたせる 投稿情報は投稿者情報の主キーであるログイン名をもって2つのテーブルを関連付けることによって投稿者を特定できるようになった

今回の目標(再確認) テーブルを意味によって分ける理由が分かる 2つのテーブルを関連付ける方法がわかる テーブルを意味によって分けるといいことはどんなことでしたか? 2つのテーブルを関連付ける方法がわかる 2つのテーブルを関連付けるにはどうしたらよかったですか?

実感しよう では,実際に2つのテーブルになった質問掲示板を実行しましょう http://web.sfc.keio.ac.jp/~s00581rt/crew/ 上からソースコードを入手 テーブル(.sqlファイル)は自動でサンプルのテーブルを作成します mysql questionbbs < sqlファイル名

2つのテーブル情報 2つのテーブル rintaro contributordata3 questiondata3 department grade contributor login password 総合政策学部 4年 武田林太郎 s00581rt rintaro questiondata3 login title content date s00581rt Javaについて 分からない点が.. 7/2

課題 投稿できるようにしましょう 発展課題は,投稿者の新規作成です