「インデックス」を含む日記 RSS

はてなキーワード: インデックスとは

2019-03-19

ギョーム改善ってよく言うけど

普通にギョーム2世って言えばいいのにな。数字インデックス振ると微妙にわかり辛かったりするのは分かるけれど。

2019-03-13

anond:20190313014443

SAOレイプや今僕レイプは傷ついているor恐怖がちゃん描写されていて、そこから連続した物語の中で勧善懲悪で殴るのに

ラブひなインデックスのようにちょっとしたことで女が男をパンチして、性的暴力の恐怖や怒りを描かずそんなことで殴るとでも言いたげなレイプ漫画は悪

今僕のように後日再開したイケメンが女から避けられる部分もちゃんとかけ

2019-03-07

最高裁 生活保護」とかで検索しても昨日のニュースすら出てこないのはなんで?

ホンマgoogleがどうかしてんのか知らんけど

かなり重要ニュースのくせしてインデックススコア低いのなんでなん…

みんなそこそこ興味あるはずやろ…

2019-03-03

anond:20190303222937

インデックス最初から話が難解だよ

21世紀宇宙の旅と同じくらい考えても理解できない部分がある

anond:20190303222645

やっぱ三作目ともなると落ちてくるよね

インデックス今季はいまいち

2019-02-28

anond:20190228170724

めんどいしノーリスクからと思って普通預金にたまりっぱなしなんだよなあ

いい加減そういった投資にも目をむけたほうがいいのかなあ

普通預金は300万のこして2000万はなにかにつかおうとおもえば使えるんだよな

何がいーだろなー

めんどければとりあえずインデックスってのはどっっかでみたけど

2019-02-06

49歳 50人程度規模企業での収入晒す (追記あり)

https://anond.hatelabo.jp/20181201054847

を見て、参考になるかと思い、書く。

生立ち

母子家庭だし、裕福ではなかった。喘息

公立小学校公立中学校高等専門学校。なお、貧乏から高専行った、という事情の人はめっちゃいるようで。私もその一人。奨学金と言う名の借金の返済が早い&破産が少ないのは高専卒だと、どこかで読んだ。

高専にしたのは正解だった。なぜか頭良さそうに見えるらしい。世の中のほとんどの人は大卒or高卒のため、高専卒をイメージできないのではないかと。ふろむださんの「錯覚資産」みたいなものか、、

社歴

1社目: ちょうどバブル全盛期で、母校にも空前の求人が来ていたらしい。一人あたり5社~10社。同期もみんな社名を聞いたことがある企業に。私は一部上場の子会社就職しかし、大企業の子会社でも、やってることは業者 (って言ってもNEC・Unisys・IBM) に仕事放り投げるだけ (のように見えたのよ、若いから)。つまらなくて、あっという間に辞める。

2社目: 現在の勤め先。当時は20名弱の会社自分で手を動かせる仕事ができそう、と選んだ。吹けば飛ぶような超零細企業だと思っていたが、、まだ存続しているし、従業員が倍以上になった。

現時点の認識だが、この転職も正解だった。

会社は、人数の大小ではなく、元請けかどうかというのはかなり大きい。もう一つは、業界競争が激しいかどうか。勤め先は超ニッチ業界

正直なところ、偶然そうなっただけ。

収入

現在役職技術系の部署担当課長とでも言うのか、課長相当・部下なし。まわりからは、それなりにリスペクトされている、ようだ。年収は約950万円。月の手取りは40万~45万くらい。残業代全額支給 (30H/月くらい)。数年前は90H/月近く働いて1000万を超えた。賞与は年間6ヶ月前後

年収が1,000万超えたときは、マクドナルドバーガーキングにしたが、BK閉店でマクドナルドに戻る。

家族

妻とは職場で知り合って、現在専業主婦子供は1男1女。小学生と2歳。娘超可愛い

支出

妻はお金管理からっきし駄目なようで、私が管理している。

食費は、、約3万。ほぼ外食しない。

保険料、、約6万。

住宅ローン、、約4万。フラット35。家は結婚前 (40前) に建てた。月々6万。10年経って、フラット35でも借り換えできることに気づき、実行。金利3%→1.3%になり、2万支払いが減った。ローンは1,000万を切った。繰り上げ返済はできるけど、うっかり死んじゃったときは団信が払ってくれるから、そのまま。

ローンは、当時の年収 (600万) の3倍以下になるようにした。結果的に2.5倍でローン組んだ。頭金を同額以上突っ込んだ。

お小遣いは、、決まってない。無制限。妻は、私がお金使わないのを知っているため、何も言わない。一度だけ「私に隠れてお金を使っているでしょ」と疑われたのでExcel小遣い帳を見せてあげた。「x月の支出: 3千円」を見て、クスッって笑われた。

車は (運転が) 怖いので持っていない。

電気・ガス・水道含めて1ヶ月8千円から1万5千円。

通信費は、携帯・光合わせて1万円/月。

NHKは、、契約していませんので、って言ってたら最近来ない。

預金は4,500万、投資信託450万。なお全部インデックスファンド、、

毎年、預金が3-400万増えていく。

から収入になっても、この暮らしぶりが続くなら、15年はもちそう。

まとめ

私と妻に共通しているのは、貧乏、でしょうか。そのため、慎ましく生きてます

妻のほうが倹約家で、ケチな私が、そこまでしなくても、、と思うレベル

美容院殆ど行かない。毎月QBハウスに行く私のほうがお金かかってます

妻は、他の家庭が家族旅行かに行くのを、うちより収入が多いから、と思っているようですが、多分違います

おそらく、他の家庭は、収入なりにお金を使っているのだと、、

