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

InfoPath & SQL Server !

Archive for the ‘システム管理’ Category

2019年5月18日(土) – 第2回神戸SQL Serverラボ – 神戸SQL Server User Group

leave a comment »

2019年4月から毎月定期開催で「神戸SQL Serverラボ」と題したSQL Serverの勉強会を始めました。場所は神戸三ノ宮駅から徒歩約5分の便利な場所にある、神戸青少年会館をお借りし、毎回テーマを決めて、初心者がSQL Serverデータベースの運用ができることを目指します。また経験者の方にも、それぞれお持ちのノウハウを交流できる場になれば幸いです。

<追記>
第2回からネットワーク環境で SQL Server を利用できるようにします。LAN ポートで有線接続できるか、WiFi 機能を持った PC をお持ちいただければ SQL Server をインストールしなくとも管理ツール SSMS だけ設定すれば実習ができます。用意する SQL Server のバージョンは SQL Server 2014 と SQL Server 2017 です。

場所:神戸青少年会館(神戸市勤労会館の5階6階です)
神戸市中央区雲井通5丁目1番2号 34.694927, 135.197403
kobeshiseishounenkaikan_map bingmapで表示
神戸市青少年会館のアクセスページ
日時:毎月第3土曜日 18:00~19:30

第2回 2019年5月18日(土)18:00~19:30
「テーブル作成、データ型、主キー、テーブル作成とSQL文」
データベースの作成とテーブル作成について実習します。実習の中でデータを一意に管理するテーブルの主キーについてや、Accessの「オートナンバー型」のようにデータに自動的に連番を与える方法、テーブル作成を SQL 文で行う方法などを体験的に身に着けます。
場所:神戸青少年会館 サークル4号室(神戸市勤労会館の6階です)

申し込み方法:電子メールまたはconnpassで
電子メール:kobesqlserverlabo@matsumotoyoshio.net
電子メールのタイトル:第2回20190518神戸SQL Serverラボに参加します
電子メールの本文:お名前、所属をお書きください。
connpassでの申し込み:https://connpass.com/event/130009/
運営費:500円

(定期開催の予定)

第1回 2019年4月27日(土)18:00~19:30(終了しました)
「SQL Serverのインストールと管理ツールManagement Studioの基本操作」

第2回 2019年5月18日(土)18:00~19:30
「テーブル作成、データ型、主キー、テーブル作成とSQL文」

第3回 2019年6月15日(土)18:00~19:30
「ビューによるデータ操作、射影、選択、結合」

第4回 2019年7月20日(土)18:00~19:30
「関数によるデータ処理、ユーザー定義関数の作成と利用」

第5回 2019年8月17日(土)18:00~19:30
「トリガによるデータ処理の自動化」

第6回 2019年9月21日(土)18:00~19:30
「ストアドプロシージャの作成と利用」

※第7回以降の予定は決定次第ここにご案内します。

2019年5月1日

松本 吉生(まつもとよしお)

Microsoft MVP Data Platform
京都に生まれ、神戸で幼少期を過ごす。大学で応用化学を学んだのち、理科教諭として高等学校に勤務する。教育の情報化が進む中で校内ネットワークの構築運用に従事し、兵庫県立明石高等学校で文部科学省の「光ファイバー網による学校ネットワーク活用方法研究開発事業」に携わる。兵庫県立西宮香風高等学校では多部制単位制の複雑な教育システムを管理する学籍管理データベースシステムをSQL ServerとInfoPath、AccessなどのOfficeソフトウエアによるOBA開発で構築・運用する。2015年から2017年まで兵庫県立神戸工業高等学校でC#プログラミング、IoTなどのコンピュータ教育を行い、現在は兵庫県立神戸甲北高等学校に勤務する。2004年からマイクロソフトMVP(Microsoft Most Valuable Professional)を受賞し、現在15回目の連続受賞。2016年にマイクロソフト認定教育者(Microsoft Innovative Educator Experts : MIEE)を受賞し、現在4回目の連続受賞。

広告

2019年度毎月定期開催 – 神戸SQL Serverラボ – 神戸SQL Server User Group

leave a comment »

