中山テック 代表の中山です。

※開発者向けのお話になります

この業界に携わり、弊社事業のHP制作・SEO対策以外はほぼバックエンドとして従事してまいりました。
以前もお話しましたが、初めての現場ではデータベースに触ることもなく、4年間を過ごしてきました。

そんな中、当時の現場にいたフリーの先輩が「データベースが出来ないとダメ」というお話を頂きました。
もちろん、その時はよくわからなかったのですが転職してさっそく洗礼を浴びました(笑)

まともにSQLが書けない

要するに「欲しいデータを引っ張って来れない」ことを意味します。
当然時間のない中でSQLを作成してデータを引っ張るのは難易度は高いものですが、基本の部分が弱く
有識者に聞いたり本読んだりネットで調べたりして少しずつできるようになってきました。

システムが複雑であるほどテーブルの持ち方は複雑になる

当然ですが、データベースのテーブル構成は正規化された上で構築されています。
1つのテーブルに収めることはマスタ以外はほぼなく、キーのテーブルから派生し、多くのテーブルが繋がっています。

初心者に毛の生えた代表からするとどうやって調べればいいんだろうという所から始まります。
家で実践しようとしてもどんなシステムのどんなテーブル構成にすべきかがわかりません。

結局、仕事場のデータベースの複雑な構成から「○○のデータを取ってみよう」と合間を見てはSQLを書いたもんです。

結合させる

内部結合と外部結合というものがあります。
内部結合は簡単なのですが、外部結合は結合対象のレコードのいずれか(LEFTなら左側)があれば表示といったのが難しかったです。
テーブルを結合するにあたり、引っかかったら欲しいけど、なかったら空白表示で構わないよって場合に使います。

一人のユーザに対して複数レコードを取得する場合もあれば1レコードだけ欲しい場合もあります。
1レコードの時はPRIMARY KEYでの結合を心掛けることで実現できると思います。

検索結果が遅い

SQLの書き方については基礎ですが、今度はスピードが問われるようになります。
当然、INDEXが貼ってあるか、日付は範囲で検索しているか、他チューニングでの禁止事項に抵触してないかetc・・・

本番作業でのSQLを実行する際は、事前に実行計画で変なSQLでないかを調査します。
その上でテスト環境で実行し問題ないことを確認します。

ここまで出来るようになればチューニングもお手の物かと思います。

まとめ

データベースと言ってもOracle、DB2で異なる点がいくつかあります。
もちろん、基本の部分は一緒ですが出来る事が増えることにより差がわかってきます。

特にバックエンドでもフロントエンドでもお互いを意識しない開発なんぞあり得ません。

どうデータを持って活用しているか、調べる際にはデータベースを活用します。
データベースのノウハウを蓄積することで、SEとしてのレベルアップも図れると信じて止みません。

最後に 中山テックについて

中山テックでは下記のお仕事を承っています。

ホームページ制作系

ご料金はサービス内容・料金を参照ください。

■ホームページ制作
※ロゴ、バナーは外注となります
■SEO対策
Googleガイドライン診断、マネジメント、ブログ執筆など

システム開発系(SES請負契約向け)

■役職
プロジェクトマネジメント、PMO、リーダー、開発(要件定義~納品まで)

■スキル
工数見積(FP法)、折衝・提案、計画、調査、設計、実装(C、Java、クライアント系、SQL等)、データベース全般、テスト計画・項目作成、運用・保守

その他

Excel、プログラミングなどソフト系のお困りごと

対象地域

千葉県:東葛エリア(松戸市、柏市、我孫子市、市川市、流山市、船橋市、鎌ヶ谷市、白井市、浦安市)、市原市 他要相
茨城県:取手市、土浦市、他要相談
埼玉県:三郷市、草加市、春日部市、他要相談
東京都:23区、他要相談

ご質問ございましたら、お問い合わせページよりご連絡ください。