でも、生活レベルを上げるのに躊躇する、というか、そんな気が起きないです。

子どもたちには、自分のような思いはさせたくない、それだけですね、、

追記

皆さんブクマありがとうございます

皆さんのコメントの中からいくつか選びコメント書いてたのですが、全部消えてしまい、心が折れました、、

なので、超端折ります

2019-01-17

(補足しました)Web制作フリーランス13年目の経験から

https://anond.hatelabo.jp/20190116002617

これの補足です。

消費税について

消費税納税が辛い辛いって書いたら「消費税請求してないの?」という主旨のコメントをいくつかもらった。もちろん請求してるし、それを収めるだけなので辛いとか痛いっていうのは道理にあわないのも百も承知である。「むしろ払うのが普通で売上1000万以下の事業者免除されてるだけだぞ」というお叱りはごもっとである(震え声)

ちなみにブコメトラバで、H35年から1000万以下でも消費税納税必須になるということを教えていただいた。

https://anond.hatelabo.jp/20190116091309

フリーランスにとっては大きな問題だよね。そして「平成35年は訪れないからへーきへーき」というトラバとそれにぶら下がる一連のトラバが草

なんでもかんでも経費にすんなや!

いちおう事務所、車、水道光熱費通信費などは税理士さんに相談のうえ、自宅用、事業用でしかるべきかたちで按分してる。あまり無茶して税務調査にひっかかったら税理士さん自身の失点になるわけなので、まあ常識的な感じでやってると思う。その他雑多な支出に関しては、俺がこういう細かいところで悩むのは時間無駄なので、記帳をお願いしてる嫁には「あまり深く考えず少しでもグレーならとにかく全部経費計上して」と伝えてる。んで税理士さんから「これはちょっと・・・」と困り顔電話が掛かってきてストップしてもらうイメージ

余談だが、クレジットカード明細を確認する嫁に「この<ディーエムエム>ってなんだっけ?」と聞かれて返答に窮するのが我が家春の風物詩になっている。適当お茶を濁すけどね。最近では「ファンザ」になってるのだろうか。怖くて明細見てないがお茶を濁すのが難しくなるな。

はてぶスターも経費?

実はスター買ったことないのでここは冗談だったのだが、はてなプレミアム会員?だっけ?有料のやつは経費にしてる。ブログでの情報発信業務のうちなので(しか全然ブログ更新してないので現状無駄金だ)。ちなみに言われて考えてみたのだが、スターだってもし本当に買えば情報収集にかかる費用として経費計上ありなのでは?とも思う。ITWebに関する情報市場動向、国内海外情勢に関する情報なんかでブコメが参考になることは多々あるし、そういったブコメカラースターをつけるのは業務と不可分だといえば通らなくもないような。。。知らんけど。

つの日か数百万円分のカラースターを購入し全額経費計上して税務署に睨まれて「このダジャレについてるカラースター業務と不可分ですか?」などと突っ込まれて慌ててみたい。そしてカラースターの按分計算についてマルサと激論を交わし、横で見てる税理士さんに「だからわんこっちゃない」とため息つかれたい(ついでに<ファンザ>も「ソフト代」として費用計上してることがバレて赤っ恥かきたい 注:フィクションです)。

13年前は増田はなかった。はてブ会社員最終年だけ

了解です。ここもまあ言葉の綾なので、適宜「2ちゃん」「人力検索はてな」「Macお宝鑑定団」「侍魂」などに置き換えて読んでいただければと思います

103万の壁は社保を度外視すれば161万くらいになった。社保を考えると前と同じで130万の壁です。

そうなのか!この辺の話かな https://townwork.net/magazine/knowhow/taxes/62818/

よくわかってないので調べてみよう。ありがとうございます

iDecoは?自宅事務所の按分は?節税対策は?

デコやってるよ。先進国インデックスファンドと、新興国インデックスファンドを買ってる。でも子供が最も金かかる時期なので掛金額はいま減らしてる。按分は上記の通り税理士さんにお任せで、しかも決めたのがずっと昔なので正直覚えてないのだが、半々くらいだったと思う・・・節税対策もやはり上記の通り税理士さんお任せなので参考になる情報はほぼ持っていない。すまん。しかしどうなんでしょう。Webデザイナーという元々が低コスト職種だと、できる節税対策ってあんまりないような気もしています。せいぜい売上が1000万近辺になりそうな年度のときに、1000万未満を死守する程度かなと。

その他

2019-01-09

anond:20190109031509

貰うには理由がいるし

避妊したい、ってだけでOK

飲んでも妊娠可能性はかなり高いし

理想的な利用ではパールインデックス値0.3とかなり低く、これより低いのはミレーナ(薬剤付加IUD)か避妊手術しかない

副作用ホルモンバランス崩れるし

海外じゃ数十年に渡って多くの女性が使ってきた実績があるもの安全性確立してる

デマ広めるの止めようよ

2019-01-07

Ideapad100にUbuntu18.10カスタムインストールできない

今日はお休みから 500GB くらいの HDD の少し前の Lenovo マシンUbuntuインストールして次のお休みに備えようとか考えてる皆さんこんにちは
インストール時に絶妙に詰まったので解決策を増田に書きます

Lenovo ノートWindows リカバリ領域を潰さずにカスタム領域インストールでいけるかなとしょっぱいこと考えて詰まった人限定情報です

Lenovo に限らず最近ノート PCリカバリ用隠し領域かいろんなふうに細かくストレージを区切ってあるのですが、それがあんまり多く、なおかつノートディスプレイの縦領域が狭いと
https://i.imgur.com/RludEqL.jpg
こんなふうにパーティション編集ウィンドウが半分までしか表示されません
この下に新しいパーティションテーブル作成ボタンとかブートローダ指定メニューとかインストール決定ボタンとかあるのですが見えません
これの解決法を書きます