2019年4月から毎月定期開催で「神戸SQL Serverラボ」と題したSQL Serverの勉強会を始めます。場所は神戸三ノ宮駅から徒歩約5分の便利な場所にある、神戸青少年会館をお借りし、毎回テーマを決めて、初心者がSQL Serverデータベースの運用ができることを目指します。また経験者の方にも、それぞれお持ちのノウハウを交流できる場になれば幸いです。

場所:神戸青少年会館(神戸市勤労会館の5階6階です)
神戸市中央区雲井通5丁目1番2号 34.694927, 135.197403
kobeshiseishounenkaikan_map bing mapで表示
神戸市青少年会館のアクセスページ
日時:毎月第3土曜日(4月のみ第4土曜日) 18:00~19:30

第一回 2019年4月27日(土)18:00~19:30
「SQL Serverのインストールと管理ツールManagement Studioの基本操作」
場所:神戸青少年会館 サークル4号室(神戸市勤労会館の6階です)

申し込み方法:電子メールまたはconnpassで
電子メール:kobesqlserverlabo@matsumotoyoshio.net
電子メールのタイトル:第一回20190427神戸SQL Serverラボに参加します
電子メールの本文:お名前、所属をお書きください。
connpassでの申し込み:https://connpass.com/event/128749/
運営費:500円

第二回 2019年5月18日(土)18:00~19:30
「テーブル作成、データ型、主キー、テーブル作成とSQL文」

第三回 2019年6月15日(土)18:00~19:30
「ビューによるデータ操作、射影、選択、結合」

第四回 2019年7月20日(土)18:00~19:30
関数によるデータ処理、ユーザー定義関数の作成と利用」

第五回 2019年8月17日(土)18:00~19:30
「トリガによるデータ処理の自動化」

第六回 2019年9月21日(土)18:00~19:30
「ストアドプロシージャの作成と利用」

※第七回以降の予定は決定次第ここにご案内します。

2019年4月20日

松本 吉生(まつもとよしお)

Microsoft MVP Data Platform
京都に生まれ、神戸で幼少期を過ごす。大学で応用化学を学んだのち、理科教諭として高等学校に勤務する。教育の情報化が進む中で校内ネットワークの構築運用に従事し、兵庫県立明石高等学校で文部科学省の「光ファイバー網による学校ネットワーク活用方法研究開発事業」に携わる。兵庫県立西宮香風高等学校では多部制単位制の複雑な教育システムを管理する学籍管理データベースシステムをSQL ServerとInfoPath、AccessなどのOfficeソフトウエアによるOBA開発で構築・運用する。2015年から2017年まで兵庫県立神戸工業高等学校でC#プログラミング、IoTなどのコンピュータ教育を行い、現在は兵庫県立神戸甲北高等学校に勤務する。2004年からマイクロソフトMVP(Microsoft Most Valuable Professional)を受賞し、現在15回目の連続受賞。2016年にマイクロソフト認定教育者(Microsoft Innovative Educator Experts : MIEE)を受賞し、現在4回目の連続受賞。

校務支援システムの更新 – 02 – 既存システムからエクスポートしたデータを加工してはいけない – そのままインポートできるように SQL Server のテーブル設計をしよう

leave a comment »

sql_server_management_studio_001_mid_640_480

学校の校務支援システムの運用には様々な課題があるが、とりわけ大きい課題がシステム移行時に発生する。既存システムから生徒の氏名住所などの基本情報や、履修情報、成績情報を新システムに移行しなければならないが、その作業と責任は、そのときの学校の担当教員に負わせられることとなる。既存システムの業者も、新システムの業者も、一定の技術情報は提供しても作業に関してはどちらも助けてはくれない。

学校として学籍管理のデータを扱う場合、管理の手法はシステムによって異なる。生徒の氏名や住所、生年月日などの基本データに大きな違いはないだろうが、教科科目の情報、成績管理の手法はシステムによって違いが大きいと考えられる。既存のシステムからエクスポートしたデータを新システムでそのまま使えるとは考えにくい。

そこでデータ処理をする必要がおこるが、業者がデータ移行ツールなどを用意することはない。そこでデータ移行においてデータ処理をする必要が生じるが、これをエクセルなどの表計算ソフトで行うと重大な間違いがおこる危険がある。また一度で完全に移行できることも考えにくいので、ある程度の試行錯誤が必要となる。そのたびに表計算ソフトでデータ加工をしていては手間がかかりすぎ、また事故がおこる危険が大きい。

