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

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

2
誰がウェブ開発でデータベースを設計していますか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 3年前休業。 Web開発のコンテキストで、誰がデータベースを設計しますか?バックエンドのWeb開発者をサーバー側の処理、データモデリングなどに関連付ける情報のホスト全体にもかかわらず、方程式のデータベース設計の側面は神秘的に存在しないようです。 誰が物理データベースをセットアップするかについては言及していません。データベースの論理モデルを設計し、ユーザーストーリーのインタビューを実施して、必要なフィールド、フィールド仕様などについての情報を入手する人について言及しています。 。 データベースの(PROPER)設計は簡単な作業ではなく(私はこの 672ページャーを読んでいます)、簡単に職業全体になる可能性があることに気付きました。ただし、インターネットを上下に検索しても、Web開発のコンテキストで誰がこのタスクを処理することが予想されるかについては、驚くほど少ない結果しか得られていません。

4
データ構造を使用するアルゴリズムとデータベースを使用するアルゴリズムの違いは何ですか?
一般的な質問 データ構造を使用するアルゴリズムとデータベースを使用するアルゴリズムの違いは何ですか? いくつかのコンテキスト これはしばらくの間私を悩ませてきた質問であり、私はそれについて説得力のある答えを出すことができませんでした。 現在、もちろん、データ構造に深く関わるアルゴリズムの理解を深めることに取り組んでいます。これらは、バッグ、キュー、スタック、優先度キュー、ヒープなどの基本的な構造です。 また、データベースを日常的に使用して、エンドユーザーによって処理および送信された、またはプログラムによって処理されたデータを保存します。データベースのテーブルに基づいて生成される独自のデータ構造を持つDALを介して、データを取得して送信します。 私の質問は、データベースを使用してデータをソートして、昇順/降順で注文したデータを返送するか、データを取得してロジックにロードし、このデータを優先度キューで処理し、ヒープソートするオプションがあるときに発生しますそれのすべて。または、レコードのサブセットをロードするのではなく、データベースを使用してレコードを検索し、バイナリ検索のようなものを使用して、興味のあるレコードを見つけることもできます。 私の考えでは、通信は高価であるため、送信する前に、データベース側でできるだけ多くの操作を実行しようと思います。また、データベースのデータではなく、独自のロジック内で厳密に定義されたアルゴリズムとデータ構造を使用してデータを処理するのはいつですか。 だからここに質問があります... ご質問 データ構造とデータベースの違いは何ですか? データベースのロジックではなく、独自のロジック内でのみ定義されたデータ構造を使用するアルゴリズムをいつ使用しますか? @Harveyの投稿:データベース内のメソッドを使用すると、独自のロジック内のメソッドよりも効率が悪くなりますか? @mirculixxの投稿:メソッドを効率的にするものは何ですか? @Harveyポスト:データベースで行うよりもデータ構造でデータを処理する方が高速ですか? 明確化 @Grant post:私が通常使用するデータベースはリレーショナルであり、これらの質問はそれらを使用することから生まれています。ただし、これらの質問はどの永続フレームワークにも適用できると思います(フレームワークとは、最も一般的な意味での意味です)。 特定の文脈がないと答えが難しいことは知っています。考えられる食べ物、アドバイス、または議論のポイントは、主に私が探しているものであり、最もありがたいです!

4
データベースクエリはページ自体から抽象化する必要がありますか?
PHPでページ生成を作成するとき、データベースクエリが散らかっている一連のファイルを作成していることがよくあります。たとえば、次のように、投稿に関するデータをデータベースから直接フェッチしてページに表示するクエリがあるとします。 $statement = $db->prepare('SELECT * FROM posts WHERE id=:id'); $statement->bindValue(':id', $id, PDO::PARAM_INT); $statement->execute(); $post = $statement->fetch(PDO::FETCH_ASSOC); $content = $post['content'] // do something with the content これらの迅速な1回限りのクエリは通常は小さいですが、データベースのやり取りコードの大部分が結局乱雑に見えることがあります。 場合によっては、ポスト関連のdbクエリを処理する単純な関数ライブラリを作成し、コードのブロックを単純なものに短縮することで、この問題を解決しました。 $content = post_get_content($id); そして、それは素晴らしいことです。または、少なくとも何か他のことをする必要があるまでです。たぶん、最新の5つの投稿をリストに表示する必要があります。ええと、いつでも別の関数を追加できます。 $recent_posts = post_get_recent(5); foreach ($recent_posts as $post) { ... } しかしSELECT *、それは結局クエリを使用することになります。これは通常、とにかく必要はありませんが、しばしば複雑すぎて合理的に抽象化できません。最終的に私は、すべての単一のユースケースのデータベース相互作用関数の大規模なライブラリ、またはすべてのページのコード内の一連の乱雑なクエリのいずれかになります。そして、これらのライブラリを構築した後でも、以前に使用したことがない小さな結合を1つ実行する必要があることに気づき、その仕事を行うために、突然別の高度に専門化された関数を作成する必要があります。 確かに、一般的なユースケースや特定のやり取りのクエリに関数を使用することはできますが、生のクエリを書き始めるとすぐに、すべてに直接アクセスできるようになります。それとも、怠惰になって、MySQLクエリで直接実行する必要があるPHPループで処理を開始します。 インターネットアプリケーションの記述に詳しい方にお願いしたいと思います。コードの追加の行と、抽象化によって導入される可能性のある非効率性に見合う保守性の向上はありますか。それとも、直接クエリ文字列を使用するだけで、データベースの相互作用を処理するための許容できる方法ですか?