理屈上はできますが怖いです。パーティション操作でこれをやりたくはないです

そんなものありません。タテ解像度が3桁なのはいまどきどうなんだろうまあなんとかなるかと思って思い切って買った古傷をえぐらないでください

これです。古い人は各種 PC-UNIX で一度は使ったことがあると思います(設定したところ昔使ったのとなんか違うんですがまあいいです)
デスクトップに戻ったほうがやりやすいのでインストールは閉じるボタンで一旦中止してください(オンメモリ Ubuntuデスクトップに戻ります
手順としては「接続ディスプレイ名を xrandr で調べる」「希望解像度の設定を cvt コマンドで参照する」「xrandr --newmode で新しいモードを作る」「xrandr --addmode で当該ディスプレイの設定に追加する」の4本です。んがんぐ

端末というアイコンアプリを画面左下から起動してください

$ xrandr | more
Screen 0: minimum 320 x 200, current 1368 x 1200, maximum 8192 x 8192
eDP-1 connected primary 1368x768+0+0 (normal left inverted right x axis y axis)
 344mm x 194mm
   1366x768      60.00 +
…

"eDP-1 connected primary 1368x768+0+0" ということで、eDP-1 という内蔵ディスプレイに 1366x768 で接続中です。これを 1366x1200 くらいにタテに伸ばしま

$ cvt 1366 1200
# 1368x1200 59.87 Hz (CVT) hsync: 74.54 kHz; pclk: 137.75 MHz
Modeline "1368x1200_60.00"  137.75  1368 1464 1608 1848  1200 1203 1213 1245 -hsync +vsync

なんか 1368 になってて怖いのですが cvt コマンドさんを信じて Modeline 以降の記述をそのままコピペで使います
コピーペーストは 18.10デフォルト端末の場合範囲選択して右クリックふつうにいけます

$ xrandr --newmode "1368x1200_60.00"  137.75  1368 1464 1608 1848  1200 1203 1213 1245 -hsync +vsync

タテ 1200 の設定が書き込まれました。モードとして設定画面に反映させます
eDP-1 は最初に調べたディスプレイ名を、1368x1200_60.00 はさっきの " " で囲まれ文字列を書いてください

xrandr --addmode eDP-1 1368x1200_60.00

できました。また左下から 設定-デバイス-ディスプレイ とたどって、画面解像度から 1200 のやつを選んでください


……。なんか思ってたのと違うんですが(画面端にマウスをやると余剰解像度部分にすーっと動くやつを想像してた)、まあ、ウィンドウは全部見れるようになったのでよしとしましょう
不要になったら戻しておいてくださいね

2019-01-04

DBでインデックス貼ってないから遅いとか、サブクエリも使えないとか、レベルの低い派遣の例がでてるけど、その程度は「猿でもわかるSQLドリル」みたいな本を一冊読めばクリアだよな。

そこらあたりができたら時給2500円なら夢があるな。

anond:20190104151736

SELECT * FROM XXX ORDER BY YYY,ZZZ とか書いておきながら糞呼ばわりは無いぜ…

ちゃんとORDER BYにはインデックス指定してあるカラムSELECT減らせ教えたやろが…

2018-11-23

anond:20181123234930

ノートブックのタイトルに番号を降るだけであらふしぎ驚きの使いやすさのインデックスが。

01_取説

 010_スマホ取説 みたいなかんじ。

 

なにもアイデアが出ないなら国際図書分類番号とかもながめとけば。

2018-11-19

増田プログラマー養成講座 その22 データベース設計 概念物理

前回は、DB設計の(1)要件定義を学びました。

今回は、DB設計の(2)概念設計、(3)論理設計、(4)物理設計を見てみましょう。

 

DB設計の流れ

  1. 要件定義
  2. 概念設計
  3. 論理設計
  4. 物理設計

 

DB設計の教材

データベース解説本やWeb記事を調べてみた。

  1. 本「スッキリわかるSQL入門」 第12章 テーブル設計 https://book.impress.co.jp/books/1111101167
  2. Web記事「できるエンジニアになるためのちょい上DB術」 https://www.edifist.co.jp/lecture/dbdesign/

 

スッキリわかるSQL入門」のDB設計説明コンパクトにまとまっていて、分かりやすいと思いました。(是非一度読んでみてください。)

 

 

 

概念設計論理設計物理設計概要

スッキリわかるSQL入門」第12章の説明(p.374)を参考にしてみよう。(詳しくは本を読んでみてください。)

 

概念設計

管理すべき情報はどのようなものなのかを整理します。

データベースシステムに関することは考えず、要件に登場する情報だけをザックリと把握します。

たとえば、家計簿データベースであれば、扱うべき情報として「利用者情報」や「入出金情報」などがあることを明確にします。

また、情報間で関連がある場合、どのような関係があるかも併せて整理します。

 

論理設計

概念設計で明らかになった各情報について、RDBを使う前提で構造を整理し詳しく具体化していきます

論理設計では「どのようなテーブルを作り、それぞれのテーブルにどのような列を作るか」まで明らかにすれば十分です。

型や制約など、付随的な部分については考えません。

 

物理設計

特定DBMS製品(たとえばMySQL)を使う前提に立ち、論理設計で明らかになった各テーブルについて、その内容を詳しく具体化していきます

すべてのテーブルのすべての列について、型、インデックス、制約、デフォルト値など、テーブル作成必要なすべての要素を確定させます

この物理設計に基づいて、CREATE TABLE文などを含む一連のDDL文を作成し、最終的にデータベース内にテーブル作成することができます

 

本書の「図12-4 データベース構築のおおまかな流れ」も参考にして欲しい。

入力 お客様要件(全国の倉庫商品があって、その在庫管理したいんだけど~)

 

 

●処理 DB設計作業

 ・概念設計:(商品)(在庫)(倉庫) …ER図を作成

 ・論理設計:[商品][在庫][倉庫]    …正規化

 ・物理設計:[SHOHIN][ZAIKO][SOUKO]  …使うDB仕様に合わせてテーブル定義表を作成

 

 

●出力 DDL

 ・CREATE TABLE

 ・CREATE VIEW

 ・CREATE INDEX

 

 

 

(2) 概念設計

 

ER図とは?

ER図とは、「Entity-relationship Diagram」(実体関連図)の省略形だ。

 

ER図の用語

コンピューター用語英語ばっかりだから日本語にして欲しいよねw

 

ER図の書き方
  1. エンティティ―」は四角い箱で書く。
  2. 箱の中にエンティティ―の詳細な中身=「アトリビュート」を書く。
  3. 箱と箱を「リレーション」の線でつなぐ。
  4. 線の両端に「カーディナリティー」「オプショナリティー」の記号を書く。

 

ER図で使う記号は、「IE記法」や「IDEF1X記法」など、いろいろな規格がある。

情報処理技術者試験のデータベーススペシャリストの問題では、「UML」という図の記法も使われる。

 

 

 

(3) 論理設計

 

正規化とは?

正規化 Normalization」とは、データの形を「正規形」(Normal form)に変えること。

ざっくり言うと、テーブル(表)を分割して、データの重複や不整合を解消する作業だ。

 

テーブルの形を変えていくステップには、第1~第5まで5段階ある。

  1. 第1正規
  2. 第2正規
  3. 第3正規
  4. 第4正規
  5. 第5正規

それぞれの変形方法について理解しておこう。

実務では第3正規形まで正規化できればとりあえずOK

 

第3.5正規形(ボイス-コッド正規形)

第3正規形をより厳密にした「ボイス-コッド正規形」という形もある。

第3と第4の間なので「第3.5正規形」とも呼ばれている。

(ボイス-コッド形もカウントに入れたら、第1~第5、+第3.5で計6段階になる。)

 

非正規

正規化を進めると、SQLJOIN」の利用が増えてくる。JOINを多用する処理は遅い=DBの性能低下につながる。

第3正規形まで分割しても、実際に使ってみて遅い場合は、第2正規形や第1正規形に戻して使うこともある。これを「非正規化」とか「正規化を崩す」などという。

 

RDBでは処理速度が遅くなる場合、代わりに「NoSQL」を使う場合もある。

 

 

 

(4) 物理設計

 

時間がない場合、先にGUIDB管理ツールでデータベース作成してしまい、その後でテーブル定義表を作成することもある。

 

DB設計に慣れてきたら上記の各段階はすっ飛ばして、いきなりデータベースを作れるようになるだろう。

 

ここまで、SQLの使い方やデータベース設計について学びました。

次回は、その他のSQLに関連する話も見てみよう。

 


anond:20181015215004 未経験からプログラマーなんだが全然からない

anond:20181016015826 増田プログラマー養成講座 その1 パソコンの用意

anond:20181016164341 増田プログラマー養成講座 その2 プログラムデータ+処理、プログラム言語の種類

anond:20181016180059 増田プログラマー養成講座 その3 構造プログラミングの基本(順次、反復、分岐

anond:20181016193144 増田プログラマー養成講座 その4 子ども向け教材「Scratch」で構造プログラミング練習

anond:20181017161003 増田プログラマー養成講座 その5 オブジェクトとは何か?

anond:20181017191404 増田プログラマー養成講座 その6 OOPの種類、PHPの準備

anond:20181019181549 増田プログラマー養成講座 その7 OOPの仕組み(前半)

anond:20181020230044 増田プログラマー養成講座 その8 OOPの仕組み(後半)

anond:20181022232327 増田プログラマー養成講座 その9 MVCフレームワークを使ってみよう

anond:20181023184616 増田プログラマー養成講座 その10 OOP参考書

anond:20181024214133 増田プログラマー養成講座 その11 データベースを使ってみよう

anond:20181026145516 増田プログラマー養成講座 その12 データベース参考書

anond:20181028152656 増田プログラマー養成講座 その13 SQL文法

anond:20181031014212 増田プログラマー養成講座 その14 Webアプリの試作品作成

anond:20181101225335 増田プログラマー養成講座 その15 Webアプリの完成見本

anond:20181101230220 増田プログラマー養成講座 その16 Webアプリの完成見本(続き)

anond:20181104161900 増田プログラマー養成講座 その17 Webアプリの骨組み

anond:20181104233013 増田プログラマー養成講座 その18 SQLデータの追加と取得

anond:20181110120715 増田プログラマー養成講座 その19 SQLデータ更新

anond:20181110182445 増田プログラマー養成講座 その20 SQLデータの削除

anond:20181111205255 増田プログラマー養成講座 その21 データベース設計 (1)要件定義

anond:20181119224031 増田プログラマー養成講座 その22 データベース設計 概念物理 ←★今ここ★

anond:20181024214737 増田プログラマー養成講座 コンテンツ一覧

2018-11-17

anond:20181117015045

海外インデックスへの投資外資就職海外でのビザ取得や就職、どうにでもやりようはあるのでは?🤔🤔🤔

2018-11-15

anond:20181115115534

俺はレールガン好きだけど、インデックスイマイチなので、ファン層が違うと言われても納得感ある。

anond:20181113215044

全体的に同意なんだけどインデックスレールガンファン層って違うの?

リーチしてない浅い萌え豚に届いただけなのでは

2018-11-12

anond:20181112104939

http://www.atmarkit.co.jp/news/200105/02/google.html

Googleは、ペタバイト級のストレージ1台にWebページ13億分のインデックスを持つ。「インデックスペタバイト必要としているからではない。1インデックスにつき数百のコピーを持つからだ」とGoogleマネージャMarc Felton氏は語る。

(中略)

大規模なWebサイトが、データ保存ストレージシステムとしてRAIDシステムSANを用いているが、Googleでは典型的ディスク型のストレージシステムを用いている。その理由を「その方が速いから」とFelton氏は言う。

Googleストレージデバイスの多くはMaxtorの80GBハードディスクドライブだ。Maxtor製品は、ハードディスクドライブ1台につきコントローラを1台、PC1台につきハードディスクドライブ2台を持つ。

https://internet.watch.impress.co.jp/cda/event/2004/11/16/5430.html

Googleでは検索対象ページをこれまでの約40数億ページから、約2倍となる約80億ページに拡充したばかり。容量は1ページあたり平均10KB、合計で10TBにも達するという。

https://japan.cnet.com/article/20081099/

Googleは、比較低価格マシンを大量に購入することで、通常なら数千万ドルもかかるようなコンピュータインフラを、わずか数百万ドルで構築してしまった。

2018-11-11

増田プログラマー養成講座 その21 データベース設計 (1)要件定義

前回まで、データベースを使ったWebアプリ作成して、SQLの使い方を学びました。

今回からデータベース設計について学んでみよう。

 

参考書

これらの参考書ガッツリ読めば、データベース設計のやり方は分かる。

 

リレーショナル・データベースは昔からある枯れた(=安定した)技術なので、鉄板ノウハウが蓄積されている。

先人の知恵に沿って使うなら、データベース設計で悩む余地は少ない。=攻略は意外と簡単

 

データベーススペシャリスト教科書

経済産業省認定情報処理技術者試験で「データベーススペシャリスト」という資格もある。

 

データベースエンジニア」という肩書きを名乗れば、ただのプログラマーよりも高給取りになれる。勉強した後、自分知識棚卸してみるつもりで資格を取ってみるのもいいだろう。

データベーススペシャリスト試験教科書には、浅く広くDB知識網羅されているので、1度眺めてみたらいいかも。

 

 

 

データベース設計の流れ

データベース設計(database design)は、ソフトウェア開発工程においてデータベースの詳細なデータモデルを作る工程である

 

  1. 要件定義:「CRUD表」の作成
  2. 概念設計:「概念モデル」の作成 → ER図(実体参照モデル)の作成
  3. 論理設計:「論理モデル」の作成 → テーブル定義表の作成
  4. 物理設計:「物理モデル」の作成 → 論理モデルを実際にデータベース上で作成インデックス作成など

(分類方法にもよるけど)データベース設計は、このようなステップを経る。それでは順番に見ていこう。

 

 

 

1.1 永続化するデータを決定する

いわゆる「要件定義」だ。

実際にシステムを使うことになるユーザーヒアリング調査して、データベース内に永続化(格納)すべきデータを決定する。

 

CRUD表とは?

データCRUD操作(Create 追加、Read 参照、Update 更新Delete 削除)が、いつ、どこで発生するか?をまとめた表のこと。

 

データベース 設計 CRUD表」等のキーワードGoogle画像検索してみよう。どんな表か分かる。

↑このページの「図2 標準的CRUD図(例)」みたいな表を作って確認すれば、扱うデータの過不足がなくなる。

 

複雑なシステムだと、完全なCRUD表を作るのは面倒だよねw

だが安心して欲しい!

押さえておくべきポイントはあるので、そこだけ手抜きをしなければ、大失敗は避けられるだろう。

 

マスタートランザクションの違い

実は、後でテーブルを作るときに、データ更新頻度によって2種類に分類できるんだ。

 

 

トランザクションデータの扱いは、気を付けないとデータベースの性能低下に直結する。

どっちのタイプデータなのか?要件定義の段階から見分ける癖を付けておこう。

 

要件定義練習

試しに、Amazonのような通販サイトなら、どんなデータを扱うことになるのか?想像してみよう。

仕入先、在庫数、受発注配送会社顧客情報商品カテゴリー、商品スペック、などいろいろあるだろう。

いつどこでCRUDが発生するか?どれがマスターデータで、どれがトランザクションデータだろうか?

 

 

 

(ここまでの説明URLを8個も貼ってしまったので、続きは次回にしよう。)

次回は「概念設計」以降のステップを見てみよう。

 


anond:20181015215004 未経験からプログラマーなんだが全然からない

anond:20181016015826 増田プログラマー養成講座 その1 パソコンの用意

anond:20181016164341 増田プログラマー養成講座 その2 プログラムデータ+処理、プログラム言語の種類

anond:20181016180059 増田プログラマー養成講座 その3 構造プログラミングの基本(順次、反復、分岐

anond:20181016193144 増田プログラマー養成講座 その4 子ども向け教材「Scratch」で構造プログラミング練習

anond:20181017161003 増田プログラマー養成講座 その5 オブジェクトとは何か?

anond:20181017191404 増田プログラマー養成講座 その6 OOPの種類、PHPの準備

anond:20181019181549 増田プログラマー養成講座 その7 OOPの仕組み(前半)

anond:20181020230044 増田プログラマー養成講座 その8 OOPの仕組み(後半)

anond:20181022232327 増田プログラマー養成講座 その9 MVCフレームワークを使ってみよう

anond:20181023184616 増田プログラマー養成講座 その10 OOP参考書

anond:20181024214133 増田プログラマー養成講座 その11 データベースを使ってみよう

anond:20181026145516 増田プログラマー養成講座 その12 データベース参考書

anond:20181028152656 増田プログラマー養成講座 その13 SQL文法

anond:20181031014212 増田プログラマー養成講座 その14 Webアプリの試作品作成

anond:20181101225335 増田プログラマー養成講座 その15 Webアプリの完成見本

anond:20181101230220 増田プログラマー養成講座 その16 Webアプリの完成見本(続き)

anond:20181104161900 増田プログラマー養成講座 その17 Webアプリの骨組み

anond:20181104233013 増田プログラマー養成講座 その18 SQLデータの追加と取得

anond:20181110120715 増田プログラマー養成講座 その19 SQLデータ更新

anond:20181110182445 増田プログラマー養成講座 その20 SQLデータの削除

anond:20181111205255 増田プログラマー養成講座 その21 データベース設計 (1)要件定義 ←★今ここ★

anond:20181119224031 増田プログラマー養成講座 その22 データベース設計 概念物理

anond:20181024214737 増田プログラマー養成講座 コンテンツ一覧

2018-10-28

増田プログラマー養成講座 その13 SQL文法

前回は、データベース参考書を見た。

今回は、DBで使うプログラム言語SQL」の文法を見てみよう。

 

リレーショナル・データベース(Relational Database、RDB)とは?

WikipediaRDB説明を見てみよう。

関係データベース(relational database)は関係モデルにもとづいて設計、開発されるデータベースである

関係データベース管理するデータベース管理システム (DBMS) を関係データベース管理システム (RDBMS) と呼ぶ。

Oracle Database、Microsoft SQL Server、MySQLPostgreSQLDB2、FileMakerH2 Database などがRDBMSである

 

関係モデルIBMエドガー・F・コッドによって考案された現在もっとも広く用いられているデータモデルである

データベース利用者は、クエリ(問い掛け)をデータベースに与え、データ検索したり、変更することができる。

 

データは表に似た構造管理されるが、関係と呼ぶ概念モデル化される。

関係は組(タプル、表における行に相当する)、属性アトリビュート、表における列に相当する)、定義域(ドメイン)、候補キー(主キー)、外部キーなどによって構成される。

SQLなどに代表されるデータベース言語(問い合わせ言語)を用いて、関係に対して制限・射影・結合・和・差・交わりなどの関係代数演算(集合演算を含む)ないし関係論理演算を行うことで結果を取り出す。

関係複数持つことも可能で、互いを関連させることも可能である

要するに、

 

SQLとは?

WikipediaSQL説明も見てみよう。

SQLエスキューエル)は、関係データベース管理システム (RDBMS) において、データ操作定義を行うためのデータベース言語(問い合わせ言語)、ドメイン固有言語である

エドガー・F・コッドによって考案された関係データベース関係モデルにおける演算体系である関係代数関係論理関係計算)にある程度基づいている。

 

