Output Diary

プログラミング × 読書 のアウトプットを発信しています

【ネットワーク】端末情報

 f:id:kina_kq:20210421073825j:plain

 

ネットワーク上にあるPCやサーバーなどのコンピュータには、

端末情報が割り当てられています。

 

MACアドレス

 

MACアドレスとは、Media Access Control addressの略で、

端末の通信規約を特定する情報です。

 

ハードウェア(通信装置(有線 / 無線))に振り当てられており、

世界中で一意な番号が割り当てられています。

MACアドレスが重複することはありません。

 

16進数48ビットで表します。(例:01-23-45-67-89-AB)

 

IPアドレス

 

ネットワークの端末を特定する情報です。

インターネット上で一意なアドレスとなっています。

 

インターネット上で通信相手を間違わないようにするために使用されます。

インターネット上で住所のような役割を担っています🏠

 

IPv4IPv6があり、

IPv4は、IPの第4版で、

1990年代の後半から広く使われ、現在も引き続き使用されています。

 

IPv6IPv4の進化形で、

次世代のプロトコルとして注目されています。

 

表し方は、

IPv4は、10進数32ビットで表すのに対し、

IPv6は、16進数128ビットで表します。

 

 

❏ ポート番号

 

端末で動作しているアプリケーションを特定する番号です。

 Webサーバーの場合は80となっています。

 

グローバルIPアドレスとプライベートIPアドレス

 

グルーバルIPアドレスとは、

インターネットに接続するネットワーク機器が使用できるIPアドレスです。

インターネット上で通信を行うにはグローバルIPアドレスが必要になってきます。

 

プライベートIPアドレスとは、

組織内のネットワーク(プライベートネットワーク)でのみ使用できるIPアドレスです。

会社内のネットワークや家庭用のネットワークでは通常、

プライベートIPアドレスが使用されています。

 

インターネット上では使用することが出来ません。

 

NAT

 

NATとは、Network Address Translationの略で、

IPアドレスを変換する技術とされています。

 

プライベートIPアドレスグローバルIPアドレスに変換する技術とされています。

 

参考 

MACアドレスとは?

IPv6・IPv4とは? IPoE・PPPoEとは? その違いを解説 | DTI

IPアドレスとは?をわかりやすく解説します | カゴヤのサーバー研究室

グローバルIPアドレスとプライベートIPアドレスって? | IT情報メディア「LIVRA」

NAT( Network Address Translation )とは

【SQL】SELECT文

f:id:kina_kq:20210419082652j:plain

 

SELECT文では、

様々な条件を付加することで、データを柔軟に取り出すことが出来ます。

 

SELECT文の基本

 

SELECT文の基本は、

「どのような条件で」

「どの表から」

「どの列を取り出すか」

です。

 

条件を指定することにより、

データベースから様々なデータを取り出すことが出来ます。

 

❏ SELECT文の構成

f:id:kina_kq:20210419083759j:plain

 

例えば、

以下のような商品表があるとします。

 

f:id:kina_kq:20210419084452p:plain

 

じゃあSELECT文の基本に合わせて

データを実際に取り出してみましょう!

 

「どのような条件で」→単価が300円以上のもの!

「どの表から」→商品表から!

「どの列を取り出すか」→商品名と単価

 

これでやってみます。

 

そうするとこうなります。

f:id:kina_kq:20210419084633p:plain

求めているデータを取り出すことに成功しました!

 

 

 SELECT文で表してみると、

SELECT 商品名、単価 

FROM 商品表

WHERE 単価>= 300

となります。

 

 

もっと詳しくSELECT文について解説していきます。

 

射影

 

射影は表の中から特定の列を取り出す関係演算です。

射影を行うには以下のように指定します。

 

SELECT 商品名 FROM 商品表

f:id:kina_kq:20210419090121j:plain

 

選択

 

選択は表の中から特定の行を取り出す関係演算です。

