この記事は「データベーススペシャリスト資格に興味はあるが、どのようなものか?どう学ぶのか?」という方向けに、具体的な内容と私自身の挑戦ログをお伝えする。学び中の方や、これから学ぼうとされる方の参考になれば幸いだ。
今回は知識(関係演算)およびSQL(確認ドリル)について書く。また、当資格で実務を扱う際に避けて通れない税金について復習する。
※この記事のSQLはGoogle Big Queryに準拠
知識(関係演算)
前回おさらい
- データベーススペシャリスト資格について「そもそも何?」「大事なポイントは?」「何の役に立つの?」は過去記事にてまとめ済
- 本試験について過去問ベースの学習を進めていく。
関係演算
- データベースは抽象概念なので、数学の言葉を使うことが多い。そのときはわかりやすい言葉への置き換えが重要であった。
- ここでいう”演算”とは”表に対しての操作”と置き換えすればよい。
- 選択は条件に合致する行を抽出する。SQLで言えばwhere。
- 射影は指定した列を抽出する。SQLで言えばselect。
- 結合は複数の表を結合キーで突き合わせてまとめる。SQLで言えばjoin。
結合について
- 結合の基本は内部結合(inner join)であり、結合キーが一致した行のみ抽出する。
- なお、内部結合したときに結合キーの重複を残したものを当結合、一つにまとめたものを自然結合と呼ぶ。試験問題で「自然結合したものはどれか」など問われることがあるので注意したい。
- 外部結合(outer join)にはleft outer joinやright outer joinnなどがある。
- なお、これら結合演算の本質(実務において重要なポイント)や、SQLの具体イメージは過去記事参照
商演算
- セットものを探す演算
- 関係表1と関係表2において、「関係表2の行値をすべて含むような関係表1の行」から、「表2の属性をのぞいた結果」を求める演算。
試験問題例
- 関係RとSについて、R÷Sの演算結果を問う問題。Sは1列3行で”商品”列にa,b,cの値を持つ。これをセットものと考え、R列(2列10行で”店”および”商品”列を持つ)の中から一致するものを探し、”店”列の値のみ抜き出すのが商演算。(H27問9)
- 属性(列)がn個ある関係(表)の異なる射影(select)は幾つあるか。答えは2のn乗。ポイントは、専門用語を馴染みやすい用語に置きかえることと、実際に書いてみること。たとえば列a,b,cがある場合、selectの組み合わせは「a,b,c,ab,bc,ca,abc,無」の8個である。(R3問9)
- 関係R,Sの等結合演算は、どの演算によってあらわせるか。答えは直積と選択。等結合がinner joinであると知っていれば、cross joinしたあとでwhereしたものだとわかる。(H30問9)
- 直積に関する記述はどれか。答えは2つの関係における、それぞれのタプル(行)の全ての組み合わせの集合である。これは直積(cross join)の仕組みを知っていればわかる。なお、実務上の利用シーンでは「年度ごと売上表について、その表と、1年ずらした表の直積を取り、年度ごと比較をできるようにする」などがあった。(R2問9)
- “商品”表と”納品”表を商品番号で等結合したものはどれか。答えはinner joinしつつ商品番号列が2つあるもの。(H27問10)
9月22日復習時追記
- 集合演算については午前2で数問出題されるのみであり、対策済。
問題040(SQL確認ドリル)
問題文
- 「customer」テーブルから、最高齢の顧客の誕生日(birthday)を取得してください。
null, where, order byのおさらい
- まず、単純に誕生日(birthday)を昇順で並べて最初のデータを取得すると、nullのデータがヒットしてしまう。
- そこで、まずnullは除いたうえで並び替える処理を行う。
- 具体的には以下のとおり、whereとnullを使用する。(赤枠)
税金について(使われ方の全体イメージ)
前回までのおさらい
- まず最初に、「税金」の定義を「なるべく公平になるようルール化された、国民が出し合う経費」と一旦置いた。
- すると、「出し合う経費」の部分について次のような疑問がわいた。すなわち、「どのような税をどれくらい出し合っているのか?」「経費としてどのように使われているのか?」などだ。
- そこで、前回はまず「どのような税をどれくらい出し合っているのか?」について確認した。結論は「国民は税金として、大まかに所得5.2:資産1.4:消費3.4の支払いをしている」「社会保険(健康保険・年金)はまた別である」だ。
- 今回は「税金は”経費”としてどのように使われているのか?」を確認したい。
国レベルの使われ方
- まず単純にGoogle検索で「税金 使われ方」などで調べると上位ヒットするのが、国の歳出だ。
- 国税庁ホームページに掲載されている令和3年度の歳出は以下のとおりだ。
- なお、令和3年度は2021年12月に補正予算が約36兆円追加されたため、実際の総計は142兆円程の規模となる。(補正予算の内訳は財務省 令和3年度補正予算参照)
(出所)国税庁 国の一般会計歳出額 内訳(令和3年度当初予算)
国と地方まとめての使われ方
- ただし、税金は国と地方に納めるので、上の図だけでは支出の全体感(国と地方の支出総額)はわからない。
- そこで、総務省ホームページを見に行くと、平成30年度に国・地方通じた総支出(重複分のぞく)は約169兆と記載されており、国・地方の内訳も掲載されていた。
- 日本の総人口約1.26億で単純に割ると、国と地方の税金による経費は、おおむね一人当たり年間134万円くらいの負担ということになる。
- (ただし、歳入の時点で国債約43兆、地方債約10兆を発行しているので、年間負担分の約1/3は個人レベルで言えば借金にあたる)
- ここからダウンロードできるエクセル表には金額の記載がなかったので、総額169兆円を「予算全体に占める割合」で単純に割り戻したのが以下表である。
- たとえば国が100%出している防衛費は以下表では5.4兆円となっており、上図に記載の「防衛関係費」と概ね一致しているので、「大まかな内訳」を知る目的としては使えそうなことは確認できた。
- なお、各項目の具体的な内容は、国は国税庁の学習コーナーに、地方は総務省の地方経費の内容に掲載されている。
(出所リンク先)総務省 平成30年度の地方財政の状況
社会保障
- 上の表に関連して、いくつか確認したことを補足する。
- №5民生費と№14年金関係は総額約50兆ともっとも高額だ。ただ、社会保険(健康保険・年金)は別にあるのに、税金でもこんなにかかるのか?と疑問を持った。その点については財務省ホームページに記載があり、年間総額130兆の社会保障制度のうち、約50兆は税金で、約80兆は社会保険料で賄っているらしい。(参照:財務省 増大する社会保障とは何か、厚生労働書 社会保障額の推移)
- 参考までに、日本の総人口約1.26億で単純に割ると、社会保険としての経費は、おおむね一人当たり年間約64万円くらいの負担ということになる。
公債費
- №10公債費はいわば借金の返済であり、総額約35兆と社会保障費の次に大きい。内訳は大まかに国債分が約23兆(うち15兆が元本返済、8兆が利息払)、地方債分が約12兆(うち11兆が元本返済、1兆が利息払)だ。
- 目を引くのは利息払が総計9兆もある点だ。国債は約900兆、地方債は約150兆まで積みあがっており、利率が高かったころの返済もあるのでかなりの額になっていることがわかる。
- 参考までに、日本の総人口約1.26億で単純に割ると、国と地方の税金による経費のうち、おおむね一人当たり年間約28万円くらいが借金返済に充てられており、うち約7万円は利息払分ということになる。
- 日本の国債推移については財務省 我が国財政についてを参考。利息払の金額推移はスライド17枚目に記載されている。
- 地方債の残高推移については総務省 地方財政の借入金残高を参照。また、地方債の内訳については総務省 地方経費の構造(1)義務的経費>ウ.公債費を参照。
教育費、衛生費
- №2学校教育費と№4社会教育費は総額約20兆と次に高額だ。教育は個人的に興味があるテーマなので、次回深堀したい。
- 最後にイメージしやすいものとして、№1衛生費は補足欄にあるとおり「保健所・ごみ処理等」とある。内訳は大まかにごみ処理2.3兆、公衆衛生3.6兆、その他0.4兆となる。(参照:総務省 平成30年度の地方財政の状況>地方経費の内容)
- たしか、池上彰先生がクイズで「ごみ処理の国民一人当たり負担額」を出題していた記憶がある。答えは約1.9万円であり、これは支出総額2.3兆円を日本の人口約1.26億人で割った数字だ。
- このように「国民一人当たりの負担額」を意識すると、税を身近に感じられて面白い。なお、すごく大雑把に計算すれば、たとえば「ごみ処理の税支出が2兆、一人当たりが2万(1億で割った場合)」のように、税支出と一人当たり負担額の数字部分が一致しパッとわかりやすい。
国民一人当たり負担イメージ
- 最後に、税金を身近に感じる目的のため、超概算であることを承知で「国民一人当たり経費負担イメージ」を作成してみた。
- 平均年収は約433万と想定(令和2年分 民間給与実態統計調査より)
- これを手取り、社会保険、国税・地方税に分類した円グラフは以下のとおり。
- 国民所得をベースとした国民負担率は2020年度に47.9%とのこと(参考:ニッセイ基礎研究所レポート)なので、そこまで外れてはいなさそうだ。
考察
- データベーススペシャリスト資格について。今回は関係演算、結合について復習した。結合(join)は以前SQLでも学んだため再度の復習となる。また、SQLの確認ドリルを解いた。お題はnull(空白)の除外、データの並び替えだ。
- 考察。実務や生活において必須の「税金」について学び直している。今回は「税金の使われ方」について「総支出および内訳」を確認した。また、あくまで個人の学習用として「国民一人当たりの年間負担イメージ」を以下のとおり作成してみた。自分ごとに捉えると、税を身近に感じられて面白い。
- たとえば「ごみ処理費の年間約1.9万円」は分別を心掛けるきっかけになる。また「教育関係費の”年間約16万円”は子どもの数を考えると高額だが、使われ方は?」や「借金の元金返済と利息支払いで”年間約28万円”は多いが、今後の見通しは?」など次々疑問が沸く。
考察のシンプル化と英訳(練習中)
- I feel knowledge of tax interesting. because I can feel it close to me.
- (税の知識は面白いと思います。それを身近に感じることができるからです)
参考資料
- 2022年度版 ALL IN ONE パーフェクトマスター データベーススペシャリスト/TAC
- 集中演習 SQL入門/木田和廣/株式会社インプレス(SQL確認ドリル)
- 図解いちばん親切な税金の本21-22年版/高橋 創/ナツメ社(税金について)
コメント