タグ

sqlとSQLに関するwasaiのブックマーク (86)

  • データベースはなぜ必要なの?

    データベースとは、その名の通り、なにかしらの情報(データ)を蓄積した集合体です。ただし、ただ無作為に蓄積すれば良いというものではありません。あとから検索/分析することを目的に、ある一定のルールに基づいて蓄積した情報のことをデータベース(DBDataBase)と言います。また、データベースを管理するための専用ソフトウェアのことをデータベース管理システム(DBMS:DataBase Management System)」と言います(ただし、記事では特別に限定することなく「データベース」といった場合、「データベース管理システム」を含むものとします)。 データベースは身近な「床下の力持ち」 もっとも、データベースというと、「なんか難しそうなんだよね」「そもそも自分の生活とは無関係なんじゃない?」などと考えている人も多いようです。あるいは、新しい環境で記事を読みながら「未知の世界へ乗り出すんだ

    データベースはなぜ必要なの?
  • SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)

    14. SELECT c1.*, c2.*, c3.*, c4.* FROM Comments c1 -- 1階層目 LEFT OUTER JOIN Comments c2 ON c2.parent_id = c1.comment_id -- 2階層目 LEFT OUTER JOIN Comments c3 ON c3.parent_id = c2.comment_id -- 3階層目 LEFT OUTER JOIN Comments c4 ON c4.parent_id = c3.comment_id -- 4階層目 アンチパターンにより起こること 素朴すぎる故に アンチパターン

    SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
  • RDBMSに関する典型的な誤解が絶えないという現実

    新入社員必読、データベースの基を理解しよう - データベースはなぜ必要なの?:ITproという記事に対するブクマで次のようなIDコールが来た。(現在はコメント返しへのお礼が入っているので、文字数制限のためオリジナルのコメントは少し切り詰められている。) "リレーショナルデータベースはすべてのデータを2次元の表形式で表現"こういうのもリレーションが2次元構造という誤解の一種なんだろうか。id:nippondanjiさんが書いてたような。 さて、この疑問に対する正解は如何なるものだろうか? つい先日「7つのデータベース 7つの世界」の書評で書いたばかりだが・・・ 言うまでもなくその通りである。 リレーションが2次元的な構造を持っているというのは典型的な誤解だ。(ちなみにリレーションの次元は属性の数に等しい。n個の属性があるリレーションはn次元。)リレーショナルモデルについてちゃんと学習してい

    RDBMSに関する典型的な誤解が絶えないという現実
  • 「SQL アンチパターン」を読んだ - tsucchi の日記 2nd season

    概要 割ともう書評も出揃ってる感がありますが、ようやく読み終わったので書こうと思います。 このSQLDB 設計でやってしまいがちな、ダメダメなパターンを体系化して、名前をつけたものです。また、なぜそうなってしまうのか、どうやって回避するのか、使っても良い場合があるとしたらどういう場合か、も書いてあります。 PoEAA なんかもそうなのですが、わりと「知ってたわー、N年前から知ってたわー」という感想なのですが、それは僕自信がここ数年、それなりに真面目に DB 設計やったり SQL 書いたりしてたから言えるわけで、Nが 0 ならそれに越したことはないと思います。 DB とか SQL とか自信ない人は是非読むべきです。DB 設計とか長くやってる人も、読んだほうがいいでしょうね。デザパタなんかと同様に、今後はパターン名知らないと、話が通じなくなっちゃう可能性がありますから。 経験の少な

  • 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
  • SQLアンチパターン「IDリクワイアド」の再検討 - 極北データモデリング

    SQLアンチパターン 作者: Bill Karwin,和田卓人,和田省二,児島修出版社/メーカー: オライリージャパン発売日: 2013/01/26メディア: 大型購入: 9人 クリック: 698回この商品を含むブログ (46件) を見る話題のSQLアンチパターンの目次に「アンチパターン:すべてのテーブルにID列を用いる」とあるのを見て、大胆にもサロゲートキーを否定しているのかと思って読んでみたが、どうも主張がはっきりしない。論点が尽くされていないような... 「SQLアンチパターン」の主張 第3章には以下のようなことが書いてある。 「IDリクワイアド」アンチパターン IDリクワイアドは「すべてのテーブルに"id"という列名の無意味な連番の列を追加し、PRIMARY KEY制約を付与する」というパターンのこと。 何がいけないのか 自然キーにUNIQUE制約を付けないなら、自然キーの重複を

    SQLアンチパターン「IDリクワイアド」の再検討 - 極北データモデリング
  • 書籍『SQLアンチパターン』に関するつぶやきまとめ #sqlap

    2013年01月に、和田親子(和田省二氏、和田卓人氏)共同監修の書籍『SQLアンチパターン』が発売されました。このTogetterでは、親子対談となったジュンク堂イベントをメインにつぶやきや関連サイトをまとめて行きます。 O'Reilly Japan - SQLアンチパターン http://www.oreilly.co.jp/books/9784873115894/ 続きを読む

    書籍『SQLアンチパターン』に関するつぶやきまとめ #sqlap
  • 「SQLアンチパターン」。監訳者 和田卓人氏自身による書籍紹介

    アンチパターンに名前を付けることで、コンテキストを共有できて議論がしやすくなる。2月14日、15日に都内で開催されたイベント「Developers Summit 2013」、通称デブサミにおいて、書籍「SQLアンチパターン」の監訳をした和田卓人氏は書の意義をこう強調しました。 「SQLアンチパターン」は、データベースにおける設計からアプリケーションに関わるレイヤまで、開発者が陥りやすいミスや誤解に名前を付けたうえで原因と解決策を詳しく解説しています。 和田氏が指摘するように、これまでデータベースに関するデータ設計などのミスを指摘したり議論するには、その背景を共有するための面倒な説明が必要でした。SQLアンチパターンの登場は、そうした背景を暗黙のうちに共有する手段を与えてくれることになります。書はデータベース分野の古典になる資格を十分に備えているのではないでしょうか。 書籍の監訳者自身が

    「SQLアンチパターン」。監訳者 和田卓人氏自身による書籍紹介
  • 「SQL アンチパターン」は色んな戦争の火種になりそう - yoshiori.github.io

    監訳の一人である @t_wada に献頂きました。 ありがとうございます!!! でだ、いきなりだけどコレ、タイトルで損してると思うんだよね…… だって、SQL のアンチパターンてタイトルだったら、 join した結果の方で where で絞るよりも on 句で先に絞れ 的なのが書いてあると思うじゃん!! 問い合わせ言語の事だと思うじゃん!!! 違った…… ほとんど書いてあるのは DB 設計についてだった…… まぁ、副題は「Avoiding the Pitfalls of Database Programming」のだし、まぁいいか。 んで、読んでみた感想とか もうね、何年か DB 絡んだ開発したことのある人なら(・∀・)ニヤニヤ出来ると思う。 「”マルチカラムアトリビュート”とか 10 年前に通ったわー」 とか 「あーはいはい”インデックスショットガン”乙」 みたいな。 Explain

  • 紹介:【書籍】SQLアンチパターン

    リレーショナルデータベースの父、エドガー・F・コッド氏が論文を発表したのは1970年。私が生まれる前の話である。そしてSQLがANSI標準になったのが1986年。RDBMSを、そしてSQLを使ったシステム開発は常に主流で在り続けたと言っても過言ではない。そんな歴史のあるSQLであるが、未だに多くの人はSQLを使いこなせて居ないように見える。 SQLはとても奥が深い。ソートやトランザクションが使用出来るおかげで、リレーショナルモデルを無視して単なるデータの入れ物として使ってもそれなりに便利だったりする。だが、それが今現在多くの悲劇を生んでいる原因でもある。多くの人が同じようにSQLを理解せず、そのため多くの人が同じ悲劇に見舞われる。そう、それがアンチパターンである! 今回紹介するSQLアンチパターンは、洋書SQL Antipatternsの邦訳版だ。私は元々英語版のファンでであり、人々が陥り

    紹介:【書籍】SQLアンチパターン
  • SQLアンチパターン

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

    SQLアンチパターン
  • Ruby on Railsのfind_by_*メソッドにSQLインジェクション脆弱性(CVE-2012-5664) | 徳丸浩の日記

    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は書誌データベースであ

    Ruby on Railsのfind_by_*メソッドにSQLインジェクション脆弱性(CVE-2012-5664) | 徳丸浩の日記
  • SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?

    (PgDay2012発表資料) SQLにとって、なぜO/Rマッパーが重要かを説明した資料です。Read less

    SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
  • NEC、SQLでFPGAを直接設計できる技術を開発--停止せずに処理内容も変更

    印刷する メールで送る テキスト HTML 電子書籍 PDF ダウンロード テキスト 電子書籍 PDF クリップした記事をMyページから読むことができます NECは8月31日、ビッグデータのリアルタイム分析処理を高速化するハードウェアを専門知識がなくても簡単、高速に設計できる技術を開発したと発表した。2014年度までに製品化して提供することを目指す。 今回開発した技術は、リレーショナルデータベース管理システム(RDBMS)で標準的に使われるデータアクセス言語「SQL」で設計したソフトウェアを、同社が保有する書き換え可能なLSI(Field Programmable Gate Array:FPGA)の回路合成技術「CyberWorkBench」を利用して、専用ハードウェアに自動変換するというもの。データ分析担当者は、使い慣れたSQLFPGAを直接設計できるといい、技術者による回路設計作業が

    NEC、SQLでFPGAを直接設計できる技術を開発--停止せずに処理内容も変更
  • なぜ、人はSQLをループさせたがるのか

    設計者にもうれしいO/Rマッパ「DBFlute」 7月13日、DB2の勉強会などを開催するコミュニティ「ClubDB2」が開催されました。冒頭のライトニングトークではフリーランスのオープンソースプログラマであり、DBFluteのメインコミッタでもある久保雅彦さん(写真)がDBFluteをアピールしました。 DBFluteを端的に説明すると、「DB設計者にもうれしいO/Rマッパ」だそうです。ただ、O/Rマッパを乱用されるとパフォーマンスに悪影響を及ぼしかねないので、データベース管理者からすると「えーやめてー」と忌避されがちです。しかし、DBFluteはデータベースの変更に強いという特徴があります。カラムの追加など、データベースの変更履歴を自動生成し、開発環境にスムーズに反映させることができます。それゆえにプログラマには当然のこと、管理者にも役に立つO/Rマッパと言えます。 また久保さんは「デ

    なぜ、人はSQLをループさせたがるのか
    wasai
    wasai 2012/08/23
  • MySQL SQLオプティマイザのコスト計算アルゴリズム - SH2の日記

    いちいさんにお誘いいただいて、勉強会で発表をすることになりました。 InnoDB Deep Talk #1 : ATND おそらく初見では内容が難しいと思いますので、先に資料を公開しておきます。 プレゼンテーション資料 (PDF) テストデータ生成スクリプト (JdbcRunnerで利用します。) プレゼンテーション資料からリンクしているウェブサイトの一覧です。 MySQL Bugs: #64567: Last_query_cost is not updated when executing an unique key lookup Understanding and Control of MySQL Query Optimizer: Traditional and Novel Tools and Techniques: MySQL Conference & Expo 2009 - O'R

    MySQL SQLオプティマイザのコスト計算アルゴリズム - SH2の日記
    wasai
    wasai 2012/03/10
    とりあえず資料を見てみます。
  • Grass on SQL - still deeper

    Overview ちょっと草植えときますね型言語 Grass をSQLで実装しましたという話. Grassはλ計算をベースにした関数型プログラミング言語です.公式ページの仕様を元にSQL(PostgreSQL)で実装しました. 他Grassについては上記の公式ページとかここら辺を参照. プログラミング言語/Grass - プログラミングスレまとめ in VIP うはwww Mosh で Grass 実装したwwww - Higepon’s blog - Mona OS and Mosh Example SELECT run_grass('wwWWwv wwwwWWWwwWwwWWWWWWwwwwWwwv wWWwwwWwwwwWwwwwwwWwwwwwwwww'); run_grass ----------- ww (1 row) SELECT run_grass('wWWWwwwwWWW

    wasai
    wasai 2012/03/07
    Homuhomu www
  • html5sql.com - このウェブサイトは販売用です! - html5sql リソースおよび情報

    This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it constitute or imply its association, endorsement or recommendation.

    wasai
    wasai 2012/02/16
    HTML5でSQLを簡単に使用するJavaScriptかな?
  • 5分でできるPHPセキュリティ対策 - ぼくはまちちゃん!

    こんにちはこんにちは!! Webプログラミングしてますか! よく「PHPセキュリティがダメ」とか言われてるよね。 でもそれって、べつにPHPが悪いんじゃなくて、 たぶん、セキュリティとかが、まだよくわからない人が多いだけなんじゃないかな。 がんばって勉強しようと思っても、なんだか難しい理屈が並んでいたりするしね…。 なので今日は、セキュリティ対策について、 「これだけやっとけば、わりと安全になるよ」ってことを、初心者むけに、大雑把に書いてみます! 理屈がわからなくても、最初はコピペでも、 なにもやらないより、やったほうがきっとマシになる! 1. XSS対策 動的なものを表示するとき、全部エスケープすればokです! (NG) あなたの名前は <?= $name ?> ですね! ↓ (OK) あなたの名前は <?= htmlspecialchars($name, ENT_QUOTES) ?>

    5分でできるPHPセキュリティ対策 - ぼくはまちちゃん!
  • データベースの内部動作を知る

    SQLのプログラミングは奥が深い。特にパフォーマンスの観点から、そう言えるだろう。 みなさんご承知の通り、同じ結果を出すプログラムでも、SQLの書き方次第で処理時間に何倍もの差が生じ得る。効率の悪いSQLを書いてしまう原因は、多くの場合、リレーショナルデータベースの内部動作やアプリケーションに関する理解不足である。両者をよく知った上で最適なSQLを書けるようになることは、システムエンジニアとしての重要なスキルの一つである。 特集『基礎から理解するデータベースのしくみ』では、リレーショナルデータベースの内部動作について、基的な部分を分かりやすく解説している。SQLプログラミングに役立つことはもちろん、SQLチューニングやデータベース設計のための基礎知識としても不可欠だ。 イントロダクション ブラックボックスのままでいいの? Part 1:SQL文はどのように実行されるのか SQL実行までの

    データベースの内部動作を知る