WHERECT句を使って、取り出したい行の条件を指定します。

 

SELECT * FROM 商品表 WHERE 単価< 95

f:id:kina_kq:20210419090844j:plain

 

 

論理演算子

 

複数の条件を組み合わせて抽出する場合な論理演算子を用います。

 

論理演算子には

AND

OR

NOT 

があります。

 

結合

 

 最後に、

表と表とを結合させる演算子「結合」です。

以下のように記述します。

 

SELECT * 

FROM 受注表,顧客表

WHERE 受注表.顧客コード=顧客表.顧客コード

 

 

FROM句の中にくっつけたい表の名前を羅列して、

WHERE句で「どの列を使ってくっつけるか」の指定をします。

 

f:id:kina_kq:20210419092940j:plain

 

WHERE 受注表.顧客コード=顧客表.顧客コード

の部分の、受注表.顧客コードのような表記は、

「表名.列名」となっています。

 

表名の列名の間にある「. 」は所属を荒らしており、どの表に属する列であるかということを表現するために用いられています。

【Rails】RESTfulとは

f:id:kina_kq:20210418091736j:plain

 

おはようございます。

今日は「RESTful」とは何なのか、それがRailsにどう関与しているか

についてまとめていきます。

 

RESTfulとは

 

RESTfulとは

REST(REpresentational State Transfer)という設計原則に従うシステムのことを指す形容詞です。

 

もう少し分かりやすく言い換えると、RESTとは、

Webの仕組みを利用してWebサービスを提供できるようにするための設計思想(制約)の集まりを指します。

 

 

RESTの設計思想は以下のようになっています。

1.HTTPリクエストはそのリクエストで必要な情報を全て持ち、前のリクエストからの状態が保存されている必要がない(ステートレス)

2.個々の情報(リソース)への「操作」の表現がHTTPメソッドとして統一されている

3.個々の情報(リソース)がそれぞれ一意なURIで表されている

4.ある情報(リソース)から別の情報を参照したい時にはリンクを利用する

 

これらの原則に従って作成されたシステムやAPIのことを

”RESTfulなシステム""RESTfulなAPIと呼びます。

 

Railsは、「RESTful」なシステムを利用し、開発しやすくする機能を提供しています。(例:URLが表す情報のことをリソースと呼ぶなど)

 

 

RESTfulなインターフェースにするメリット

 

なんといっても美しいインターフェースを実現できることです。

他にも、

Railsのレールに乗れる

・URLやHTTPメソッドを何にするかを悩む時間を節約出来る

・URLやHTTPメソッドを何にするかを悩む時間を節約できる

・他の開発者が設計を理解しやすくなる

潜在的に外部のシステムと連携がしやすくなる

など色々な利点が存在します。

 

参考

 

Rails のルーティング - Railsガイド

Rails ルーティングの基礎とRESTful - Qiita

RESTfulって・・・?調べたメモ | めもめも

 

ひとりごと

優雅な紅茶の写真をみると優雅な気分になれますね😌

【Rails】findについて

f:id:kina_kq:20210417080502j:plain

 

昨日参加したRails勉強会でfindfind_byについての理解が全く足りてなかったので、

今日のブログでfindとはなんぞやということをまとめていきたいと思います。

 

今回の内容としては、

1.  findメソッドについて

2.  findメソッドとfind_byメソッドの違いについて

の2本柱でお送りします。

 

findについて

 

findはmodelの検索機能の1つです。

 データベースのテーブルからモデルオブジェクトとして取り出す場合にRailsのfindメソッドを使います。

 

 

使い方と具体例

 

f:id:kina_kq:20210417081358p:plain

 

 findを使えば、これらのテーブルのid, name, numberを簡単に調べることが出来ます。

 

 それではターミナルで、

rails console」を使って確認してみましょう。

 

f:id:kina_kq:20210417081840p:plain

 

この画面になるはずです。

短縮形の「rails c」でもRails コンソールを実行することができます。

 

 

