タグ付けされた質問 「database」

このタグは、一般的なデータベースの質問用です。SQLに固有の質問の場合は、代わりにそのタグを使用してください。

1
ユーザーにパスワードの変更を許可する場合、新しいソルトを生成する必要がありますか?
私のデータベースには、ハッシュされたパスワードとソルトの列があります。私のアプリケーションでは、ユーザーが自分のパスワードを変更できます。パスワードに同じソルトを使用する必要がありますか、それとも新しいソルトを生成する必要がありますか?アプリケーションのセキュリティは重要ですか?

3
実際には削除されない「削除済み」レコードのカスケード
このシナリオで人々が何をするかについていくつかのアイデアを得ようとしています。テーブルのあるシステムデータベース(SQL Server 2008 R2)があり、すべてのテーブルに "削除済み"と呼ばれるフィールドがあります。レコードが削除された場合は基本的にビットフィールドであり、レコードが0の場合は削除されません。フィールドはnull可能ではなく、そのデフォルトはもちろん0です。 データベースへの実際の削除は許可しないため、これを回避するには、ビットフィールド(Deleted)をtrueに設定します。このアプリケーションでは、次のようなクエリが作成されます。 SELECT blah FROM MyTable WHERE .. AND Deleted=0 基本的に、レコードをフィルタリングして、削除されていない行のみを取得します。私たちの問題は、カスケードする必要がある関連レコードです。人々は何を好むのでしょうか。サーバー側のコードでこれを行うと、レコードを削除したときに、関連するすべてのレコードが削除されます(削除済みビットフィールドがtrueに設定されます)。それとも、これはこのフィールドをチェックし、すべての関連レコードのビットフィールドを1に設定する必要があるトリガーでしょうか。 それとも、私たちは完全に間違った道を進んでいますか?
8 database 

5
Accessをデータベースとして使用することの欠点はありますか?
Microsoft Accessの複数のテーブルにデータを保存するアプリケーションを継承しました。Access DBはストレージにのみ使用され、すべてのデータ処理はアプリ(VB.net)によって処理されます。 これは良い習慣ですか?私は同様のアプリをゼロから構築する必要があり、「通常の」プラクティスが何であるかわかりません。 私はさまざまな形式で質問をグーグルで試し、多数の結果(このフォーラムの多くを含む)をチェックしましたが、すべての質問は、単にデータストレージに使用するのではなく、Access内でプログラミングしている場所に関連しているようです。 私はもっ​​と具体的になると思いますが、SQL Server Expressまたは同様のものがより良いオプションになると思います。 -あなたが原因類似した質問を有することに、この記事を読んでいる場合は、下に@DanielBによって提供されるこのリンクをチェックアウト/programming/694921/ms-access-mdb-concurrencyを

2
住所をデータベースに保存する:国際的なアプリにはどのような構造を使用すればよいですか?
海外のユーザーにデータベースを使用してもらいますが、米国以外でメールシステムがどのように動作するのかわかりません。 「都市」、「州」、「国」、そして「郵便番号」の概念は、階層が2レベルしかない場合でも階層をキャプチャするのに十分ですか(都市/国)。

4
「データベースに大きなblobを格納するとパフォーマンスが低下する」とはどういう意味ですか?
データベースの内部を知っている人にとって、これは簡単な質問かもしれませんが、データベースに大きなBLOB(たとえば、400 MBの映画)を格納するとパフォーマンスが低下することになっている理由を明確に説明できますか?これはインターネット全体でよく見られる申し立てですが、実際に説明されたことはありません。 具体的には、SharePoint / MSSQLのパフォーマンス、つまりファイルアップロードのパフォーマンス、サイトの閲覧、リストの表示、ドキュメントのオープンなどについて言及しています。データベースが大きくなりすぎると、動作が遅くなると言われています。ファイルシステムへのBlobの外部化(SharePointではリモートBlobストレージと呼ばれ、データベースからファイルを移動し、参照のみを残します)はこれをある程度解決するはずですが、正確には-最下位レベルで-違いは何ですか?データベースに巨大なファイルが保存されている場合、バックアップに時間がかかることは明らかです...しかし、どの操作が正確に影響を受け、その基本的なメカニズムは何ですか(つまり、データベースの外部のファイルシステムに保存されているファイルは、どのようにアクセスまたは保存されますか?) 列を含む単純なテーブルをID(guid, PK), FileName(string), Data(varbinary(max))考えてみてください-大きなData列は、Webサイトにファイルのリストを表示する(内部的には実行することを意味しますSELECT FileName FROM table)、または新しい行を挿入するなどの操作を本当に遅くしますか?実際のバイナリコンテンツの列にインデックスが付けられるのとは異なります。 このような質問が既に出されていることは知っていますが、十分な説明が見つかりません。

