A社の佐伯さんがのらりくらりと

A社の佐伯さんがのらりくらりと。インターネットと少しだけ生活のこと。

うろ覚えだった知識をまとめてみたよ【データベース編③】

学習エントリ。 全体的な知識の底上げをすべく、復習も兼ねてまとめてみる。

同時実行制御

複数のトランザクションが同じデータへ同時に書き込むと、データに不整合が発生する。これを防ぐためにDBをロックしないといけない。方法は以下の2つ。 * 共有ロック:読み込み時にかけるロック。他のトランザクションと被ることも可能。 * 専有ロック:書き込み時にかけるロック。他のトランザクションと被れない(どこかひとつでも専有ロックをしていたら、どちらのロックもかけれない)。

デッドロック

複数のトランザクションが互いにロックの解放待ちをしていた場合膠着状態(デッドロック)になる。この場合いづれかのトランザクションを強制終了し、再実行する。

障害回復

障害が発生した場合は、原子性や持続性を維持するための処理が必要。

チェックポイント

メモリ中のデータをディスク装置に反映させる地点。DBのデータを更新した場合、すぐにディスク装置に反映させたいがアクセスに時間がかかる。なので、一旦メモリ上のデータにとどめておいて、あとでディスク装置へ書き出す。ディスク装置へ書き出すタイミングをチェックポイントという。

ストアドプロシージャ

いくつかのSQL文をまとめたプログラムをDBサーバに登録しておき、クライアントがそのプログラムを呼び出す形でSQLを実行する方式。SQLをDBサーバにに入れておけば、SQLそのものをDBサーバに送る必要がないので、ネットワークの負荷が軽減される。

参考

https://www.amazon.co.jp/%E3%83%8B%E3%83%A5%E3%83%BC%E3%82%B9%E3%83%9A%E3%83%83%E3%82%AF%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88-%E5%9F%BA%E6%9C%AC%E6%83%85%E5%A0%B1%E6%8A%80%E8%A1%93%E8%80%85-%E5%B9%B3%E6%88%9028%E5%B9%B4%E5%BA%A6-%E6%83%85%E5%A0%B1%E5%87%A6%E7%90%86%E6%8A%80%E8%A1%93%E8%80%85%E8%A9%A6%E9%A8%93-TAC%E6%83%85%E5%A0%B1%E5%87%A6%E7%90%86%E8%AC%9B%E5%BA%A7/dp/4813265545www.amazon.co.jp

うろ覚えだった知識をまとめてみたよ【データベース編②】

学習エントリ。 全体的な知識の底上げをすべく、復習も兼ねてまとめてみる。

正規化

表を分割して、データの重複を排除すること。重複を防くことは不整合の発生を防ぐことにつながる。不整合は新旧のデータが混在することによって起きる。なるべく重複を無くし、更新を管理する。

関数従属

IDでユーザが特定できるなど「Aを特定すれば、Bが特定される」という関係を関数従属という。B(ユーザ)はA(ID)に関数従属する、という。書き方は「A→B」。

非正規形

ひとつの行に複数のデータが入っているなど、繰り返しの項目をもつ表。関係データベースでは扱えない。最低でも以下の第1正規形に変形する必要がある。

第1正規形

繰り返し項目を持たない、単純な表。単純=一行に複数のデータが入っていない。しかし依然として重複する情報は存在するので、不整合を防止できない。

第2正規形

第1正規形の条件を満たしており、非キー属性が主キーに完全関数従属する(主キーで全部特定できる)ように表を分ける。完全では無いが、不整合の防止効果はある。ちなみに完全従属とは、複数主キーがあった場合、一部のみに関数従属していたりせず、主キー要素すべてに関数従属するもの。

第3正規形

第2正規形の条件を満たしており、非キー属性が主キーに推移的時間数従属しない。まずは主キー以外の関数従属を洗い出し、もしあればそれを別の表に分ける。分けた先の主キーとなる要素は残しておく。第3正規形になると情報が重複して記録される箇所が無いので、不整合の発生をより抑えられる。ちなみに推移的関数従属とはA→B→Cのように関数従属が推移、繋がっていくもの。例えば「受注番号→顧客番号→顧客名」を「受注番号→顧客番号」「顧客番号→顧客名」に分ける。

正規化の利点と欠点