2
BツリーとRツリーの比較-リンクされた一連のリンクされたリストだけではありませんか?
私はBツリーにかなり精通しており、主にデータベースに電気、エアコン、ハードドライブスペースを十分に供給し続ける必要があります。二重(doubl [ie、ey]?)リンクリストに関連付けます。 今日、昼食時の開発者の1人がRツリーについて言及しました。 ウィキペディアに飛び乗って読み始めました。それは背の高いBの木のようなひどい音に聞こえました。残念ながら、数学の背景が深いと、同僚の何が話しているのか理解するのが難しくなります。 誰かがBツリーとRツリーのいくつかの違いを明確にしてくれるといいのですが。私はおそらくとにかくみんなに尋ねることになるでしょうが、彼らが私の質問に答えるという保証はありません。おそらく彼らは神についてとりとめないようになるでしょう何を知っています。。。

5
Microsoftの新しいLocalDBを使用するアプリケーションをデプロイするには何が必要ですか?
この新しいLocalDBをユーザーのマシンで実行するために、どのMicrosoftコンポーネントをインストールする必要があるか知りたいのですが。 現在CTP3で:SQL Server Express LocalDB LocalDBは、SQL Server Express Editionの新しい軽量の展開オプションであり、非常に短時間でインストールできる前提条件が少なくなっています。これは、デスクトップアプリケーションまたはツール用の組み込みSQL Serverデータベースを必要とする開発者に最適です。LocalDBはSQL Expressと同じプログラミング機能をすべて備えていますが、サービスとしてではなく、アプリケーションとインプロセスで実行されます。SQL Serverコード名「Denali」CTP3ダウンロードの一部として入手できます。 上記はMicrosoftのWebサイトからの抜粋CPT3の新機能 これは、小さな1ユーザーのデスクトップアプリケーションに最適なSQLデータベースのように聞こえます。インストールに含める必要があるものを見つけようとしています。これを組み込みデータベースとして使用したいのですが、Microsoftコンポーネントをインストールする必要があるかどうか、または他のMicrosoftコンポーネントが以前にインストールされていることを確認します。 この新しいLocalDBを実行するためにどのMicrosoftコンポーネントをインストールする必要があるか知っている人はいますか?必要なコンポーネントの存在を自動的に検出してインストールするインストーラーはありますか?

9
MysqlまたはPostgreSQLを使用している大規模な銀行はありますか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、専門知識によって裏付けられると期待していますが、この質問は、議論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 8年前休業。 銀行の最大規模はOracleを使用すると常に思っていました。ただし、MysqlやPostgreSQLの代わりにOracleを実際に使用している証拠はなく、誰もその秘密を知りません。 彼らが実際に何を使用しているのか?Mysqlを使用して何百万ものトランザクションが発生するATM /銀行システムを構築できますか?PostgreSQLを使用できますか?または、Oracleのみを使用する必要がありますか?

4
さまざまなタイプのNoSQLデータベースの弱点
ここに私の質問があります:異なるタイプのNoSQLデータベースの弱点は何ですか?具体的には、キー値ストア、グラフデータストア、ドキュメントストアの弱点は何ですか? 私は長所を見つけるのは簡単な時間でしたが、弱点に関するドキュメントは不足しているようです。 編集:相互に比較したり、リレーショナルデータベースと比較したりします。

5
ストレージフォーマットをどのように決定するか、またそれらのいくつかの使用例は何ですか?
プログラムデータを保存する方法はいくつかあります(ゲーム、従業員データベース、プログラム構成などにファイルを保存します)。 プレーンテキスト(考える.iniと.conf) XML データベース(MySQL、SQLite ...) .zip および類似のいくつかのファイルを含む(異なる形式で) バイナリファイル(.docたとえば、シリアル化ツールによって作成されたものなど) 上記のフォーマットのさまざまな使用例は何ですか?それらの長所と短所の対比(速度、柔軟性、ファイルサイズ、使いやすさなどを考えてください)?異なるタスクのためにそれらをどのように決めるのですか? zip形式について:これは、他のファイルを格納するためだけに使用されます。別の圧縮形式の場合もあります。これにより、イメージファイル、サウンドファイル、テキストファイルなど、いくつかのファイルの構造が可能になります。例として、ファイルを含むメッセージの保存形式があるとします。次のファイルを圧縮ファイル内に含めることができます。 message.txt (containing the message) attachments (folder containing attachments) audio.wav picture.jpg

