
No.3ベストアンサー
- 回答日時:
>SQLiteは、WEBサーバーが持つローカルな記憶装置をデータベースとして使う仕組みで、自分の管理するハードのシステムを呼び出すのでWEBアプリの命令として簡単に使用できるというイメージです。
SQLiteの実体は、ただの単一ファイルなので、ローカルに限らずネットワークドライブでも問題ないはずです。(基本的に、ネットワークドライブ上に置くメリットよりデメリットの方が多いと思われますので、そのような使い方をすることはあまりないと思いますが…)
複数のクライアントが利用する場合でも、Webアプリからなら簡単に利用できるのは、本来、意識しなければならない同時書き込みなどの処理(そもそも、同時書き込みが頻発する処理の場合SQLiteでは不適格ですが…)を、Webのサービス(ApacheやIISなど)が窓口になって一括で処理してくれるからです。
つまりSQLiteの仕様のデメリットが、Webのサービスの仕様と上手く噛み合わさることで、ほとんどなくなるということです。
上記リンクで書込がダブると書込エラーが発生すると書かれていますが、これは、何も考えなくてもWebのサービスが守っていてくれているから(と言っても、そんな大げさなものではありませんが)です。もし、同時に書き込みにエラーが発生しない場合、DBが壊れると言う最悪の可能性が待っています。
(MySQLのようなサービス型の場合、同時の書き込みでもDB自体は壊れないように出来ています。)
>ということで、MySQLのようにWEBサーバーがネットワーク上のハードであるデータベースサーバーにユーザーが自らを証明するために必要なパスワードを送る必要が無いということ。
Webアプリなら、あまり考える必要のないことですが、パスワードが必要であることのメリットは、上記のリンクにあるような、第三者に対するセキュリティよりも、公開する相手に対して必要な権限を振り分けられることの方が大きいと思います。
SQLiteでは、その仕様上、基本的に窓口が一つでないとなりません。決まった相手にしかデータを見せる必要がないのでパスワードは不要となります。(ファイルをさわることが出来る相手=管理者で、全データを扱えることに問題はない)
一方、MySQLなど、サービス型のDBの場合、窓口が複数あることが前提となります。
この複数の窓口と言うのがミソで、使用者全員が管理者と言う訳ではなく、必要な情報を必要な人にだけ見せたり、更新させたりする必要があります。そのためにユーザやパスワードの設定が必要となります。
何度も、詳しく解説してくださって有難うございました。
大して分ってないのに、生意気な質問で申し訳ありませんでした。
お蔭様で、かなりイメージを掴む事が出来ました。
本当に有難うございました。
No.2
- 回答日時:
SQLiteは、あまり詳しくないため、私も勘違いしている部分もあるかも知れませんが…
ネットワークプリンタと、USBプリンタの違いをイメージして下さい。
ネットワークプリンタの場合、ネットワーク上の全てのPCから、そのプリンタで印刷が可能となります。
これをDBを使用したアプリケーションの動作に当てはめると、ネットワーク上のPCのアプリケーションがDBを使用する場合、SQL文を直接DBに発行することが可能となります。(これが質問のサービス(MySQL)の動作にあたります。)
一方、USBプリンタの場合、そのプリンタがと繋がっているPCで共有を行えば、同様に印刷が可能となります。それは、他のPCから受け取った印刷の指示を、そのPCが窓口になって印刷の指示を行うからです。
これをDBを使用したアプリケーションの動作に当てはめると、ネットワーク上のPCのアプリケーションは、窓口となるPCのアプリケーションと、何らかの手段で通信し、窓口となるPCがSQL文を発行後、戻って来た結果を、元のPCのアプリケーションに返すこととなります。(これが質問のアプリケーション(SQLite)の動作にあたります。)
あとは、利用したいモデルが、どちらに当てはまるのかによります。
例えば、複数のクライアントでも、WEBベースであれば、窓口となるSQLを発行するPCは一台で済むので(可用性は考えないものとして)SQLiteでも問題ありませんし、単体ユーザでも、複数のPCから同時に接続する必要があれば(あまり無いとは思いますが)MySQLが必要となるかも知れません。
この回答への補足
わざわざ、お時間を割いていただき有難うございます。
拝見しましたが、アンポンタンなので明確に捉え切れませんでした。
納得出来そうで出来ないので、いろいろ調べて考えました。
http://www.cpa-lab.com/tech/046
http://mizushima.ne.jp/Windows/DB/SQLite/SQLite. …
そこで、下記のような解説を見つけました。
>SQLiteは、データベースでよく代表されるMySQLやPostgreSQLのようにサーバー・クライアントという形をとりません。
>データはBerkeleyDB同様ローカルに保存されますので、外部・複数のサーバーからのアクセスはできない短所があります。
>また、大規模な仕事には不向きだともいわれています。
>パスワード設定は要らない。
>ファイル形式であり、ユーザー管理の概念がないため、SQLite自身には、セキュリティ機能はない。自分で、ファイルへのアクセス権限をしっかりとコントロールする必要がある。
以上の解説から私が考えたのは、SQLiteをメインのデータベースとして使う時は、
SQLiteは、WEBサーバーが持つローカルな記憶装置をデータベースとして使う仕組みで、自分の管理するハードのシステムを呼び出すのでWEBアプリの命令として簡単に使用できるというイメージです。
ということで、MySQLのようにWEBサーバーがネットワーク上のハードであるデータベースサーバーにユーザーが自らを証明するために必要なパスワードを送る必要が無いということ。
こんな風に思ったのですが、何処か間違っていたら教えてください。
No.1
- 回答日時:
電話局で、みんなが閲覧できるように置かれている電話帳が前者(MySQL)で、個人宅においてある電話帳が後者(SQLite)
実際のシステムの運用イメージとしては、宅急便の総合荷物前者(MySQL)が前者で、配送時に各スタッフがもつ端末上での荷物情報等を管理するのが後者(SQLite)。
扱う情報の規模やセキュリティ等によりますが、たとえば銀行などのDBはMySQLではなくOracleだったりします。
わざわざ、お時間を割いていただき有難うございます。
貴方がおっしゃるように、SQLiteは補助的には端末のデータベースとして用い、処理が終わると情報を整理し本社に送るという形で使われていそうです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL MySQLでcreateが使えない MySQLを使ってデータベースを作ろうと思い、CREATE を使 3 2022/06/19 15:32
- JavaScript Typescript が必要な理由 1 2023/01/07 11:45
- MySQL [1000地域 × 10カテゴリー = 1万件のテーブル]!グループ化? 1 2023/06/14 23:56
- フリーソフト 色々な形式の個人情報を後で参照しやすいようWindow10で管理したいのですが、どんな方法があるの? 1 2023/04/29 16:46
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- PostgreSQL PostgressからMySQL(MariaDB)へ構造を変更する際のTimestamp等について 2 2023/04/04 12:09
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- MySQL 【投稿情報用データベース posts】は必要ないと思います。 1 2022/06/02 21:25
- MySQL mysqlがインストールされているのかどうか 1 2023/06/05 14:19
- MySQL `picture` varchar(255) のコマンドで間違いないでしょうか? 1 2022/11/21 04:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
YouTubeが毎回ログインしないと...
-
インスタの乗っ取り解除につい...
-
カカオで退会せずに、アプリだ...
-
不正ログインされました。対応...
-
ユニクロやGUのシフト管理アプ...
-
携帯電話の番号・メールアドレ...
-
カカオトークのユーザー名が (...
-
インスタの捨て垢で友達のスト...
-
インスタのアカウントが削除さ...
-
スタディプラスではアカウント...
-
Steamのアカウントにログインで...
-
Twitterで「このアカウントは存...
-
「そのメールアドレスはすでに...
-
Excelのセルにユーザー名...
-
メールアドレスを人に教えるの...
-
カラーノートデータをiPhoneの...
-
インスタのアイコンについてるN...
-
Yahooメールにログインできません
-
カカオトークを退会せずにアン...
-
LINE TCBというところからLINE...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelのセルにユーザー名...
-
Steamのアカウントにログインで...
-
CSVファイルを添付するときにパ...
-
メールを返信したら、英語のメ...
-
ユニクロやGUのシフト管理アプ...
-
runas実行した時にきかれるパス...
-
YouTubeが毎回ログインしないと...
-
インスタの乗っ取り解除につい...
-
「そのメールアドレスはすでに...
-
携帯電話を解約してもSMSの受信...
-
カカオで退会せずに、アプリだ...
-
「@」(アットマーク)の無いメ...
-
ワードに入力したメールアドレ...
-
不正ログインされました。対応...
-
カカオトークを退会せずにアン...
-
インスタのアイコンについてるN...
-
pixivで新規登録しようと思い、...
-
存在しないアドレスにメールを...
-
メールアドレスを人に教えるの...
-
Access ファイルの権限を設定...
おすすめ情報