トップページに戻る    DSP受験記    記事(OTN)    記事(CodeZine)    MSDN C#    @IT C#入門
2006年 2月16日から2007年 7月28日までのブログ
2007年 8月 1日から2007年10月28日までのブログ
2007年10月20日から2008年 5月 8日までのブログ
2008年 5月22日から2008年 9月 3日までのブログ
2008年 9月 4日から2009年 2月 4日までのブログ
2009年 2月 7日から2009年 5月20日までのブログ
2009年 5月22日から2009年 7月13日までのブログ
2009年 7月15日から2009年11月11日までのブログ
2009年11月14日から2010年 3月13日までのブログ
2010年 3月15日から2010年 7月21日までのブログ
2010年 7月24日から2011年 3月29日までのブログ
2011年 3月30日から2012年 1月11日までのブログ
2012年 1月18日から2014年 3月18日までのブログ
2014年 3月21日から2014年11月15日までのブログ
2014年11月22日から2015年 3月 1日までのブログ
2015年 3月15日から2015年 5月30日までのブログ
2015年 6月 7日から2018年 4月24日までのブログ
2018年 7月21日から2021年 2月19日までのブログ
最新のブログ

●2009年7月15日(水)
PostgreSQL Conference 2009 Japan - JPUG 10th Anniversary Conference
で講演させていただくことになりました。
シャレでOracleACEシャツを着て講演しようと思います :-)

予習復習と備忘録を兼ねた、まとめページを早速作りました。
PostgreSQL8.4新機能 window関数

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
新 やさしいOracle PL/SQL入門を最近、読んでるのですが
select文の結果を配列にコピーする時で、bulk collect intoが使える時には、
使ったほうがパフォーマンスがいいらしい

10-288 木のIDと節のIDのセットで識別
    open cur;
    fetch cur bulk collect into saveData;
    close cur;
--  for rec in cur Loop
--      saveData(cur%rowCount) := rec;
--  end Loop;


●2009年7月18日(土)
PostgreSQL 旅人算
で検索したら出てきた問題
連立方程式を使わないと解けなかった・・・

旅人算の問題 - 教えて!goo

池の周りをAは右回りに、BとCは左回りに同じ場所から回り始めた。
Aは毎分120m、Bは毎分96m、Cは毎分72mである。
AはBと出会ってから120m進んだところでCと出会った。池の周囲は何mか?

距離をX
出会った時間をY

Y*(120+96) = X
(Y+1)*(120+72) = X

代入法を使って
120Y+96Y=120Y+72Y+120+72
96Y=72Y+192
24Y=192
Y=8

 8*(120+96)
=8*216=1728

答えは 1728m

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
TCO削減につながるDBチューニング
現場で使えるMySQLの松信嘉範さんと、
漢(オトコ)のコンピュータ道の奥野幹也さんの記事

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
PostgreSQL8.4新機能 window関数
とりあえず、最初の6つだけ作っておきました。

8月末までは、分析関数の衝撃(PostgreSQL編)の執筆をメインに時間を使って、
9月1日から本格的に資料作りを始めて、9月30日までに資料を完成させる予定

標準SQLを意識したPostgreSQLのSQLを学ぶと、OracleのSQLの理解が深まりますねぇ


●2009年7月21日(火)
脳科学関連

手続き記憶
エピソード記憶
記憶

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
PostgreSQL Conference 2009 Japan - JPUG 10th Anniversary Conference
講演者は、参加費が無料だそうですが、
OOW2009で、エキスパートの方々の講演等は、
入門、中級な内容を消化してからでないと、理解できないと思い知りましたので、
PostgreSQL徹底入門 第2版を買ってきて勉強しておこうと思います。

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
プレゼンテーション中に聴衆を居眠りさせないためのティップス10+選


●2009年7月24日(金)
PostgreSQL window関数 --- 13. 最頻値(モード)

Oracle10gでは、OKだが
PostgreSQL8.4では、文法エラーなSQL

select extract(month from a.day1) as month1,weather,count(*) as cnt
  from DayWeather a
group by extract(month from a.day1),weather
having count(*) >= all (select count(*)
                          from DayWeather b
                         where extract(month from b.day1) = extract(month from a.day1)
                        group by weather);

ERROR:  subquery uses ungrouped column "a.day1" from outer query

インラインビューで加工しておけば、文法エラーにならなかった。

