情報構造論はテスト返却
情報構造論は、来週不在となるので、授業時間を振り替えてテスト返却を行った。
データベースのテスト返却
後期中間試験が終わり、あわてて採点していたデータベースの返却。
来週が不在となるので、課題を出すなら、12/1 17:00 までとアナウンス。
データベースの設計
返却を終え、残り時間は後半の説明。
データベース設計には、概念設計、論理設計、物理設計に分けられる。
概念設計では、データベースによって管理の対象とするものを現実の世界から抽出して設計を行う。一般的にはER図などを描きながら設計を行う。論理設計では、どのようなデータモデルで作成するのかを設計。通常であれば、リレーショナルモデルで概念設計に沿って設計を行う。物理設計では、データベースの効率を考えながら設計を行い、インデックスをどう作成するかなどを設計する。
ER図とは、データの対象で具体的な物や人といった実体(Entity)と、その実体の間の関連(Relation)であらわされるものを、図にして表現したもの。ER図では、実体を長方形、関連をひし形、属性を楕円であらわす。属性のなかでキーとなるものには、下線をつけて表す。ER図の表現には、色々な方式があるが、Peter Chen記法で説明を行う。
このような、プログラム開発での考えを表すための図には、UML(Uniformed Modeling Language)というものもある。ER図は、データ構造を表現するための構造図と、処理を表現する振る舞い図がある。
iMacの時計のずれ
自室のiMacの時計が5分もずれてた。原因は、ntp サーバの先頭に、故障で運用を止めたサーバが書いてあった。そりゃずれるわな。
高専ライブ:2017年11月26日(第552回)
学生さんがテスト期間中につき、教員による収録でお送りしました。
- 新任教員紹介 物質工学科 松野先生
- サイエンス共和国 第16回 「灯の話 LED編」
- 中村鋭一さんを偲ぶ
ゲスト:物質工学科 松野先生
担当:松井(体育科教員)、中村(国語科教員、MC)、西(電子情報工学科教員、MIX)
Peter Chen記法(ER図)
データベースのテスト問題を考えるべくWeb閲覧中。授業後半で説明するER図の書き方には様々なものがある。後半の授業用にメモ。
- Peter Chen記法:実体を長方形、関連をひし形、属性を角丸長方形で描く最もシンプルな書き方。授業では、この方式で説明している。
- IDEF1X(Integration Definition)記法:アメリカ標準技術研究所(NIST)が規格化。
- IE(Information Engineering)記法:データベース設計に特化した、ER図表現法
図は、参照元サイトからの引用
高専ライブ:2017年11月19日(第551回)
専攻科スペシャル
- 専攻科の授業について
- 高専生に聞きたい5つのこと 第10回 スペースバルーンプロジェクト参加学生
ゲスト:礒口(1PS),前田(1PS)、玉村(1PS)
担当:松島(1ES,MC)、西(教員、MIX)
家族のGoogleアカウントへの攻撃
うちの奥さんに、Google さんから、「あなたのアカウントに台湾からアクセスがありました」といったメールが届く。海外に遊びに行ってるわけでもなく、まずはメール自体が「フィッシングメール」かどうか確かめる。この文面からすると、アカウントにアクセスがあったけど、国外でのアクセスは異常なのでブロックしたという雰囲気。つまり、パスワードが漏れている可能性が高い。
使い回しパスワードは危険
パスワードの使用状況を聞いてみたら、gmail のメールアドレスで、複数の Web サービスを利用していて、そのパスワードが全部同じ。これからすると、使っている Web サービスのどこかで認証情報が盗まれ、そのアカウントで別の Web サービスに侵入が行われたと考えるべき。典型的な、共通パスワード利用者への辞書攻撃。
お金系は2段階認証が必須
ということで、早々に (1)Googleのパスワード変更と2段階認証設定、(2)Google IDと同じパスワードを使っている他のWeb サービスのパスワード変更を行った。特に金融系とか通販でクレジットカードを入力しているものは、特に。ただ、よく使っていたクレジットカードはサービス停止で切り替えたようで、多少は安心。(3)最後に Apple ID, Amazon, Facebook といったものも、2段階認証をONにする。
専門基礎3-キルヒホッフの法則
オームの法則での合成抵抗などの理解ができたところで、キルヒホッフの法則の説明。
2電源3抵抗の回路をキルヒホッフで解く
2電源3抵抗の問題で、オームの法則を使って式を立てる前に、電位のイメージを水の高さでイメージして、電流が合流してGNDまで落ちていく様を見せるための資料。
この電位の考えにもとづいて、式を立てると以下の連立方程式が求まる。あとは、E1,E2,R1,R2,R3の値が与えられれば、I1,I2,I3を求めることができる。
講義録がChromeで表示ズレ
今年度、後半は講義録をマメに記載してきた。
でも、プロジェクタをつかって、講義録を見せながらの授業で Safari だと、折り返しが発生して見づらかったので、Chromeを起動してみた。しかし、今度は空白の表示幅の問題で、内容がずれて表示される。ということで、wordpress のスタイルシートで、以下の変更。また、折り返しされると、見づらいので横スクロールするように変更。
code, kbd, pre, samp { font-family: "MS ゴシック","MS Gothic",Sans-Serif; font-size: 1em; } pre { border-top: 1px solid #ddd; background-color: #f1f1f1; padding: 15px; /* white-space: pre; white-space: pre-wrap; word-wrap: break-word; */ overflow-wrap: normal; overflow-x: scroll; } /* 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 */
電卓プログラム作成の補足
専攻科実験で、「字句解析と構文解析で電卓プログラムを作ろう」というネタを実施中。
サンプルプログラムを見せて、課題の1つが「式を読みやすくするための空白が使えるように改良」としているが、学生さんより、『最初に空白を全部消してから処理するのはアリ?』との質問。
ひとまずは動くプログラムをつくってくれればいいけど….
でも、空白を先に全部消してから、トークン切り出しをやると、色々とトラブルが起こる。
((例1)) x=-1 ; 昔、私が学生の頃に使ったCコンパイラは、"+="演算子を、 "=+"と書いても良かった。だから、"x -= 1"と誤認され、 プログラムがバグった。この経験以降、代入文の"="の前後 とかややこしい演算子の式で、空白を適所に打たないヤツは シロウト判定している。 今回の質問のように、空白を除去してから字句解析を行うと、 "x = -1"と誤認されないように空白を入れあっても、 "x -= 1"に誤認される。 ((例2)) C++でのテンプレートクラスでは、<>の中に型を 書いたりするけど、Foot<int>といった型も 出てくる。んで、<>の中にテンプレートクラス が出てくると、Foo< Bar<int> > といった 型を使う場合がある。でも、空白除去後に字句解析をすると、 Foo<Bar<int>>となり、右シフト演算子になる。 → C++03 から C++11 での仕様の変化 ・C++03までは、テンプレートの">"の前後には空白を入れるべき。 ・C++11からは、"<"のトークンの数で">>"でも区別してくれる。