ダウンロードボタン

Zennでのご購入ありがとうございました。

右側の「ダウンロード」ボタンよりダウンロードしてください。

 

 

 

PostgreSQLとMySQL

ここでは、PostgreSQLとMySQLを比較した時、「どういう場合にPostgreSQLを選択するか(またはMySQLを選択するか)」ということについて触れていきたいと思います。

 

 

PostgreSQLとMySQLの類似点

まずPostgreSQLとMySQLの類似点ですが、次のようなことが挙げられます。

まぁここについては基本的なところでしょう。

・RDBMSであること

・SQLが使えること

・JSONが使えること

 

 

PostgreSQLの特徴・利点

MySQLと比べた時、PostgreSQLの特徴は次の点が考えられます。
① パフォーマンスとスケーラビリティの機能がある
② 複数のデータタイプにまたがる広範囲のデータ分析の機能がある
③ MVCC(多版型同時実行制御)により適切な操作と読み取りの同時発生を可能にする
④ 高可用性

 

 

MySQLの特徴・利点

一方MySQLは次の点が考えられます。
① 使いやすく非常に高速(特にWebアプリケーションで使用される)
② 通常、(エンタープライズアプリケーションと同じレベルのパフォーマンスを必要としない)小規模なウェブアプリケーションに使用される
③ 優れたパフォーマンスをもたらす独自のメモリキャッシュ

 

 

つまりどちらを選ぶのか

お互いの特徴を踏まえるとPostgreSQLを選択するケースは次のケースです。
①複雑なクエリや、複数のデータ型を処理する必要がある時
②すぐれた同時実行制御を備えたデータベースが必要な場合
③エンタープライズアプリケーション用のデータベースが必要な場合

 

MySQLを選択するケースは次のケースです。
小規模から中規模のウェブアプリケーション用で、高速かつ使いやすいデータベースが必要な場合

 

以上です。DBMSの選択をする際のご参考になれば幸いです。

時系列データベースとは

時系列データベースとは、時系列データに最適化されたデータベースのことです。

 

時系列データとは、タイムスタンプを持った複数の値の集まです。タイムスタンプは一定間隔で連続的な値をとります。

例:株価データ、気象データ、売上データ、アクセス数など

 

時系列データベースに求められるものとして、「時間に伴う大量のデータを扱うことができる書き込み能力」、「データの分析能力」、「データを効率よく保存する能力」が求められます。

 

 

時系列データベース製品

時系列データベース製品の人気ランキングは次のとおりのなっています(2022年12月時点)。

1.Influx DB(インフラックスDB)

2.Kdb+(ケーディービープラス)

3.Graphite(グラファイト)

4.Prometheus(プロメテウス)

5.TimescaleDB(タイムスケールDB)

 

DB-Engines Ranking - Trend of Time Series DBMS Popularity

 

 

TimescaleDB(タイムスケールDB)

TimescaleDBとは、アメリカのTimescale社が開発している時系列データベースで、PostgreSQLの拡張機能として実装されました。

 

PostgreSQLの拡張として実装されていることにより、次のような特徴があります。

・SQLやPostgreSQL用のアプリケーションがそのまま使用可能

 

・PostgreSQLの安定感・信頼感を享受できる

 

・データ量が増えても安定して高速に書き込みが可能

 

 

TimescaleDBのライセンス

ライセンスTimescaleDBは大部分はApache License2.0というオープンソースのライセンスのため、自由に使用可能です。

 

しかし一部の機能は、Timescale Licenseといったライセンス形式(TimescaleDBをデータベースサービスとして提供しなければ自由に使用可能)のため注意が必要です。なお、個人使用なら自由に使ってよいことになります。

 

 

注意点

TimescaleDBとPostgreSQLのバージョンには対応関係があります。

それぞれの対応にあったバージョンでなければならないため、注意してください。

 

TimescaleDBバージョン

PostgreSQLバージョン
2.5以降 12、13、14
2.4 12、13
2.1、2.2、2.3 11、12、13
2.0 11、12、
1.7 9.6、10、11、12

新機能まとめ

PostgreSQL 15が少し前にリリースされ、Oracleからの移行を考えたOracle互換関数など、個人的に面白いなと感じた機能も追加されていました。そのPostgreSQL 15の新機能や変更点を3つの面でまとめました。

1.SQL機能追加

2.性能改善

3.運用管理

 

 

それぞれについて解説・まとめをしていきます。

※ ここに記載する内容は、ほぼ次の動画を簡易的にまとめたものになります。動画にはここでは取り上げていない非互換の変更点なども紹介されています。是非動画をご参照ください(とても聞きやすくわかりやすい動画でした)。

 

 

 

 