select month1,weather,count(*) as cnt
from (select extract(month from day1) as month1,weather
        from DayWeather) a
group by month1,weather
having count(*) >= all (select count(*)
                          from DayWeather b
                         where extract(month from b.day1) = a.month1
                        group by weather);

相関サブクエリではなく、非相関なサブクエリにすると何とも読みにくい :-)

select extract(month from a.day1) as month1,weather,count(*) as cnt
  from DayWeather a
group by extract(month from a.day1),weather
having (extract(month from a.day1),count(*))
    in (select distinct on(month2)
               extract(month from day1) as month2,count(*)
          from DayWeather
        group by month2,weather
        order by month2,count(*) desc)
order by month1;


●2009年7月31日(金)
doPDFというフリーソフトを使うと
ローカルのhtmlから、PDFへの変換が簡単にできるようだ。

「Print Spooler」サービスが起動した状態でインストーラーを起動して、インストールできました。

勉強会の資料は、
htmlで作成して、予習復習と備忘録用にwebで公開する。
講義の時のスライドや印刷用で、PDFが必要なら、doPDFでhtmlをPDFに変換する。
のがよさそうですね。改ページ位置の調整は、別途必要そうですが・・・


●2009年8月3日(月)
TOEICを、来年5月に受験しようと思います。

Regex Cookbookを読むという目的もあるので、
毎日コツコツ勉強しようと思います。


●2009年8月5日(水)
ソートキーに重複があった時の、current rowの扱いは、
rows指定とrange指定で異なるという実験

select sortKey,
count(*) over(order by sortKey Rows  between current row and Unbounded Following) as cnt1,
count(*) over(order by sortKey Range between current row and Unbounded Following) as cnt2,
count(*) over(order by sortKey desc) as cnt3
  from (select 1 as sortKey from dual union all
        select 1 as sortKey from dual union all
        select 1 as sortKey from dual union all
        select 2 as sortKey from dual union all
        select 2 as sortKey from dual union all
        select 3 as sortKey from dual)
order by sortKey;

sortKey  cnt1  cnt2  cnt3
-------  ----  ----  ----
      1     6     6     6
      1     5     6     6
      1     4     6     6
      2     3     3     3
      2     2     3     3
      3     1     1     1

マニュアル

CURRENT ROW

スタート・ポイントとして、ウィンドウがカレント行または値
(それぞれROWまたはRANGEを指定したかどうかに基づく)で開始することを指定します。
この場合、value_expr PRECEDINGをエンド・ポイントにできません。

エンド・ポイントとして、ウィンドウがカレント行または値
(それぞれROWまたはRANGEを明示的に指定したかどうかに基づく)で終了することを指定します。
この場合、value_expr FOLLOWINGをスタート・ポイントにできません。

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
"Your Complimentary Pass to Oracle OpenWorld 2009"
なんてメールをOracle Aceオフィスからいただいてしまった・・・

Registration | Oracle OpenWorld 2009
1995ドルが無料ってことは、日本円換算で19万円ですか・・・

しかし、サンフランシスコまでの旅費と宿泊費は自腹らしい・・・


●2009年8月6日(木)
8月29日(土)のClub DB2
申し込みました。
自宅PCに、DB2 express V9.5があるのですが、DB2のコミュニティに参加してみようということで

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
PostgreSQL Conference 2009 Japan掲載していただきました。

まとめページ
PostgreSQL8.4新機能 window関数

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
PGCon2009の予習用の教材をリストアップしてみた。
受講するセッションを決めてから、読み始めるとしよう。

****************************************************
勉強会(PostgreSQL8.4新機能 window関数)用
書籍1 プログラマのためのSQL2版
書籍2 SQLパズル2版
書籍3 SQLクックブック
書籍4 達人に学ぶSQL徹底指南書

****************************************************
セッション用
書籍1 RDBMS解剖学
書籍2 WEB+DBの記事
書籍3 PostgreSQL徹底入門 第2版

Web1 連載記事 「PostgreSQLで作るLinuxデータベース」
Web2 連載記事 「使えば分かるPostgreSQL運用&チューニング」
Web3 PostgreSQLを遅くしている犯人はどこだ?

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
I used sense of Tabibitosan B-)
10-310 ソートキーに重複がある旅人算の感覚


●2009年8月8日(土)
オラクル青山センターから見た神宮外苑花火大会
招待メールをいただいてたようですが、
ほとんどチェックしないほうのフリーメールアカウントだったので気づかなかった・・・