SQLは、シークェルと読まれることもある。

これは、SQLの元となったデータベース言語が、IBMが開発したRDBMSの実験実装であるSystem Rの操作言語SEQUEL (Structured English Query Language)」であったことが由来である

SEQUEL (Structured English Query Language)」を略して「SQL」と呼んだらしい。

 

  1. 質問する、尋ねる
  2. 問い合わせ[クエリー]を行う

英語クエリーは、質問する、問い合わせる、という意味なんだね。

 

SQL3分

SQL説明するとき、3つのグループに分類される。

 

↑このページをよく読んでくれ。理解できたらSQL説明は終わりだ!!!

 

 

 

…というと、説明することがなくなるので、ちょっとまとめておこう。

このページの「表1●SQLDDLDML,DCLの三つに大別できる。このうちプログラマが最も多く使うのはDMLだ」という図を見てみよう。

 

という3種類に分けてる。順番に見てみよう。

 

DDL(Data Definition Language:データ定義言語

データベーステーブル、ビュー、インデックスユーザーなどを作成/変更/削除するときに使うSQL

これでデータベースを使う準備ができる。

  • 「CREATE」…作成する。
  • ALTER」…変更する。
  • DROP」…削除する。

 

DML(Data Manipulation Language:データ操作言語

データ操作するときに使う。いわゆる「CRUD」のことで、SQLのうち、このDMLを覚えれば、とりあえずRDBは使えるようになる。

CRUD(クラッド)とは、ほとんど全てのコンピュータソフトウェアが持つ永続性の4つの基本機能イニシャルを並べた用語

その4つとは、Create(生成)、Read(読み取り)、Update(更新)、Delete(削除)である

ユーザインタフェースが備えるべき機能情報の参照/検索/更新)を指す用語としても使われる。

 

この中で一番活躍するのは、「SELECTコマンド命令文)だろう。

