質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.36%
SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

ウェブアプリケーション

ウェブアプリケーションとは、ウェブ上でアクセスされるアプリケーションのことを呼びます。この場合におけるウェブとは、インターネットやイントラネット上を意味します。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

6回答

756閲覧

ウェブにおけるサーバーサイドプログラミングとデータベースを使ったプログラミングのやり方

Paalon

総合スコア266

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

ウェブアプリケーション

ウェブアプリケーションとは、ウェブ上でアクセスされるアプリケーションのことを呼びます。この場合におけるウェブとは、インターネットやイントラネット上を意味します。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

3クリップ

投稿2024/09/28 06:14

編集2024/09/28 06:17

いわゆるフロントエンドの GUI を作るウェブプログラミングしかやってこなかったので、サーバーサイドのウェブプログラミングやデータベースを使ったプログラミングのやり方が全く分かりません。

HTML + JavaScript + CSS と標準 Web API や React などのフロントエンドエンドフレームワークを使ったアプリケーションや、Unix のシステムプログラミングによるアプリケーションの作り方は知っています。また、NumPy や pandas のような多次元配列ライブラリーで RAM (短期メモリー) 上に全部乗っけるタイプ?のデータベースの使い方は知っています。しかし、関係データベースなどの ROM (長期メモリー) に乗っけるタイプ?のデータベースの使い方や、 サーバーサイドプログラミングや HTTP を直接いじったりするあたり?は分かっていません。

とりあえず、関係データベースとして、PostgreSQL にデータを保存して、ウェブのフロントエンドでそれを利用したり、変化させるアプリケーションを作りたいのですが、どうすれば良いのでしょうか?また、何を勉強したり、調べておけば良いのでしょうか?

詳しい汎用プログラミング言語は以下の通りです。

  • C
  • C++
  • Go
  • Rust
  • JavaScript
  • TypeScript
  • Python
  • Julia

詳しくないけれども多分使える汎用プログラミング言語は以下の通りです。

  • Ruby
  • Java
  • Kotlin
  • Nim

フロントエンドは

  • React + TSX + Vite
  • Vue + TypeScript + Vite
  • Svelte + TypeScript + SvelteKit

のいずれかで作ったものを用意しているので、できればそれが再利用できればいいなあと思っています、そうでなくても良いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TakaiY

2024/09/28 15:43

> RAM (短期メモリー) > ROM (長期メモリー) という用語が出てきますが、 RAM/ROMをそのように使う例を知らないのですが、よろしければ出展を教えていただけますか。
Paalon

2024/09/28 17:53