●2009年8月10日(月)
プログラム詳細(2日目)NPO法人 日本PostgreSQLユーザ会
公開していただきました。シャレでOracle ACEシャツを着て講演しようと思います ;-)

OracleOpenWorld2009Tokyoの勉強会「分析関数とmodel句」と同じく、
実務やOTN-JapanやUS-OTNや@IT会議室で見かけることの多いSQLを、
難易度の昇順に学ぶと、学習効率が高いだろう。というスタンスで資料を作成中です。

予習復習と備忘録を兼ねた、まとめページを早く完成させるとしよう。

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
プログラム詳細(2日目)NPO法人 日本PostgreSQLユーザ会

CakePHPな方の講演があるようだ。
プロフィール | Shin x blog
勉強会を楽しむなら発表しよう! | Shin x blog
勉強会に思うこと | Shin x blog


●2009年8月11日(火)
[Oracle] LIKE 検索では全角の'%'、'_'も特殊文字として扱われる?
マニュアル LIKE条件
OracleのLike述語では、全角の%と_もメタキャラ扱いされるらしい

SQL> select version from v$instance;

VERSION
----------
10.2.0.1.0

select
case when 'aaa' like 'a%'   then 1 else 0 end as chk1,
case when 'aaa' like 'a%'    then 1 else 0 end as chk2,
case when 'aaa' like 'a__' then 1 else 0 end as chk3,
case when 'aaa' like 'a__'   then 1 else 0 end as chk4,
case when 'aaa' like 'a\%' escape '\' then 1 else 0 end as chk5,
case when 'a%' like 'a\%'  escape '\' then 1 else 0 end as chk6,
case when 'a%' like 'a\%'   escape '\' then 1 else 0 end as chk7
from dual;

CHK1  CHK2  CHK3  CHK4  CHK5  CHK6  CHK7
----  ----  ----  ----  ----  ----  ----
   1     1     1     1     0     0     1

RegExp_Like述語は、全角をメタキャラ扱いしないようだ

select case when RegExp_Like('aaa','a*') then 1 else 0 end as aaa from dual;

AAA
---
  0

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
中堅企業向け オラクル都市伝説− シーズン2:其の一 / 日本オラクル
面白そうですね。

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
PostgreSQLの分析関数の衝撃2 (Lag関数と累計と移動累計)
公開していただきました。 window関数のarray_agg関数を使ったりしてます。


●2009年8月12日(水)
PostgreSQLメモ Valuesリストの使用例


●2009年8月17日(月)
SQL2008 windowing queries - PostgreSQL Wiki
ratio_to_reportが載ってたので、PostgreSQL8.4で使えるか実験してみた。

select version();
                            version
----------------------------------------------------------------
 PostgreSQL 8.4beta2, compiled by Visual C++ build 1400, 32-bit

select ratio_to_report(Val) over()
  from (select 1 as Val union all
        select 5 as Val) a;
ERROR:  function ratio_to_report(integer) does not exist

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
PostgreSQL window関数のまとめページを作成しておきました。
後は、印刷して配布される用と発表用のPDFの作成と、
リハーサルをしておくとしよう。

50分で26問なので、1問あたり1分半のペースということで、
OracleOpenWorldTokyo2009の時と同じ時間配分だと気づいてしまった・・・


●2009年8月18日(火)
リンク集 Lets Postgres
おお!! PostgreSQLの分析関数の衝撃がリンクされてる。

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
PHPの絵本を買ってきました。

正規表現を使うPHPプログラムと、
Javaアルゴリズムパズルで扱った、
有名なアルゴリズム問題の、ナップサック問題とナイト巡回問題と8王妃問題と数独を解くPHPプログラムを作るとしよう。
それから Apacheをインストールして、webアプリを作ってみます。

正規表現パズル PHP編
PHP For Windows: Binaries and sources Releases
正規表現 第3版

PHPコミュニティが面白そうなので、PHPの絵本を読んでおいてから、
PHP カンファレンス 2009の9月5日(土)に参加してみようと思います。


●2009年8月22日(土)
SEshop.com:第9弾 Oracle Database現場ワザセミナー Oracle SQLクイズ 〜入門編〜に事前解答したら、
当選してこれは使える Oracle 新機能活用術をいただきました。ありがとうございます。