利点は不整合の発生を防ぐことができること。欠点は正規化を進めれば進めるほど、様々な表を見なければならないため、アクセスに時間がかかる。

DBMS(DataBase Management System)

DBとユーザを仲介する仕組み。ユーザが指示したSQLDBMSによって処理され、結果がユーザに返される。

ACID

DBの一連の処理はトランザクション単位で実行される。トランザクションは関連する一連の処理のこと。例えば ① 口座Aから◯◯円出金 ② 口座Bへ◯◯円入金 これらの処理はひとまとまりの仕事であり、片方だけ実行されるということがあってはならない。このように関連する一連の手順をまとめたものをトランザクションという。 ACIDはトランザクションが持つべき特徴を表す。 * 原子性:トランザクションは「すべてを実行する」か「全く実行しない」のどちらか。 * 一貫性:トランザクションの実行結果はDBの内容を矛盾させない。 * 独立性、隔離性:並列同時に実行している他のトランザクションの影響を受けない。 * 持続性、耐久性:正常に終了したトランザクションの更新結果は、システムの障害などでも消失しない。

すべてを実行することを「コミット」、全く実行しない状態に戻すことを「ロールバック」という。トランザクションは必ずどちらかで終了しないといけない。

2相コミットメント制御

上記の例で口座AとBが別々のDBを使っている場合もある。このように情報を様々な箇所で管理しているDBを分散データベースという。分散データベースでは、2相コミットメント制御を行ってコミット・ロールバックする。システムからの指示に対して、どちらからも準備完了応答(ACK)が返ってきたら両方のDBに対してコミット指示を行う。もしひとつでもエラー応答(NACK)が返ってきたら両方に対してロールバック指示を行う。

参考

https://www.amazon.co.jp/%E3%83%8B%E3%83%A5%E3%83%BC%E3%82%B9%E3%83%9A%E3%83%83%E3%82%AF%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88-%E5%9F%BA%E6%9C%AC%E6%83%85%E5%A0%B1%E6%8A%80%E8%A1%93%E8%80%85-%E5%B9%B3%E6%88%9028%E5%B9%B4%E5%BA%A6-%E6%83%85%E5%A0%B1%E5%87%A6%E7%90%86%E6%8A%80%E8%A1%93%E8%80%85%E8%A9%A6%E9%A8%93-TAC%E6%83%85%E5%A0%B1%E5%87%A6%E7%90%86%E8%AC%9B%E5%BA%A7/dp/4813265545www.amazon.co.jp

うろ覚えだった知識をまとめてみたよ【データベース編①】

学習エントリ。 全体的な知識の底上げをすべく、復習も兼ねてまとめてみる。

データベースの目的

データを一元管理すること。一元管理することで以下の利点がある。 * 独立性の確保:アプリケーションごとにデータを保つ必要がない。アプリケーションを変更してもデータへの影響は無い * 整合性の確保:様々なアプリケーションの間でデータを共有することが出来る。旧データ・新データの混合を防ぐ。 * データの機密保持:一貫したアクセス制御を行える

三層スキーマアーキテクチャ

データの独立性を保つための構造。スキーマとは表の項目を決めるもの。三層のスキーマとは * 概念スキーマ:データベースに登録されているデータすべてを表す * 外部スキーマ:アプリケーションから見えるデータ構造。概念スキーマの一部を抜粋したり、加工したりして作る。 * 内部スキーマ:記憶装置上でのデータ構造。レコード形式や、インデックス形式など内部的なもの。

関係データベース

表形式でデータを管理するもの。用語は以下。 * 表、リレーション、関係:表全体のこと * 行、タプル:位置レコード、一件分のデータ * 列、属性:表の項目のこと * ドメイン、定義域:属性の値として、とり得る範囲のこと * 主キー:行を一行に特定出来る属性。複数の属性の組み合わせで主キーとなっているものを複合キーという。主キーの制約はUNIQUE(同じ値を取らない)とNOT NULL(NULLをとってはならない)のみ。 * 外部キー:複数の表がある時に、他の表で主キーとつながっている属性のこと。外部キーの値は参照先の値に必ず存在しなければならない(参照制約)。 * 実表:概念スキーマのこと * ビュー:外部スキーマのこと

E-R図