そこで SQL Server にデータを読み込んで処理することが最も正しい解決策だ。できれば既存システムから SQL クエリによってデータを読み出したいところだが、それができなければ何らかの形でデータをエクスポートすることになるだろう。多くのシステムでエクセルや CSV の形式でデータを取り出すことができるようになっているはずだ。

sql_server_management_studio_006_mid_640

このとき、既存システムで使われるフィールドと新システムで使われるフィールドに違いがあったとき、これを表計算あるいは CSV のデータ上で加工してはいけない。もし新システムで使わないデータフィールドがあったとき、心情的にはデータを切り捨ててインポートしたい欲求は理解できる。余計なフィールド設定をせずに済ませたいだろうからだ。

またフィールド名を修正したい欲求にもかられる。しかしエクスポートしたデータを手作業で加工してはいけない。既存システムからエクスポートしたデータは、そのまま SQL Server にインポートできるようにテーブルを作っておくべきだ。

sql_server_management_studio_003_mid_640_480

データの移行は一回で終わることは、まず、ない。既存システムのデータを新システムにインポートするには、何度かの試行錯誤が必要となるはずだ。またすべてのデータを一度に移行しようとして間違いがあれば修正も困難になる。小さなデータを試験的に移行しながらチェックを繰り返し、うまく移行できることを確かめてから全部のデータを移行するだろう。

このとき、エクスポートしたデータを手作業で加工する工程を挟むと、そのたびに手作業が必要となる。手作業には誤りがつきまとい、とりわけ同じ作業を何度も繰り返していると誤る危険性が高くなる。

新システムで使わないフィールドの設定はせずに済ませたい、おかしなフィールド名は修正したい気持ちになることは理解できるが、ここで手間を惜しまず、エクスポートしたデータは無修正でそのままインポートできるように SQL Server のフィールド設計をしよう。

2019年1月2日

松本 吉生(まつもとよしお)

Microsoft MVP Data Platform
1961年京都に生まれ、神戸で幼少期を過ごす。大学で応用化学を学んだのち、理科教諭として高等学校に勤務する。教育の情報化が進む中で校内ネットワークの構築運用に従事し、兵庫県立明石高等学校で文部科学省の「光ファイバー網による学校ネットワーク活用方法研究開発事業」に携わる。兵庫県立西宮香風高等学校では多部制単位制の複雑な教育システムを管理する学籍管理データベースシステムをSQL ServerとInfoPath、AccessなどのOfficeソフトウエアによるOBA開発で構築・運用する。2015年から2017年まで兵庫県立神戸工業高等学校でC#プログラミング、IoTなどのコンピュータ教育を行い、現在は兵庫県立神戸甲北高等学校に勤務する。2004年からマイクロソフトMVP(Microsoft Most Valuable Professional)を受賞し、現在15回目の連続受賞。2016年にマイクロソフト認定教育者(Microsoft Innovative Educator Experts : MIEE)を受賞し、現在4回目の連続受賞。

校務支援システムの更新 – 01 – データ移行は現場教員の責任となる – データ移行作業は SQL Server を使おう

leave a comment »

高等学校の成績処理などにデータベースを使うようになったのは、単位制や総合学科など講座の選択肢が多い学校ができてからだ。基本的にクラス単位で授業を行う普通科高校では、出欠や成績の管理にデータベースを使う必要はなかった。クラス単位で紙ベースの出席簿や成績伝票での処理で十分だったからだ。しかし生徒が多くの講座に分かれて受講する単位制や総合学科の高校では、紙ベースの処理が不可能だ。

筆者も他部制単位制の兵庫県立西宮香風高校に勤務したとき、SQL Server を使った校務支援システムを作り運用した。多くの単位制や総合学科の学校で業者と契約して作られたシステムを運用していたが、新しいタイプの他部制単位制高校に合うシステムはなかったからだ。

近年、単位制や総合学科ではない普通科の高校でも校務支援システムを導入する動きがある。それは普通科の学校でも多様な選択肢を用意した選択講座のカリキュラムを拡大することも背景にある。契約や運用の面からクラウドベースの統一システムを都道府県単位で一括契約するケースも増えてきた。

