タグ

DBMSに関するTakahashiMasakiのブックマーク (41)

  • 第4正規形とは[Q-pedia]

  • 転置インデックス - Wikipedia

    転置インデックス(てんちインデックス、Inverted index)とは、全文検索を行う対象となる文書群から単語の位置情報を格納するための索引構造をいう。転置索引、転置ファイル、逆引き索引などとも呼ばれる。 概要[編集] 情報処理テクノロジにおける転置インデックスとは、単語や数字といった内容から、それが含まれているデータベースやドキュメント群へのマッピングを保持するという、インデックス型データ構造である。ドキュメント群へのマッピングの場合、検索エンジンが実現される。転置インデックスファイルは、インデックスというよりはデータベースと呼んだほうがふさわしい場合もある。また、検索キーが単語(文字列)であり、連想配列の値が位置情報である場合、ハッシュテーブルの形態を取ることもある。 転置インデックスには大きく分けて2通りの手法がある。レコード単位転置インデックス(record level inve

  • Oracleパフォーマンス障害の克服(3)Bツリーインデックスに最高のパフォーマンスを―@IT

    Oracleデータベースの運用管理者は、突発的に直面するパフォーマンス障害にどうやって対処したらよいか。連載は、非常に複雑なOracleのアーキテクチャに頭を悩ます管理者に向け、短時間で問題を切り分け、対処法を見つけるノウハウを紹介する。対象とするバージョンはOracle8から9iまでを基とし、10gの情報は随時加えていく。(編集局) SQL処理(インデックス)にかかわる確認 前回「ロックをつぶせ!最初に疑うべき原因」では、SQLにかかわる問題の解決方法としてロックの確認方法を説明しました。データ更新には必ずオブジェクトの処理が行われていることを理解できたと思います。 SQL文をきっかけに更新されるOracleサーバ内のオブジェクトとして、今回はインデックスを取り上げます。SQL文発行時、直接データとのかかわりを意識しづらいオブジェクトなので、データの更新頻度やインデックスの作り方によ

    Oracleパフォーマンス障害の克服(3)Bツリーインデックスに最高のパフォーマンスを―@IT
  • 差分バックアップと増分バックアップの違い

    解説 不意のディスク・クラッシュに泣かないためには、重要なデータの定期的なバックアップが欠かせない。幸いWindows 2000/Windows XP/Windows Server 2003には、標準でバックアップ・ユーティリティ(ntbackup.exe)が付属している(Windows NT 4.0にもバックアップ・ユーティリティは付属しているが、スケジュール機能が用意されていない、ファイルへバックアップできないなど、いくらか制限があった)。これを使えば、ローカル・ディスクのファイルはもちろん、ネットワーク上の共有ディレクトリのファイルを、テープ・ストレージやリムーバブル・ストレージ(MOやZipなど)、あるいはほかのコンピュータの共有フォルダにバックアップすることができる。 なお、Windows XP Home Editionでは、バックアップ・ツールはデフォルトではインストールされな

    差分バックアップと増分バックアップの違い
  • MySQL :: MySQL 8.0 リファレンスマニュアル :: B.3.4.3 NULL 値に関する問題

    NULL 値の概念については、NULL が空の文字列 '' と同じであると考えがちな SQL の初心者が混乱することがよくあります。 これらは同一ではありません。 たとえば、次の 2 つのステートメントは完全に異なります。 mysql> INSERT INTO my_table (phone) VALUES (NULL); mysql> INSERT INTO my_table (phone) VALUES (''); 両方のステートメントで phone カラムに値が挿入されていますが、最初のステートメントは NULL 値を挿入しており、2 番目のステートメントは空の文字列を挿入しています。 最初のステートメントの意味は「電話番号がわからない」、2 番目のステートメントの意味は「この人は電話を持っていないため、電話番号がない」と見なすことができます。 NULL を処理する場合は、IS NU

    TakahashiMasaki
    TakahashiMasaki 2009/09/07
    NULLを比較すると偽に
  • ERD(entity-relationship diagram):実体関連図

    2017/06/08水野[ prev | index | next ] ERD(entity-relationship diagram):実体関連図 概念モデルの記述に使われる実体関連図(ERD) 概念設計と論理設計 初めにデータベースを作成する目的を決めておくこと。データモデルを作る過程では常に目的を意識して取捨選択しよう。 概念設計 実世界の注目する部分を抽出して、データの纏まりや関連を整理し、簡潔なモデルを作成する。利用目的から見て抜けが無いことが必要である。 ※関係ありそうなデータ項目を何でも入れたモデルにしようとすると、切りがない。データベースを作る目的に応じて判断しよう。 誰が見ても理解できることも重要。他者の理解を可能にするには、モデルをどの様に記述するか共通の枠組みが必要になる。ER図が良く使われる。 ER図 データは互いに関係を持っているので幾つかの纏まりに切り分けて整理

  • 埋込みSQL:標識変数

    6 埋込みSQL この章では、埋込みSQLプログラムの基的な技法およびその適用方法について説明します。この章の項目は、次のとおりです。 ホスト変数 標識変数 基的なSQL文 DML RETURNING句 カーソル スクロール可能カーソル オプティマイザ・ヒント CURRENT OF句 カーソル文 スクロール不可カーソルを使用する完全な例 スクロール可能カーソルを使用する完全な例 位置付け更新 ホスト変数 Oracleホスト変数を使用してデータおよびステータス情報をプログラムに渡します。同様にプログラムはホスト変数を使用してデータをOracleに渡します。 出力ホスト変数および入力ホスト変数 ホスト変数はその使用方法によって、出力ホスト変数または入力ホスト変数と呼ばれます。 SELECT文またはFETCH文のINTO句内のホスト変数は、Oracleによって出力される列の値が入るため出力

  • SELECT FOR UPDATE - オラクル・Oracle SQL 入門

    SELECT 時に明示的な行ロックを行なう方法 SELECT 〜 FOR UPDATE は行レベルでロックをするための SQL 文である。そのために FOR UPDATE で SELECT した後のプロシージャ処理で処理中のレコードが更新されたり、削除されたりすることを防ぐことが可能である。 しかし、一度に大量のレコードをロックしたり、表全体をロックするような大規模のロックは 同時操作性にも問題が生ずるので極力控えるように設計したい。要件上、どうしても必要な場合には LOCK TABLE などの表ロックを検討する。 SELECT 〜 FOR UPDATE [WAIT | NOWAIT] Oracle 9i から FOR UPDATE の WAIT に待機秒数が指定できる。(※1) SELECT 〜 WHERE ... FOR UPDATE [OF [table_name.]column_n

    TakahashiMasaki
    TakahashiMasaki 2009/02/05
    FOR UPDATE OF
  • トランザクションの一貫性を保証するロック

    ロックの仕組み 第25回、26回と2回にわたりトランザクションの話をしてきました。第25回でも簡単に触れましたが、トランザクションの一貫性を保証するために、データベースサーバはロックという仕組みを利用しています。今回と次回にわたって、このロックの仕組みについて解説することで、トランザクションの裏側を解明したいと考えています。 では早速、例題を実行しながら、SQLの確認をしていきましょう。 トランザクション中の最新データを確認する 初めに、第25回で実行した例題1と同じような例題を実行してみましょう。第25回の例題1は、1人のユーザーがデータを更新中には、もう1人のユーザーはデータの参照ができないことを確認する例題でした。第25回の例題と同様に、2つのクエリアナライザを起動して、片方はログイン名「sa」で、もう片方はログイン名「yamada」でログインをします。 では、まず例題1でログイン名

    トランザクションの一貫性を保証するロック
  • どうも世間では、思ったよりDBエンジニアが不足している様だ: 不倒城

    ちょっと技術的な話。oracle分かる人にしか分からないかも。 最近取引先のシステムを見る機会が何度かあったのだが、昨日すんごいとこ見た。 DBが重くて業務にならないというから、ちょっと中を覗かせてもらったらもうエラいこっちゃ。 ・業務ロジックの殆どをファンクション・プロシージャで構成している。なのに、キャッシュヒット率が妙に低い。 ・調べてみようと思ったら一回もstatspackが取得されていない。(担当者には、「statspack?syslogならとってあるんですが…」と言われた) ・各テーブルのindexがどういう訳か全列に貼られている。ちなみにindexは全テーブル例外なくその一個だけ(プライマリキーを除けばだが)。 ・と思ったら、PKが文字列だったりするテーブルがあちらこちらにある。 ・試しにファンクションを一つ二つ見てみたら、なんか普通にクロス結合されまくっていてちょっとくらっ

    TakahashiMasaki
    TakahashiMasaki 2009/01/20
    (索引が全列にあるんだったらどの列を検索しても高速になるんじゃないか("全indexが複合indexなんです"<-あー…… ( (;-_- ) < い…意味がないっ!(w
  • Oracle SQL(SELECT:SELECT文のCASE句の使い方)

    CASE式の構文 CASE式はSQL文等の中で、IF...THEN...ELSE...ENDの論理構造を使用できます。 CASE式は関数とは異なり、SELECT文等のなかでの式の扱いになります。 DECODE関数で同様のことができますが、CASE式の方が考えやすくななります。 CASE <単純CASE式> | <検索CASE式> [<ELSE句>] END <単純CASE式> <式> WHEN <比較式1> THEN <戻り式1> [, WHEN <比較式2> THEN <戻り式2>] ... [, WHEN <比較式n> THEN <戻り式n>] <検索CASE式> WHEN <条件式1> THEN <戻り式1> [, WHEN <条件式2> THEN <戻り式2>] ... [, WHEN <条件式n> THEN <戻り式n>] <ELSE句> ELSE <ELSE式> 単純CASE式

  • ORACLE/オラクルSQLリファレンス(COALESCE)

    COALESCEは、式1がNULL以外の値を戻せば終了しますが、式1がNULLを返した場合は、式2を実行します。 式2がNULLを返せば、次の式3を実行し、引数で指定された式がNULL以外の値を返すまで続きます。 引数で指定された全ての式がNULLを返した場合、NULLをCOALESCEの結果として返します。 例1) COALESCEを使用して、以下の条件で処理結果を返します。 price1がNULL以外の場合、price*0.5の結果を返す。 price1がNULL、かつ、price2がNULL以外の場合、price2を返す。 price1がNULL、かつ、price2がNULLの場合、500を返す。 SQL> select 2   product_id, coalesce( price1 * 0.5, price2, 500 ) 3  from sales; PRO COALESCE(

    TakahashiMasaki
    TakahashiMasaki 2009/01/18
    COALESCE(なんて読むん) 関数
  • SQL の CASE 式って知ってますか? :: Drk7jp

    今日、同僚から MySQL って CASE 式を SQL の中に記述できましたっけ?と聞かれて、SQL 文に CASE - when 式を記述できることを初めて知りました。PL/SQL でのみ有効な構文かと勘違いしてました。 CASE 式はSQL-92 で標準に取り入れられており、意外と歴史は古いです。SQL99 からかと思いました。しかしながら、超便利な CASE 式を知っている人は意外と少ないと思います。Oracle なら同様の処理が記述できる DECODE 関数の方がメジャーですね。実際僕もこちらを用いて業務 SQL を書いてました。 しかし実際のところ、CASE 式の方が明らかに高機能でした。DECODE 関数を使っているOracleユーザには、是非CASE 式への乗り換えを勧めます。CASE 式には下記の通り4つの利用方法があります。 既存のコード体系を新しい体系に変換する(DE

  • 素早く正規形を見抜く実践テクニック

    連載は、ITシステム開発の現場でプログラミングやSQLのコーディングを行っているエンジニア(データベース利用者)が、データ管理者(DA)やデータベース管理者(DBA)へステップアップするための第一歩として有効な基礎知識を紹介する。(編集局) (2/4)

    素早く正規形を見抜く実践テクニック
  • データモデル・正規化

    ◆非正規形 納入伝票 (納入伝票番号、 日付、倉庫コード、倉庫名、倉庫住所、 一時保管場所候補1、一時保管場所候補2、 製品コード1、製品名1、製品級1、製品幅1、製品重量1、納入数量1、 製品コード2、製品名2、製品級2、製品幅2、製品重量2、納入数量2、 製品コード3、製品名3、製品級3、製品幅3、製品重量3、納入数量3) ◆第一正規化 第一正規化の目的は、集合(繰り返し)項目を別の表に分離することである。 非正規形の例では「製品コード」と「一時保管場所候補」が繰り返し項目であり、 ここをバラして別テーブルとする。 これによって、 納入伝票に書ける製品が3つまで、という制限も、 一時保管場所候補が2つまで、という制限も、 取り払うことが出来る。 このように、列の中の繰り返し項目を排除することで、 大体のテーブルの構造が見えてくる。 ◆第一正規形 納入伝票 (納入伝票番号、日付、

  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • 素早く正規形を見抜く実践テクニック(4/4) ― @IT

    連載は、ITシステム開発の現場でプログラミングやSQLのコーディングを行っているエンジニア(データベース利用者)が、データ管理者(DA)やデータベース管理者(DBA)へステップアップするための第一歩として有効な基礎知識を紹介する。(編集局) (4/4)

    素早く正規形を見抜く実践テクニック(4/4) ― @IT
  • データの正規化

    ■正規化の手順 非正規形 表の1レコードが、「受注番号」をキーとして、こんなふうに レイアウトされているとします(表X)。 1レコード中に「商品明細」が繰り返しいくつもあります。 (一つの明細「商品番号・商品名・単価・数量・金額」が、 一つのレコードの中に繰り返し続いて存在している。) レコードレイアウトが固定長だとすると、 明細の数に固定的な上限が必要となり拡張性に欠けますし、 同じ商品番号に関する明細が重複してあるか否かのチェックも 簡単には出来ません。 このようなレコード内の繰り返し項目は設計や実装の 柔軟性や拡張性を大きく損ないます。 そこで、このような繰り返し項目は、別の表に分離します。 第一正規形 繰り返し項目を、表Bとして 分離しました。 表Bは、[受注番号・商品番号] という連結キーを持ちます。 ここに着目! 第二正規形 連結キーの両方の項目が決まらなくても、 値

  • データウェアハウスとは - IT用語辞典

    概要 データウェアハウス(DWH)とは、企業などの業務上発生した取引記録などのデータを時系列に保管したデータベース。また、そのようなシステムを構築・運用するためのソフトウェア。“warehouse” は「倉庫」の意。 一般的にデータウェアハウスは雑多なデータを単にそのまま記録するわけでなく、組織内で運用される様々な情報システムやデータベースなどからデータを集めて同じ意味のデータは横断的に扱えるようにするなど統合し、データの主題ごとに整理し直して格納する。このデータの収集や整形、統合を専門に行うツールを「ETLツール」(Extract/Transform/Load、ELTツールとも)という。 データは発生した時系列に記録していき、更新や削除は行わなず、過去のある時点の個別のデータを参照できるように格納される。集積された過去のデータを元に、OLAPやBIツールなどの分析ツールを用いて抽出や集計

    データウェアハウスとは - IT用語辞典
  • データウェアハウス(でーたうぇあはうす)

    基幹系業務システム(オペレーショナル・システム)からトランザクション(取引)データなどを抽出・再構成して蓄積し、情報分析と意思決定を行うための大規模データベースのこと。こうしたデータベースを中核とした意思決定支援システムのこと、あるいはこのようなシステムの構築概念のことを指す場合もある。 意思決定支援に最適化したデータベースで、その特徴は分析に適した形で加工していない生のデータをそのまま(詳細データのまま)格納して長期間保持することにある。 データウェアハウスを提唱したビル・インモン(William H. Inmon)氏の定義(1990年)によれば、「意思決定のために、目的別ごとに編成され、統合化された時系列で、更新処理をしないデータの集まり」とされる。 基幹系業務システムは通常、「経理」「販売」「在庫」「購買」というように、機能ごとにシステムが構築されている。これらのシステムでは、データ

    データウェアハウス(でーたうぇあはうす)