タグ

Databaseに関するdaisuke-mのブックマーク (17)

  • ORMがアンチパターンである11の理由

    サンフランシスコのプログラマLaurie Voss氏が書いた見逃せない記事が賑わっています。近年のフレームワークやライブラリの定番中の定番ORマッパーが既にアンチパターンなのではというのが彼の主張です。この記事を書くきっかけになったのはこのツイートだそうです。 I cannot overstate the degree to which ORM is a dangerous antipattern. — Laurie Voss (@seldo) June 9, 2011 ORM が危険なアンチパターンだっていうのはどれだけ言っても言い過ぎることはない このツイートに対して各方面(ActiveRecord, Doctrine, Hibernate)から多くの(激しい)返信が寄せられて書かれたのが問題のエントリです。まずはアンチパターンとは何かの定義として下記の2つを挙げています。 当初は有益

    ORMがアンチパターンである11の理由
    daisuke-m
    daisuke-m 2013/10/21
    やっぱり、row-mapperが好き。
  • dev-xconnecting: GradleでJDBCドライバを使用してデータベースを操作する

  • Flywayで簡単DBマイグレーション | DevelopersIO

    Flywayとは FlywayとはDBマイグレーションフレームワークです。 複数人でのアプリケーション開発時のDBマイグレーション作業を素早く手軽に行うことができます。 MavenやAnt、APIやコマンドラインツール形式で提供されており、柔軟に対応することができます。 環境構築方法 今回使用した動作環境は以下のとおりです。 OS : MacOS X 10.7.4 MySQL : 5.5.15 flywayを使ってみよう 環境設定 flywayはMavenやAPIからも使用できますが、今回はCommand-line Toolを使ってみましょう。 ここからCommand-line Toolをダウンロードして解凍しておきましょう。 次にテストで使用するデータベースを用意します。今回はMySQLを使用しました。 mysqlを起動し、コンソールからデータベースを作成しておきましょう。 mysql>

    Flywayで簡単DBマイグレーション | DevelopersIO
  • DBの世界に起こる変革 | エンタープライズエンジニアの独り言

    エンタープライズシステムのエンジニアをやって10年以上。思うところを書いていきます。その他趣味を少々。。。 DBの世界に起きた大きな波 現在、どの製品を使ったとしてもRDBの性能問題は必ずといっていいほど発生する。理由は簡単で、CPU、ネットワークが高速化(CPUはマルチコア化、ネットワークは10G-Ethernetの一般化やInfiniBandなど)するのにディスク(ストレージ)が高速化に追いついていないからだ。その差を埋める役割として、RDBが担っているケースが多く、性能問題になるケースが散見される。 だが、そういう時代の流れに対して大きな変革が起きようとしている。SSDはかなりコモディティ化してきたので言うに及ばずといった感じだが、個人的には速いもののディスクの置き換えにすぎないと思っている。つまり、SSDは速いがDBのアーキテクチャに大きな変革をもたらすものではない。が、ここにきて

  • SQLアンチパターン

    書はDB設計やSQL記述の際に避けるべき事柄を1章で1つ、25個紹介する書籍です。リレーショナルデータベースを中心に据えたシステム開発には、様々な場面で陥りやすい失敗(アンチパターン)があります。書はデータベース論理設計、データベース物理設計、クエリの記述、アプリケーション開発という4つのカテゴリに分け、それぞれの分野におけるアンチパターンを紹介し、失敗を避けるためのより良い方法を紹介します。複数の値を持つ属性や再帰的なツリー構造の格納から、小数値の丸めやNULLの扱いに起因する問題、全文検索やSQLインジェクション、MVCアーキテクチャなど、実践的かつ幅広いトピックを網羅します。日語版では、MySQLのエキスパートとして著名な奥野幹也氏によるアンチパターンを収録。データベースに関わるすべてのエンジニア必携の一冊です。 書への称賛の声 監訳者まえがき はじめに I部 データベース論

    SQLアンチパターン
  • 備忘録:JDBCメタデータ - jfluteの日記

    http://d.hatena.ne.jp/amutan/20090222/1235300928 http://d.hatena.ne.jp/amutan/20090222/1235300058 http://d.hatena.ne.jp/amutan/20090224/1235487682 自分のようなJDBCと格闘する人にとって あまりに素晴らしい貴重な記事を見つけましたので、 ここに備忘録としてメモらせて頂きます。

    備忘録:JDBCメタデータ - jfluteの日記
    daisuke-m
    daisuke-m 2009/11/12
    なんという俺向け資料w
  • PostgreSQLのTEXT型はCLOBか否か? - taediumの日記

    http://jfut.featia.net/diary/20081010.html#p01 の話です。コメントしたつもりだけど、反映されなかったので、一応こっちにも書いておきます。 公式のドキュメントでは情報が足りなくていろいろ探していたのですが、開発者のKris JurkaさんがCLOBはTEXT型じゃなくてOID型にマッピングされるよ言っているのを見つけました。 http://archives.postgresql.org/pgsql-jdbc/2005-02/msg00125.php ということで、CLOBにちゃんと対応するOID型があるのにTEXT型をCLOB相当とみなす必要はなさそうです。サイズもTEXTが1GBでOIDが2GBのようなので、CLOBといったらちゃんとOID型を使うのが適切ですね。 S2JDBC-Genの対応は了解しました、id:koichikさん。ただ、S2J

    PostgreSQLのTEXT型はCLOBか否か? - taediumの日記
    daisuke-m
    daisuke-m 2008/10/15
    型のマッピングについて
  • T字形ER図の基礎知識

    知識1 リソースとイベントの分け方 イベントとリソースを分けているのは「〜する」という言葉を付けて成り立つかどうかです。 つまり「受注+する」は言葉として成り立つのでイベント。しかし「商品+する」は成り立たないのでリソース。 他には、「イベントには年月日などのタイムスタンプが含まれるが、リソースには含まれない」という見方で切り分けても良いです。 これによって細分化されたリソースは、リソースの中にリソースが含まれることはなく、独立した存在となります。 リソースとリソースとの関係表現には、必ず「対照表」というものが使われます。 つまり[従業員]というリソースに、[所属部門]というリソースが含まれることはなく、[従業員:部門 対照表]によって「配属」が表現され、組織構造が変わった場合や人事異動の場合にも、この対照表だけをメンテナンスすることで、[従業員][部門]ともに安定した(Sta

  • java:jdbc [paulownia.jp]

    JDBC URLのポート番号は、データベースのデフォルトのポート番号です。デフォルトを使用している場合、多くのドライバではURLのポート番号を省略できます。 ここに掲載している情報は基的にRDBMSデベロッパ・プロジェクト公式のドライバソフトウェアの設定です。データベースによってはサードパーティやオープンソースで開発されているドライバが存在します。

    daisuke-m
    daisuke-m 2008/04/08
    色々なDBの接続URLとドライバのFQCNなど
  • いろんなRDBMSのエラーメッセージドキュメントの場所 - taediumの日記

    ドキュメントの場所を知っていても、エラーメッセージの一覧にたどり着くまでになかなか時間がかかるのでここに挙げとく。 Oracle Database 10.2 http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19212-01/toc.htm Microsoft SQL Server 2005 select * from sys.messages where language_id = 1041 (MSDNから見つけられなかったよ...。でもこのクエリで一覧できる。) DB2 9.5 http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/index.jsp?topic=/com.ibm.db2.luw.messages.doc/doc

    いろんなRDBMSのエラーメッセージドキュメントの場所 - taediumの日記
  • いろんなRDBMSで一意制約(ユニークキー) - taediumの日記

    ユニークキーってRDBMSによって挙動(というか仕様?)がちがうんです。 create table hoge(aaa int not null primary key, bbb int unique); -- (1) insert into hoge values(1, null); -- (2) insert into hoge values(2, null); -- (3) これを各RDBMSで実行するとどうなるか? DB2 9.5 (1)でエラーになります。 DB2ではユニークキーをつけるカラムにはNOT NULL制約が必須なんです。 SQL Server 2005 (3)でエラーになります。 (2)ですでにNULLが入っているから一意制約違反になっちゃうのです。 Oracle Databae 10.2、MySQL 5.0、PostgerSQL 8.2.4 テーブル作成と2件のINS

    いろんなRDBMSで一意制約(ユニークキー) - taediumの日記
  • 継続インテグレーションとデータベースのバージョン管理

    原則として、データベースに対する作業は必ずバージョン管理しなければならない、と強く主張した記事を投稿した後で、Scott Allen氏はデータベースのバージョン管理を最大限に利用する手法について詳しく述べている。彼は、ベースラインを作成し、スキーマのリビジョン管理に変更スクリプトを使い、データベースの(ビューやストアドプロシージャ、ファンクション、トリガ等の)プログラムされたオブジェクトを管理し、そしてブランチやマージ処理を利用する、包括的で実用的な手法を紹介している。 Allen氏は自身の経験から学んだことを、関係データベースを使用した開発のための3つのルール(source)として記載した記事を投稿した後で、一連の投稿を始めた。そのルールとは、: 1. 開発作業には、共有データベース・サーバは決して使用してはいけない。 ソフトウェア開発におけるたくさんの便利なもののように、共有データベー

    継続インテグレーションとデータベースのバージョン管理
  • 【特集】期待度大のバージョンアップ - PostgreSQL 8.3の改良点を徹底分析 (1) はじめに - PostgreSQL 8.3の大きな4つの改良点 | エンタープライズ | マイコミジャーナル

    現在ベータテスト中のPostgreSQL 8.3は、久々にストレージ部分に手が入るなど、大きな改良が加えられている。ストレージの基構造部分に手が入るのは、筆者の記憶では、2001年リリースのPostgreSQL 7.1以来のことである。 8.3の改良点は、大きく分けて以下の3つになる。 1. 性能面での改良 HOT(Heap Only Tuple)という新しい仕組みがストレージ部分に導入され、従来PostgreSQLが苦手としていた、大規模データベースにおける更新処理性能が大幅に改善されている。そのほか、マルチセッションでのキャッシュ効率の向上などが目につくところである。 2. データベース運用管理機能の改良 PostgreSQLに限らず、データベースの適切な管理/運用は難しい。それだけで1つの職業になるほどだ。8.3では、より適切な管理が行えるように、ログ項目が増えているほか、適切なイ

  • DBのリファクタはこれで - DBリファクタリングツールLiquiBase 1.4登場 | エンタープライズ | マイコミジャーナル

    Sundogは19日(米国時間)、LiquiBaseの最新版となる「LiquiBase 1.4」を公開した。LiquiBaseはJavaで開発されたデータベースの変更追跡やマネージメントを実施するためのデータベースライブラリ。データベースに依存しないライブラリで、データベースの変更や管理、トラッキングなどを実現できる。プロダクトはGNU LESSER GENERAL PUBLIC LICENSE Version 2.1のもとでオープンソースソフトウェアとして公開されている。 LiquiBase 1.4ではソースコードのリファクタリングが実施されているほかIntelliJプラグインサポートの追加、チェンジログにおけるスキーマ指定サポートの追加、MaxDB/SAPDBサポートの追加、外部キーのサポート、Mavenサポートの改善などが実施されている。1.4へ移行するにはJarファイルを最新版に入

  • 【ハウツー】DBAを救え! DBリファクタリングツール「LiquiBase」を使ってみよう (1) データベースのリファクタリングツール | エンタープライズ | マイコミジャーナル

    LiquiBaseとは LiquiBaseというプロダクトをご存知だろうか。LiquiBaseは「データベースのリファクタリングツール」と銘打つプロダクトで、先月27日にバージョン1.3がリリースされている。稿では、現在注目を集める同プロダクトの基的な使用法を紹介したい。 LiquiBaseの最も大きな特徴は、データベーススキーマの変更管理を行える点にある。この部分が「データベースのリファクタリングツール」と呼ばれるゆえんだ。 プログラムコードに対して行う通常のリファクタリングでも、それを思い切って行うためには、リファクタリング作業を理解し、かつアンドゥ機能を完備したIDEや、いざというときにロールバックを行うためのバージョン管理システムなどが不可欠だ。LiquiBaseは、リファクタリングの前提とも言えるそうした機能を提供するツールだと言ってよい。 同ツールは、書籍『Refactor

  • Java向けデータベース管理ライブラリ「LiquiBase Core 1.4.0」リリース

    印刷する メールで送る テキスト HTML 電子書籍 PDF ダウンロード テキスト 電子書籍 PDF クリップした記事をMyページから読むことができます LiquiBaseプロジェクトは11月19日、Java向けデータベース管理ライブラリ「LiquiBase」の新バージョン「LiquiBase Core 1.4.0」をリリースした。 LiquiBaseは、Java向けのデータベースの変更を管理する、データベース管理システム(DBMS)に依存しないツール。データベースに対して行われる変更を全て「change log」と呼ばれるXMLファイルに格納し、ソースコード管理システムでの管理を可能にする。同様のツールはほかにも多数あるが、複数の開発者間で変更をマージできることや、コードブランチを利用した開発が行えることなどが、LiquiBaseの特徴だとしている。各種IDE向けのプラグインが用意され

    Java向けデータベース管理ライブラリ「LiquiBase Core 1.4.0」リリース
  • 1