1.SQL機能追加

① SQL構文(MERGE文)が追加されました

SQL標準機能でOracle、SQL Serverにもある構文、MERGE文が追加されました。

 

 

② 論理レプリケーションの機能が追加されました

・ 行フィルタ、列フィルタが可能になりました。

・ スキーマ単位でテーブルを一括指定できるようになりました。(従来はDB単位、テーブル単位のみ)

・ 論理レプリケーションでエラーが発生した際、サブスクリプションを無効にする(同じ原因のエラーが繰り返されログが圧迫するのを防ぐ、エラー原因そのものを解決するわけではない)

 

 

③ 正規表現の関数がたくさん追加されました

元々正規表現の関数群はあったが、Oracleと同じ書き方で書けるという機能が追加されました(Oracleから移植するニーズに対応)。

 

 

④ ビューに属性が追加

ビューに「security_invoker」という属性が追加されました。これによりビューを呼び出したユーザーの権限でビューのSELECT文を実行出来るようになりました。(テーブルに細かな権限設定をしても、ビューを経由されると単一ロールからのアクセスになってしまうと都合が悪いことがあったため)

 

 

2.性能改善

① 外部ソートのアルゴリズムが変更されました

PostgreSQLでソートする際には2つの方式「インメモリソート」「外部ソート」があります。その外部ソートのアルゴリズムが現代的でないという意見から「多層マージソート」から「K-way Mergesort」に変更されました。

インメモリソート…work_memサイズ内のメモリで処理できる場合。アルゴリズム:クイックソート

外部ソート…大規模ソートの場合、一時ファイルを使って実行

 

 

② ウインドウ関数のプランが改善されました

ウインドウ関数のうち、row_number()、rank()、count()で性能向上となりました。

 

 

③ psqlの\copy命令で性能が改善されました

データを1行ずつ送出→複数行をまとめて送出するように変更。得に列の少ないテーブルの「\copy FROM」で効果がある模様。

 

④ Zstandard圧縮をサポートするようになりました

Zstandardは最近の圧縮方式。WAL圧縮と、ベースバックアップに利用できます。

 

 

3.運用管理

① JSON形式のログがサポートされるようになりました。

CSV形式のログに加えて、JSON形式のログが出力できるようになりました。

 

 

② モニタリング用のビュー、関数が追加されました

pg_ident.confのファイル内容を見るビュー(pg_ident_file_mappings)などが追加されました。

 

③ 実行時の統計情報が共有メモリで管理するように変わりました

実行時統計情報(各テーブルの各種アクセス数 等々)は、従来ファイルに書き出していましたが、共有メモ上で管理して高速化に貢献。

 

④ WALのアーカイブ(更新ログ)

WALのアーカイブ処理を行うモジュールを処理可能になりました(従来はコマンドを記述する方式)。

 

⑤ モジュールによるベースバックアップが可能になりました

pg_basebackup(指定サーバーのバイナリバックアップを取得するコマンド)が、今までは実行したところのローカルになっていましたが、サーバー内のディレクトリも指定できるようになりました。

 

新機能まとめ

PostgreSQL13は変更が少なめのメジャーリリースとなっており、非互換が少なくアップグレードしやすいものとなっているようです。

 

以下の点、それぞれについて解説・まとめをしていきます。

1.新機能(SQL)

2.性能向上

3.運用管理

 

※ ここに記載する内容は、ほぼ次の動画を簡易的にまとめたものになります。詳細を知りたい方は、次の動画を是非ご参照ください(とても聞きやすくわかりやすい動画でおすすめです)。

 

 

 

1.SQL機能

・FETCH FIRST … WITH TIE

PostgreSQLでは、データの先頭何行だけを表示するのに「limit句」を使用する方法と、「FETCH FIRST」を使用する方法があります。その「FETCH FIRST」という構文に「WITH TIE」をつけて同じ順位(=タイ)のものも表示するように対応されました。(SQL標準の機能でしたが、PostgreSQLは組み込まれていなかったため今回追加となりました。)

 

・JSON Pathのdatetime()メソッド追加

JSON Pathとは、JSONのデータ型に対して中身を検索したり、加工できる機能です。今回、datetime()というJSON PATHの中で使えるメソッドが追加されました。datetime()を使用することで、日付時刻データを文字列ではなく、ちゃんと日付時刻として評価できるようになりました。

 

・パーティションテーブル関連の各種拡張

・ロジカルレプリケーション(テーブル単位でレプリケーションをする機能)にパーティションテーブルが追加されました。

・パーティションテーブル同士の結合が改良されました。

・パーティションテーブルに行単位のBEFOREトリガが対応されました。

 

 

2.性能向上

