ホチキス先生の「プログラマーと呼ばれたい」

InfoPath & SQL Server !

Archive for the ‘校務の情報化’ Category

C# – 教科「情報」の授業で使うタイピングトレーニングのソフトを作っています。その 3。河端さんとのコラボレーション。Microsoft Flow と Microsoft Power BI で何ができるか。

leave a comment »

教科「情報」の授業で使うタイピングトレーニングのソフトを作っており、Microsoft SQL Server の大家であり Microsoft MVP でもあった河端さんと一緒に考えている。私は Visual Studio でクライアントの開発をし、河端さんにクラウドのアプリケーションを作ってもらっている。クライアントは Windows デスクトップアプリで、開発言語はもちろん C# だ。

河端さんには、クライアントアプリケーションから POST データを受け取るサービスを、Microsoft Flow で作ってもらった。Microsoft Flow で受け取ったメッセージを電子メールで通知する、といったシステムを、お互い離れた拠点でメッセージをやりとりしながら、およそ 30 分で作ることができた。これが現代的な開発スタイルだといえよう。

そして河端さんには、Power BI の分析ページを作ってもらった。こんなかんじだ。

文字入力トレーニングアプリ_003_PowerBI_1_mid_640

文字入力トレーニングアプリ_004_PowerBI_2_mid_640

文字入力トレーニングアプリ_005_PowerBI_3_mid_640

河端さんは、私がクライアントの Windows フォームアプリケーションを調整している間に、Microsoft Flow に送られたデータをこのように分析する Microsoft Power BI のフォームを作られていた。これらのビューを作るには、およそ 15分もあればよいそうだ。

このように、Microsoft Flow と Microsoft Power BI を使うとアイデアさえまとまればアプリケーションを作る手間は革命的に小さくなった。重厚長大のシステム開発の時代は終わったのだ。

Microsoft Visual Studio 2015 と SQL Server データベースファイルで開発する「目からうろこ」の C# プログラミングによる成績処理システム(5) – 生徒基本情報のデータを整理してデータベースに保存する下準備をする

with 5 comments

1.既存のデータを集める

VisualStudio_成績処理_054_mid_640

生徒基本情報のようなデータは、成績処理にデータベースを使っていない学校でも、多くはエクセルのような表計算で管理されているだろう。まず校内にある生徒データを集めてエクセルでまとめる。エクセルはこのようなデータ型が決まっていないデータを集めて整理するには使いやすい。

この例でわかるように、表計算のデータはデータとしてそのまま使えない場合がある。よくあるのは、数字に見えるが実際は日本語の2バイトフォント、いわゆる全角文字になっていること、アルファベットも全角と半角が混在していること、よけいな空白が混じっていること、などだ。上の表計算データの例では、氏名が姓と名に分かれておらず、また空白が入っていること、氏名の後ろに何らかの意味を持った記号「・」があること、などだ。

2.氏名データを姓と名に分ける

VisualStudio_成績処理_055_mid_640

どうしても手作業が発生するのは、氏名データから姓と名を分ける作業だ。ここではエクセルの関数を使って氏名のデータから全角と半角の空白と、これも全角と半角の「・」を取り除き、前から2文字を仮に姓だとして、前から3文字以降を名だとして切り取っている。エクセルの表計算上の関数は次のようになる。

「姓名の空白をとる」関数の例 =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(E2," ","")," ",""),"・",""),"・","")
「姓を切り取る」関数の例 =LEFT(H2,2)
「名を切り取る」関数 =MID(H2,3,10)

また数字のようで日本語であるかもしれない「学年」や「出席番号」を数字にし、性別からよけいな空白を取り除く、クラスを半角にする、などの処理をする。

「学年を数字にする」関数の例 =VALUE(A2)
「出席番号を数字にする」関数の例 =VALUE(D2)
「性別から空白を取る」関数の例 =SUBSTITUTE(SUBSTITUTE(F2," ","")," ","")
「クラスを半角にする」関数の例 =ASC(C2)

3.テーブル構造の見直しとテーブルを生成する SQL 文の変更