●2009年8月23日(日)
CodeZineにOracleの階層問い合わせ3を入稿しました。

次は、PostgreSQLの分析関数の衝撃4,5,6を執筆させていただこう。
array_agg関数とかbool_and関数とかbool_or関数は、使ってて楽しいですね。


●2009年8月25日(火)
Open database life
松信さんのブログ


●2009年8月28日(金)
US-OTN 紐づく集合の一致を調べる
PostgreSQLパズル 9-56  集合が等しい組み合わせを求めるの複数列版を作りました。
PostgreSQLパズル 9-57  集合が等しい組み合わせを求める(複数列版)

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
自宅PCで、C#3.0で、オブジェクトブラウザとPL/SQL DeveloperとSQL Developer
の私が使う機能と、欲しい機能を実装したアプリをオープンソースで作ってみようと思います。

実装したい機能
・SQLの実行
・表領域とかデータファイルとかセッション一覧のレポート作成
・オブジェクト一覧
・テーブル定義の取り出し
・最小化時にタスクトレイに格納

といいつつ、C#の入門書を読むとこから勉強し始めるのですが

Microsoft Visual C# 2008 Express Edition インストール方法
書籍案内:C#.NET プログラミングマニュアル|gihyo.jp … 技術評論社
@IT:連載 改訂版 C#入門


●2009年8月29日(土)
金曜夜に明るく易しくデータベースの勉強を − @IT自分戦略研究所
第82回 【土曜開催】 さわってみよう DB2 9.7に参加してきました。

集合論とか
in述語とかbetween述語とか
3値論理とか
where句とhaving句の違いとか

の講義を受けたのは初めてなのですが、新鮮でした。本とかWebで読むのと違うよさがありました。

DB2のマニュアルが用意されてたので、クロス集計に関する部分を読んでおきました。
7-32 キーブレイク時に、指定行を出力その1

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

第4回 できるだけ短いルートでゴールに到達する - ITpro
第5回 隣の区画と異なる色で地図を四色に塗り分ける - ITpro
PHPを使うなら理解しておきたいアルゴリズム - 抽出・ソート・結合・集計 -


●2009年8月31日(月)
旅人算の感覚を宣伝してみました :-)
@IT会議室 --- 基本的な3人旅人算


●2009年9月2日(水)
Oracle Database 11g Release 2 リリース - S/N Ratio (by SATO Naoki)

11gR2のSQLの新機能を確認してみた :-)
マニュアル --- 1.3 Business Intelligence and Data Warehousing

**************************************************************************************************

ListAgg

アンドキュメントなwmsys.wm_concatやsys.straggでしたが、ついにマニュアルに載りました。 wmsys.wm_concatやsys.straggと同等の機能を持つかは不明ですが マニュアル --- ListAgg Laurent Schneider --- stragg in 11gR2 OracleSQLパズル 10-218 wmsys.wm_concat **************************************************************************************************

Nth_Value

PostgreSQL8.4で使えるNth_Value関数ですね。 Row_Number関数の値が2の行の値を求めるなどが容易になりそうです。 マニュアル --- Nth_Value OracleSQLパズル 8-53 nth_value関数を模倣 **************************************************************************************************

The LAG and LEAD functions are enhanced with the IGNORE NULLS option.

DB2 V9.5で使えるLead関数とLag関数でのIGNORE NULLS optionですね。 マニュアル --- Lag マニュアル --- Lead OracleSQLパズル 10-308 Lag関数とLead関数のignore nullsを模倣 **************************************************************************************************

Recursive WITH Clause

The SQL WITH clause has been extended to enable formulation of recursive queries. Recursive WITH clause complies with the American National Standards Institute (ANSI) standard. This makes Oracle ANSI-compatible for recursive queries. Recursive Subquery Factoring: Examples PostgreSQL8.4やDB2 V9.5やSQLServer2005で使える再帰with句ですね。 従来からあるstart with句とconnect by句の組み合わせと使い分けるとよさそうですね。 経路の総和や総積が欲しいとか、経路で枝切りしたいとかなら再帰with句のほうが向いてるはずです。 PostgreSQLパズル 再帰with句01 OracleのLevel擬似列を模倣 DB2 SQLパズル 再帰with句01 OracleのLevel擬似列を模倣


●2009年9月3日(木)
US-OTN --- I like group by usage which is called OLAP B-)


●2009年9月7日(月)
sql statement for click stream analyzing --- I like using interVal ;-)
旅人算の感覚が使えないパターン

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

