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

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

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 増田プログラマー養成講座 コンテンツ一覧

anond:20181023184616

データベースSQLの使い方をどうやって説明するか?検討してみた。

RDBMySQL使用XAMPPMySQLphpMyAdminですぐに練習できるから

 

RDBの仕組み

  1. RDB歴史
  2. RDB概要
  3. SQL誕生の背景(問合型言語計算モデルは「関係代数」)→ 関係代数 (関係モデル) - Wikipedia https://ja.wikipedia.org/wiki/%E9%96%A2%E4%BF%82%E4%BB%A3%E6%95%B0_(%E9%96%A2%E4%BF%82%E3%83%A2%E3%83%87%E3%83%AB)
  4. 表計算ソフトExcel)とRDB比較 

 

SQL

文法コマンドの種類

  1. データ定義言語 (DDL: Data Definition Language)
  2. データ操作言語 (DML: Data Manipulation Language)
  3. データ制御言語 (DCL: Data Control Language)

 

データベーステーブル、ビューの作成
データ操作CRUD
トランザクション
バックアップリストア

 

DB設計

論理設計物理設計

  1. データ中心アプローチDOA)、ER
  2. 正規化インデックスの張り方

この手の話は、情報処理試験データベース教科書かに、よくまとまっている。

 

MVCフレームワークWebアプリを作り、データストアとしてRDBを使ってみる。

 

RDB以外のデータストア

 

データベース参考書の紹介

ミックさんの本が分かりやすい?

 

最初から欲張って、てんこ盛りにしても混乱する?

要点を絞って、情報量を絞り込まないといけない。

最低限は、

  1. SQLCRUDを書けるようにすること
  2. WebフレームワークからRDBを使えるようにすること

 

こんなかんじかなー?

2018-10-20

anond:20181019204451

検索してみるとかなり応答が遅い。インデックスの貼り忘れとかなんか性能的な問題があって回数無制限だと負荷に耐え切れないんだろう。

2018-10-17

ゆるゆるに投資を始めて半年たった

One Tap Buyで投資を始めて6か月ほど経過。

基本スタンス

米国インデックスファンドへ積立投資

②余裕資金米国株の個別銘柄を1万円程度づつ買っていく

③長期保有前提なのでちょっと上がったり下がったりしても売らない

という感じでやっていたのですが、途中で10CFDレバレッジ取引)ができるようになったので3万円くらい持って遊びに行ったら、米国株7%くらいバコー下がってロスカットされた。レバレッジ舐めてたので次はちゃんと用意してから勝負行く。

個別銘柄はいつも利用してる銘柄に絞っていくことにした。バフェットおじいちゃんも「事業内容が理解できない会社には投資するな」って言ってたし。なので

ツイッター

マイクロソフト

アマゾン

あたりから。余裕出てきたらコカ・コーラかに投資したい。

10CFDボコーされたとき8k円くらい損したけど、飲み会1回分でいろいろ勉強できたので良しとしたい。はよ米国株価指数爆上げしてさら円安に振れますように。

2018-10-07

最適な永続化方法

サブスクリプション 数年?

携帯 5年程度

ハードディスク 10年程度

クラウド 10年程度

円盤磁気メディア 15年程度

紙 15年程度

本 30年程度

巻物 50年程度

石 100年程度

脳 70年程度

 

やはりデータは壊れるので

データ移行を前提にしたいところ

それが何処にあるかというインデックスが欲しいが、インデックス永続化は結局同じ問題に直面する

あと、著作権後絡んでると勝手に移行できない問題もある

移行、つまり複製サービスは作れない

あるいは、データ10年程度でアクセスできなくなる前提の元行動するか

2018-10-05

中学生が夜中に書いた文章

中学生が30を過ぎたおじさん達の酒盛りに付き合ってこんな時間日記を書くのはおかしいと思う

書き出しに迷っていたら父の友人、酔っぱらいのおじさんに最初愚痴から始めれば良いと教わった

なぜこんな文章を書いているのか

これもまたおじさん達にそそのかされたからだ

僕が普段から日記―父に監視されている―を書きブログで公開していることをつい口走ってしまったせいでもある

なら俺達のことを書け書けという流れになった

ジオシティーズサービスを終了するらしい、父達はその話題で盛り上がっていた

父は昔からインターネットが好きで小学生の頃からweb日記をよく読んでおり

ジオシティーズサービスを開始するとすぐに自分サイトを開いたらしい

懐かしそうにみんなで見ていたそれを僕も見せてもらった

目に飛び込んできたのは英字で大きく書かれたウェルカムという文字

その下には文字が流れていて、四角■で挟まれインデックスという単語を堺に罫線で囲まれたスペース

右上にはwhat'newという吹き出しがあり、小さな星がピカピカと光っていた