2
複数のアプリインスタンスでデータベースの移行を安全に実行するにはどうすればよいですか?
高速(1秒未満)と低速のデータベース移行(> 30秒)の両方が混在するアプリケーションがあります。現在、データベースの移行をCIの一部として実行していますが、CIツールはアプリのデータベース接続文字列をすべて(複数の環境で)認識している必要があるため、理想的ではありません。このプロセスを変更して、アプリケーションが起動時に独自のデータベース移行を実行するようにします。 ここに状況があります: このアプリケーションの複数のインスタンスがあり、約5つが本稼働しています。それらを呼び出しましょうnode1, ..., node5。各アプリは単一のSQL Serverインスタンスに接続し、ローリングデプロイを使用していません(すべてのアプリは私の知る限り同時にデプロイされています)。 問題:長期にわたる移行があるとしましょう。この場合、node1は開始してから、マイグレーションの実行を開始します。さて、node4開始し、長期実行の移行がまだ完了していないためnode4、移行の実行も開始します->データ破損の可能性はありますか?この問題をどのように防止しますか、または問題は心配するほど重要ですか? 私はこの問題を分散ロックで解決しようと考えていました(etcdそれらを使用するか、それに沿って何かを使用します)。基本的に、すべてのアプリがロックを取得しようとし、そのうちの1つだけがロックを取得して移行を実行してから、ロックを解除します。残りのアプリが起動してクリティカルセクションに入ると、すべての移行がすでに実行されているため、移行スクリプトは終了します。 しかし、私の直感は「これはやり過ぎです。もっと簡単な解決策があるはずです」と言っているので、他の誰かがもっと良いアイデアを持っているかどうかを確認するためにここに尋ねると思いました。

2
リポジトリへまたはリポジトリへ
ドメインドリブンデザインについて初めて知ったとき、データベースに対する穴居人のようなSQLクエリを投げたクールな子供たちにとって、かつては一流であるように思われるリポジトリと作業単位パターンも紹介されました。EFやNHibernateのようなORMは、作業単位とリポジトリの両方を1つのAPI(セッションまたはコンテキストと呼ばれる)に実装するため、そのトピックを深く掘り下げれば読むほど、それらは必要なくなったように見えます。 今、私は何をすべきかわかりません。リポジトリするかしないか。このようなリークの多い抽象化は複雑すぎてデータアクセスを簡略化するものは一切追加しないという主張を本当に理解していますが、アプリケーションのあらゆる側面をEntity Frameworkなどに結合するのは適切ではないと感じます。通常、私はいくつかの簡単なガイドラインに従います: ドメイン層は、エンティティ、サービス、リポジトリを含むシステムの中心です... インフラストラクチャ層は、ファイル、データベース、プロトコルなどのインフラストラクチャ関連のドメインインターフェイスの実装を提供します。 アプリケーション層は、物事を結び付け、すべてをオーケストレーションするコンポジションルートをホストします。 私の解決策は通常次のようになります: Domain.Module1 Domain.Module2 IModule2Repo IModule2Service Module2 Infrastructure.Persistence Repositories EntityFrameworkRepositoryBase MyApp Boostrapper -> inject EntityFrameworkRepositoryBase into IRepository etc. 私は、IRepository<'T>データへのアクセス方法を教えてくれる他のものに依存しないドメインの問題でもあるを使用して、ドメインレイヤーをクリーンに保ちます。IModule2Serviceデータアクセスを必要とする具体的な実装を行うときは、注入DbContextし、これによってインフラストラクチャレイヤーに直接結合する必要があります。(Visual Studioプロジェクトに入ると、循環依存関係のために、これは本当にトリッキーになる可能性があります!) さらに、作品の保管庫やファックトンの代わりになるものは何ですか?CQRS?純粋なインフラストラクチャフレームワークを抽象化するにはどうすればよいですか?

3
データベースアクセスをカプセル化するにはどうすればよいですか?
データベースアクセスの管理に使用される適切なクラス構造の例は何ですか?私はクラスカプセル化のファンであり、データベースタスクを実行しないようにコンテナ(車など)を好みます。 また、将来的にはデータベースキャッシュなどを簡単にドロップできる機能も必要です。 私はしばしば、単一のシングルトンクラスによって実行される検証とデータベースアクセスのためのゲッターとセッターを備えたコンテナークラスのパターンを採用しています。そうは言っても、これはしばしば2つの間で混合され、かなり混乱します。 私の質問が理解しにくい場合は申し訳ありません。データベースに関する条件については、はっきりとはわかりません。必要に応じて、遠慮なく説明を求めてください。
10 c++  database 