このような校務支援システムの運用にはいろいろな課題があるが、システム更新のときに大きな課題がある。別システムへの更新時に、過去のデータを移行する作業が必要となるのだ。このデータ移行の作業は現場の教員にまかされる。既存システムの業者も、新しいシステムの業者も、どちらも何もしない。責任もとらない。

データの移行は、そのときの担当教員にとって大きな責任を負わせられるものとなる。在校生の成績データを一つ残らず完全に新システムに移行しなければならない。この作業をエクセルなどでやっていては大きな間違いがおきる危険性がある。データ移行の作業は SQL Server を使うことが最も良い。

sql_server_management_studio_001_mid_640_480

既存システムのテーブルにあわせて SQL Serever にテーブルを作る。既存システムからエクセル形式や CSV 形式でエクスポートしたデータを一括で SQL Server に読み込む。例えば高等学校の校務支援システムでは中学校情報を管理するが、中学校コードは既存システムと新システムで異なることがあるだろう。このとき、まず既存システムの中学校コードと新システムで利用するコードを一括で SQL Server に読み込んでおく。

sql_server_management_studio_002_mid_640_480

sql_server_management_studio_003_mid_640_480

sql_server_management_studio_004_mid_640_480

そして既存システムのコードと新システムのコードを関連付けたビューを作り、これを他の情報と関連させる。

sql_server_management_studio_005_mid_640_480

SQL Server で一元的にデータ処理を行うことで、間違いのないコード変換処理をすることができる。SQL Server で正しい変換テーブルとビューを作っておけば、既存システムからのデータ移行作業を手間なく、そして誤りなく何度もテストし確かめることができる。

2019年1月1日

松本 吉生(まつもとよしお)

Microsoft MVP Data Platform
1961年京都に生まれ、神戸で幼少期を過ごす。大学で応用化学を学んだのち、理科教諭として高等学校に勤務する。教育の情報化が進む中で校内ネットワークの構築運用に従事し、兵庫県立明石高等学校で文部科学省の「光ファイバー網による学校ネットワーク活用方法研究開発事業」に携わる。兵庫県立西宮香風高等学校では多部制単位制の複雑な教育システムを管理する学籍管理データベースシステムをSQL ServerとInfoPath、AccessなどのOfficeソフトウエアによるOBA開発で構築・運用する。2015年から2017年まで兵庫県立神戸工業高等学校でC#プログラミング、IoTなどのコンピュータ教育を行い、現在は兵庫県立神戸甲北高等学校に勤務する。2004年からマイクロソフトMVP(Microsoft Most Valuable Professional)を受賞し、現在15回目の連続受賞。2016年にマイクロソフト認定教育者(Microsoft Innovative Educator Experts : MIEE)を受賞し、現在4回目の連続受賞。

ほっともっとで弁当を注文しながら「ソフトウエア職人気質」の一節を思い出す

leave a comment »

P1690034_mid_640_480

ピート・マクブリーン Pete McBreen 著、村上雅章訳でピアソン・エデュケーションから Professional Computing Series の別巻7として出版された「ソフトウエア職人気質 Software Craftsmanship – The New Imperative」は2002年3月の出版であり、もはや16年前の書籍になるが、いま読んでも示唆に富む本だ。このことは逆に日本のソフトウエア産業が足踏みしたままであることも示している。情報教育、プログラミング教育に携わりながら教務システムの内製を経験した私は、常にプログラミングと価値の創造について考えているが、今日たまたま近所のほっともっとで昼食の弁当を買いに行ったとき、レジでの注文のあとぼんやりと弁当が出来上がるのを待ちながらこの本の一節を思いだした。

P1690038_mid_640_480

いま年の瀬も押し迫った12月末だが、たとえば客に「年末年始の営業日はいつもと同じか」と聞かれたとしよう。「少々お待ちください」と言いスケジュール表を見るようでは優れたレジ係とは言えない。この時期だから、もしかしたら客からこのような質問があるかもしれないと思い、あらかじめ店舗スケジュールを頭に入れておくはずだ。そうすれば即座に返答ができるだろう。レジ係は客の注文を受け、代金をもらい、厨房に注文を出し、できた弁当を客に渡すという仕事だが、このルーチンだけできればいいというものではない。