残念ながら参加できませんでしたが、PHPカンファレンス2009も終わりましたし、
来年のPHPカンファレンスに備えて、細々とPHPを勉強しつつ、

11月のPostgreSQL Conference 2009 Japanの準備を始めるとします。
・PostgreSQLの分析関数の衝撃の4,5,6の執筆
・私の講演であるPostgreSQL8.4新機能 window関数のhtml資料見直し,配布資料作成,講演用スライド作成
・PostgreSQL徹底入門 第2版で予習

カナダで開催されたPGConの資料も読んでおこう。
PGCon2009: speakers


●2009年9月8日(火)
ネットワーク監視の夜勤を考える
ネットワークの運用監視の3勤2勤

最近、夜更かしして記事執筆することがあるので、早く寝て、早く起きて、朝に記事執筆するようにしよう。


●2009年9月10日(木)
OracleSQLパズルの別館を作ってみました。
といってもiswebの使用量が現在10Mで、40Mを越えないと使う気はありませんが
40Mを越えたら、勉強会の資料のPDFを引越しさせよう。
40Mを越えることは、おそらくないと思いますが。


●2009年9月13日(日)
PostgreSQLの分析関数の衝撃4を入稿しました。
次は、旅人算の感覚が登場するPostgreSQLの分析関数の衝撃5を執筆します。

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
仕事でC#を触ったら異常に面白かったので、
C#2008 express editionを自宅PCにインストールしました。
下記を作成しようと思います。

・ペースト君のニューバージョン
・ナップサック問題とナイト巡回問題と8王妃問題と数独を解くコンソールアプリ
・倉庫番のニューバージョン
・LINQのサンプル
・ラムダ式のサンプル
・US-OTN,OTN-J,@IT,MSDNのスレッドビューワを統合したGUIアプリ
・オブジェクトブラウザとPL/SQL DeveloperとSQL Developerの、私が使う機能と欲しい機能を実装したexe

自宅にC#の本がないので、C#の絵本を買ってこよう。
書籍案内:[完全版]究極のC#プログラミング ――新スタイルによる実践的コーディング

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
買ってこよう
基礎から学ぶOracle SQLチューニング --- 小田圭二さんのブログ
基礎から学ぶOracle SQLチューニング --- SEShop


●2009年9月15日(火)
.NETメディア改革論 − @IT
プログラマでメシを食うなら得意分野を持て − @IT

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
C#関連のサイトを調べてみた

Microsoft Visual C# 2008 Express Edition インストール方法

@IT
私がJavaからC#に乗り換えた10の理由
@IT:連載 改訂版 C#入門
正規表現を使って部分文字列を取得するには?[C#、VB]
正規表現を使って文字列から部分文字列を取り除くには?[C#、VB]

アルゴリズム
アルゴリズム再入門
アルゴリズム入門講座

全般
C# によるプログラミング入門
宇宙仮面の C# プログラミング
DOBON.NET
Visual C# .NET のサンプル

ブログ
いろいろ備忘録日記
窓際プログラマーの独り言 -C#の話題を中心に

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
Oracle Database 11g Release 2発表会
招待メールをいただいてたのですが、行けなかった・・・

11gR2のListAggでwmsys.wm_concatで使える、keep指定が使えるかとか
11gR2の再帰with句について質問したかった ;-)

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
Nabble - PostgreSQL - sql - ordered by join? ranked aggregate? how to?

レスする方法(英語のPostgreSQLのメーリングリストに参加する方法)が分からん :-)

anyway whether resultSet is sorted or not is not guaranteed.
therefore I recommend to use distinct.
どうせ保証されないのだからdistinctオプションのソート機能を使ったらどうでしょう。

select array_agg(distinct Val)
  from (select 1 as Val union all
        select 5 as Val union all
        select 3 as Val union all
        select 8 as Val) a;

 array_agg
-----------
 {1,3,5,8}

9.18. 集約関数
集約関数array_aggおよびxmlagg、そして類似のユーザ定義の集約関数は、
入力値の順序に依存した意味のある結果値を生成します。
現在の実装では、入力の順序は基本的に指定されていません。
しかし、並び替えられた副問い合わせから入力値を供給しても通常旨く行きます。

保証される方法は、再帰with句でRow_Numberの順序で、array型につなげていくんですかねぇ
[PostgreSQLウォッチ]第39回 PostgreSQL 8.4の新機能「再帰SQL」と最新情報

