Relational Data Base Management System の略。 日本語では、「リレーショナルデータベース管理システム」「関係データベース管理システム」と訳される。 DBMSの一種。RDBを構築・運用するために用いられる管理ソフトウェアのこと。 汎用RDBMS製品の例としては次のようなものがある。
はじめに スッキリわかるSQL入門 第3版を読了したので、こちらにまとめたいと思います。 https://www.amazon.co.jp/%E3%82%B9%E3%83%83%E3%82%AD%E3%83%AA%E3%82%8F%E3%81%8B%E3%82%8BSQL%E5%85%A5%E9%96%80-%E7%AC%AC3%E7%89%88-%E3%83%89%E3%83%AA%E3%83%AB256%E5%95%8F%E4%BB%98%E3%81%8D-%E3%82%B9%E3%83%83%E3%82%AD%E3%83%AA%E3%82%8F%E3%81%8B%E3%82%8B%E5%…
エキサイトの武藤です。 エキサイトホールディングス Advent Calendar 2022の14日目の記事です。 https://qiita.com/advent-calendar/2022/excite-hd 担当しているサービスのランキング機能のリビルドを行いました。 実現するにあたって、考慮したところを紹介します。 どのようなランキングか? 記事メディアを前提として、ランキングの仕様を説明します。 下記の仕様を想定します。 記事ごとのPVやいいね数を集計したランキング 日次更新 以前のランキング機能のシステム概要 以前のランキング機能のシステム概要について説明します。 まず、バッチが集…
HottyDB という検索エンジンとレコメンドエンジンの機能を搭載したRDBMSを開発し、α版を公開しました! www.hottydb.com ので、この記事ではHottyDBの概要と導入事例について紹介したいと思います! 概要 HottyDBとは? HottyDBとは、検索エンジンとレコメンドエンジンの機能を搭載したRDBMS(リレーショナルデータベース)です。 SQLを用いた通常のデータ操作に加え、文書の全文検索や検索結果の機械学習ランキング(MLR)・アイテムレコメンデーションのロジックなどを全て1つのソフトウェアで担います。 1つのソフトウェアでこれらを実現することで、面倒なデータ伝送…
違法すれすれの『ライン上』に位置する設計 代理キー:主キーが役に立たない時 ケース1:入力データに主キーになるような一意キーが存在しない ケース2:一意キーはあるが、サイクリックに使いまわされる ケース3:一意キーはあるが、途中で指す対象が変化する 代理キーによる解決 自然キーによる解決 列持ちテーブル アドホックな集計キー 多段ビュー データクレンジングの重要性 参考 違法すれすれの『ライン上』に位置する設計 上手に使えば論理設計に効果があるが、間違った使い方をすると運用に支障をきたすといった、『バッドノウハウ』ではないが『グレー』な設計方法について学ぶ。メリデメを理解した上で利用することが…
論理設計の『やってはいけない』 非スカラ値(第一正規形未満) ダブルミーニング 単一参照テーブル テーブル分割 水平分割 垂直分割 テーブル分割の代替手段 不適切なキー ダブルマスター 参考 論理設計の『やってはいけない』 戦略の失敗を戦術で取り返すことはできない という有名な言葉があるらしい。システム開発における戦略は設計で、プログラミングは戦術に相当する。つまり、プログラムの品質を決めるのは設計になる。そんな設計において品質を致命的なレベルで損なってしまうバッドノウハウ(アンチパターン)を学ぶ。 非スカラ値(第一正規形未満) 第一正規系未満(セルにデータは1つ)のテーブルも存在する。例えば…
RDBMSの論理設計の基本の概念は正規化であり、それは『データ整合性を保持する』ために行っている。一方で正規化による背反として、『SQLのパフォーマンス劣化』を引き起こす。 正規化を行うと基本的にテーブルが増えていく。よって、SQL文を実行する際には、結合(JOIN)が必要になるが、この結合がSQL文の処理としては高コストなものになるため、多用するとSQL文の速度が悪化する。 その対処法に非正規化があるが、『正規化によるデータ整合性』と『非正規化による検索パフォーマンス』はトレードオフの関係のため、最良策にはならない。 『じゃあ、どうするの🤔』ってことだけど、原則として非正規化は許さないという…
テーブルの関連のパターン ER図の描き方 参考 テーブルの関連のパターン 同じ意味の列を持つテーブル同士の間には、通常次の3パーンの関連がある。 1対1(1:1) 『1対1』というのはほぼ見ないらしい。理由は2つのテーブルのレコードが1対1に対応するというのは、主キーが一致するケースなので、通常1つのテーブルにまとめても問題ないため。よって、正規化の過程で『1対1』のテーブルが作られることは無い。 1対多(1:N) 『1対多』は最もよくある関連のタイプ。正規化によって作られる関連の多くはここに属する。 多対多(N:N) 『多対多』は特殊なカテゴリで、RDBMSでは『多対多』の関連は作っていけな…
テーブル設計の流れ 図書館の予約申込書 メインとなるテーブル名を出す(イベント系エンティティを洗い出す) 「誰が・何が」、「誰を・何を」を考えてテーブル名を出す(リソース系エンティティを洗い出す) 各テーブルのカラムを出す 表現できていない情報を、テーブルにするか、カラムに追加するかを考える 関連を入れる 制約とデフォルト値とINDEXを考える 参考書:解答例 参考 テーブル設計の流れ テーブル設計の流れの概要にめちゃくちゃわかりやすくテーブル設計の手順が書かれていたので記載。これをベースに作業を進める。 メインとなるテーブル名を出す 「誰が・何が」を考えてテーブル名を出す 「誰を・何を」を考…
ウィンドウ関数 ウィンドウ関数は、ランキング、連番生成等の集約関数で通常できないような操作をする際に用いる。別名としてOLAP関数(OnLine Analytical Processing)とも呼ばれ、データベースをリアルタイムに処理して、オンラインでデータ分析などを行う際に使用する。よって、ウィンドウ関数は、OLAP用途のために、SQLに追加された機能。 具体的にどんなものかというと次のようなもの。 ウィンドウにすることの旨味としては、区切られたウィンドウ内でデータを操作できる点。ウィンドウ関数の構文は次のようになっている。 ウィンドウ関数 OVER ([PARTITION BY 列リスト]…
テーブルの足し算と引き算 UNION:テーブルの足し算 INETRSECT:テーブルのAND EXCEPT:レコードの引き算 テーブルを列方向に連結する 内部結合 外部結合 クロス結合 参考 テーブルの足し算と引き算 2つ以上のテーブルを使う場合のSQL文を学ぶ。テーブルのレコード同士を足したり引いたりするのが集合演算子。次の集合演算子についてまとめる。 UNION:テーブルの足し算 INTERSECT:テーブルの共通部部分の選択 EXCEPT:レコードの引き算 次のテーブルに対して色々操作してみる。 UNION:テーブルの足し算 UNIONはテーブルの『和集合』をとる。ベン図で示すと次の通り…
この記事は個人ブログと同じ内容です www.ritolab.com // .table-warp {overflow-x: scroll;} データベースを操作する SQL SQL(Structured Query Language)は、関係データベース管理システム(RDBMS)でデータを管理・操作するための標準化された言語です。データベースに格納された情報を効果的に取得、挿入、更新、削除するために使用されます。 SQLは、テーブルと呼ばれるデータの形式で情報を格納し、クエリを使用してデータベースとの対話を行います。初心者にとっても覚えやすく、構文も直感的であるため、多くのデータベース管理シス…
これは何? 業務でデッドロックが発生。そもそもデッドロックはどのような場合に発生して、どのような対応が適切なのか?について理解が曖昧だと感じたので改めて調べてまとめた。 前提 MySQL: 8系 InnoDB 以下における説明はすべてInnoDBを前提とします。 Tips デッドロックとはなにか? A deadlock is a situation where different transactions are unable to proceed because each holds a lock that the other needs. Because both transactions…
こんにちは、Enterprise Cloud部 ソリューションアーキテクト1課 宮形 です。今年に入ってガバメントクラウドのブログを書くようになりまして、どの記事も前向きでポジティブな内容を心がけておりましたが、今回は一転して後ろ向きなタイトルになります。 本BLOGではガバメントクラウドにおいてAWSに各システムをリフト&シフトした後に、AWSから抜け出す方法 について検討した内容を記載させていただきます。 このBLOGを書こうと思い立った理由 AWSから抜け出す方法を各サービス毎に検討する 仮想サーバー EC2 データベースのマネージドサービス RDS、Aurora コンテナの実行環境 E…
概要 背景 移行 移行前の構成 (MySQL, PHPバッチ) 移行後の構成 (DynamoDB, Kinesis) 移行の段取り 詳細 ストリーミング処理 APIサーバー APIクライアント 移行を終えて 最後に 概要 技術部インフラグループの春日です。 2024年上期現在、弊社ではオンプレデータセンターで稼動しているサーバーのクラウド移行を進めており、 2024年1Qの時点で大半はAWSへの移行が完了しています。 本記事では社内で古くから運用し続けているメール配信サーバーのバウンスマネジメントに使用するアドレス帳データをクラウド移行した件について振り返ります。 メール配信サーバー自体のクラ…
注意 各サービス RDBMS Neon Vercel Postgres Cloudflare D1 Supabase NoSQL Firestore(Firebase) / Cloud Datastore MongoDB Atlas DWH(Data ware house) BigQuery 比較的安価なサービス さくらのレンタルサーバー Heroku PlanetScale Render 期間限定無料枠のあるプラットフォーム AWS GCP 僕はこう思ったっス Herokuに引き続き、PlanetScaleの半永久無料枠が終了してしまいました。 個人開発でサービスを公開したいけど維持費を無料…
SQLは、Structured Query Language (構造化クエリ言語)の略称です。データベースを管理および操作するためのプログラミング言語です。以下に詳しく説明します。 SQLの役割SQLは、リレーショナルデータベースを扱うための標準的な言語です。データの追加、削除、更新、検索などのデータ操作や、テーブルの作成、変更、削除などのデータベース管理機能を提供します。これにより、ユーザーはデータベースを効果的に管理することができます。 SQLの特徴SQLは、英語のようなわかりやすい命令で記述できるため、プログラミング経験がなくても扱いやすいのが特徴です。また、SQLは非手続き型の言語であ…
先日AY2024-Term3を終えて卒業要件単位数を満たすことができました。今はまだ卒業申請中なので「仮」としている。ディプロマを手にするまでは実感が湧かなそうだけれど日に日に記憶が薄れていくので振り返りを。 清々しい気分で見物した今年の牡丹 目次 CS 2204 Communications and Networking CS 2301 Operating Systems 1 CS 3307 Operating Systems 2 CS 4402 Comparative Programming Languages CS 4407 Data Mining and Machine Learnin…
gigazine.net ⇧ amazing... EclipseのプラグインERMasterとは ERMasterのユーザーマニュアルのページの説明によると、 ermaster.sourceforge.net https://ermaster.sourceforge.net/content/manual/ja/index.html#1.1. ERMasterは、ER図用GUIエディタです。Eclipseプラグインとして動作します。ER図の作成、ER図の印刷、ER図からのDDL出力などをグラフィカルに行うことができます。また、DBからのインポート、グループ管理、履歴管理などをサポートします。 …
pre-amble setup Spanner Spanner とは sample DB + backend outputs Change stream Change stream とは Change stream の作成 outputs Dataflow の作成 BigQuery dataset (in other project) の作成 Service Agent への権限付与 「まじか」ってなったところ outputs 調べもの Dataflow job > "metadata instance ID" "metadata database" とは?? Change stream: e…
本業でMongo DBを使い始めてしばらく経ちましたが、なんの気なしに触っていたため改めて基礎をおさらいしておこうと思い立ちました。 数回に分けて投稿する予定です。 初回はそもそのNoSQLってなんなの?ってところからコレクション・ドキュメントについての内容をまとめていきます。 NoSQLとは? NoSQLデータベースは、従来の関係データベース(RDBMS)とは異なるアプローチでデータを管理するデータベースの総称であります。 NoSQLは「Not Only SQL」の略で、SQLに限定されないデータベース管理システムを指しています。 NoSQLデータベースは、スケーラビリティ、柔軟性、高速性に…
nazology.net 最近、アメリカのサウスフロリダ大学(USF)に所属する物理学者イヴァン・オレイニク氏ら研究チームは、スーパーコンピュータを用いたシミュレーションにより、ダイヤモンドよりも圧力に対して30%高い抵抗力を示す「BC8」と呼ばれる構造の生成条件が判明したと報告しました。 「ダイヤモンドより硬く割れにくい」炭素構造の生成条件が判明!宇宙には既にある可能性 - ナゾロジー 彼らによると、BC8が生成されるのは、高圧・高温の狭い条件の中だけだという。 具体的には、6000K(約5727℃)の温度と、1050GPaの圧力が必要になると予測されています。 「ダイヤモンドより硬く割れに…
データベース基礎 前書き 、データベースの基礎を書き連ねていこうと思います そもそもデータベースとは コンピューターから素早くアクセスできるように加工したデータの集合 データベースを管理する専用のシステムのことをDBMS(データベースマネジメントシステム)と呼ぶ 顧客情報、在庫情報等を管理するために使われている 現代ではありとあらゆるものを管理するために使われていて、上記のほかにも実に多様なユースケースがある DBMSは何をしてくれるのか データベースの操作 作成 管理 をしてくれる 多人数で同時にデータベースを操作できるようにしてくれる データベースを直接インターネット上に置かなくてもよいの…
はじめに 2024年1月にFLINTERS BASEに入社し、3ヶ月の研修が終了したので、 その感想を本記事で共有させていただきます。
マイクロアドの京都研究所からリモートで働いているインフラ開発ユニットの永富 id:yassan0627 です。 3/1に開催されたOpen Table Format Study GroupのMeetupの第2回目にて、「Kafka ConnectのIceberg Sink Connector」をテーマに話してきました。 今回は、その紹介です。 otfsg-tokyo.connpass.com Open Table Format Study Group(OTFSG) について 私の発表について Kafka Connectとは Iceberg Sink Connectorとは お試し環境について …
※この記事はD1がベータ版のときに書かれました Cloudflare 上で動くSQLiteであるCloudflare D1の使い途を考えるコーナー。 制約 そもそもD1ではないSQLiteではローカルのDBに実行するように作られています。 D1では Cloudflare Workers / Cloudflare Pagesから使う apiエンドポイントにクエリを投げる のどちらかになります。 つまり他の商用RDBMSのようにリモートにTCP通信で直接接続することができないはずです。(httpはTCP上で動いているとかいう突っ込みは却下) あまり向いてなさそうなもの 上記の直接Cloufflar…