こうして既存のデータを整理すると、生徒基本情報データとしてあったほうが良いフィールドに気づく。ここでは「学科名」と「本科か専修コースか」のデータが必要だと考えた。

本校では、クラス名を学科名からつけている。建築科はクラス名に「A」をつけており、1年生は「A1」、2年生は「A2」といったものだ。したがって生徒が所属するクラス名から学科がわかるが、学科名はフィールドとして持っておいたほうが様々な処理がしやすいと考えた。また本校は一般の高校生が学ぶ「本科」に加えて、いちど高等学校を卒業した社会人が学ぶ「専修コース」があるので、それもデータとして加えたい。

・gakka 学科名 ユニコード可変長文字列型(4)
・honsen クラス名 ユニコード可変長文字列型(2)

「gakka」フィールドには「建築」、「機械」、「電気」、「情報技術」のデータを記録することに、「honsen」フィールドには「本科」または「専修」を記録することにする。

テーブル構造を変えるには、最初に作ったテーブル作成の SQL 文を変更して行う。メモ帳などのテキストファイルにしておいた元の SQL 文を次のように変更する。

VisualStudio_成績処理_056_mid_640

SQL 文のうち、[gakka] で始まる行と [honsen] で始まる行を追加した。

4.テーブルの削除とテーブル生成の SQL 文の実行

VisualStudio_成績処理_057_mid_640

Visual Studio の SQL Server オブジェクトエクスプローラーで、作った dbo.Seito テーブルを削除する。削除はテーブル名をポイントして右クリックし「削除」をする。

VisualStudio_成績処理_058_mid_640

テーブルを削除すると、テーブルにデータがあった場合そのデータがすべてなくなってしまうので、たいへん危険な操作になる。そこで「データベース更新のプレビュー」で、ほんとうに削除して良いか聞かれる。よければ「データベースの更新」をクリックする。

VisualStudio_成績処理_060_mid_640

テーブルがなくなった。

VisualStudio_成績処理_061_mid_640

SQL Server オブジェクトエクスプローラーで「テーブル」フォルダを右クリックし、もういちど「新しいテーブルの追加」を行う。

VisualStudio_成績処理_062_mid_640

ここでデザインビューを操作するのではなく、デザインビューの下の「T-SQL」に先のメモ帳で作り直した SQL 文を貼り付ける。すると上のデザインビューにも SQL 文に相当するデザインが表示される。

VisualStudio_成績処理_063_mid_640

テーブルのデザインビューの左上にある上向き矢印「更新」でデータベースを更新する。

VisualStudio_成績処理_064_mid_640

「データベース更新のプレビュー」で「データベースの更新」ボタンをクリックして更新を実行する。

VisualStudio_成績処理_066_mid_640

下部の「データツール操作」で更新が正常に完了したことがわかる。

VisualStudio_成績処理_067_mid_640

SQL Server オブジェクトエクスプローラーで生成したテーブルを確認する。

次回は整理したデータをテーブルに保存する作業を行う。

Microsoft Visual Studio 2015 と SQL Server データベースファイルで開発する「目からうろこ」の C# プログラミングによる成績処理システム(4) – Microsoft Visual Studio 2015 によるテーブル作成

leave a comment »

1.テーブルの作成

VisualStudio_成績処理_040_mid_640

前回までに Visual Studio の新しいプロジェクトを開始し、SQL Server データベースファイルを作成した。今回は SQL Server データベースファイルにテーブルを作成する。

Visual Studio の「SQL Server オブジェクトエクスプローラー」で SQL Server データベースファイルを展開すると「テーブル」が表示されるが、データベースファイルを作成した直後にはユーザーテーブルがなく、「システムテーブル」というフォルダだけが表示されている。これは SQL Server データベースファイル自体が利用するテーブルで、通常は中身を見ることがない。ユーザーが利用するテーブルを作成するには、「テーブル」フォルダを右クリックし「新しいテーブルの追加」を行う。

VisualStudio_成績処理_041_mid_640