業務で扱うデータのモデル化を目的とする。Eはエンティティ(実体)、Rはリレーションシップ(関連)を用いて表現する。エンティティはひとまとまりに出来る属性を指す(学生番号、氏名、学科名など)。リレーションシップはエンティティ間の関連を表す。例えば「学生」は「学科」に所属という関係がある。リレーションシップは多重度を定める。多重度とはエンティティの数値的な関係のこと。

例 学生エンティティと学科エンティティは多対1である。つまり * 学生は一つの学科を持ち * 学科は複数の学生を持つ ということである。常に両方向から考える。

E-R図と関係データベース

大まかなルールは以下 * E-R図のエンティティを表とする * エンティティの属性は表の属性 * 1対1の関係であれば一方の主キーを、他方の主キーとする * 1対多の関係であれば、1の主キーを多の側で外部キーに設定する * 多対多の関係では、連関エンティティを用いて1対多の関係に変形する

連関エンティティ

多対多関係を1対多関係に変形するためのもの。多対多関係の中間に挟むエンティティ。連関エンティティの名前はリレーション名にするとよさ気。

参考

www.amazon.co.jp

海外で生活しているんだけど、思った以上に人間は違うという話

最近思ったこと。
今年始めあたりから、仕事の都合でフィリピンのセブで生活している。実は海外に行くのはこれが初めてで、当然のことながらこれだけ長い間、違う国で生活するのも初めてだ。そんなわけで感じたことを書いておく。

今まで自分はめっちゃ配慮されていた

これは自分でも気づいていることなのだが、日本で生活をしているときよりも怒ることが増えた。怒るといっても怒鳴るなど、表に出すようなものではなく「なんでそうなの?」と悶々とする程度だけど。理由を考えてみると「自分に配慮されていないから」だ。少し傲慢な言い方だが、例を挙げると以下のようなものだ。

  • スーパーのレジ等のサービスが極端に遅い。「お客さんを待たせているから急がなきゃ」のような感覚が相手にはない
  • カフェで他の客がいるにも関わらず大声で騒いだり歌ったりする

日本ではこういった怒りは無かった。逆に言うと日本では当たり前に他者に配慮がなされていたということだ。自分は今までその配慮は人間が社会で生活する中で当たり前のものだと思っていたが、それは日本固有の文化に過ぎなかった。自分は無知ゆえに、自分の育った文化以外を許容できなかった。だから怒った。「他者に配慮する」ことは日本固有の価値だと再認識した。

みんな平等に苦しもう

withnews.jp

このニュースを読んで、内容はさておき「みんな平等に苦しもう」というフレーズが心に残った。これは一部危険な思考だ。それは他者に自分と同じ振る舞いを要求することであるからだ。そしてそれは、自分がフィリピンで感じた怒りと同じ構造だ。元来人間は同じプロトコルを持ち合わせておらず、共通化されている部分は思った以上に少ない。しかし、それになかなか気付けない。

自分だけでなく全体を考え行動する性質自体は、集団において適している。しかしそれは同調圧力という形で個人を苦しめることになる、ということを最近感じた。要は「思った以上に人間は違うよね」ってことが言いたかったんだけど、うまくまとめられなかったので精進しよう。

うろ覚えだった知識をまとめてみたよ【ネットワーク編③】

学習エントリ。 全体的な知識の底上げをすべく、復習も兼ねてまとめてみる。

ルーティング

IPではヘッダの中の宛先IPアドレスを見て、パケットをどこに配送すればよいかを決めている。 基本的な考え方は「宛先が自分の知り合いであれば直接渡す」「知り合いでなければ隣の人に渡す」で、隣の人に渡しても最終的にパケットが宛先まで届くかはわからない。

ルータ

宛先のIPアドレスをみて、適切な経路にパケットを中継する(ネットワーク層レベルで中継を行う)装置。ルータは複数のネットワーク層に接続されている。また、ルータは経路制御表(ルーティングテーブル)を持っていて、そのとおりにパケットの中継を行う。上記の通り基本的には * ルータ自身が直接接続されているネットワーク宛のパケットは直接配送する。 * それ以外のパケットは隣のルータに渡す。

ルーティング方式とルーティングプロトコル
  • スタティックルーティング:経路制御表を手動で設定する方式。ネットワークが小さい場合は便利。
  • ダイナミックルーティング:経路情報の交換を自動で行い、経路制御表を勝手に作ってくれる方式。ネットワークが大きくなると便利。

