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

データベースシステムのスキーマは、データベース管理システム(DBMS)でサポートされている正式な言語で記述された構造であり、データの編成を参照して、データベースの構築方法(データベーステーブルに分割)の青写真を作成します。

6
MySQLの2つのテーブルの構造を比較するクエリ
MySQLデータベースの1つのバックアッププロセスを自動化するために、2つのテーブルの構造(現在のバージョンと古いバージョン)を比較したいと思います。 2つのテーブルを比較できるクエリを考えられますか? 比較できる表の例を次に示します。 CREATE TABLE product_today ( pname VARCHAR(150), price int, PRIMARY KEY (pname) ); CREATE TABLE product_yesterday ( pname VARCHAR(150), price int, PRIMARY KEY (pname) ); CREATE TABLE product_2days_back ( pname VARCHAR(15), price int, PRIMARY KEY (pname) ); 最初の2つのテーブルの構造は同じです。最後のものは異なります。2つのテーブルの構造が異なるかどうかを知る必要があるだけです。私はそれらがどのように異なるかに興味がありません。


6
Redgate SQL CompareとVisual Studio 2010 Premium / Ultimateデータベースプロジェクト
現在、データベーステンプレートをプロジェクトテンプレートとして使用しているVisual Studio Professional Editionを使用していますが、その一部の機能(スキーマ比較ツールなど)は使用できません。スキーマ比較とデータベース更新スクリプトの生成は、Visual Studio 2010 Premium / Ultimateバージョンでのみ使用できます。 しかし、Visual Studioのスキーマ比較および更新スクリプト生成機能は、Redgate SQL Compareツールの機能と同じくらい充実していますか?(私も使用しませんでした)機能比較リストを見つけることができませんでした。両方を使用した人は、それを明確にするのに役立つでしょうか?

2
スキーマレス/フレキシブル+ ACIDデータベース?
私は、小規模企業の顧客向けのWebベースのClojureアプリケーションとして、VBベースのオンプレミス(ローカルにインストールされた)アプリケーション(請求書+在庫)を書き換えることを検討しています。これは、同様の取引の顧客向けのSaaSアプリケーションとして提供される予定です。 私はデータベースオプションを見ていました:私の選択はRDBMS:Postgresql / MySQLでした。最初の1年間で最大400人のユーザーにスケールする可能性があります。通常、ユーザーあたり1日あたり20〜40ページビューです。ほとんどの場合、静的ビューではないトランザクションに使用します。各ビューには、データの取得とデータの更新が含まれます。ACIDコンプライアンスが必要です(またはそう思う)。そのため、トランザクション量は膨大ではありません。 私の好みに基づいてこれらのいずれかを選択するのは簡単でしたが、この1つの要件のために、SaaSアプリの典型であると信じています:スキーマは、顧客/ユーザーを追加し、各顧客のビジネス要件の変更(最初に限って柔軟性を制限します)。私はDBの専門家ではないので、私が考えることができ、読んだことに基づいて、多くの方法でそれを処理できます。 複数のテナントをホストする単一のDBを使用して、MySQl / Postgresqlで従来のRDBMSスキーマを設計します。さらに、顧客を追加したり、既存の顧客に変更を加えたりするときに、将来の変更に対応できるように、各テーブルに十分な「浮動」列を追加します。これには、スキーマに小さな変更が加えられるたびにDBに変更が伝播されるという欠点があります。Postgresqlのスキーマ更新では、ロックなしでリアルタイムに更新できることを読んだことを覚えています。しかし、このユースケースでどれだけ苦痛であるか、どれほど実用的かはわかりません。また、スキーマの変更により、新しい/小さなSQL変更も導入される可能性があるためです。 RDBMSを使用しますが、データベーススキーマを柔軟な方法で設計します。エンティティ属性値に近い値を使用するか、単にキー値ストアとして使用します。(就業日、たとえばFriendFeed) オブジェクト全体をメモリ内にオブジェクトとして保持し、定期的にログファイルに保存します(edval、lmaxなど)。 MongoDBやRedisなどのNoSQL DBを探してください。しかし、私が収集できるものに基づいて、これらはこのユースケースに適さず、ACIDに完全に準拠していません。 SQLおよびACID準拠の動作を保持し、「新世代」のRDBMSであるVoltDbやJustoneDb(クラウドベース)などのNewSQL Dbsを探します。 neo4j(graphdb)を見ましたが、それがこのユースケースに適合するかどうかはわかりません スケーラビリティや分散コンピューティング以上のユースケースでは、「スキーマ+ ACIDの柔軟性+合理的なパフォーマンス」を実現するためのより良い方法を探しています。ネット上のほとんどの記事では、ACID / Transactions側を除外しつつ、パフォーマンス(NoSQL DBの場合)とスケーラビリティにつながる原因としてのスキーマの柔軟性について述べています。 これは、「スキーマの柔軟性とACID」トランザクションの「どちらか」のケースですか、それともより良い方法がありますか?

