「中高年のためのプログラミング教室」の教科書にもなっている
「図解 50代からのプログラミング」高橋与志著 リックテレコム刊 から、特にご好評いただいているエッセンスをご紹介いたします!
ITビジネスやプログラミングの全体像とセカンドキャリアへの活かし方が同時にわかる本ですので、是非お手元に1冊ご用意ください。
(1)データ構造について
このコラムでは、データには様々な構造があることと、その保管場所であるデータベースの種類について解説します。また、気になる最新技術として、Amazon Web Services(AWS)の概要をご紹介します。
データ構造
ここで言う「データ構造」とは、様々なタイプのデータを、効率良く管理する仕組みのことです。
データを順番に並べたり、種類ごとに整理する場面をイメージしてみてください。また、データ同士の関連性やつながりを表す場合もあります。以下に代表的なデータ構造をいくつかご紹介します。
① 配列構造

データを順番に並べて整理する構造です。配列は第3章にも出てきましたが、数字付きのつながった箱、またはトレイをイメージするとわかりやすいでしょう。
② 連想配列構造

箱の名前が文字で、右図のように、箱の名前(キー)に対して値(バリュー)がセットで存在する構造を「連想配列」と呼びます。例えば「ケーキ」という箱の名前(キー)に対して「モンブラン」という値(バリュー)が対応しています。データを指定する際、
数字の順番に一つ一つの箱を探していく必要がなく、直接箱の名前を指定すればよいので、データを取り出すのが早い、という特長があります。
③ ツリー構造

上位から下位へ向かって、データが木のように枝分かれして行くので「ツリー構造(木構造)」と呼びます。データに上位/下位の概念があるので「階層型」とも呼ばれます。会社の組織図のようなイメージです。
④ ネットワーク構造

ツリー構造と同様に、データ間のつながりは線で表されるのですが、データ同士のつながりが閉じている場合を「ネットワーク構造」と呼びます。SNS上の友達のつながりのようなイメージです。
このネットワーク構造には、Facebookの友達関係のように向きのないものと、Twitterのフォローとフォロワーのように、向きのあるものとがあります。
ツリー構造やネットワーク構造のように、線と点で表されるデータ構造全般を「グラフ構造」と呼びます。
(2)データベースについて
様々なデータ構造をもつデータを、効率よく保管するための場所として考案されたのが「データベース(DB)」です。第4章では冷蔵庫に喩えました。
保管したいデータの構造に応じて、いくつもの種類のDB が考案され、利用されています。
オーダーメードカリキュラム診断
あなたのなりたい姿から逆算して
あなただけの学習プランを診断します。
簡単3分で完了!
伝統的なデータベース
① リレーショナルデータベース(RDB)

行と列からなる表のような形で、データの関係性をわかりやすく表現できることが特長です。RDBを操作するための言語「SQL」を使うことで、ユーザーは簡便にデータにアクセスできます。データベースと言えばRDBを指すと言えるほど、最も広く用いら
れているデータベースです。代表的なRDBとして、オープンソースのMySQL等がよく知られています。
ビッグデータと新しいデータベース
TwitterやFacebook等のSNSが発展し、GoogleやAmazonのようなサービスが世界規模で拡大し、世界中の人々が利用するようになった結果、求められるデータ処理の方法が多様化しました(大量のデータ処理、より素早いデータ処理、複雑なデータ構造への対応など)。
そこで、従来のRDBとは異なるデータベースがいくつも開発されています。
これらは「従来のSQL言語で扱うRDB以外のもの」(Not Only SQL)という意味を込めて「NoSQLデータベース」と呼ばれます。
ここで言う「No」という言葉はRDBにとってかわるもの、という意味ではありません。
RDBとNoSQLデータベースは今後もそれぞれの得意な領域で棲み分けつつ、共存していく関係にあることに注意しましょう。
NoSQLデータベースは、しっかりと構造化された複数の表からなるRDBとは異なり、「複数のサーバーに分散して拡張するのが容易」という特長があります。この特長を生かして所謂ビッグデータを迅速に扱うことができるのです。
以下に代表的なNoSQLのデータベースをいくつかご紹介します。
② キー・バリュー型(KVS)

データの種類(キー)と値(バリュー)を一対のものとして管理する形式です。
キー: ケーキ、バリュー: モンブラン
のような関係です。データが追加されるごとに、行が一行づつ追加されていくイメージです。
③ ドキュメント指向型

ある書式でデータを記述したドキュメント(文書)としてデータを管理するモデルです。
JSONやXMLなど自由度の高いドキュメントを扱うMongoDBなどが知られています。
④ グラフ型

SNSのようなネットワーク型のデータを、要素間の多様な関係性を含めて管理するのに適しています。
(3)AWSについて
Amazon Web Services(AWS)
AWSは元々AmazonがECサイト等の自社サービス用に運用していたサーバーのシステムを、2006 年に公開したものです。現在クラウドサービスで圧倒的なシェアを占めています。
AWSはIT業界に破壊的イノベーションをもたらしました。そのインパクトは、サーバー等のハードウェアをクラウド上で「仮想化」し、インフラを「物理的な管理」から解放した点にあります。
その結果以下のような利点が生まれました。
① スペックと台数の容易な変更が可能
仮想化のおかげで、ブラウザから操作・設定するだけで、自由に規模を拡大縮小したり、別の仕様や機能を持つサービスを追加でき、サーバーの保守業務等が容易になりました。「DB容量やらリソースの上限を常に意識しなくてはならない」という開発エンジニアの悩みを解消し、熱烈に支持されています。
② 自動化
仮想化はさらに、システムの運用管理を、プログラムによって自動化できるようにしました。
スケール(容量)の増減、障害復旧やアラートの発信など、人の管理がほとんど不要なシステムが作りやすくなりました。
③ セッティングするスピードの早さ

必要なときに、必要なだけ、低価格でITリソースを素早く設定することができるようになり、結果として、トータルのコストも抑えられるようになりました。
機能面では、以下の特長がAWSにはあります。
1) ウェブサーバー、データベース、ストレージなどの、ウェブサービス構築に必要な基本機能について、多様な選択肢から最適な組合わせを選ぶだけで、素早く構築できます。
2) 初期費用がほとんどかからず、従量課金で使った分だけ料金を払えばよく、また、安定したパフォーマンスを低コストで運営できるよう、自動で性能を調整する機能(Auto Scaling)もついています。
3) Amazonの全世界での運用実績に支えられた、高いセキュリティレベルが保証されています。
4) ブロックチェーン、IoT、機械学習などの最新技術のサービスも使用可能であり、ウェブサービスに関しては「AWSでできないことはない」と言っても過言ではありません。