2

ユーザーが中間スキーマ表現を照会できるように、おそらく異なる DBMS を使用して、2 つの異なるデータベース スキーマ間で変換することは可能ですか。クエリは基になる SQL クエリに変換されて結果を返します。

Underlying database      Intermediate Representation
--------------------    --------------
| _____   _____   |     |  _______  |
|| Men | |Women|  |     | |People | |
||-----| |-----|  |     | |-------| |
||Name:| |Name:|  |---->| |Name:  | |
||Age: | |Age: |  |     | |Age:   | |
||_____| |_____|  |     | |Gender:| |
|                 |     | |_______| | 
|_________________|     |___________| 

次のような中間表現に関するクエリが必要です

SELECT * FROM People WHERE Gender == "Male";

基礎となるデータベースで変換するには

SELECT * FROM Men;
4

1 に答える 1

0
create table men (
  name varchar(255) primary key,
  age smallint not null
);

create table women (
  name varchar(255) primary key,
  age smallint not null
);

create view people as 
  select
    name,
    age,
    'Male' as gender
  from men
  union
  select
    name,
    age,
    'Female' as gender
  from women;

クエリ:

insert into men values ('John', 25);
insert into women values ('Jane', 25);

select * from people where gender = 'Male';

結果:

Name  Age  Gender
John  25   Male

それをいじる:

http://sqlfiddle.com/#!15/85939/2

于 2014-01-25T03:46:18.130 に答える