メンバーと書かれた部分を押してみる

父の名前があった

ひらがなでゆうたと書いてある

ゆうた君、こんにちは

僕が言うと、父の友人が飲んでいたお酒吹き出し

同時に仰け反り、頭を持ち上げたせいで大人同士仲良くごっつんこ

みんなゲラゲラ笑っている

僕はそれを横目に、いやそっちのけで画面を見ていた

とても不思議な気分だったか

もっとこのサイト探検してみたかった

掲示板という文字クリックしてみる

残念、表示できない

横で見ていたひげの生えたおじさんが少し操作して当時の掲示板を見れるようにしてくれた

彼も元メンバーの一員らしい

開いたのは総合掲示板というページのやりとり

父がいた

敬語で僕の知らない人と話している

僕と殆ど変わらない歳の父だ

14歳の父だ

言葉では言い表せない感情が沸いてきて、同じ段落を何度も何度も読み返していた

この度はご来訪ありがとうございます<(_ _)> 、だって

変なの

日付には2000年と書いてある

18年も昔、僕が生まれる前の出来事

なんだか凄い

父さんにも中学生の頃があったんだ

そんなことを考える

僕も書き込めないか

そう思って返信を試みたけれど、隣で覗くおじさんに無理だと教えられた

父達の興味がよそに移ったあとも、僕はひとり探検を続けた

一番新しい部分の更新2001年で止まっている

このあと、数年を置いてブログサービス流行ったらしい

父も高校生の頃やっていたと聞いた

そんな話をしていると、父の友人が急にidパスワードを憶えているか、と言い出した

しばらくああでもないこうでもないと首をひねる父

結局ひげの生えたおじさんが思い出してしまった

そしてカタカタと何かを打ち込む

そういえば今、僕もカタカタこれを書いている

今日は母がいないので夜更かししても怒られないけれど…

ちょっと眠い

でも

もしもこの記事が沢山ブックマークされたら父と友人が僕に新しいタブレットを買ってくれるらしい

やる気が沸いてきた

話を戻る

父の友人がキーボードを触っている間、僕は画面を見せて貰えなかった

楽しそうに違う違うと笑い合う父とおじさん達

しばらくして僕はディスプレイを覗くことを許可された

どうやら終わったらしい

映っていたもの

それを見て僕は、ラインで母に送ってあげようと思った

スマホを取り出し

カメラでそれを撮る

母に送った画像

そこには父のサイトが映っていた

17年ぶりに更新されたサイトメンバー

新人は僕だ

14歳の父と13歳の僕

1歳違いで二人が並んでいる

来年には同い年だね

僕が言うと父は笑って返した

来年には消えているよ

そっか

おやすみするんだっけ

お疲れ様、父さんの青春

お疲れ様ジオシティーズ

2018-10-04

jQueryは遅いおじさん「jQueryは遅いから使わない」

そりゃループ毎にDBを100万件なめてたらインデックス貼ってあっても遅いだろ

jQuery関係ないし

2018-09-28

BitMEXに損害賠償請求したいという話

相手外国企業だし、私は素人なので実際にできるかどうかは不明

1)、私の主張

2018年9月22日 0:46:02 

BitMEXで取り扱われている商品「XRPU18」にて、契約に基づかない(契約内容に明記されていないロスカットルールによる)ロスカットが行われ被害を被ったため、損害賠償請求したい。

2)、経緯

2-1)、BitMEXのロスカットシステムについて

XRPU18においてBitMEXはロスカット基準を「直近価格」ではなく「公正価格」によって定めている(BitMEXはこれを「公正価格マーキング」と呼んでいる)。

https://www.bitmex.com/app/futuresGuide

> 先物契約の公正価格計算

> インパクト中値 = 平均 (インパクトビッド価格インパクトアスク価格) 式中:

> インパクトビッド価格 = ビッド側でインパクト証拠名目額の執行の平均約定価格

> インパクトアスク価格I = アスク側でインパクト証拠名目額の執行の平均約定価格

> 公正基準率 (%) = (インパクト中値 / インデックス価格 - 1) / (満期までの期間 / 365)

> 公正価値 = インデックス価格 * 公正ベーシス (%) * (満期までの期間 / 365)

> 公正価格 = インデックス価格 + 公正価値

https://www.bitmex.com/app/fairPriceMarking#calculation-of-fair-price-for-futures-contracts

上記の式より、公正価格に大きな変動を与えている主要因は「インデックス価格であることがわかる。

「XRPU18」における「.XRPXBT インデックス」は「Poloniex での直近レートを基に計算」されている

https://www.bitmex.com/app/index/.XRPXBT

2-2)、2018年9月22日 0:46:02における「公正価格」の「.XRPXBT インデックス」の推移

