タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

DBに関するZephidのブックマーク (7)

  • 【DBテーブル設計】 正規化しない事のメリット

    脱初心者向けです ※決して、アンチ正規化ではございません※ 1. 先にまとめ 正規化と検索SQLのパフォーマンスには強いトレードオフ関係が存在します。 厳しく正規化すればパフォーマンスが悪化し、パフォーマンスを求めて非正規化すればデータの不整合が発生しやすくなります。 2. 詳細 正規化とパフォーマンスのトレードオフ関係図 達人に学ぶDB設計 徹底指南書[1]より引用。 記事では、この関係図を深掘りしていきます。 そもそも正規化の目的ってなんだっけ? データを漏れなく更新し、整合性を維持する。 それだけでなく、データの柔軟性・拡張性の向上も期待できます。 しかしその一方で、厳格に正規化を行うとSQLのパフォーマンスが低下してしまいます。 その理由は 「結合処理(JOIN)」 が必要になるからです。 十数行ならともかく、実際のシステムで扱うようなデータ量に対して結合を行えば...計算処理に

    【DBテーブル設計】 正規化しない事のメリット
    Zephid
    Zephid 2024/08/01
    「結合、即、悪」と述べられているが、そこに関して突っ込んだ説明がないので信憑性に欠ける。初心者向けなら尚更その辺の説明が欲しい。
  • SQLにおける行間比較で、相関サブクエリを使わなくて済む「ウィンドウ関数」とは? | 翔泳社

    SQLの達人と呼ばれるミックさんがモダンなSQLプログラミングの手法について解説した『達人に学ぶSQL徹底指南書 第2版』。今回、書からミックさんが主役級と語る「ウィンドウ関数」について紹介します。ウィンドウ関数を利用することで、SQLでの行間比較において難しい相関サブクエリを使わなくてよくなるのです。 記事は『達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ』の「2 必ずわかるウィンドウ関数」を抜粋し、掲載にあたり編集したものです。 順序を使ったプログラミングの復活 記事ではウィンドウ関数というSQLの道具を取り上げます。1990年代の後半にアイデアが登場し、2000年代にOracleDb2、SQL Server などのDBMSでサポートされるようになり、2017年にMySQLがサポートを表明したことで、現在では主要なすべてのDBMSで利用することが可能になりま

    SQLにおける行間比較で、相関サブクエリを使わなくて済む「ウィンドウ関数」とは? | 翔泳社
    Zephid
    Zephid 2024/07/04
  • 【初級】新人SEのためのSQLの基礎 第1回(後半) 演算の優先順位,ソートの注意点

    図7●検索結果のレコードの順番にまつわる注意点(その1)<BR>検索結果の順番を明示的に指定しない限り,レコードの順番は不定となる。ある時たまたま期待通りの順番で出力していても,レコードの更新などがあると順番は変わってしまう。検索結果を意図的な順番で並べるには,ORDER BY句を使う SQL文の1行は,C/C++などの汎用プログラミング言語に比べて長くなりやすい。SQL文は処理手続きを記述せず,1行にひとかたまりの処理内容を記述する。そのため複雑な条件を指定することになるからだ。1行が長いと,SQL文が読みにくくなるだけでなく,演算の優先順位にまつわるミスを起こしやすい。 迷ったときはカッコをつける SQLの算術演算,論理演算の優先順位は,汎用のプログラミング言語と基的に同じである。足し算や引き算よりも,掛け算や割り算の方が優先順位が高い。また,SQL文では論理演算をよく使うが,その優

    【初級】新人SEのためのSQLの基礎 第1回(後半) 演算の優先順位,ソートの注意点
    Zephid
    Zephid 2018/01/15
    おじさん、論理演算の優先順位知らなかったよ… A and B or C みたいに括弧なしで書くことなんて考えたこともなかったから。
  • Commons DBCPを使ってみる - Murayama blog.

    Commons DBCPについて調べてみました。 ちょっと前置きからスタートします。 Connectionオブジェクトの生成について Javaは、DBとの接続をjava.sql.Connection型のオブジェクトとして取り扱います。 JDBCドライバを使った一般的なプログラムは以下のようになります。 Class.forName("oracle.jdbc.driver.OracleDriver"); Connection con = DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521/ORCL", "scott", "tiger"); Connectionオブジェクトの生成にかかる負荷 上記のプログラムの場合、 Connection con = DriverManager.getConnection( "jdbc:o

    Commons DBCPを使ってみる - Murayama blog.
    Zephid
    Zephid 2015/02/12
  • XMLTypeの操作

    4 XMLTypeの操作 この章では、XMLTypeの操作と、(XML Schemaに基づく、およびXML Schemaに基づかない)XMLアプリケーションに対する索引付けについて説明します。XMLType列および表の作成、操作、更新、問合せおよび索引付けに関するガイドラインも含まれています。 この章の内容は次のとおりです。 XMLデータの選択および問合せ XMLインスタンスおよび表内のXMLデータの更新 XMLType列の索引付け 注意: XML Schemaに基づかないXML: この章に示すXMLType表および列は、W3CのXML Schema 1.0勧告に基づいていません。ただし、XMLType表および列用に選択した記憶域オプションに関係なく、この章に示す方法および例を使用できます。記憶域の推奨事項の詳細は、第3章「Oracle XML DBの使用」を参照してください。 XML S

    Zephid
    Zephid 2014/08/04
  • 相関サブクエリで行と行を比較する

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    相関サブクエリで行と行を比較する
    Zephid
    Zephid 2014/07/16
  • 自己結合の使い方

    はじめに SQLが提供する結合演算には、その特徴に応じて内部結合、外部結合、クロス結合などさまざまな名前が与えられています。普通、これらの結合の多くは、異なるテーブルまたはビューを対象として行われます。しかし、SQLは結合が同一のテーブルまたはビューに適用されることを禁止していません。同一のテーブルを対象に行う結合を「自己結合(self join)」と呼びます。自己結合は、使いこなせば非常に便利な技術ですが、動作がイメージしにくいため敬遠されがちです。そこで稿では、この自己結合の便利さを例題を通して学び、その動作を分かりやすく解説します。 自己結合を理解することは、実務上のテクニックを身につける以外に、もう一つ利点があります。それは、集合指向(set-oriented)というSQLの重要な特徴を理解できることです。オブジェクト指向言語が世界をオブジェクトとして表現するように、SQLは世界

    自己結合の使い方
    Zephid
    Zephid 2014/07/16
  • 1