プロとしてのOracle入門

前回の仕事でOracleのセットアップをしたりもしたのだけれども、あんまり中身を理解せずに「これどういう意味なんだろうなぁ(´・ω・`)」という感じにやっていた。今後、インストールにせよ、操作にせよ、Oracleに絡む仕事を再びやることはないだろうとは思うが、BOOKOFFで200円で売っていたので何となく買って読んでみた(・∀・)

この本の対象は9i~11gで、インストールしてたのは12cだったけれども、基本的な部分に違いはないので色々と勉強になった と思う。が、すぐにきっと忘れてしまうだろう(ノ∀`)


内容は”入門”の名に恥じぬ感じで読みやすく解りやすい内容だった(・∀・)
Oracleそのものについて説明もさることながら、データベースとSQLの説明もきちんとしていて、ある意味ではデータベース関連知識の説明にOracleを用いている技術書と言えなくもない。(そう言えばEnterprise Managerの説明はなかった。まぁWebベースの管理ソフトみたいなもんだからなくても良いと言えば良いんだけども。)

故にデータベースに初めて触れるという人が読んでも有用なのではないかなぁと思った。


Oracleの試用版でも落として、記載されているSQL文を試そうかなとぐぐって初めて知ったが、Oracle Databaseって、個人使用の場合は製品版を無償で使えるのね(・∀・)

まだダウンロードしてきただけなので、何も試してないけども(ノ∀`)


P110とP112のAVG関数とSUM関数の説明で、グループ化する列名を利用したSQL文の書式の順番がなんか違うような気がすんだけど、気の所為だろうか(´・ω・`)
もしかしたらSELECT文の後は順不同でOKなのかな?
でも、もしそうだとしても実行例のSQL文を書式と同じにしておかないと初学者は「なにこれ(´・ω・`)?」って迷ってしまうのではなかろうか。

あと、ロールの説明のところでP193の図13-05とP194の図13-06の計算式の意味が今ひとつ理解出来なかった(´・ω・`)

システム権限 10個,オブジェクト権限 30個を40人のユーザーに付与するという話で、
・ロールを使用しない場合
(システム権限数(10) + オブジェクト権限(30)) x 40 = Grant文の実行回数(160)

・ロールを使用する場合
(システム権限数(10) + オブジェクト権限(30)) = Grant文の実行回数(40) ← ロールへの付与回数
ロールへの付与回数(40) + ユーザーへのロール付与回数(40) = Grant文の実行回数(80)

でGrant文の実行回数が半減するとある。

システム権限にせよ、オブジェクト権限にせよ、カンマで区切れば複数指定が可能ということらしいので、ロールを使用しない場合はシステム権限(1)とオブジェクト権限(1)で2×40=80か、Grant文1つにつき1権限のみを付与して40×40=1600でないとおかしいような気がすんだけど、どうなの(´・ω・`)?
複数指定に上限があってそれが10個ならば、160回で合ってるんだけども、それならその上限についての記述があるべきではなかろうか?

ロールを使用する場合についても、ロールに対しての権限付与はユーザーへのそれと同じとあるので、システム権限(1)とオブジェクト権限(1)で2回、それをユーザー40人に付与するので、合わせて42回にならないとおかしい気がした。なんか俺氏が読み違えてるのか未知の制約があるのだろうか。

まぁ、何にしてもロールを使った方が楽というのは解った(・∀・)

※2017/12/28追記
更によくよく考えてみると、もしかしてGrant文でユーザーも複数指定出来る?
もしそうならば、実はロール未使用で2回、ロール使用で3回?
まあこの考え方に間違いがなかったとしてもやはり、複数ユーザーへの権限付与はロールを使うべきだな。
運用において権限付与は一回限りのことではないだろうし。

こないだの仕事の時は単一ユーザーへの複数権限の付与だったからロールは使わなかったけれども。
手順書に従って権限を一つ一つ付与していたなw複数指定が可能なことを知っていたら、もっと作業時間を短縮出来たような気がする(ノ∀`)
つーかよくよく考えてみるとemを使って指定出来たのかな?
それだったらそっちの方が楽だったかもしれないなぁ。


この本とは関係ない話ではあるが、SQL文の短縮化ってされないんだろうか?
少なくともSELECT,FROM,WHEREなんてS-、F-、W-とかでも良くね(´・ω・`)?などと思ったり。可読性は減るかもしれないけれども。実際にSQL文を作成するのは一部の管理者だけで、一般ユーザーは作成されたビューを使ったり、その辺を隠蔽したアプリからデータベースを利用するからそんな短縮化は必要ないんやで(・∀・)という話なのだろうか。

一番疑問に感じたのは”SELECT * FROM ~”のワイルドカード・アスタリスク。
これ無くす方向に行った方がいいんじゃね(´・ω・`)?
FROMは予約語なんだからSELECT FROMで”SELECT * FROM”とみなすようにしちゃえばいいのに。ここに明示性は必要ないんじゃ…
たった2回のキータッチ(shiftキーを考慮すると3回)だけど、世界規模で考えたらヽ(`Д´)ノ ←こういう時だけ都合良く”世界”とか言い出したり、主語を大きくするタイプ


なんかぼけらーとニュース記事を眺めていたら、
オラクルデータベースは現行12cからいきなり「18c」に–ラリー・エリソンCTO

現行のOracle Databaseは「12c」シリーズだが、最新版はいきなり18cとなった。この点についてEllison氏は、「2018年モデルだからだ。自動車の新モデルみたいだろう」と笑いながら言うだけで、次期バージョンが「19c」になるのかといったナンバリングパターンの変更にあまりこだわりはないようだ。

( ´・ω・)エ?