データベース
データベースの講義
研究トピックは主にこの三つ:
Search
データベースの講義
研究トピックは主にこの三つ:
の講義 の : で標準化された すべてのDBがSQLに準拠している(といっていい) が定義されてる 結合 join 選択 selection, projection 集合操作 union, intersection, subtraction なぜとして表現? 代数的な・を使って、等価な演算で、より効率の良い操作を見つけられる とかもこれにのっとってる クエリの高速化 参照の高速化: 複数の参照で共通に再利用できるデータを構築 実体化ビュー(キャッシュみたいな) でやる「」とある意味対立している 全体の高速化: ユースケースによって変わる、 更新処理が多い場合はテーブル分解、参照処理が多い場合はテーブル結合を進める クラウドだとまたやり方が変わる IOコスト, CPUコスト, とかも念頭に置く 実際にどうするか や、の問題としてする...
の講義より 二つのアプローチ () 一台の計算機の性能を増強してスケール メリット: 強いが求められる場合、簡単にデプロイしたい場合に使える デメリット: 性能の限界が当然ある(も限界が来ている) コストがかかる 事前準備がかかる(突然10倍にとかできない) () ex: [NoSQL]] メリット 事前準備がいらない、突然増やしたりするのにも対応可能 強い デメリット 「ネットワークの信頼性」「通信遅延が起きない」「ネットワークの構造は変わらない」などの条件が保証されない プログラムが大変...
としてScrapboxを使用する としてscrapboxを使う、で取得 /villagepumpでよく見る気がする /villagepump/scrapboxを静的hosting用databaseとして使う これだ /ci7lus/caramelize /ci7lus/Caramelize 最終回 Caramelize /sta/scrapbox-sta () ...
の講義 問い 実世界のデータをどのように計算機上で表現するか? 同じモデルでも複数の設計がある中で、適切な設計とは? (entity relationship) entity(実体)とrelationship(実体間の関連)でデータモデルを表現する 表。 メリット: 見やすい 正規化: を排除するためにテーブル分解をする ちゃんと(情報欠損なく)テーブルを分解するには 第一~第五正規化がある 導入する従属性によってタイプ分け メリット: データ更新時に一箇所で済む、正確性と高速さに繋がる デメリット: データ参照時に複数のテーブルを結合する必要がある場合、大変(コスト大) クエリ処理の主たる命題: 結合操作をいかに高速に実行するか スキーマ設計の命題: 更新コストと参照コストの合計?を最小化する 基本トレードオフの関係 正規化=更新コストを下げて参照コスト上げる 別講義だったのでリンク先に書いてある...
の講義 Atomicity 、中途半端にならない これがないと、多様なエラーケースが存在するから大変 Consistency は処理後も保持されている Isolation 、並列実行は直列実行と同じ結果(等価)を保証 同一データを同時に参照/更新したくない どうするか 今自分が最新データーを操作しているか否かを判断できれば良い 「」 最新データーの版を一つに限定(ロック) 並列実行しにくいので効率は上がりにくいが、失敗することは少ない ぶつかり合う可能性が高い場合に良い 「」 データ参照/更新時刻を記録しておいて、トランザクションが終わった時にもう一度チェックして他の人がアクセスしていない事を確認 もし他の人がアクセスしていたら、アボート(失敗)となる (原子性を保証するために全取り消し) ぶつかり合う可能性が低い場合に良い もしくは、変わったDBMSとして最新版が複数存在しても良いという考え方のDMBSもある(的) MVCC (更新時だけ、最新版を一つに限定) DBMS: のについて 複数の最新版を許容 自動マージを試みる(失敗したら手動でマージ) (単一の版のみ管理) マージして失敗したら手動マージ、なんてやってられない はserializabilityを保証 Durability 故障が生じても永続性を担保...
[データベース]の講義 CAP特性 C: Consistency A: Availability P: Partition Tolerance CAP定理:...
[データベース]の講義 定義が広い/曖昧? 1998: RDBMSからを除外したを指す用語として定義された 2009: [リレーショナルデータベース]]以外の[[データベース]を指す用語として定義された のための新しい世代の を持つ 強み データ容量が大きい(大量のデータを扱える) ...
...情報科学の達人プログラム 1期 - 2020/5 ~ 2021/3 、、、、、などの幅広いトピックの講義を受けた後、Saliencyを用いた授業映像要約の研究に取り組みました。 出来る事・取り組みたい事 実験用システムの開発 様々なプラットフォームや技術の開発を行ってきたため、幅広いプロジェクトに対応 具体的には、以下を含む様々な技術を用いた開発の経験があります Swift, Kotlin, Java, Typescript, C++, Ruby 等の言語 iOS, Android, Web (React), Unity 等のフロントエンド関連技術 Firebase, MySQL, GCP (Compute Engine), MongoDB 等のバックエンド関連技術 OpenCV, Tensorflow, PyTorch 等のライブラリ 被験者実験用システムの開発・運用も、未踏事業時のユーザテストや高校時代のVRに関する研究で行った経験があります。 経験がない技術でも、インターン開始までに可能なキャッチアップします。 「体験を通じて研究する」サイクル 講演動画等を拝聴した限り、自分の興味にとても近いように感じています。 実際に研究に携わらせて頂く事で、このサイクルにおける思考プロセスや実践的知見を吸収させて頂きたいです。......