2
MySQLからPostgreSQLに切り替えますか?
昨年はMySQLに慣れてきましたが、そのトレンドの高まりとHerokuでWebアプリを均質化したいという願望から、代わりにPostgreSQLをWebアプリに使用したいと思います。PostgreSQLを学習するためのリソースはありますが、データベースの概念を最初から説明し直したくはありません。また、ほとんど同じものをすべて再学習する必要はありません。 MySQLとPostgreSQLの間で理解する必要がある重要な違いは何ですか-日常的に私に影響を与えるMySQLとPostgreSQLの間の?

3
非トランザクションデータベースと統合テスト
統合テストで遭遇すると思う1つの問題は、複数のテストが同じデータベースにアクセスすることです。現在、これは問題ではありませんが、同じデータベースにアクセスする複数のアプリケーションが存在することはわかっています。この問題が発生する前に回避する方法を考えているところです。 私がよく見たアイデアはトランザクションを使用することです。起動時にトランザクションを開始してから、ティアダウンでトランザクションをロールバックします。これは、同じデータベーステーブルにアクセスする複数のテストが互いに影響を及ぼさないことを意味します。私の問題は、私の場合、MySQLで使用しているテーブルの85〜95%がトランザクションをサポートしないMyISAMであるということです。 トランザクションをサポートしないストレージエンジンを回避する方法はありますか?それでも、複数のテストが互いに影響を与えずに同じテーブルにアクセスできるようにしますか?私が聞いたところによると、Ruby on Railsテストフレームワークはこのようにトランザクションを使用しますが、どのようにしてこの問題を回避しますか(またはそれらを行いますか)?

4
テストデータベースに入力して使用するためのベストプラクティスは何ですか?
そこで、HibernateとMySQLを使用して、データベース駆動型のRESTful Java Webサービスをいくつか開発しています。テスト目的で、私はH2インメモリーデータベースを使用しています。H2は素晴らしく高速なので、これは非常にうまくいきました。唯一の問題は、テストの前にDBテーブルにデータを入力するのが面倒なことです。基本的には、一連のオブジェクトを手動で作成して永続化します。多分私は間違った道を行くのではないかと思っています。 教えてください、私がやろうとしていることをするためのベストプラクティスは何ですか?私を助けることができるツールはありますか?一般的な戦略やヒントはありますか?

6
ストアドプロシージャの単体テストまたは統合テストですか?
最近、複雑なストアード・プロシージャーおよび関数を維持する必要がある多くの機会がありました。これらはすでに壊れており、通常はかなり微妙な方法で行われます。有効なパラメーターを指定してSPを呼び出すことはほとんどなく、単純に機能しませんでした。 私の解決策は、データベースを必要な初期条件に初期化した後、トランザクション内でストアドプロシージャを実行するフレームワークを進化させ、同じトランザクション内で期待される結果をテストすることでした。トランザクションはテストの最後にロールバックされました。 これは非常にうまくいきました。しかし、データベースとの統合を伴うため、これを「統合テスト」と呼ぶ人もいます。個々のコンポーネントとそれらのコンポーネントの個々のテストケースをテストし、データベースの初期状態を完全に制御したため、これを単体テストと呼びます。 しかし、どこに線を引くべきでしょうか?これは統合テストですか、それとも単体テストですか?この種のテストが悪い考えである実際的な理由はありますか?これが「唯一の」統合テストである場合、これらのストアドプロシージャに対して実際の「単体テスト」を行う方法についての提案はありますか? 更新、3年半後。私の現在のプロジェクトでは、SSDT単体テストの使用を開始しましたが、成功した可能性もありますが、より優れている場合もあります。SQL Server単体テストを使用したデータベースコードの確認を参照してください。これらは通常、SQL Server LocalDBのインスタンスにデータベースプロジェクトを展開するので、これにより、テストに影響を与えるデータベース環境に関する質問がなくなります。事前テスト中に、データベースに必要なデータを入力します。これにより、データベースの内容に関する質問が削除されます。実際、私はこれを行うためにMERGEステートメントを使用して、現在のテストに必要のないすべてのデータがテストの前にデータベースから削除、挿入、または更新されていることを確認しています。彼らには問題があります: 彼らは速くない テスト条件を再利用することはできません 事前テストを再利用することはできません(プロジェクト内のすべてのテストにそれらを共通にしない限り) ユーザーインターフェイスを改善できる 上記の問題の理由の1つは、まだそれらについて不満を述べていないことです。興味のある方はこの機能を試してみて、不満を言うことをお勧めします。これが改善の方法です。