それでは今からfindメソッドを使って調べていきましょう。

findでidを指定します。

 

❍ findメソッドにidカラムを指定する

 

findメソッドにidカラムを指定すると、その値のレコードを取り出すことが出来ます。

 

irb(main):001:0>member = Member.find(3)

・・・

=>#<Member id: 2, Mike: “”, number: 38 >

 という結果が返ってきました。

これによりidが2のレコード情報を取り出すことが出来ました。

 

❍ 属性の取得

 

次に属性を取り出してみます。

nameとnumberを取り出してみましょう。

 

変数memberに対して、カラムと同名の属性を指定すると、

そのカラムの値が返ります。

 

それではやってみます。

irb(main):002:0>member.name

=>”Mike”

irb(main):003:0>member.number

=>38

テーブルで、確かにid2のnameは”Mike”、numberは38ですね。

属性を取得することができました👏👏

 

 

❏findまとめ

findは主キーに対応するレコードを取り出すことができます。

主キーを複数指定することも出来ます。

主キーが見つからない場合、例外が発生します( ActiveRecord::RecordNotFound )。

複数キーを指定し、一方が見つからなかった場合も例外が発生します。

 

 

Rails findとfind_byの違い

findメソッド→引数に取るのはid(属性は取らない)

findメソッド→引数に取るのは属性(idは取らない)

Rails find_byは、与えられたレコードのうち

最初に一致したものだけ返します。

 

条件を複数指定することも出来たり、

主キー以外も検索条件にできます。

 

条件に一致するものがないとき

nilを返します。

 

条件を複数指定し、1つ以上の条件が満たされなかったとき

同様にnilを返します。

 

❏ ここまでのまとめ

 

 

f:id:kina_kq:20210417084607p:plain

 

<おまけ >whereについて

 

whereは与えられた条件に一致するレコードを

すべて返します。

 

NOT条件

AND条件

OR条件

 を使って、自分が求めているレコードを取得することが出来ます。

 

条件に一致しなかったとき、

ActiveRecord_Relationクラスを返します。

空の配列ではありません。

 

 

参考

 

Railsのfindメソッドがすぐ分かる!find_byとの違い…|Udemy メディア

【Rails】find・find_by・whereについてまとめてみた - Qiita

【ネットワーク】プロトコル

f:id:kina_kq:20210416080721j:plain

 

プロトコルとは、

コンピューター同士が通信する際に守らなくてはいけない決まりごとのことです。

 

代表的なプロトコルと使用例を紹介していきます。

 

インターネットのプロトコル

 

HTTP(HyperText Transfer Protocol)Webブラウザがサーバーと通信するとき

HTTPS(HyperText Transfer Protocol over SSL/TLS):HTTPによる通信をより安全に行いたいとき

 

電子メールのプロトコル

 

SMTP(Simple Mail Transfer Protocol):メールを送信するとき

POP(post Office Protocol):メールを受信するとき

IMAP(Internet Message Access Protocol):メールを受信し管理したいとき

MIME(Multipurpose Internet Mail Extensions):メールに画像、ファイルを添付するとき

S/MIME(Secure/Multipurpose Internet Mail Extensions):メールを暗号化するとき

 

ファイルのダウンロードやアップロードするためのプロトコル

 

FTP(File Transfer Protocol):データを転送するとき

 

時刻を同期するためのプロトコル

 

NTP(Network Time Protocol):アクセスログ(通信の記録)の解析を性格に行うために、Webサーバーやデータベースサーバーなどのサーバー間で時刻を一致させるとき

 

データを転送するためのプロトコル

 

TC/IP(Transmission Control Protocol/Internet Protocol):インターネット通信やイントラネット通信において最も利用されている通信プロトコル

 

TCPはもれなく転送を行い、

IPは、目的の相手にデータを転送します。

 

IPはv4とv6があり、v6には通信の暗号化機能が追加されています。

