Skip to content

Instantly share code, notes, and snippets.

@KentaKomai
Created February 1, 2015 12:43
Show Gist options
  • Save KentaKomai/089834ab831927bd2b90 to your computer and use it in GitHub Desktop.
Save KentaKomai/089834ab831927bd2b90 to your computer and use it in GitHub Desktop.

同僚のディレクターに聞かれたので共有用のメモ。

MySQL, json, XML

厳密に言うとちょっと違う部分もあるけど、まぁ なんとなく雰囲気つかむためのもの

MySQL

世界で最も利用されている、無償で利用できるデータベースサーバ。 リレーショナルデータベースというカテゴリに属されるデータベースアプリケーションで エクセルの表のようなものを、相互に連結させることによって データを表現、保存している。

SQLと呼ばれる小さなプログラミング言語のようなもの(厳密にはプログラミング言語じゃないんだけど、便宜上) を利用することでデータベースに対して、データを入れたり、消したり、取得したりできる。

MySQLそのものを学ぶ、となると実は深すぎて 話が進まないから、まずはリレーショナルデータベース全てに 共通で利用できるSQLを勉強するとリレーショナルデータベースが どういうものか、を理解できるかも

SQL入門

json

名前はJavaScript Object Notationの頭文字が由来。 その名の通り、Javascriptで利用するために定義された文字のパターンのこと。 汎用性が高い為、Javascriptだけでなく、様々な言語で利用されている。

user.jsonというファイルが以下のように定義されているとする

{
    "name": "John Smith", 
    "age": 33,
    "skill" : [ "c/c++", "java", "javascript", "HTML/CSS"]
}

jsonはキーと値のセットから成っていて、例えば"name"というキーで 検索すると"John Smith"と返ってくる。Javascriptなんちゃら、とかは 意識しないで、とりあえずはデータ構造をテキストでシンプルに定義できる 汎用的なフォーマットと覚えておけばいいかも。

jQueryでjsonデータを扱ってみる【入門編】

jQueryうんぬんのとこは別に読まなくてもいいかも。 最初のほうにjavascriptとjsonの関係がよく説明されていて、同じ感覚で 他の言語でも扱える、と思ってもらって、とりあえずは大丈夫。

xml

Extensible Markup Languageの略。データを表現するのに用いられる。 HTMLはXMLのWebページ表現専用のものだと思ってればOKだと思う。 (HTMLとXMLは仲間だけど、違うもの。)

jsonの例で出たデータ構造をXMLで表現すると以下のようになる。 (もちろん一例で、自分の好きなように定義することも可能)

    John Smith
    33
    
        
        java
        javascript
        HTML/CSS
    

こんな感じ。(すごい適当だけど) jsonとかyamlとか、他のシンプルで新しいのが出てきたから、最近は 積極的に利用される機会は減ったと思う。

java関連のソースコード書く時は割と出てくる。 なにができるか、と言われたらjsonと同じことができる。 形式が違うだけで、目的はjsonもXMLも同じ。

あとは利用する側がどっちを使いたいか、で決められる。

MySQLとjson/xmlの関係

例えば、座席表の場合で説明すると

  1. WEBで座席データ、ユーザデータを利用者に入力させる
  2. 入力されたデータはWEBアプリによって、データベース(MySQL)に格納される
  3. Unityのアプリが起動したときには、Webアプリに対して『 XXフロアの情報をください』とリクエストを送る
  4. リクエストを受けたWebアプリは、データベース(MySQL)に問い合わせて結果を取得する (フロアの詳細、座席の位置など)
  5. Webアプリは結果がデータベースから取得できたら、json形式に書き出して、それをUnityに渡す。
  6. Unityはjson形式で書き出されたデータを確認したら、それをプログラムで読み込んで、Unityに座席データとして表示する。

5でjsonを選んでいるけど、XMLでも例えばCSVでもなんでもよくて、お互いが都合のいい データ構造ならどれを選んでもよい。(それぞれのデータ構造に向き不向きはあるが)

座席表の場合では、WEBとUnityとのやりとりにJsonを採用している。

MySQLとXML(もしくはjson)は、直接的には結びつかなくて、 MySQLで取得したデータを、プログラムがXML(もしくはjson)に整形して、出力する っていうのが一般的なので、この3つを説明するにはプログラミングの話が ついてまわるかも。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment