Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

タグ

データベースに関するdecoy2004のブックマーク (20)

  • 変更履歴を持つテーブルの設計 - Qiita

    ある日のできごと 少し前、「ブログの記事のようなものを、履歴を残しつつ編集できるようにするにはどのようなテーブル設計が良いか?」と尋ねられたことがありました. その時, まず思いついた(というか見聞きしたことがある方法)のは以下の様な2通りの方法だった. 記事テーブルにバージョン番号を持たせる方法 記事テーブルとは別に, だいたい同じ構造の履歴テーブルを持つ方法 こられの手法のメリット・デメリットについて, すこし考えていきたいと思います. その1 記事テーブルにバージョン番号を持たせる方法 概要 この方法では, 記事テーブルは一つだけ用意し, 更新される度に新しいレコードを追加していきます. 主キーはidとなるが, これはサロゲートキーで, 当の主キーは「記事グループid + verison」の複合主キーとなっています. 記事の最終更新日時は, 最新Versionのレコードのinser

    変更履歴を持つテーブルの設計 - Qiita
  • [Java]iciqlで簡単DBアクセス[ORマッパー] | DevelopersIO

    JavaアプリでORマッパーを使う 先日、ちょっとしたJavaアプリを作る必要があり、DBアクセス方法をどうしようか検討してました。 最初はPreparedStatementつかって自分でSQL組み立ててもいいかなあと思ってたんですが、 仕様を確認したらそこまで楽なDBアクセスでないのでNG. 次にSpring DataとかhibernateとかiBATISとかのORマッパーを使おうと思ってたんですが、 DBアクセスをしたいだけなのに依存ライブラリがいっぱいあったり設定ファイル用意したりして 面倒だったので、これもヤメました。 で、いろいろ探してみた結果、簡単につかえそうなiciqlというORマッパーがあったので、紹介します。 iciqlの特徴は以下のとおり。 単一のjarで提供される 設定ファイルなしで使える DBからモデル生成できるツール付き xmlとかでいちいち設定ファイルを書かずに

    [Java]iciqlで簡単DBアクセス[ORマッパー] | DevelopersIO
  • GoogleスプレッドシートをAPIにしてくれる『Sheetsu』がすごいな | 100SHIKI

    ちょっと試してみたがこれは便利かも・・・。 Sheetsuは、GoogleスプレッドシートをAPIにしてくれるサービスだ。 使い方は簡単で、GoogleスプレッドシートのURLを入れてサービス連携するだけだ。 あとは指定されたURLでデータの取得や書き込みができてしまう。 Googleスプレッドシートをデータベース代わりにしてサービス構築、なんてこともできそうだ。データの更新が楽になりそうですな。 番運用するにはちょっと微妙かもだが、興味がある人は試してみるといいですな。

    GoogleスプレッドシートをAPIにしてくれる『Sheetsu』がすごいな | 100SHIKI
  • 実務で役立つデータベースの活用法

    18. アーキテクチャ ーーーーーーー データモデル マスタ型 P2P型 その他 リレーショナル RDB全般 pgpool2など キーバリュー Hibari Dynamo Riak Memcached Redis カラム指向 Bigtable HBase Cassandra ドキュメント指向 MongoDB CouchDB グラフ指向 Neo4J InfiniteGraph 19. アーキテクチャ ーーーーーーー データモデル マスタ型 P2P型 その他 リレーショナル RDB全般 pgpool2など キーバリュー Hibari Dynamo Riak Memcached Redis カラム指向 Bigtable HBase Cassandra ドキュメント指向 MongoDB CouchDB グラフ指向 Neo4J InfiniteGraph

    実務で役立つデータベースの活用法
  • 分散システムの一貫性に関する動向について

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog システム統括部アーキテクト室 今野です。 昨年は、Twitter,Facebookを始めとするクラウド各社で新規の分散システム開発のプロジェクトが相次いで発表された年でした。これらの新しい分散システムを開発する理由や、その背景にあるものは何なのでしょうか? 今回は、昨年末に開催された高信頼性分散システム系の国際学会であるSRDS 2014[1]の発表内容に関連する論文の話題も踏まえて、昨今のクラウド各社の分散システムの動向について整理してみます。 分散システムにおけるクラウド各社の動向 近年の分散データベースの世界では、AmazonのDynamo[2]やFacebookのCassandra[3]などを代表とする結果整合性(Eve

    分散システムの一貫性に関する動向について
    decoy2004
    decoy2004 2015/04/06
    『因果一貫性モデル(causal consistency)とは、順序一貫性モデル(sequential consistency)の制限を弱めたもので、因果関係のない変数に関しては順序一貫性の制限を無視するモデルです。』
  • DELETE_FLAG を付ける前に確認したいこと。 - Qiita

    DELETE_FLAG という思考停止フラグ DELETE_FLAG という boolean の列が DB 設計でよく話題になります。 論理削除という言葉で上手に論理武装し、スキを見せるとすぐに入れたがる人がおり、 一方でそれにつよく反対する人もいます。 自分の経験としては、広義の論理削除はありえると思いますが、実現方法が DELETE_FLAG だとなった時、それはあまり考えてないでなんとなくパターンとして盛り込んでる場合が多いと感じます。 ただし、設計に唯一の答えは無いので、もしかしたらそれが妥当な設計である場合があるかもしれません。 今回は「DELETE フラグがなぜダメなのか?」などという話をするつもりも、アンチパターンだと断言するつもりもありません。 問題は、仕様をきちんと把握すると、「最適な設計は DELETE_FLAG ではない」という場合が有って、その場合は、その最適な設計

    DELETE_FLAG を付ける前に確認したいこと。 - Qiita
  • 営業さんまで、社員全員がSQLを使う 「越境型組織」 ができるまでの3+1のポイント | リブセンス

    エンジニアから営業まで、社員全員がSQLを使うデータドリブン組織はどのようにできたのか。コラボレーションツールに記録された実データから辿るケーススタディ。巻末には、今すぐ学べるSQL練習帳も収録。未経験の方でもブラウザだけで簡単に練習できます。 Read less

    営業さんまで、社員全員がSQLを使う 「越境型組織」 ができるまでの3+1のポイント | リブセンス
    decoy2004
    decoy2004 2015/03/13
    データベースを壊した時に1クリックで復旧する仕組みがないと困る気がする。長時間占有するクエリを見つけたり止めたりできるのかな?
  • DB設計でこだわりたい三つの要素

    2. 自己紹介 ● 日のレガシー枠 o 昔、DB屋さん (∼5年前) o 今、ミドルウェア製品の構築・サポート ▪ Oracle ACE (Middleware & SOA) ● DB資格 o データベーススペシャリスト o ベンダー系 Oracle, DB2, SQL Server ▪ ただしバージョンは相当レガシー

    DB設計でこだわりたい三つの要素
  • DB 設計時のサイズ見積り[最新版] - Qiita

    こんにちは、すっかり秋ですね!@yone098 です。 みなさんDBの設計してますか? DB設計時のサイズ見積り 以前はてなダイアリーで書いた記事は5年前のものであり、リンクが切れているものがあるので最新版として MySQL, PostgreSQL, Oracle, SQLServer におけるDB設計時のサイズ見積りをまとめ直しました。 MySQL URL内のバージョン表記を変えると以前のバージョンの情報になります。 MySQLは、あまり情報に変化は無かったので Excel でマクロなどを作成して自社で自動算出出来るようにするのが良いと思います。 データタイプごとに必要な要求ストレージが決まっているのでレコードサイズが決まり、あとは要件次第で何レコードになるかを予測します。 データタイプごとに必要な記憶容量 テーブルの最大サイズ関連 http://dev.mysql.com/doc/re

    DB 設計時のサイズ見積り[最新版] - Qiita
  • DBUnitを使って、ユニットテストのテストデータを作成する

    弊社ではテストのエビデンスとして、JUnitの結果とコードのカバレッジを提出するルールにしておりますが、開発者それぞれの環境でallTestをするようなこともあります。その時に環境によっては、マシンのスペックが悪くallTestにけっこう時間が掛かってしまうこと、またその影響でマシンの負荷が高くなり、他の作業を並行してやれず仕事にならないようなことがありました(注1)。その対応としてJenkinsにブランチのallTestが流せるジョブを作って対応しました。 あと、Jenkinsのバージョンはこまめに更新した方が良いなと実感しました。バージョンアップする前はビルド、AllTest、ページビューなどが結構遅くて、周りの人からも遅いという声があがっていました。改善として、サーバのスペックをすぐに上げることは無理そうだったので、jvmのチューニングをしたりしましたがさほど効果はなく、Jenkin

    DBUnitを使って、ユニットテストのテストデータを作成する
  • 開発者のためのSQLパフォーマンスの全て

    前書き - インデックスの作成はなぜ開発者のタスクなのか インデックスの 内部構造 - インデックスは何に似ているか インデックス リーフノード - 二重連結リスト 検索 ツリー(Bツリー) - バランス木 遅いインデックス パートI - インデックスを遅くする2つの原因 where 句 - 検索のパフォーマンスを改善するためにインデックスを作成 等価 演算子 - 一致するキーの検索 プライマリキー - インデックスの使い方を確認 複合インデックス - 複数列に対するインデックス 遅いインデックス パートII - 前の問題点が再び 関数 - where句の 中での関数 大文字・小文字を区別する 検索 - UPPERと LOWER ユーザ定義 関数 - 関数インデックスの制限 インデックスの作り過ぎ - 冗長性の排除法 パラメータ化 クエリ - セキュリティとパフォーマンスのために 範囲 検

    開発者のためのSQLパフォーマンスの全て
  • [Q&A]MySQL開発でやってしまいがちな致命的ミス | Yakst

    Percona MySQL Webinarsの発表(MYSQL開発でやってしまいがちな致命的なミスについて)のQAをご紹介します。 発表はSQLアンチパターン著者のBill Karwinさんの発表です。 オリジナル: http://www.percona.com/resources/mysql-webinars/how-avoid-even-more-common-deadly-mysql-development-mistakes July 17, 2014 by Bill Karwin 水曜日に「MySQLを開発する上でよく起こる(そして致命的な)ミスをどのように回避するか」をPercona MySQL webinarsで発表した。お見逃の際は、ビデオとスライドを見る為に登録すればまだご覧にいただける。 参加いただいた皆様、そしてとりわけすばらしい質問をしていただきありがたく思っている

    [Q&A]MySQL開発でやってしまいがちな致命的ミス | Yakst
    decoy2004
    decoy2004 2014/08/11
    『MySQLにはクエリに対して63のテーブルしか参照できないという制約がある。』
  • Jコミから絶版マンガ図書館へ、セリフ検索導入

    株式会社Jコミが運営する電子書籍サイト「Jコミ」が、明日7月11日に「絶版マンガ図書館」と名称を変え、大幅なバージョンアップを行う。それに先駆け日7月10日、「ラブひな」などを代表作に持つマンガ家としても知られながら、Jコミ代表取締役でもある赤松健が、都内にて記者会見を開催した。 「Jコミ」はこれまで絶版になったマンガの全巻無料配信をメインに、クラウドファンディングサービス「JコミFANディング」、未単行化作品をオンデマンド印刷する「Jコミで印刷できるってよHD」といったサービスを展開してきた。 「絶版マンガ図書館」と名称を変えた理由について赤松は、「より分かりやすいサービス名にするため」と語り、「出版社が電子化に踏み切らない絶版マンガを、売れる売れないに関わらず平等に収録する“図書館”のような存在を目指す」と明かす。また「ネット上に蔓延する海賊版を脅かす存在となり、絶版マンガの海賊版

    Jコミから絶版マンガ図書館へ、セリフ検索導入
  • Entity-Attribute-Value: SQL アンチパターン - ペンギンラボ Wiki

    Bill Karwin “SQL Antipatterns: Avoiding the Pitfalls of Database Programming” の読書メモ。 Jaywalking 目的 ある属性について、複数の値を持たせる。 アンチパターン : カンマ区切りリスト カンマ区切りで複数の値を 1 つの列に納める。 例では、特定の製品についての担当者を複数設定するのにカンマ区切りで、担当者のアカウントIDを記述している。 create table products ( product_id integer, product_name varchar(1000), acount_id varchar(100), -- comma separated list -- ... ); insert into products (product_id, product_name, accou

  • 5分で分かるデプロイ自動化への道

    12月20日に第1回ワンクリックデプロイ勉強会で、デプロイの自動化について好き勝手に喋ったりデモしたりする予定なのですが、当日話す内容の概略について以下に載せておきます。 以下にあげることをやっておけばデプロイ自動化、ワンクリックデプロイはそんなに遠くないところにあると思います。 ソースコードのバージョン管理いわずもがな。全ての起点はここにあるコードの共同所有の原則への理解このソースコードは番環境または開発環境などで同じように動作しなければならないテストを書く習慣、コミット前に他のテストも含めて通してからコミットする習慣設定ファイルのバージョン管理環境によって異なる設定値(接続先データベース情報など)が書かれた設定ファイルもバージョン管理する開発環境用、ステージング環境用、番環境用などに分けて定義し、容易に切り替え可能にする番環境に配置する際に、アプリケーションの各所を書き換えなけれ

    5分で分かるデプロイ自動化への道
  • Parse Local Datastoreが楽しみ

    先日Facebookのf8とかいうイベントがあった。僕は去年のf8はそこまで注目してなかったのだけど、Parseがf8に買収されたので今回は楽しみにしてました。 そしたら期待のParseからこりゃいいねという発表が2つあった。 ひとつはParseの料金体系が変わり、安くなったこと。もうひとつはオフライン時のデータベースを扱うParse Local Datastore。 特にLocal Datastoreはオフラインで使えるデータベースを実装しつつ、他のデバイスとの同期も実現したいモバイル開発者にとって死ぬほど期待の機能。ワクテカが止まらない。 なぜかAndroidのみ使えて、iOSは近日公開らしい。待ちきれん! Parseの新しい料金体系 今までは月に一定の回数のアクセス以上は有料になりますよっていうシステムだったけど、今度は一秒間に30requestsまでだったらいくら使っても無料になっ

    Parse Local Datastoreが楽しみ
  • syboos.jp

  • データベース設計徹底指南

    DBエンジニアのための技術勉強会(第3回)で使用した資料です。主にリレーショナルモデルと正規化について解説しています。リレーショナルモデルの限界について正しく認識してこそ、リレーショナルモデルを理解したと言えると思います。

    データベース設計徹底指南
  • IDEA * IDEA

    ドットインストール代表のライフハックブログ

    IDEA * IDEA
    decoy2004
    decoy2004 2010/05/23
    selectするときに該当するレコードが一つしかないとわかっているときは「LIMIT 1」を使いましょう
  • Not Only NoSQL!! 驚異的なまでにWRITE性能をスケールさせるSPIDERストレージエンジン

    Webサービスでは、世界中からのトラフィックを捌く必要があるため、いくらチューニングしようとも一台のRDBMSでは捌ききることが出来ないのが常だ。MySQLは最初からマスター・スレーブ型のレプリケーション機能が搭載されており、スレーブをたくさんぶら下げることによって参照の負荷をスレーブに割り振るというスケールアウトによってその問題に対処してきた。スレーブによるスケールアウトは、参照(=PV)が多いWebサイトと非常に相性が良く、幾多のWebサイトにおいて実績を作ってきているし、まだまだ利用されている。 しかしながら、サイトのトラフィックが劇的に増加してくるようになると、レプリケーションによる負荷分散では追いつかなくなってきた。そこで人々がとった選択肢は、memcachedを利用することである。memcachedはインメモリ型の高速なKVSであり、参照・更新性能はMySQLより格段に高い。M

    Not Only NoSQL!! 驚異的なまでにWRITE性能をスケールさせるSPIDERストレージエンジン
    decoy2004
    decoy2004 2010/04/23
    レプリケーション で参照分散、memcached で問い合わせ抑制、Sharding で更新分散がデファクト。Cassandra ではJOIN, ソート、グループ化が難しい。Mapreduce でここを対応するより、Spider を検討してみるのもいい。
  • 1