代码写出来有问题 附在问题下面了 哪位大牛可以指导一下
北京设有总部Z,在上海H、西安X设有门店。总部和各门店都拥有自己的计算机站点,它们在地域上分散,但管理上又相对集中。假设该连锁有如下全局关系模式信息:
Goods(GNo,GName,Supplier,branch) 其中,Goods为商品信息、GNo为商品编号、GName为商品名称、Supplier为供应商、branch取值为{Z,H,X}。
Customer(CNo,CName,Sex) 其中,Customer为客户信息、CNo为客户编号、CName为客户姓名、Sex为性别。
Purchase (Pid,GNo,Qty,CNo) 其中,Purchase为购买信息、Pid为购物单号、Qty为购买数量、GNo为商品编号、CNo为客户编号)
基于上面给出的关系模式有如下应用需求:
存储需求:
(1) 总部Z完成对客户信息的建档立卡工作。
(2) 为了增加局部处理性,总部Z和分店H、X单独维护各自的商品信息和的商品的购买信息。
访问需求:
(1) 总部Z偶尔对整个连锁企业的商品信息以及商品的购买信息进行汇总。
(2) 分店H、X偶尔访问购买过他们各自商品的客户信息。
结合上述需求,完成如下问题。
(1)依据上述信息进行数据分片设计,写出每个关系的分片类型、定义,并用分片树表示。
(2)依据上述存储和访问需求信息,给出相应的分配设计。分配设计要求:①要充分考虑个站点的数据存储和数据访问需求;②建立数据存储要充分考虑站点的可移植性和分布式数据库访问的透明性。
站点 数据存储 数据库链 视图 同义词
总部Z 1111 1111 111 11111
分店H 1111 1111 111 11111
分店X 1111 1111 111 11111
分配方式 非冗余分配 / 冗余分配
(3)使用ORACLE环境实现上述分配设计,并记录设计的过程及核心代码。
(4)插入示例数据进行测试,验证设计的正确性。
(1)主机建立
create table customer(
Cno varchar(10) constraint PK_Cno primary key,
Cname varchar2(20),
Sex char(10) constraint CK_Sex check (sex in ('F','M'))
);
(2)x、h、z三台机都需要建表
create table goods_z(
Gno varchar(10) constraint PK_Gno primary key,
Gname varchar2(20),
Supplier varchar(10),
branch char(10) constraint CK_branch check (branch in ('Z'))
);
(3)
create view v__all_goods as
select * from goods_z
union all
select * from goods_x@dblink_zx
//union all
select * from goods_h@dblink_zh
;
//三个人都建中间表
create table purchase(
pid varchar2(10) constraint PK_sid PRIMARY KEY,
Gno varchar2(10) ,
qty varchar2(10),
Cno varchar2(10),
constraint Fk_Gno foreign key(Gno) references goods_z(Gno),
constraint Fk_cno foreign key(Cno) references customer(Cno)
);
//三个人都操作
create view GP_z as
select Goods_z.gno,Gname,branch,Cno
from goods_z,purchase
where goods_z.Gno = purchase.Gno
and branch = 'Z';
create view PC_z as
select purchase.gno,,Cname,sex
from customer,purchase
where =