mysql:14336
From: "T.Hirotsu" <"T.Hirotsu" <hirotsu@xxxxxxxxxx>>
Date: Sat, 12 Jan 2008 16:23:15 +0900
Subject: [mysql 14336] Re: 【Q】関連するテーブルは異なるデータベース上にあっても良いのでしょうか?
こんにちは、広津です。 「XXが出来る」と「XXでやりたい事が出来る」あるいは「XXでやりたい事 を実現したのが使える」は別物ではないかと。(^^; 複数データベースの複数テーブルを、あるクライアントから単純に扱えるか否か、 というご質問でしたら、答えは扱えます。 扱うデータベースへの接続をそれぞれ作ってやれば、別に MySQL に限ったこと ではなく、PostgreSQL や Oracle、Microsoft Jet などが混在していても問題 ありません。 一方、それらのテーブルの Join は、MySQL では接続ごとにその接続から扱える テーブル間でしか出来ません。 つまり、最低、MySQL サーバーは同じである必要があります。 Federated は使ったことがありませんのでレビューを読んだだけですが、物理的 には 1 つのサーバーにあるデータベースの部分集合へ、複数サーバーを通して それぞれ接続するというもののようで、Akiyama さんのお書きになっている、 「複数のデータベース → まとめて 1 つの視点」とは逆で、これは、 「1 つのデータベース → 複数の視点」ではないかと思います。(?) トランザクションや権限の制御も同じです。 基本的に、接続ごとにしかコントロールできません。 5.0.3 から(?)は分散型トランザクションが導入されましたが、例外検査の実装が まだまだのような、、、(^^; ところで、では、複数サーバー間の Join もトランザクションも力技で実現でき ないか、というとそれは不可能ではありません。 (整合性や速度に満足できるかどうかは別の問題) 一般的には、テーブルやデータベースを分散すればするほど、同期や整合性保持 のコストが上がります。 結局のところ、データベースの設計で大切なのは、XXが出来るか出来ないか というより、XXでやりたい事とXXを実現するコストをどこでトレードオフするか、 という視点ではないかと、、、 文章から察するに、現在のシステムを Access から MySQL へ移行するという案件に おいて、Access のリンク機能と同じようなことが MySQL で出来れば、最も工程を かけずに移行できる、というのがことの発端だと思いますが、だとすれば、私でしたら 最初に考えるのが、Access で複数あるデータベースを、MySQL では 1 つのデータ ベースにぶち込んでしまう、ということです。(^^; (もちろん、システムを知りませんので、まず頭に浮かぶ、ということです)
14333 2008-01-11 22:36 [秋山満邦 <manpou@xxx] 【Q】関連するテーブルは異なるデータベース上にあっても良いのでしょうか? 14334 2008-01-12 13:30 ┣["日野洋一郎" <hino@x] 14335 2008-01-12 13:48 ┃┗["yusuke ito" <ito.ys] 14337 2008-01-12 18:35 ┃ ┗["日野洋一郎" <hino@x] -> 14336 2008-01-12 16:23 ┣["T.Hirotsu" <hirotsu] 14338 2008-01-13 10:36 ┗[秋山満邦 <manpou@xxx] 14339 2008-01-13 19:49 ┗["T.Hirotsu" <hirotsu] 14341 2008-01-14 00:50 ┗[秋山満邦 <manpou@xxx]