Visual Studio の「SQL Server オブジェクトエクスプローラー」で「テーブル」フォルダを右クリックし「新しいテーブルの追加」を行うと、このようにテーブルのデザインビューが表示される。画面の左上にはデフォルトで「名前」、「データ型」、「Nullを許容」、「規定」の要素がある。これらを設定しながらテーブルの構造を決めていく。

2.生徒基本情報を保存するテーブルを作成する

まず生徒の氏名など基本情報を保存するテーブルを作成する。成績処理に必要な項目は何かを考えながらフィールドを決めていく。ここでは次のようなフィールドを作成することにした。

・seitoID 生徒番号 文字列型(6) 主キー
・sei 姓 ユニコード可変長文字列型(50)
・mei 名 ユニコード可変長文字列型(50)
・nen 学年 整数型
・class クラス名 1バイト可変長文字列型(3)
・num 出席番号 整数型
・sex 性別 ユニコード文字型
・birthday 生年月日 日付型
・nyunen 入学年度 整数型
・state 在籍状態 整数型

3.フィールド定義の考え方

ひとりの生徒に対して一意の「生徒番号」を与え、生徒個人にひとつの要素をフィールドとして用意する。姓、名、などだ。性別、生年月日、入学年度なども生徒ごとに決まった不変の値をとる。

学年、クラス、出席番号は、年度ごとに値が変わるフィールドになる。これは別テーブルにして年度ごとのデータを集積しなければならないが、生徒データにも現在の状態を記録することが望ましい。学年やクラスでデータを選択することが多いからだ。同様に、場合によっては姓、名も在学中に変わるケースがある。これも別テーブルで管理しなければならないが、現在の姓、名は生徒基本上でわかるようにしておきたい。これは厳密には「正規化」の概念に反することになる。データベース関係の書籍にはテーブル構造を考えるときに「正規化」をしなさい、と書かれているが、硬直的に正規化すると実際のデータ運用上クエリが複雑になるなど問題がおこる。このあたりは、ある程度データベース運用の経験を積むとわかってくる。「正規化」の考え方を理解した上で、実際にどこまで正規化をするかは、どのような処理をしたいのかを念頭におきながら設計していく。

4.データの型の考え方

次にデータの「型」をどうするかを考える。数値なのか文字なのか、コード化するかしないかは難しい選択だ。データベースは表計算ソフトなどでの集計と違い、それぞれのフィールドはデータの「型」を決めなけらばならない。

合計や平均を計算する必要があるデータは数値とする。たとえば出席日数や欠席時間数、成績といった項目だ。だが数字に見えても文字列型として処理することが望ましい場合もある。ゼロで始まるような数字、たとえば電話番号は数値型としては最初のゼロを記録することができなくなるため文字列型にする。学籍番号もゼロで始まる番号が与えられる可能性があれば、文字列型にする。

コード化するかどうかも選択が難しい。たとえば性別をコード化し、男は「1」、女は「2」とすることは考えがちだが、性別は多くの帳票で表示されるため、性別をコード化すると多くのクエリでテーブルの追加または表示のためのコードが必要となってしまう。漢字ならデータは2バイト、コードなら1バイトとデータ量は異なるが、「男」、「女」とデータを作っておくことが運用上望ましい。正確に分類集計したいとき、コード化しなければデータの統一性が失われる危険がある場合はコード化する。この例では「在籍状態」をコード化することにした。在籍状態は、通常を「1」、休学を「2」、転出を「3」、退学を「4」、卒業を「5」のように決める。コード化することにより、成績処理などでは在籍状態=1、在籍生徒数をカウントするときは在籍状態>=2、卒業生を集計するときは在籍状態<=5のようにして選択できる。ここを日本語で管理すると、「転出」を「転学」と記録してしまうなどデータの統一性が失われてしまう。

5.テーブルの作成

VisualStudio_成績処理_042_mid_640

テーブルのデザインビューで、既定で最初に「Id」という名前、データ型が「int」のフィールドがあり、そこには鍵のアイコンがついている。これは「主キー」である印だ。これを、フィールド名を「seitoID」に、データ型を「char(6)」に変更する。そして続くフィールドも設定していく。