Atherwise, "Left Join" always can exchange SubQuery.Therefore we can rewrite like below.
もしくは、外部結合はたいていは、サブクエリで書き換えられますので、こう書き換えるとか

select id, array_agg(value)
  from (SELECT m.id, s.value
          FROM master AS m LEFT JOIN slave AS s
            ON (m.id = s.master_id) order by 1,2) foo
group by 1;

select id,array(select b.value from slave b
                 where b.master_id = a.id
                order by b.value) as agg
  from master a;


●2009年9月20日(日)
PostgreSQLの分析関数の衝撃5を入稿しました。
次は、PgCon2009の講演資料作成です。


●2009年9月24日(水)
JavaScriptの絵本
JavaScriptは、htmlのソースを読むのに使えるし、
Webアプリ開発では、クライアントスクリプトなので、サーバ側言語が、PHPでもASP.NETでも使われるので、
勉強しておこうと思います。


●2009年9月28日(月)
Oracleの階層問い合わせ3 (connect_by_IsLeaf,connect_by_root)
公開していただきました。


●2009年9月29日(火)
@IT会議室 --- 600万件のレコードの迅速な処理
OLAP集計が意外とニーズがあることに気付いたので、CodeZineで執筆させていただこう :-)


●2009年10月2日(金)
C#を絶賛学習中

C#の絵本
書籍案内:C#.NET プログラミングマニュアル|gihyo.jp … 技術評論社
書籍案内:[完全版]究極のC#プログラミング ――新スタイルによる実践的コーディング
秀和システム:Visual C# 2008 パーフェクトマスター
LINQテクノロジ入門


●2009年10月5日(月)
PgCon2009の配布用資料と講演用資料を作成しました。
htmlからDoPDFを使って、PDFに変換しましたが、DoPDFは凄く便利なフリーソフトですね。

配布用資料は、SQLの絵本を意識して、SQLの塗り絵のような資料にしました。
(講演用資料から、テーブルデータとSQLとSQLの結果の3つ以外を消しただけですが)
SQLのイメージを脳内で塗り絵したり、実際に蛍光ペンや色ペンで塗り絵するといいかもしれない・・・

50分で26問のハイペースなのでリハーサルをしておこう。


●2009年10月10日(土)
@IT:連載記事 「ODP.NETファーストステップ」
ODP.NET パフォーマンスチューニング 第1回
ODP.NET パフォーマンスチューニング 第2回

最強最速アルゴリズマー養成講座


●2009年10月15日(木)
Oracle OpenWorldの「裏メニュー」アンカンファレンスとは − @IT
Most Important Thing I have Learned at OOW09

頭を冴え続けさせる5つの方法


●2009年10月17日(土)
PostgreSQLの分析関数の衝撃5 (Row_Number関数の応用例)
公開していただきました。


●2009年10月18日(日)
CodeZineにOracleの階層問い合わせ4を入稿しました。
次は、Regex Cookbookを読んでから、正規表現の入門3を執筆しよう。


●2009年10月19日(月)
Oracle ACE Dinner
今月開催のサンフランシスコのOOW2009のOracle ACE Dinnerの写真です。
私も写ってるかもしれません


●2009年10月21日(水)
大西泰斗のイメージ英文法 English Brain Forceを買ってこよう。

Wikipedia 大西泰斗
大西が当初から目指しているものは、イメージによる英文法の再構築である。
大西以前の英文法書は、規則羅列型、文法ミス指摘型が主であり、
大西はそれらを機械的、パッチワーク的と批判した。
イメージとは、記号に付随する心象のことを指し、
大西の著作には、本人が描いたイメージを説明するための絵が多く載っている。
イメージは後に、フィール、身体感覚、と言い換えられ発展していく。

大西は単語や文のパターンに付随するイメージを明らかにしたが、革新的なのはそれだけではない。
大西は英語も日本語も、使っているのは同じ人間であるという点に着目した。
英語と日本語の外観の違いではなく、人間の身体感覚という内側から両言語を考察し、その共通性を示した。
大西によって英文法は、英語を分析するための手段から、英語を生産するための手段に生まれ変わった。

私は、イメージによるSQLの文法の再構築を目指そうと思います ;-)