ダイナミックルーティングの為のプロトコルが以下の2つ * RIP:経由するルータの台数(=ホップ数)が最も少ない経路を中継する。このアルゴリズムをディスタンスベクタ型という。 * OSPF:ホップ数以外にもネットワークの混雑度、回線速度など、様々な要素を考慮し、トータルのバランスが良い経路を中継する。このアルゴリズムをリンクステート型という。

IPパケットとイーサネットフレーム

アプリケーションは 1. 宛先のIPアドレスを指定し 2. 相手に送りたいデータをOSに渡す 3. OSはこれらの情報を元にIPパケットを作る 4. 作られたIPパケットはイーサネットを使ってルータに届けられる イーサネット上ではIPパケットはイーサネットフレーム形式にしないといけない。なのでIPパケットをイーサネットフレームに箱詰めにする。これをカプセル化という。

LAN間接続装置の分類

TCPトランスポート層)とアプリケーションプロトコル(アプリケーション層)

IPはパケットが最終的に宛先に届いたかどうかを保証しない。それを保証するプロトコルTCP

TCPUDP
  • TCP(Transmission Controll Protocol):コネクションを形成して、信頼性のある通信を実現する為のプロトコル。コネクションを形成すると相手と情報を交換しながら通信を行える。例えばパケットが届いたというレスポンスを相手から受け取れるし、パケットの再送をリクエストすることもできる。
  • UDP(User Datagram Protocol):コネクションを形成せず、信頼性の無い通信を実現するためのプロトコル。相手にパケットを送りつける。送り先は受け取れないこともある。なので相手に届く保証は無い。だけどTCPみたいに面倒な情報交換をお互いに行わないので、たくさんのパケットを送れる→高速に通信が出来る。データの欠落よりもパケットが絶え間なく送られることの方が大事な音声や映像データなどを通信する際に使う。
ポート番号

アプリケーションプロセスと会話をするための窓口。ウェルノウンポートと呼ばれる番号でアプリケーションプロセスは待機している。クライアント側は接続の都度、空いているポートを探してそれを使う。大体IPアドレスのあとに「:」を付けることが一般的。代表的なウェルノウンポートは以下。

アプリケーションプロトコル

アプリケーションがデータのやりとりをする時に使うプロトコル。代表的なのは以下。 * DNSドメイン名とIPアドレスの変換 * HTTP:ウェブサービスの提供 * FTP:ファイル転送 * SMTP:電子メールの転送 * POP3 :PCへの電子メールのダウンロード * IMAP:メールサーバ上でメールを送受信する * SNMP:ネットワーク上の機器を管理し、動作情報を収集する。管理する側(情報を集める側)をマネージャ、ネットワーク上の機器をエージェントという。 * SSH:遠隔ログイン。暗号通信を行うので安全。 * NTP:時間を合わせる(同期させる)

DNS
参考

www.amazon.co.jp

うろ覚えだった知識をまとめてみたよ【ネットワーク編②】

学習エントリ。 全体的な知識の底上げをすべく、復習も兼ねてまとめてみる。

誤り制御

外界からのノイズをしっかり検知し、データが正常に送れているか確かめる、またデータに誤りがある場合はデータを再送するように送信側に指示を出す。これを誤り制御といい、パリティCRCという方法がある。

パリティ

データ中に1が何個有るかを最初に定めることで、誤りの有無を確認する。1のビットが偶数個になるように検査用のビット(=パリティ)を付ける方式を偶数パリティ、逆に奇数個になるようにする方式を奇数パリティという。その他にも水平パリティ、垂直パリティもある。ただ、これらの方法だと複数ビットが誤っている場合(=バースト誤り)にエラーを検出する事ができない。

CRC

パリティと違い、バースト誤りを検出できる。 具体的にはデータを生成多項式と呼ばれる計算式で除算し、誤りがでたかどうかでエラーの有無を確認する

