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

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

ただいまの
回答率

90.50%

  • データベース

    700questions

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

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

解決済

回答 5

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 406

nvcpg_198

score 14

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

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

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

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

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

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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 5

+2

Accessを使うとか以外

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

checkベストアンサー

+1

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では方言の違いがあります、実際にはリファレンス等を読んでください)

-- 先頭が--の行はコメントアウト
-- データベースを作成する
CREATE DATABASE new_app;

-- テーブルを作成する
CREATE TABLE new_app.users (id int, name varchar(20));

-- 行を追加
INSERT INTO new_app.users (id, name) VALUES (1, 'taro');
INSERT INTO new_app.users (id, name) VALUES (2, 'jiro');

-- MySQLではバルクインサートという手法を使って複数行のデータを1文で追加できます、他のDBでも多分可能
INSERT INTO new_app.users (id, name) VALUES (3, 'saburo'), (4, 'shiro'), (5, 'goro');

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

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

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

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

つAzure SQL Database、Amazon RDS for Oracle

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/12/26 20:23 編集

    SQL Server にも無償版(SQL Server Express)がありますよ。

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

    キャンセル

0

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 90.50%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • データベース

    700questions

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