BitMEXへの問い合わせの回答によると、.XROXBTインデックス価格ロスカットが行われる前の数十分にわたり価格変動がみられず、

その原因はPoloniexにてメンテナンスが行われ、Poloniexにて価格変動が停止したためであることが報告されているとのことであった。

2-3)、公正価格マーキング例外

「公正価格マーキング」には例外が定められており、これは明記されている。

> 場合によっては、インデックス不安定さのために、契約代替モードである LastPriceProtected に移行させる必要があります

> このような異常のケースでは、マーキング方法が変更されると通知が送信されます

しかし、本件についてこのような通知は送信されておらず、この例外適用されていなかったことがわかっている。

2-4)、「契約」ページに明示されていないロスカットルール存在

しかし、本件のロスカットは「.XRPXBT インデックス」の価格上記理由で固定状態にあった間に行われた。

本来、「.XRPXBT インデックス」に変化がない場合ロスカットも発生しないはずである

この件に関して問い合わせたところ、以下のようなシステム存在しているとの趣旨の回答を得た。

> If any constituent exchange’s API feed is not responsive, the last valid price is used.

> If an exchange’s feed is stale for over 15 minutes, it is removed until the feed is operational again.

> (https://blog.bitmex.com/new-protections-bitmex-indices/

まり.XRPXBT インデックス価格は、poloniexがメンテナンスに入ってから15分後には取り除かれ、マーク価格はXRIPU18の取引価格採用されたということになる

しかし、本システムに関しては上記 blog.bitmex.com においてのみ記載がなされており、「サービス利用規約」ページ及び「XRPU18:契約明細」ページには一切記載がなされていなかった。

このことは本件に関する問い合わせ対する回答から確認ができた。

しかし、BitMEXからの回答によると、公式ブログの内容は契約として有効ものであるとの認識であるとのことであった。

2-5)、疑義とBitMEXからの回答

・問い合わせで初めて知らされた、契約明細に明示されていない一ブログ記事内だけに記載されたロスカットルール適用されたことは契約違反ではないか

マーク価格にXRIPU18の取引価格採用されたのはPoloniexがメンテナンスに入ったと思われる(「.XRPXBT インデックス価格」の変動が停止した)2018年9月22日 0:00:00から46分が経過してからであり、30分も遅れて通知なく適用されたのは不当ではないか

また、BitMEXからの回答によると

・本件のロスカット契約内容に含まれ方法執行された

ユーザーはその契約内容に事前同意している

・本件のロスカット一般ユーザーが予見可能ものであった

・BitMEXブログの内容は契約として有効ものである

とのことであった。

3)、まとめ

私の具体的な主張としては

・BitMEXブログの内容は契約として事前同意していないものであり無効

・本件の不当な処理によって被った損害について賠償請求したい

というものでした。

最後まで読んでいただきありがとうございます

同じような立場の方は多数おられると思われますので、参考になればとも思い投稿させていただきました。

2018-09-27

すっきり

外付けHDDPC触ってないときになんかガリガリしゃーしゃーうるさい

マウスさわると止まる

なんかわかんなくてずっとモヤモヤしてたけど、リソースモニターみてやっとわかった

デフラグexeだった