2
Key-Valueストレージのアイテムを期限切れにするアルゴリズムは何ですか?
現在のKey-Valueストレージがアイテムの「有効期限」を実装する方法について考えていました。現在、私は私の心の中に2つのバリアントを持っています: それらは何もしません(期限切れのデータを保持します)。たとえば、何らかのキーでGETした場合にのみチェックします。ここでの問題は、メモリが限られている場合、期限切れのアイテムが削除されないことです。 それらは、「期限切れが最も早い」ことを可能にするために追加のデータ構造を保持します。私はそれがこのようなものでできることがわかります: storage_data = dict(key -> [value, expire_timestamp]) expire_tree = SomeBinaryLikeTree(expire_timestamp -> [keys])

22
ソフトウェア開発者インタビューの質問-公正か不公正か[終了]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、専門知識によって裏付けられると期待していますが、この質問は、議論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 8年前休業。 私は電話で会社にインタビューし、ソフトウェア開発者としての地位を求め、次の質問をしました。関係会社はデータベースベンダーではないことを付け加えておきます。 クエリオプティマイザーはどのように機能しますか? データベースのパフォーマンスが悪い場合、パフォーマンスログを使用して問題を見つけるにはどうすればよいでしょうか。 最初の電話インタビューで、すべての候補ソフトウェア開発者(卒業生または経験者)にそのような質問をするかどうかを尋ねました。彼らは、データベース開発に関する候補者の知識をテストすることを好むと答えました。 これらの質問はソフトウェア開発者のインタビューで尋ねるのは不合理であり、私のインタビューを終わらせることを要求することを会社に書いたいと思います。 以下の仮定の妥当性を確認したい a)これらの質問は、データベース開発の質問としてかなり分類することはできません。 b)質問はDBAのインタビューには適していますが、ソフトウェア開発者のインタビュー(経験の有無にかかわらず)にはまったく無理です。 c)最初の質問は、データベースベンダーにのみ関連しています。 d) 2番目の質問は公平ではありません。ソフトウェア開発者は通常、データベースパフォーマンスログを処理しないためです。これはDBAの仕事だからです。 おそらくあなたの何人かは、私が会社に手紙を書く前に、私の仮定についてコメントするか、他の提案をするのに十分親切でしょう。

3
大量の_構造化_データを保存するにはどうすればよいですか?
アプリケーションは継続的に(ほぼ毎秒)ユーザーの位置を収集して保存します。 このデータは構造化されています。リレーショナルデータベースでは、次のように保存されます。 | user | timestamp | latitude | longitude | ただし、データが多すぎます。ユーザーごとに、毎日60×60×24 = 86,400レコードになります。ユーザー数が1000であっても、これは毎日86,400,000レコードを意味します。 そして、それは毎日86,400,000レコードだけではありません。これらのレコードが処理され、それらの処理されたバージョンも保存されるためです。したがって、その数に約2を掛けます。 データの使用方法 基本的に、位置データのより粗いバージョンを作成して、より簡単に使用できるようにする予定です。あれは: タイムスタンプ付きの受信データを並べ替えます。 このリストを順番に繰り返して、場所が大幅に変更されたかどうかを判断します(緯度と経度の変化量を確認してください)。 重要ではない場所の変更を出力の単一のエントリとして表します(したがって、出力は場所データのより粗いバージョンです)。 大幅な変更のためにさらに大きな緯度と経度の変更を要求することにより、出力でこのプロセスを繰り返します。したがって、前の出力から生成される出力は、さらに粗くなります。 プロセス全体を必要なだけ繰り返します。 さまざまな解像度を集計してユーザーに送信します。また、後で使用できるように、データのすべての解像度を保存します。 このデータを保存するには何を使用すればよいですか?リレーショナルデータベースまたはNoSQLソリューションを使用する必要がありますか?このアプリケーションを設計するとき、他に何を考慮すべきですか?

3
データベースのドメインロジックの時代は終わりましたか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 3年前休業。 私は最近、2016年にこの意見に出くわしましたが、データベースのドメインロジックにはまだケースがあると言っています。 これは完全に時代遅れだと思いました。その男がまだ90代に住んでいるのか、それとも本当のことなのかと思います。レガシーシステムを脇に置きます。 セキュリティ要件のため、データベースにドメインロジックを含めることについてはどうでしょうか。それは本当にやるべきことですか?
9 database 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.