2019-01-01から1年間の記事一覧

正規化ざっくりメモ

第1正規形への変形 繰り返し列の排除。 全ての行の中の全ての列には値が1つずつ入っているべきであり、1つの行の中に値が複数入る列があってはならない 第2正規形への変形 複合主キーの一部への関数従属(部分関数従属)の排除。 関数従属とは ある列の値A…

SQL集計関数のメモ

グループ化してから絞りこむ基本構文 SELECT グループ化の基準列名, 集計関数 FROM テーブル名 WHERE もとの表に対する絞り込み条件 GROUP BY グループ化の基準列名 HAVING 集計結果に対する絞りこみ条件 ORDER BY 並び替え列名 WHERE ... もとの表に対する…

SQL実践入門第10章を読んだ

インデックスの分類 RDBで使われるインデックスは、構造に基づいて分類すると3つに分けられる B-tree(B+tree)インデックス データを木構造で保持する 汎用性の高さから一番よく使われるインデックス 修飾なしでCREATE INDEX文を実行すると、まず全てのDBM…

SQL実践入門第9章を読んだ

全ての問題を必ずしもコーディングで解く必要は無い データモデルがコードを決めるのであって、その逆は無い 間違ったデータモデルをコーディングによって正すことはできない

SQL実践入門第8章を読んだ

この章では、集合志向であるSQLで、手続き型のコードをスマートに書く実装例などが豊富に紹介されていた。 が、他の章に比べて1回読んだだけでは意味もメリットもいまいち理解できなかったので、とりあえずよく理解できなかったところはまた読み直すとして、…

SQL実践入門第7章を読んだ

サブクエリとビューやテーブルの違い、メリット・デメリットを端的にまとめる。 テーブル、ビュー、サブクエリ テーブル 永続的かつデータを保持する ビュー 永続的だがデータを保持しない(ので、アクセスのたびにSELECT文が実行される) サブクエリ 非永続…

SQL実践入門第6章を読んだ

機能から見た結合の種類 どのような種類の結合がどういう動作を行うかの整理。軸となるのは内部結合と外部結合の違い。 結合によって生成される結果を基準に3つのタイプに分類できる(生成結果による分類) クロス結合(cross join) 結合対象となる2つのテー…

SQL実践入門第5章を読んだ

ループ依存症 問題を細かく分割し、レコードという単位にまで落とし込んだ後に、1レコードに対する処理を繰り返すことで問題を解こうとする心理的態度のこと ループ依存症のコード カード明細を表示するために1行ずつ明細にアクセスするSELECT文をループさ…

Real World HTTPの1章2.7「プロキシ」〜2章終わりまで読んだ

プロキシ HTTPなどの通信を中継する仕組み。中継するだけでなく、様々な付加機能が実装されることもある キャッシュ機能を持ったプロキシを組織のネットワークの出入り口に置くことで、コンテンツを置くウェブサーバーの負担を減らし、かつ各ユーザーが高速…

Real World HTTPの2章2.6認証とセッションを読んだ

認証とセッション ユーザ名とパスワードを毎回クライアントから送る方式 BASIC認証 Digest認証 BASIC認証 ユーザ名とパスワードをbase64エンコーディングしたもの 可逆変換なのでサーバーで復元した値をDBと比較して正しいユーザかどうか検証できる SSL/TLS…

Real World HTTPの2章2.5〜2.5.2クッキーに制約を与えるまで読んだ

クッキー クッキーは、ウェブサイトの情報をブラウザ側に保存する仕組みのこと HTTPのヘッダーをインフラとして実装されている HTTPはステートレスを基本に開発されているが、クッキーを使うことであたかもサーバーが状態を保持したステートフルであるかのよ…

Real World HTTPの2章2.1〜2.2を読んだ

2章 HTTP/1.0のセマンティクス:ブラウザの基本機能の裏側 シンタックス 文法 セマンティクス 意味の解釈 HTTPの基本の4要素を再確認 - メソッドとパス - ヘッダー - ボディ - ステータスコード この章では、ブラウザが基本の要素をどのように応用して基本…

Real World HTTPの1章1.5「HTTPの先祖(2)ニュースグループ」〜1章終わりまで読んだ

