読者です 読者をやめる 読者になる 読者になる

Compte-rendu de l'étude

年間目標の進捗記録用ブログ。

05-004...3層クライアントサーバシステム

問題

2層クライアントサーバシステムと比較した3層クライアントサーバシステムの特徴として、適切なものはどれか。

 

  1. クライアント側で業務処理専用のミドルウェアを採用しているので、業務処理の追加・変更などがしやすい。
  2. クライアント側で業務処理を行い、サーバ側ではデータベース処理に特化できるので、ハードウェア構成の自由度も高く、拡張性に優れている。
  3. クライアント側の端末には、管理が容易で入出力のGUI処理だけを扱うシンクライアントを使用することができる。
  4. クライアントとサーバ間でSQLがやり取りされるので、データ伝送量をネットワークに合わせて最小化できる。

 (平成27年度秋、午前問題、問13)

解説

クライアントサーバシステムとは。

情報を発信するサーバと、情報を受け取り操作するクライアント

ネットワークで結んだシステム。

 

かつて、今のクライアントに値する「ターミナル」端末は

単純な入出力のみを扱うマシンでしかなかったのに対し、

クライアントは独立したコンピュータなので、受け取った情報を扱い、

複雑な処理や表示をすることが可能になった。

後述の3階層と比較すると、クライアントとサーバの2階層からなるシステム

と考えることが出来る。

 

3層クライアントサーバシステムとは、このクライアントサーバシステムをさらに

 

  • プレゼンテーション層
  • アプリケーション層
  • データ層

の3階層に分割して構築したものである。

 

どんな利点があるか

まず、2階層の場合は、業務システムの処理が全てクライアント側にあり

変更する場合にはクライアント側のソフトを丸ごと配置し直す必要があった。

そこで以下のように役割を分担することにした。

 

  • プレゼンテーション層(ユーザインターフェース
  • アプリケーション層(ビジネスロジック
  • データ層(データベース

業務処理(ビジネスロジック)を行う部分をクライアントから

分離させ、サーバ側に配置することで、クライアント側では

ユーザインターフェース部分のみを扱えばいいことになる。

 

こうすることで、GUI処理だけを扱うシンクライアント*1を使用できたり、

大量のデータを扱うシステムでもネットワーク上をやりとりする

必要が無くなるなど、管理が簡略化し拡張性が向上する。

 

使われる技術

ちなみに、3層それぞれで使われる技術には主に以下のようなものがある

 

 

雑感

理屈は分かったけど、実際自分が普段触れている業務に当てはめると

どうなるのかってところまでは、まだ。 

 

【所要時間1.5h】←縮めたい。

 

*1:Thin = "薄い、少ない" クライアント。

05-003...整列アルゴリズム

問題

整列アルゴリズムの一つであるクイックソートの記述として、適切なものはどれか。

 

  1. 対象集合から基準となる要素を選び、これよりも大きい要素の集合と小さい要素の集合に分割する。この操作を繰り返すことによって、整列を行う。
  2. 対象集合から最も小さい要素を順次取り出して、整列を行う。
  3. 対象集合から要素を順次取り出し、それまでに取り出した要素の集合に順序関係を保つよう挿入して、整列を行う。
  4. 隣り合う要素を比較し、逆順であれば交換して、整列を行う。

 (平成27年度秋、午前問題、問7)

解説

クイックソートは、対象データから基準になる要素を一つ選んで、それより大きい要素と小さい要素で分け、その中からまた一つ選んで、また大小に分け・・・と繰り返すことによってデータを整列する方法。

 

その他の選択肢

2.は選択ソート

遅いけど実装が簡単なのでよく使われる。これの改良版がヒープソート

 

3.は挿入ソート

これも遅いけど実装が簡単。改良版はシェルソート

マジアカの並べ替え問題でやる感じっぽいので何となく遅そうなのは分かる

 

4.はバブルソート

これも遅いけど、、、どれ見てもこう書いてある。

派生形のヒープソートシェルソートに比べて原始的なアルゴリズムなのか。

 

ヒープソート

選択ソートを、木構造を作ることで効率アップさせたもの。

 

シェルソート

バブルソートと挿入ソートの合わせ技で効率アップさせたもの。

 

 

雑感

数学に関しては数Ⅰに足がかかったところで授業が終わった中卒なので

logとか出てくるともう、自分の学歴をちょっと恨んでしまう笑

 

問題文が見づらいので、ア~エだった選択肢を、インデントしてくれる番号リストにしました。

05-002...線形リストとデータ構造

問題

ポインタを用いた線形リストの特徴のうち、適切なものはどれか。

 

ア.先頭の要素を根としたn分木で、先頭以外の要素は全て先頭の要素の子である。

イ.配列を用いた場合と比較して、2分探索を効率的に行うことが可能である。

ウ.ポインタから次の要素を求めるためにハッシュ関数を用いる。

エ.ポインタによって指定されている要素の後ろに、新たな要素を追加する計算量は、要素の個数や位置によらず一定である。

 (平成27年度秋、午前問題、問5)

解説

線形リストとは、データ構造のひとつ。

 

データ構造とは、データの集まりを効率よく使用するにはどのように格納すべきか? という手法のいろいろ。他には配列や木構造などがあり、手法それぞれに用途に合わせた得手不得手がある。

 

線形リストは、セル(cell)を直列に繋いで作る。このセルには「データを格納する」場所と「次のセルを指し示す」場所(ポインタ)とを含んでいる。

 

 どうもこれのイメージ

ブルボン キュービィロップ 112g×10個

ブルボン キュービィロップ 112g×10個

 

 

 

さて、線形リストに新しい要素を追加するには、

  1. 新しい要素のポインタに前の要素のポインタの内容を設定
  2. 前の要素のポインタに新しい要素のアドレスを設定

すればよく、要素の個数や位置に関係なく一定の計算量を得ることが出来る。

 

 その他の選択肢

ア.は木構造に関する説明であり、リストにはこのような枝分かれはない。

 

イ.の2分探索とは探索アルゴリズムの一つで、「全体の真ん中を調べて、ハズレなら左右を比較してまたその真ん中を調べて・・・」と繰り返す探索方法なので、先頭からポインタで辿る線形リストには向いていない。配列の方が効率的。

 

ウ.ハッシュ関数とは・・・

あるデータが与えられた場合にそのデータを代表する数値を得る操作、

>または、その様な数値を得るための関数のこと

ハッシュ関数 - Wikipedia

なんとなく分かるような気もするけど説明出来ず。

ハッシュドポテトとかハッシュドビーフの【hash】細切れ(にする)。なるほど?

とりあえず、線形リストではポインタに次の要素のアドレスが書いてあるので他に何か使う必要はない。

 

 

雑感

どこまで詳しく調べるか区切りを決めないと

果てなきWikipediaツアーが始まってしまうことに気づく・・・。

1問あたり30分以内にしよう。

進捗01~09まとめ(随時更新)

進捗状況の簡単な一覧です。気がついたときに随時更新。

01 - SQL関数

進捗   : 0種類

期間   : 通年

最高評価 : 16種類以上の習得

02 - ナゼナゼ分析

進捗   : 未着手

期間   : 2017年2月~3月

最高評価 : フィードバックを元にした改良

03 - Androidアプリ

進捗   : 未着手

期間   : 2016年11月 ~ 2017年1月

最高評価 : スケジュール機能、通知機能の実装

04 - スケジュール管理と分析

実行レベル : 管理方法の確立へ向けた試行

期間    : 2017年7月

最高評価  : 上記月間での予実差分が50%以内。

05 - 基本情報技術者試験

進捗   : 1問

期間   : 通年

最高評価 : 週14問=658問

06 - Oracleブロンズマスター

進捗   : 0章

期間   : 通年

最高評価 : 2.1章以上

07 - 勉強会・セミナー

参加数  : 0回

期間   : 通年

最高評価 : 7回以上

08 - 良いところ探し

実行レベル : 未着手

期間    : 通年

最高評価  : 交流企画が自分から出来たら

09 - 姿勢を正す

指摘回数 : 0回

期間   : 通年

最高評価 : 平均1回/月=11回未満

 

 

※更新日 2016年10月10日

05-001...2進数→10進数変換

問題

問:10進数の演算式7÷32の結果を2進数で表したものはどれか。

 

ア.0.1001011

イ.0.001101

ウ.0.00111

エ.0.0111

 (平成27年度秋、午前問題、問1)

 

解説

10進少数から2進少数への変換を問う問題。

計算式に一瞬惑わされるが、これは単純にただ計算すればよく、その結果を出してから2進数に変換する。

変換方法は、

1)10進数の小数部に2を掛け、

2)その結果の小数部にまた2を掛け・・・を小数部が0になるまで繰り返し

3)各結果の整数部分を並べたものが2進数となる。

 

