Category: "MySQL, Oracle, データベース" , Tags: Instance, MySQL, Schema, データベース
しゃちょーです。
連続投稿で翻訳担当から怒られそうですが、まあ気にせず書いていきますよ。
今回のMySQL超初心者Tipsは
OracleからMySQLに移行してきた人が一番気持ち悪くなるネタ、DBとスキーマとユーザについての話を。
その3:データベース(Database)とスキーマ(Schema)とユーザ(User)の関係
Schemaについて諸説いろいろだが、Oracleの場合にはDatabaseの中の、あるUserが所有しているオブジェクト群
を示していると思う。微妙に違うが、単位のレベルとしてはUserとSchemaは同列だ。
オブジェクトの参照は、Database名.Schema名(ユーザ名).Object名となる。
MySQL場合はDatabaseとSchemaが同等で、UserはInstanceに対して設定するものなので
ObjectはUserのもとに属さないことになる。
オブジェクトの参照は、Database名(Schema名).Object名 となる。
加えて言うと、Oracleの場合はDatabase=1つのInstanceとなるが
MySQLの場合は1つのInstanceの中に多数のDatabaseを作成することができる。
乱暴な言い方をすればOracleのDatabaseはMySQLのInstanceだ、といえるはず(凄く乱暴だが)。
これがOracle技術者がMySQLを触り始めたときに一番気持ち悪いところだと思われる。
単純に言葉の定義が違うとあきらめた方が良いかと思う。
次回はこれをふまえてさらにMySQLのユーザ関係をややこしくしてしまう、ユー権限周りについて少し書いてみようかな。