VisualStudio_成績処理_043_mid_640

フィールドの名前、データ型などを決めたら、最後に「Nullを許容」のチェックを全部外そう。

VisualStudio_成績処理_044_mid_640

「Null」を許容にしておくと、データを登録しなくてもよいフィールドとなり、処理のときに例外が発生する可能性がある。もし何らかの事情で、一時的に「Null」データのまま処理したいケースが出てくる場合はチェックしたままにするが、後のことを考えると「Null」は許容しない方がよいだろう。

6.テーブル生成の SQL 文

フィールドを決めていくと、デザインビューの下の「T-SQL」のところに、CREATE TABLE ではじまるテーブルを定義する SQL 文ができあがっていくのがわかる。データベースにテーブルを作成する操作はこの SQL 文によってされるが、このようなテーブルの構造や構成を定義するために用いられる SQL 文を DDL(Data Definition Language)といい、データを操作する SQL 文である DML(Data Manipulation Language)、データへのアクセス権限などを制御する SQL 文であるDCL(Data Control Language)と区別される。

VisualStudio_成績処理_045_mid_640

SQL 文では CREATE TABLE [dbo].[Table] となっていることがわかる。これは「Table」という名前のテーブルを生成する、という意味だ。テーブル名は「Seito」としたいので、SQL 文の最初の行を CREATE TABLE [dbo].[Seito] のように変更する。

VisualStudio_成績処理_046_mid_640

SQL 文の最初の行を CREATE TABLE [dbo].[Seito] に変更した。

VisualStudio_成績処理_047_mid_640

7.SQL 文の保存

作った SQL 文は実行する前に選択して右クリックで「コピー」すると保存することができる。後でテーブル構造を見直したいときなど、SQL 文をコピーしておくと作業のやりなおしがしやすい。

VisualStudio_成績処理_047_mid_640

コピーした SQL 文はメモ帳などに貼り付けて一括管理しておくといい。

VisualStudio_成績処理_048_mid_640

8.データベースの更新でテーブルを作成する

VisualStudio_成績処理_049_mid_640

テーブル構造が決定したら、テーブルのデザインビューの上部にある上向きの矢印「更新」でデータベースの更新をする。

VisualStudio_成績処理_050_mid_640

「データベース更新のプレビュー」ウィンドウが表示されるので「データベースの更新」ボタンをクリックして更新する。これでデータベースに SQL 文が実行され、テーブルが生成する。このとき「スクリプトの生成」ボタンをクリックすると、テーブル生成の DDL 文、CREATE TABLE 文をファイルに保存することもできる。

VisualStudio_成績処理_052_mid_640

データベースの更新が正常に実行できたら、テーブルのデザインビューの下にある「データツール操作」ウィンドウに更新の手順が示される。

VisualStudio_成績処理_053_mid_640

テーブルができたら「SQL Server オブジェクトエクスプローラー」で確認する。ビューを最新の状態に更新すると、「テーブル」フォルダの配下に「dbo.Seito」テーブルができており、テーブル名を展開するとフィールドが列挙される。

次回はこのテーブルに生徒基本情報を保存しよう。

Microsoft Visual Studio 2015 と SQL Server データベースファイルで開発する「目からうろこ」の C# プログラミングによる成績処理システム(3) – Microsoft Visual Studio 2015 による SQL Server オブジェクトの管理とテーブルの表示

leave a comment »

1.SQL Server オブジェクトの管理

VisualStudio_成績処理_035_mid_640

前回は Visual Studio で新しいプロジェクトを開始し、ローカルコンピュータに Microsoft SQL Server データベースファイルを作成してデータ接続を構成した。

作成した Microsoft SQL Server データベースファイルには、実はまだテーブルやビューなど何も存在しない。テーブルやビューなどの作成も Visual Studio で開発することができる。Visual Studio で接続した SQL Server を見るには「SQL Server オブジェクトエクスプローラー」を使う。これはデフォルトで Visual Studio の左側のタブに表示されていないので、メニューの「表示」から「SQL Server オブジェクトエクスプローラー」をクリックして表示する。

VisualStudio_成績処理_036_mid_640

SQL Server オブジェクトエクスプローラーを表示すると左のペインに表示されるが、うっかり閉じるとまたメニューから開かなければならない。このSQL Server オブジェクトエクスプローラーは頻繁に使うので、閉じても左のタブからワンクリックで開くことができるようにしたい。

VisualStudio_成績処理_037_mid_640

SQL Server オブジェクトエクスプローラーをタブからワンクリックで開くことができるようにするには、「SQL Server オブジェクトエクスプローラー」のメニューバーで下向きの三角アイコンをクリックし「自動的に隠す」オプションをクリックしておくといい。

VisualStudio_成績処理_038_mid_640

SQL Server オブジェクトエクスプローラーを「自動的に隠す」オプションにし、左側のタブに固定した。

2.テーブルの表示

VisualStudio_成績処理_039_mid_640

ふたたびSQL Server オブジェクトエクスプローラーを表示すると「SQL Server」の項目がある。左の三角アイコンをクリックすると要素が展開される。「テーブル」まで展開すると、そこには「システムテーブル」のフォルダだけがあり、そのほかのテーブルはない。「システムテーブル」は SQL Server データベースファイル自体の設定に関するデータが保存されており、開くことは通常ない。

次回から、この SQL Server オブジェクトエクスプローラーを使ってテーブルやビューなどを作成する。

Microsoft Visual Studio 2015 と SQL Server データベースファイルで開発する「目からうろこ」の C# プログラミングによる成績処理システム(2) – Visual Studio 2015 による新しいプロジェクトの開始と SQL Server データベースファイルとデータソースの作成

leave a comment »

1.Visual Studio 2015 による新しいプロジェクトの開始

VisualStudio_成績処理_002_mid_640

Visual Studio 2015 を起動する。

VisualStudio_成績処理_003_N_mid_640

起動したら画面の左「開始」から「新しいプロジェクト」をクリックして新しいプロジェクトを開始する。

VisualStudio_成績処理_004_mid_640

プロジェクトで使用する言語やテンプレートを選ぶ。ここでは言語を「C#」、テンプレートを「Windows フォームアプリケーション」とする。必要があれば「名前」でプロジェクトファイルの名前をわかりやすいものに変え、保存する「場所」を変更するなどする。

VisualStudio_成績処理_006_mid_640

2.データベース SQL Server データベースファイルとデータソースの作成

テンプレートが構成され、Windows フォームアプリケーションの雛形が表示される。Windows フォームを作る前に、まずデータベースを作成しよう。そのために Visual Studio の左端に並んでいるタブから「データソース」をクリックする。

VisualStudio_成績処理_007_mid_640

データソースとは、プログラムがデータベースに接続する経路のようなものだ。プロジェクトにはまだデータベースがないのでデータソースもない。「プロジェクトには現在関連データソースがありません。」といったメッセージが示されている。そこで「新しいデータソースの追加」をクリックする。

VisualStudio_成績処理_008_mid_640

Microsoft Visual Studio 2015 は SQL Server 以外の様々なデータベースに接続できるウィザードを持っているので、いくつか選択肢が示される。このあたりの選択肢は用語と概念が理解できていないと何を選んでよいか迷うが、ここで使いたいデータベースは SQL Server データベースファイルとして次のように決定していく。まず「データソースの種類の選択」では「データベース」を選択する。

VisualStudio_成績処理_010_mid_640

「データベースモデルの選択」では選択肢はひとつしかなく「データセット」を選択する。

VisualStudio_成績処理_012_mid_640

次の「データ接続の選択」では、もし以前に同じ Visual Studio でデータベースアプリケーションを開発したことがあるなら、「アプリケーションがデータベースへの接続に使用するデータ接続」のところに以前設定したデータ接続が選択されているかもしれない。ここでは初めてデータ接続を作成するので、選択する項目がない。いずれにせよ新しい SQL Server データベースファイルを作るので、「新しい接続」のボタンをクリックする。

VisualStudio_成績処理_014_mid_640