SELECTは、いろんな条件を付けてデータを絞り込む/加工することができて、便利なんだ。(Excelなどの表計算ソフトよりも高機能

 

JOIN(結合)

RDBは「リレーショナル」(関係)という冠言葉が付いてることからも分かるように、関係がある表と表をくっつけて、データを加工できる。

表と表をくっつける操作のことを「結合」という。

SQLでは「JOIN」というコマンドを使って表と表を結合できる。

↑このページにある丸と丸が重なった図を見てくれ。この図は「ベン図」といって包含関係を示す図だ。図を描いて塗りつぶせば、欲しい部分が分かりやすくなるだろう。

 

結合の種類

表と表のつなげ方には、何通りかパターンがあるよ。

  • 結合は、「内部結合」(INNNER JOIN)と「外部結合」(OUTER JOIN)の2種類に分類できる。
  • 外部結合はさらに、「左結合」(LEFT JOIN)と「右結合」(RIGHT JOIN)と「完全結合」(FULL JOIN)の3種類に分類できる。

 

内部結合は単純だ。外部結合はちょっとややこしい。

外部結合は「LEFT JOIN」の形がよく使われると思うので、まず最初にLEFT JOINの仕組みを理解すれば大丈夫だろう。

(LEFTの仕組みを基準にして、RIGHTやFULLとの相違点を意識すれば、表のつなぎ方を間違えにくい?)

 

DCL(DataControl Language:データ制御言語

トランザクション」は、データ更新に失敗したとき、元に戻せる機能だ。(安全装置

  • 「COMMIT」…更新処理の確定
  • 「ROLLBACK」…更新処理の破棄

 

言葉だけだと意味が分かりづらいと思う。

Google画像検索で「トランザクション」を検索して、分かりやすそうな図解を探してみよう。

↑このページの「図1 処理失敗による不整合の発生」を見てみよう。

 

銀行で口座間の送金を考えてみる。Aさんの口座からBさんの口座へ50万円送金したい。

  1. Aさんの口座から50万円減らす。
  2. Bさんの口座に50万円追加する。

この2つの処理が両方とも成功しないと、送金は失敗だ。(Aさんは送金できてないのに貯金が減ったら怒る。Bさんは送金されてないのに貯金が増えてラッキー!)

AとBの両方が成功したら更新処理を確定する。AとBのどちらか、または両方が失敗したら更新処理は破棄してなかったことにする。(やり直し!)

これがトランザクションだ。

 

クレーム対応難易度

ちょっと話がそれるけど、トラブルの重大さ=クレーム対応難易度について考えてみよう。

  1. 人身事故 …人命にかかわる事故は取り返しがつかない。文句も一番キツイ絶対ミスがあってはならない分野のシステム開発はなるべく避けよう。
  2. 金銭絡み …(命の次に)お金大事という人は多い。人は金の話になるとシビア文句も強烈だ。決済など金銭絡みのシステムでは、RDBトランザクションを使おう。
  3. 上記以外 …その他のクレームは、それほどハードではない。匿名掲示板とか、どうでもいいゴミ情報投稿されるシステムなら、トランザクションは使わなくてもOKだろうw

 

DB管理ツール

ここまで、SQLRDB操作する方法について話した。

RDBは、SQLコマンド操作するだけでなく、DB管理ツールを使って操作することもできる。

DB管理ツールについても知っておこう。

 

この講座では「phpMyAdmin」というDB管理ツールで「MySQL」を操作した。

他にも、Google検索で「DB 管理 ツール GUI」などで探してみよう。商用だけでなく無料でも便利なソフトがたくさんあるね。

 

など。

 

SQLパズルだ!

SQLを駆使すると、欲しいデータをホイホイ取り出せる。

SQLコマンドを組み立てる作業パズルのような要素もあるので、遊びだと思ってSQLに取り組んでみて欲しい。

SQL パズル」でGoogle検索すると、いろんなテクニックが紹介されているので、時間があったらチャレンジしてみよう!

 

SQLの話は、それだけで1冊の本になるぐらい広範だ。今回は、SQL概要説明するだけになってしまった。

SQLの詳細については、前回紹介したSQL参考書などを読んでみてね。

 

まとめ

 

次回は、データベースを使ってWebアプリを作ってみよう!

データベースって便利だな~~~!!!」と実感して欲しい。

 


anond:20181015215004 未経験からプログラマーなんだが全然からない

anond:20181016015826 増田プログラマ養成講座 その1 パソコンの用意

anond:20181016164341 増田プログラマ養成講座 その2 プログラムデータ+処理、プログラム言語の種類

anond:20181016180059 増田プログラマ養成講座 その3 構造プログラミングの基本(順次、反復、分岐

anond:20181016193144 増田プログラマ養成講座 その4 子ども向け教材「Scratch」で構造プログラミング練習

anond:20181017161003 増田プログラマ養成講座 その5 オブジェクトとは何か?

anond:20181017191404 増田プログラマ養成講座 その6 OOPの種類、PHPの準備

anond:20181019181549 増田プログラマ養成講座 その7 OOPの仕組み(前半)

anond:20181020230044 増田プログラマ養成講座 その8 OOPの仕組み(後半)

anond:20181022232327 増田プログラマ養成講座 その9 MVCフレームワークを使ってみよう

anond:20181023184616 増田プログラマ養成講座 その10 OOP参考書

anond:20181024214133 増田プログラマ養成講座 その11 データベースを使ってみよう

anond:20181026145516 増田プログラマ養成講座 その12 データベース参考書

anond:20181028152656 増田プログラマ養成講座 その13 SQL文法 ←★今ここ★

anond:20181031014212 増田プログラマ養成講座 その14 Webアプリの試作品作成

anond:20181024214737 増田プログラマ養成講座 コンテンツ一覧

2018-10-24

増田プログラマー養成講座 その11 データベースを使ってみよう

前回まで手続言語の基本(構造プログラミングオブジェクト指向プログラミング)を見てきた。

今回から問合型言語SQLを学び、データベースDB)を使ってみよう。

 

データベースとは?

大量のデータを記録して、活用するために特化したソフトウェアが「データベース」だ。

データベースには、いろんな種類があるけど、今回学ぶのは「リレーショナル・データベース」(RDB)だ。

 

データベースの利点

データベースがなかった時代の人々は、大量のデータを扱うのに苦労していた。

データベース活用すれば、人間は脳の記憶力を補完して、膨大な知識を扱うことができるようになる。

キミも今日からデータベース活用して、記憶力を100億倍にしよう!ドラえもんの暗記パンなんて目じゃないぜ!!!

 

勉強方針

 

MySQLの起動

MySQL無料で使えるRDBです。MySQLデータベース練習をやってみよう。

それではさっそく、以前インストールしたXAMPPで、MySQLを使ってみよう。

 

  1. xamppフォルダの中にある「xampp-control.exe」をダブルクリックしてください。
  2. XAMPP Control Panel」が表示されたら、一番上の「Apache」と次の「MySQL」の「Start」ボタンクリックします。

Port(s)が「80,443」「3306」と表示されたら、PHPMySQLが使える状態になってます

 

phpMyAdminの起動

Webブラウザー(Google Chromeなど)で、「 http://localhost/phpmyadmin/ 」というURLを開く。

phpMyAdmin」という画面が出てきたらOK

 

phpMyAdminとは?

phpMyAdmin」は、MySQL管理するツールです。

phpMyAdmin」で検索したら、使い方を紹介する記事が、たくさん見つかります

 

phpMyAdmin(ピーエイピーマイアドミン)はMySQLサーバーウェブブラウザ管理するためのデータベース接続クライアントツールで、PHP実装されている。

phpMyAdminを用いることで、SQL文を記述することなく、MySQLデータベースに対して様々な操作が行える。

また、ユーザ任意SQL文を記述して実行することもできる。

 

phpMyAdminの使い方解説ページ

検索したら、こんなのがありました。

 

データベース作成

それでは練習で使うデータベースを1個作ってみよう。

後で簡単チャット(おしゃべり)ができるWebアプリ作ってみたいと思う。(Twitterをショボくしたシステムw)

チャット用のデータベースとして「chat」という名前データベースを作ろう。

 

これで「chat」という空のデータベースが1個できた。

 

テーブル作成

RDBの「テーブル」とは、データを保存する表のこと。

「chat」データベースの中に、テーブルを1個作ってみよう。

 

すると「名前」「データ型」「長さ/値」「デフォルト値」…などの空欄がたくさん並んだ画面が表示されただろう。

4段ある上から順番に、以下の通り入力してくれ。

これでテーブル構造を設定することができた。

これら4段の下にある「ストレージエンジン:」欄は「InnoDB」にしておく。

ここまで入力したら、画面右下にある「SQLプレビュー」というボタンクリックしてみよう。

すると、

CREATE TABLE `chat`.`message` (

 `id` INT NOT NULL AUTO_INCREMENT ,

 `create_at` DATETIME NOT NULL ,

 `update_at` TIMESTAMP on update CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,

 `message` TEXT NOT NULL ,

 PRIMARY KEY (`id`)

) ENGINE = InnoDB;

というSQL文が表示されただろう。

これが「SQL」というデータベース操作するプログラミング言語の書き方なんだ。

今はツールを使って自動的SQL文を作成したが、SQL文法を学べば、自分で書けるようになる。

とりあえず、今はphpMyAdminでMySQL簡単操作してみよう。

 

すると、画面左側のデータベース一覧で、「chat」の下に「message」というテーブルが表示されるようになっただろう。

これでテーブル作成ができた。

 

データ作成

データベースと、その中のテーブル(表)を作ったけど、まだデータが入ってないので空のままだ。

phpMyAdminでデータを1件、追加してみよう。

すると、

INSERT INTO `message` (`id`, `create_at`, `update_at`, `message`) VALUES (NULL, '2018-10-24 12:34:56', CURRENT_TIMESTAMP, 'Hello, world!')

というSQL文が表示されただろう。

これがデータ操作するSQL文の一例だ。これも後でSQL文法を学んでみよう。

これでデータが1件追加できた。

 

こんなかんじで、とりあえず、phpMyAdminでMySQLをいろいろいじって練習してみよう。

 

まとめ

 

次回以降の予定は、

  1. データベース参考書を紹介
  2. SQL文法
  3. データベース設計方法
  4. データベースを使ったWebアプリ作成
  5. データベース理論

といったかんじです。

 


anond:20181015215004 未経験からプログラマーなんだが全然からない

anond:20181016015826 増田プログラマー養成講座 その1 パソコンの用意

anond:20181016164341 増田プログラマー養成講座 その2 プログラムデータ+処理、プログラム言語の種類

anond:20181016180059 増田プログラマー養成講座 その3 構造プログラミングの基本(順次、反復、分岐

anond:20181016193144 増田プログラマー養成講座 その4 子ども向け教材「Scratch」で構造プログラミング練習

anond:20181017161003 増田プログラマー養成講座 その5 オブジェクトとは何か?

anond:20181017191404 増田プログラマー養成講座 その6 OOPの種類、PHPの準備

anond:20181019181549 増田プログラマー養成講座 その7 OOPの仕組み(前半)

anond:20181020230044 増田プログラマー養成講座 その8 OOPの仕組み(後半)

anond:20181022232327 増田プログラマー養成講座 その9 MVCフレームワークを使ってみよう

anond:20181023184616 増田プログラマー養成講座 その10 OOP参考書

anond:20181024214133 増田プログラマー養成講座 その11 データベースを使ってみよう ←★今ここ★

anond:20181026145516 増田プログラマー養成講座 その12 データベース参考書

anond:20181024214737 増田プログラマー養成講座 コンテンツ一覧

アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん