タグ

SQLに関するkyuxyuのブックマーク (34)

  • 【DB】第一正規形~第五正規形までを図解 | bbh

    正規化について 正規化とは、外部スキーマで定義したデータをDB上で効率的に管理するために整理、分割をする作業のことを指します。 この正規化には、第一正規化~第五正規化とボイスコッド正規化が存在します。 ただし、一般的に使われるのは、第一正規化~第三正規化までのことが多いです。 では、第一正規化から順番に見ていきます。 第一正規化 第一正規化は、一つのカラムに一つの値のみを持っている状態にすることを指します。 例えば、以下のようなテーブルが存在するとしましょう。 このテーブルは、注文に対して複数の商品が紐づいています。 これは概念的には間違っているようには見えません。 実際に注文には複数の商品が紐づくことがあります。 この構造の問題は、それをデータベースで表現することができない点です。 データベースでは、一つの値を配列にしたり、入れ子構造にしたりすることができません。 もし、データベースでこ

    kyuxyu
    kyuxyu 2023/07/26
  • トランザクションとは何か - Qiita

    イントロダクション これは@kumagiが一人でトランザクション技術に関する話をまとめていくアドベントカレンダーである。 トランザクション技術は多岐にわたり、複雑に絡み合い、DBの中で巨大な密結合コンポーネントを生み出している。そのためその中身を語るアドベントカレンダーも完全に順序付けて章立てしていくのは難しい。そのため様々な側面から一日に読めそうな文量の記事毎にまとめてアドベントカレンダーとするので、25日も話題が持つのかはさておき必ずしも記事の区切りは技術としての区切りの良さとは関係がない。 しかも初めの数日はトランザクションが実現する並行制御の理論的側面についての整理を淡々と述べるので退屈になること請け合いだけれど、可能な限り図解しながら説明を尽くすのでわからない所は容赦なくはてブやTwitterなどで書いて貰えたら適宜加筆修正をするつもり。 アドベントカレンダーを書くにあたって参考

    トランザクションとは何か - Qiita
    kyuxyu
    kyuxyu 2016/12/01
  • What is NoSQL? Non-Relational Databases Explained | DataStax

    NoSQL databases are designed to support cloud application requirements and overcome the scale, performance, data model and data distribution limitations of traditional relational databases (RDBMS’s). NoSQL explainedTo better understand NoSQL databases, let’s first take a look at their alternative: relational databases. The SQL programming language was designed as an easy way to query and modify re

    What is NoSQL? Non-Relational Databases Explained | DataStax
  • Windows: スパースファイルの有効性を検証 · Issue #384 · groonga/groonga

    Groonga 5.0.7にWindowsでスパースファイルを使える機能が実装されました。 スパースファイルをサポートすることにより次の効果を期待しています。 データベースの使用ディスクサイズが減少 スパースファイルにすることにより実際に使用しているディスクサイズが減ることを期待しています。(見かけ上のディスクサイズは変わりません。)Groongaは一度にある程度のサイズの領域を確保してからその領域を利用するため、データベースのファイルサイズが大きくなりがちです。スパースファイルをサポートすることにより、Groongaの領域確保の方法を変えずに、実際に使うディスクサイズを減らすことができるかもしれません。 一方、次の点を懸念しているため、デフォルトでは無効にしています。 パフォーマンス メモリー使用量(特に仮想メモリー使用量) もし、Windowsユーザーのみなさんからのフィードバックの結

    Windows: スパースファイルの有効性を検証 · Issue #384 · groonga/groonga
  • 逆引きSQL構文集

    逆引きSQL構文集はやりたいことから,その方法を調べられるSQLの逆引きのリファレンスです. すべての項目にサンプルを用意してありますのでよろしければ参考にしてください. ブラウザの検索機能(Ctrl + F)を使用すると効率的にSQLを調べることができます. ホームページは現在精力的に作成中です

  • INSERT文にSQLインジェクション脆弱性があるとどんな被害が出るのか? — A Day in Serenity (Reloaded) — PHP, CodeIgniter, FuelPHP, Linux or something

    INSERT文の悪用の可能性について回答しました SQLインジェクションについて教えて下さい<form><th>ご住所... - Yahoo!知恵袋 http://t.co/VXtAcXiAVs — 徳丸 浩 (@ockeghem) 2015, 1月 6 という徳丸さんのツイートがありましたので、ちょっと考えてみました。 サンプルコード 上記の質問にあるコードを動作するように最低限補完しました。 <form method="post"> <th>ご住所</th> <td><input type='text' name='address'></td> <th>メールアドレス</th> <td><input type='text' name='mail'></td> <input type='submit' value='送信'> </form> -------------------- <?

  • SQLアンチパターン(インデックスショットガン)

    2. アジェンダ マスタ テキストの書式設定 アンチパターンの前の予備知識 • インデックスについて • オプティマイザ(統計情報、実行計画)について アンチパターン「インデックスショットガン」 • 目的 • アンチパターン • アンチパターンの見つけ方 • アンチパターンを用いてもよい場合 • 解決策 • 備考(検証した環境について) -1 - 3. インデックスについて:仕組み インデックスを使用することによりパフォーマンスが改善するのは、 検索処理のボトルネックとなる マスタ テキストの書式設定 ディスク読み込みを最小限に抑えることができるからである。 例.SELECT * FROM Bugs WHERE bug_id = 27; ①インデックスなし ②インデックスあり Bugs PK_Bugs ・1,677 万件 ・ 736 MByte ・ 94,208 ブロック 1-49 Bug

    SQLアンチパターン(インデックスショットガン)
    kyuxyu
    kyuxyu 2014/11/18
  • 間違いだらけのSQL識別子エスケープ

    これから3回連載の予定で、SQL識別子のエスケープの問題について記事を書きます。SQL識別子のエスケープについてはあまり解説記事などがなく、エンジニア間で十分な合意がないような気がしますので、これらの記事が議論のきっかけになれば幸いです。 3回の予定は以下のとおりです。 間違いだらけのSQL識別子エスケープ(稿) SQL識別子エスケープのバグの事例 SQL識別子は結局どうすればよいか ということで、まずはSQL識別子のエスケープの失敗例について説明します。この失敗例はあくまで説明のために作ったもので、実際のものではありません。また、想定が「ありえない」と思われるかもしれませんが、意図的なものですのでご容赦いただければと思います。また、「間違いだらけの」というタイトルは、今回の題材が間違いだらけという意味であり、巷のSQL呼び出しがそうであるという意味ではありません。稿に登場する人物と団

    kyuxyu
    kyuxyu 2013/12/26
  • その選択、ちょっと待った!NoSQLデータベースへ乗り換える前に検討すべき3つのポイント

    最近、どうも安易に「NoSQLにすれば厄介なDB設計から開放される」と考えている人が多いように思えて仕方がない。だが待って欲しい。当にNoSQLと呼ばれるデータベースを使えばアプリケーションの開発・運用の苦しみから逃れられるのだろうか。もちろん「そんなことは無い!!絶対にだ!!」と私は考える。今日はその理由について語ろうと思う。 トランザクション先日、リレーショナルデータベースにおけるDB設計についてセミナーで解説したばかりだが、リレーショナルデータベースにおけるデータの整合性は何もDB設計だけが担保しているわけではない。リレーショナルモデルと同じかそれ以上に欠かせないのがトランザクションだ。 トランザクションがあるおかげで、トランザクション終了後のステータスは「成功」か「失敗」の2つしかないということが保証される。すなわちオール・オア・ナッシングだ。もしトランザクションの途中で何らかの

    その選択、ちょっと待った!NoSQLデータベースへ乗り換える前に検討すべき3つのポイント
    kyuxyu
    kyuxyu 2013/12/21
  • Amazon RDS for MySQLのクロスリージョン・リードレプリカを試す - サーバーワークスエンジニアブログ

    サーバーワークスの新坂です。 RDS for MySQLでクロスリージョン・リードレプリカ機能が発表されましたね。 Amazon Web Servicesブログの記事を見ますと、世界中のリージョンへデータベースをレプリケーションできるようです。すごいですね。クラウドですね。 【AWS発表】 Amazon RDS for MySQLがクロスリージョン・リードレプリカを作成可能に でもデータベースを世界へ複製するってパフォーマンスはどうなんでしょう、という疑問がわきます。ということで試してみました。 リードレプリカ作成 まずはリードレプリカを作成してみます。マスターとなるDBインスタンス→「Instance Actions」→「Create Read Replica」を選択します。 次に、レプリカ作成情報を設定します。ここで他のリージョンが選択できます。 完了です。簡単ですね。 レプリカの確認

    Amazon RDS for MySQLのクロスリージョン・リードレプリカを試す - サーバーワークスエンジニアブログ
    kyuxyu
    kyuxyu 2013/12/18
  • SQLアンチパターン - ナイーブツリー

    社内勉強会資料 追記: 2013-10-31 ついったで指摘( https://twitter.com/akuraru/status/395822183777202176 )を受けたので入れ子集合のノード追加の説明の所を修正しました。Read less

    SQLアンチパターン - ナイーブツリー
    kyuxyu
    kyuxyu 2013/11/01
  • DynamoDB 入門編 - サーバーワークスエンジニアブログ

    こんにちは。開発部の坂です。 AWSのデータベースサービスで1番有名なのはRDBMSのデータベースサービスであるRDSかと思います。わたし個人としてもデータベースはRDBMSしか利用したことがなく、NoSQLに触れたことがありませんでした。そのため、今回はAWSのNoSQLデータベースサービスである「DynamoDB」に少し触ってみました。 その際の手順を簡単ではありますが、入門編としてまとめたいと思います。 目次 DynamoDBとは DynamoDBの特徴 開始手順 AWS SDK for PHP 2 Put Get Scan まとめ 1. DynamoDBとは 「DynamoDB」はAWSのフルマネージドNoSQLデータベースサービスです。 2006年に「Dynamo」という論文が書かれ、その論文を元にして作成されたサービスが「DynamoDB」です。 2. DynamoDBの特徴

    DynamoDB 入門編 - サーバーワークスエンジニアブログ
    kyuxyu
    kyuxyu 2013/10/12
  • 「開発する楽しさ」への回帰を目指したNoSQL MongoDBの夏イベント

    オープンソースNoSQLの一つである「MongoDB」の日での情報交換・普及を目指す団体が、日のMongoDBユーザーズグループ(MongoDB Users Group: MUG)である「MongoDB JP」だ。Webサービスでは国内でもかなり採用事例も耳にするMongoDBだが、エンタープライズではまだ知名度、事例ともに十分とは言えない。そこで「まずは開発者一人一人の楽しさに立ち帰ろう」という思いで企画されたイベントが「納涼もんご祭り」だ。 東工大 蔵前会館が夏祭りの会場に?! 「納涼もんご祭り」は、MongoDB JP主催のイベントであり、2013年7月28日、東京工業大学大岡山キャンパス 蔵前会館にて行われた。ATNDの登録者数115名、事務局公称参加人数176名と、非常に盛況なイベントとなった。 筆者はMongoDB JPのメンバーとして、また自社のブース展示の担当者として

    「開発する楽しさ」への回帰を目指したNoSQL MongoDBの夏イベント
    kyuxyu
    kyuxyu 2013/09/23
  • データベース負荷テストツールまとめ(5) - SH2の日記

    というわけで、JPOUG> SET EVENTS 20120721 | Japan Oracle User Groupに参加して発表をしてきました。通常の勉強会と比べて発表者と聴講者の一体感を増すための工夫がなされていて、とても良かったと思います。有限コーヒーかと思ったら無限ビールだったのも驚きです。JPOUGの運営メンバのみなさま、会場を提供してくださった日オラクルのみなさま、当日お越しいただいたみなさま、どうもありがとうございました。 私のセッションでは、データベース負荷テストツールまとめ(5)と題して過去4回分のまとめと自作ツールの紹介をさせていただきました。JdbcRunnerはOracle DatabaseMySQLとPostgreSQLの間でTPC-BとTPC-Cの性能比較ができる唯一のオープンソースソフトウェアですので、いろいろ試してみていただければと思います。試した結果

    データベース負荷テストツールまとめ(5) - SH2の日記
  • MySQLをさらに理解するために読んだ記事まとめ - $shibayu36->blog;

    最近MySQLの勉強をしていました。実践ハイパフォーマンスMySQLを読むべきという話を聞いていたのですが、かなり網羅的に書かれていて、今の知識ではどれが重要なのかわからない状態でした。そこで色々調べてみて、参考になる記事をいくつか見つけたので、少しまとめてみようと思います。 今回まとめた記事を読んで、大体以下のことが理解できました。 インデックスの使われ方とその構造(MyISAMとInnoDB) EXPLAINの詳しい使い方、見方 InnoDBの特性 ALTER TABLEの特性 レプリ遅延 まず最初に Webエンジニアのための データベース技術[実践]入門 (Software Design plus)posted with amazlet at 12.06.02松信 嘉範 技術評論社 売り上げランキング: 9767 Amazon.co.jp で詳細を見る 松信さんの書いた「Webエンジ

    MySQLをさらに理解するために読んだ記事まとめ - $shibayu36->blog;
  • 【21社から5社をSNSの評判から厳選】おすすめの出会い系アプリ&失敗しない選び方|マッチングアプリ漂流教室 – マッチングアプリの感想をSNSの意見を参考に紹介

  • MySQL InnoDBにおけるロック競合の解析手順 - SH2の日記

    データベースの運用で避けられないのが、ロック競合によって起こるシステムトラブルへの対応です。「2時までに終わるはずのバッチ処理が朝になっても終わっていない」とか「負荷が高いわけでもないのにシステムが無応答になっている」といったトラブルが発生したとき、DBエンジニアはそれがロック競合によるものなのかどうかを切り分けて、適切に対処しなければなりません。 これまでInnoDBはロック競合に対してほとんど打つ手がなかったのですが、最近ようやく対処方法がでてきました。今日はその手順を確認していきたいと思います。 前提 今回ご紹介する手順は、MySQLの以下のバージョンを対象にしています。 MySQL 5.1+InnoDB Plugin 1.0 MySQL 5.4 いきなりハードルを上げてしまって申し訳ありませんが、バージョン5.0以下や素の5.1では使えませんのでご注意ください。以降の実行例はすべて

    MySQL InnoDBにおけるロック競合の解析手順 - SH2の日記
  • MySQLにおけるレプリケーション遅延の傾向と対策

    レプリケーションはMySQLで最もよく使われる機能のひとつだ。レプリケーションは基的に非同期でデータの複製を行う仕組みになっているのだが、非同期故にどうしても逃れられない問題がある。そのひとつが今回のテーマ、遅延である。というと、MySQLのレプリケーションはすぐに遅延が生じてしまうように感じてしまうかも知れないが、そのようなことはない。ほとんどの場合は即座にスレーブの更新が行われる。 なぜ遅延は発生するのか、どのように遅延が起きていることを調べるのか、どのように回避するのかということをエントリでは解説したい。うまく遅延と付き合って、MySQLのレプリケーションをより快適に運用してもらえればと思う。 そもそも遅延とは何かMySQLのレプリケーションは非同期で行われる。これは準同期でも同じであり、スレーブにおいて更新が起きるのはマスターよりも一瞬遅れてしまう。これは非同期であるが故に逃れ

    MySQLにおけるレプリケーション遅延の傾向と対策
  • 地獄のようによくわかるSQLテーブル結合 - こせきの技術日記

    テーブルのJOINが苦手でしたが、この例を思いついてからは、すっきりくっきり理解できるようになりました。むしろ頭から離れません……。 ※ INNER、OUTERは飾り。省略できる。 INNER JOINJOIN LEFT OUTER JOIN → LEFT JOIN RIGHT OUTER JOIN → RIGHT JOIN ※ ON ...=... をまとめて USING(属性) と書ける。 ※ 何で結合するか言うまでもない時は、NATURALを指定すると勝手にJOINしてくれる。NATURALにJOINして……。 ※ WHEREは結合した結果に作用する。 ※ 現実には上図のように1対1で結合しません。 ※ おまけ。CROSS JOIN。 こんなの使いません。 ブクマ用画像。

    地獄のようによくわかるSQLテーブル結合 - こせきの技術日記
  • MSDEのインストール

    MSDEのインストール MSDE(Microsoft SQL Server Desktop Engine)のインストールのインストール方法(例:Windows XP) 1.以下のURLからMSDEインストーラJPN_MSDE2000A.exeを入手する。 http://www.microsoft.com/japan/sql/msde/downloads/download.asp 2.入手したインストールファイルをダブルクリックしてインストールを開始する。 「使用許諾契約」ダイアログ……[同意する]ボタンをクリックします。 「インストールフォルダ」ダイアログ……「C:\MSDERelA」のまま[完了]ボタンをクリックします。 コマンドプロンプトから以下のコマンドを入力し、インストールを行います。 C:\MSDERelA\setup.exe SECURITYMODE=SQL SAPWD="sa