次の「データソースの選択」では、接続したいデータベースを選ぶことができる。ネットワーク上に SQL Server があれば「Microsoft SQL Server」を選択することになる。また Microsoft Access データベースファイルを選択することもできることがわかる。ここでは新しくアプリケーション内に「Microsoft SQL Server データベースファイル」を作成して利用したいので、「Microsoft SQL Server データベースファイル」を選択する。そうすると自動的に「データプロバイダ」も設定される。

VisualStudio_成績処理_017_mid_640

次の「接続の追加」画面では、データベースファイル名を記述することになるが、まだファイルを生成していないので「参照」ボタンをクリックする。「参照」ボタンをクリックすることで、新規の Microsoft SQL Server データベースファイルを生成することができる。

VisualStudio_成績処理_019_mid_640

このように「SQL Server データベースファイルの選択」ウィンドウが表示されるので、データベースファイルを保存したいフォルダを選び、ファイル名を決める。ファイルがなくても「開く」のボタンをクリックすればよい。

VisualStudio_成績処理_021_mid_640

「接続の追加」画面に戻り、データベースファイル名が書かれている。だがこの時点ではまだデータベースファイルは生成していない。

VisualStudio_成績処理_023_mid_640

「OK」をクリックして先にすすむと、このようにデータベースファイルを作成しますか、というメッセージが表示される。「はい」をクリックするとデータベースファイルが生成する。

VisualStudio_成績処理_025_mid_640

少し前の「データ接続の選択」画面が表示され、データ接続が設定されたことがわかる。このとき、下段の「+」をクリックして「アプリケーションに保存する接続文字列」を展開すると、アプリケーション上でどのような構成がされているかがわかる。この設定情報は知らなくてもアプリケーションを開発することができるが、操作を誤ってトラブルになったときや、この先アプリケーションの工夫をするときに役に立つので一度見ておくといい。

VisualStudio_成績処理_027_mid_640

「アプリケーションに保存する接続文字列」を展開すると、Data Source としてデータベースファイル名や接続時のセキュリティ、タイムアウトなどが記述されている。

VisualStudio_成績処理_028_mid_640

次の画面では「選択された接続は、現在のプロジェクトにはないローカルデータファイルを使用します。プロジェクトにファイルをコピーして接続を変更しますか?」と問われる。また「データファイルをプロジェクトにコピーする場合、アプリケーション実行時に、プロジェクトの出力ディレクトリにコピーされます。この動作の制御に関する情報については、F1を押してください。」といった記述もある。

なにやらものものしい説明になっており「はい」とするのか「いいえ」とするのか戸惑う。この挙動については、初めての人には理解できないだろう。これは説明が悪いのではなく、プロジェクトの開発と完成品の展開についての概念があってはじめて理解できる記述だ。

「現在のプロジェクトにはないローカルデータファイルを使用します」というのは、Visual Studio のプロジェクトが保存されるフォルダーではないところに SQL Server データベースファイルを作ったことを指摘されている。そして「プロジェクトにファイルをコピーして接続を変更しますか?」というのは、先に指定した SQL Server データベースファイルのフォルダやファイル名のものを使わず、それを Visual Studio のプロジェクトフォルダにコピーして開発を続けますか、と聞いている。もしここで「はい」をクリックすると、先に指定した SQL Server データベースファイルのフォルダやファイル名のものは使われず、Visual Studio のプロジェクトフォルダにコピーされたものを使って開発がすすめられることになる。

もしプログラムを開発したあと、どこか別のパソコンに展開し、そこで最初から運用を始めるならそれでいい。しかし今からやりたい開発は、開発しながらデータも用意していき、運用もそのまま開発に引き続いて行う予定である。そのため、ここでは先に指定した SQL Server データベースファイルのフォルダやファイル名のものをそのまま使いたいので「いいえ」をクリックする。

VisualStudio_成績処理_030_mid_640

ここでデータソース作成ウィザードは最終段階で、接続文字列をアプリケーション構成ファイルに保存する。

VisualStudio_成績処理_032_mid_640