2
データベースとCIサーバー
私はCIサーバー(Hudson)を使用していますが、これは陽気にビルド、単体テストを実行、開発環境にデプロイしますが、統合テストを実行したいと思います。 統合テストはデータベースにヒットし、そのデータベースは問題のテストに関連するデータを含むように常に変更されます。しかし、これは問題を引き起こします-データベースが1つのテストのデータでスプラットされていないことを確認し、最初のテストセットが完了する前に、そのデータが2番目のプロジェクトによって上書きされることを確認するにはどうすればよいですか? 私は現在「希望」方法を使用していますが、現時点ではそれほどうまく機能していませんが、CIで設定されている統合テストの数が少ないという事実が主な原因です。 私が見ると、次のオプションがあります。 ローカルの(メモリ内の)テストデータベースインメモリのデータベースがOracleのトリガーやパッケージなどのすべての恐ろしさを処理できるかどうかはわかりませんが、テスト中に価値がないと感じるものはありません。 CIエグゼキューターローカルデータベースこれをセットアップして最新の状態に保つには、かなりの作業が必要になりますが、オプションとしてはまともです(ほとんどの作業は、現在のCIデータベースを最新に保つために既に行われています)。 単一の「統合テスト」エグゼキュータ実装するのが最も簡単なようですが、統合テストがかなり遅れることがあります。 データベース(またはテーブルのセット)のロック 私はいくつかの方法を逃したと確信しています(それらを追加してください)。CIサーバーでデータベースベースの統合テストをどのように実行しますか?どのような問題があり、どのような方法をお勧めしますか?(注:私はHudsonを使用していますが、CIサーバーの回答を受け入れて満足しています。詳細がそうでなくても、確実に移植可能なアイデアです)。 乾杯、 MLK

3
NoSqlデータベース-概念をカバーするまともなチュートリアル/本[終了]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、ソフトウェアエンジニアリングスタック交換のトピックになるようにします。 5年前休業。 NoSqlデータベースの背後にある概念を学習するための優れたリソースを探しています。 私が見つけたもののほとんどは特定のテクノロジー(MongoDb、CouchDBなど)に関連していますが、特定の領域(一部はグラフDB、一部のKey-Valueなど)に焦点を当てるのではなく、NoSqlの背後にあるすべての概念の後にいます。 あなたの経験から共有して、優れたリソースを私に指摘できますか?

5
MySQLは中小規模のビジネスアプリケーションで実行可能ですか
Microsoftスタック(VB.Net、ASP.Net、SQL Server)を過去10年間使用してきた後、WindowsとMacの両方の環境向けのアプリケーションを開発する必要に直面しました。 データベースのMySQLは両方のプラットフォームで使用できることが示唆されています。 MySQLはオープンソースプロジェクトであるという印象を受けましたが、最近購入されましたか?/ 引き継がれる?オラクル。 MySQL Webサイトは、別のオープンソースプロジェクトで使用されていない限り、ライセンス料を支払う必要があり、その料金は他のデータベースコストと同程度であることを示しているようです。SQL Server、Filemaker。 MySQLはLAMP環境で自由に使用できると誰かが提案しました(ただし、Windowsサーバーの場合はどうでしょうか?)。MySQLの経験を展開している誰かが、関連する可能性のある他の落とし穴とともに、これを確認または説明できますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.