SENSHU UNIVERSITY SHORINJI KEMPORYOKKENKAI

専修大学体育会
少林寺拳法部
緑拳会

緑拳会会員専用ページお問い合わせ

活動報告

Web システム構築記 01

2020.12.06緑拳会

さあ、急に始めてみました新シリーズ。
一体何が目的で、何をどうしたいのかまったく分からない
感じですが、追々で判明して行く予定です。構想(だけ)はあります!
六段合格の記録とか、そういう人気の記事が投稿されても、
こっちが数を連投しちゃえば「流せる」とか「ヤられる前にヤる!」とか
そういうことは考えていません(ちょっとしか)。

では、早速解説から始めます。今や有名企業であれば、そのサイトは
大体「web システム」になっていると言えるでしょう。
あと緑拳会サイトもそうです。その基本的かつ最大の特徴は、
「動的コンテンツ」にあります。

約30年前のインターネット黎明期は、「静的コンテンツ」しか
ありませんでした。これは、企業が自社商品やサービス内容を
(html)ファイルに画像とテキストを収めて陳列しているだけでした。
誰が見ても、そのページは固定の内容で返すだけでした。
それまで紙の広告で見ていたものが、単に画面越しに見る
ようになっただけです。
当時の私は、インターネットってのはくだらないな。見る価値は
ないなと思っていました。だってただの広告の束ですから。

「動的コンテンツ」は、同じページでもアクセスしてきた人やその
時点の状況により(プログラム判定を経て)、異なる内容を返します。
具体的には、アマゾン等のショッピングサイトにあるカート画面
とかです。今、そのユーザが買おうと選択しているモノを覚えて
おく必要があります。静的コンテンツでは対応できません。
緑拳会サイトも直近で投稿された記事のタイトル(リンク)を
出すので、これも「動的」処理です。

アマゾンの個々の商品ページは、誰がアクセスしても同じ内容です。
ではこれは静的コンテンツか、と言うと違います。
いちいち商品個々について(html)ファイルで配置していては、数十万?と
いう莫大な量になってしまい、管理しきれません。更新とかも無理でしょう。
プログラムにてデータベースから情報(商品名/説明文/価格/画像…)を
取得、その場で(html)ファイルに書き出して、ユーザのブラウザに
返します。これが動的コンテンツの具体的処理の説明です。

この流れで今度は、性的コンテンツの動的な…はやっぱ止めておきます。

基本的なweb システムの構成は、以下の通り。
プログラム、web サーバ、DBサーバ

全部が1台のコンピュータに入っている場合も多いと思います。
とんでもない規模の超人気サイトでもあれば話は変わり、複数サーバで
構成することにて負荷分散を図ったりします。この人気(=負荷)の見積もりが
あまいと、「サーバダウン」を引き起こします。
古くは、PS(プレステ)2 の発売日の解禁時刻にサイトへの購入希望の
アクセスが一気に集中(数万人/秒)してダウン。

その人気爆発振りがニュースになった記憶があります。
今となっては、機器や技術の進歩により大した問題でもなくなったとは
思いますが。

データベース(DB)という言葉はよく聞くと思いますが、具体的なイメージは
あまりない人が多いかと思います。
DB を一言であらわすと、「(多数の)一覧表の格納庫」です。例えば、会員の
名簿(一覧)を作成するとします。これは、企業やシステム、担当者、目的(用途)に
よって形式(項目等)が変わってきます。
この形式を決めて、DB にテーブル(一覧表)を構築します。
簡単に言うと、Excel で作った様々な表をまとめて入れてあるイメージです。
ただし人間にはハンドリング不能な程、縦にも横にも長〜い表になります。

以下のようなテーブルを作りたいとします。

我ながらひどい画像です…

これを作るには、方法のひとつとして「SQL 文による指定」があります。
SQL という言語は、世界共通で規格されています。これさえ書いて
しまえば、あらゆる種類のDB で使い回し可能です。

CREATE TABLE `会員名簿` (
`代` char(2),
`氏名` varchar(10),
`ヨミガナ varchar(20),
`〒` char(7)
);
実際は文字コード問題が出ると面倒なので、テーブル名や項目名に
日本語(2バイト言語)の使用は避けます。
DAI, SHIMEI, YOMIGANA, YUBIN (1バイト言語)みたいにします。
char は固定長の文字列、varchar は可変長であることを項目毎に
上限桁数指定します。

上記の「クリエイト文」では、テーブルの形式(入れ物)ができるだけです。
具体的データを入れるには、今度は「インサート文」を作成します。
表内の1行分のデータ、これを「レコード」と言います。
1レコード登録する毎にインサート文が1つ必要になります。
INSERT INTO `会員名簿` VALUES (‘13′, ‘田時 再’, ‘タトキ サイ’, ‘1234567’);
INSERT INTO `会員名簿` VALUES (‘14′, ‘口火 香’, ‘クチビ カオル’,’2234567′);

これらを検索するにはセレクト文、削除はデリート文、修正にはアップデート文を
書いてDB に投げてやる感じです。SQL のマスターは、かなり大変です。
かなり端折ってしまいましたが、DB 構築の具体的イメージはこんな感じです。

ところで、DB は(ソフトウェアとして)いくらするのか、という疑問が
わきます。私も良くは知りません。買ったことないし。
最も有名なのが、ORACLE(オラクル)です。多分数百万円とかじゃないでしょうか。
世界中でシステム開発している会社が、当たり前のように購入します。
マイクロソフトやIBM 等もライバル製品を出しています。
因みにオラクル社は、当時倒産直前のアップル社を傘下に納めようと
割と真剣に考えたことがあるほどの世界的企業です。
オラクル(のDB)を買う予算のない中小企業や個人はどうすればいいのか。

web システム構築にDB は欠かせません。答えは、「フリー(無料)のDB を使う」です。

有名どころは、PostgreSql, MySQL 等です。参考書籍も色々出ています。
これらは無料ですが、別にオラクルに(そんなには)劣りません。
むしろ勝つ部分もあるみたいです。じゃあ何で…となるでしょうが、話が
どんどん離れるのでこの辺で止めます。
(とても)気になる人は、 OSS とかフリーウェアというワードで調べて下さい(次回に続く)。
25代 カワハラ