データソース構成ウィザードは、データベースオブジェクトの選択に戻る。ここでデータソースを構成したのに「データセット内に指定するデータベースオブジェクト」が何もないが、データベースオブジェクトとはテーブルやビューなどの要素のことであり、ここではデータベースファイルを作っただけで中身を構成していないので何も表示されていない。「データセット名」は自分が指定した SQL Server データベースファイルの名前を含んで自動的に決められる。このまま「完了」をクリックしてウィザードを終了する。

VisualStudio_成績処理_034_mid_640

Visual Studio の画面に戻った。すると左の「データソース」タブに「mySQLSVDBFDataSet」という名前のデータセットができていることがわかる。これで SQL Server データベースファイルとデータソースの作成が完了した。

Microsoft Visual Studio 2015 と SQL Server データベースファイルで開発する「目からうろこ」の C# プログラミングによる成績処理システム(1) – 成績処理システムを開発する背景とシステムの概要

with 2 comments

1.成績処理システムを開発する背景

私は30年の教員経験と、そのうちで学校のコンピュータシステムを15年間担当してきた経験から、学校の成績処理システムは教員自身が作り運用することが最善だという持論を持っている。なぜならコンピュータの管理やシステム開発の技術は教員が学んで身につけることができるが、学校の成績処理の方法は学校業務を経験しなければわからないからである。学校が成績処理システムを業者に発注して開発させることがあるが、コンピュータシステムを知らない教員と学校業務を知らないシステムエンジニアが十分な仕様書を作らずに開発に入ると間違いなく使えないシステムができあがる。さらに 15年前には、システム開発を教員がすることに無理があったが、今は優秀な開発ツールがあり、わずかな技術習得と短い時間でデータベースアプリケーションを作ることができる時代になっている。

コンピュータシステムに限界はない。人間が想像し得るシステムはどんなものでも作ることができる。しかしそれは、いつでもどこでも誰にでもあっという間にできるものではない。複雑なシステムを作るにはそれなりの時間と手間、熟考された設計が必要だ。作り始めてから不具合がわかることや、経験を積んでからより良い手法に気づくことがある。学校の教務規定が変わることもあるし、成績処理のやり方が変わることもある。教員自らがシステムを作る「内製」は、どんな変化にも対応できる利点がある。これらのことから、成績処理システムを構築する場合には、最初から多くの機能を作りこむのではなく、時間をかけずに必要最小限の機能から作ることがよい。

私は昨年の春、12年勤務した大規模で複雑な多部制単位制高校から、規模の小さな夜間定時制の工業高校に異動になり、教務部長を務めている。以前の勤務校では Microsoft SQL Server と Microsoft Office InfoPath や Microsoft Office Access などを組み合わせたいわゆる「 OBA 開発」によるクライアントサーバー型のシステムを作って運用したが、多くの全日制普通高校とは多くの面で違いがあった。現任校では成績処理のコンピュータ化がなされていないため、これを機会に簡単な成績処理システムを作ることにし、その作成過程を紹介することにする。現任校は学年制であり今から作成過程を紹介するシステムは多くの学校の参考になるだろう。

2.Microsoft Visual Studio 2015

Visual Studio は 1997 年に発表され改良を重ねてきた開発効率のたいへん良い開発ツールで、基本的な使い方を学ぶだけで簡単なアプリケーションを作ることができる。各出版社から「はじめて作る Visual Studio ・・・」といったタイトルの書籍がたくさん出版され、初心者でもそれらを読みながら簡単なゲームのようなプログラムを作ることができる。だが 10 年ほど前、Visual Studio 2005 の頃にはデータベースを利用するプログラミングをしようと思うと途端に敷居が高くなり、開発は難しかった。しかし Visual Studio は 2010 、2012 、2013 、2015 とバージョンアップを続ける中で、着実にデータベースアプリケーションの作成を改善してきており、2015 では SQL Server に接続するデータベースアプリケーションの開発は驚くほど簡単になり、データベースアプリケーション開発ツールとしての基本的機能はほぼ完成をみたといえる。

3.SQL Server データベースファイルとは

