ホーム » 2013 » 10月 » 02

日別アーカイブ: 2013年10月2日

2013年10月
« 9月   11月 »
 12345
6789101112
13141516171819
20212223242526
2728293031  

最近の投稿(電子情報)

アーカイブ

カテゴリー

データベースのガイダンスと導入話

インターネットの情報量

最初に、インターネットで扱われる情報が増加しているという点で、 世界中の情報量を説明。Googleが推測するインターネットの情報量は、 2010年度では281EB(エクサバイト10^18,kMGTP*E*ZY)で、この時点で 55倍/6年だったらしい。 約2倍/年とすれば、2013年は、2ZB(ゼタバイト)程かな。

ちなみに人間の脳は、大脳皮質だけで16TB、脳全体と遺伝情報も含めると230TB程らしい。

Webシステムとデータベース

データベースが情報共有のために重要な技術であり、 Webシステムの中での使われ方 ということで、 サーチエンジンの話(設立当初のYahooのユーザ登録型)や、 Google に代表されるクローラ・ロボットによるサーチエンジンの説明を行う。 これに伴い、データは巨大化し、大量のユーザを抱える現在、 データ検索を極めて短い時間で返答することの難しさを説明する。

このため、一般的なWebシステムでは、Webサーバを負荷分散目的で大量に配置し、 その後段にスレーブデータベースが待機し、 その後段にさらにマスターデータベースが 並ぶという3段スキーマ構成の説明などを行う。 また、最近のIT産業では、システム構築からサービス開始までを短期間に行うために、 LAMP (Linux+Apache+MySQL+PHP) といった構成が多いことなども紹介。

さらに、普及しているリレーショナルデータベースシステムの名称として、 Oracle, MySQL, PostgreSQL, SQLite, BerkleyDB などを紹介し、 ネットワーク型、ファイル型 の違いやSQLを使うもの使わない物などがあることも紹介。 最近では、巨大なデータベースを分散システム上に作る必要から、NoSQLなどと呼ばれる 手法も使われている。

データベースが無かったら…

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

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

計算機システムガイダンス+歴史

専攻科1年の計算機システムの初回。 生産システム全員+環境システム1名で始まった。

計算機システムの授業などについて、シラバスを使って説明した後、 最初の授業として、コンピュータの歴史などを概説。

計算機の歴史

ENIACに始まり、演算素子の変化から、 第一世代(真空管)、第二世代(半導体)、 第三世代(IC)、第3.5世代(LSI)、第四世代(VLSI)との変遷を説明する。

次に学生自身が縁の深いということで、パソコンの歴史などを説明する。 電卓向けのi4004から、8bitコンピュータi8008が発生し、 パソコンの普及で、i8080(Z80を含む)、MC6800(6502,6809)などが 使われていく。

性能があがり、16bitコンピュータに移行する際には、i8086のIBM-AT機 向けに MS-DOS(Microsoft) が開発される。この際に機械語の命令互換性 を考慮したことから、この後、Intel のプロセッサが広く普及していく。 一方、モトローラの16bitコンピュータ68000は、命令互換性が低く、 売れ行きが伸びないながらも、Apple社のMacintoshに採用され、 GUIの操作性の良さから教育機関などでは普及が進んだ。 MacintoshのGUIの成功は、Microsoft社にも及び、Windows が開発される。

MacintoshやWindowsのGUIが普及すると、複数のアプリケーションを使う ことが当たり前となり、これまでのシングルユーザ・シングルタスクな OSでは不十分となり、マルチユーザ・マルチタスクなOSが必要となった。 これらのOSでは、他のアプリケーションの不具合の影響を受けないために、 メモリ保護機能などが重要となってきた。 GUIのために十分な処理速度とメモリ保護機能などを備える必要から、 32bitコンピュータが出てきた。

32bitコンピュータとして、Intelの80386やモトローラの68030などが 生まれるが、16bit移行時の市場を Intel が握っていた。 このため、WindowsとIntelの影響力が大きいことから、Wintelといった 言葉で揶揄されることも多かった。

32bitコンピュータの普及と共に、Windowsでは、シングルタスク・ シングルユーザのWindows/95などから、マルチタスク・マルチユーザな、 Windows NT/2000/Xp に移行していく。

一方、このWintelの市場の独占には、情報開示とサードパーティによる 競争が大きく影響している。16bitコンピュータでi8086が普及したのは、 IBMがAT機のハードウェアの情報を広く開示し、それにそってAT互換機が 開発され、大量生産による価格競争と性能競争がおこり、安価で高性能 なものが大量に作られたことが原因となっている。

16bitコンピュータが普及する頃には、インターネットの普及も進んだ。 特に、Windows/95 が普及に貢献している。 この一方、OS では、汎用機の高性能なマルチユーザマルチタスク機能の、 Multics を小型コンピュータに移植した unix が生まれている。 これらは、インターネットを支えるサーバなどで広く普及している。

そして、unix は 32bitのi80386で動くようにと、Linux が開発される。 特に、Linuxは、GNUライセンス(無償利用可、改良を加えたら必ず改良物も 公開)であったため、インターネットの普及とともに広く利用されるように なっている。最近では、Android 携帯に Linux が使われている。