NoSQLと Google Firestore
データベースシステムとして、最近は NoSQL (Not Only SQL) が注目されている。この中で、広く使われている物として、Google Firestore などが有名である。教科書以外の最近のデータベースの動向 […]
B木とB+木とハッシュ法
データベースでは、キーなどの値を高速に探し出すために、単純なデータが並んだだけのテーブルとは別に、検索専用のデータ構造を別に持たせることが多い。これらの検索用のデータは、インデックスファイルと呼ばれる。また、データベース […]
セキュリティ対策
セキュリティ バッファオーバーフロー クラッカーがサーバを攻撃する場合、サーバ上のプログラムの脆弱性を利用する。 サーバプログラムの脆弱性を利用する最も典型的な攻撃方法には、バッファオーバーフローがある。 こういった問題 […]
トランザクション処理
トランザクション処理 トランザクション処理とは、相互に依存関係にある複数の処理を矛盾なく処理することであり、データベースでは、ACID特性(原子性,一貫性,隔離性,耐久性)がもとめられる。この時、直列化可能(様々な順序で […]
暗号化とパスワード
暗号化 有線LANで1本のケーブルを共有したり無線でデータをやりとりする場合、通信の盗聴が行われると危険である。 前回の授業で紹介したように、簡単な置換式暗号などでは暗号の解読ができてしまう。 暗号化アルゴリズム 198 […]
ヒープメモリの管理方法
動的メモリ領域とフリーリスト 動的なメモリ領域(ヒープ領域)は、malloc()関数で処理用のメモリを借り、free()関数で使わなくなったメモリを返却する。 この返却されたメモリ領域は、改めて malloc() (Ja […]
リモート接続と暗号化
リモート接続 サーバなどの管理をしていると、インターネットの先にあるコンピュータを操作したい場合が多い。こういった場合には、リモート接続機能を用いる。 リモート接続による相手側のコンピュータを操作する場合、相手側のコンピ […]
データベースの物理設計
前半はデータベースの物理設計の話を行う。後半は、レポート課題の時間とする。 データベースの物理設計 データベースの物理的設計は、データベースの格納法法や管理方法を決定する。この際には、ディスク容量の見積もりやメモリ量の見 […]
ヒープ領域と参照カウンタ・ガベージコレクタ
ヒープ領域 リスト処理のようなプログラムでは、データを覚える領域は、関数が終わった後も使われる領域なので、局所変数のように「関数が終わったらそのデータの場所が不要になる」といったLast In First Out のよう […]
メモリ管理・スタック領域
ここまでの授業では、プログラムを動かすうえでアルゴリズムとデータ構造を中心に話をしてきた。しかしプログラムの中で利用しているデータがどういったメモリで管理されているのかを正しく理解する必要がある。そこで、局所変数のような […]