2024/8/29(木)part② 本日のお題 ⇒ 【mvコマンドとは】 【suコマンドとは】 【whoamiコマンドとは】 【chownコマンドとは】 【useraddコマンドとは】
~フローチャートの話が長くなったのでpart2に行きます~
【mvコマンドとは】
--------------------------------------------------------------------------
「mv」は、ファイルやディレクトリを移動したり、リネームしたりするコマンドです。「mv ファイル 移動先ディレクトリ」とすると、ファイルが指定したディレクトリに移動されます。異動先にファイル名を指定した場合は、「ファイルからファイルへの移動=リネーム」となります。この場合、既存のファイルを指定すると「上書き」となります。
-----------------------------------------------------------------------------
≪個人的な感想≫
ファイルやディレクトリを移動させたいときに使うコマンドみたいですね。
GUIであれば、ドラッグアンドドロップだったり右クリック→切り取りで指定の場所に張り付けをすれば移動できたりするんですけど
この作業をLinux環境のターミナルでやる場合はmvコマンドということなんですね。
取引先とのミーティングで画面共有してた時に相手方がサラッとmvコマンド使ってたのをみて
「何してんだこの人、、、」
ってなってたのでスッキリしてよかったです。
【suコマンドとは】
------------------------------------------------------------------------
「su」コマンドは使用するユーザーを切り替えるときに使用します。
「su」コマンドに引数を指定しないで実行すると、スーパーユーザー(root権限)に切り替えることができます。
スーパーユーザー(root権限)とは、Linuxにおける管理者権限のことで、ファイルシステムのパーミッションの変更や他ユーザーの権限を変更できるなど、Linuxにおけるすべての操作が可能となります。
------------------------------------------------------------------
≪個人的な感想≫
suコマンドってスーパーユーザーのrootになれるコマンドかと思ってたら
(上司の作業見てるとrootになるときぐらいしか使ってなかったイメージなので)
実は、ユーザーを切り替えるコマンドで
[引数をしていない場合]ときにrootになるっていうことを知ってこんなん調べんと一生知らんやろなって思って調べてよかったです笑
過去に、「root」については調べてブログにアップした気がするんですけど「suコマンド」は記憶になかったので今回調べることにしました。
【whoamiコマンドとは】
------------------------------------------------------------------------
「whoami」コマンドは
ログインしているユーザのユーザIDを取得するときに使うコマンド
です。
UNIX系(LinuxとかMacとか)及びWindows系で使えます。
------------------------------------------------------------------
≪個人的な感想≫
今ログインしているユーザー名を確認するコマンドですね。
自分の認識とも一致していたのでよかったです。
でもLinuxもWindowsも画面左側にユーザー名って常に表示されてなかったっけ?
とは思ったんですけど、勘違いかな笑
【chownコマンドとは】(恐らくchange ownerの略)
------------------------------------------------------------------------
「chown」コマンドはファイルやディレクトリのユーザーやグループの所有権を変更するためのコマンドです。
------------------------------------------------------------------------
ユーザーとグループの理解度を上げるために別で説明されていたので一緒に掲載させて
もらいます
------------------------------------------------------------------------
ユーザーとは
そもそもユーザーの所有権とは、ファイルへの読み込みや書き込み、プログラムの実行などをどのユーザーが可能であるか明確にするために識別されます。
ユーザーの所有権はそのファイルやディレクトリを作成したユーザーのIDによって割り当てられます。
グループとは
グループとは複数のユーザーをまとめて管理するためのものです。
通常Linuxは複数のユーザーがリモートでログインして使用するため、複数のユーザーをグループでひとまとめにして管理します。
-----------------------------------------------------------------
≪個人的な感想≫
少し前に[chmodコマンド]について調べたことがあったので、今回の[chownコマンド]は意外とすんなりと理解できました。
要はファイルやディクトリを閲覧・書き込み・実行できる権限がある人っていうのは事前に決めることができて
その権限がある人を変更しようっていうのがchownコマンドっていうイメージです。
今回のコマンドは前提としてchmodコマンドを理解していないと
chownコマンドを理解するのは難しいかもしれないと思いましたー。
【useraddコマンドとは】
------------------------------------------------------------------------
「useradd」コマンドはLinuxで使用するユーザーを追加するときに使用します。
Linuxでは1台の端末で複数のユーザーがリモートでログインして使用することが多く、管理者や開発者によってそれぞれユーザーを割り当てて使用する場合もあります。
そのため、使用するユーザーを追加するために「useradd」コマンドでユーザー登録を行う機会はよくあります。
------------------------------------------------------------------------
≪個人的な感想≫
これもコマンド名だけ見て「user(ユーザー)」を「add(追加)」するんだろうなってイメージできていたので、しっかりイメージ通りのコマンドで良かったです。
2024/8/29(木)part➀ 本日のお題 ⇒ 【フローチャートとは】
【フローチャートとは】
-------------------------------------------------------------------------
フローチャート(flowchart)とは、プログラムの流れを設計するための図解術です。
別名「流れ図」とも呼ばれており、直感的に理解しやすい構造をしています。
プログラマーやSE教育の場では必ず習う重要なものです。
------------------------------------------------------------------------
≪独り言コーナー≫
そもそもなんでフローチャートという言葉の意味を調べることになったかというと
javaのプログラムを解析する作業をしているときにあんまり作業の進みが良くなくて上司から、
「恐らくkaichi1111さんはjavaの基本的な文法の知識は持ち合わせていると思うんだけど
他にもjavaをを使う上で大事なことがあって、例えば
であったり
・どうやったら分かりやすい綺麗なソースコードが記述できるか
みたいな考え方の部分がかなり弱いという風に感じたので、そこを今後鍛えていく必要があるね」
という風に指摘を受けまして、
「足りない部分の能力を鍛える為に、今度作業が終わって暇な時間にやって欲しい課題があるんだけど」
と言われていただいた課題が
[ソートのアルゴリズムのうちの
の内容を自分でプログラミングして作ってみる]
で、プログラミングする前にやる作業として
➀フローチャートを自分で書く
②どうゆうクラスを作るか・どうゆうメソッを使うか考える
ただし、条件が合って
・サンプルコードはもちろん使用NG
・使いたいメソッドや使いたい機能があるメソッドがあるかどうか調べることはしてもOK
という課題をもらいました。
(先に言うと案件の作業が忙しくなってやる暇がなかったので、後日上司からは今度家で自分でやってみて!って言われたので今度暇な時間を見つけてやってみたいと思います。)
という流れがあって、フローチャートという言葉に出会うことになりました。
実は課題をいただいたその日だけ唯一スキマ時間があったので少しフローチャートの作成に取り組んでいたのですが、これまた難しいのなんの、、、
頭の中では
「結局こうゆうことがしたいんだから、こうすればいいんだろ?」
ってな感じで理解していても、実際に言葉に起こしてフローチャートを作ってみると
全くできない、、、これ俺だけなんかな、、、
やってみて思ったのが、
◎このクラスやメソッドはそもそもどうゆう意図で作られたのか(何のためにこれを作ったのか)
っていうことを考える力が弱すぎるなと思いました。
(多分この能力があればフローチャート作成はマッハのスピードで終わってる)
ソースコードをパッと見たときに見た目上の処理は理解できたとしても
これがなんのためにこうゆう処理をしているのかみたいな考えに至らない辺りが自分が指摘された能力の低さなのかなと思いました。
まあでも確かに考えてみたら、javaの研修はほとんど
・教科書読んでわからないところは聞く
・サンプルコードを書く
みたいなインプットの研修ばっかでアウトプットの研修はほとんどなかったので能力ないのは当たり前だよな。。。
自分なんかはプログラミングはおろか、IT業界のこともろくにしらないままこの業界にきたので(まあまあ終わってる)
まずは[教科書を読んで知識を身に付けること]をして徐々にプログラミングの考え方や知識を身に付けていくことだったり
[サンプルコードを書く]作業でコードを模写してみて、開発環境(研修はeclipse)に慣れたり、英文字が羅列されている画面に慣れて免疫をつけたりするところから始まったので
個人的には超初心者の入りとしてはとても良かったので、全然研修に不満はないっす!!笑
むしろ、この研修でなければ最後までついていけたかどうかそもそも怪しい(まあ今回の研修も別についていけていたわけではないんですけど、心が折れるほどついていけなかったわけではないので耐えたみたいな話はある)
と、まあ話はそれましたがやっぱり自分がこなさないといけないとても大事な課題なと思いました。(近々時間を見つけてやってみたいと思います!)
2024/8/28(水)本日のお題 ⇒ 【Javadocとは】
【Javadocとは】
---------------------------------------------------------------
Javadocとは?
Javadocは簡単に説明すると、Java言語のソースコードから「プログラムについて説明するドキュメント」を生成する仕組みです。
Javadoc用のコメントを記述すると、作ったプログラムに対するドキュメントをソースコードに埋め込んでくれます。
---------------------------------------------------------
≪独り言コーナー≫
Javadocはjavaのソースコードを解析する作業を貰ってて、上司から作業の説明されているときに出てきた言葉で
最初の認識としては、「javaの特定の機能とか調べるサイト」っていうなんかようわからん認識をしていたが
調べてみたら全く内容違っててなんでそんな認識をしたのか自分でも恥ずかしい、、、
(そもそもお題に挙げて調べてる今までのIT用語で内容がほぼおうてたこと一度もないけど)
Javadocは理解するのに結構時間がかかって色んなサイト回ったけど、下記に載せてる参照サイトが一番しっくりきました。
自分の理解した内容だと
「自分の今作っているプログラムの内容を簡単に資料形式でまとめてくれる便利なもの」
という理解で
資料を生成してくれる条件として
・Javadoc用のコメントを記述する
ことが条件
ということで頭の中にインプットしてます。
これ正直言葉で説明されてもイメージが全くわかんから、参照サイトを見たり自分で調べてみたりして
「資料が生成されるっていうけど、中身はどんな資料なの??」
とか
「Javadoc用のコメントってなに??」
みたいなところは自分で調べるとイメージがグッと沸くと思いました。
2024/8/27(火)本日のお題 ⇒ 【implementsについて】 【コネクションとセッションの違い】
【implementsについて】
-------------------------------------------------------------------
interfaceは、抽象メソッドと呼ばれる、メソッドの仕様(戻り値とメソッド名、引数)のみを定義したものです。
実際の処理を持たない、ちょっと変わったクラスのようなものです。
implementsしているクラスはinterfaceに定義されているメソッドを実装しているクラスですよ、と指定することになります。
interfaceを導入する=仕様と実装の分離、といわれます。
仕様は約束事です。
約束通りの使い方をすると約束通りの結果を得られる事をあらかじめ定めておけば、
そのメソッドを使う側は実際の作りを気にしなくて済みますし、そのメソッドを作る
側は仕様さえ守っていればいつでも好きなように実装を変えることができます。
-------------------------------------------------------------------
≪個人的な感想≫
implementsってinterfaceを実装するやつなんだよなーって認識しかなくて
そもそもinterfaceってなに??とかなんで実装するの??
みたいなところから理解を深めていく必要があるなと感じたので色々調べてました。
まずinterfaceのコード上での働きに関しては何となく理解できました。
interfaceでは好きな数だけ抽象メソッドを定義して、使いたいクラスでimplementsを使って実装することで
そのクラスで抽象メソッドの中身を定義することで使用することができる
(interfaceで作成した抽象メソッドは全て定義しなければならないのがルール)
ってとこまではわかったけど、
そもそも「なんでinterfaceを作って、抽象メソッドを定義した後にクラスに実装するの??」みたいな話は
説明してくれている記事はたくさんあったけど、何度読んでもあんまりピンと来なくて困りました。
なんか言いたいことはわからないこともないけど、イメージが湧かな過ぎて腑に落ちないのがしんどい。
【コネクションとセッションの違い】
-------------------------------------------------------------------
- コネクション : 1対1の通信を行うときのデータ伝送路。データ送受信が終われば開放される
- セッション : ログインしてからログアウトするまでの一連の流れ。ログアウトしたら開放される
-----------------------------------------------------------------
≪独り言≫
なんでこの二つの違いが気になったのか全く覚えてないんだけど、
恐らくなにかの作業をしていて、この二つの言葉に同時に出逢うことがあったんだと思う。
で、そもそも[コネクション]と[セッション]は名前が違うだけでほとんど同じ意味っていう認識が心のどこかにあったから
この二つの言葉が全く違う意味として一緒に出てきたときにびっくりしたから気になってメモしたんやないかなと思います。
自分の案件の作業ではあまり聞いたことがなくて意識することもなかったんだけど、対面に座っている人の案件の作業ではよく出てくるフレーズで、
対面の方がよく上司に質問しているのを小耳にはさんだときとかに「お、またコネクションとかセッションとか使っているな」っていう印象ぐらいでしかなかったので、
あまり気にもしなかったけど、IT業界でエンジニアとして働くならとても大事なフレーズだと思うのでしっかり覚えておこうと思います。
≪ちなみに≫
【データベースのコネクション】についてもわからなくてメモしていたのですが、
コネクションとセッションを一度調べてしまえば特段難しい話でもなく
データベースの[コネクション]と[セッション]の話っていうだけで、
主語の部分が変わってもコネクションとセッションの意味が変わることはないと思います。
2024/8/26(月)本日のお題 ⇒ 【tarコマンドについて(Linux)】【jarファイルとは】【ファイルの拡張子とは】【javaのpackageとは】【javaのimport文とは】【javaのextendsとは】
【tarコマンドについて(Linux)】
------------------------------------------------------------------------
tarコマンドとは
Linuxでは、複数のファイルをまとめて1つのアーカイブファイルとして作成するには「tar」コマンドを使用します。
「tar」コマンドで作成されたアーカイブは拡張子「.tar」として書庫化されて、ファイルの圧縮はされずに1つのファイルをまとめて管理することを目的としています。
圧縮するには「zip」コマンドや後述する拡張子「.tar.gz」形式で行う方法があります。
-----------------------------------------------------------------------
[個人的な感想]
最初tarコマンドはファイルを圧縮・展開するコマンドなんだなって思ってて、
実際オプションをつければそうゆうこともできるから認識自体は間違ってはなさそうやけど
そもそものtarコマンドの主たる目的(機能)は
複数のファイルをまとめて一つのアーカイブという箱にまとめる
ということであって、圧縮・展開に関してはそこについてくるオプション機能(使いたいなら使っていいよ)みたいな感じだった
≪参照≫
【jarファイルとは】
------------------------------------------------------------------------------
jarファイルとは
jarファイルは、「Java Archive」ファイルの略称で、「アーカイブ」つまりJava開発で利用するファイルをまとめて保管しているファイルということになります。
具体的には、jarファイルはコンパイル済みのclassファイルや画像などのファイルを、zip形式に圧縮してまとめたファイルです。
jarファイルはなぜ利用される?
Javaのシステム開発では、いくつものファイルが組み合わさることでシステムとして稼働するように構築していきます。
全てのファイルを1つにまとめると容量が非常に大きくなってしまうことも少なくありません。
ファイルを圧縮して1つのファイルにまとめることで、大幅に容量の節約が可能となります。
さらに、jarファイルはzip形式のファイルと異なり、jarファイルの状態で使用することが出来るメリットがあります。
zip形式のような解凍作業は不要で、利便性が高くなっている点もjarファイルが利用される要因です。
----------------------------------------------------------------------------
[個人的な感想]
jarファイルっていうのはjavaのソースコードを書いたファイル等を圧縮したファイルってことなのか。
しかもzip形式と異なり、解凍不要で使用できる点はかなり熱いですね。
javaの研修等々で見かけたことは度々あったけど
なんのことやらさっぱりわからない状態だったのでスッキリしました。
≪参照≫
【ファイルの拡張子とは】
--------------------------------------------------------------------------------
拡張子とは
拡張子とは、ファイルの種類を示す文字列のことです。
テキストや画像、音声、動画など、ファイルの種類によって使われる拡張子は異なります。
拡張子の役割を理解することで、ファイルの種類の識別や使用するソフトウェアの判断、異なるOSでの互換性の確保などに役立つでしょう。
-------------------------------------------------------------------------------
[個人的な感想]
ファイルの種類を表す文字列のことね、なるほどなるほど。
なんとなーくそんなイメージはあったけど、改めて調べてみると認識が凄いクリアになりました。
これから実務をしていくうえで、頻繁に使う拡張子の名前ぐらいは無意識レベルで理解して仕事できるレベルまでもっていきたいです。
(最近テキストファイルの拡張子が「.txt」だということを覚えたぐらいなので。)
正直意識してファイルの語尾についている拡張子の種類なんてみたことなかったので、
今まではメモ帳のアイコンがあればそれがテキストファイルぐらいの認識しかなかったのですが
これからはGUI環境じゃなくてCUI環境での作業も増えていくことを考えると
頻繁に使うものぐらいは覚えておくと、多少は業務の負担が減りそうだと思いました。
【javaのpackageとは】
---------------------------------------------------------------------------------
packageとは
パッケージ(package)はクラスやインターフェースをグループ化して分ける仕組みです。
Javaでプログラミングをするとたくさんのクラスを作ることはよくあります。たくさんのクラスを作ると同じクラス名を付けることはできません。
しかし、グループ化して分けてさえいれば、同じクラス名を付けていても問題は発生しなくなります。また、同じ機能や関連するクラスをグループ化して分けていることで、クラスも検索し易くなり修正や改良する際に探す手間も省くことができます。
--------------------------------------------------------------------------
[ぼやきのコーナー]
一応javaの研修は受けていたつもりだったんですけど、
まさかpackageがどんなものなのか失念してしまうなんて...
これ基礎中の基礎なのでマジ恥ずかしいです。。。
一応調べたらすぐ思い返すことができたので、完璧に忘れているわけではなかったとこは良かったのと
packageを使うことの利点の部分を改めて認識することができたのでそこは良かったです!
(研修中も恐らく説明はあったはずなんでしょうけど、packageというものの概念を覚えることに精いっぱいで
packageを使うことによって何のメリットがあるのか見たいな話までは理解できていなかったので今回知れてよかったです!)
今度javaの基礎文法をおさらいする記事でも書いて復習しないとあきませんな。
≪参照≫
[↓参照した記事で個人的に見やすかったものとしてこちらも置いときます↓]
【javaのimport文とは】
--------------------------------------------------------------------------------
Java ではあらかじめ用意されたクラスを自分のプログラムの中で利用することができます。
クラスを利用するには java.util.regex.Pattern のようにクラス名にパッケージ名を加えた完全修飾名で記述する必要がありますが、
あらかじめ import 宣言を行っておくことでクラス名だけで記述することができます。
--------------------------------------------------------------------------------
[ぼやきのコーナー]
これも研修で確実にやったんだけど
何をするためのものなのかの認識があまりにもざっくりとしすぎてて
かなり認識が霧がかってたやつだ。
これも改めて調べることで内容を再認識したのに加えて、importを使うメリットも把握できたのでよかったです。
正直私は容量が悪すぎて、一度にたくさんの事を言われても覚えることができないので
「一回見たり聞いたりしたことがある状態」
っていうのを作ったうえで改めて内容を調べるということはかなり大事なのではないかと思っています。
まずそもそも初見の言葉なんて日本語で書いてあったとしても他言語をみたときぐらい
見聞きしたときに抵抗感を覚えるんですよね。
まずその言葉の抵抗感を少なくする作業から入らないとすんなり理解できないんですよね自分って。笑
そこが自分自身が容量悪いと思うところです。
まあスペックなんて人それぞれですから、自分に合ったアプローチで頑張りますよ。
≪参照≫
【javaのextendsとは】
--------------------------------------------------------------------------------
extendsとは
Javaの継承(extends)とは、既存クラスのメソッドやフィールドの内容を引き継ぎながら、新しいクラスを定義することです。
継承元となるクラスのことを「スーパークラス」、継承した新しいクラスのことを「サブクラス」といいます。
---------------------------------------------------------------------------------
[個人的な認識として]
extends(継承)って最初研修で存在を知った時から本当にようけわからんやつで
理解するのが難しかったjavaの機能です。
一応ざっくりとした私の認識は
「自分が今持ち合わせている能力に、他のやつが持っている能力を足して、強くなった自分を作る」
というもので、これをjavaっぽく説明すると
「継承先(サブクラス)のクラスで定義した機能に、
継承元(スーパークラス)のクラスで定義したメソッド等の機能を全て渡して使えるようにしてあげることで
二つのクラスの機能をどちらも使える新しい最強のクラスが出来るよ」
みたいな感じなのかな....恐らく。
実際に能力を譲渡した側(スーパークラス)の機能を使う方法とか(クラス名.メソッド名で記述とかとか)細かいルールみたいなのは存在するにしても
他のクラスの機能を使える最強のクラスを作れるって点ではかなり便利な機能だなとは思います。
でも私はこのextendsに出逢った時からマジで思っていたことが一つあって
これは私の価値観的な話が大いに混ざったかなり私的な意見なのですが、
能力を継承される側・・・能力を受け取るクラスのことを「サブクラス」
能力を譲渡する側・・・能力を渡すクラスのことを「スーパークラス」
というのですが、
『いや、能力を渡されてパワーアップするんやから能力貰った方がスーパーなクラスってことでスーパークラスやろ普通!!!!!!!!!』
ってずっと思ってました。
この「スーパーなクラスなんやから能力高い方がスーパークラスやろ」みたいな考えが変にあったせいで
extendsを理解するのにかなり苦労しました。
まあでもなぜ継承元(能力を渡す方)がスーパークラスで、継承先(能力を受け取る方)がサブクラスなのかっていうのは一応考え方があって
一応理解はしているつもりなんですけど、説明し始めると2時間ぐらいかかりそうなので
どうゆう考えでスーパークラス・サブクラスを分けているのかっていうのを
とてもわかりやすく説明されている記事がありましたので
そちらをご覧いただけると理解できるかと思います。(下記参照)
「スーパー=凄い強そう」
みたいなイメージがあった自分には、理解するのに苦労したっていう話です。
<おまけ>
[オーバーライド]
一緒に覚えておきたいものとしてオーバーライドというものがあって
スーパークラスで既に存在しているメソッドをサブクラスで上書きして
新しいメソッドとして使うことができるもの
≪参考≫
[スーパークラス・サブクラスを分かりやすく解説してくれている記事]
https://mrp-net.co.jp/mrp_blog/tech_20231006/
2024/08/09(金) 本日のお題 ⇒ 【Apacheとはなにか】【ミドルウェアとは】【リレーショナルデータベース(RDB)とは】【SQL文と管理コマンドの違い】【データベースのschema(スキーマ)について】【データベースの種類(型)と主要なデータベースについて】
【Apacheとはなにか】
Apache(アパッチ)とは、オープンソースとして無料で利用できるWebサーバーソフトウェアです。
(Webサーバーソフトウェアとは、ChromeやSafariなどのWebブラウザを利用してWebサイトへアクセスした際に、Webサーバーで処理をして接続元(のブラウザ)へHTMLやCSS、JavaScriptなどの情報を返却する役割を持つソフトウェアです。)
高い処理性能と豊富な拡張機能、使いやすい管理画面などが特徴で、大規模Webサイトでも柔軟に対応できます。
一方で、高機能ゆえに設定が複雑になる傾向があり、セキュリティ対策やメンテナンス、運用作業にも注意が必要です。継続的な保守が欠かせません。
≪Apacheとは?特徴や導入目的や人気のWEBサーバーとの比較をわかりやすく解説:https://jitera.com/ja/insights/7276#:~:text=Apache(%E3%82%A2%E3%83%91%E3%83%83%E3%83%81)%E3%81%A8%E3%81%AF%E3%80%81,%E3%82%82%E6%B3%A8%E6%84%8F%E3%81%8C%E5%BF%85%E8%A6%81%E3%81%A7%E3%81%99%E3%80%82≫
【ミドルウェアとは】
[アプリケーションとOSの中間に存在するソフトウェア]
ミドルウェア(middleware)とは、コンピュータを構成する要素の一つで、基本機能を提供するOSとOSだけではできない特別なことを提供するアプリケーションとの間に存在します。
ミドルウェアとソフトウェアの違いがわからないという声も聞きますが、ミドルウェアはソフトウェアの一種です。
アプリケーションは業務の遂行に特化した機能、OSは汎用的な機能を担いますが、求められる機能の中にはアプリケーションほど具体的ではなく、OSほど汎用的でないものもあるでしょう。それを担うのが両者の中間に存在するミドルウェアです。
≪ミドルウェアとは?役割や機能、種類をわかりやすく解説!:https://it-trend.jp/development_tools/article/32-0044≫
【リレーショナルデータベース(RDB)とは】
--------------------------------------------------------------------
RDB(Relational Database:リレーショナルデータベース)とは、表形式の複数データを関連付けて使えるようにしたデータベースのことです。
RDBは、必要なデータを取り出しやすいというデータ操作性の高さから、大手企業の基幹系システムの約8割で利用されているといわれています。
リレーショナルデータベースでは、データを行と列で構成されるテーブルに格納します。各行は特定のレコードを表し、列は属性です。テーブルは、キーによって互いに関連付けられることで、データ間の関係が明確になります。
リレーショナルデータベースの利点は、データの整理と抽出が非常に効率的であることです。たとえば、企業が顧客情報を管理する場合、顧客の名前等の各データや購買履歴などを個別のテーブルに分けて保存し、必要に応じて関連付けた使用が可能です。
リレーショナルデータベースは、データの一貫性と整合性を保ち、複雑なクエリを迅速に処理する能力があります。データベースの初心者から専門家まで、最適なデータ管理と運用を実現するための多岐にわたる選択肢を提供しています。
--------------------------------------------------------------------
≪RDB(リレーショナルデータベース)とは|NoSQLとの違いやメリットを紹介:https://business.ntt-east.co.jp/content/cloudsolution/column-338.html≫
≪リレーショナルデータベース(RDB)とは?メリット・デメリットや活用例を紹介:https://blog.trocco.io/glossary/relational-database≫
【SQL文と管理コマンドの違い】
[SQL文]
SQL文とはデータベースを操作する言語のことで、データの検索や追加などの命令を出す文を指します。 Javaなどのプログラミング言語よりも比較的扱いやすく、基本の命令文は「SELECT」「INSERT」「UPDATE」「DELETE」の4種類しかありません。
[管理コマンド]
指令。 コンピューターで処理装置に指示する特定の文字列。 キーボード入力を主とするCUIのオペレーティングシステムやアプリケーションソフトなどにおいて使われる命令語を指す。
≪SQL文とは?基本命令文と書き方をわかりやすく解説!:https://it-trend.jp/development_tools/article/32-0012#:~:text=SQL%E6%96%87%E3%81%A8%E3%81%AF%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9,%E3%81%AE%EF%BC%94%E7%A8%AE%E9%A1%9E%E3%81%97%E3%81%8B%E3%81%82%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82≫
【データベースのschema(スキーマ)について】
[DBのスキーマとは?]
データの構造、性質、データベースを操作するときのルールや表現法などを定義したもの。データベースの設計図のようなものです。
スキーマは、データベースの設計図というイメージを持っていると良いでしょう。それぞれ三層のスキーマがほかの層に影響しないようにすることで、データベースの変更のインパクトを吸収することも重要です。
≪データベース(DB)のスキーマについてわかりやすく解説します!:https://www.engineer-route.com/column/7480/≫
【データベースの種類(型)と主要なデータベースについて】
データベースの種類は構造によって以下の4種類に分類できます。
・階層型
・ネットワーク型
・リレーショナル型
・NoSQL
□階層型
階層型のデータベースは、ノードと呼ばれる特定情報の集まりでデータを蓄積します。いわゆる家系図のような構造になっており、特定のノード(親ノード)の下に複数のノード(子ノード)がつながっていて、ツリー状に派生していきます。
・メリット
データにアクセスする速度が速い
・デメリット
重複登録が必要で柔軟性に欠ける
□ネットワーク型
ネットワーク型のデータベースは、情報の集まりであるノード同士が網目状につながる構造になっています。
・メリット
重複登録が必要ない
・デメリット
使用に高度な知識が必要
□リレーショナル型
リレーショナル型のデータベースは、各データを行と列から構成される表形式で蓄積するのが特徴です。複数の表を関連させることで、複雑なデータを柔軟に整理・保管できるようになります。
・メリット
柔軟なデータの取り扱い可能
データの一貫性を保てる
複雑なデータを扱える
データ検索が可能
・デメリット
プログラムが複雑化しやすい
処理速度が遅くなる
□NoSQL
基本構造はリレーショナル型と同じですが、リレーショナルデータベースを制御する一般的なデータベース言語であるSQLを使用しないタイプです。
・メリット
大規模なデータを扱える
応答速度が速い
・デメリット
データの整合性が保てない
データの加工が難しい
[リレーショナル型データベース]
・MySQL
・Oracle Database
・Microsoft SQL Server
・Microsoft Access
・PostgreSQL
・SQLite
・Amazon Aurora
[NoSQL型データベース]
・MongoDB
・HBase
・Cassandra
・Amazon Dynamo DB
・Amazon ElastiCache
≪データベースの種類を解説!主要データベース12選:https://meetsmore.com/product-services/databases/media/99426≫
2024/08/08(木) 本日のお題 ⇒ 【一個ずつやっていく】【eclipseのエラーログの見方】【コンソールで右クリック→すべて終了/切断】【やることを細分化する】【絶対パスと相対パスについて】
【一個ずつやっていく】
いただいた課題をこなしていたときに、
マルチタスクってわけじゃないんだけど実装したい機能だったりを一気に作ったりして
最後にプロジェクトを実行したときにエラーが出たときってどの作業をしたときにエラーが出たかが一気に作業してしまうとわからなくなってしまう。
なので例えばデータベースからデータを引っ張り出してWebサイトに表示させるものを作るってなった時
データベースに連携・Webサイトを作成等々の作業を一気にやるんじゃなくてまずは
➀データベースに連携して実行できるようになるまでやる
②そのあとにWebサイトを作成する
みたいに一個一個作っていくとエラーが出たときになんの作業の最中で出たエラーかがわかるからいいよって言われた。
マジでそうだと思った
【eclipseのエラーログの見方】
≪Javaのエラー解決の王道~スタックトレースの読み方~:https://ittoybox.com/archives/588≫
【コンソールで右クリック→すべて終了/切断】
eclipseでプロジェクトを実行したときに他のプロジェクトを起動していて、
8080ポートの取り合いになったときeclipseを再起動したら直っていたのでその場面に遭遇したら毎度のごとく再起動してたけど
[コンソールで右クリック→すべて終了/切断]
でいちいち再起動しなくてもプロジェクトを切断することができたよって話
【やることを細分化する】
この記事の一番最初に書いた【一個ずつやっていく】と内容が被るところなんだけど
上司に教えていただいたことで、
➀自分が今からやることの全体像を把握してゴールを定める
②ゴールに到達するためにやらなければならないことをある程度大きなかたまりに分解する
③その大きなかたまりごとに更にやることを細分化する
そうするとやらなければならないことが明確化するし、エラーが出たらどの作業でエラーが出たかより明確になる
[絶対パスとは]
絶対パス(absolute path)とは、ファイルを最初から最後まで完全に記述する形式のことです。たとえば、インターネット上での絶対パスは、ブラウザのアドレスバーに書かれている文字列すべてです。
[相対パスとは]
相対パスとは、現在作業をしているファイルを起点とした、目的ファイルまでの経路を記載する方法です。現在、作業をしているファイルから、目的のファイルまでの道筋を記述します。
先ほどの「https://ipeinc.jp/seo/example.html」において、現在作業中のファイルが「example.html」の場合、相対パスは「example.html」と表記します。
絶対パスと相対パスの違いは、表記する起点をどこにするかという点があります。
絶対パスは、ディレクトリの階層構造の頂点を起点にして目的のファイルまでの道筋を省略せずに表記して、
相対パスは現在作業をしているファイルを起点にして、目的ファイルまでの経路を表記します。
≪絶対パスと相対パスの違いは?書き方・調べ方や使い分ける方法など解説!:https://ipeinc.jp/media/absolute-path/≫
【DHCPについて】
DHCPとは「Dynamic Host Configuration Protocol(ダイナミック ホスト コンフィギュレーション プロトコル)」の頭文字をとった言葉で
コンピュータがネットワークに接続して通信する際に必要な設定情報を自動的に割り当てる機能です。
コンピュータが通信を行うには、IPアドレスをコンピュータ1台1台に割り当てることによって正しく通信が行えます。
しかしすべてのコンピュータに手動でIPアドレスを割り当てるのは時間や手間がかかる上に、台数が増えれば増えるほど大きな業務負担となります。
この課題を解決するのがDHCPです。