[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

タグ

DBに関するs_ryuukiのブックマーク (384)

  • 自作RDBMSやろうぜ!

    Skip to the content. 自作RDBMSやろうぜ! このサイトの目的 RDBMS(いわゆるリレーショナルデータベース)というものはプログラミング言語の処理系や、OSなどと同様に、世の中で広く使われているソフトウェアであるにも関わらず、いざ自作してみようと思うと日語で記述されたサイトや書籍で、必要な情報・情報源がまとまったものがないことに気づきました そこで、叩き台として、サイト管理人および数名のコミッタで開発している自作RDBMSである SamehadaDB が軌道に乗るまでの経験をベースに、自作RDBMSするための道筋をある程度整理して書き記してみました 各々の情報・情報源はあいかわらず多くが英語で記述されていますが、その点はご容赦下さい なお、サイトは技術的な解説を提供するのではなく、適切と思われる情報・情報源をポイントするようなサイトとなることを想定しています

    s_ryuuki
    s_ryuuki 2023/04/13
  • Rust製データベースSurrealDBの紹介 - Qiita

    はじめに この資料は、2022年7月に公開されたSurrealDBについてまとめたものです。 SurrealDB歴史 公開されてからの期間は浅いが2016年から開発が始まっている 2016年 Feb GoLangで開発開始 2017年 Jul SaaS のバックエンドDBとして運用開始 2021年 Oct Open Source として公開決定、Rustで再構築 2022年 Jul Beta.1 リリース 2022年 Aug Beta.5リリース 2022年 Oct Beta.8 リリース SurrealDB 社 2021年 Nov SurrealDB Ltd. をロンドンに設立 2023年 Jan DBaaS ために 600万ドル調達 SurrealDBが生まれた背景 大きなトレンド データベースの抽象化、クラウド、サーバーレス DBaaSを採用する企業が増えている MariaDBによ

    Rust製データベースSurrealDBの紹介 - Qiita
  • ChatGPTで作るSQLがヤバい※Oracleの話多め - Qiita

    n番煎じ、今更ながら…。 ChatGPTは過去遊びでしか使ったことがなかったのですが、 今、超長文SQL群を改修してまして、何重にもなった副問合せと集計関数を読み解くのに疲れて…ChatGPTに手を出しました。 そして、 え!!ChatGPTやばい!! 介護は必要だけどすぐ形にしてくれるしなんなら私より知識あるわ!! 只今、職を失いました!! ってなったので、この衝撃を書き残しておこうと思います。 やりたいこと 作るSQLの要件はざっくり、 dba_hist_sysstatから、physical readsなど各統計情報のvalueの増分値を取得する 統計情報種別毎・1日毎に、1ヶ月間集計 日時判別のために、dba_hist_snapshotと結合する valueには累積値が入っている。ただし、インスタンス再起動があるとリセットされる。 つまり、「累積だから」と直前のスナップショットのva

    ChatGPTで作るSQLがヤバい※Oracleの話多め - Qiita
  • データベース速攻入門 ~モデリングからSQLの書き方まで

    このの概要 書は『Software Design』のデータベースに関連する特集記事を再収録した書籍です。 プロダクトに依存しないデータモデリングの基をはじめ,基命令文はもちろん,複雑な集計を行うSQLの書き方,MySQLを扱う際に必須となるデータ型/インデックス/トランザクション/デッドロック/レプリケーションの5大基機能を解説しています。 さらに,AWSの人気データサービスであるAmazon RDSとAmazon DynamoDBの使い分けポイントも紹介。 現場ですぐに役立つデータベースの知識が身に付きます。 こんな方におすすめ データベースについて基礎から勉強したい方

    データベース速攻入門 ~モデリングからSQLの書き方まで
  • データベースの仕組み(アーキテクチャ)をざっくり理解する

    フリーランスエンジニアをしているrevenue-hackです! 普段はGo言語でバックエンドを中心にやっています〜 ↓登壇したときの資料です! より図を入れて詳しく書いております! 今回はデータベースの特にRDBの仕組み(アーキテクチャ)についてざっくり理解して、なにかに役立てようぜ〜 というような内容になります。 ↓記事はこちらに移しました!↓

    データベースの仕組み(アーキテクチャ)をざっくり理解する
    s_ryuuki
    s_ryuuki 2023/03/06
  • Go/Docker/GitHub Actions環境でのDBテスト方法検討

    はじめまして2022/11に入社しましたソフトウェアエンジニアの葛西です。 主にバックエンド開発を担当しています。 社内で競プロ部を立ち上げたのでいつか機会があれば記事にしたいなと思っています! はじめに チーム内で現在のプロジェクトDB(リポジトリ層)単体テストをどういう風にやろうかという話になり、色々悩みながらやり方を検討していったのでその過程と最終的にどのように実装したかを残しておきたいと思い記事にしました。 技術スタック まずDBテスト方法を検討する際の前提条件として現在のプロジェクトで使用している技術スタックを書いておきます。 言語 Go DBマイグレーションツール sql-migrate スキーマ変更用のSQLを用意しておけばコマンドでスキーマ変更などを反映してくれるというツールです。 スキーマ変更用のSQLはこのプロジェクトのディレクトリに直接置いています。 ORMライブラ

    Go/Docker/GitHub Actions環境でのDBテスト方法検討
  • ソシャゲのデータベース移行の裏側 (Cloud Spanner)

    移行のゴールは単純で「ユーザの資産の引き継ぎ & 新バージョンで遊べるようにする」 です。ただし、いくつか追加、変更、削除された資産もあるので、補填を含めて対応する必要があります。 新しいバージョンの差分バージョンアップに伴い、データベースに以下の変更がありました。 テーブルの追加、削除インデックスの追加、変更、削除カラムの追加、削除またマスターデータも大幅に更新がありました。 マスターデータとは ゲームで使用するさまざまなパラメータ(敵や経験値、マップなどユーザ全員が共通して利用するもの)を保存したデータのことを指します。形式はゲームによってさまざまで、KVS・DBCSVなどで管理されます 実際にどう進めたのか?実施した内容を、時系列順に紹介します。

    ソシャゲのデータベース移行の裏側 (Cloud Spanner)
  • リレーションとリレーションシップの誤用に注意 - 設計者の発言

    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個のテーブルに格納された行(

    リレーションとリレーションシップの誤用に注意 - 設計者の発言
    s_ryuuki
    s_ryuuki 2023/02/02
  • データベース研修(データベース基礎編)【ミクシィ22新卒技術研修】

    22新卒技術研修で実施したデータベース研修(データベース基礎編)の講義資料です。 動画:https://youtu.be/dseGQ2MZF1U SQL演習編 https://speakerdeck.com/mixi_engineers/2022-sql-training

    データベース研修(データベース基礎編)【ミクシィ22新卒技術研修】
  • あなたの遅延はどこから? 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
  • OBJECTBOXを使ってみた

    LocalDBに入門してみる FlutterでLocalDBといえば、sqflite、Hiveが良く使用されているみたいですが、ObjectBoxなるものが人気が出ているようで、気になって使ってみました。 数日前から、チュートリアルをやったりしましたが、Riverpodに書き換えたら、Runボタンを押してアプリを再起動しないと画面にデータが映らないのに、悩まされました😱 多分これは、アプリのライフサイクルというものでしょうね... 公式のサンプルを見てみたのですが、Streamを型に使っていて、画面に描画するときは、Streambuiderを使っていました! Hiveでもやっていたような? こんなアプリ作りました 完成したソースコード こちらが今回参考にした公式のサンプル こちらが公式の環境構築の方法が紹介されたページ アプリ作成で躓いたところ あまり情報がない どうやって対応した? 公

    OBJECTBOXを使ってみた
  • 【C#】Dapper忘備録【基本編】 - Qiita

    Qiita Advent Calendar 3回目の参加です。よろしくお願いします。 今年も個人的にお世話になった、Dapperに関するあれこれをまとめました。 Dapper とは .NETプラットフォーム用のマイクロORM(Object-relational mapping)です。 Dapperを使用する場合、SQLとマッピング用のクラスは自力で書く必要があります。SQLを書けることが前提のオブジェクトマッパーです。 通常のORMを使用したことがないのでなんとも言えないのですが、 単純にデータベースとオブジェクトをマッピングする場合、Dapperは非常に使いやすいのではないでしょうか。 Is Dapper an ORM? の項目に、通常のORMとの違いが記載されています。 dapper専用のChat GPTが出来ていました。便利です。 IDbConnection と Dapper Dap

    【C#】Dapper忘備録【基本編】 - Qiita
  • Web APIを手作りする時代は終わった?

    ::: message info これは[フィヨルドブートキャンプ Advent Calendar 2022 Part.1](https://adventar.org/calendars/7760)の25日目の記事です。 昨日の記事は:@shujiwatanabe:shujiwatanabeさんの[質問しながら出来るようにしていく](https://shu91327.hatenablog.com/entry/2022/12/24/091025)と:@saeyama:saeyamaさんの[Rails/Vue 編集時に画像をD&Dで入れ替えした時のActive Storageの保存方法](https://saeyama.hatenablog.com/entry/2022/12/24/000123)でした。 ::: ↓こういうのを職人が丹精込めて一つ一つ手作りする時代は終わりました。 ```sh

    Web APIを手作りする時代は終わった?
  • 🦐🦐🦐Markdownで書くBIツール、Evidence触ってみた🦐🦐🦐

    気にはなってるけど触ってないビッグデータ系のツール・サービスを触る Advent Calendar 2022の#9です。 Evidenceとは MarkdownSQLクエリやグラフの設定を記載し、レポート用の静的なHTMLドキュメントを作成するツールです。 デモ画面を見ていただくと、作成できるレポートのイメージがしやすいと思います。 この方法(コードでレポートを定義、静的なHTMLドキュメントを作成)により、 ソースコードと同じように、バージョン管理やレビュー SQLクエリの結果を利用した、レポートの動的な制御(テンプレート) 色々な場所への埋め込みがしやすい などのご利益がありそうです。 (Evidence公式サイトより抜粋) インストール・プロジェクトの初期化 プロジェクトを設定するディレクトリで、npx degit evidence-dev/templateコマンドを実行します。

    🦐🦐🦐Markdownで書くBIツール、Evidence触ってみた🦐🦐🦐
  • 図解 DB インデックス

    DB インデックスの基礎知識を、図をたくさん使って整理します。 この Book は、暗記をおしまいにしてこんな疑問を自力解決できるようになることを目指します。 「どんなインデックス作ればいいんだっけ?」 「なんで作りすぎちゃだめなんだっけ?」 「この場合インデックスって効くっけ?」 「インデックスでどれくらい速くなるの?」 このは筆者の理解に連動して追記修正される可能性があります。

    図解 DB インデックス
  • はじめてでもわかるデータベース完全ガイドブック - Qiita

    この記事はNuco アドベントカレンダーの16日目の記事です。 はじめまして、higasunです。 今回の内容は、データベースについてです。 種類や歴史に始まり、実際に作ってみるところまでやってみることで理解を深めていきます。 データベース初心者でも「データベースの基を理解して、簡単なSQLなら書ける!」くらいの状態になれる仕上がりだと思っていますので、最後までお付き合いください。 ※もし間違いなどありましたらコメントで教えていただけると幸いです。 データベースって何? データベースの定義 データベースとは、構造を持ったデータの集合のことです。 平たく言うと、あるルールに従って格納・取り出されるデータの集まりです。 データベースには複数の種類があり、それぞれにデータの扱い方のルールがあります。 データベースの歴史 最も最初に登場したデータベースは50年以上も前に遡ります。 ここでは、様々

    はじめてでもわかるデータベース完全ガイドブック - Qiita
    s_ryuuki
    s_ryuuki 2022/12/16
  • レガシーシステムから新システムにデータ移行をした話 - Qiita

    旧システムは3つのサービス種類から構成されており、サービス毎に3つ別々のシステムが用意されていました。 データの管理はそれぞれに行われ相互にユニークキーの重複などもある状態でした。 3つの内2つはほぼ同じ構成のシステムでしたが、残り1つのサービスは簡易的なスプレッドシートとGASで管理されており、手入力データが行われる事により新システム側で想定しない形のデータを多数含んでおり、データ構造も異なりました。 新システム(マイクロサービス) 旧システム(モノリシックだけど3つある) 旧システムから新システムへのデータの流れ 旧システムでは正規化レベルが低かったため1つのテーブルとして扱っていた情報が5つくらいにのテーブルに分かれたりしました。また、旧システムはサービス種類毎に異なる3つのシステムがあり、齟齬なく情報のユニーク性を保ちながらデータを移行しました。 データ移行は1月に第1弾、2月に第

    レガシーシステムから新システムにデータ移行をした話 - Qiita
  • Amazon DynamoDB の論文を読んでいく - Qiita

    概要 AWS で人気のサービス DynamoDB についての論文が公表され巷で噂になっていたと思う。 今回は、その論文を読み込んでいき、ざっくりまとめていくという記事になります。 完全趣味な記事なので、興味ある人がいれば幸いです笑 Abstract まず論文のタイトルですが、「Amazon DynamoDB: A Scalable, Predictably Performant, and Fully Managed NoSQL Database Service」と題したものとなっています。 Amazon DynamoDB は、NoSQL とよばれる部類のデータベースサービスです。 一貫した耐久性、可用性、パフォーマンスを提供してくれるマネージドなサービスなのが特徴ですね。 冒頭、2021年に66時間にわたる「Amazon Prime Day」中にピーク時8920万リクエスト/秒をさばいてい

    Amazon DynamoDB の論文を読んでいく - Qiita
  • 今すぐ使えるSQLのNULLとunknownの考え方 - Qiita

    初めに こんにちは。 株式会社HRBrainでバックエンドエンジニアインターンをしている、蔭山といいます。 株式会社HRBrainではアドベントカレンダーに参加しています。 記事は4日目になります。 業務でDBデータを取り扱う機会もあり、改めてDBSQLに関して学び直しました。 今回は、その中からすぐにプログラマとして業務に活かせて、とくに気をつけたほうが良いと感じたSQLでのNULLの取り扱いについて書きたいと思います。 何番煎じか分かりませんが、順を追って説明します。 SQLにおけるNULLとは何か 行のある列の値がない場合、その列はNULLである、またはNULLを含むといいます。NOT NULL整合性制約またはPRIMARY KEY整合性制約によって制限されていない列の場合は、どのデータ型の列でもNULLを含むことができます。実際のデータ値が不定または値に意味がない場合に、NUL

    今すぐ使えるSQLのNULLとunknownの考え方 - Qiita
  • DynamoDBで柔軟な検索をする - Qiita

    この記事の目的 Amazon DynamoDB(以下DynamoDBと記載)の可用性や書き込みのスループットの高さには大変魅力を感じています。 しかしながら、RDBとは全く異なる発想での設計が必要な点や、検索処理の自由度の低さに対しての有効な手立てを持ち合わせていない(スキルの問題)などがあり、なかなか実案件で採用するに至っていません。 そんな折に、とあるセミナーでDynamoDBの設計ノウハウを学ぶことが出来ましたので、その内容を自分なりに整理するためにこの記事を書きました。 (なお、セミナー主催者には内容を記事で公開してよい旨の了解をいただいています。) 試したこと 試したことは大きく2つあります。 転置インデックスを用いて、ある程度複雑なデータモデルを1テーブルで処理する パーティションキーの属性で前方一致検索をする方法を模索する 表記ルール DynamoDBの用語については、文末

    DynamoDBで柔軟な検索をする - Qiita