・Btreeインデックスの性能向上

インデックスのデータ格納時、以前までは同じ値でも複数エントリー(=複数の格納場所)に格納していました。今回からは、同じキー値の値の場合は、1つのエントリーだけに保存されることになり、格納サイズが減る反面、処理オーバーヘッドが(若干)増えるようになりました。ただし、重複排除が効かない条件が一部のあります。この機能はデフォルトでONとなっていますが、CREATE INDEX時に明示的にOFFにすることも可能。

 

・インクリメンタルソートが追加

データを並び替える際の新しいアルゴリズムが追加されました。クエリを投げる時、従来まではすでにソートキーでソートされている物も改めてソートしなおし実行していましたが、今回からはすでにソートされているキーは考慮した上で(再度ソートすることなく)実行できるようになりました。デフォルトでON。

 

・ストレージハッシュ集約が追加

ハッシュ集約の方法について、従来まではGroupAggregateとHashAggregateという二つの方法がありました。今回、その2つの中間くらいに位置したものが1つ追加され全部で3つとなりました。

 

 

3.運用管理機能

・並列VACUUM機能の追加

テーブルに対してバキュームを行った場合、テーブル+そのインデックスに対してバキューム処理が行われます。並列バキュームではテーブル+その各インデックスに対して並列でバキューム処理が行われるようになりました。

 

・進捗レポート対応拡張

従来ではVACUUM、CLUSTER、VACUUM FULL、CREATE INDEX、REINDEXに対して、「SQL実行している処理がどこまで進んでいるか」というのをビューで見ることができていました。その進捗で見る項目にpg_basebackup、ANALYZEコマンドが追加されました。

 

・接続認証の拡張

・クライアント側でチャンネルバインディングが必須に指定できるようになりました。チャンネルバインディング中間者攻撃を防ぐ機能です。

・SSL/TLSのプロトコルのバージョンを最小でいくつ、最大でいくつと指定できるようになりました。

・クライアント証明書のパスワードの指定ができるようになりました

 

・pgbenchの拡張

・パーティションテーブルの生成が可能になりました。

・サーバー側でデータが作成できるようになりました。

・データ生成時にフェース毎にどれだけ時間がかかったか表示できるようになりました。

 

・pg_rewindの改良(レプリケーション時の巻き戻し機能)

・クラッシュリカバリが自動で実行されるようになりました。

・ソースサーバーに追随するスタンバイの設定を自動で作成するようになりました。

・WALアーカイブ適用

 

・pg_verifybackupコマンドの追加

新しい運用管理コマンド(バックアップデータを検証する機能)が追加されました。

 

・その他の運用コマンド拡張

・reindexdbコマンドに--jobs対応(複数並列が可能に)

・pg_dumpが外部テーブルに含まれるデータも内容をダンプに入ることができるようになりました。

・EXTENSIONにtrustedなという概念が加わりました。

新機能まとめ

PostgreSQL 14の新機能や変更点を4つの面でまとめました。

1.性能向上

2.新機能(SQL)

3.運用管理

4.その他

 

それぞれについて解説・まとめをしていきます。

※ ここに記載する内容は、ほぼ次の動画を簡易的にまとめたものになります。詳細を知りたい方は、次の動画を是非ご参照ください(とてもわかりやすい動画でした)。

 

 

 

 

1.性能向上

まず性能の向上面について。

 

① Btree Indexの改善

PostgreSQLは追記型のデータベースのため、更新を繰り返すとデータ量が肥大化していきます。これはテーブル本体だけでなく、インデックスも同様です。そのインデックスの更新時に不要なデータを整理する処理が入り、データの肥大化を防ぐことができるようになりました。

SRA OSS - 「PostgreSQL 14 新機能検証結果報告

 

 

② 式の拡張統計という機能が追加

PostgreSQLは、プランナの統計情報(このテーブルにはこんな情報が入っているよ)を参考にSQLの実行方法を決めています。そして、その統計情報に「こういう情報も取っておいてください」と追加できる「CREATE STATISTICS」という命令があり、そこに「式に関する統計情報」を追加できるようになりました。

 

通常、WHERE文に式が書かれている場合、プランナは式の結果がどうなるかはわからないので、プランナ音行数予測というものはあてにならない。そのため、「この箇所は正確に行数予測しよいプランを作ってほしい」という場合に使うものとなっています。

 

 

③ LZ4によるデータ圧縮技術

PostgreSQLでは可変長データは、暗黙的にデータ圧縮がされています(1レコード2KB超の場合)。そのアルゴリズムは「pglz」というものが採用されていますが、「LZ4」という圧縮アルゴリズムも選択可能になりました。列単位で設定可能。

