<feed version="0.3" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns="http://purl.org/atom/ns#" xml:lang="ja-JP"><title>ホチキス先生</title><link rel="alternate" type="text/html" href="http://blogs.sqlpassj.org/hotikisu/" /><tagline type="text/html">プログラマーと呼ばれたい</tagline><id>http://blogs.sqlpassj.org/hotikisu/</id><author><name>ホチキス先生</name><url>http://blogs.sqlpassj.org/hotikisu/</url></author><generator url="http://scottwater.com/blog" version=".Text Version 0.95.2004.102">.Text</generator><modified>2008-08-29T15:14:54Z</modified><entry><title>TechEd 2008 Yokohama - Day 3 - 2 - T2-304「一歩進んだVisual C#活用術」 </title><link rel="alternate" type="text/html" href="http://blogs.sqlpassj.org/hotikisu/archive/2008/08/29/25514.aspx" /><id>http://blogs.sqlpassj.org/hotikisu/archive/2008/08/29/25514.aspx</id><created>2008-08-29T15:15:00Z</created><issued>2008-08-29T06:15:00+09:00</issued><modified>2008-08-29T15:15:00Z</modified><content type="text/html" mode="escaped">&lt;P&gt;このセッションでは、バージョン1から2.0、3.0と進化してきたC#で、C#2.0、.NET Framework 2.0、.NET Framework 3.0で実装された「ジェネリック」と「反復子」、C#3.0、.NET Framework 3.5で実装された「クエリ式」、「ラムダ式」について解説された。&lt;/P&gt;
&lt;P&gt;これらの実装についての背景や実際の使用例、それによって得られる恩恵、制約や留意点など具体的な細かい説明がなされた。C#プログラミングについては、簡単な経験があるだけの私には難しいセッションだったが、プロのC#プログラマーには興味深く役に立つセッションであったと思う。&lt;/P&gt;&lt;img src ="http://blogs.sqlpassj.org/hotikisu/aggbug/25514.aspx" width = "1" height = "1" /&gt;</content><wfw:comment>http://blogs.sqlpassj.org/hotikisu/comments/25514.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.sqlpassj.org/hotikisu/comments/commentRss/25514.aspx</wfw:commentRss><trackback:ping>http://blogs.sqlpassj.org/hotikisu/services/trackbacks/25514.aspx</trackback:ping></entry><entry><title>TechEd 2008 Yokohama - Day 3 - 1 - T3-313「ここまできた！Microsoftが提供する新しいVoice」</title><link rel="alternate" type="text/html" href="http://blogs.sqlpassj.org/hotikisu/archive/2008/08/28/25507.aspx" /><id>http://blogs.sqlpassj.org/hotikisu/archive/2008/08/28/25507.aspx</id><created>2008-08-28T13:30:00Z</created><issued>2008-08-28T04:30:00+09:00</issued><modified>2008-08-28T13:30:00Z</modified><content type="text/html" mode="escaped">&lt;P&gt;このセッションは、Microsoft Office Communication Server 2007、略称OCS 2000を利用し、PCを使った電話やビデオ会議などのコミュニケーションを、既存の社内電話網に置き換える、あるいは共用することを説明したものだ。&lt;/P&gt;
&lt;P&gt;個人レベルでは自宅のIP電話や、Skypeなど従来のいわゆる「電話」でないものを利用するケースは徐々に増えているが、これを会社レベルで行おうとすると簡単ではない。しかしこのOCS 2000を利用すると、社内の電話交換機PDXを完全になくして置き換えることができるという、自信満々のセッションだった。&lt;/P&gt;
&lt;P&gt;しかしMicrosoftがOCSでやろうとしていることは単に電話を置き換えるだけではなくて、電子メールやメッセンジャーといったPCベースのコミュニケーションを統一的に扱えるようにする、というものだ。これによって人と人とのコミュニケーションの取り方を便利にする、というものだ。&lt;/P&gt;
&lt;P&gt;OCS 2007の主な機能は3つある。ひとつは「プレゼンス、インスタントメッセージ」である。これは一般に「メッセンジャー」と呼ばれるコミュニケーションツールの機能で、相手がPCの前にいるのかいないのか、いるとしてメッセージを受け取ることができる状態にあるのかないのか、などのリアルタイムの状況を通信し、簡単なメッセージをやりとりできる機能をさしている。もうひとつは「カンファレンス機能」で、これはいわゆる「テレビ電話」あるいは「ビデオ会議」を実施する機能。最後に「コールルーティング」の機能で、これは外線発着信機能、一般の固定電話との接続機能である。これら3つの機能が有機的に実装されて、全体として新しいコミュニケーションのスタイルができあがる。&lt;/P&gt;
&lt;P&gt;セッションでは、このコミュニケーションの実際をイメージできるビデオが流された。ここではあるメーカーが年末商戦にむけてデジタルカメラの独自デザインモデルを開発して販売会社へ納入するという企画を、担当者が2週間で社内の各部署に働きかけてまとめるというストーリーだった。そこでは忙しい上司に説明するための時間をメッセンジャーでアポイントをとったり、製造ラインである中国の担当者とUSの間でテレビ会議を行うなどのシーンがあった。&lt;/P&gt;
&lt;P&gt;デモでは実際にOCS 2007を構築した環境で、3人のユーザー間で電話やメッセージをやりとりすることが行われた。電話番号の管理はActiveDirectoryに登録されており、届いた電子メールから電話をかけること、PCに着信した電話には電子メールの件名が表示され、どんな内容の電話かを出る前に知ることができること、自分のPCに着信する電話を固定電話にも着信させ、どちらでとっても会話ができること、などが示された。確かに電子メールと電話との組み合わせは便利で、電話の概念も変わるのではないかという気がする。&lt;/P&gt;
&lt;P&gt;特に面白かったのは、Exchange Serverを組み合わせたシステムで、Exchange Server 2007を使えば、Outlook Voice Accessという機能が使えるようになる。これはExchange Server 2007に電話番号を与えて、そこに電話をすれば、自分に届いた電子メールのメッセージを音声で読み上げてくれるものだ。また電子メールだけではなくて、スケジュールを読み上げることもでき、会議に遅刻するときは遅刻する時間を電話から伝えることもできる。遅刻すると伝えると、会議の参加者全員に電子メールが送信される。私の父は全盲でパソコンを使って電子メールのやりとりもしているが、目の不自由な人にとっても、これはとても便利なサービスになるに違いない。&lt;/P&gt;&lt;img src ="http://blogs.sqlpassj.org/hotikisu/aggbug/25507.aspx" width = "1" height = "1" /&gt;</content><wfw:comment>http://blogs.sqlpassj.org/hotikisu/comments/25507.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.sqlpassj.org/hotikisu/comments/commentRss/25507.aspx</wfw:commentRss><trackback:ping>http://blogs.sqlpassj.org/hotikisu/services/trackbacks/25507.aspx</trackback:ping></entry><entry><title>TechEd 2008 Yokohama - Day 2 - 4 - ライトニングトーク第2日目</title><link rel="alternate" type="text/html" href="http://blogs.sqlpassj.org/hotikisu/archive/2008/08/28/25503.aspx" /><id>http://blogs.sqlpassj.org/hotikisu/archive/2008/08/28/25503.aspx</id><created>2008-08-28T09:01:00Z</created><issued>2008-08-28T00:01:00+09:00</issued><modified>2008-08-28T09:10:00Z</modified><content type="text/html" mode="escaped">&lt;P&gt;1日目のライトニングトークも盛況だったが、2日目はさらに満員の参加者だった。座席は満席、立ち見の人もいるほどだった。&lt;/P&gt;
&lt;P&gt;どの発表も貴重なTipsや重要な情報、今まで気づかなかったことなど有意義な内容だった。5分という短い時間でのプレゼンのまとめ方も素晴らしい。&lt;/P&gt;
&lt;P&gt;昨日と同様8人のスピーカーによる発表が行われたが、最後の発表「AJAX Control Toolkitのカレンダーコントロールを完全日本語化～JavaScriptコードを実行時に動的ハック～」では、その手法を見せられた時、会場から「おー」というどよめきがおこるほどのインパクトあるものだった。&lt;/P&gt;
&lt;P&gt;個人的には「Popfly Game Creator～そこに未来の開発環境を見た～」がいちばんよかった。PopflyはすべてWeb上で完結するSilverlightベースのゲーム開発ツールで、ブラウザでキャラクターオブジェクトのデザインや動作を設定し、Webベースのゲームを作ることができるツールだ。発表者の方もおっしゃっていたが、アルゴリズムなど「情報」教育の授業で利用することができるだろう。&lt;/P&gt;&lt;img src ="http://blogs.sqlpassj.org/hotikisu/aggbug/25503.aspx" width = "1" height = "1" /&gt;</content><wfw:comment>http://blogs.sqlpassj.org/hotikisu/comments/25503.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.sqlpassj.org/hotikisu/comments/commentRss/25503.aspx</wfw:commentRss><trackback:ping>http://blogs.sqlpassj.org/hotikisu/services/trackbacks/25503.aspx</trackback:ping></entry><entry><title>TechEd 2008 Yokohama - Day 2 - 3 - T4-307「次世代Forefrontコードネーム"Stirling"のご紹介」 </title><link rel="alternate" type="text/html" href="http://blogs.sqlpassj.org/hotikisu/archive/2008/08/28/25500.aspx" /><id>http://blogs.sqlpassj.org/hotikisu/archive/2008/08/28/25500.aspx</id><created>2008-08-28T01:17:00Z</created><issued>2008-08-27T16:17:00+09:00</issued><modified>2008-08-28T01:17:00Z</modified><content type="text/html" mode="escaped">&lt;P&gt;"Stirling"は「スターリン」と発音するようで、これはかつてのソビエト社会主義共和国連邦の指導者「ヨシフ・スターリン」を連想させるが、こちらの英語表記は"Stalin"である。次に連想するのは、スコットランドの牧師で「スターリング・エンジン」を発明した「ロバート・スターリング」であり、こちらの綴りは"Stirling"と同じだ。&lt;/P&gt;
&lt;P&gt;現時点のForefront製品群は大きく分けて「ネットワークエッジ」と「サーバーアプリケーション」、「クライアント&amp;amp;サーバーOS」の3つに対応するものに分けられる。ネットワークエッジに対応するものは、Intelligent Aplication GatewayとInternet Security &amp;amp; Acceleration Server 2006、サーバーアプリケーションに対応するものは、Forefront Security for Exchange Server、Forefront Security for SharePoint、Forefront Security for Office Communication Server、クライアント&amp;amp;サーバーOSに対応するものは、Forefront Client Securityだ。&lt;/P&gt;
&lt;P&gt;現在、運用管理の工数が増大する原因は、ネットワークエッジやサーバーアプリケーション、エンドポイント、脆弱性検査など個別のセキュリティレイヤーごとに対応しているからである。これら個別の管理にはそれぞれの管理コンソール、それぞれのレポートがあり、これらが運用管理の工数を増やしている。また既存インフラとの統合されていない点にも問題がある。管理者はセキュリティだけ管理するのではなく、通常のインフラサーバーやドメインコントローラー、Exchange、MOSSなどアプリケーションサーバーも管理しなければならない。&lt;/P&gt;
&lt;P&gt;次のForefrontのコードネーム"Stirling"を利用すると、これらインフラの管理を統合することができる。このForefrontはSystem Center Operetion Manager 2007を必要とし、連携して作動する。System Centerが各マシンのイベントを収集し、Forefrontが管理パックを配布する、という役割連携だ。&lt;/P&gt;
&lt;P&gt;Stirlingの3つの特徴として「設定の一元管理」、「インシデントの一元管理」、「ダイナミックレスポンス」がある。設定の一元管理では、ActiveDirectoryに参加していないクライアントも管理できるようになっている。インシデントの一元管理では、各サーバーの攻撃ブロック状況やウィルス対策状況、Windows Firewallによるブロック状況、NAPによる隔離状況などが一元管理できる。これは攻撃と防御の状況を掌握するのに都合がいい。ダイナミックレスポンスでは、攻撃が検出されると自動的に対策がとられ、状況をリアルタイムにつかむことができる機能だ。&lt;/P&gt;
&lt;P&gt;実際のデモで"Stirling"でターゲットグループを作り、ポリシーを作る、そして作ったポリシーをターゲットグループに適用する、という一連の流れを見たが、ActiveDirectoryの管理コンソール風の操作性はたいへんわかりやすいと感じた。&lt;/P&gt;&lt;img src ="http://blogs.sqlpassj.org/hotikisu/aggbug/25500.aspx" width = "1" height = "1" /&gt;</content><wfw:comment>http://blogs.sqlpassj.org/hotikisu/comments/25500.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.sqlpassj.org/hotikisu/comments/commentRss/25500.aspx</wfw:commentRss><trackback:ping>http://blogs.sqlpassj.org/hotikisu/services/trackbacks/25500.aspx</trackback:ping></entry><entry><title>TechEd 2008 Yokohama - Day 2 - 2 - T4-311「System Center &amp; Dynamic IT バードビュー」 </title><link rel="alternate" type="text/html" href="http://blogs.sqlpassj.org/hotikisu/archive/2008/08/28/25499.aspx" /><id>http://blogs.sqlpassj.org/hotikisu/archive/2008/08/28/25499.aspx</id><created>2008-08-28T00:45:00Z</created><issued>2008-08-27T15:45:00+09:00</issued><modified>2008-08-28T00:45:00Z</modified><content type="text/html" mode="escaped">&lt;P&gt;「System Centerバードビュー」として、Syetem Centerの機能を9のステップで説明された。Step1は「ネットワークと認証基盤」で、時代が進化しても認証基盤はActive Directoryであることが強調された。Step2は「ハードウエアの準備」で、これからは個々のサービスやアプリケーションを導入するためにハードウエアを準備するのではなく、仮想化によるシステム全体としてハードウエアを準備しなければならない時代になることが示された。Step3は「ストレージ環境整備」で、仮想化がすすめば、ディスクなどのストレージが重要になってくる、との指摘がされた。&lt;/P&gt;
&lt;P&gt;Step4から具体的な仮想化技術を利用する場面になる。Step4は「構成・構成変更管理」で、OSのインストールやアプリケーション配布、修正プログラム配布だが、これにはConfiguration Managerが対応する。Step5は「仮想インフラ構築」で、用意したサーバーに仮想環境を作成する。これにはVirtual Machine Managerが対応する。Step6は「仮想インフラ集中管理」で、多くの仮想マシンを統合的に管理する。Step7は「稼働監視と情報収集」で、設定されたシステムがちゃんと機能しているのかを監視する。これにはOperation Managerという製品が対応する。Step8は「データ保護」で、これにはData Protection Managerが対応する。&lt;/P&gt;
&lt;P&gt;最後のStep9は「遠隔データ送信」で、災害時などからシステムを保護するために、他拠点にデータセンターを用意しておき、システムやデータのバックアップと復元を行うことだ。&lt;/P&gt;
&lt;P&gt;「Dynamic IT」はMicrosoftのBig Visionである。これは6年前から進められている「Dynamic Systems Initiative」という戦略が進化したもので、ITシステムの管理を効率よくする戦略だ。ITの効率は悪くなるばかりだという。昨年はITに使われる投資の70%が保守と運用管理への投資であり、革新への投資は30%しかない、と分析したが、今年は保守と運用管理への投資が80%、革新への投資は20%と、昨年より悪くなっている。これを逆転しなければならない。&lt;/P&gt;
&lt;P&gt;鍵となる共通定義モデルは、従来はSDMというMicrosoft独自の定義モデルがあったが、これが複数ベンダーで利用できる共通の定義モデルSMLへと進化した。これによってインストールの自動化などが実現できることになり、管理者不要の時代が来るかもしれない。システムインテグレーションのイメージも変わるだろう。現在の運用管理者は、そのような時代が来ることに向き合わなければならない。&lt;/P&gt;
&lt;P&gt;仮想化の技術とモデル化は切り離せない関係にある。なぜなら仮想化によって個々の物理的なマシンの挙動は、モデル化によってしか掌握できないからだ。機能の監視をモデル化によって行わなければ、仮に仮想化を実行する多数の物理サーバーのひとつが故障していても、それを発見することができない、といったことがおこるからだ。&lt;/P&gt;
&lt;P&gt;最後に、「ITはDynamicに進化しつつある。今こそ『ITに何をさせ、人が何をすべきか』を考える時だ」というメッセージでセッションは終了した。&lt;/P&gt;&lt;img src ="http://blogs.sqlpassj.org/hotikisu/aggbug/25499.aspx" width = "1" height = "1" /&gt;</content><wfw:comment>http://blogs.sqlpassj.org/hotikisu/comments/25499.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.sqlpassj.org/hotikisu/comments/commentRss/25499.aspx</wfw:commentRss><trackback:ping>http://blogs.sqlpassj.org/hotikisu/services/trackbacks/25499.aspx</trackback:ping></entry><entry><title>TechEd 2008 Yokohama - Day 2 - 1 - Microsoft Management Summit 2008 japanキーノート「Dynamic IT：仮想化時代のIT運用」</title><link rel="alternate" type="text/html" href="http://blogs.sqlpassj.org/hotikisu/archive/2008/08/28/25498.aspx" /><id>http://blogs.sqlpassj.org/hotikisu/archive/2008/08/28/25498.aspx</id><created>2008-08-28T00:16:00Z</created><issued>2008-08-27T15:16:00+09:00</issued><modified>2008-08-28T00:16:00Z</modified><content type="text/html" mode="escaped">&lt;P&gt;TechEd 2008 Yokohamaの2日目は、午前中に「Microsoft Management Summit 2008 japanキーノート」が行われた。このキーノートでは「Dynamic IT：仮想化時代のIT運用」と「ITエンジニアのための組み込み開発入門」の2つが並行して行われたが、前者の方に参加した。&lt;/P&gt;
&lt;P&gt;このMicrosoft Management Summit 2008 japanでは、「get VIRTUAL now」というキーワードがある。仮想化の技術が実際の運用に使えるものとなり、大規模なシステムでなくても仮想化によって得られる恩恵は大きいと思われる。したがって遅かれ早かれ運用管理者は仮想化技術について知らなければならなくなる。そしてこのキーワードからは、仮想化についてのマイクロソフトの熱いメッセージを感じる。&lt;/P&gt;
&lt;P&gt;セッションでは、まず次世代のデータセンターとアプリケーションの実現には、運用管理ではSystem Center、ID管理&amp;amp;セキュリティではForefrontの製品が担うこととなり、マイクロソフトほど仮想化の技術を持っている会社はない、と断言された。そして仮想化には「サーバーの仮想化」、「デスクトップの仮想化」、「アプリケーションの仮想化」、「プレゼンテーションの仮想化」などの観点が示された。&lt;/P&gt;
&lt;P&gt;ビデオで「阪南大学」と「栗山米菓」、「豊島区政策経営部」の事例が紹介された。&lt;/P&gt;
&lt;P&gt;これらの目指すところは「ダイナミックなIT運用管理」であり、これに関する製品には、まだ出荷されていないものもある。仮想化の実態はまだつかみにくいところもあるが、近い将来必ず運用管理で必要とされるに違いないことを印象付けられた。&lt;/P&gt;&lt;img src ="http://blogs.sqlpassj.org/hotikisu/aggbug/25498.aspx" width = "1" height = "1" /&gt;</content><wfw:comment>http://blogs.sqlpassj.org/hotikisu/comments/25498.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.sqlpassj.org/hotikisu/comments/commentRss/25498.aspx</wfw:commentRss><trackback:ping>http://blogs.sqlpassj.org/hotikisu/services/trackbacks/25498.aspx</trackback:ping></entry><entry><title>TechEd 2008 Yokohama - Day 1 - 5 - コミュニティライトニングトーク</title><link rel="alternate" type="text/html" href="http://blogs.sqlpassj.org/hotikisu/archive/2008/08/27/25495.aspx" /><id>http://blogs.sqlpassj.org/hotikisu/archive/2008/08/27/25495.aspx</id><created>2008-08-27T23:26:00Z</created><issued>2008-08-27T14:26:00+09:00</issued><modified>2008-08-27T23:26:00Z</modified><content type="text/html" mode="escaped">&lt;P&gt;今年のTechEd 2008からはじまったライトニングトークは、日ごろの業務で培ったノウハウや検証導入での実体験などを内容とするが、この日には「コミュニティライトニングトーク」というものも行われた。これはテーマを「コミュニティ」として行われたものだ。&lt;/P&gt;
&lt;P&gt;スピーカーをつとめたのは「.NET研究会/ヒーロー島」、「Admintech.jp」、「NT-Committee2」、「SQL Serverユーザーグループ」、「VBStation」、「Visual Studio User Group」、「極東IT Engineers」、「わんくま同盟」の各グループ代表者たち。さすがにコミュニティでスピーカーを務めることも多いと想像される流暢な話っぷりだった。&lt;/P&gt;
&lt;P&gt;出席した参加者も、何らかの形でコミュニティにかかわっているのだろうか、質問もたくさん出て活発な意見交換になった。そのあとの「ハッピーアワー」でも参加者やスピーカーの交流が行われた。&lt;/P&gt;&lt;img src ="http://blogs.sqlpassj.org/hotikisu/aggbug/25495.aspx" width = "1" height = "1" /&gt;</content><wfw:comment>http://blogs.sqlpassj.org/hotikisu/comments/25495.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.sqlpassj.org/hotikisu/comments/commentRss/25495.aspx</wfw:commentRss><trackback:ping>http://blogs.sqlpassj.org/hotikisu/services/trackbacks/25495.aspx</trackback:ping></entry><entry><title>TechEd 2008 Yokohama - Day 1 - 4 - ライトニングトーク第1日目</title><link rel="alternate" type="text/html" href="http://blogs.sqlpassj.org/hotikisu/archive/2008/08/27/25494.aspx" /><id>http://blogs.sqlpassj.org/hotikisu/archive/2008/08/27/25494.aspx</id><created>2008-08-27T23:05:00Z</created><issued>2008-08-27T14:05:00+09:00</issued><modified>2008-08-27T23:05:00Z</modified><content type="text/html" mode="escaped">&lt;P&gt;今年のTechEdから始まったスペシャルプログラム「ライトニングトーク」に参加した。スピーカーは一般公募から選ばれた8名で、それぞれ5分の持ち時間で自分の決めたテーマについて語る。&lt;/P&gt;
&lt;P&gt;5分という短い持ち時間で一つのテーマについて語るというのは難しいと思う。しかし登壇したスピーカーの方は、みごとに5分という時間にぴったりとプレゼンをまとめられた。素晴らしかった。&lt;/P&gt;
&lt;P&gt;特に見事だったのは「クラッシュしたらこれをMicrosoftへ伝えよう！」のタイトルで話をされた飯山教史さんだった。短い時間内にできるだけ多くの情報を伝えようと、矢のようにしゃべりまくる「マシンガントーク」をみせてくれた。単に技術的な説明だけではなく、ユーモアを交えての話は会場を大いに沸かせた。&lt;/P&gt;
&lt;P&gt;この初めての試みであるライトニングトークは、一般の参加者にはどのくらいの関心があるのかなと思っていたが、用意された椅子がほぼ満席になるくらいの盛況だった。&lt;/P&gt;&lt;img src ="http://blogs.sqlpassj.org/hotikisu/aggbug/25494.aspx" width = "1" height = "1" /&gt;</content><wfw:comment>http://blogs.sqlpassj.org/hotikisu/comments/25494.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.sqlpassj.org/hotikisu/comments/commentRss/25494.aspx</wfw:commentRss><trackback:ping>http://blogs.sqlpassj.org/hotikisu/services/trackbacks/25494.aspx</trackback:ping></entry><entry><title>TechEd 2008 Yokohama - Day 1 - 3 - T5-303「SQL Server 2008 Reporting Services徹底詳細とサイト作成の実践」</title><link rel="alternate" type="text/html" href="http://blogs.sqlpassj.org/hotikisu/archive/2008/08/27/25492.aspx" /><id>http://blogs.sqlpassj.org/hotikisu/archive/2008/08/27/25492.aspx</id><created>2008-08-27T13:13:00Z</created><issued>2008-08-27T04:13:00+09:00</issued><modified>2008-08-27T13:32:00Z</modified><content type="text/html" mode="escaped">&lt;P&gt;SQL ServerのReporting ServiceはSQL Server 2000からすでに搭載されていたらしいが、SQL Server 2008では大きく変わっている。表の種類や表現力が向上したことはもちろん、ガントチャートやスピードメーターのような「ゲージ」と呼ばれるものも作ることができるようになった。&lt;/P&gt;
&lt;P&gt;デモではVisual Studioから「レポートサーバープロジェクト」を開始することでレポート作成が始められた。時系列に沿ったデータから折れ線グラフを作り、株価の評価でおなじみの移動平均線やボリンジャーバンドを追加する、あるいは色や線などデザインに変更を加えるなどの操作がGUIによって簡単にできることが示された。&lt;/P&gt;
&lt;P&gt;またレポートにリッチテキストボックスを作り、修飾された文字の中にフィールドのデータを挿入することも簡単にできる。これはまるでWordの「差し込み印刷」のような簡単さで、テーブルからフィールドをドラッグするだけで請求書に宛名や住所を記入するというデモだった。&lt;/P&gt;
&lt;P&gt;レポート表示時に特定のデータを絞り込んで表示する、動的クエリのような機能をおこなうものが「パラメータ」である。パラメータの機能は従来からある機能だが、デモでは円グラフのレポートを作り、その円グラフの一部をクリックすると、そのデータの詳細を表示する「ジャンプ」というものだった。このとき、ジャンプ先で表示されるレポートでは、クリックされた円グラフのデータで絞り込まれるのだが、この機能を実装するのも、商品区分 = @P1といった変数を使い、円グラフのラベルのプロパティで「アクション」という項目を編集する。このあたりの仕組みは、まるでFLASHのアクションスクリプトを編集するような感じだった。&lt;/P&gt;
&lt;P&gt;作成したレポートの配置は、従来はIISが必須だったが、SQL Server 2008からはIISを使わなくても、専用のレポートサーバーが利用できる。このサーバーの実態はIISと同じだということだ。&lt;/P&gt;
&lt;P&gt;サーバーに接続してブラウジングしなくても「レポートの自動配信」という機能もある。これは設定によって特定の日時にレポートを作成してユーザーに配布するといったものだ。決まった定型のレポートはこれで配信すれば、サーバーの負荷が軽減されていい。&lt;/P&gt;&lt;img src ="http://blogs.sqlpassj.org/hotikisu/aggbug/25492.aspx" width = "1" height = "1" /&gt;</content><wfw:comment>http://blogs.sqlpassj.org/hotikisu/comments/25492.aspx</wfw:comment><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.sqlpassj.org/hotikisu/comments/commentRss/25492.aspx</wfw:commentRss><trackback:ping>http://blogs.sqlpassj.org/hotikisu/services/trackbacks/25492.aspx</trackback:ping></entry><entry><title> TechEd 2008 Yokohama - Day 1 - 2 - T5-201「SQL Server 2008全体概要を徹底解説」</title><link rel="alternate" type="text/html" href="http://blogs.sqlpassj.org/hotikisu/archive/2008/08/27/25491.aspx" /><id>http://blogs.sqlpassj.org/hotikisu/archive/2008/08/27/25491.aspx</id><created>2008-08-27T02:14:00Z</created><issued>2008-08-26T17:14:00+09:00</issued><modified>2008-08-27T13:18:00Z</modified><content type="text/html" mode="escaped">&lt;P&gt;SQL Server 2008には大きく5つの特徴がある。そのひとつは「高品質・高信頼」である。SQL Server 2008は基本的にSQL Server 2005をベースに開発しており、すでに安定して稼働する実績がある。このSQL Server 2005に対して、2つの開発プロセスで開発を行った、ひとつは「メインライン」と呼ばれるもので、SQL Server本体を安定に動かし、常に出荷可能に近い状態を保つプロセスだ。もうひとつは新しい機能を加えるプロセスで「インプルーブメント」と呼ばれている。こちらは各機能ごとに開発を行い、単体機能として完成した時点でSQL Server本体に加えられる。この2つの開発プロセスによって、安定した高品質・高信頼のSQL Server 2008の開発ができた。 &lt;/P&gt;
&lt;P&gt;2つめの特徴は「コンプライアンスの実現」であり、これには「透過的データ暗号化」、「ポリシーベースの管理」、「データ操作監査」がある。これらはアクティブディレクトリのグループポリシーや、監査の仕掛けをSQL Serverに持ち込んだような機能だ。GUIベースで様々な制限の管理や監査を設定することができる。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;3つめの特徴は「サーバー統合シナリオへの対応」、4つめの特徴は「大規模データウエアハウスの実現」で、マルチインスタンスの管理やｍテーブルを複数のパーティションに分割するデータパーティション、データ圧縮、などの技術がある。とりわけデータ圧縮の技術は魅力的で、バックアップの際にも圧縮を行うことができ、圧縮計算にCPUを使っても結果的にI/O負荷が減るのでバックアップ時間を短縮することができるメリットがある。 &lt;/P&gt;
&lt;P&gt;5つめの特徴は「全社員向けBI基盤の提供」である。これを実現する大きなテクノロジが「Reporting Services」である。Reporting ServicesはSQL Server 2008で大きく改善され、他種類のグラフ作成やゲージなどを作ってリッチな表現の出力を得ることができる。またこれらのレポートを作るための新しい開発ツールが用意されている。またVirtual Earthとの統合、新しいデータ型「Geography」、「Geometry」と、距離や面積、重なり具合もTransact-SQLで取得できることが示された。この拡張は強力だ。 &lt;/P&gt;
&lt;P&gt;最後に機能強化されたReporting Serrviceを使ってレポートを作成する単体ツール「レポートビルダー2.0」についての説明とデモがあった。これはReporting Serviceのフォームを作る単体のツールで、この秋に提供されるSQL Server 2008のフューチャーパックに入れられる予定とのことだった。デモで見たレポートビルダーのインターフェースはまるでOffice 2007のようで、特徴的なリボンインターフェースを使ったものだった。またデータ接続の作成ウィザードはInfoPathのデータ接続ウィザードと似ていた。これは早く使ってみたい。&lt;/P&gt;
&lt;P&gt;またSQL Server 2008については、マイクロソフトのサイトに自習書が21本あがっているとこのことで、これもぜひダウンロードして使ってみたい。&lt;/P&gt;
&lt;P&gt;個人的には大規模環境を扱っていないので、ポリシーベースの管理やデータ操作監査、Virtual Earth統合、そして何よりもReporting Servicesの拡張に興味を持ったセッションだった。&lt;/P&gt;&lt;img src ="http://blogs.sqlpassj.org/hotikisu/aggbug/25491.aspx" width = "1" height = "1" /&gt;</content><wfw:comment>http://blogs.sqlpassj.org/hotikisu/comments/25491.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.sqlpassj.org/hotikisu/comments/commentRss/25491.aspx</wfw:commentRss><trackback:ping>http://blogs.sqlpassj.org/hotikisu/services/trackbacks/25491.aspx</trackback:ping></entry><entry><title>TechEd 2008 Yokohama - Day 1 - 1 - オープニング＆キーノート「ITエンジニアはヒーローになる」</title><link rel="alternate" type="text/html" href="http://blogs.sqlpassj.org/hotikisu/archive/2008/08/27/25490.aspx" /><id>http://blogs.sqlpassj.org/hotikisu/archive/2008/08/27/25490.aspx</id><created>2008-08-27T01:51:00Z</created><issued>2008-08-26T16:51:00+09:00</issued><modified>2008-08-27T13:08:00Z</modified><content type="text/html" mode="escaped">&lt;P&gt;今年のTechEd 2008の色は「緑」だ。会場に着くと緑色に彩られたパネルが目に付く。いつもどおりパシフィコ横浜の国立大ホール1階で受付をすませ、オープニング＆キーノートが行われる2階RoomAにあがる。 まず小学生などが夢を語るビデオが流される。メッセージは「全ての人には無限の可能性がある」。緑の背景にたくさんの人々のポートレート写真がスクリーンの右から左へとどんどん流れている。3つのキーワード「Learn」、「Connec」、「Explore」の文字も、たくさんの人々のポートレートで作られている。これらのメッセージは、マイクロソフトが「人」を大切にしていることを示している。 &lt;/P&gt;
&lt;P&gt;自ら技術者として活躍し「先進エンジニアは忙しく新しい情報を得る機会が少ない。TechEdを新しい技術を得る機会にしてほしい」とマイクロソフト株式会社社長の樋口泰行が語る。樋口は現代ITの潮流を、クラウド、PC・携帯・TV・オンライン、直感的な操作性、レガシーシステムとの統合、サーバー統合、相互運用性の確保、などのキーワードでまとめたが、常にマクロの視点を忘れずに開発していく、と強調した。そして「開発者は我々の命だ」と言い、技術者への支援を約束した。 &lt;/P&gt;
&lt;P&gt;マイクロソフトのSQL Serverデータベースエンジン開発部門ジェネラルマネージャーであるクエンティン・クラークは「Dynamic ITによるITイノベーションの実現」と題し、「現代においてITはより重要視されているが、まだ保守や運用管理に80%のコストをかけ、革新への投資に20％しか割り当てることができないでいる、この80％と20％の割合を逆転させたい」と語った。 &lt;/P&gt;
&lt;P&gt;「ぐるめっと.com」サイトを事例とし、Silverlight、Windows Mobile、SQL Server Compact 3.5の連携、Virtual Earthとこの秋に発表されるSilverlight2の連携、Expression Blend 2.5プレビュー版などのデモが行われた。地図を使った事例では、SQL Server 2008から導入された新しいデータ型「空間データ型」についても披露された。 &lt;/P&gt;
&lt;P&gt;「ビジネスインテリジェンスの実現」のデモでは、SQL Server 2008、SharePoint 2007、SQL Server 2008 Reporting Serviceを使い、ゲージやグラフ、テーブルなどを使ったレポートが簡単にできることが示された。 &lt;/P&gt;
&lt;P&gt;大きな新製品の発表などニュース性の高いテーマはなかったが、今回のTech Ed 2008が、実際に導入・運用については役に立つ、実質的なカンファレンスになることをうかがわせるオープニング＆キーノートであったといえる。&lt;/P&gt;&lt;img src ="http://blogs.sqlpassj.org/hotikisu/aggbug/25490.aspx" width = "1" height = "1" /&gt;</content><wfw:comment>http://blogs.sqlpassj.org/hotikisu/comments/25490.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.sqlpassj.org/hotikisu/comments/commentRss/25490.aspx</wfw:commentRss><trackback:ping>http://blogs.sqlpassj.org/hotikisu/services/trackbacks/25490.aspx</trackback:ping></entry><entry><title>TechEd 2008 Yokohamaでライトニング・トークに出る</title><link rel="alternate" type="text/html" href="http://blogs.sqlpassj.org/hotikisu/archive/2008/08/06/25435.aspx" /><id>http://blogs.sqlpassj.org/hotikisu/archive/2008/08/06/25435.aspx</id><created>2008-08-06T21:38:00Z</created><issued>2008-08-06T12:38:00+09:00</issued><modified>2008-08-07T13:50:00Z</modified><content type="text/html" mode="escaped">&lt;P&gt;今年は昨年と少し趣向が変わったTechEdのコミュニティ・プログラム。「ライトニング・トーク」というプログラムで「簡単! InfoPath と SQL Server でリッチなインターフェイスのクライアント サーバー システム構築」という話をさせてもらえることになった。&lt;/P&gt;
&lt;P&gt;5分程度ということで詳しい説明はできないが、いま業務としてやっているデータベースについて話す。InfoPathをクライアントのフロントエンドに使い、データベースSQL Serverに接続するクライアント・サーバー・アプリケーションについてだ。&lt;/P&gt;
&lt;P&gt;俺はもともとプログラマーではなく、どちらかといえば管理運用の仕事をしている立場にいる。学校のデータベースを日常業務の空き時間を使って構築してきた経験から、実際の業務に直接携わっている人間、運用についてよく知っている人間がデータベースを構築することが、最も効率よく成功するシステムを構築できると確信している。&lt;/P&gt;
&lt;P&gt;マイクロソフトのSQL Server、InfoPathやAccessといったオフィス製品、Active Directoryなど使いやすいシステムを組み合わせて利用することで、たいていのデータベースは自前で構築できる。その可能性を実感してもらえれば嬉しい。&lt;/P&gt;
&lt;P&gt;マイクロソフトTeceED 2008 Yokohama公式サイト&lt;BR&gt;&lt;A href="http://www.microsoft.com/japan/teched/2008/default.mspx"&gt;http://www.microsoft.com/japan/teched/2008/default.mspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Birds of a Feather &amp;amp; ライトニング・トーク&lt;BR&gt;&lt;A href="http://www.event-marketing.jp/events/te08/special/bof.htm"&gt;http://www.event-marketing.jp/events/te08/special/bof.htm&lt;/A&gt;&lt;/P&gt;&lt;img src ="http://blogs.sqlpassj.org/hotikisu/aggbug/25435.aspx" width = "1" height = "1" /&gt;</content><wfw:comment>http://blogs.sqlpassj.org/hotikisu/comments/25435.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.sqlpassj.org/hotikisu/comments/commentRss/25435.aspx</wfw:commentRss><trackback:ping>http://blogs.sqlpassj.org/hotikisu/services/trackbacks/25435.aspx</trackback:ping></entry><entry><title>基本情報に関して変更履歴を記録する必要があるデータの処理でトリガを使えばわかりやすい。</title><link rel="alternate" type="text/html" href="http://blogs.sqlpassj.org/hotikisu/archive/2008/06/30/25288.aspx" /><id>http://blogs.sqlpassj.org/hotikisu/archive/2008/06/30/25288.aspx</id><created>2008-06-30T21:13:00Z</created><issued>2008-06-30T12:13:00+09:00</issued><modified>2008-06-30T21:13:00Z</modified><content type="text/html" mode="escaped">&lt;P&gt;生徒の基本情報の中には、入学してから卒業まで全く変更のないフィールドがある。それは「性別」「生年月日」「入学年月日」などである。これらのデータは「生徒基本情報」テーブルに一つのフィールドを設けて登録すればいい。&lt;/P&gt;
&lt;P&gt;これに対し「住所」などは転居によって変更しなければならないデータである。また「保護者」なども場合によっては変更があるし、生徒本人の「姓」、あるいは昨今「名」すら変更したいというケースがまれにある。戸籍の氏変更にともなって姓の変更は当然にしても、「名」さえ変更があり得るとすれば、履歴をきちんと管理しておかないと、そもそもその生徒がいったい誰だったのかわからなくなってしまう。&lt;/P&gt;
&lt;P&gt;これら変更履歴を記録しなければならないデータについては次のような管理が考えられる。&lt;/P&gt;
&lt;P&gt;（１）別テーブルで管理する&lt;/P&gt;
&lt;P&gt;「生徒」テーブル　[学籍番号],[住所管理番号]&lt;BR&gt;「住所」テーブル　[学籍番号],[住所管理番号],[住所]&lt;/P&gt;
&lt;P&gt;というように「住所」だけを記録するテーブルをつくり、最新の「住所管理番号」を「生徒」テーブルの「住所管理番号」フィールドに記録して関連づける。「住所」テーブルを「学籍番号」でクエリをかければ、その生徒の住所変更履歴がわかる。&lt;/P&gt;
&lt;P&gt;（２）住所履歴を別テーブルにするが、トリガで「生徒」テーブルに変更を反映させる&lt;/P&gt;
&lt;P&gt;「生徒」テーブル　[学籍番号],[住所]&lt;BR&gt;「住所変更」テーブル　[住所管理番号],[学籍番号],[住所]→Insertトリガで「住所」を「生徒」テーブルへ記録&lt;/P&gt;
&lt;P&gt;「生徒」テーブルに直接「住所」を記録できるようにし、住所変更があれば「住所変更」テーブルに記録する。そのときInsertトリガによって「生徒」テーブルに住所を記録するようにする。住所変更の履歴は「住所変更」テーブルに「学籍番号」でクエリを行えばわかる。&lt;/P&gt;
&lt;P&gt;教科書的には（１）の処理が正しいと思うが、住所というような基本データは、さまざまなビューで使うことになるので、別テーブルにした場合、常にテーブル間の連携を意識しなければならない。どうしてもビューが複雑になる。（２）の方法では「住所」データが重複することになるが、「生徒」テーブルには常に最新の住所が入っていることになり、他のビューを作るときにわかりやすい。&lt;/P&gt;&lt;img src ="http://blogs.sqlpassj.org/hotikisu/aggbug/25288.aspx" width = "1" height = "1" /&gt;</content><wfw:comment>http://blogs.sqlpassj.org/hotikisu/comments/25288.aspx</wfw:comment><slash:comments>5</slash:comments><wfw:commentRss>http://blogs.sqlpassj.org/hotikisu/comments/commentRss/25288.aspx</wfw:commentRss><trackback:ping>http://blogs.sqlpassj.org/hotikisu/services/trackbacks/25288.aspx</trackback:ping></entry><entry><title>InfoPathの改ページについて</title><link rel="alternate" type="text/html" href="http://blogs.sqlpassj.org/hotikisu/archive/2008/06/29/25282.aspx" /><id>http://blogs.sqlpassj.org/hotikisu/archive/2008/06/29/25282.aspx</id><created>2008-06-29T17:24:00Z</created><issued>2008-06-29T08:24:00+09:00</issued><modified>2008-06-29T17:24:00Z</modified><content type="text/html" mode="escaped">&lt;P&gt;InfoPathは2003 SP1から「改ページ」が挿入できるようになったようだ。&lt;/P&gt;
&lt;P&gt;Microsoft Office Online 「改ページを挿入する」&lt;BR&gt;&lt;A href="http://office.microsoft.com/ja-jp/infopath/HP010957061041.aspx"&gt;http://office.microsoft.com/ja-jp/infopath/HP010957061041.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Microsoft Office Online 「ページ区切りを挿入する」&lt;BR&gt;&lt;A href="http://office.microsoft.com/ja-jp/infopath/HP100240281041.aspx"&gt;http://office.microsoft.com/ja-jp/infopath/HP100240281041.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Microsoft Office Online 「InfoPath 2003 Service Pack 1 の概要」&lt;A href="http://www.microsoft.com/japan/office/previous/2003/infopath/prodinfo/sp1.mspx"&gt;http://www.microsoft.com/japan/office/previous/2003/infopath/prodinfo/sp1.mspx&lt;/A&gt;&lt;/P&gt;&lt;img src ="http://blogs.sqlpassj.org/hotikisu/aggbug/25282.aspx" width = "1" height = "1" /&gt;</content><wfw:comment>http://blogs.sqlpassj.org/hotikisu/comments/25282.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.sqlpassj.org/hotikisu/comments/commentRss/25282.aspx</wfw:commentRss><trackback:ping>http://blogs.sqlpassj.org/hotikisu/services/trackbacks/25282.aspx</trackback:ping></entry><entry><title>InfoPathの弱いところ。複数ページの印刷処理。</title><link rel="alternate" type="text/html" href="http://blogs.sqlpassj.org/hotikisu/archive/2008/06/29/25281.aspx" /><id>http://blogs.sqlpassj.org/hotikisu/archive/2008/06/29/25281.aspx</id><created>2008-06-29T17:21:00Z</created><issued>2008-06-29T08:21:00+09:00</issued><modified>2008-06-29T17:21:00Z</modified><content type="text/html" mode="escaped">&lt;P&gt;InfoPathをSQL Serverに接続してクライアント・サーバーシステムにしている。InfoPathの弱いところは印刷だが、特に複数ページわたる印刷物を作成したいときに、改行の自由度が小さいところだ。&lt;/P&gt;
&lt;P&gt;データベースに生徒データと講座データ、それを関連付ける受講データがある。ここから各生徒の時間割個票を出力したい。このときInfoPathならクエリフィールドの学籍番号を使って、一人の生徒の時間割個票を出力するのは簡単だ。しかし担任が自分のクラスの生徒の時間割個票をまとめて印刷したい、というような場合がある。&lt;/P&gt;
&lt;P&gt;Accessなら接続先のデータのうち「学籍番号」を「グループヘッダー」にして「改ページ」しておけば、自動的に一人ずつの時間割個票がまとめて印刷処理できる。InfoPathでもこのようなグループ処理ができればいいのだが。&lt;/P&gt;&lt;img src ="http://blogs.sqlpassj.org/hotikisu/aggbug/25281.aspx" width = "1" height = "1" /&gt;</content><wfw:comment>http://blogs.sqlpassj.org/hotikisu/comments/25281.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.sqlpassj.org/hotikisu/comments/commentRss/25281.aspx</wfw:commentRss><trackback:ping>http://blogs.sqlpassj.org/hotikisu/services/trackbacks/25281.aspx</trackback:ping></entry><entry><title>SQL ServerとAccessによるクライアントサーバーシステムの事例はあるのか</title><link rel="alternate" type="text/html" href="http://blogs.sqlpassj.org/hotikisu/archive/2008/06/28/25279.aspx" /><id>http://blogs.sqlpassj.org/hotikisu/archive/2008/06/28/25279.aspx</id><created>2008-06-28T12:41:00Z</created><issued>2008-06-28T03:41:00+09:00</issued><modified>2008-06-28T12:41:00Z</modified><content type="text/html" mode="escaped">&lt;P&gt;InfoPathをクライアントにして、SQL Serverデータベースシステムを作っている。InfoPathはデータの入出力には得意だが、印刷の自由度が小さい。そこでクライアントにAccessを使い、アクセスプロジェクトでSQL Serverに接続することも併用している。&lt;/P&gt;
&lt;P&gt;いろいろとやってみると、これが結構便利だ。Accessのレポートで表を作ることも面倒だが、Accessはよく使っていて慣れているので、手際よく作るコツはわかっている。&lt;/P&gt;
&lt;P&gt;もしかしたらSQL ServerとAccessだけでクライアントサーバーシステムを構築する事例もあるのではないか、と思うようになってきた。ちょっと調べてみると、Microsoftや@ITなどの記事はあるが、具体的な事例を書いたページは見当たらない。実際にやってみると工夫のしがいもあるので、またここに書いていきたい。&lt;/P&gt;
&lt;P&gt;Microsoft Office Online 「Access プロジェクトについて (ADP)」&lt;BR&gt;&lt;A href="http://office.microsoft.com/ja-jp/access/HP052731031041.aspx"&gt;http://office.microsoft.com/ja-jp/access/HP052731031041.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;@IT「データベース・サーバのフロントエンドとしてAccessを利用する」&lt;A href="http://www.atmarkit.co.jp/fwin2k/win2ktips/346dbaccess/dbaccess.html"&gt;&lt;BR&gt;http://www.atmarkit.co.jp/fwin2k/win2ktips/346dbaccess/dbaccess.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;@IT 「AccessをMSDEのフロントエンドとして利用する」&lt;A href="http://www.atmarkit.co.jp/fwin2k/win2ktips/404accessmsde/accessmsde.html"&gt;http://www.atmarkit.co.jp/fwin2k/win2ktips/404accessmsde/accessmsde.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Microsoft Office Online 「アクセスプロジェクト」&lt;BR&gt;&lt;A href="http://office.microsoft.com/ja-jp/access/CH062526761041.aspx"&gt;http://office.microsoft.com/ja-jp/access/CH062526761041.aspx&lt;/A&gt;&lt;/P&gt;&lt;img src ="http://blogs.sqlpassj.org/hotikisu/aggbug/25279.aspx" width = "1" height = "1" /&gt;</content><wfw:comment>http://blogs.sqlpassj.org/hotikisu/comments/25279.aspx</wfw:comment><slash:comments>5</slash:comments><wfw:commentRss>http://blogs.sqlpassj.org/hotikisu/comments/commentRss/25279.aspx</wfw:commentRss><trackback:ping>http://blogs.sqlpassj.org/hotikisu/services/trackbacks/25279.aspx</trackback:ping></entry><entry><title>今年もTechEdに行くぞ</title><link rel="alternate" type="text/html" href="http://blogs.sqlpassj.org/hotikisu/archive/2008/06/27/25273.aspx" /><id>http://blogs.sqlpassj.org/hotikisu/archive/2008/06/27/25273.aspx</id><created>2008-06-27T02:45:00Z</created><issued>2008-06-26T17:45:00+09:00</issued><modified>2008-06-27T02:47:00Z</modified><content type="text/html" mode="escaped">&lt;P&gt;熱い夏がまたやってくるくる～とは「子供バンド」の「サマータイムブルース」。作曲はエディ・コクランで多くのミュージシャンがカバーしている曲だ。今年もTechEdの夏がやってきた。&lt;/P&gt;
&lt;P&gt;仕事との関係があるので決定ではないが、今年も全日程フル参加したいと思っている。昨年はリアルタイムで書けなかった「TechEdレポート」を今年は書こうと思っている。&lt;/P&gt;
&lt;P&gt;んな訳でカテゴリ名も「TechEd 2007」から「Tech Ed 2007-2008」に変更した。&lt;/P&gt;&lt;img src ="http://blogs.sqlpassj.org/hotikisu/aggbug/25273.aspx" width = "1" height = "1" /&gt;</content><wfw:comment>http://blogs.sqlpassj.org/hotikisu/comments/25273.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.sqlpassj.org/hotikisu/comments/commentRss/25273.aspx</wfw:commentRss><trackback:ping>http://blogs.sqlpassj.org/hotikisu/services/trackbacks/25273.aspx</trackback:ping></entry><entry><title>InfoPath2003とSQL Server2000の組み合わせでバグかもしれない現象に遭遇した。その２</title><link rel="alternate" type="text/html" href="http://blogs.sqlpassj.org/hotikisu/archive/2008/06/26/25269.aspx" /><id>http://blogs.sqlpassj.org/hotikisu/archive/2008/06/26/25269.aspx</id><created>2008-06-26T11:47:00Z</created><issued>2008-06-26T02:47:00+09:00</issued><modified>2008-06-26T15:55:00Z</modified><content type="text/html" mode="escaped">&lt;P&gt;&lt;SPAN lang=EN-US&gt;また似たようなエラーが出るようになった。今回は順調に稼動していたマシンで、あるときからInfoPathが使えなくなった。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN lang=EN-US&gt;データは「従事時間調査」というものを行うもので、単にひとつのテーブルだけがデータ接続になっている。テーブル構造の概要は次のとおり。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN lang=EN-US&gt;[職員番号],[氏名],[月],[日],[従事時間]・・・&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN lang=EN-US&gt;フォームは「月」でクエリを行い、一月ごとの従事時間入力を行うようにしている。ここである教員が、4月や6月のデータは読み出せるのだが、5月のデータを読み出そうとすると「一部の動作規則を適用できませんでした」というメッセージが出てエラーになる。詳細は以下のとおり。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN lang=EN-US&gt;----------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN lang=EN-US&gt;「一部の動作規則を適用できませんでした」&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN lang=EN-US&gt;ドキュメント オブジェクトの query メソッドに失敗しました。&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;指定されたクエリを実行できません。&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;ファイルは有効な XML ドキュメントではありません。&lt;BR&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;無効な文字で名前が始まりました。&lt;BR&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;行 197、位置 3&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;/&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;--^&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN lang=EN-US&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;
&lt;P&gt;&lt;SPAN lang=EN-US&gt;----------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN lang=EN-US&gt;「一部の動作規則を適用できませんでした」というメッセージがおかしい。フォーム上、何も動作規則を設定していないのだが。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN lang=EN-US&gt;以前におこった現象については、以下に記述している。&lt;BR&gt;&lt;A href="http://blogs.sqlpassj.org/hotikisu/archive/2007/01/16/20444.aspx"&gt;http://blogs.sqlpassj.org/hotikisu/archive/2007/01/16/20444.aspx&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/SPAN&gt;&lt;img src ="http://blogs.sqlpassj.org/hotikisu/aggbug/25269.aspx" width = "1" height = "1" /&gt;</content><wfw:comment>http://blogs.sqlpassj.org/hotikisu/comments/25269.aspx</wfw:comment><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.sqlpassj.org/hotikisu/comments/commentRss/25269.aspx</wfw:commentRss><trackback:ping>http://blogs.sqlpassj.org/hotikisu/services/trackbacks/25269.aspx</trackback:ping></entry><entry><title>「開発」と「運用」は似て非なる仕事－データベース開発とインフラ運用は全く違う思考回路が必要だ</title><link rel="alternate" type="text/html" href="http://blogs.sqlpassj.org/hotikisu/archive/2008/06/21/25188.aspx" /><id>http://blogs.sqlpassj.org/hotikisu/archive/2008/06/21/25188.aspx</id><created>2008-06-21T11:57:00Z</created><issued>2008-06-21T02:57:00+09:00</issued><modified>2008-06-21T11:57:00Z</modified><content type="text/html" mode="escaped">&lt;P&gt;学籍管理のデータベース開発を行いながら同時にインフラ運用もやっている。ひとつの学校という閉じられたシステムなのでそれほど複雑ではないのだが、問題が重なるとかなり辛い状況になる。&lt;/P&gt;
&lt;P&gt;データベースの開発では、要求にあう処理を合理的に行うために、業務の流れと役割分担に応じたセキュリティの設定、合理的なテーブル構造、ビュー、ストアドプロシージャ、トリガなどどの手法で解決するのが妥当か、既にあるデータとの整合性はどうか、これらを緻密に考えなければならない。また重要なのは、当面の処理ができるだけでなく、今後数年間にわたってデータと処理の耐久性があることも重要だ。そうなると、当面必要ではないが、おそらく後に表面化してくるであろう業務ニーズを予想しながら作るという視点も必要になる。&lt;/P&gt;
&lt;P&gt;ネットワークインフラ運用では、TCP/IT、アクティブディレクトリ、ファイルサービス、プリンタサービス、ウェブサービス、ウィルス対策など、個々に確立した技術を組み合わることになる。つまり個々の技術の集合体として全体を俯瞰する能力が必要になる。それぞれの技術は年々進歩するため、必然的に見直しながらすすめるしかない。システム全体として5年先10年先まで使えるものを望むことは不可能なのだ。Active Directoryを使えば、とりあえず作って運用しながら見直す、ということもしやすい。&lt;/P&gt;
&lt;P&gt;両方をやっていて思うのだが、開発という仕事は思考を一点に集中する能力が必要であるのに対し、ネットワークインフラ運用は全体を俯瞰しながらも個々の技術にのめりこまず、柔軟に切り離したりつないだりする能力が必要だ。古いものは思い切って切り捨て、新しいものに乗り換える。それを常に意識しながら、今あるものを使うという姿勢。&lt;/P&gt;
&lt;P&gt;ネットワークインフラ運用では「とりあえず使える」という解決策をとることがよくある。プリンタが壊れれば別のプリンタを「とりあえず」繋ぎ変えて動かす、ファイルサーバーの具合が悪ければ「とりあえず」別のサーバーを立てる、などだ。しかし開発では「とりあえず別テーブルを作る」なんてことはやらない。何か不都合なことがおきれば、その原因を突き止め、根本的なところで修正しなければならない。&lt;/P&gt;
&lt;P&gt;このように考えてみれば、SEという言葉でくくられる「開発」と「運用」は、実は似て非なる仕事であるに違いない。&lt;/P&gt;&lt;img src ="http://blogs.sqlpassj.org/hotikisu/aggbug/25188.aspx" width = "1" height = "1" /&gt;</content><wfw:comment>http://blogs.sqlpassj.org/hotikisu/comments/25188.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.sqlpassj.org/hotikisu/comments/commentRss/25188.aspx</wfw:commentRss><trackback:ping>http://blogs.sqlpassj.org/hotikisu/services/trackbacks/25188.aspx</trackback:ping></entry><entry><title>明日はActiveDirectoryを含めたネットワークの再構築を行う</title><link rel="alternate" type="text/html" href="http://blogs.sqlpassj.org/hotikisu/archive/2008/06/13/25084.aspx" /><id>http://blogs.sqlpassj.org/hotikisu/archive/2008/06/13/25084.aspx</id><created>2008-06-13T20:12:00Z</created><issued>2008-06-13T11:12:00+09:00</issued><modified>2008-06-13T20:14:00Z</modified><content type="text/html" mode="escaped">&lt;P&gt;いろんな経緯があり、なかなかシステムの再構築を行う機会がなかったが、現在の勤務地に異動して以来の本格的な再構築を行うときがやってきた。&lt;/P&gt;
&lt;P&gt;これまでのシステムでインターネット接続系のものは、基本的に次のような構成だった。&lt;/P&gt;
&lt;P&gt;ファイヤーウォール・・・WindowsNT Servwer,FireWall1&lt;BR&gt;ウェブプロキシ・・・Windows 2000 Server,Microsoft Proxy Server&lt;BR&gt;DNSサーバー・・・Windows 2000 Server&lt;BR&gt;メールサーバー・・・Windows 2000 Server,SendMail&lt;BR&gt;ドメインサーバー・・・Windows 2000 Server&lt;/P&gt;
&lt;P&gt;システム構築当時のサーバーのスペックやソフトウエアの限界、構築の定石というものがあり、このような冗長な構成になっていた。これをよりシンプルで機能的な構成にしたいと思っていた。&lt;/P&gt;
&lt;P&gt;ファイヤーウォール&amp;amp;ウェブプロキシ・・・Windows Server 2003 R2,ISA Server 2006&lt;BR&gt;ドメインサーバー&amp;amp;DNS・・・Windows Server 2003 R2&lt;BR&gt;WSUSサーバー・・・Windows 2000 Server&lt;BR&gt;ファイルサーバー・・・Windows 2000 Server&lt;/P&gt;
&lt;P&gt;改善の主眼は、なんといってもウェブアクセスの統制だ。ファイヤーウォールとプロキシの機能が低かったことをまず改善したいと思った。これをISA Serverを用いて、ActiveDirectoryと統合してウェブアクセスを管理し統制する。WSUSによって修正プログラムの適用を一元管理する。&lt;/P&gt;
&lt;P&gt;これを機会にFloppy DiskやUSB Storegeなどのリムーバブル・ドライブの使用をすべて禁止する。&lt;/P&gt;&lt;img src ="http://blogs.sqlpassj.org/hotikisu/aggbug/25084.aspx" width = "1" height = "1" /&gt;</content><wfw:comment>http://blogs.sqlpassj.org/hotikisu/comments/25084.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.sqlpassj.org/hotikisu/comments/commentRss/25084.aspx</wfw:commentRss><trackback:ping>http://blogs.sqlpassj.org/hotikisu/services/trackbacks/25084.aspx</trackback:ping></entry><entry><title>セカンダリデータ接続で必要なデータだけを取得するには（SQL Serverにサブクエリのビューを作る）</title><link rel="alternate" type="text/html" href="http://blogs.sqlpassj.org/hotikisu/archive/2008/06/12/25019.aspx" /><id>http://blogs.sqlpassj.org/hotikisu/archive/2008/06/12/25019.aspx</id><created>2008-06-12T22:40:00Z</created><issued>2008-06-12T13:40:00+09:00</issued><modified>2008-06-12T22:40:00Z</modified><content type="text/html" mode="escaped">&lt;P&gt;InfoPathのセカンダリデータ接続でサブクエリーを書いてデータを絞り込む手法を紹介した。&lt;/P&gt;
&lt;P&gt;InfoPathでSQL Serverから自分の氏名を取得するには（データ接続にサブクエリーを書く）&lt;BR&gt;&lt;A href="http://blogs.sqlpassj.org/hotikisu/archive/2008/06/12/25016.aspx"&gt;http://blogs.sqlpassj.org/hotikisu/archive/2008/06/12/25016.aspx&lt;/A&gt;&lt;BR&gt;セカンダリデータ接続で必要なデータだけを取得するには（データ接続にサブクエリーを書く）&lt;A href="http://blogs.sqlpassj.org/hotikisu/archive/2008/06/12/25018.aspx"&gt;http://blogs.sqlpassj.org/hotikisu/archive/2008/06/12/25018.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;このサブクエリーを書く方法は、SQL Serverにビューを作ってもできる。次のようなテーブルがSQL Serverにあるとする。&lt;/P&gt;
&lt;P&gt;　　生徒（学籍番号,生徒氏名,担任ユーザーID）&lt;/P&gt;
&lt;P&gt;このとき、次のようなビューをSQL Serverに作る&lt;/P&gt;
&lt;P&gt;　　select 学籍番号 from dbo.生徒 where ('（ドメイン名）' + 担任ユーザーID = (select suser_sname() as Expr 1))&lt;/P&gt;
&lt;P&gt;もし担任ユーザーIDにドメイン名も含んだユーザーデータを作っておくなら次のようでいい&lt;/P&gt;
&lt;P&gt;　　select 学籍番号 from dbo.生徒 where 担任ユーザーID = (select suser_sname() as Expr 1)&lt;/P&gt;
&lt;P&gt;このビューに対してInfoPathでセカンダリデータ接続を作る。つまり、SQL Serverに書かれたビューも、それを呼び出すアクティブディレクトリユーザー名に対してsuser_sname()関数が正しく実行されるのだ。&lt;/P&gt;&lt;img src ="http://blogs.sqlpassj.org/hotikisu/aggbug/25019.aspx" width = "1" height = "1" /&gt;</content><wfw:comment>http://blogs.sqlpassj.org/hotikisu/comments/25019.aspx</wfw:comment><slash:comments>4</slash:comments><wfw:commentRss>http://blogs.sqlpassj.org/hotikisu/comments/commentRss/25019.aspx</wfw:commentRss><trackback:ping>http://blogs.sqlpassj.org/hotikisu/services/trackbacks/25019.aspx</trackback:ping></entry><entry><title>セカンダリデータ接続で必要なデータだけを取得するには（データ接続にサブクエリーを書く）</title><link rel="alternate" type="text/html" href="http://blogs.sqlpassj.org/hotikisu/archive/2008/06/12/25018.aspx" /><id>http://blogs.sqlpassj.org/hotikisu/archive/2008/06/12/25018.aspx</id><created>2008-06-12T22:28:00Z</created><issued>2008-06-12T13:28:00+09:00</issued><modified>2008-06-12T22:28:00Z</modified><content type="text/html" mode="escaped">&lt;P&gt;InfoPathではメイン接続以外にセカンダリデータ接続を作ることができ、でデータを取得することができ、セカンダリデータ接続で取得したリストをフォームのドロップダウンリストボックスなどで選択要素として利用できる。これはとても便利だ。しかしセカンダリデータ接続では動的にクエリを行ってデータを選択することができないため、対象のテーブルの全部のデータを取得するしかない。このときに問題となるのが、ある程度のデータ量を超えたとき、フォームの実行速度が極端に低下することだ。フリーズしたのではないか、と思うほどパフォーマンスが低下する。これはぜひ後のバージョンでは解決してもらいたいが、現状では次のようなサブクエリを使って、動的にクエリを行う工夫ができる。&lt;/P&gt;
&lt;P&gt;たとえば生徒40人のクラスが30学級あれば、全校生徒のデータは120人になる。このうち自分の担任するクラスのリストだけをセカンダリデータ接続で取得したいときには、次のようにする。&lt;/P&gt;
&lt;P&gt;（１）次のテーブルを作る&lt;BR&gt;　　生徒（学籍番号,生徒氏名,担任ユーザーID）&lt;BR&gt;（２）InfoPathでデータ接続ウィザードを実行し、SQL文を次のように書き換える&lt;BR&gt;　　　select "生徒氏名" from "dbo"."生徒" as "生徒" where '（ドメイン名）' + 担任ユーザーID = (select suser_sname())&lt;/P&gt;
&lt;P&gt;つまりSQL Serverから自分のアクティブディレクトリユーザー名を取得するsuser_sname()関数を利用してサブクエリーを書き、生徒テーブルから自分のクラスの生徒データだけを取得するのだ。&lt;/P&gt;
&lt;P&gt;このとき、テーブルの担任ユーザーIDにドメイン名も含めてデータを登録しているなら次のようでいい&lt;/P&gt;
&lt;P&gt;　　　select "生徒氏名" from "dbo"."生徒" as "生徒" where 担任ユーザーID = (select suser_sname())&lt;/P&gt;
&lt;P&gt;ここでは学校のクラスで担任が自分のクラスの生徒名をリストとして取得する例を説明したが、一般企業でも社員の中から自分が所属する支店の社員情報だけのリストを取得したい、といった事例が考えられるだろう。&lt;/P&gt;&lt;img src ="http://blogs.sqlpassj.org/hotikisu/aggbug/25018.aspx" width = "1" height = "1" /&gt;</content><wfw:comment>http://blogs.sqlpassj.org/hotikisu/comments/25018.aspx</wfw:comment><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.sqlpassj.org/hotikisu/comments/commentRss/25018.aspx</wfw:commentRss><trackback:ping>http://blogs.sqlpassj.org/hotikisu/services/trackbacks/25018.aspx</trackback:ping></entry><entry><title>InfoPathでSQL Serverから自分の氏名を取得するには（データ接続にサブクエリーを書く）</title><link rel="alternate" type="text/html" href="http://blogs.sqlpassj.org/hotikisu/archive/2008/06/12/25016.aspx" /><id>http://blogs.sqlpassj.org/hotikisu/archive/2008/06/12/25016.aspx</id><created>2008-06-12T22:11:00Z</created><issued>2008-06-12T13:11:00+09:00</issued><modified>2008-06-12T22:11:00Z</modified><content type="text/html" mode="escaped">&lt;P&gt;以前、InfoPathのデータ接続でSQL Serverからアクティブディレクトリのユーザー名を取得する方法を書いた。&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.sqlpassj.org/hotikisu/articles/16073.aspx"&gt;http://blogs.sqlpassj.org/hotikisu/articles/16073.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;ここで使ったsuser_sname()関数を使って、InfoPathでSQL Serverから自分の氏名を取得するデータ接続を作ってみた。方法は次のとおり。&lt;/P&gt;
&lt;P&gt;（１）SQL Serverに次のようなユーザー情報のテーブルを作っておく&lt;BR&gt;　　ユーザー（ログオンID,ユーザー氏名）&lt;BR&gt;（２）InfoPathでデータ接続を作る&lt;BR&gt;（３）ウィザードで適当なテーブルを選択し、SQLの編集を行う&lt;BR&gt;（４）SQL文を次のように書き換える&lt;/P&gt;
&lt;P&gt;select "ユーザー氏名" from "dbo"."ユーザー" as "ユーザー" where '（ドメイン名\）' +&amp;nbsp;ログオンID = (select suser_sname())&lt;/P&gt;
&lt;P&gt;もしユーザーテーブルのログオンIDにドメイン名も含んだデータを格納しているなら、次のようでいい。&lt;/P&gt;
&lt;P&gt;select "ユーザー氏名" from "dbo"."ユーザー" as "ユーザー" where&amp;nbsp;ログオンID = (select suser_sname())&lt;/P&gt;
&lt;P&gt;&amp;nbsp;つまりInfoPathのデータ接続にサブクエリを書くだけでいいのだ。この手法は応用がきくだろう。&lt;/P&gt;&lt;img src ="http://blogs.sqlpassj.org/hotikisu/aggbug/25016.aspx" width = "1" height = "1" /&gt;</content><wfw:comment>http://blogs.sqlpassj.org/hotikisu/comments/25016.aspx</wfw:comment><slash:comments>2</slash:comments><wfw:commentRss>http://blogs.sqlpassj.org/hotikisu/comments/commentRss/25016.aspx</wfw:commentRss><trackback:ping>http://blogs.sqlpassj.org/hotikisu/services/trackbacks/25016.aspx</trackback:ping></entry><entry><title>トリガを活用してビューを整理することにした</title><link rel="alternate" type="text/html" href="http://blogs.sqlpassj.org/hotikisu/archive/2008/06/12/25015.aspx" /><id>http://blogs.sqlpassj.org/hotikisu/archive/2008/06/12/25015.aspx</id><created>2008-06-12T21:57:00Z</created><issued>2008-06-12T12:57:00+09:00</issued><modified>2008-06-12T21:57:00Z</modified><content type="text/html" mode="escaped">&lt;P&gt;たとえば住所管理において、昨年度までの旧システムでは次のように「生徒」テーブルに「生徒住所」、「保護者住所」というフィールドで登録していた。&lt;/P&gt;
&lt;P&gt;生徒（学籍番号,生徒住所,生徒電話番号,保護者住所,保護者電話番号）&lt;/P&gt;
&lt;P&gt;しかし（１）生徒本人や保護者以外の住所を管理したい業務上の要求があること、（２）フィールドをダイレクトに更新するので、履歴が残らないこと、（３）電話番号も複数記録したいこと、などにより、次のようにテーブル構造を変更した。&lt;/P&gt;
&lt;P&gt;生徒（PK学籍番号,生徒住所番号,代表保護者住所番号）&lt;BR&gt;住所（PK住所番号,学籍番号,住所分類,住所）&lt;BR&gt;電話（PK電話管理番号,住所番号,電話番号）&lt;/P&gt;
&lt;P&gt;これでひとつの学籍番号に対して複数の住所を記録でき、生徒住所と保護者住所の住所管理番号を生徒テーブルに記録することで、関連付けを行うことができる。保護者の住所を複数登録することもでき、そのうちの代表保護者住所に対して郵送物を送るなどの処理ができる。電話番号も複数記録することができる。&lt;/P&gt;
&lt;P&gt;このように住所管理を始めたが、住所にかかわるデータ処理を行うとき、いつもこれらのテーブル間連携を意識しなければならなくなった。結果としてビューの構造が一目で把握しずらいものになってしまう。&lt;/P&gt;
&lt;P&gt;そこで次のようにテーブル構造を変更するとともに、トリガを利用して、テーブル間のリレーションを考えなくともよいようにすることにした。&lt;/P&gt;
&lt;P&gt;生徒（PK学籍番号,生徒住所,保護者住所）&lt;BR&gt;住所（PK住所管理番号,学籍番号,住所分類,住所）INSERTEDトリガ→UPDATE生徒（生徒住所or保護者住所）&lt;BR&gt;電話（PK電話管理番号,学籍番号,電話番号分類,電話番号）&lt;/P&gt;
&lt;P&gt;住所テーブルは一般の教員に対してINSERT,SELECT権限だけを与え、UPDATE,DELETEは許可せず履歴を残すことにする。住所テーブルにINSERTがあったときにトリガを起動して生徒テーブルの住所をUPDATEする。&lt;/P&gt;
&lt;P&gt;このことで常に最新の住所データが生徒テーブルに更新され、それ以外の住所データもフレキシブルに記録できるようになる。ビューを使う必要がないので、データ構造がシンプルになる。&lt;/P&gt;&lt;img src ="http://blogs.sqlpassj.org/hotikisu/aggbug/25015.aspx" width = "1" height = "1" /&gt;</content><wfw:comment>http://blogs.sqlpassj.org/hotikisu/comments/25015.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.sqlpassj.org/hotikisu/comments/commentRss/25015.aspx</wfw:commentRss><trackback:ping>http://blogs.sqlpassj.org/hotikisu/services/trackbacks/25015.aspx</trackback:ping></entry><entry><title>あまりにも複雑なビューを作りすぎた自分に責任があるのだが</title><link rel="alternate" type="text/html" href="http://blogs.sqlpassj.org/hotikisu/archive/2008/06/06/24835.aspx" /><id>http://blogs.sqlpassj.org/hotikisu/archive/2008/06/06/24835.aspx</id><created>2008-06-06T01:00:00Z</created><issued>2008-06-05T16:00:00+09:00</issued><modified>2008-06-06T01:00:00Z</modified><content type="text/html" mode="escaped">&lt;P&gt;いくつものビューを組み合わせ、ビューのネスト状態と言っていいほどのビューを作ってしまった。作ろうと思えばいくらでも複雑なビューができてしまうので、気をつけないといけない。ついにクライアントのInfoPathから接続してもタイムアウトになってしまうくらいのビューを作ってしまった。&lt;/P&gt;
&lt;P&gt;InfoPathからSQL Serverの複数のテーブルを参照するにはいくつかの方法がある。ひとつはテーブルを結合してひとつのビューにし、それに接続する方法だ。この方法の利点は、データ構造がSQL Serverに依存するので、InfoPathのメンテナンスが必要ないことだ。ビューを変えたければSQL Server側だけで変更すればよい。しかしこの方法はInfoPathからデータの送信ができない。&lt;/P&gt;
&lt;P&gt;ふたつ目の方法は、InfoPathのメインデータソースに複数のテーブルをバインドする方法。この場合は、主キーさえ間違いなく設定すれば送信可能なフォームができる。しかしデータ構造を変更しようと思えば、InfoPathのフォームを編集し、データ接続を再設定しなければならない。InfoPathのデータ接続ウィザードは構造の視認性が良くないので、あまり複雑な構造は実際には作れないだろう。&lt;/P&gt;
&lt;P&gt;そしてもうひとつは、セカンダリデータソースとしてメインデータソースと分けて接続する方法だ。これならメインデータソースは送信可能だし、セカンダリデータソースは元のテーブルやビューと一対一で接続するので構造がわかりやすい。しかしメインデータソースとセカンダリデータソースの連携には制約がある。この点については、おそらくVSTOなどで開発するとある程度融通が利くのではないか、と想像しているのだが。&lt;/P&gt;
&lt;P&gt;複雑なビューについては、自分では合理的に作っているつもりだが、本当はもっと効率のよいクエリの書き方があるのだろうと思う。それと、SQL文として複雑であるか否かという問題と、処理速度が早いか遅いかは別問題であるので、クエリの実行速度についても検討しなければいけない時期にやってきた。ましてや今年は単年度だけの処理をやっているが、来年、再来年と年を経るごとにデータ量は増えていくわけで、そのこともパフォーマンスに影響するはずだ。というか、影響しないように作らなければならない、と言うべきか。&lt;/P&gt;
&lt;P&gt;ある意味でシステム構築は初期のステージを過ぎ、次のステージへ進んだといえる。&lt;/P&gt;&lt;img src ="http://blogs.sqlpassj.org/hotikisu/aggbug/24835.aspx" width = "1" height = "1" /&gt;</content><wfw:comment>http://blogs.sqlpassj.org/hotikisu/comments/24835.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.sqlpassj.org/hotikisu/comments/commentRss/24835.aspx</wfw:commentRss><trackback:ping>http://blogs.sqlpassj.org/hotikisu/services/trackbacks/24835.aspx</trackback:ping></entry></feed>