LAN(物理層データリンク層

LAN:建物や敷地内で自前で敷設したネットワークのこと WAN:インターネットや、通信事業者が敷設した都市や国家規模のネットワークのこと

無線LAN

周波数2.4GHz、5GHzの電波を用いる。またアドホックモードとインフラストラクチャモードの2つの運用方式がある。 アドホックモード:機器間で直接通信する運用方式。携帯用ゲーム機器などはそんな感じ。 インフラストラクチャモード:アクセスポイントを設置し、アクセスポイントを介して通信を行う運用方式。PCの接続はこれ。PCをアクセスポイントに接続する際にはESS-IDと呼ばれるグループ識別子を設定する必要がある。

HUB

様々な機器をひとまとめに接続してくれる集線装置。リピータハブとスイッチングハブがある。 リピータハブ:電気的に信号を中継する。有るポートから来た電気信号を、ほかのすべてのポートに伝える。HUBで電気信号を中継することを「物理層レベルで中右傾を行う」という。フレームを送信している時は他のポートは通信できないので、無駄。 スイッチングハブMACアドレスをみて、必要なポートにのみフレームを送信する。すなわち必要なポート以外はまた別に通信が出来る。

アクセス制御手順

フレームを通信回線上に送り出すタイミングを管理する。

CSMA/CD(Carrier Sense Multiple Access with Collision Detection)

イーサネット(有線LAN)でのアクセス制御手順。回線使用中の信号を受け取らない限り、フレームの送信が行える。ただ、複数のノードが回線が空いていると判断してフレームを送ると衝突しちゃう。CSMA/CDは衝突が起きたらフレームの送出を中断する。そんで、しばらくたったらフレームを再送する。この時どのくらい待つかはランダム。

CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)

無線LANでのアクセス制御手順。同じく回線仕様中の信号を受け取らない限り、フレームの送信が行える。ただCSMA/CDとは違い、衝突を回避するように対応する。フレームを送信する前にしばらくまって、他のノードがフレームを送信する気配がないか確かめてからフレームを送出する。