※設定値は「default_toast_compression」

 

SRA OSSの検証結果によると「2つの圧縮どちらも大差はない」とのことです。検索速度としては「lz4」が良い、圧縮率としては「pglz」がよいと出ましたが、大きな差はなかった様子。またデータ形式によっては、結果もこうなるとは言い切れないとのことです。

 

 

④ postgres_fdw改善

外部テーブルに対して、3つの機能(外部テーブルのTRUNCATE、外部テーブルの非同期スキャン、外部テーブルの一括挿入)が追加されました。外部テーブルというのは、他のデータベースのテーブルを、自分のデータベースのテーブルかのように扱うものです。

 

 

⑤ ロジカルレプリケーション改善

いくつかの機能が追加されました。

従来ロジカルレプリケーション(行、テーブル単位)では、コミット実行後に相手側に情報が送られるという挙動でしたが、「ストリーム送信」というコミット前に送出しSUB側に蓄積、コミットを受けて適用するという流れにすることができるようになりました。その他、初期同期トランザクションの巨大化を防ぐために複数トランザクションにする、バイナリ転送モード(性能向上目的)が可能などが挙げられます。

 

 

⑥ パラレルクエリ改善

パラレルシーケンシャルスキャン(=大きなシーケンシャルスキャンを複数のパラレルワーカーに分けて処理をすること)が、従来1ブロックずつ処理していたものを、複数ブロックずつ処理するように変更されました。その他、これまでパラレル対応していなかった部分が対応されました(RETURN QUERY、REFRESH MATERIALIZED VIEW)。

 

 

2.新機能(SQL)

① マルチ範囲型

データ型に「マルチ範囲型」が増えました。範囲型は前からありましたが、それが複数連なったイメージです。範囲型同様にGiSTインデックスが使用できます。

 

 

② SEARCH / CYCLE句

WITH RECURSIVE構文(CTE再起問合せ)に、新しいオプションが加わりました。1.幅優先探索/深さ優先探索を指定できるようになる、2.循環参照の検出ができるようになる、また循環参照での検索停止ができるようになりました、3.再起検索の経路データを自分で作らなくてもよくなりました。※動画にSQL実例あり

 

 

③ 添え字構文

添え字構文が配列にしか使えなかったが、hstore型、jsonb型でも使用可能になりました。

 

 

3.運用管理

① セッション制御機能

セッション制御機能がいくつか追加されました。1つ目として、長期のアイドルセッションを切断できるようになりました(パラメータ:idle_sesson_timeout)。2つ目にクライアント側の切断を早期検知できるようになりました。従来では重いSQLをクライアントが実行し、結果が返ってくる前にクライアント側のプロセスが終了・切断した場合、サーバーは時間のかかるSQLを実行しそれを返そうとした時にエラーを演出していていました(ここでようやく知ることができていた)が、機能が有効になっていると、サーバー側でSQL実行中でもクライアントの切断を検出して、SQL実行を中断することが可能になります。

 

 

②新システムロール

新しいシステムロールが追加されました。
・ pg_read_all_data   …  全てのデータを参照だけできる
・ pg_write_all_data  …  全てのデータを更新だけできる
・ pg_database_owner …  暗黙に現在のデータベース所有者をメンバとしているロール

※「pg_write_all_data」だけ付与するというより、「pg_read_all_data」とセットにし、Read/Writeを付与するための要素として「pg_write_all_data」があると考えると理解しやすいでしょう。

 

 

③ 実行時統計情報の追加

実行時統計情報がいくつか追加されました

・ pg_stat_progress_copyビュー  … copyコマンドの進捗状況が確認できる

・ pg_stat_walビュー       … WAL書き出し情報

・ pg_stat_replication_slotsビュー … ロジカルレプリケーションの統計情報

 

 

④ pg_amcheckコマンドの追加

テーブル、インデックスの内部データ構造を検査し、データが壊れていないかを調べるコマンドです。ここで検査するのは論理的なデータの整合性が正しいか(リンクが正しいかなど)を確認することであり、値自体が変わっている等のチェックには使えません。

 

 

⑤ pg_rewind拡張

pg_rewindコマンドが拡張されました。pg_rewindとは「walを巻き戻すツール」です。レプリケーションを行ったりクラッシュでリカバリをすると、WAL(Write Ahead Log)を適用するということを行います(プライマリのWALをスタンバイに適用することでデータを同じにする)。その適用したものを元にもどすのがpg_rewindです。従来ではスタンバイをターゲットにした巻き戻しに対応していなませんでしたが、今回から対応可能になりました。

 

 

4.その他(互換性で注意すること)

・pg_hba.confの「clientcert=1」という記法が廃止