例えば、[日本語の Wikipedia の RAM の記事](https://ja.wikipedia.org/wiki/Random_Access_Memory) 「電源が落ちれば記憶内容が消えてしまう短期メモリの意で使われていることが専らである。」など、濫用ではあっても一般的だと思います。
Eggpan

2024/09/28 18:14

スマホ等のデータ保存領域に利用されるEPROMの事について、これをROMと呼ぶ事が増えましたが ROMとは元々Read only memoryの略で、pcだとBIOSや、カートリッジのゲームソフトなどに利用される、書き込みのできない読み取り専用メモリを表していました。 なので単にROMと書くと書き込みできない領域のはずなのに保存、みたいな印象になり、間違いの元になりやすいです。 ギガが減る、みたいなものだと思ってますが、ストレージといった記載の方が分かりやすいかなとは思います。
TakaiY

2024/09/29 01:21

回答ありがとうございます。 RAMと短期メモリは、用語の領域は異なりますが、同義とされることが多いのは同意ですが、ROMと長期メモリはそうではないと思います。前の方が言っているようにRAMとROMは逆の意味ではありませんし。 ROMと長期メモリの件については、出展があるわけではないのがわかったので、理解できました。
utm.

2024/09/29 17:21

自分が未熟だからか、全然文脈上で何を言いたいのか(ROM,RAMについての話)は理解出来たのですが、長期メモリー、短期メモリーという別の用語が存在して混乱するのですね。 逆にコメントでの反応の方に私は違和感があったのですが、調べてみると最近は書き換え可能なROMが増えてきたので、書き込み不可能なROMは区別のためにマスクROMと言うといった内容の記事がヒットしましたが。 多分自分が若いからだと思うのですが、ROMと単に言ってマスクROMを指す例は見たことがないです。 技術の進歩って凄いですね。多分昔は性能的に1回しか書き込みできないとかの制約があったのかな?(それともわざとなのかな?) 現代では色んなROMがあるみたいですね。現代しか知りませんが。 リードオンリーメモリーと呼ぶのはおかしいという意見もあるが、実際どうなんだろうか? プログラミングをしていていままでフラッシュメモリーに書き込んでいる!と思った事が特に無いし、 こういう場所でここまで厳密に評価しないといけないものなら、この界隈自体がかなり初心者に優しくない気がするし初心者の理解の混乱の元になる気もする^^; スマホならまだしも、うーんどうなんだろう?DBとかファイルへの書き込み操作をストレージへの書き込みって言うのかな。 でも確かに言う人は言うしそちらの方が混乱がないのか...? んー。文脈によりそうだけれど、ROMと言ったらダメなのかー? でもストレージって言う言葉で実際に何なのかを隠匿するとやっぱり初心者はイメージ困難な気がする。 変数をメモリと言わないから混乱するのと一緒で。 人によって解釈の違いがあるくらいに留めて起きたいな。
guest

回答6

0

「急いでものを作らないといけない」という状況でないのであれば、まずは自分で思うようにやってもがき苦しんでみることをおすすめします。

フレームワークには便利な道具立てがいろいろあるのですが、それらの中には直感的に必要性が分かりづらいものもあります。最初から流れで「なぜ使うのかわからないまま」使っているのと、一度引っかかって必要性を実感してから使い始めるのとでは、同じ機能でも使いこなし方が違ってきます。

投稿2024/09/29 00:40

maisumakun

総合スコア145956

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2024/09/29 00:41

> 普通の人?は車輪の再発明を避けて、特定のライブラリーを使っているらしいというのを感じているのです。 学習目的であれば、車輪の再発明を積極的にやっちゃうほうがいいです。
guest

0

最初はこんな感じでいいんじゃないですかね。

Pythonで簡単な掲示板を作成する。(FlaskとSQLを使ったWebアプリ開発入門)#1
https://qiita.com/tomson784/items/a5ad6e47643449dffd18

投稿2024/09/30 01:44

68user

総合スコア2022

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

68user

2024/09/30 07:13

JS がいいなら「node express 掲示板」とかで検索してみてください。
guest

0

入り口としては、「そもそも、ウェブアプリケーションが動く全体の仕組みがどうなっているか」の概観を掴んだ方が良いと思います。
Macということなので、MAMPをインストールして触ってみるというのと平行しても良いですし。

普通は「ウェブアプリケーション入門」的な書籍が良いと思いいます。初心者向けの入門書と、もうちょっと先向けの2冊くらい。このレベルの書籍であれば、中味が古くて参考にならないという事はないので、10年くらい前でも定評のある本の方が良いです。
特定のフレームワークを使うことが前提の「(フレームワーク名)によるウェブアプリ作成」のような本はそのあとです。これは具体的な使い方が書いてあると思うので、新しい方が良いかも。

あるいは、数万円払って2-3日の研修を受ける手もあります。講師に質問できるし。

個人のウェブ記事や動画などで学ぶのは、内容が正しいのか間違っているのか疑いながらになると思うので、あくまで参考レベルですかね。まあ、大手出版社の書籍が100%正しいとは限らないですが、編集者のチェックは入っていますし、レビュー記事で評価も出来ます。


あと、用語についてコメントしておくと、
質問の本質部分なら自信のない言葉を使わざるを得ないこともあるかと思いますが、今回は質問の本質でない部分なので、自信のない用語は使わない方が良かったと思います。(?が付いているので自信がないと判断しています)

「また、NumPy や pandas のような多次元配列ライブラリーのデータベースの使い方は知っています。しかし、関係データベースなどの使い方や、 サーバーサイドプログラミングや HTTP を直接いじったりするあたりは分かっていません。」
とかくらいで。

例えば、[日本語の Wikipedia の RAM の記事]

それは誤読というか、「電源が落ちれば記憶内容が消えてしまう短期メモリの意」の記述のうち、本質である「電源が落ちれば記憶内容が消えてしまう」をカットして、本質でない「短期」だけ抜き出したので変になってます。
ROMについての記述との対比で、電源との関わりが本質だと分かるはず。電源が数年間オンのままのRAMなら数年間値を保ってますので時間の長短は本質でないです。
書くとしても、括弧内の注記が不要で、「RAM」、または単に「メモリー」で。

関係データベースなどの ROM (長期メモリー) に乗っけるタイプ?

このROMはおそらくSSD等を想定しての記述でしょうけど、SSDの技術的な先祖をたどると「(マスク)ROM」(データはIC製造工程で書き込んで、工場出荷後は中のデータを変更できないメモリー)にたどり着きますが、その後、データを書き換えることが出来る用に進化して、今のSSD・フラッシュメモリーに至るので、書き込めるものを「リードオンリーメモリー」と呼ぶのはおかしいです(スマホ業界ではROMと言う人もいるようですが)。
書くなら、「関係データベースなどのストレージに乗っけるタイプ」ですね。

投稿2024/09/29 08:06

otn

総合スコア85855

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Pythonに関して詳しい と言うことであれば、Pythonを使ったサーバサイドのプログラミングに関するドキュメントはかなりあるので、そこから入るのが良いと思います(詳しいと書かれている他の言語はサーバサイドプログラミングで使うにはとっつきにくいかと)。PythonにはDjangoという有名なWEBアプリケーションフレームワークがあるので、それらのドキュメントをなぞって勉強されるとかなり捗ると思います。

投稿2024/09/29 17:40

AbeTakashi

総合スコア4835

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

WindowsならXAMPPというアプリケーションを入れたことはありますか?
あるいはApacheやSQLのようなアプリケーションをインストールして、別マシン(仮想でもよい)からアクセスしたことはありますか?

もしないのであればここら辺を試して見ると良いかと思います。

※色々書かれてますが、どこまで詳しく説明するべきか、前提としてどこまで知っているかが明確では無いため、回答の結果批判的に「そんなことは知ってるよ!」と怒ったりするのはおやめください
※HTMLでアプリケーションを作成したことは質問文から読み取れますが、単にブラウザからローカルのファイルを開いたのか、サーバーからアクセス等したのかについて触れられていません。今後はどのような環境で実行したのかについて記載されると良いでしょう

投稿2024/09/28 17:27

utm.

総合スコア320

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Paalon

2024/09/28 17:48

Windows でプログラミングはほとんどやったことがないので、Windows のことはよく分かっていません… 今、手元にあるのは macOS で、Linux は使ったことがあります。XAMPP という言葉自体は聞いたことがありますが、それをインストールしたことはないと思います。Apache というのは、Apache HTTP Server のことでしょうか?SQL は言語自体のことなので、SQL を利用できる関係データベースシステムのことでしょうか?だいぶ昔に nginx を Ubuntu にインストールしてごにょごにょしてよくわかんないやとなって放置したことはあります。Vite は普通、ローカルのサーバーを立ててデバッグするので、一応、サーバーからアクセスしているのですが、ブラウザーからローカルのファイルを開くのと大差はないと思います。
Paalon

2024/09/28 17:57

macOS に PostgreSQL をインストールをして、標準のコマンドラインインターフェースからデータベースを操作することは一通り先日やってみました。
utm.

2024/09/28 18:49

ゴールはどこですか?
guest

0

PostgreSQL にデータを保存して、ウェブのフロントエンドでそれを利用したり、変化させるアプリケーションを作りたいのですが、どうすれば良いのでしょうか?

これまでも沢山のプログラムを開発してこられたようですので、作ればいいのではないかと思うのですが、何がわからないのでしょうか?

これまでフロントエンド側を作ってきたアプリの簡易版などを作るのはいかがでしょう。
バックエンド側は、挙げられているものであれば、JavaでもPythonでもいいでしょう。また、Node.jsであれば、フロントエンドと共通の言語でできますね。

DBについて、構築・運用・利用すべてについて独学で深いところまでやるのは難しいと思います。そういうスキルを求めるのであれば、そういう現場に入りこむのが近道でしょう。

投稿2024/09/28 15:49

編集2024/09/28 17:36
TakaiY

総合スコア13732

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Paalon

2024/09/28 18:08

HTTP をいじりまわす関数とデータベースの API を叩くプログラムを作成すれば良いというのはなんとなく分かるのですが、普通の人?は車輪の再発明を避けて、特定のライブラリーを使っているらしいというのを感じているのです。どういうところがそれらの Hello World に当たるのかが分かっていないので、目的のプログラムを作成する道筋が見えておらず、困っているのです。
TakaiY

2024/09/29 01:28

> どういうところがそれらの Hello World に当たるのか 書籍をいろいろ調べてみたり、言語+WebフレームワークでWeb検索するのがいいのではないでしょうか。Pythonであれば、DjangoやFlaskが、JavaであればStrutsやSpringあたりのものが多いでしょう。 やってみるのであれば、玉石混淆のWeb記事ではなく、はずれの可能性の低い書籍を使うのがお勧めです。
TakaiY

2024/09/29 01:34

> 普通の人?は車輪の再発明を避けて 普通の人は、再発明したくないのではなく「できない」と思いますよ。僕も例外ではありません。 プロトコルを生であつかうような通信の部分とか、認証回りとか、そもそもシステムを構築するために必要なことをうまく整理することなど、Webフレームワークがやっていることは高度な内容です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問