タグ

関連タグで絞り込む (247)

タグの絞り込みを解除

DBに関するpeketaminのブックマーク (223)

  • リレーションとリレーションシップの誤用に注意 - 設計者の発言

    RDBやデータモデリングに関する説明の中で「リレーションシップ」と言うべきところで「リレーション」と表現する誤用が目立つ。どうでもいいような違いに思われるかもしれないが、これらは明確に区別されるべきだ。そうでないと、RDBの用語の意味がわからなくなるからだ。 IBMのフェローであったE.F.コッド(1923-2003)による1970年のの歴史的論文 "A Relational Model of Data for Large Shared Data Banks" (大規模共有データバンク向けデータのリレーショナル・モデル。杉さんによる対訳)によって、世界で初めてRDBの理論的枠組みが示された。この論文で使われている用語"relation"が、RDB(relational database)の呼称の由来である。 relationとは何か。その論文でコッド博士は、1個のテーブルに格納された行(

    リレーションとリレーションシップの誤用に注意 - 設計者の発言
    peketamin
    peketamin 2023/02/02
    うおお、行…あるレコードの一まとまりの情報セットがリレーションなのか!で、リレーションの集まりの通称がテーブル。あるレコード定義と別のレコード定義の連携的関係をリレーションシップと呼ぶのか。
  • ビューとは(データベース)

    ビュー(view)データベースのビューとは関係データベースにおけるビュー(英:view)とは、1つ以上の表(テーブル)から必要な要素だけを取り出して作った仮想的な表のことです。 例えば、次のような3つの表があるとします。 「社員テーブル」は社員の情報を管理している表、「部署マスタ」は部署の情報を管理している表、「課マスタ」は課の情報を管理している表です。 データベースの表はデータを効率よく格納するために正規化されています。この正規化された表は、必ずしも使いやすいとは限りません。 例えば、次のような「営業部の社員」だけを管理する表を利用したいとき、「社員テーブル」「部署マスタ」「課マスタ」の表を結合する必要があります。 そこで、用途に応じた仮想的な表を作ることができます。これがビュー(view)です。 上記はビューのイメージ例です。 「社員テーブル」「部署マスタ」「課マスタ」から必要な要素だ

    ビューとは(データベース)
    peketamin
    peketamin 2022/04/21
    そうか、SQLをシンプルにできるのか。あとは実行計画がどうなるか、ですかね?
  • データモデリング・テクニック

    データモデリングの方法論について解説資料を作りました。ご意見がありましたら、お願いいたします。Twitter: https://twitter.com/hidekatsu_izuno 以下に移行します。今後はこちらがメインとなります。 https://speakerdeck.com/hidekatsu_izuno/detamoderingutekunitukuRead less

    データモデリング・テクニック
    peketamin
    peketamin 2021/08/15
  • SELECT ... FOR UPDATE同士でデッドロックさせる - かみぽわーる

    最近SELECT ... FOR UPDATEでデッドロックする話を何度かしたので。 前職のときにUPDATE同士がデッドロックしてたときに、SELECT ... FOR UPDATEで排他ロックを取ってからUPDATEしてデッドロックを防ぎますってPRをレビューしてたときのことで、複数レコードの排他ロックは一瞬ですべてのレコードのロックを取れるわけではなく、ロックを取る順番が揃っていないと簡単にデッドロックしますよという話です。 https://gist.github.com/kamipo/0bb4e37d58ba18a8cefb8aa02f778231 # frozen_string_literal: true require "mysql2" def client Mysql2::Client.new( host: "localhost", username: "root", dat

    SELECT ... FOR UPDATE同士でデッドロックさせる - かみぽわーる
    peketamin
    peketamin 2020/12/16
  • 2020年版 モダンアプリケーションでのDB選定 | DevelopersIO

    目的別データベース選定 それぞれのDBの特徴や特性を軽く紹介していきます。 リレーショナル(Amazon Aurora) RDSに管理されるMySQL/PostgreSQL互換のRDBです。 RDSのMySQL/PostgreSQLと比較したAuroraのメリット 対障害性 並列クエリ Global Database パフォーマンス: MySQLの最大5倍, PostgreSQLの最大3倍高速 RDSでは特段理由がなければ、Auroraを選択することになるかと思います。 適しているユースケース ERP CRM 財務・銀行 SaaS(マルチテナントアプリケーション) 構成要素 DBCluster DBInstance プライマリインスタンス(Writer)(書き込み/読み込み) Auroraレプリカ(Reader) エンドポイント クラスターエンドポイント 読み取りエンドポイント カスタムエ

    2020年版 モダンアプリケーションでのDB選定 | DevelopersIO
  • 100万件ぐらいのレコードを扱ったらOOMEが出た話。 - 谷本 心 in せろ部屋

    要約 技術的な話だけ教えて、という方のために先に結論だけ書いておきますと、PostgreSQLはクエリを実行した時点で全レコードの情報を一気に読んできてヒープを埋めてしまう場合がある、ということ話です。 たとえば、ResultSet#nextメソッドを使いながら処理を回すようなコードを書いて、少ないヒープでも処理できるようにするのは常套手段だと思いますが、そういうコードを書いていても一気にヒープを消費してしまうことがあるのです。詳しくはこのドキュメントを見てください。 https://jdbc.postgresql.org/documentation/head/query.html#query-with-cursor ことの発端 ちょっと仕事Java + jOOQ + PostgreSQLで、DBのデータを集計するようなバッチ処理を書いてまして、もちろん俺様の書いたコードにバグなんてある

    100万件ぐらいのレコードを扱ったらOOMEが出た話。 - 谷本 心 in せろ部屋
    peketamin
    peketamin 2020/08/13
  • golang-migrateでDBマイグレーション | DevelopersIO

    golang-migrateとは? Go言語で作成されたDBマイグレーションツールで、GO言語のライブラリとしてだけではなく、CLIからも利用できます。そのためJavaで開発されているprismatixというサービスでも利用することができます。 JavaのマイグレーションツールにFlywayやliquibaseといったものがあります。その中でこのツールの特徴は、マイグレーションを定義しているファイルをGitHubAWS S3などから直接参照することができることです。(もちろんローカルのファイルシステムにも対応しています) また対応しているデータベースエンジンも多く、MySQLやPostgreSQL以外にもMongoDBなどにも対応しているなど、様々な場面で使うことができるツールだと思います。 環境構築 今回は手軽に試すためにdocker上で、golang-migrateとPostgreS

    golang-migrateでDBマイグレーション | DevelopersIO
    peketamin
    peketamin 2020/07/26
    シンプルで良さそう
  • CAP定理を見直す。“CAPの3つから2つを選ぶ”という説明はミスリーディングだった

    分散システムにおいては以下の3つの要素のうち2つしか同時に満たすことができない、というCAP定理を提唱したのは、Eric Brewer氏でした。 C:Consistency(一貫性) A:Availability(可用性) P:Tolerance to network Paritions(ネットワーク分断への耐性) 一般にリレーショナルデータベースでは、一貫性(C)と可用性(A)をできるだけ保証する代わりに、ネットワーク分断への耐性(P)を犠牲にしています。ネットワークが途中で切れたり大きく遅延した場合、動作が保証されなくなってしまうわけです。 一方でNoSQLでは一貫性(C)よりも可用性(A)とネットワーク分断への耐性(P)を優先させるものが多く、分散システムでの動作に向いていると説明されます。このようにNoSQLの説明にこのCAP定理がしばしば引用されることになり、NoSQLの普及とと

    CAP定理を見直す。“CAPの3つから2つを選ぶ”という説明はミスリーディングだった
  • GitHub - dolthub/dolt: Dolt – Git for Data

    Dolt is a SQL database that you can fork, clone, branch, merge, push and pull just like a Git repository. Connect to Dolt just like any MySQL database to read or modify schema and data. Version control functionality is exposed in SQL via system tables, functions, and procedures. Or, use the Git-like command line interface to import CSV files, commit your changes, push them to a remote, or merge yo

    GitHub - dolthub/dolt: Dolt – Git for Data
  • NULL嫌いのUPDATEしないDB設計 #DBSekkeiNight / DB design without updating

    DB設計したいNight #6 正規化 [online] https://dbnight.connpass.com/event/177859/

    NULL嫌いのUPDATEしないDB設計 #DBSekkeiNight / DB design without updating
  • オープンソースのFirebase代替プロダクト「Supabase」 - ITnews

    Supabase https://supabase.io/ Supabaseの特徴 「Supabase」は、既存のPostgreSQLデータベースをRESTful APIに変えるオープンソースおよび、それを使ったクラウドのDBサービスです。 https://github.com/supabase/supabase PostgreSQLの挿入・更新・削除をリッスンするElixirサーバーで、Webソケットを介してJSONをブロードキャストするのが、Supabaseの中核的な役割になります。今回は、そのSupabaseが提供するクラウドDBサービス(アルファ版)を使って、RESTful APIを試してみました。 SupabaseのクラウドDBを使ってみる サインアップが完了したら、基情報として組織と プロジェクトを登録します。 登録が完了すると、作成されたデータベースの接続情報が表示されます

    オープンソースのFirebase代替プロダクト「Supabase」 - ITnews
    peketamin
    peketamin 2020/06/02
  • OLTPとは?システムの特徴や活用場面、OLAP・DWHとの違いをわかりやすく解説

    データベースの世界には、OLTP系とDWH系の2つが存在します。 OLTP系は定型の小さいサイズを短時間に処理し、「大量に」「同時に」処理します。DWH系は定型・非定型のデータを扱い、全テーブルスキャンや大量のデータロード処理ができます。 OLTPは常に最新データのみを保存するため、データ量は一定ですが、DWHは履歴データを常に蓄積するため、情報量が膨大になっていく違いがあります。 データ分析では、データベースが1つであるのが望ましいです。しかし、現状では、OLTPとDWHは別物なので、OLTPからDWHにデータを移行する手間が発生するのです。 そこで、OLTPとDWHでシステムを分ける必要がない『Oracle Database In-Memory』という、Oracle Databaseのオプションがリリースされています。これにより、1つのデータベースでリアルタイムなデータ分析が可能になり

    OLTPとは?システムの特徴や活用場面、OLAP・DWHとの違いをわかりやすく解説
    peketamin
    peketamin 2020/05/21
  • キムラデービーブログ

    オープンソースデータベースを加速する「キムラデービー」のブログです。カレー日記を兼ねてます。なお著者は2010-06-01より日オラクルに在籍していますが、サイト(ブログ、またはウェブサイト)において示されている見解は、私自身の見解であって、オラクルの見解を必ずしも反映したものではありません。 エントリはFirebird Advent Calendar 2023 25日目のエントリです。 # 実際に書いているのは2024-01-02です orz 毎年ここにかく2023年のFirebirdについては、1日目のエントリに書きましたので、そちらをご覧ください。 Firebird 2023年の振り返り 現在、Firebird 5.0が開発中ですが、Firebird 4.0のレプリケーションような大きな機能追加はなく、 細やかな改善のように見えます。(それはFirebird 4.0のODSバー

    キムラデービーブログ
  • aldjemy

    Meta License: BSD License (BSD-3-Clause) Author: Mikhail Krivushin Requires: Python >=3.6.1, <4.0 Aldjemy integrates SQLAlchemy into an existing Django project, to help you build complex queries that are difficult for the Django ORM. While other libraries use SQLAlchemy reflection to generate SQLAlchemy models, Aldjemy generates the SQLAlchemy models by introspecting the Django models. This allows

    aldjemy
    peketamin
    peketamin 2020/03/23
    “SQLAlchemy to Django integration library”
  • ぼく「嫌な予感がするから警告いっぱい出したれ」データ削除は三重確認設計に→??「なんかデータ消えたんですけど?」

    ワープくん🤡 @warpbtn ぼく「なんか嫌な予感がするから警告いっぱい出したれ」 『このデータを削除すると復活できませんが当に削除しますか?YES/NO』 『あなたは削除データが復活できないことを確認しました。YES/NO』 『以下の入力欄にDELETEと入力して削除を実行』 ???「なんかデータ消えたんですけど?」 2020-03-12 11:13:24

    ぼく「嫌な予感がするから警告いっぱい出したれ」データ削除は三重確認設計に→??「なんかデータ消えたんですけど?」
    peketamin
    peketamin 2020/03/14
    マニュアルを読まないタイプの人を組織的に教育する必要がある
  • 27. 論理削除とは何か?どのような解法があるのか? w/ twada | fukabori.fm

    話したネタ 論理削除とはそもそも何か? 物理削除とは? なぜ、論理削除が生まれてくるのか? SQLアンチパターン 幻の第26章「とりあえず削除フラグ」 理由1: 心理的なハードルの高さ、怖さがある 理由2: 削除したデータを検索対象に入れたい場合がある 理由3: ログとしての用途 理由4: 誤操作をすぐに戻したい アンチパターンとは何か? なぜ、論理削除はアンチパターンとして捉えられるのか? 全てのSQL文のWHERE句に削除フラグが必ず入る LIMIT 1などが蔓延していく 論理削除に気づくきっかけは何か? テーブル設計や、規約から気づく 論理削除というアンチパターンをどのように解いていくか? 論理削除という概念は世の中にまずなく、お客様は論理削除という言葉を使っていない 要件をどのように設計すればいいのか? ORMの論理削除プラグインはあまり良くない 状態遷移として捉える方法 Soft

    27. 論理削除とは何か?どのような解法があるのか? w/ twada | fukabori.fm
  • 2020年現在のNewSQLについて - Qiita

    Disclaimer 当記事はNewSQL開発ベンダの技術ブログや各種論文、その他ニュースサイト等の内容を個人的にまとめたものです。 そのため、理解不足等に起因する誤解・誤認を含む可能性があります。更なる理解が必要な方はリファレンスに挙げた各種文献を直接参照下さい。技術的な指摘は可能であれば取り込み修正しますが、迅速な対応はお約束できません。 NewSQLの解説は二部構成 当記事は前編でNewSQLの概要編となる。 全体の目次は下記である。 NewSQLとは何か NewSQLのアーキテクチャ NewSQLとこれまでのデータベースの比較 NewSQLのコンポーネント詳解 1章から3章までの内容を当記事で解説する。 4章はさらに詳細な技術的解説となり、後編の「NewSQLのコンポーネント詳解」で記述している。 こちらも合わせて一読いただきたい。 1. NewSQLとは何か NewSQLとは、海

    2020年現在のNewSQLについて - Qiita
    peketamin
    peketamin 2020/02/28
    知らなかったことばかりだ。解説ありがたい…感謝。
  • 「はじめてのPHPプログラミング基本編5.3対応」のゆるいところ(5) - 郵便番号は整数型か

    前回に引き続き、はじめてのPHPプログラミング 基編5.3対応のゆるいところの最終回はセキュリティの話題ではなく、データベースの列の型についてだ。 書のP215には、SQLiteを使って住所録のテーブルを作ろうとあるのだが、テーブルの形式は以下のようになっている。 カラム名 意味 データ型 主キー NOT NULL 備考 id 通し番号 INTEGER ○ ○ 自動的に通し番号が割り振られる name 氏名 TEXT - ○ zip 郵便番号 INTEGER(7) - - ハイフン(-)を除いた7桁の整数 address 住所 TEXT - - create_at 登録日時 DATETIME - ○ 郵便番号の型がINTEGER(7)になっているのを見て、私は目をむいた。 一般的に、郵便番号はVARCHAR(7)かVARCHAR(8)にする場合が多いと思う。もっと一般的に、「××番号」

    「はじめてのPHPプログラミング基本編5.3対応」のゆるいところ(5) - 郵便番号は整数型か
    peketamin
    peketamin 2020/02/17
    "先頭のゼロに意味がある 左詰で記述する 算術演算の対象でない" ほんそれ
  • GNU Recutils

    Fred and George, Turtles in love There are hundreds of cool command line tools that have been made over the years built on the unix philosophy. Plain text is powerful, ubiquitous, and human-centric. It was also the only option for computing for quite a while. It’s no surprise that some of the most sophisticated tools are focused on it. One such package is GNU Recutils, a set of tools and libraries

  • X/Open XA - Wikipedia

    この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "X/Open XA" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL(2021年11月) X/Open XA とは、X/Openが策定した分散トランザクション処理のための標準規格。各ノードのローカルなリソースマネージャと、それらを分散システムとして統合するトランザクションマネージャとの間のプログラムインタフェースを規定している。 XAは、トランザクションマネージャとリソースマネージャ間で2相コミットプロトコルを実行するためのC言語プログラムインタフェースを規定している。主にTXインタフェースおよびXAインタフェースがある。 来のXAインタ

    peketamin
    peketamin 2019/08/24