・V2プロトコル廃止(プロトコル:クライアントとサーバーの通信プロトコル)

・後置単項演算子(こうちたんこうえんざんし)の廃止

・EXTRACTの戻り値がfloat8型(浮動小数点)からnumeric型に・pg_standby廃止

VLCメディアプレイヤーの進む、戻るの秒数を変更する

VLCメディアプレイヤーでキーボードの「→」、「←」を押したときに、デフォルトであれば10秒進む・10秒戻るとなっていますが、この秒数を変更する手順する手順を紹介します。

 

 

変更手順

① VLCメディアプレイヤーを開き、上部メニュー>ツール>設定

 

 

② 左下の「設定の表示」を「すべて」に変更する

 

 

③ 左のメニューで「ホットキー設定」を選択 > 右下の「ジャンプする長さ」で「少し戻ったり、進んだりする長さ」の秒数を変更し、右下の保存を押す。※画面は5秒に変更

 

手順は以上となります。

 

 

ちなみに、上の「ジャンプする長さ」の違いは、ショートカットキーの違いです。

ほんの少し戻ったり、進んだりする長さ … Shift + → 、 Shift + ←

少し戻ったり、進んだりする長さ … → 、 ←

戻ったり、進んだりする長さ … Ctrl + → 、 Ctrl + ←

かなり戻ったり、進んだりする長さ … Ctrl + Alt + → 、 Ctrl + Alt + ←

 

履歴書・職務経歴書への書き方

G検定の履歴書・職務経歴書への書き方です。※E検定は読み替えをお願いします。

 

■履歴書

①令和X年 XX月 G検定(一般社団法人日本ディープラーニング協会)

②令和X年 XX月 一般社団法人日本ディープラーニング協会 G検定

③令和X年 XX月 JDLA Deep Learning for GENERAL 20XX #X

 

■職務経歴書

①G検定(20XX年XX月)

②一般社団法人日本ディープラーニング協会 G検定(20XX年XX月)

③JDLA Deep Learning for GENERAL 20XX #X(20XX年XX月)

 

 

私は両方②にしました(これでツッコミはなかったです)。

 

正しく書くなら、「JDLA Deep Learning for GENERAL 20XX #X」のような書き方が良いと思いますが、ぱっとわかる②の方が見た目が良いと思ったので。※名称よりも、「この資格はどんな資格なのか」「なぜこれを取得しようと思ったのか」の答えは用意しておきましょう。

 

あと、G検定は有効期限が設定されていませんのでご安心を。

 

※ どんな資格なのか?⇒JDLAのサイトにはこうありました。

『ディープラーニングの基礎知識を有し、適切な活用方針を決定して、事業活用する能力や知識を有しているかを検定する』

 

G検定を受けての感想とこれから受ける人へのアドバイス

こちらも見て頂けるとうれしいです。

 

 

基本情報技術者試験の変更点まとめ

基本情報技術者試験の通年試験化に関して、現行との違い等をまとめました。

新しい方式での試験は2023年4月から開始する予定のためご注意ください。

 

■変更点まとめ

・試験が随時受験できるようなる(今までは一定期間中のみ)

・午前試験免除制度は継続科目A試験免除制度という名前に)

・午前問題は問題数減+時間も短縮されるが、問題内容の変更はなし

・午後問題が情報セキュリティ、データ構造及びアルゴリズム(擬似言語)の二つの分野を中心にした構成に変更される

個別プログラム言語(C、Java、Python、アセンブラ言語、表計算ソフト)による出題がなくなり、普遍的・本質的なプログラミング的思考力を問う擬似言語による出題に統一さ

 

シラバス変更箇所表示版(P9)の抜粋

 

■問題数と解答時間

今まで 2023年4月~

午前(名前:午前試験)

80問 150分(113秒/問)

午前(名前:科目A試験)

60問 90分(90秒/問)

午後(名前:午後試験)

11問中5問解答 150分

※選択問題あり

午後(名前:科目B試験)

20問中20問解答 100分

※全問必須

 

■試験の配点及び基準点

ずっと100点満点だと思っていたが1000点満点だったらしい。

まぁ6割必要と思っておいて下さい。

※ 問題ごとの配点割合については、解答結果から評価点を算出する方式のため、具体的に問○が何点ということは明示されていません。

 

 

サンプル問題の解説

新しい出題方法になるにあたり、IPAのサイト(下部にリンクあります)にサンプル問題が掲載されました。

サンプル問題の解説を作成しましたので是非参考にして下さい。かなりの長文にもなってしまったのでEXCELファイルで公開します。

 

 

IPAサイト

IPAの通年試験化に関する公表サイト載せておきます。(具体的に知りたい場合はこちらを参照)