1
SQL Server 2012でdboスキーマの所有権を転送する方法
誤ってユーザーにdb_ownerスキーマの所有権を与えました(以下のUIのチェックボックスを使用)が、今はできません: 所有権を別のユーザーに譲渡する DBからユーザーを削除します(ただし、SQL Serverでログインを削除できます) 私が試したデータベースプリンシパルは、データベースのスキーマを所有しており、削除できません。 ALTER AUTHORIZATION ON SCHEMA::db_owner TO dbo そして、正常に完了している間、ユーザーにはまだ所有権があり、灰色で表示されているので、UIでも実行できないようです。 ソリューションを見つけました: Arronの答えに加えて、間違ったDB(facepalm!)で上記のコマンドを実行することに気付きました。DBが修正されると、上記のSQLと以下の回答の両方が機能しました。


2
PostgreSQL:スキーマdiff / patchツール[終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、データベース管理者のStack Exchangeのトピックになるようにします。 5年前に閉鎖されました。 次の設定を考慮してください。 実動DB 新しい機能を有効にするためにスキーマの変更が行われるdev db 新しい機能の開発が完了したら、pg_dump --schema-only両方のDBが同一になるまでprod dbスキーマを手動で更新する必要があります。このプロセスはエラーが発生しやすく、面倒です。 だから、私はできるツールを探しています: 2つのスキーマの違いの要約を表示しdiffます(など)。スキーマの単なるテキストの差分を探しているのではなく、「Table Xhas a new column Y」のような結論を導き出すことができるより精巧なツールを探していることに注意してください。 あるスキーマを別のスキーマに変換するSQLコードを自動生成します(などpatch) prodスキーマをより高度なdevスキーマに変換するのに役立つスキーマdiff / パッチツールはありますか?

5
eコマース注文表。価格を節約するか、監査/履歴テーブルを使用しますか?
初めてのeコマーススキーマを設計しています。私はしばらくの間このテーマについて読んでいますが、との関係について少し混乱order_line_itemしていますproduct A productを購入できます。さまざまな詳細がありますが、最も重要なのはunit_priceです。 Anがorder_line_itemへの外部キーがあるproduct_id、購入quantity購入しunit_priceた時点で、顧客が製品を購入します。 私が読んだもののほとんどは、を明示的に追加unit_priceするorder_line_item必要がある(つまり、を介して参照しないproduct_id)と述べています。店舗は将来的に価格を変更する可能性があり、注文レポート、追跡、整合性などを台無しにする可能性があるため、理にかなっています。 私が理解していないことは、なぜunit_price値を直接保存するのorder_line_itemですか? のunit_price変更を記録する監査/履歴テーブルを作成する方が良いproductでしょうか? ときにorder_line_item作成され、の外部キーproduct_auditテーブルが追加され、価格はそこから(参照によって)取得することができます。 このアプローチを使用することには多くの利点があるように思えます(データの重複、価格変更履歴など)。このアプローチを使用するeコマーススキーマの例に出くわしていませんが、何か不足していますか? UDPATE:私の質問はSlowly Changing Dimensionに関連しているようです。ただし、緩やかに変化するディメンションはデータウェアハウスとOLAPに関連しているため、私はまだ混乱しています。それで、Slowy Changing Dimensionタイプをメインのビジネストランザクションプロセスデータベース(OLTP)に適用できますか?私は多くの概念を混ぜているのだろうか、いくつかのガイダンスを大いに感謝します。

3
オープンソースのメタデータ管理ソリューションはありますか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、データベース管理者のStack Exchangeのトピックになるようにします。 6年前に閉鎖されました。 オープンソースのメタデータ管理ソリューションはありますか?何百ものエンタープライズデータベースのデータベーススキーマ、テーブル、データ項目のメタデータの詳細を保持するメタデータリポジトリを作成したいと思います。 特に、データベースのスキーマデータを自動的にクエリして、テーブルに関連するメタデータの変更を追跡できるものに興味があります。すなわち、列のデータサイズの変更、追加されたテーブルと列など。
13 schema  metadata 

1
PostgreSQLは共有メモリについて文句を言っていますが、共有メモリは問題ないようです
私はPostgreSQLサーバー上で一種の集中的なスキーマのドロップと作成を行ってきましたが、今は文句を言います。 WARNING: out of shared memory ERROR: out of shared memory HINT: You might need to increase max_locks_per_transaction. しかし、PostgreSQLをで再起動しただけでは問題が残りますservice postgresql restart。max_locks_per_transactionは何も調整しないと思われます。 このエラーのトラブルシューティングリストが機能していないため、少し疎遠になっています。 詳細1409291350:一部の詳細が欠落していますが、コアSQLの結果は保持しています。 postgres=# SELECT version(); PostgreSQL 9.3.5 on x86_64-unknown-linux-gnu, compiled by gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2, 64-bit そして: $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: …

5
大きなアプリケーションのために、同じデータベースの異なるスキーマのテーブルに外部キーを作成するのは悪い考えですか?
私は大きなpl / sql Webベースのアプリケーションを専用サーバーに転送する作業をしています。このアプリケーションは、プログラムコードの70パッケージを含む1つのスキーマにあります。このアプリケーションは、さまざまな時期に約15人で作成されました。また、異なるスキーマの参照テーブルに外部キーを作成することは通常の習慣でした。異なるスキーマに同じ参照テーブルを保持する必要がないため、本当に便利でデータベースを非常にクリーンに保つためです。 しかし、とにかく私のDBA(DBを使用して新しいインスタンスを作成し、Solarisゾーン内にアプリケーションをコピーした)は、今日、「異なるスキーマの外部キーは悪で、破壊する必要があります!」彼は自分の見解を説明しなかった。 大きなアプリケーションでそれを行うのは本当に悪い考えですか?

2
psql内で\ dt(+)を使用すると、テーブル(PostgreSQL)が表示されないのはなぜですか?
私はdonorスキーマreferenceに従ってテーブルを作成しました: CREATE TABLE reference.donor ( donor_code smallint PRIMARY KEY, donor_name character varying NOT NULL, donor_type smallint REFERENCES reference.donor_type (type_id), alpha_2_code char(2) REFERENCES reference.iso_3166_1 (alpha_2_code) ); 私はテーブルを次のように設定しました: INSERT INTO reference.donor (donor_code, donor_name, donor_type, alpha_2_code) SELECT donor_code, donor_name, donor_type, alpha_2_code FROM reference.donor_template; 実行すると: \dt+ reference.* psqlの中に私はreference.donorテーブルを見ます: List of relations Schema | Name …

2
DBプロジェクトとAzureサーバーを比較するときにSSDTスキーマ比較が失敗する
エンタープライズDBを構築したSQLデータベースプロジェクトがあります。SSDTのスキーマ比較ツールを使用して、内部およびAWSがホストするSQLサーバーに数回デプロイしました。 SQL Ent 2012 sp2を実行しているAzure Hosted Win 2012 Serverに投稿するときの問題。「比較が完了しました。違いは検出されませんでした」と戻ってきます。 Enterprise Managerを開き、スキーマをSQLプロジェクトと比較して、違いがあることがわかるので、これが間違っていることはわかっています。 2014年のリリースでこのツールがどのように機能しなくなったかについて話している記事をいくつか見つけましたが、それらはバージョンの違いにあります。 [はい、Googleでこれを行いました。私がそうするのを忘れることで悪名高いので、述べます。] https://www.google.com/webhp?ie=utf-8&oe=utf-8#q=ssdt+data+compare+fail+to+detect+difference&start=10 私がチェックした他のことには、DBアカウントに無制限のアクセス権があることを確認することが含まれます。管理コンソールに接続できます。ローカルプログラムに接続できます。 問題があったことの最後の確認: 番号1の単一の戻り値を持つSPを作成しました。 テストのために何も返されない可能性があります。 SPを作成した後、すべてのインスタンスでスキーマ比較を実行しましたが、Azureサーバーを除くすべてのインスタンスで差異が示されました。 更新 これはサーバーで明示的に行われていることを確認しました。2台のコンピューター上の2人のユーザーがまったく同じ問題を抱えているからです。

2
ユーザーが自分のスキーマ内で何でもできるようにするが、スキーマ自体を作成または削除しない
SQL Azureでスキーマを作成し、データベースロールに次のアクセス許可を付与しました。 CREATE ROLE myrole AUTHORIZATION dbo; EXEC sp_addrolemember 'myrole', 'myuser'; CREATE SCHEMA myschema AUTHORIZATION dbo; GRANT ALTER, CONTROL, DELETE, EXECUTE, INSERT, REFERENCES, SELECT, UPDATE, VIEW DEFINITION ON SCHEMA::myschema TO myrole; GRANT CREATE TABLE, CREATE PROCEDURE, CREATE FUNCTION, CREATE VIEW TO myrole; 上記で定義したアクセス許可により、myuser自分のスキーマを作成/削除できるため、問題を克服するために、ALTER ANY SCHEMAアクセス許可を試しました。しかし、この許可はユーザーがテーブルを作成/削除することも拒否します。 ユーザーが自分のスキーマ内で何でもできるが、スキーマ自体を作成または削除できないようにするには、どのような権限が必要ですか?

3
属性の最大数が不明なエンティティを実装する方法は?
私は野球シミュレーションプログラムを設計していますが、boxscoreスキーマの設計で問題に遭遇しました。私が抱えている問題は、各イニングで得点されたランの数を追跡したいということです。実際のプログラムでこれを行う方法は、演奏されるイニングごとに大きくなる動的配列を使用することです。 野球の試合に不慣れな人にとっては、9回のイニングの終わりに試合がまだ結ばれていない限り、試合は通常9イニングの長さです。したがって、野球の試合の長さは不定です。つまり、各イニングの得点に9列しか持たないようにデータベースを設計することはできません(厳密には18(9イニング* 2チーム)。データベースに保存する前にBase64としてエンコードしますが、これが使用するのに適した手法であるかどうかはわかりません。 重要な場合、私が開発しているデータベースはPostgreSQLです。 提案は大歓迎です!ありがとう!

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