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

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

新規登録して質問してみよう
ただいま回答率
85.48%
データベース

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

Q&A

解決済

5回答

1675閲覧

DBを使ったシステムについて

nvcpg_198

総合スコア25

データベース

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

0グッド

0クリップ

投稿2017/12/26 10:45

編集2017/12/27 06:22

DBを使うシステムを作って知り合いにレビューして
もらうことになったのですが、例えば実行ファイルと
DBのファイルを渡して相手の環境ですぐ実行することが
できる方法はありますか?

SQLServerやOracleを使ったシステムだと
それを相手にまずインストールさせないと
できないですよね?Accessを使うとか以外で
方法はあるでしょうか?

------------追記---------------------

目的は自分のコードの書き方やSQLの使い方等で
ダメ出しをもらうことです。言語はC#です。
あと知識はほぼ素人レベルです。

相手が自分の作ったアプリを確認する際に、
例えばsqlserver等何らかのソフトをインストールする
手間を省きたいということです。

sqlファイルを持ち運ぶという返答を
もらったのですが、文面を見るとそこにデータを
格納できるように思えました。SQLファイルとは
SQLを記述したファイルと思っていたのですが、
そうではないということでしょうか?

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

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

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

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

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

guest

回答5

0

Accessを使うとか以外

の「とか」がどういう内容を指すのかによりますが、sqlite という選択肢はあるかもしれません。

投稿2017/12/26 11:04

alg

総合スコア2019

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

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

0

ベストアンサー

DBを使うシステムを作って知り合いにレビューしてもらうことになったのですが、

ということは膨大なユーザーデータが含まれているわけではないのですよね。
データ格納用のSQLファイルに固めて転送という手段が使えます。

そもそも開発環境のみで動作させるわけではなく、
いずれは本番環境へ適用(デプロイ)して使うわけですから、それと同じで簡単に設定情報を持ち運ぶ手段が必要になりますので、SQLファイルを利用するというのは良い手段です。

相手の環境ですぐ実行することができる方法はありますか?

相手の環境でまるっと再現出来なければなんの意味もないので、本番環境への反映と同じですね。
Dockerやdocker-composeを使うのが今風です。


【追記】SQLでデータを持ち運ぶ?

これを説明する為にはRDBMSの概要をさらっと説明する必要があります。
想像しやすいようにExcelで表現すると、
RDBMSのデータベースに当たるのがExcelの1ファイルに該当します。
これと同じように、テーブルがExcelのシート、レコードがExcelの1行に該当します。

SQLとはRDBMSの操作をお願いする呪文です。
例えばSELECT * FROM table_nameとお願いすれば、
RDBMSはtable_nameというテーブル名から全てのデータを探して一覧にして返してくれます。
また、INSERT INTO table_name (value1, value2, value3 ...)とお願いすれば、
RDBMSはtable_nameというテーブルにSQL文に従って作られた1行のデータを挿入してくれます。

このようにRDBMSはSQLという文字列で全ての操作を外部から行うわけですね。
Excelで表形式の一覧を作るには、Excelファイルを作る→シートを作って表組みを整える→1行追加という手順になりますが、
RDBMSではSQL文を順番通りに次々と読み込ませる事で実現します
(今回はMySQL用のSQL文なので他のDBでは方言の違いがあります、実際にはリファレンス等を読んでください)

SQL

1-- 先頭が--の行はコメントアウト 2-- データベースを作成する 3CREATE DATABASE new_app; 4 5-- テーブルを作成する 6CREATE TABLE new_app.users (id int, name varchar(20)); 7 8-- 行を追加 9INSERT INTO new_app.users (id, name) VALUES (1, 'taro'); 10INSERT INTO new_app.users (id, name) VALUES (2, 'jiro'); 11 12-- MySQLではバルクインサートという手法を使って複数行のデータを1文で追加できます、他のDBでも多分可能 13INSERT INTO new_app.users (id, name) VALUES (3, 'saburo'), (4, 'shiro'), (5, 'goro');

本題の持ち運ぶとは何か?ですが、登録用の操作系SQL文を集めて1ファイルに固めます。

SQL

1CREATE DATABASE new_app; 2CREATE TABLE new_app.users (id int, name varchar(20)); 3INSERT INTO new_app.users (id, name) VALUES (1, 'taro'), (2, 'jiro'), (3, 'saburo'), (4, 'shiro'), (5, 'goro');

これを先方に渡して実行すれば、一瞬でテーブルとデータが再現出来ます。
MySQLはmysqldump、Oracleではエクスポートという機能があり、
こういったSQL文の詰まったファイルを稼働中のRDBMSに作らせる事が可能です。

投稿2017/12/26 11:26

編集2017/12/28 02:26
miyabi-sun

総合スコア21158

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

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

0

sqlserverはどうか知りませんが、oracleは無償で使えるはずです。
あなたのDBが今何で動いているのか知りませんが、簡単なCRUD(create,read,update,delete)操作する程度のSQLが実行ファイルに含まれているだけなら、どのDBでもSQLはほぼ共通しているはずなので、とりあえずファイルを渡して知り合いに動かしてもらったらどうですか。

どの程度の規模の実行ファイルか知りませんが、その実行ファイルにDBに依存した関数(mysql関数など)などが含まれているならそれはmysqlでないと動きません。

投稿2017/12/26 11:17

imamoto_browser

総合スコア1161

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

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

alg

2017/12/26 11:24 編集

SQL Server にも無償版(SQL Server Express)がありますよ。 ただ、今回の質問は「(DBMSにお金をかけたくないので)実行ファイルとDBのファイルを渡してすぐ実行できる方法」を聞きたいのか、それとも「(DBMSのインストールは手間なので、手間を省くために)実行ファイルとDBのファイルを渡してすぐ実行できる方法」を聞きたいのか、それともそれ以外なのか、よくわかりませんね。 私は後者だと勝手に解釈しましたが……。
guest

0

つAzure SQL Database、Amazon RDS for Oracle

投稿2017/12/26 11:00

hichon

総合スコア5737

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

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

0

パソコンのリモート操作ソフト類を駆使して、
質問者さんのパソコンを遠隔操作してもらうようにすれば、
わざわざ先方の環境で構築し直さなくても
作ったプログラムやシステムの動作確認や、
目的のコードレビューなどは出来るのではないでしょうか。

プログラミングスキル向上を目的として、
外部の人の助言を得るために、
と想定しました。

投稿2017/12/28 01:31

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問