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