「ソフトウエア職人気質」には「顧客の利益はソフトウエア職人の利益と一致する」の節があり、こう書かれている。「顧客は、優れたソフトウエアを望んでいます。そしてソフトウエア職人は、誇りに思え、自分の評判を支える優れたソフトウエアを作り出したいと考えています。こういった相互利益の一致によって、顧客とソフトウエア職人のより良い関係を築き上げることができるわけです。」

優れたレジ係の利益は客の利益と一致する。ソフトウエア開発者があらかじめ調整された仕様書だけを頼りにして開発する時代が終わったように、レジ係もマニュアル通りの注文、集金業務だけしていればよい時代も終わったのだろう、などとぼんやり思う年の瀬である。

情報システムは内製することにより果実を得ることができる – 価値を生み出すのは「人」である

leave a comment »

情報システムは外注せず内製してこそ意味がある。その根本的な理由は、価値は人が生み出すものだからだ、ということだ。多くの組織はこのことを忘れ、人が生み出す価値を得ることなく金で解決しようとする。

先日こんな話を聞いた。知人が務める企業の顧客向けシステム、それは Web ベースのシステムで外注によって作られたものだが、元号が変わることで対応が必要となり、おおむね1億円の費用が必要だと言われているらしい。もしあなたが経営者だとして、この経費についてどのように考えるだろうか。払うのはあなただ。この経費が妥当なものか判断しなければならない。相手は誠実に正しい見積もりを提示しているのか、それとも足元をみてふっかけているのか。あるいはこの際、システムを別の業者に変えて作り直すことが良いのか。判断の材料は何だろう。自分に判断の材料がないならコンサルタントにアドバイスを求めるだろうか。俺ならこう思う。いまどき元号の変更に対応できないシステムは糞だ。よほどぼんくらなエンジニアでなければ、一瞬で新元号に対応できるように最初からシステムを作っているはずだ。ではなぜ1億円などという値をふっかけてきたのか。その業者は金を出せる顧客から取り、それを資金としてシステムの抜本的再構築を狙っているのだろう。そして他の顧客にはそこそこの値段で利用させる。システムを開発するには資金が必要だが、一度開発したシステムは売れば売るほどもうかる仕掛けになっている。ソフトウエアとはそういうものだ。

もうひとつの話がある。プログラマーを養成する学校の経営者とディスカッションしたときのことだ。日本では情報システムは外注することが多いが、欧米では外注がなくなりつつあり、およそ80%は内製によって運用されているらしい。そこで学校のプログラマーの養成カリキュラムも今後はシステムを売るSI屋向けではなく内製技術者として養成するものに変えていこうと考えている。なぜ情報システムが外注から内製に変わっているかというと、今の時代は情報システム自体が企業の根幹をなし価値を生むものであるから、外注することは価値を流出させてしまうという発想があるという。欧米では情報システムの80%が内製である、ということが事実かどうか俺に判断はできないが、情報システムは価値を生むものであるという視点は疑いようのない事実だ。

これらの話から得られる教訓は、プログラミングによって得られる果実を我が物にすることができるのは誰かということになる。改めていうまでもなく、優れた情報システムは大きな価値を生む。業務の流れを整理し、自動化し、間違いをなくし、定型業務を軽減して人のクリエイティブな時間を増やすことができる。さらに新しい発想で事業を行い、今までにないビジネスモデルを生み出すこともできる。そして情報システムを作るのはコンピュータではなくプログラマーだということだ。価値を生み出すのは人である。

システムを外注するということは、価値を生み出すプログラマーが外注先のシステム会社にいる。したがってプログラマーが生み出す果実を得るのはシステム会社だ。しかしシステムを内製すれば、プログラマーは社内にいることになり、果実を得るのは自社である。要するに、価値を生み出す人間を擁することが会社の発展につながるという極めて単純な構造である。ただ難しいのは、いまは多くの経営者にとってプログラミングとは何かがわからないために、プログラミングは特殊な能力を持つ天才にしかできないことだと思われたり、優れたプログラマーを雇うことの意味がわからないことだ。だからこそ、明日を担うすべての子供たちに質の高いプログラミング教育をしなければならない。日本の社会を担うあらゆる階層のリーダーがプログラミングについての知識を持たなければ、ハイエナのような反日外資に価値をさらわれ続ける暗黒の未来が待っている。