SQLの脳内のイメージを図示して、説明するのは、大変そうですねぇ
画像ではなく、動画を作成してyoutubeとかニコニコ動画にウプ
もしくは、wmv形式をzip圧縮して、私のホームページにアップロードしても面白いかもしれない・・・

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
好きな時間に、気軽に学ぼう!OTNセミナー オンデマンド コンテンツ(無料) 
セミナーのmp3をダウンロードして2倍速で聞くと学習効率が高いかもしれない・・・


●2009年10月31日(土)
いよいよ、PgCon2009の日が近づいてきましたので
PostgreSQL8.4新機能 window関数のリハーサルしておこうと思います。

関連書籍として
SQLクックブック
SQLパズル 第2版
達人に学ぶ SQL徹底指南書
も読んでおこう。

50分で26項目なので、1項目あたり1分30秒のペースなので、
OracleOpenWorldの分析関数とmodel句と同様に
予習復習を前提とした勉強会ということにします :-)

Oracleコミュニティでよく見かける問題を、
難易度の昇順に学ぶと学習効率が高いだろうといったスタンスで教材を作成したので、
Oracle ACEシャツかOTNシャツを着て講演しようと思いますが、空気を読んでから最終判断するとします :-)

技術者のための プレゼン上達塾


●2009年11月4日(水)
US-OTN --- 再帰with句 VS model句 VS 階層問い合わせ
11gR2の新機能の再帰with句の使いどころでしょうねぇ
同じ行に再訪するのは、階層問い合わせではできませんからねぇ
こういうのであれば、なぜか10g以降では、できるようですが
select Level from dual connect by Level <= 10

さらにUS-OTNのエキスパートから、
model句のuntilは分かりづらいから、
model句のforを使おうというツッコミをいただきました :-)

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
英語 US-OTN --- 分析関数と階層問い合わせは、11gR2で同時に使えるか?

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
英語 US-OTN --- Rows in which the final quantity is equal to the initial_quantity-1
PostgreSQL8.4のarray_agg関数を使えば、exists述語を使わなくてもいいので、
分析関数のwmsys.wm_concat関数を使おうと思ったが、数値を文字にキャストするのが嫌なので止めた。

PostgreSQL8.4で解いてみました :-)

create table arraggUsage(CODE,INIT,FINAL) as
values('FR', 1, 5),
      ('FR', 3, 4),
      ('FR', 6, 2),
      ('FR',11,12),
      ('DE', 1, 2),
      ('DE', 3, 5),
      ('DE', 6, 8),
      ('DE',11,12);

select CODE,INIT,FINAL
  from arraggUsage a
 where exists(select 1 from arraggUsage b
               where b.CODE = a.CODE
                 and (b.INIT  = a.FINAL+1
                   or b.FINAL+1 = a.INIT))
order by CODE,INIT;

select CODE,INIT,FINAL
from (select CODE,INIT,FINAL,
      array_agg(INIT)  over(partition by CODE) as agg_INIT,
      array_agg(FINAL) over(partition by CODE) as agg_FINAL
        from arraggUsage) a
 where FINAL+1 = any(agg_INIT)
    or INIT -1 = any(agg_FINAL)
order by CODE,INIT;

 code | init | final
------+------+-------
 DE   |    1 |     2
 DE   |    3 |     5
 DE   |    6 |     8
 FR   |    1 |     5
 FR   |    3 |     4
 FR   |    6 |     2

さらに変形して、こんなのもありかもしれない・・・

select CODE,INIT,FINAL
from (select CODE,INIT,FINAL,
         FINAL+1 = any(array_agg(INIT)  over(partition by CODE))
      or INIT -1 = any(array_agg(FINAL) over(partition by CODE)) as willOut
        from arraggUsage) a
 where willOut
order by CODE,INIT;

同じ表の同じ列との比較であれば、exists述語を使わなくても分析関数を使えばいいケースが多いのですが、
PostgreSQL8.4では、同じ表の違う列との比較であっても、
array_agg関数によって、exists述語を使わなくてもいいケースが結構ありそうですねぇ

********************************************************************************************************
新しい業界標準「SQL99」詳細解説

■真理値型(BOOLEAN型)

 これまでSQL文の中で列値の真偽を判別する目的のためには、
「真」と「偽」をそれぞれ数値の「0」か「1」、
あるいは「YES」か「NO」かなどの文字ストリングを割り当てて表現せざるをえなかった。
SQL99では本来の意味であるTRUE(真)とFALSE(偽)およびUNKNOWN(不明)を値として持つ真理値型が提供される。