vはバージョンという意味です。

 

更に深く知りたい方は

 

IT用語辞典「プロトコル」

プロトコルとは?初心者でもわかるIT用語解説

TCP/IPをわかりやすく - 通信プロトコルの基礎知識を図解で学ぼう - エンジニアHub|Webエンジニアのキャリアを考える!

インターネットとイントラネットの違いってなに?

【システム開発】フレームワーク

 

f:id:kina_kq:20210415080656j:plain

 

システム開発において一番トラブルの原因になるのが、

発注者と受注者の認識の違いす。

 

意味をとり間違えてしまったり、お互いの認識相違で間違った方向に開発が進んでしまったりすることもあります。

 

そうならないための取り組みとして、

フレームワークが使用されています。

 

共通フレーム(Software Life Cycle Process)

 

共通フレームとは、ソフトウェアの企画、開発、導入、運用、破棄に至るまでのソフトウェアプロセス全体のことをいいます。

 

共通フレームは、ソフトウェアプロセス全体に関係する全ての人が「同じ言葉を話せる」ように作成されたフレームワーク(共通の枠組み)、つまりガイドラインのようなものです。

 

発注者と受注者との間でお互いの役割や責任範囲、具体的な業務内容について認識に差異が生じないことを目的に作られています。

 

CMMI(Capability Maturity Model Integration)

CMMIとは、日本語で能力成熟度モデル統合という意味で、

開発と保守のプロセスを評価、改善するための指標のことです。

組織のプロセス成熟度を客観的に評価することを目的にしています。

 

成熟度は5段階に分けられています。

f:id:kina_kq:20210415082054p:plain

画像の引用元 CMMIとは何か?-組織成熟度

 

参考サイト

IT用語辞典 「共通フレーム」

CMMI(能力成熟度モデル統合)とは - IT用語辞典 e-Words

この1冊で合格! 丸山紀代のITパスポート テキスト&問題集

【SQL】SQLとは

ラップトップ, 携帯電話, テーブル, 電話, Iphone, Macbook, コンピュータ, デバイス

 

SQLとは、Structured Query Languageの略で、

データベースを操作するために開発された言語です。

 

SQLを用いることで、

データの検索、データの登録、削除といったことまでデータベース操作のほとんどをSQLで行うことが出来ます。

 

SQLには、ISO(国際標準化機構)で定められた標準規約があり、

それに準拠したSQL標準SQLと呼びます。

 

SQLの機能

DDL(Data Definition language)

 

DDL(データ定義言語)は、

データを格納する入れ物であるデータベースやテーブルなどを作成したり削除したりします。

 

CREATE:データベースやテーブルなどを作成する

DROP:データベースやテーブルなどを削除する

ALTER:データベースやテーブルなどの構成を変更する

 

DML(Data Manipulation Language)

 

DML(データ操作言語)は、

テーブルの行を検索したり変更したりします。

 

SELECT:テーブルから行を検索する

INSERT:テーブルから新企業を登録する

UPDATE:テーブルの行を更新する

DELETE:テーブルの行を削除する

 

 

DMLが最も使われます。

 

⚪DCL(Data Control language)

 

DCL(データ制御言語)は、

データベースに対して行った変更を確定したり取り消したりします。

RDBMSのユーザーがデータベースにあるものを操作する権限の設定も行います。

 

COMMIT:データベースに対して行った変更を確定する

ROLLBACK:データベースに対して行った変更を取り消す

GRANT:ユーザーに操作の権限を与える

REVOKE:ユーザーから操作の権限を奪う

 

SQLの基本ルール

 

SQL文の最後に「セミコロン)」をつける

■ 大文字小文字は区別されない

■ 文字列を記述する時はシングルクォーテーションで囲う→ 例:'abc'

■日付を記述する時もシングルクォーテーションで囲う

■ 数値を記述する時は囲まない→ 例:1000

■ 単語は半角スペースか改行で区切る