IP(ネットワーク層

IP(Internet Protocol)はデータの配送方法について規定したプロトコル。インターネットではIPを利用して、データを宛先まで配送する。アドレスはIPv6とかIPv4とか。ネットワークとは、ルータで区切られたエリアのこと。

IPパケット

IPというプロトコルはデータをパケット(=データグラム)として宛先まで配送する。パケットにはヘッダがついていて、その中にいろんな制御情報が入っている。例えるならヘッダは荷物をおくる時に荷物にはる送付伝票みたいなもん。

IPアドレスの体系

IPアドレスは対象のホストがどのネットワークに属しているかを表す。32ビットのアドレス。表す時は8ビットごとに区切って、4つの10進数とする。ネットワーク部とホスト部に分かれる。ネットワーク部はどのネットワークに属しているか、ホスト部はそのネットワークのなかのどのホストなのか、を表す。つまり、同じネットワーク内だとネットワーク部はみんな一緒。んで、IPアドレスにはグローバルIPアドレスとプライベートIPアドレスの2つ種類がある。グローバルIPアドレスがインターネット上で利用できる正式なIPアドレスでプライベートIPアドレスはLAN内のIPアドレス

サブネットマスク

IPアドレスの数値だけではどこまでがネットワーク部でどこまでがホスト部かわからない。それをどこまでかを表す値。ネットワーク部に該当する部分を"1" , ホスト部に該当する部分を"0"として値を作る。

特殊なIPアドレス
  • ネットワークアドレス:ホスト部のビットをすべて0にしたもの。ネットワークそのものを表す。
  • ブロードキャストアドレス:ホスト部のビットをすべて"1"にしたアドレス。ネットワーク内のすべてのホストにパケットを送る時に指定するアドレス。
DHCP

DHCPとはIPアドレスを自動的にクライアントに配布する手順。最初からサーバに登録されているIPアドレスのうち、1つをクライアントに貸し出す。クライアントはそのIPアドレスを使い果たすとサーバに返却する。

アドレス変換技術

プライベートIPアドレスグローバルIPアドレスを相互に変換することで、グローバルIPアドレスを持ってない内部ネットワークのPCからもインターネットが利用できるようになる。大きく分けてNATとNAPT(IPマスカレード)がある。 NAT:プライベートIPアドレスグローバルIPアドレスを1対1で変換する。 NAPT:プライベートIPアドレスグローバルIPアドレスを1対多で変換する。つまりひとつのグローバルIPアドレス複数のPCで共有できる。

参考

www.amazon.co.jp

うろ覚えだった知識をまとめてみたよ【ネットワーク編①】

学習エントリ。 全体的な知識の底上げをすべく、復習も兼ねてまとめてみる。

OSI参照モデル

通信を分野ごとにグループ分けしたもの

  • 物理層:伝送を行う上で必要な物理的な電気特性の条件の規定。コネクタの形状やケーブルの電気特性など。
  • データリンク層:隣接ノード間(=ケーブルでつながれた機器の間のこと)の通信を規定する。同期制御、伝送制御手順、アクセス制御手順、誤り制御手順などはここ
  • ネットワーク層:データの中継方法について規定。経路制御(ルーティング)はここ。どの経路を使ってデータを送信するのかを決めるのが経路制御。経路制御を行うものをルータという。
  • トランスポート層:通信品質を高くする方法について規定する。どういった環境でも、一定レベルの通信品質を保てるように調整する。
  • セッション層:アプリケーション間でメッセージのやりとりを迅速に行えるようにする機能について規定。送信権制御や同期制御など。
  • プレゼンテーション層:アプリケーション間でやりとりするメッセージの形式について規定する。
  • アプリケーション層:アプリケーションとやりとりする手順について規定する。
プロトコル

通信規約、通信手順を意味するもの。相手との通信を正しく行えるようにするもの。相手と自分がおなじプロトコルを使用して初めて正しい通信が行える。それぞれのプロトコルは以下。 * ネットワーク層:IP 宛先、送信先ホストの指定 * トランスポート層TCP 宛先、送信先アプリケーション・プログラムの指定 * アプリケーション層 HTTP:Webサービスの提供 FTP:ファイル転送サービスの提供 SMTP:電子メールの配送 SNMP:ネットワーク上の機器の動作情報収集 DNS:ホスト名とIPアドレスの変換

通信技術の基礎

通信方式
  • 半二重方式:送信と受信を交互に切り替えて行う。トランシーバのようなイメージ
  • 全二重方式:送信と受信を交互に行う。電話のようなイメージ
同期制御

正しいデータの送受信は「どこまでがデータのひとかたまりか」を指定する、すなわちデータの始まりと終わりを相手と合わせる必要がある。同期制御ではデータの始まりと終わりに印を付ける。以下の3つの方式が有る。

  • 調歩方式:一文字のはじめと終わりに印を付ける。はじめの印をスタートビット、終わりの印をストップビットという。データを転送していない間はストップビットを送り続ける。文字単位で印を付けるので、文字データの伝送に使われる。
  • キャラクタ同期:調歩方式のようにいちいち文字ごとに印をつけるのは面倒なので複数文字をまとめてブロックとし、ブロックごとに印をつける。この印をSYNコードという。同じく文字データの伝送に使われる。
  • フレーム同期:文字だけでなく任意のビット列(バイナリデータ)の伝送が可能。データの前後にフラグシーケンスという印を付ける。
伝送制御手順

「相手と繋がった?」「相手が受信できる状態にある?」「データが正しく受信された?」「データはすべて受信された?」などの確認を行う為の手順。代表的なものにHDLC手順というものがある。フレーム同期を用いる。インターネットに接続する際に利用するPPP(Point to Point Protocol)はHDLCをものにして作られた。

伝送時間の計算

通信回線の速度はbps(ビット/秒)。一秒間に何ビットのデータを伝送できるかを表す。 例えば80MBのデータを1Mbpsの通信回線で伝送すると10M ✕ 8 /1M = 80秒かかる。加えて伝送効率を考慮する必要もある。実際は回線速度の何%に速度になるのか?を表す。

参考

https://www.amazon.co.jp/%E3%83%8B%E3%83%A5%E3%83%BC%E3%82%B9%E3%83%9A%E3%83%83%E3%82%AF%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88-%E5%9F%BA%E6%9C%AC%E6%83%85%E5%A0%B1%E6%8A%80%E8%A1%93%E8%80%85-%E5%B9%B3%E6%88%9028%E5%B9%B4%E5%BA%A6-%E6%83%85%E5%A0%B1%E5%87%A6%E7%90%86%E6%8A%80%E8%A1%93%E8%80%85%E8%A9%A6%E9%A8%93-TAC%E6%83%85%E5%A0%B1%E5%87%A6%E7%90%86%E8%AC%9B%E5%BA%A7/dp/4813265545www.amazon.co.jp