https://www.jitec.ipa.go.jp/1_00topic/topic_20220425.html

エンジニア向けの技術書を紹介します

新人エンジニアからベテランまで、幅広い方に有益な書籍を厳選しました。

高い書籍も多いですが、自己投資としても損はしないと思います。

 

※当サイトは、アフィリエイト広告を利用しています

 

SQL実践入門 高速でわかりやすいクエリの書き方

初心者から中級者まで、SQLの基礎から実践的な応用までを幅広くカバーした入門書。SQLを学ぶ上で最も重要なことは、データベースの設計とクエリの最適化です。本書では、それらを実践的に学ぶことができるよう、豊富なサンプルコードと視覚的な図解を用いて、わかりやすく解説しています。さらに、SQLのパフォーマンスを向上させるためのチューニングのポイントも詳しく解説しています。初学者からエキスパートまで、幅広い読者層におすすめの一冊。

SQL実践入門 高速でわかりやすいクエリの書き方

 

 

SQLアンチパターン

SQLのプログラミングにおける陥りやすい間違いや、非効率なコードなど、一般的な「アンチパターン」を紹介する書籍。多くの開発者が陥る「アンチパターン」を避けることで、効率的かつ正確なクエリの書き方を身につけることができます。本書では、具体的なコード例や図解を用いて、アンチパターンがどのように起こり、その対処法や正しいコーディング方法を解説しています。また、実際に生産環境で遭遇する可能性のある問題についても取り上げ、開発者がより良いクエリの書き方を学ぶための指針を提供しています。SQLプログラミングの初心者から上級者まで、幅広い層におすすめの一冊です。

 

 

達人に学ぶSQL徹底指南書 初級者で終わりたくないあなたへ

SQLの初心者から中級者までを対象に、SQLの基本から実践的なクエリの書き方まで徹底的に解説した書籍です。データベースの基本から、集計関数やサブクエリなどの高度なテクニックまで、幅広い内容を網羅しています。また、実際に生産環境で遭遇する可能性のある問題についても解説しており、実践的なスキルを身につけることができます。さらに、本書では、SQLの実装例を通して、プログラムを組み立てる際のテクニックやコツを伝授しています。初心者から中級者まで、SQLについて学びたい方におすすめの一冊。

達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ

 

 

失敗から学ぶRDBの正しい歩き方

RDBの設計・運用における失敗例を紹介し、どのように設計するべきだったのかを解説した書籍です。実際に経験した失敗例を挙げることで、RDBの設計や運用においてどのような点に注意すべきか、どのような問題が発生する可能性があるかを明確に示しています。また、失敗例から得られる教訓を元に、正しいRDBの設計や運用方法についても解説しています。例えば、パフォーマンスの低下や冗長性の低下などの問題を回避するための方法や、適切なインデックスの設計方法などが紹介されています。RDBの設計・運用において、失敗を経験してしまった方や、そのリスクを回避したい方におすすめの一冊。

失敗から学ぶRDBの正しい歩き方

 

 

ビッグデータ分析・活用のためのSQLレシピ

ビッグデータの処理や分析には、専用のプログラミング言語やツールが必要とされがちですが、本書ではSQLを使ったアプローチを提案し、実際にビッグデータの処理・分析を行うための手順を解説しています。具体的には、データの前処理、集計や集約処理、時系列データの分析、機械学習による分析など、ビッグデータを扱う上で必要な様々なテクニックを紹介しています。また、実践的なコード例や図解を多数掲載しており、初心者から上級者まで、SQLを活用したビッグデータ分析・活用について学びたい方におすすめの一冊。

ビッグデータ分析・活用のためのSQLレシピ

 

 

この一冊で全部わかるサーバーの基本

ビジネスシステムを構築する上で欠かせないサーバーについて、初心者でも理解しやすいように丁寧に解説しています。サーバーの役割や構成要素、基本的な設定方法から、Webサーバーやデータベースサーバー、メールサーバーなど、用途に応じたサーバーの概要や設定方法、運用上のポイントについても詳しく説明しています。また、クラウドサーバーの基本についても解説しており、最新の動向やトレンドにも触れています。初めてサーバーを扱う方や、サーバーの基本を復習したい方におすすめの一冊です。

この一冊で全部わかるサーバーの基本

 

 

1冊ですべて身につくHTML & CSSとWebデザイン入門講座

Webページの制作に必要な技術やツール、デザインの基礎を学ぶことができます。初心者でも理解しやすいように、イラストや図解を多用し、簡潔でわかりやすい文章で解説しています。HTMLの基礎から、実際にWebページを作成していく中で、CSSの基本的な使い方を学びます。その後、Webページのデザインに必要な色彩やレイアウト、フォント、画像などについても詳しく解説し、実際にサイトを制作する上でのポイントやテクニックを身につけることができます。また、最新のWebデザインの動向についても触れており、デザインの幅を広げたい方にもおすすめ。

1冊ですべて身につくHTML & CSSとWebデザイン入門講座

 

 

なるほどデザイン 目で見て楽しむデザインの本

身の回りのさまざまなデザインについて、見る角度や視点を変えることで、そのデザインがどのように作られているかを楽しく学ぶことができる本です。テキストやイラスト、写真を交えながら、デザインの基本や背景、歴史的背景、工夫されたポイントなどを解説しています。本書で扱うデザインは、ロゴやポスター、パッケージ、建築、広告など、幅広い分野にわたります。それぞれのデザインに対して、見る角度や視点を変えることで、新たな発見や気づきを得ることができます。デザインに興味がある方や、デザインを楽しみたい方におすすめの一冊です。

なるほどデザイン 目で見て楽しむデザインの本

 

 

図解まるわかり アルゴリズムのしくみ

アルゴリズムというものがどのように動作するかを、わかりやすい図解とともに解説する入門書です。アルゴリズムとは、問題を解決するための手順や手法のことで、コンピュータプログラムや機械学習などに広く利用されています。アルゴリズムの基礎概念から代表的なものまで、図解を使ってわかりやすく解説しています。アルゴリズムの実装方法やプログラミング言語による違いについても触れています。プログラミング初心者から上級者まで、アルゴリズムの基礎から理解を深めたい方におすすめの一冊です。

図解まるわかり アルゴリズムのしくみ – 2021/12/13

 

 

現場で役立つシステム設計の原則

本書では、システム設計に必要な基礎知識から、設計の原則やベストプラクティス、設計のパターンまで、幅広いテーマを扱っています。具体的には、ユーザーインターフェイスの設計、データベース設計、オブジェクト指向設計、アプリケーションアーキテクチャの設計などを解説しています。また、実践的なノウハウや注意点、失敗例についても紹介しており、初心者から経験豊富な開発者まで役立つ情報が満載です。本書を読むことで、より良いシステム設計を行うための知識とスキルを身につけることができます。

現場で役立つシステム設計の原則 変更を楽で安全にするオブジェクト指向の実践技法

 

 

体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践

本書では、脆弱性が発生する原理とその解決方法を、一つひとつ丁寧に説明しています。また、具体的な攻撃手法についても解説し、実際の攻撃シナリオを想定した対策を学ぶことができます。さらに、セキュリティテストの実施方法や、脆弱性を発見した場合の対処法についても詳しく解説しています。本書を読めば、Webアプリケーションの開発におけるセキュリティリスクを理解し、脆弱性を最小限に抑えた安全なアプリケーションを開発するための基礎知識やスキルを身につけることができます。

体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践

 

 

Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識~

Linuxの仕組みを実験や図解を交えながら詳しく解説した書籍です。本書では、Linuxカーネルの内部構造や、ファイルシステム、プロセス管理、ネットワーク、デバイスドライバなどの仕組みについて、基礎的なところから詳しく解説しています。また、Linuxがどのようにハードウェアと連携して動作するかについても解説し、Linuxにおけるハードウェアの扱い方を理解することができます。さらに、本書ではLinuxのシステムコールやプログラム開発についても解説しており、Linuxシステムの構築やカスタマイズに役立つ情報を提供しています。

Linuxのしくみ~実験と図解で学ぶOSとハードウェアの基礎知識

 

 

退屈なことはPythonにやらせよう

本書では、Webスクレイピング、Excel操作、PDFの自動処理、データベース連携など、Pythonを使った自動化の実例を多数紹介しています。初心者でも理解しやすいように、実際のコードやスクリーンショットを多数掲載しており、手を動かしながら学ぶことができます。また、本書ではPythonの基本的な構文やライブラリの使い方についても解説しており、Pythonの初心者でも扱いやすい内容になっています。Pythonを使って作業の効率化を実現したい方や、Pythonを学びたい方におすすめの一冊。

退屈なことはPythonにやらせよう

 

 

人工知能は人間を超えるか

本書では、AIの基礎知識から始まり、深層学習、強化学習、自然言語処理、画像認識、ロボット工学など、AIの様々な分野について詳しく解説しています。プログラミング要素はないため、誰でも読める入門にはもってこいの書籍です。

人工知能は人間を超えるか ディープラーニングの先にあるもの [ 松尾 豊 ]

 

 

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

本書では、ニューラルネットワークの基礎から始まり、畳み込みニューラルネットワーク、再帰型ニューラルネットワークなど、Deep Learningの代表的なモデルについて、Pythonのコードを用いて詳しく解説しています。また、本書では、機械学習に必要な数学的な知識も丁寧に説明されているため、初学者にもわかりやすい構成になっています。さらに、著者が提供するオンライン上のコードリポジトリを活用すれば、実際のコードを試すことができます。Deep Learningの理論と実装を体系的に学ぶことができるため、機械学習の専門家を目指す人や、興味を持っている人にとって、非常に役立つ一冊となっています。

ゼロから作るDeep Learning Pythonで学ぶディープラーニングの理論と実装

 

 

Docker/Kubernetes 実践コンテナ開発入門

Dockerによるコンテナのビルド・実行・デプロイの基本から始まり、Kubernetesによるコンテナの自動化、スケーリング、ロードバランシングなど、実際の現場で使える手法についても詳しく説明されています。また、本書では、DockerやKubernetesに関連するツールやサービスの使い方も紹介されており、実践的な開発に必要な知識を網羅しています。さらに、本書では、実際に手を動かしてコンテナを構築するためのサンプルコードや演習問題も提供されているため、初学者にもわかりやすい構成になっています。

Docker/Kubernetes 実践コンテナ開発入門

 

 

古いが「良書」なもの

Webを支える技術 HTTP、URI、HTML、そしてREST

。WebサービスやWebアプリケーションを開発する際に必要な基礎知識を網羅しています。本書では、Webに関する基礎知識から始まり、HTTPプロトコルやURI、HTMLの仕組みについて詳しく説明されています。また、RESTに関する基本的な概念や設計原則についても解説されており、Webサービスの開発に必要な知識を習得することができます。

Webを支える技術 HTTP、URI、HTML、そしてREST

 

プロになるためのWeb技術入門

Web開発の初学者から中級者まで幅広い層に向けて、Webエンジニアに必要な技術を網羅した入門書です。HTMLやCSSの基礎から始まり、JavaScriptやHTTP、Webフレームワーク、データベースの設計まで、Webアプリケーションを開発するために必要な知識やスキルが網羅されています。また、実践的な例題や演習問題が豊富に用意されており、読者自身が手を動かしながら理解を深めることができます。

 

 

Amazon Web Services 基礎からのネットワーク&サーバー構築

AWSを利用したネットワークやサーバーの構築を学ぶための入門書です。AWSの概要や基本的な使い方から始まり、仮想サーバーの作成やネットワーク設定、データベースの構築など、AWSでのサーバー構築に必要な知識とスキルを網羅しています。また、実践的な例題や手順書を通じて、読者自身が実践的なネットワークやサーバーの構築を行いながら、AWSの使い方を身につけることができます。AWSを初めて利用する方や、AWSのネットワークやサーバー構築に興味がある方におすすめの一冊です。

Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂3版

 

 

リーダブルコード  - より良いコードを書くためのシンプルで実践的なテクニック

コードの可読性を向上させるための具体的な手法を紹介する書籍です。例えば、命名規則の統一やコメントの書き方、関数やクラスの設計、条件分岐のネストの浅くし方など、コードを書く上で常に意識すべきポイントが詳細に解説されています。また、実際のコード例を用いた解説により、読みやすく、メンテナンスしやすいコードを書くための具体的な技術を身に付けることができます。

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック

 

 

オブジェクト指向でなぜつくるのか

プログラミングにおいてオブジェクト指向を採用することで、保守性や拡張性の高いコードを書くことができるようになります。しかし、オブジェクト指向の概念や設計に慣れていない人にとっては、どのように実践すれば良いのかわからないことが多いです。本書では、オブジェクト指向の設計に必要な基礎知識から、実際のプログラミングにおいてどのようにオブジェクト指向を実践すればよいのか、具体例を交えて解説しています。また、オブジェクト指向を導入することで得られる利点や、注意点についても説明しています。プログラミング初心者から経験豊富なプログラマーまで、オブジェクト指向をより深く理解し、より良いコードを書くためのヒントを得られる一冊です。

オブジェクト指向でなぜつくるのか 第3版 知っておきたいOOP、設計、アジャイル開発の基礎知識

 

 

テスト駆動開発

テスト駆動開発とは、開発者がテストコードを先に書き、その後に実装コードを書いていくことで、より品質の高いソフトウェアを開発する手法です。この書籍は、そのテスト駆動開発について詳しく解説し、具体的な手順やツールを紹介しています。初めてテスト駆動開発に取り組む人でも、実践的なプログラミングスキルを身につけることができる一冊です。また、テスト駆動開発の考え方自体が新しいものではないため、従来の開発手法からの転換を考えている人にも、役立つ内容となっています。