インデックスとかはとうにとめてたしこれでゆっくりねれる(PCスリープにでもしろ

それにしても同じ型の外付けHDDなのになんでこいつだけ勝手デフラグするんだろ

あ、OS側の問題

でもとくにpc再起動したり設定変えたりしてないのになあ

その状態であるhっdだけ勝手デフラグうごくとかあんのかな

とりあえず寿命縮むからやめさせた

2018-09-15

anond:20180915232944

インデックス投資

あるいはインデックス系のETF

理屈が知りたいなら臆病者のための株式入門とか読むといいと思う。というかググれば無限に出てくるからそれでもいい

間違っても全額つぎ込んだりしないように

2018-09-13

企業は「能力あるひと」よりも「仲間になれるひと」を求めてるんだよ

エンジニアプライベート勉強しなければいけないとか云々。

例の「部族漫画」じゃないけどさ、企業は「仲間であること」を強く求めてくるわけで、「能力がある」かどうかは二の次なわけ。

「常日頃からアンテナを張って脳内インデックスを書き換えてるひとじゃないと俺たちの仲間とは認められないよね」と言われてしまえばそれまで。

じゃぁ考えてご覧よ。「ちゃんとそれなりのスキルもつハゲ散らかした50歳」と「いろいろよくわかってないけど、素直で元気な25歳」が「隣で一緒にシゴトさせてください」と来たときに、どっちを採用する?

ちょっと話が飛ぶけどさ、残業ってマネジメントがうまくいってない証拠じゃん?本来は適切な能力もつひとに適切なタスクを割り当てて かつトラブルに対するある程度のバッファーを持っておけば残業は発生しないはずで、残業がつねに発生してるということはそのマネジメントがうまくいっていないということで、つまり管理者の怠慢か能力不足なわけで、それをタスク担当者サービス残業でなんとかするって、そもそもおかしいじゃん。

タスク担当者としてそれなりに最善をつくしてその上で時間内に終わらないのであれば、あとは管理者が調整してなんとかしなきゃいけないよね。

そういう意味では、適切なインプットに対して適切なアウトプットを返してくれるひとのほうがタスクの割り当てを管理やすいので、管理者としてありがたいはずなんだけど、なぜかありがちなのは「与えられたことに対してプラスアルファを返してくるやつのほうが優秀」みたいな考え方。

お金を入れたらジュースとお釣りを適切に返してくれる自動販売機」の方が管理やすいはずなんだけど、「余分にお釣りを返してくれる猿」のほうが優秀って、もうそマネジメントしにくくなるし、「余分なお釣り」を前提に予定を立てなきゃいけなくなるじゃん。

「俺はマネジメント経験が少ないから、申し訳ないんだけど優秀なお前が先回りしてなんとか助けてくれないか」でプラスアルファを求めるならわかるんだけど、「俺は管理者だ!常にプラスアルファをもってこい!言われたこしかしないやつは評価を下げるぞ!」はおかしくない?マネジメントしてないじゃん。高度経済成長期とかバブル期ならそれで回るんだろうけどさ。

んでさ、もう一回言うけど、企業は「能力あるひと」よりも「仲間になれるひと」を求めてるんだよね。

何が正しいとか正しくないとかじゃくてさ、どんなに適切な能力を持っていても「あー、こいつは仲間にしたくねーな」と思われたら採用されないし、能力なんてなくても「このひととは一緒に仕事をしたいな」と思わせることができれば採用されるのさ。どんなに勉強してて優秀でも「こいつ鼻につくな」と思われたらはじかれるし、バカでアホでも愛されてれば席は残るわけ。もうそのへんの感覚は「学校」という閉鎖された空間で十分学んだでしょうに。

そのへん何回か転職活動したことがあるひとなら肌でわかるでしょ。面接能力アピールとかあまり意味はなくて、むしろあなた部族に加えてください」「私はすぐに部族の一員になれます」的なアピールのほうが有効だったりするよね。

ごく一部のスーパーマンみたいなエンジニアの人は別よ?そういう人はガンガン勉強して革命でもイノベーションでも起こしてくれてればいいと思うの。そうじゃなくて残りのよくいるエンジニア99%のことよ。

プライベート時間をつかって勉強するべきとかべきじゃないとか、そうじゃなくって、「部族にひとたちから愛されるためには何をしたらいいか」なわけ。正しいとか正しくないとかじゃなくて。

ついでに。

フリーランスエンジニアがいて、中年になると仕事が減ってくるらしく、ぷらぷらしてるのね。IT業界にいる人は「忙しい忙しい」で残業だらけらしいんだけど、その割にアルバイトを雇ってなんとかなる仕事でも無いらしいんだよね。

かたや、一人親方大工さんがいて、もう70歳近いんだけど、その人はもう3年先まで仕事が埋まってるんだって。そうかと思えば「日雇い人夫」みたく誰にでも出来るタスクまでちゃんと分解してあったりして、やっぱそのへんは業界歴史経験なのかね。

もうさ、「オレって勉強好きなエンジニアですげーだろ?プライベート勉強ちゃうんだぜ?サービス残業プラスアルファの結果だって残しちゃうぜ!だからオレの仕事アルバイトなんかにこなせる仕事じゃないんだぜ!あー忙しい忙しい!」ってずっっっとやってりゃいいじゃん。

きっと愛されるよ。

2018-09-02

積み立て投信複利効果ってあるの?

インデックス積み立て投信入門書的な奴に投資複利効果があるから早いうちに始めるのがよいとか書いてあるけど、

積み立て投信複利効果はないんじゃないの?

売るときの値がこれまでの買値の平均より上回った分だけ儲かるだけで、複利効果どこで発生すんのよ。

そりゃ高値で売り抜けてまた価格が下がったときに買い直す、を繰り返すなら複利効果でるだろうけど

積み立て投信ってそういうの非推奨でしょ。何十年間も安くても高くても買い続けろってんでしょ。

ドルコスト平均法から暴落しても安心、ローリスク・ローリターンが売りなんだろうけど、

長いこと積み立てて、子供ができた時とか老後とかいざ金が必要になったとき歴史的暴落10年続く不況になりました。とかなったら死ぬよな。

それでいて複利効果などなく儲けなど多寡が知れてるのであれば、こんなにハイリスク・ローリターンな資産運用はないんじゃないか

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