2022 ソフトウェア設計及び演習用の班Wiki

22::gr04::DB

DB(データベース)

データベースとは

データベースとは端的に言えば情報の集まりである。プログラムでWEBアプリやWEBシステム、スマホアプリ等を使用する場合、そのアプリ等に必要な情報は全てプログラム上に存在するわけではない。
多くの場合、そういった必要な情報は、情報を管理・集計するためにつくられた『データベース』に保存される。

MySQLの特徴

プログラムが活用するデータベースには様々なものが多数存在し、MySQLは世界的に使われている人気のデータベースのひとつ。 MySQLの他にはPostgreSQLやMongoDBなどが有名。
様々なデータベースの中で、MySQLの特徴とされているのは『シンプルで速く、PHPやJavaなどと簡単に接続できる』こと。 またその他にも、マルチユーザ対応がされており、複数人が同時に利用可能であるという点もまた、MySQLの特徴として挙げられる。

MYSQLの利用

MYSQL環境

今年度は、張先生による4年生のデータベースの講義でMySQLとPHPを使うため、環境が整ったサーバーがあるとのことで、そのサーバーをお借りし、MySQLとPHPによるソフトウェア設計が可能となった。
0.技術職員さんにmysqlを通したい旨を伝え、
  • ユーザ名
  • データベース名
  • DBのパスワード  を設定してもらいます(重要)
1.*使用するサーバーは学内のesdbサーバー。端末でesdbサーバにアクセス
  • "ssh esdb.cis.iwate-u.local"
  • "自身のパスワードを入力"
2.設定したMYSQLデータベースにログイン
  • "mysql -u 2022gr04 -D gotoeat -p"(Enter)
  • "(password)"
    • 2022gr04(ユーザー名)
    • gotoeat(データベース名)
    • XXXX.GrXX.Pass(DBのパスワード)
3.esdbサーバ内にはMySQL,Appache,phpなど完備されている(環境構築不要)

PHP環境について

PHP

MYSQLの操作

MySQL操作例

"create table [テーブル名] (〇〇 text, △△ varchar(20), 〇〇 int, ■■ varchar(10), 〇〇 varchar(1000), ▲▲ varchar(1000)); "
テーブルの作成。 〇〇、△△...がカラム名、ind,varcharなど様々な型が存在する。
"show tables;"
データベース内のテーブル一覧が確認できる。
"desc[テーブル名]"
作成したテーブルの型、数、属性、カラム名が確認できる。
"INSERT INTO [テーブル名] VALUES('〇〇','…',');"
テーブルの属性に合う型の内容でデータを登録する。
"select * from [テーブル名] "
指定したテーブルの中身が確認できる。*はすべての要素を指定することを意味し、下記のようなオプションを追記すると便利である。
  • "~order by (カラム名);" => 数字等降順で並べ替える
  • "~where (カラム名) = 101;" => カラムの属性によって(id)などを指定し出力
  • "~ where (カラム名) 40 and(or) 50;" => 数値などの範囲指定も可能

Exelを活用したMYSQLへの一括INSERT

  • テーブル作成は個人的にExelをおすすめする
  • 端末室のLibreOffice Calcでは編集、実行、正規のExleファイル読み込みも可能
  • 文字化け、半角全角など一括インサートの際は要注意!参考サイトはこちら
  1. インポートするためのエクセルを準備
  2. インポート先のテーブルを用意
    • database名;test_db
    • table名;sample
    • カラム(id、name、type etc...)
  3. 「="INSERT〜」のセルの列をドラッグしてコピー Screenshot from 2022-07-28 17-32-36.png
  4. Mysql「use database名」→ 4.をCtrl+C,ターミナルでCtrl+Shift+Vしてクエリ一括実行(不備がなければ自動で一括挿入される)
  5. 「select * from テーブル名」で確認

Screenshot from 2022-07-01 14-38-27.png

  • exel関数例「="INSERT INTO menu VALUES('"&F41&"','"&A41&"','"&G41&"','"&H41&"','"&J41&"','"&L41&"');"」
  • 1000件、10000件ともなってくるとこのように生成しておけば、自宅でエクセルでコマンド列をコピーしてMySQLにペーストするだけでOK

最終手段"JSファイルを利用したデータベース"

参考サイトはこちら
  1. 本来JavaScriptの プログラム部分を分離してファイルにする
  2. いろんなhtmlから、このプログラムを利用可能。
  3. このJSファイルにJavaScriptのデーター部分を収納し各HTMLに記述したJavaScriptからそのデーターを利用。
  4. この手法を使うとデータはどれだけ増えても4個のファイルで済む。
  5. またデータの追加、修正、削除はJSファイルだけを更新すればよいので間違いもなく楽である。
運用面での注意点
  • JavaScriptはソースの中身が丸見えで、使用するデータも簡単に外部から見ることが可能。
  • 顧客情報、決済情報、原価管理のデータを扱うとセキュリティー上の問題が生じので、一般公開に適さないデータは取り扱わない。


最終更新日:2022/08/02 14:15:16