sql.js is an SQL library for javascript containing a version of SQLite compiled for the web.
2017/07/10 SQLアンチパターンNight Part2 https://connpass.com/event/59946/
理論から学ぶデータベース実践入門 ~リレーショナルモデルによる効率的なSQL (WEB+DB PRESS plus) 作者:奥野 幹也技術評論社Amazon 積ん読に入っていたので読んだ。 この本はリレーショナルモデルを理解することによってRDBの知識を深めようというような本。RDBを実践で使っている人がさらに知識を深めるための本という感じ。内容としては重要な理論がRDBと紐付けられて解説されていて面白かった。一方で、専門用語が文章中に多く使われていて、個人的には何か頭に入ってこなかった点は残念だった。 この本を読みながらわからないところを調べていて見つけたのだけど、この本の著者の昔の発表資料である「データベース設計徹底指南!!」がこの本の端的なまとめになっていて、しかも非常に良い資料なので本当におすすめ。本で紹介されているリレーショナルモデルや正規化理論などがわずか15分程度で理解できる
ある日のできごと 少し前、「ブログの記事のようなものを、履歴を残しつつ編集できるようにするにはどのようなテーブル設計が良いか?」と尋ねられたことがありました. その時, まず思いついた(というか見聞きしたことがある方法)のは以下の様な2通りの方法だった. 記事テーブルにバージョン番号を持たせる方法 記事テーブルとは別に, だいたい同じ構造の履歴テーブルを持つ方法 こられの手法のメリット・デメリットについて, すこし考えていきたいと思います. その1 記事テーブルにバージョン番号を持たせる方法 概要 この方法では, 記事テーブルは一つだけ用意し, 更新される度に新しいレコードを追加していきます. 主キーはidとなるが, これはサロゲートキーで, 本当の主キーは「記事グループid + verison」の複合主キーとなっています. 記事の最終更新日時は, 最新Versionのレコードのinser
「mockaroo」はダミーデータを1000種類自動生成してくれるサービスです。開発時に必要なダミーデータを大量に一括生成してくれますよ。フォーマットは、CSV, JSON, SQL, Excel形式です。SQLはテーブル名を指定すると、INSERT文を自動生成してくれるので便利でした。 以下に使ってみた様子を載せておきます。まずmockarooへアクセスしましょう。 キーに対する値を入れていきましょう。一定確率で空要素も指定できますね。 どのようなデータを入れるかは、一覧から選択できます。100種類近くあるのできっと最適なデータが探せるかと思います。 JSON形式で生成した結果です。全部で1000種類のダミーデータが一括で作成できました。開発中にダミーデータが大量に欲しいときにぜひ使ってみてください。 mockaroo (カメきち)
来る2月27日、データベースの新書籍を発売させて頂くことになった。タイトルは「理論から学ぶデータベース実践入門 ~リレーショナルモデルによる効率的なSQL」となっている。単に「データベース」と書いてあるが、RDBがメインのテーマの書籍である。 多くの人が未だにRDBを使いこなせていないのではないか。RDBの使い方をマスターするには何が必要なのか。それがここ数年私が追ってきたテーマであり、この書籍を出すことになった動機である。 あまりにも酷いDB設計、あまりにもスパゲティなクエリ、あまりにも希薄なデータモデルへの理解。そういった問題はどこから生み出されるのか。そのひとつの結論としてたどり着いたのが、「そもそもRDBの使い方があまり理解されていないのではないか」ということだった。名著、SQLアンチパターンでは「やってはいけないケース」について学ぶことができるが、その反対のテーマ、つまり本来どの
Norikra使ってますかー? もちろん使ってますよね! Norikraって内部ではEsperTech Inc.がオープンソース公開しているEsperというJavaベースのガチなCEP (Complex Event Processing)エンジンを利用していて、そのクエリ言語であるEPL (Event Processing Language)を用いることで、 a highly scalable, memory-efficient, in-memory computing, SQL-standard, minimal latency, real-time streaming-capable Big Data processing engine for historical data, or medium to high-velocity data and high-variety data.
レプリケーションの問題でよくある10パターン。 1) セッションのみで有効なバイナリログ sql_log_bin = 0を設定すると、そのセッション内でバイナリログを無効にできる。つまり、マスタのセッション内で実行したDMLやDDLは、スレーブにはレプリケーションされない。 マスタでバイナリログをオフにする。 mysql> set sql_log_bin = 0 ; Query OK, 0 rows affected (0.00 sec) reptestデータベースにテーブルを作成してみる(マスタ上で実行)。 mysql> create table reptest(ID int) ; Query OK, 0 rows affected (0.01 sec) mysql> show tables ; +-------------------+ | Tables_in_reptest | +-
この記事はドワンゴ Advent Calendar 2014の14日目です。 ちなみに前日は@erukitiさんでした。 他の方は「こんなもの作ってみた!」系の記事が多いのですが、技術系の話題であれば特に縛りはないようなので、今回はひたすら文章をつらつらと綴っていきたいと思います。 ここ数年、「マルチコア時代の主流は関数型だ」とか「Javaはもう古い! 時代は関数型!」といった記事をよく見かけるようになった気がします。 大学でOCamlを学んできた自分としては嬉しい限りなのですが、なんだか関数型という言葉がバズワード的な使われ方をしている気がして、まるで「現在起こっている全ての問題を解決する銀の矢だ!」といわんばかりの雰囲気を感じるのが気になっています。 最近うちの部署でもにわかに「関数型っぽく書こう」みたいな機運が高まってることもあるので、この機に関数型プログラミングとはなにか、どのよう
SQLのパフォーマンス問題は、SQLそのものと同じぐらいの歴史がある―― ある人は、SQLはそもそも遅いものだとすら言うかもしれません。これは、SQLの歴史が始まった頃は正しかったかもしれませんが、今となっては全く 当てはまらないでしょう。にもかかわらず、SQLのパフォーマンス問題は今も一般的でよくあることです。どうしてそうなってしまうのでしょうか? SQL言語は、恐らく最も成功した第4世代言語(4GL)でしょう。その最大の利点は、「何を」と「どのように」 を分離できることです。SQL文は、どのようにそれを実行するかを記述せずに、単純に 何を必要としているかのみの記述になっています。以下のような例を考えてみましょう。 SELECT date_of_birth FROM employees WHERE last_name = 'WINAND'SQLのクエリは、データを要求する英語の文として読
Google Spreadsheetを使ってたら、Query Languageというのがあるということに気づいて非常に便利だったのでメモ。 Query Language Reference (Version 0.7) | Charts | Google Developers Query LanguageというのはGoogle Spreadsheetの内容をSQLっぽい文法で絞り込んだり計算したりできるもの。 例として非常に雑な例を出すと、 簡単なTODOリストをおいている Sattus, Task名, 締切が書いてある 「TODO全体」というシートに書かれている というようなシートがあるとする。 このシートから 別シートに、DOING状態になっているタスクを日付順に抜き出したい 別シートに、Due dateを超えたタスクを抜き出したい という2つのことをやりたいとすると、Query
はじめに 初期のScutumはUNION SELECTという文字列があると単純にSQLインジェクションであると判断して、通信をブロックしていました。現在はもっとインテリジェントな検知エンジンを搭載しており、UNION SELECTだけではブロックしません。 実は、私は5年前には、UNIONだけでもブロックしてよいのではないかと考えていました。というのも、通常の(特に日本語が使われている)ウェブサイトにおいて、ブラウザから「UNION」という文字列が送られてくるケースは非常に稀だろうと思っていたからです。 最近になって、ふと「実際にUNION SELECTが通常の文章の中でどのくらい使われているか、大量の英文のデータを処理してみたいな」と思い、情報収集を開始しました。するとまさにこの用途にぴったりのデータセットが見つかりました。Google BooksのNgram Viewerです。 Goo
アプリをAPI化して各アプリを疎結合していく作りが多くなっていくこの世の中、 Apache CamelからDBにつなぐ方法、Tomcat等のコンテナで動作させる方法などなどが分かるとAPI的な実用なものがサクッと作れたりする所を今回説明。 (CamelからJettyを扱えるのでTomcat使わなくても動くけど) 今回の目標 IDを指定してhttpで問い合わせるとDBテーブルの内容をそのままJSONデータで返すアプリを作ること // tomcatで受信したデータを取得 http://localhost:8080/appname/list?id=123 from("servlet:///list") // アクセスログを出力(ログイン処理ではない〜) .to("log:in") // SQLで情報を取得 .to("sql:SELECT * FROM myitems WHERE user_id
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く