HTTPの先祖(2)ニュースグループ ニュースグループとは 記事を読んだり投稿する大規模な電子掲示板。今は使われていない ニュースグループの通信に使われていたプロトコルは、NNTP(Network News Transfer Protocol)と呼ばれる HTTPはニュースグループか…

Real World HTTPの第1章1.4 HTTPの先祖(1)を読んだ

HTTP/0.9からHTTP/1.0への道のり HTTP0.9 文書をブラウザからリクエストしてサーバーがデータを返すというウェブ技術の基本骨格はこの時点で完成していたと言える。 しかし、このプロトコルではできないことがいくつか存在した。 HTTP/0.9でできないこと 1つ…

Real World HTTPを読み始めた

HTTPに関する理解を深めるために、渋川よしきさんの「Real World HTTP」を読み始めた。 といっても、まだまえがきを読んだだけなのだが、まえがきにはこの本を通して学べること、また著者の渋川さんが実現したいことがかなり丁寧に書いてあったので、これか…

SQL実践入門第4章を読んだ

今回の章も、第3章と同じ様に、章もまとめを自分の言葉で保管しながら読み進めていく。 集合指向とは SQLの特徴的な考え方で、処理を行単位ではなく行の集合単位でひとまとめにして記述するというもの。 手続き型言語ならばループや分岐を使わなければなら…

SQL実践入門第3章を読んだ

この本は章末にその章のポイントがまとめられているので、そのまとめを自分なりにわかりやすく噛み砕いて説明、要約することが内容の理解にすごく繋がっている気がした。 なので、今回は章末のまとめに対してそれを補完する形でブログを書いてみた。 初心者…

SQL実践入門第2章を読んだ

2章のまとめをやっていく。 postgresqlのインストール macを利用しているので、homebrewを使ってインストールを行った。 また、インストール、初期設定にあたって以下のQiitaを参考にした。 https://qiita.com/_daisuke/items/13996621cf51f835494b 文字コ…

SQL実践入門第1章を読んだ

最近めっきりブログを更新しなくなってしまっていたので、アウトプットのリハビリがてら勉強している本の簡単なまとめを書いて行こうと思います。 DBMSのアーキテクチャ 主な用語 クエリ評価エンジン ユーザから受け取ったSQLの解釈を行い、どのような手順で…

基礎数学メモ

三角関数1 弧度法 弧の長さl、半径r、中心角θ θ = l / r 単位はラジアンだが、通常はわざわざラジアンと書かない(無名数) 360° = 2π 正弦sin 余弦cos 正接tan tanθ = sinθ / cosθ sin2θ + cos2θ = 1 全部単位円で考えると良い 正弦定理 余弦定理 加法定理 …

Effective Ruby第1章まとめ

この記事について Effective Rubyの第1章を読んだので、重要だと思ったところをまとめます。 オブジェクトがnilかもしれない可能性を考える Rubyは型システムの構造上全てのオブジェクトがnilになりうるので、nilにメソッド呼び出ししたりメソッドの引数にn…

Rubyの例外処理復習

この記事について Rubyの例外処理について「プロを目指す人のためのRuby入門」で復習してたので重要だと思ったところをまとめます。 rescue節は例外クラスを指定しなかった場合StandardErrorを継承していない例外クラスを捕捉しない 具体的には、NoMemoryErr…

Pagyの使い方まとめ

この記事について rubygemsのPagyについて調べたことと使い方についてまとめます。 rails上で動作させること前提で記事を書きました。 Pagyとは will-paginateやkaminariと同じページネーションを提供してくれる機能を持つgemです。それらよりも高速でメモリ…

ActiveRecord::Locking::Pessimisticで用意されているメソッドの使い方

この記事について ActiveRecordのモジュールActiveRecord::Locking::Pessimisticについて調べたことと使い方についてまとめます。 Railsのバージョン5系で挙動を確認していて、ドキュメントは5.2.2を参考にしています。 ActiveRecord::Locking::Pessimistic…

最近の学習の反省と修正方針

書く内容について ここ最近(12月〜2月中旬)の学習の進め方の反省と、どう修正していくかをまとめました。 最近学習していること Docker 入門書を読んで、dockerイメージをpullしてきたり、コンテナを立ち上げたりなど基本的な使い方を学習しました。 Linux…