SQL Server データベースファイルは Microsoft SQL Server のデータベースの実体で、拡張子が .mdf のデータベースファイルと .ldf のログファイルで構成される。このデータベースはファイルであり、SQL Server のような DBMS に管理されないデータベースファイルだが、SQL Server と同じテーブルやビューを持ち、トリガや関数などを SQL Server と同じ技術で開発できる。ストアドプロシージャも利用できる。SQL Server データベースファイルは必要があれば既存の SQL Server にアタッチすることで管理下におくことができ、デタッチで切り離すことができる。この SQL Server データベースファイルは Microsoft Visual Studio 2015 による C# アプリケーション開発において、シームレスに管理でき、アプリケーションに組み込むことができるため、アプリケーションの組み込みデータベースとして利用しやすい。

4.システムの概要

これから作るシステムは、学校全体で使うマルチユーザーのクライアントサーバー型ではなく、あくまでも教務部長としての私が成績会議の資料を作るために効率化することを当面の目的とする。

(1)生徒名簿やクラスごとの講座情報と成績入力できるデータをあらかじめ用意しておく。
(2)期末考査の後に各授業担当者から出された成績伝票から教務部長が出欠と評価を入力する。
(3)成績会議に応じたデータを抽出して成績会議資料が作成できる。

これらの処理がコンピュータでできれば、期末考査の後に成績伝票が集まると、次の日にでも成績会議を開くことができるようになる。また成績データを集約すれば、帳票さえデザインすれば通知表やクラスごとの生成期一覧表も作成できるようになるだろう。さらにクライアントサーバー型にすれば、そもそも成績伝票を作成する時点で各先生方に成績入力をシステム上で行ってもらうことにできる。そういった展開を視野に入れながら、当面はスタンドアロンのパソコン上で動く Windows Forms アプリケーションを開発する。

SQL Serverの実習につかいたい、ECS 超小型 Bay Trail-M 搭載デスクトップ LIVA-C0-2G-64G-W

leave a comment »

これを見つけたのはソフマップの店頭だった。実習用のネットワークでサーバーとして働く小型のコンピュータを探していたところ、みつけた。

IMG_8431_mid_640_480

これにSQL Serverをインストールし、勉強会の実習でいつでも使えるようにしておきたい。とにかく、小型で軽いことが特徴だ。スペックは、Intel Bay Trail-M SoC Celeron N2807搭載、最大TDPわずか4.3Wでファンレス設計による完全無音動作。MMC64GBストレージ、容量2GBの低電圧DDR3Lメモリ内蔵、Wi-Fi 802.11a/b/g/n、Bluetooth 4.0標準搭載、本体重量約190g、筐体容積0.4リットル、最大消費電力約14.9Wという圧倒的な省電力性能によりACアダプタで動作。HDMI、D-sub同時出力、マルチモニタに対応、USB 3.0×1、USB 2.0×1、ギガビットLANポート×1搭載、5V/Micro USB形状の電源コネクタを採用。とても斬新な設計だ。

本体パネルの手前には、電源ボタンとイヤホンジャックのみがある。合理的なデザインだ。その他のコネクタは、すべて後ろ側のパネルにまとめられている。

IMG_8435_mid_640_480

IMG_8434_mid_640_480

大きさは、まさに「手のひらサイズ」だ。片手で楽々つまめる大きさで、しかも軽い。本体がプラスチックでできているために、とても軽い。ファンレスであることも軽量化に寄与している。

IMG_8433_mid_640_480

質量を測ってみよう。手持ちのキッチンスケールに載せて重さを測定する。小型のキッチンスケールにも十分乗る大きさだ。実測値は188g。

IMG_8438_mid_640_480

IMG_8439_mid_640_480

電源供給がmicro USBであるところも面白い。専用のACアダプターが同梱されているが、使うことはないだろう。micro USBならどこででも給電できる環境があるからだ。

久しぶりにレビューしたい面白いコンピュータに出会ったが、実際これにどんなOSをインストールするかだ。本来はデスクトップPCとして使うように設計されているようだが、できればWindows Serverをインストールし、SQL Serverを動かしてみたい。そうすれば実習環境で使える便利なサーバーになるからだ。