タグ

SQLに関するhachiのブックマーク (12)

  • SQLで全称量化を表現する方法 & NULLと付き合う上での注意点|TechRacho by BPS株式会社

    Web開発部のkonagaです。 最近、業務でSQLの書き方に悩むことが多く、特に全称量化をどう表現するか試行錯誤していました。 SQLに慣れている方にとっては今更な話かもしれませんが、全称量化の表現方法とNULLに関する注意点について調べたのでまとめていこうと思います。 ※検証時には手元にあったPostgreSQL9.4を利用しています。RDBMSの種類やバージョン次第では正しく動作しない可能性があることをご了承ください。 はじめに:全称量化子について 「全てのxが条件Pを満たす」ことを表現する記号のことを全称量化子といいます。 この記号は、allの頭文字Aを反転させた∀で表します。 ……これだけだとよく分からないので、以下のような例を挙げてみます。 生徒全員がテストで60点以上を獲得しているクラス 全ての工程が完了しているプロジェクト 全称量化子によって、このようなクラスやプロジェクト

    SQLで全称量化を表現する方法 & NULLと付き合う上での注意点|TechRacho by BPS株式会社
  • Rails: SQLの多対多リレーションを「集合」で扱う(翻訳)|TechRacho by BPS株式会社

    概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Using sets for many-to-many relationships 原文公開日: 2018/09/25 著者: Francisco Soto 訳文中のSQL文はsqlfum.ptで整形しました。 SQL: 多対多のリレーションを「集合」で扱う(翻訳) 記事は、以前の私のブログ記事(2012/11)の再録です。 多対多とは何か 多対多リレーションシップを検索するために、データモデリングを扱うことは非常によくあります。関連する行を多数持つ2つのエンティティが自分のテーブルと他方のテーブルにそれぞれある形です。 よく使われるのは「記事」と「タグ」の例で、この場合1件の記事に多くのタグがあり、1件のタグに多数の記事があります。他にも「」と「読者」の例もよく使われ、この場合1人の読者は多くのを読むことができ、1冊の

    Rails: SQLの多対多リレーションを「集合」で扱う(翻訳)|TechRacho by BPS株式会社
  • DB勉強会レポート_2019年02月26日(火)実施分|TechRacho by BPS株式会社

    購買ユニット まず、「ユニット」とは何かについて、問題文中の定義を確認しておきましょう。 p.21「1. 業務の全体像 (1)」の①をご覧下さい。 ① ユニットとは, 製菓ラインにおける主要な設備のことであり, 混合ユニット, 成形ユニット, 焼成ユニットなどがある。自社で設計・製造するユニットのことを内製ユニットといい, 他社から仕入れるユニットのことを購買ユニットという。 p21 p.23の②と1つ目のlist項目をご覧下さい。 ② 受注に当たって, 商談段階から行なっていた全体設計を確定し, 必要なユニット, すり合せ部品, ソフトウェア, 設置・試運転を明確にする。 ・ユニットについては, 品目として登録されていなければ登録する。 p23 受注の段階で必要な内製ユニットと購買ユニットを明確にし、登録されていなければ受注品目として登録します。 ⑤の受注明細の中に「ユニット受注明細」が

    DB勉強会レポート_2019年02月26日(火)実施分|TechRacho by BPS株式会社
  • Ruby: 文字列の書式設定では引用符内で書式設定以外の`%`記号を`%%`とエスケープすること|TechRacho by BPS株式会社

    前置きが少々長くなりますが、記事タイトルのとおりです。 ある日のSlackにて 前振り1: Rubyの%記号と式展開 今回の記事を書くために、まず%(パーセント)記号と式展開についてそれぞれ別記事にまとめましたので先に以下をご覧ください。そうしないと自分が混乱してしまうので。 Ruby: パーセント記号 `%` の使い方まとめ Rubyの式展開(string interpolation)についてまとめ: `#{}`、`%`、Railsの`?` 前振り2: sprintfやString#%メソッドを使う場合の%文字のエスケープ この部分はRubyのバージョンに限らず共通です。 RubyのsprintfやString#%メソッドを用いて書式設定を行う場合、引用符内で%そのものを出力したい場合は%%とすることでエスケープされます(エラーメッセージでも%%を使えと書かれてますね)。面白いことに、%

    Ruby: 文字列の書式設定では引用符内で書式設定以外の`%`記号を`%%`とエスケープすること|TechRacho by BPS株式会社
  • DB勉強会レポート_2019年02月22日(金)実施分|TechRacho by BPS株式会社

    こんにちは。 今回で午後Ⅱの問1は最後になります。 記事の分量で言えば3、勉強会回数で言えば4週に渡りじっくりと取り組んできました。 その分、内容の濃い解説記事になると思いますので、問題集の解説で腑に落ちない場合は是非ともご覧下さい。 解説範囲 平成30年度 春期 データベーススペシャリスト試験 午後Ⅱ 問1 設問3 (2) (3) ⚓ (2) バッチ処理の性能について, ①, ②に答えよ。 ここでは表9の空欄が解答の対象となっています。 p.18の「2. サービスの評価 (1) 性能」の②を読むと、解答の根拠となる情報の在処が記述されています。 [業務の概要]及び表2を基に, (中略) バッチ処理の処理行数を表9にまとめた上で, 対策を検討することにした。 また、バッチPGMの詳細を把握するために、上記に加え、p.11の「表3 主な処理のCRUD」と「表4 バッチPGMの処理内容」を参

    DB勉強会レポート_2019年02月22日(金)実施分|TechRacho by BPS株式会社
  • Rubyの式展開(string interpolation)についてまとめ: `#{}`、`%`、Railsの`?`|TechRacho by BPS株式会社

    2021.09.30 Rubyの式展開(string interpolation)についてまとめ: `#{}`、`%`、Railsの`?` 🔗 1. 一般的な「string interpolation」とは まずは一般的な話から。プログラミング言語で文字列を出力するときに、文字列の一部を変数の値や式の評価結果に差し替えたいことが非常によくあります。 "信号: 赤" "信号: 黄" "信号: 青" 上の文字列リテラル(" "で囲まれている部分)のうち、「赤」「黄」「青」を何らかの方法で変数から送り込んで差し替える操作を一般にstring interpolationと呼びます。 "信号: ●" # ←この●を「赤」「黄」「青」に差し替えたい 3つの文字列リテラルを使い分けるより、●を「赤」「黄」「青」だけ差し替える方が楽ですし、文字列リテラルが無駄に長くならずに済みます。 なお、次のような文

    Rubyの式展開(string interpolation)についてまとめ: `#{}`、`%`、Railsの`?`|TechRacho by BPS株式会社
  • DB勉強会レポート_2019年02月13日(水)実施分|TechRacho by BPS株式会社

    続いてgです。 この空欄を埋める前に、p.15の「1. 性能見積り」にある以下の説明を確認して下さい。 一般経費申請も, 同様に締日前にピークが見込まれるので, 一般経費申請で必要となるCPUの性能見積もりを行った。 つまり、一般経費申請の「200トランザクション/秒」を考慮してCPUの数を計算することになります。 ここは非常に見落としやすいポイントだと思います(私自身が見落としました)。 さて、問題文の情報とこれまでに導いた解答を元に一つの使用率100のCPU%のパフォーマンスは以下の通りです。 0.2ミリ秒/データページ 10ミリ秒/トランザクション 2秒/200トランザクション 「(1) 性能要件」より、1秒間に200トランザクションを処理することが要求されます。 一つのCPUの使用率を80%に落とすと、「80 ÷ 100」より1.25倍の処理時間がかかります。 つまり、「2秒/20

    DB勉強会レポート_2019年02月13日(水)実施分|TechRacho by BPS株式会社
  • DB勉強会レポート_2019年01月29日(火) & 02月05日(火)実施分|TechRacho by BPS株式会社

    こんにちは。 今回からは午後Ⅱに突入します。 流石に難易度は高いですが、出来るだけ分かりやすくお伝え出来ればと思います(私の頭で分かる説明が書ければ、世の中の多くの人は理解できるはず)。 【お願い】午後Ⅱは問題文が非常に多く、引用するとそれだけで文章量が膨れてしまうので、記事を読まれる際は手元に問題用紙をご用意下さい。 解説範囲 平成30年度 春期 データベーススペシャリスト試験 午後Ⅱ 問1 設問1 解説の前に 設問1 (1) 設問1 (2) 設問1 (3) 設問1 (4) ⚓ 解説の前に 解説に入る前に、午後Ⅱの概要を確認しておきましょう。 項目 内容 問題文が非常に長く、じっくりと詳細を気にして読み進めていては時間内に終わりません。 また、業務フローやシステムの情報が満載でとても一読で頭に入るものではありません。 よって、以下のような読み方を意識する必要があります。 大項目、中項目

    DB勉強会レポート_2019年01月29日(火) & 02月05日(火)実施分|TechRacho by BPS株式会社
  • DB勉強会レポート_2019年01月22日(火)実施分|TechRacho by BPS株式会社

    こんにちは。 今回で午後Ⅰは最終回です(意外と長かった)。 もう一息、頑張りましょう! 解説範囲 平成30年度 春期 データベーススペシャリスト試験 午後Ⅰ 問3 設問1 (5) ~ 設問2 (3) 設問1 (5) 設問2 ⚓ 設問1 (5) 作業W6(DML性能予測)について、表6中のク〜コに入れる適切な字句を、表5、6中の下線部分の用語を用いて答えよ。 設問に関する情報を問題文中から探し整理していきましょう。 表2 物理DB設計及び実装の作業工程表(抜粋) 作業順 作業ID 作業名 作業内容

    DB勉強会レポート_2019年01月22日(火)実施分|TechRacho by BPS株式会社
  • DB勉強会レポート_2019年01月15日(火)実施分【後編】|TechRacho by BPS株式会社

    こんにちは。 前編では設問1 (3)を解説しました。 もう一息です、頑張りましょう! 今回の解説範囲 平成30年度 春期 データベーススペシャリスト試験 午後Ⅰ 問3 設問1 (4) ⚓ 設問1 (4) 作業W5(表領域設計)について、表5中のア〜キに入れる適切な字句を、表5中の下線部分の用語を用いて答えよ。 設問に関する情報を問題文中から探し整理していきましょう。 表2 物理DB設計及び実装の作業工程表(抜粋) 作業順 作業ID 作業名 作業内容

    DB勉強会レポート_2019年01月15日(火)実施分【後編】|TechRacho by BPS株式会社
  • DB勉強会レポート_2019年01月15日(火)実施分【前編】|TechRacho by BPS株式会社

    こんにちは。 今回は内容が盛り沢山なので、前編と後編に分割します。 今回の解説範囲 平成30年度 春期 データベーススペシャリスト試験 午後Ⅰ 問3 設問1 (3) ⚓ 設問1 (3) 作業W4(追加制約設計)に関する表4の索引について、①、②に答えよ。 実際に問題を解く前に、設問に関する情報を問題文中から探し整理していきましょう。 図1 主なテーブル構造(抜粋) 鍵(施設ID, 鍵番号, 券番号, 使用中フラグ) 店舗利用(利用時刻, 施設ID, 店舗ID, 鍵番号, 商品ID, 利用額, ポイント数, 未精算フラグ) 精算明細(利用年月日, 利用時刻, 施設ID, 券番号, 店舗ID, 商品ID, 利用額, ポイント数) * 実線の下線は主キーを表しています。 表2 物理DB設計及び実装の作業工程表(抜粋) 作業順 作業ID 作業名 作業内容

    DB勉強会レポート_2019年01月15日(火)実施分【前編】|TechRacho by BPS株式会社
  • DB勉強会レポート_2019年01月08日(火)実施分|TechRacho by BPS株式会社

    今回の解説範囲 平成30年度 春期 データベーススペシャリスト試験 午後Ⅰ 問3 設問1 (1) 設問1 (2) ⚓ 設問1 (1) 作業W2(追加制約設計)で"店舗"、"精算"の各テーブルにUNIQUE制約を設計する場合について、UNIQUE制約を定義する列の構成(列名または列名の組み合わせ)を、それぞれ一つ答えよ。 なお, UNIQUE制約がない場合、"なし"と答えよ。 設問文は上記の通りですが、参加者で「 UNIQUE制約がない場合, "なし"と答えよ。」を見落としていたメンバーが多かったです。 「設問をよく読め」、受験生の時に耳にタコが出来るくらい口うるさく言われたことですが、制限時間が厳しい中ではついつい忘れがち、しっかり意識したいところです。 "店舗"テーブル テーブル構造(抜粋) 店舗(施設ID, 店舗ID, 店舗名, 内線番号, ...) * 実線の下線は主キーを表していま

    DB勉強会レポート_2019年01月08日(火)実施分|TechRacho by BPS株式会社
  • 1