解法

7÷32 = 0.21875          --普通に割り算する

 

0.21875 ×2 = 0.4375  --2を掛ける

0.4375 ×2 = 0.875      --答えにさらに2を掛ける

0.875 ×2 = 1.75          --整数部が1になったときも

0.75 ×2 = 1.5              --小数部だけを取り出すことに注意

0.5 ×2 = 1.0                --小数部が0になったので終了

 

→0.00111                   --小数部に各結果の整数部を上から並べる

 

注意点

・×2の商が1以上になっても、次に割るのは小数部だけであること。

・割り切った後、並べるのは小数部からであること。

 (最初の0を整数部にしない。)

 

雑感

基本なんですが、「10→2」か「2→10」かで迷いやすいので。

 

あとブログデザインをちょっといじってゆるふわにしました。ゆるふわ~

見やすければ別になんでもいいのですが、ピンクはなんとなく目と気持ちに優しい感じがします。

【目標メモ】09 - 姿勢を正す

目標メモ

作業ミスや効率低下を防ぎ、他者からの印象を良くするため

在席時・離席時ともに机上を整頓された状態に保つ。

また肘をついたり背中を丸めたり等の崩した姿勢で作業をしない。

 

評価者からの指摘が平均月1回未満なら最高評価。

平均週3日以上なら最低評価。

 

意気込み

これはもう、猫背を意識して治すために目標設定の機会を使ったようなものです。

段階評価のしようがないので、隣席の人に何か出来ていなければ指摘してくださるようお願いしたのですが、人の姿勢とかを急に指摘するって難しいですよねー・・・。

 

これもここではあまり使わないかと思います。

でも忘れず意識するために、他と同列に掲げてはおきます。

【目標メモ】08 - 良いところ探し

目標メモ

自社全社員の真似したい優れた点を各人から見出し

手本とすると共に、部署内外での社員交流の切っ掛けとする。

 

実施内容を目的とした交流の機会を設けることが出来れば最高評価。

半分以下の社員しか観察出来なければ最低評価。

 

意気込み

これはまあ、ローカルで管理ですかねw

進捗感とかやったことだけでも何か残せれば。