【ネットワーク】端末情報
ネットワーク上にあるPCやサーバーなどのコンピュータには、
端末情報が割り当てられています。
❏ MACアドレス
MACアドレスとは、Media Access Control addressの略で、
端末の通信規約を特定する情報です。
ハードウェア(通信装置(有線 / 無線))に振り当てられており、
世界中で一意な番号が割り当てられています。
MACアドレスが重複することはありません。
16進数、48ビットで表します。(例:01-23-45-67-89-AB)
❏ IPアドレス
ネットワークの端末を特定する情報です。
インターネット上で一意なアドレスとなっています。
インターネット上で通信相手を間違わないようにするために使用されます。
インターネット上で住所のような役割を担っています🏠
IPv4は、IPの第4版で、
1990年代の後半から広く使われ、現在も引き続き使用されています。
次世代のプロトコルとして注目されています。
表し方は、
IPv4は、10進数、32ビットで表すのに対し、
IPv6は、16進数、128ビットで表します。
❏ ポート番号
端末で動作しているアプリケーションを特定する番号です。
Webサーバーの場合は80となっています。
グローバルIPアドレスとプライベートIPアドレス
グルーバルIPアドレスとは、
インターネットに接続するネットワーク機器が使用できるIPアドレスです。
インターネット上で通信を行うにはグローバルIPアドレスが必要になってきます。
プライベートIPアドレスとは、
組織内のネットワーク(プライベートネットワーク)でのみ使用できるIPアドレスです。
会社内のネットワークや家庭用のネットワークでは通常、
プライベートIPアドレスが使用されています。
インターネット上では使用することが出来ません。
NAT
NATとは、Network Address Translationの略で、
IPアドレスを変換する技術とされています。
プライベートIPアドレスをグローバルIPアドレスに変換する技術とされています。
参考
IPv6・IPv4とは? IPoE・PPPoEとは? その違いを解説 | DTI
IPアドレスとは?をわかりやすく解説します | カゴヤのサーバー研究室
【SQL】SELECT文
SELECT文では、
様々な条件を付加することで、データを柔軟に取り出すことが出来ます。
SELECT文の基本
SELECT文の基本は、
「どのような条件で」
「どの表から」
「どの列を取り出すか」
です。
条件を指定することにより、
データベースから様々なデータを取り出すことが出来ます。
❏ SELECT文の構成
例えば、
以下のような商品表があるとします。
じゃあSELECT文の基本に合わせて
データを実際に取り出してみましょう!
「どのような条件で」→単価が300円以上のもの!
「どの表から」→商品表から!
「どの列を取り出すか」→商品名と単価
これでやってみます。
そうするとこうなります。
求めているデータを取り出すことに成功しました!
SELECT文で表してみると、
SELECT 商品名、単価
FROM 商品表
WHERE 単価>= 300
となります。
もっと詳しくSELECT文について解説していきます。
射影
射影は表の中から特定の列を取り出す関係演算です。
射影を行うには以下のように指定します。
SELECT 商品名 FROM 商品表
選択
選択は表の中から特定の行を取り出す関係演算です。
WHERECT句を使って、取り出したい行の条件を指定します。
SELECT * FROM 商品表 WHERE 単価< 95
論理演算子
複数の条件を組み合わせて抽出する場合な論理演算子を用います。
論理演算子には
AND
OR
NOT
があります。
結合
最後に、
表と表とを結合させる演算子、「結合」です。
以下のように記述します。
SELECT *
FROM 受注表,顧客表
WHERE 受注表.顧客コード=顧客表.顧客コード
FROM句の中にくっつけたい表の名前を羅列して、
WHERE句で「どの列を使ってくっつけるか」の指定をします。
WHERE 受注表.顧客コード=顧客表.顧客コード
の部分の、受注表.顧客コードのような表記は、
「表名.列名」となっています。
表名の列名の間にある「. 」は所属を荒らしており、どの表に属する列であるかということを表現するために用いられています。
【Rails】RESTfulとは
おはようございます。
今日は「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 ルーティングの基礎とRESTful - Qiita
ひとりごと
優雅な紅茶の写真をみると優雅な気分になれますね😌
【Rails】findについて
昨日参加したRails勉強会でfindとfind_byについての理解が全く足りてなかったので、
今日のブログでfindとはなんぞやということをまとめていきたいと思います。
今回の内容としては、
1. findメソッドについて
2. findメソッドとfind_byメソッドの違いについて
の2本柱でお送りします。
findについて
findはmodelの検索機能の1つです。
データベースのテーブルからモデルオブジェクトとして取り出す場合にRailsのfindメソッドを使います。
使い方と具体例
findを使えば、これらのテーブルのid, name, numberを簡単に調べることが出来ます。
それではターミナルで、
「rails console」を使って確認してみましょう。
この画面になるはずです。
短縮形の「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を返します。
❏ ここまでのまとめ
<おまけ >whereについて
whereは与えられた条件に一致するレコードを
すべて返します。
NOT条件
AND条件
OR条件
を使って、自分が求めているレコードを取得することが出来ます。
条件に一致しなかったとき、
ActiveRecord_Relationクラスを返します。
空の配列ではありません。
参考
【ネットワーク】プロトコル
プロトコルとは、
コンピューター同士が通信する際に守らなくてはいけない決まりごとのことです。
代表的なプロトコルと使用例を紹介していきます。
インターネットのプロトコル
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はバージョンという意味です。
更に深く知りたい方は
TCP/IPをわかりやすく - 通信プロトコルの基礎知識を図解で学ぼう - エンジニアHub|Webエンジニアのキャリアを考える!
【システム開発】フレームワーク
システム開発において一番トラブルの原因になるのが、
発注者と受注者の認識の違いです。
意味をとり間違えてしまったり、お互いの認識相違で間違った方向に開発が進んでしまったりすることもあります。
そうならないための取り組みとして、
フレームワークが使用されています。
共通フレーム(Software Life Cycle Process)
共通フレームとは、ソフトウェアの企画、開発、導入、運用、破棄に至るまでのソフトウェアプロセス全体のことをいいます。
共通フレームは、ソフトウェアプロセス全体に関係する全ての人が「同じ言葉を話せる」ように作成されたフレームワーク(共通の枠組み)、つまりガイドラインのようなものです。
発注者と受注者との間でお互いの役割や責任範囲、具体的な業務内容について認識に差異が生じないことを目的に作られています。
CMMI(Capability Maturity Model Integration)
CMMIとは、日本語で能力成熟度モデル統合という意味で、
開発と保守のプロセスを評価、改善するための指標のことです。
組織のプロセス成熟度を客観的に評価することを目的にしています。
成熟度は5段階に分けられています。
画像の引用元 CMMIとは何か?-組織成熟度
参考サイト
【SQL】SQLとは
SQLとは、Structured Query Languageの略で、
データベースを操作するために開発された言語です。
SQLを用いることで、
データの検索、データの登録、削除といったことまでデータベース操作のほとんどをSQLで行うことが出来ます。
SQLには、ISO(国際標準化機構)で定められた標準規約があり、
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の基本ルール
■ 大文字小文字は区別されない
■ 文字列を記述する時はシングルクォーテーションで囲う→ 例:'abc'
■日付を記述する時もシングルクォーテーションで囲う
■ 数値を記述する時は囲まない→ 例:1000
■ 単語は半角スペースか改行で区切る