2017年12月27日

松本 吉生(まつもとよしお)
Microsoft MVP Data Platform

1961年京都に生まれ、神戸で幼少期を過ごす。大学で応用化学を学んだのち、理科教諭として高等学校に勤務する。教育の情報化が進む中で校内ネットワークの構築運用に従事し、兵庫県立明石高等学校で文部科学省の「光ファイバー網による学校ネットワーク活用方法研究開発事業」に携わる。兵庫県立西宮香風高等学校では多部制単位制の複雑な教育システムを管理する学籍管理データベースシステムをSQL ServerとInfoPath、AccessなどのOfficeソフトウエアによるOBA開発で構築・運用する。現在は兵庫県立神戸工業高等学校でC#プログラミング、IoTなどのコンピュータ教育を行う。2004年からマイクロソフトMVP(Microsoft Most Valuable Professional)を受賞し、現在14回目の連続受賞。2016年にマイクロソフト認定教育者(Microsoft Innovative Educator Experts : MIEE)を受賞。

C# – 教科「情報」の授業で使うタイピングトレーニングのソフトを作っています。その 5。ユーザー ID を Active Directory から取得するようにした。

leave a comment »

教科「情報」の授業でタイピングソフトを自作して生徒実習をしている。このねらいは 2 つある。ひとつは、実際に使いやすいソフトウエアを使いたい、ということがある。特に生徒の実習データを Microsoft Flow に送信して集計しやすくする、ということがある。もう一つの目的は、ソフトウエア開発の実際を生徒に見せたい、ということだ。

いわゆる「ウォーターフロー型」の開発には限界があることが多く指摘されている。現代的なソフトウエア開発環境を最大限に活用するには、アジャイルと呼ばれる開発スタイルが望ましい。そこで教科「情報」の授業で自分が作ったソフトウエアを生徒に使わせながら、問題点や改善点を指摘させて次のバージョンに適用する、という手法でソフトウエア開発の実際を間接的に体験させるのだ。

そのためには、最初から完成されたソフトウエアを使わさない。最初はごく基本的な仕組みだけ作ったソフトウエアを使わせ、問題点や改善点を指摘することを演習とする。

様々な意見が生徒から出て興味深いのだが、これはまた別項でまとめることにする。今回のマイナーバージョンアップでは「学籍番号を入力するのが面倒だ」と「学籍番号を全角で入力してしまう間違いがおこる」ことを回避することを考えた。これは、システム管理をやっている者には常識的な実装になるが、ユーザー ID を Active Directory から取得することだ。これは一行のコードで実現できる。

——————————————————————————————-

myUserName = Environment.UserName;

——————————————————————————————-

そして取得したユーザー ID を gakuseID テキストボックスに表示する。

——————————————————————————————-

gakuseID.Text = myUserName;

——————————————————————————————-

ちゃんと取得することが確認できれば、学籍番号のテキストボックスの Enabled プロパティを false にし、書き換えられないようにする。

——————————————————————————————-

gakuseID.Enabled = false;

——————————————————————————————-

これで学生番号は間違いなく処理されるようになる。

2017年6月16日

松本 吉生(まつもとよしお)
Microsoft MVP Data Platform

1961年京都に生まれ、神戸で幼少期を過ごす。大学で応用化学を学んだのち、理科教諭として高等学校に勤務する。教育の情報化が進む中で校内ネットワークの構築運用に従事し、兵庫県立明石高等学校で文部科学省の「光ファイバー網による学校ネットワーク活用方法研究開発事業」に携わる。兵庫県立西宮香風高等学校では多部制単位制の複雑な教育システムを管理する学籍管理データベースシステムをSQL ServerとInfoPath、AccessなどのOfficeソフトウエアによるOBA開発で構築・運用する。現在は兵庫県立神戸工業高等学校でC#プログラミング、IoTなどのコンピュータ教育を行う。2004年からマイクロソフトMVP(Microsoft Most Valuable Professional)を受賞し、現在14回目の連続受賞。2016年にマイクロソフト認定教育者(Microsoft Innovative Educator Experts : MIEE)を受賞。