図14に「割引対象」列をBOOLEAN型に指定した例を示した。
WHERE句での「割引対象」列の真偽判定は、
新しい“IS TRUE”述語や“IS FALSE”述語、あるいは“IS UNKOWN”述語によって評価すること、
また「割引対象」列自身が述語になりうるところに特徴がある。

■配列型(ARRAY型)

 配列(ARRAY)型はSQL99でサポートされる唯一のコレクション型である。
列の中に配列を許すということは、リレーショナルモデルの考え方からすれば、
第一正規形に違反した非正規形なのでとても許されないことのように思えるが、
ユーザーや市場の強い要求によって実現した。
実際、SQL99の関連規格であるSQL/MMは、
フルテキストや空間データ情報を表現するのに配列型を多用しているので、一層標準化が急がれた。

配列型の要素には任意のデータ型を定義できるが、配列型の要素をさらに配列型に定義することはできない。


●2009年11月6日(木)
京都の地より、IT勉強会を再考してみる #2

講義形式で、資料を事前に公開し、
参加者は、独学よりも学習効率が高そうだと判断したら参加し、
参加者は、必要なだけ予習して学習効率をあげてから参加するというのは、
私にとって理想なIT勉強会ですねぇ

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
PostgreSQL Conference 2009 Japan - JPUG 10th Anniversary Conference
おお!! 参加者特典にPostgreSQLシャツが!!

これで、
OracleACEシャツかOTNシャツかPostgreSQLシャツで講演するという、3択になりましたか ;-)


●2009年11月8日(日)
US-OTN 再帰with句 VS model句 VS 階層問い合わせ
第2段です :-)

表関数を使ったり、
all_catalogとかall_objectsとかdictで作った連番表を内部結合するのも
良さそうですが


●2009年11月10日(火)
OTN --- 再帰with句 VS model句
1行が複数行になるようなケースでは、再帰with句がトレンドになりそうですねぇ
階層問い合わせが苦手としていたケースですので

新しい業界標準「SQL99」詳細解説

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
Nabble - PostgreSQL - sql - Learning about WITH RECURSIVE

Lets postgresで英語のメーリングリストに参加する方法を解説していただきたいのですが・・・
英語のリソースも含めたポータルサイトになっていただきたいと思います B-)

再帰with句は、前回の実行結果を使って再度検索するのです。実行結果全体を使うのではありません。
Recursive with-clause serchs using previous resultSet.
Recursive with-clause does NOT serch using whole resultSet.

[PostgreSQLウォッチ]第39回 PostgreSQL 8.4の新機能「再帰SQL」と最新情報 - オープンソース:ITpro
PostgreSQL 8.4.1文書 --- 7.8. WITH問い合わせ

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
PostgreSQL8.4新機能 window関数
絶賛準備中です。
SQLの脳内のイメージを瞬時に思い浮かべる反復練習をしてます。

機会があったら、「PostgreSQL8.4新機能 再帰with句」もやりたいですねぇ
US-OTNとかOTN-Japanでよくみかける問題を、難易度の昇順に、再帰with句で解いていくような

PostgreSQL Conference 2009 Japanの見所に迫る|
PostgreSQLで新たに実装された機能に「window関数」というものがあります。
これを活用することにより,今まで難しかった複雑な集計処理が簡単に書けるようになります。
でも使い方がよくわからない…という方は「PostgreSQL8.4 新機能 window 関数」のセッションに参加しましょう。


●2009年11月11日(水)
英語 US-OTN --- DB2 V9.5 allows below OLAP usages

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
gihyo.jp Lets Postgres 連動企画

私が執筆している、PostgreSQLの分析関数の衝撃も連動企画だったりする :-)

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
@IT:連載記事 「SQLクリニック」
通しで読んでおく

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
記者を強烈に萎えさせるダメリリースの破壊力 | Web担当者Forum
メールの件名とかのSN比の話

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
Oracleの階層問い合わせ4 (connect by nocycle)
今回は、connect by noCycleの脳内のイメージを解説しました。

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
スマリヤン先生のブール代数入門
現代のブール代数

ブール代数の勉強会ってニーズがありそうですが、ないものですかね


OracleMaster   TOEIC   執筆記事   オライリー   翔泳社SHOP   正規表現   ブール代数   DB2   PostgreSQL   C#