データベース(ガイダンス)

後期最初の担任クラスの授業ということもあり、 ホームルームも兼ねていたけど、非選択の学生さんが退出して、普通に授業。(^^;

最初の授業ということで、簡単なガイダンスとして、ネットワークが普及した現在、 データベースがどのように使われているのかを説明する。

データベースが情報共有のために重要な技術であり、Webシステムの中での使われ方 ということで、サーチエンジンの話(設立当初のYahooのユーザ登録型)や、 Google に代表されるクローラ・ロボットによるサーチエンジンの説明を行う。 これに伴い、データは巨大化し、大量のユーザを抱える現在、 データ検索を極めて短い時間で返答することの難しさを説明する。 このため、一般的なWebシステムでは、Webサーバを負荷分散目的で大量に配置し、 その後段にスレーブデータベースが待機し、その後段にさらにマスターデータベースが 並ぶという3段スキーマ構成の説明などを行う。 また、最近のIT産業では、システム構築からサービス開始までを短期間に行うために、 LAMP(Linux+Apache+MySQL+PHP)といった構成が多いことなども紹介。 さらに、普及しているリレーショナルデータベースシステムの名称として、 Oracle,MySQL,PostgreSQL,SQLite,BerkleyDBなどを紹介し、ネットワーク型、ファイル型 の違いやSQLを使うもの使わない物などがあることも紹介。

後半はデータベースが無かったら...という視点で説明。

C言語レベルの簡単な演習でデータベースっぽいことをする時は、 fscanf+fprintfだろうけど、大量データを永続的に扱いたいのであれば、 全データ読み込み&全データ出力のプログラムを書くのが簡単。 でも、データ量が増えれば、修正・追加のあった部分だけ書きこむ必要が出てくる。 しかしながら、1行1件のデータであれば1行の長さが変化するとダメ。 こういう場合には、1件のデータ長を固定として、lseek+fwrite+freadを使って ランダムアクセスのプログラムを書くことになる。

しかし、こういうプログラムは1件のデータ長が変化すれば、プログラムの修正も大変。 さらに、複数の並行処理で書き換えを行えるのであれば、flockなどを使ったプログラムが 必要となる。

 

2015年12月

    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

アーカイブ

Google

このブログ記事について

このページは、T-Saitohが2011年9月30日 10:35に書いたブログ記事です。

ひとつ前のブログ記事は「iPad2届く」です。

次のブログ記事は「双方向リストと2分木」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。