タグ

RDBMSに関するMagicantのブックマーク (14)

  • SQL滅ぶべし | ドクセル

    SQL • リレーショナルデータベースシステムと会話するための言語 • 1970年 Codd が RDB モデルと同時に提案 (Alpha言語) • 1974年 Chamberlin と Boyce が改良 • 元々は SEQUEL (Structured English Query Language) だったが、商標登録されていた • 読み方は エスキューエル とそのまま読む (Glliespie 2012)

    SQL滅ぶべし | ドクセル
    Magicant
    Magicant 2024/05/07
    SELECT 文の非直感的なとこって SELECT 句が最初に来ること位で、後は大体書いてある順に評価されると思ふが……
  • クイズ形式で学ぶ DB インデックス - Qiita

    今までのインデックスについての自分の理解が、「インデックスを作ると検索スピードが上がる」くらいの理解でした。これではいけないと思い、ようやく真面目に勉強したのでそれをまとめるついでにクイズ形式にしてみました。 インデックスとは データベースにおけるインデックスは、データの検索速度を向上させるための機能です。一般的に、テーブル内のデータの特定の列に対して作成され、その列の値に基づいてデータにアクセスする際の効率を高めます。 よくある例でインデックスはでいう索引に当たります。見たい項目を索引で探し、何ページかを確認してそのページを開けば一枚一枚ページをめくって探すより効率的に目当てのページに辿り着けますよね。 それをデータベースでも同じことをしているというイメージです。 第一問 以下 SQL 文でインデックスが使用される検索はいくつあるでしょうか?

    クイズ形式で学ぶ DB インデックス - Qiita
    Magicant
    Magicant 2024/01/28
    一つのテーブルに複数のインデックスがあっても一つのクエリで利用できるのは一つのインデックスだけ、とはよく言はれるが、実際には DBMS が対応してゐて条件が揃へば複数のインデックスが利用されることもある
  • リレーショナルデータを分析するための言語

    let premium_users = select * from users where premium = 1; select count(*) from premium_users; select * from premium_users order by created_at; のようなことがしたいわけですよ。でも無理!ワハハ!! 一貫性のなさ cast(expr as type) という関数のようでそうでもない謎の記法とか(MariaDBリファレンスだと"function"らしいですが)、 '2023-01-01' + interval 1 secondのinterval部分は何なんだとか、文法が複雑すぎる。 人間に厳しい 一貫性を捨てても便利な記法を採用して書きやすくしているのかと思いきや、

    リレーショナルデータを分析するための言語
    Magicant
    Magicant 2023/10/12
    PRQL とかどうすか?
  • Introducing pgroll: zero-downtime, reversible, schema migrations for Postgres

    Database schema migrations can be a double-edged sword. They are essential for keeping our systems up to date and in sync with evolving application requirements, but often come bundled with a set of challenges that can leave even the most seasoned developers and database administrators scratching their heads (or banging them on the keyboard). Breaking changes: One of the fundamental issues plaguin

    Introducing pgroll: zero-downtime, reversible, schema migrations for Postgres
    Magicant
    Magicant 2023/10/04
    象さんがかはいい / ビューを駆使して移行前後のスキーマを共存させるらしい
  • リーダブルSQL[より良いSQLを書くためのシンプルで実践的なテクニック] - Qiita

    はじめに 最近エンジニア界隈では「リーダブルコード」が話題なっていますね。 リーダブルコードでは、このような定理が紹介されています。 「コードは他の人が最短時間で理解できるように書かなければいけない。」 Dustin Boswell リーダブルコード P.3 より引用 SQLでも同じことが言えそうです。 リーダブルなSQLを書いてないと結婚できない時代が今まさに到来しようとしています。 皆さん、クソSQL1を読んだことがありますね? クソSQLを書いたことがありますね? 僕は、あります。 そこで、記事ではどうしたらリーダブルなSQLが書けるかというアイデアを紹介します。 処理の流れの順に上から読めるようにする 人間のメンタルモデルは、問題やタスクを小さなステップに分割し、それぞれを順番に実行することに適しています。 サブクエリを使ったSQLでは、処理の流れは上から下ではなく、ネストされた

    リーダブルSQL[より良いSQLを書くためのシンプルで実践的なテクニック] - Qiita
    Magicant
    Magicant 2023/09/16
    from よりも join の方のインデントを短くする感覚に共感できない
  • 勘でリレーションを張っていないか? - Qiita

    はじめに 今回は外部キーを張るときに最低限意識したいことについて書きました。 何か間違えがあったり、もっとこういうところも意識してますという人がいたらコメントお願いします。 この記事で伝えたいこと ①リレーションシップ先のデータを消したときに同時にリレーションシップ元のデータが消えても自然な状態を作る ON DELETE CASCADEをうまく利用できる状態を作る つまり親子関係を正確に表現する。 リレーションシップ先は親テーブル、リレーションシップ元は子テーブルを意味しています。 ②データを作成するときのことを考えてデータの生成順序がおかしくならないように外部キーを張る ③関連を表現するときに中間テーブルを利用したほうが良い場面がある 注意 下記【例を交えながら説明】の説明に出てくるテーブル設計に関しては、上記の【この記事で伝えたいこと】の①と②と③の項目に対して想像しやすいように、理解

    勘でリレーションを張っていないか? - Qiita
    Magicant
    Magicant 2023/01/29
    「リレーションを張る」って言ひ回し他でも見掛けたことあるけど、絶望的に言葉の使ひ方が間違ってる / リレーションとリレーションシップの違ひも解ってなささう
  • あなたの遅延はどこから? SQLから! 〜患部に止まってすぐ効くSQLレビューチェックリスト 年初め特大サービス号〜 - ANDPAD Tech Blog

    あけましておめでとうございます! 今年は異世界放浪メシのアニメが放送されるらしいので楽しみなバックエンドの原田 (tomtwinkle)です。 内部で運用しているSQLレビューチェックリストの一部を抽出し思いつきで追記して行った結果、結構な分量になってしまいました。 暇な時でも流し読みして頂けるとありがたいです。 Motivation SQLレビュー観点 大きくSQLが変更される修正の際にはEXPLAINをレビュー内容に加える 検索のキーにINDEXを使用しているか SQL発行回数がN+1(1+N)の構造になっていないか サブクエリを利用したSQLはパフォーマンス要チェック Viewの利用は基的に禁止 CROSS JOINは禁止 WHERE句で十分に絞った検索をしているか 必要なcolumnだけSELECTしているか レコード数だけ必要な場合にCOUNT用のSQLを発行しているか 集計関

    あなたの遅延はどこから? SQLから! 〜患部に止まってすぐ効くSQLレビューチェックリスト 年初め特大サービス号〜 - ANDPAD Tech Blog
    Magicant
    Magicant 2023/01/13
    Cross join に where 句を付けたら inner join と等価だけどそっちは禁止しないってことは単に書き方の趣味の問題なんかな
  • データベースと向き合う決意 | フューチャー技術ブログ

    秋のブログ週間の9目のエントリーになります。この企画もこんなに書く人が出てくるように育っていいですね。 「中間層を増やして柔軟性を高めるのがソフトウェアの歴史」 これは大学時代に2つ上の先輩が言っていた言葉です。例えばマシン語を直接書くのではなく、アセンブラで書けば、変換(コンパイル)の手間はかかりますが、他のCPUへの移植はしやすくなります。高級アセンブラと名高いC言語を使えばさらに移植性は上がります。C言語で書かれたVMを使う言語、例えばJavaPythonRubyなんかはさらに移植性は上がります。 ストレージもそうです。最終的にストレージはビット列を保存するものですが、それにOSのファイルシステムというレイヤーがあり、そこにスキーマで管理されたデータを入れるDBMSが乗っかり、SQLなどの問い合わせ言語でデータ取得できるようにします。DBMSを挟むことで、レプリケーションでバッ

    データベースと向き合う決意 | フューチャー技術ブログ
  • 致命的なバグを含まない最新版MySQLを探すには? 『MySQL徹底入門』共著者が語る、バージョン選びのポイント

    MySQLの実運用とこれからについて掘り下げる「LINE Developer Meetup #73 - MySQL」。ここで登壇したのは、LINEの従業員でもある日MySQLユーザ会のyoku0825氏。MySQL 8.0.28を選んだ経緯や評価のポイントについて説明しました。 セッションの要約と登壇者の自己紹介 yoku0825氏(以下、yoku0825):「ぼくらが選んだ次のMySQL 8.0」の話をします。私たちは、次のMySQLを8.0.28にしました。みなさんには、それぞれ29や30や自分の使いたいバージョンについて調べてもらいたいのですが、量が膨大になるので、今いるバージョンから新しいほうに向かって調べていくのではなく、最新のものからこれはダメだというものまで遡って調べていくのがおすすめです。 パラメーターに現れない、いきなり挙動が変わるかもしれないものは「What Is N

    致命的なバグを含まない最新版MySQLを探すには? 『MySQL徹底入門』共著者が語る、バージョン選びのポイント
    Magicant
    Magicant 2022/09/10
    MySQL を使はない方が良い理由がここにまた一つ……
  • My Notes on GitLab Postgres Schema Design

    Shekhar Gulati Writings on Software Engineering, Software Architecture, and Engineering Leadership I spent some time going over the Postgres schema of Gitlab. GitLab is an alternative to Github. You can self host GitLab since it is an open source DevOps platform. My motivation to understand the schema of a big project like Gitlab was to compare it against schemas I am designing and learn some best

    My Notes on GitLab Postgres Schema Design
  • MySQL/Postgres におけるトランザクション分離レベルと発生するアノマリーを整理する

    読者対象 ANSI 定義の古典的なトランザクション分離レベルとアノマリーは概ね理解している MySQL/Postgres では理論的な部分がどうなっているのかを知りたい 理論面の前提知識 2022-08-19 追記: 社内勉強会向けのスライドを作成しました。先にスライドを見てから,引用文献およびこの記事を読むと理解が深まると思います。 まず ANSI 定義の古典的な定義を聞いたことが無い方は,以下のリンクを参照されたい。 ANSI 定義に対応する解説はこれらのサイト以外にもたくさんあるため,自分にとって読みやすいと感じる情報をあたってほしい。(既に熟知されている方は十分) 次点で読んでいただきたいのが, @kumagi さんの以下の記事。古典的には 4 つの分離レベルと 3 つのアノマリーだけで説明されていたものの,不十分であることが学術的に指摘され,解像度を上げようとする流れが後になって

    MySQL/Postgres におけるトランザクション分離レベルと発生するアノマリーを整理する
  • データベース設計におけるNULL - kawasima

    NULL絶対ダメ論や現実的には無理だから上手く付き合っていくしかないんだよ論など見られるが、せっかくCodd博士が上図の分類を提示しておられるので、これを元にもっと詳細化して考えてみよう。

    データベース設計におけるNULL - kawasima
    Magicant
    Magicant 2022/05/21
    みんな、速度やデータサイズを犠牲にしてでもそこまでマジメに正規化したがるもんなの?
  • あまり知られていないPostgreSQLの機能 | POSTD

    あなたが知らない既存機能があるかもしれません! マイクロソフト社は2006年、Microsoft Officeの新バージョンで追加してほしい機能について、顧客調査を実施しました。驚いたことに、ユーザが希望した機能の90%以上はすでに実装されており、その存在が知られていないだけであることが判明しました。機能の「見つけにくさ」の問題の解決策として同社が考案したのが、現在のMicrosoft Office製品でおなじみの「リボンUI」です。 この問題はOfficeに限ったものではありません。日々使用するツールの機能をすべて把握している人はほとんどいません。PostgreSQLのように大規模なツールであればなおさらです。数週間前にPostgreSQL 14がリリースされたばかりなので、この機会にPostgreSQLのあまり知られていない機能に注目してみたいと思います。 この記事では、Postgre

    あまり知られていないPostgreSQLの機能 | POSTD
    Magicant
    Magicant 2022/04/19
    Generated as identity は標準なのか。どれ位普及してるんやろ?
  • GitHub - max-sixty/prql: PRQL is a modern language for transforming data — a simple, powerful, pipelined SQL replacement

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - max-sixty/prql: PRQL is a modern language for transforming data — a simple, powerful, pipelined SQL replacement
  • 1