22新卒技術研修で実施したデータベース研修(データベース基礎編)の講義資料です。 動画:https://youtu.be/dseGQ2MZF1U SQL演習編 https://speakerdeck.com/mixi_engineers/2022-sql-training
排他制御とは何か そもそも排他制御とは何なのか。これはWikipediaの冒頭の説明によると以下のようです。 排他制御(はいたせいぎょ)とは、コンピュータ・プログラムの実行において、複数のプロセスが利用出来る共有資源に対し、複数のプロセスからの同時アクセスにより競合が発生する場合に、あるプロセスに資源を独占的に利用させている間は、他のプロセスが利用できないようにする事で整合性を保つ処理の事をいう。 「目的地Xへ向かっているAさんが乗車しているタクシーに、Bさんが突然乗り込んできて目的地をYにするよう運転手さんに頼んでしまう」 そんなことが起こらないように制御する仕組みが排他制御となります。 (AさんBさんが各プロセス、タクシーの目的地という情報が資源にあたります) 資源という用語は抽象的です。資源は物理メモリ領域、仮想メモリ領域、ファイル、DBのテーブルのレコード、と処理によって様々です。
SQLite Internals: Pages & B-trees Author Name Ben Johnson @benbjohnson @benbjohnson Image by Annie Ruygt Fly.io runs apps close to users around the world, by taking containers and upgrading them to full-fledged virtual machines running on our own hardware around the world. Sometimes those containers run SQLite and we make that easy too. Give us a whirl and get up and running quickly. Ok, I’ll admi
Data Models: A Comprehensive Guide to Structuring Information for Optimal Insights and Decision-Making In the realm of data management, the use of effective data models plays a pivotal role in organizing and representing information in a structured and meaningful way. Data models serve as the blueprint for databases, facilitating efficient data storage, retrieval, and analysis. This article delves
他モデル 階層モデル ネットワークモデル オブジェクトモデル 制約とキー 主キー(Primary Key) NOT NULL 制約と一意制約を組み合せたもの 主キーの値が、表の中の複数行に存在することはできない。 主キーを構成する列に NULL を持たせることはできない。 一意キー 表の中の2 つの行が一意キーに対して同じ値を持たないようにする。 単一の列で構成される一意キーの場合は、複数のNULL(行) を持つことが可能。 複合一意キーにおいてすべてのキー列に対してNULL を持つ行も同様に複数持つことが可能。 ただし、1つ以上のキー列に対して NULLを持ち、その他のキー列に対して同じ組合せの値を持つ 2つの行は制約違反となる。(※) (※) この制限は Oracle 検索メカニズムによるとマニュアルに書かれている。標準SQL では制約の 1つのキー列でも NULL を持つ場合には制約
I/Oボトルネック解消に必要な2つのアプローチ 連載第2回では、大規模データ処理におけるディスクI/Oのボトルネックが発生する原因や、かんたんな分析手法について紹介しました。では、I/Oボトルネックを改善するには、どのようにすればいいのでしょうか。大きく分けると、以下の2つのアプローチがあります。 ①I/Oを高速化する ストレージ数やストレージあたりのディスク数の増設、ディスクやコントローラの高速化、DB-ストレージ間のネットワークの帯域拡張など、おもにハードウェアの増強や性能アップでボトルネックを改善します。 ②I/O量を減らす おもにロジック(SQLや実行計画)の改善、断片化の解消、Oracle Databaseの機能などによってボトルネックを改善します。 第2回で紹介したI/Oボトルネックの発生パターンは、すべて上記のアプローチを適切に取ることで解消します。 Oracle Exada
こんにちは、虎塚です。 前回は、RDSでのDBアクセスログの管理方法をご紹介しました。今回はもう少し踏み込んで、RDS for PostgreSQLを対象に具体的なログ関連の設定項目についてまとめました。 DBログの取得/運用についての設計をするにあたり、大切なのは「ログの利用目的」です。一方、どんなことを決めてDBの設定に落とす必要があるかを、設定項目からボトムアップで見てみるのも、DBMSを理解する上ではよいかと思います。 DBログ設定の項目を検討する前の前提知識 RDSでは、DBの設定項目をパラメータグループで設定します。ひとつひとつの項目を確認する前に、知っておいたほうがよいことを紹介します。 engine-default値の意味 パタメータグループには、engine-defaultと表示されている設定項目があります。 値が「engine-default」になっている設定項目には、
データベース設計の話をしていて、「連番の主キーは業務上意味のないデータだから、テーブルに持たせるのはムダだ。複合主キーにするべき」という意見を聞く機会がありました。 脊髄反射で「ないわー」と思ったものの、理由を上手く説明できなかったので、改めて考えてみました。 その結果、次のような結論に至りました。 単一の連番カラムによる主キーと、複合カラムによる主キーとで迷ったら 実装をシンプルにし、業務変更の影響範囲を小さくするために、複合主キーを避ける というわけで、調べたことや考えたことをメモしておきます。# 間違っている部分があれば、教えていただけると嬉しいです。 (2011/07/25 追記)複合主キーとサロゲートキーについては、要件やシステムに依存して多様な判断がありうると思います。にもかかわらず、「避けるべき」というタイトルにしたのは極端でした。申し訳ありません。ご指摘下さった皆さん、あり
一方で、Webサービス系などで論理設計と物理設計をもう一緒くたにやっていくような場合は、 正規化の論理に目の前にあるサロゲートキーを含めないようにすることが大切で、モデリングはナチュラルキーを基軸に考えていくとよいでしょう。 サロゲートキー (代理キー) サロゲートキー + (複合)ユニーク制約 ナチュラルキーをPKにせず、例えば連番となるようなカラムを用意して、それをPKにします。 これがサロゲートキーと言われるものですが、ナチュラルキーには別途ユニーク制約を付与する というのを忘れてはいけません。 ここでは、ナチュラルキーにユニーク制約を付けずにサロゲートキーだけを導入する方式は、業務的・実装的に意味はないと考え、ここでは取り扱いません。 議論の対象にすらしません。ユニーク制約を付けることで業務的なユニーク性を保ちつつサロゲートキーの恩恵を得ることができ、同時にナチュラルキーを明示する
Amazon RDS マルチ AZ 高可用性、高耐久性のリレーショナルデータベースを最大3つのアベイラビリティゾーン(AZ)に展開
RDSではDefaultでcharacter-setにlatin1が割り当てられる為、日本語を利用する際はutf8などに変更してあげる必要がある。 Step1 RDSダッシュボードの左メニューからParameter Groupsを選択する。 Create DB Parameter Groupを選択し、 DB Parameter Group Family DB Parameter Group Name DB Parameter Group Description をそれぞれ選択し、設定を行うDBの種類、パラメータグループの名前と説明を入力し、"Yes, Create"で作成 Step2 パラメータグループが出来たことを確認したら、作成したグループの詳細ページからEdit Parametersを選択し、 character_set_client character_set_connection
Suppose that you have an existing PostgreSQL deployment that you want to move to Amazon RDS. The complexity of your task depends on the size of your database and the types of database objects that you're transferring. For example, consider a database that contains datasets on the order of gigabytes, along with stored procedures and triggers. Such a database is going to be more complicated than a s
MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。 PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く