SQL FiddleはWeb上でSQLを実行テストできるツールです。MySQLやPostgreSQL、SQLiteなどに対応しています。 SQL Fiddle
楽しく読める本です。そして、とても実用的です! SQLアンチパターン 作者: Bill Karwin,和田卓人(監訳),和田省二(監訳),児島修出版社/メーカー: オライリージャパン発売日: 2013/01/26メディア: 大型本購入: 9人 クリック: 698回この商品を含むブログ (38件) を見る データベース設計は、Webアプリを始め、ほとんどのシステムの性能・拡張性、そして開発のしやすさを決定する非常に設計です。しかし、分かりやすく、かつ実践的な書籍は多くないと思います。この本は、タイトル通り 「こんなデータベース設計を行っては行けない!」 という内容です。 この本はデータベース設計(モデリング)手法を扱った本ではりませんので、データベース設計の基本を理解してる人向けの本ですが、データベース設計をやったことが無くても、何年か開発を行った人なら「ああ以前かかわったシステムのDBこの
WebSQL.jsはWeb SQL Databaseを使いやすくするJavaScriptライブラリです。 惜しくもHTML5の仕様からはもれていますが、新しいWebブラウザの機能にWeb SQL Databaseがあります。そんなWeb SQL Databaseをより使いやすくしてくれるライブラリがWebSQL.jsです。 デモです。データを追加したり、削除したりできます。 さらに追加しました。再読み込みしても再現します。 WebSQL.jsはデータベースの作成、テーブルの作成、データのCRUD操作、テーブルの削除が行えます。さらにトランザクションやSQLの実行も可能です。各メソッドはチェーンでつないで実行させることも可能になっています。 WebSQL.jsはJavaScript製、MIT Licenseのオープンソース・ソフトウェアです。 MOONGIFTはこう見る Web SQL Da
本書はDB設計やSQL記述の際に避けるべき事柄を1章で1つ、25個紹介する書籍です。リレーショナルデータベースを中心に据えたシステム開発には、様々な場面で陥りやすい失敗(アンチパターン)があります。本書はデータベース論理設計、データベース物理設計、クエリの記述、アプリケーション開発という4つのカテゴリに分け、それぞれの分野におけるアンチパターンを紹介し、失敗を避けるためのより良い方法を紹介します。複数の値を持つ属性や再帰的なツリー構造の格納から、小数値の丸めやNULLの扱いに起因する問題、全文検索やSQLインジェクション、MVCアーキテクチャなど、実践的かつ幅広いトピックを網羅します。日本語版では、MySQLのエキスパートとして著名な奥野幹也氏によるアンチパターンを収録。データベースに関わるすべてのエンジニア必携の一冊です。 本書への称賛の声 監訳者まえがき はじめに I部 データベース論
Ruby on Rails(3.2.9, 3.1.8, 3.0.17以前)のfind_by_*メソッドにSQLインジェクション脆弱性が見つかりました(CVE-2012-5664)。このエントリではその概要と対策について説明します。 概要 Ruby on Railsのfind_by_*メソッドの引数としてハッシュを指定することで、任意のSELECT文を実行できる脆弱性があります。 検証 Ruby on Rails3.2.9の環境を用意して、以下の2つのモデルを用意しました。 $ rails g scaffold user name:string email:string $ rails g scaffold book author:string title:string モデルUserは個人情報を保持しており、自分自身の情報のみが閲覧できるという想定です。モデルBookは書誌データベースであ
DB Designer の使い方を動画でチェック プロジェクトの作成 設計はプロジェクトごとに管理できます。まずは、左上の【+】ボタンをタップしてプロジェクトを作成します。 DB のタイプは MS SQL、MySQL、PostgreSQL、SQLite の4つから選べます。プロジェクト名などは日本語で設定することもできます。 各種プロジェクトの指定をしたら【Save】をタップします。 テーブルの新規追加 設計画面は白紙の用紙のようにシンプルです。プロジェクト名を帰る場合は左上のラベルから、新規テーブルを設計してくときは【+】をタップしたあと、白い部分をタップします。 これでカラムが設定されていない空テーブルが作成されます。次はテーブルの詳細情報の編集に進みます。 テーブル詳細情報の編集方法 作成したテーブルにカラムを追加するには2つの手順が必要です。まず、画面左にあるメニューボタンから【i
December 07, 201215:49 カテゴリプログラミングmysql O/Rマッパーはなぜ悪か・2 前回、「SQLには○○が足りない!よろしくない!そこで...O/Rマッパー!」みたいなスライドを見た気がして、ひどいO/Rマッパーにさんざん苦しめられた記憶がフラッシュバックのように襲ってきて、 フザケンナ!お前らO/Rマッパー大好き族のせいでこっちは!こっちは...どんだけ苦労したか! ってかーっとなって記事書いたら、 「は?最近のO/Rマッパーはそんなアホじゃないし?w」「あ,はい。そうだったんですねー」 みたいな感じで瞬殺されて残念な感じになったw。いや、でもなんか違う、この気持ち、なんだろう。みんなにも伝えたい。なのでもうちょっと書く。 自分のO/Rマッパー不信にはいくつかのレイヤーがあって、いまだにそれがうまく整理できないんだけど、たぶん 1. 現実レベルの問
December 07, 201208:49 カテゴリプログラミングmysql O/Rマッパーはなぜ悪か タイムラインで「SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?」ってのを見かけて居ても立ってもいられなくなったので、既出を承知で反論しておきたい。 スライドだけから話の内容を推測すると、 -- 販売成績上位10個を抽出 select * from sales where deleted = false order by amount desc limit 10 といったSQLを Sales.active().top(10).all() のように、細かく分解した部品を組み合わせて表現できた方が便利だし構造的でしょ?という話のようだ。 これは確かに一見美しいのだが、これこそが「敷居を下げすぎて、dbの性質を分かってない人まで気軽にSQLをいじるようになった結
グーグル、MySQL互換の「Google Cloud SQL」性能強化。最大でメモリ16GBへ拡張。Google Apps Scriptからも利用可能に グーグルはGoogle App Engineで提供しているMySQL互換のデータベースサービス「Google Cloud SQL」の性能強化を明らかにしました。Google Developpers Blogにポストされたエントリ「Get started at no cost with a faster, larger Cloud SQL database」で次のように説明しています。 ストレージ容量が従来の10GBから最大100GBへ インスタンスのメモリ容量が従来の4GBから最大16GBとなり、読み込み速度が向上 非同期レプリケーションを選択可能にしたことで、書き込み速度が向上 欧州データセンターで提供開始 Google AppsのGo
欠点$rs->pager(); のように、クエリをうっているっぽくないのに裏でうってるので、重い処理なのにおもそうにみえなくてさがすのが面倒。お気軽につかえすぎて危険。 HAVING などをつかうクエリの場合、そもそもただしい値がとれてないのに、なんとなくうごいてしまう。まちがった値をかえす API を標準でつけるのはいかがなものか。 得に HAVING などの処理がうまくできないのは自明なので、こういう実装は僕は好きではないです。 → Teng にはついてない。
1 連載の概要 1.1 本連載の趣旨と概要 基幹系はソーシャル系などに比べて、誤解を招く言い方かもしれませんが保守的な面があり、先端的な機能などの取り込みも遅れがちです。また、実際問題として基幹系ではソーシャルWebなどに比べて、システム機能の要件のハードルが高くなる部分が多いです。しかしそのような基幹系だからこそ、クラウド他Webの先端機能を利用すればどのように変貌・効率化するかを考えてみるのも意味のあることと筆者は考えます。 本稿では8回程度のやや長期の連載を予定しています。内容としては、GoogleのPaaSクラウド(Google App Engine、以後GAE)上でRDBのMySQLを使用できるようにした「Google Cloud SQL」を中心に取り上げますが、その他にもさまざまなツールやサービスと組み合わせた内容にする予定です。 サービスの組み合わせで取り上げる内容としてはW
皆さん、こんばんは。笹亀です。 7月もあっという間に10日間が過ぎて、夏真っ盛りになってきました。 自分も夏対策でアイス眠というマットレスを購入して夏を乗り越えようと思っております。 さて、本日はストアドプロシージャについて検証をしてみたいと思います。 ストアドプロシージャとは、一連のSQL文や処理に名前をつけて保存したものです。 PHPの関数と同じでSQLを関数みたいにしたものがストアドプロシージャになります。 MySQLではストアドプロシージャはMySQLでは5.0から利用が可能です。 今回はMySQLのストアドプロシージャの使い方だけではなく、 生PHPで記載したときとのパフォーマンスを比較してみたいと思います。 MySQLのストアドプロシージャを呼び出して処理をするPHPプログラムとストアドプロシージャで作成したものと同じSQLを実行するPHPプログラムを作成します。 上記2つのプ
SQLとNoSQLではどちらが優れているのか? グーグルの担当者がディベート(というより小芝居:-)を行ったセッション「Google I/O 2012 - SQL vs NoSQL: Battle of the Backends - YouTube」が公開されています。 (この記事は「SQL vs NoSQL、グーグルにおける戦い(前編)。Google I/O 2012」の続きです) スケーラビリティについて (NoSQL担当)あらゆる面で、こちらが高いスケーラビリティを提供している。 (SQL担当)そんな訳ないだろ。 (NoSQL担当)そんな訳あるさ。 (SQL担当)じゃあまず、Cloud SQLがどう使われているか紹介しよう。例えば「グーグルorgチャート」。グーグルの3万人の従業員について、組織内のつながりや仕事を示すアプリケーションだ。 社内では誰もがこのWebサイトを開いていて、
SQLとNoSQLではどちらが優れているのか? グーグルの担当者がディベート(というより小芝居:-)を行ったセッション「Google I/O 2012 - SQL vs NoSQL: Battle of the Backends - YouTube」が公開されています。 このセッションは、先々週開催されたGoogle I/O 2012で行われたもの。SQLとNoSQLには機能的にどのような違いがあり、どう使い分けるべきなのか、明確な説明が参考になります。 ハイライトを紹介しましょう。 クラウドにおけるデータベースのメリット グーグルのAlfred Fuller氏(NoSQL担当)。 クラウドはフォルトトレラントでメンテナンス不要、パッチも私たちが適用しており、利用者は運用について心配する必要がない、といったメリットがある。 データのレプリケーションや地域分散でデータも保全され、インターネッ
Oculusはビジネス用データベースクエリー共有システムです。 開発者の所にはたびたびユーザが訪ねてきてデータベースから一定の条件で抜き出したデータが欲しいと言われることがあります。そんなことが繰り返しあるとSQLをテキストファイルで残しておいたりする人も多いのではないでしょうか。そこで使ってみたいのがOculusです。クエリーを共有したり、データのダウンロードができます。 インストールはRubyGemsで行います。 オプションです。ユーザ名、パスワード、データベースを指定して実行します。 起動しました。 実行しました。結果が下に表示されます。 データはテーブル上に表示されます。 こちらはクエリーログです。 クエリーを保存しておけます。お気に入り登録も可能です。結果はダウンロードもできます。 お気に入りのクエリー一覧です。 Oculusを共有して使えば、最初は開発者がクエリーを作成し、後は
BigQueryはカラム型データストアの一種で、テラバイトクラスの大規模データに対して大量の並列処理を行うことで高速に結果を得ることが可能。グーグル 佐藤一憲氏の発言によると、 OLAP/DWH/Data Miningで行われるようなread onlyのad hocクエリをきわめて高速(数秒〜数十秒)に実行します。 とのこと。 SQLによる問い合わせが可能 この高速性に加え、BigQueryではSQLを問い合わせ言語に使えるという点にも大きな特徴があります。数秒程度のレスポンスとSQL文による記述は、大規模データに対するアドホックな処理を行うのに適したサービスだといえるでしょう。 BigQueryのSQLの構文は「Query Reference」で解説されていますが、SELECT文にFROM、WHERE、JOIN、HAVING、GROUP BY、ORDER BY、LIMITなどが使えるため
Java言語からのアクセスで、Cloud SQLではMySQLの動的SQLを使用し、BigtableではLow-Level APIを使用しています。Bigtableアクセス用のAPIとしてはこの他に、日本発のオープンソースフレームワークのSlim3やJDO(Java Data Objects)、JPA(Java Persistence API)などもありますが、アクセスパフォーマンスでは、ここで使用するLow-Level APIか最も優れているはずです。 処理スピード比較 処理スピードの比較は、アイテムマスタのCRUD処理(登録・参照・更新・削除)をそれぞれ同じ画面内容からのアクセスで、Bigtableはクラウド環境で、Cloud SQLではクラウドとローカルの両方で測定を行っています。処理時間の測定では該当のメソッドが呼び出された瞬間から登録などの処理完了直後までの時間を、それぞれの処理
XAMPP環境からGoogle Cloud SQLに移行するには:Google Cloud SQLは基幹系で使えるのか(前編)(1/4 ページ) グーグルのエンタープライズへの挑戦は成功するのか グーグルは2011年10月7日に「Google Cloud SQL」のサービス開始を発表しました。Google Cloud SQL(以降、Cloud SQL)は、「Google App Engine」(以降、GAE)から利用できるRDB(リレーショナルデータベース)アクセス機能で、RDBとしてMySQLを使用します。これまでGAEで使用できるデータストアは、いわゆる「NoSQL」の「Bigtable」だけでしたが、これでNoSQLとSQLの両方が使えるようになったわけです。 Cloud SQLのりリースは、ここ数年グーグルが指向していた、エンタープライズチャレンジの中に位置付けられます。クラウドは
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く