关于分布式数据库的操作给点建议!

时间:2022-06-01 17:00:58
一个图书馆的管理系统!比较小,数据必须存放在至少3个站点上,可以是局域网中的站点!
如果用D7+SQL的话!在D7中怎么连数据库!
一般独立数据库的话,都是连的唯一的,现在该怎么处理!
比如BOOK表(NAME,PYEAR,Publisher,isbn,price,class)
仅水平划分的话(按CLASS类别划分存储在不同服务器站点S1,S2,S3中)那么选择ISBN为N的记录时
SQL怎么写,看资料好象是(IF SELECT…… ELSE)如果数据不在本地,在D7中怎么更改数据库呢!

   
SQL能不能作到对用户完全透明!
只写SELECT NAME FROM BOOK WHERE ISBN=N
如果可以怎么设计数据库!


请有经验的给点建设性的意见!提供资料者也有分

下面是作业要求:
数据必须存放在至少3个站点上,数据的划分对用户完全透明。系统必须支持基本的SQL查询语句(可以不包含嵌套),并能将查询结果反映到界面上。系统必须支持数据划分,可以选择支持水平划分,垂直划分,水平+垂直划分或者混合划分。用户查询要进行分解,然后转交底层数据库管理系统执行。各分站点服务器界面上必须能显示出所接受和发送的命令,以及命令的处理过程。必须直接显示到界面上,不允许记录到log文件中。 主站点要显示生成查询分解过程.

18 个解决方案

#1


学习,没接触过

#2


用midas。
看看李维的相关的书。

客户端连应用程序服务器, 应用程序服务器控制database。

#3


这个一定要用3层结构吗?

两层能不能解决

#4


SQL 会自动负载均衡的. 还是多发掘一下SQL 和WIN2K SERVER的潜能吧.

#5


对这个以前没有接触,正在查资料中!
这方面的资料比较少!请作过的给点经验

请问一下分布式中的insert,delete语句!
如果垂直分片比如BOOK表(NAME,PYEAR,Publisher,isbn,price,class)
其中(NAME,ISBN,CLASS)存储在服务器s1上的数据库DB1中,
isbn,pyear,price,Publisher存储 在服务器s2上的数据库DB2中,

怎么用sql语句插入一条纪录和删除一条纪录!能在查询分析器中执行吗?
两个数据库名字要求一样吗?
INSERT INTO DB1.BOOK@S1 VALUES() 是这样表示吗?

用的W2K p +SQL个人版!可以吗?

#6


学习。。。
UP

#7


>>一个图书馆的管理系统!比较小,数据必须存放在至少3个站点上

我觉的应该先解决设计上的问题,为什么要把数据分离在不同的客户端呢??
统一在一个服务器后台处理不行吗??

本人对分布式数据库也不太了解,我认为像小系统的话不需要用那种技术!

#8


用B/S系统可能好处理,用C/S,要做个SOCKET代理(每个点),在设计上你能完全知道
数据在那个库上吗?如果你不知道,那就只有一个个找呀。两层是解决不了的。
你还要INSERT,查询是达不到效果的,
  建议在硬件上下文章,如用VPN

#9


up

#10


感谢各位的帮助!


luke5678(奇异) ( ) 信誉:101 
我觉的应该先解决设计上的问题,为什么要把数据分离在不同的客户端呢??
统一在一个服务器后台处理不行吗??
--呵呵!这是个作业,目的是熟悉分布式数据库!所以……要求这么做!


至于哪些数据存储在什么地方!是设计数据库时确定了的!
比如简单些仅水平分片的话,科技类的书存在服务器S1中,文学类的书存在服务器S2中!
(S1,S2简化些在局域网中)仅仅是数据分布在不同地方!


#11


,数据必须存放在至少3个站点上
???

#12


楼主研究僧???

#13


问题是:比较小的数据库为什么要放到三台机器上呢?这不是多此一举吗?呵呵.

#14


如果在不同的服务器上,是不同的数据,是不是可以考虑查询这方面数据时,就连接那个服务器呢

#15


我了解的分布式应用,是把应用放在不同机上,数据我认为应该是在一个服务器上,

#16


看来大家还是没理解我的意思!

如楼上各位所说:小型数据库没有必要放在若干台服务器中,这个题目是个测试,希望通过这个题目了解一下分布式数据库的使用!我们做项目都是从小到大来的,先积累经验嘛!

经过一段的学习交流:对分布式的理解是这样的!
1.分布式对用户是透明的,这种透明要求程序员来实现,对用户来说他只知道有一个服务器。
2.分布式的重要特点是健壮和分片,
健壮:要靠数据的冗余来实现,某些数据需要在各个服务器中都存在。
分片:垂直分片可以将表中的常用字段独立出来,在每个数据库中存放,来实现快速查找
      水平分片可以把表中具有一定特征的记录(比如在图书馆1的借阅记录)独立出来。

数据库中表在各个服务器中的分布是程序员设计好的,至于能不能达到需要的效果,需要进行评估
才能确定。

#17


你可以把数据放在用不同的服务器站点,但是你要一个客户同时对几个服务器进行操作的话,就必须建多个数据模块来完成,不过你的表关联更新因为是不同服务器,不能作成存储过程是比较头痛的问题

#18


《怎么用sql语句插入一条纪录和删除一条纪录!能在查询分析器中执行吗?
两个数据库名字要求一样吗?》


这个并没有特别的要求

#1


学习,没接触过

#2


用midas。
看看李维的相关的书。

客户端连应用程序服务器, 应用程序服务器控制database。

#3


这个一定要用3层结构吗?

两层能不能解决

#4


SQL 会自动负载均衡的. 还是多发掘一下SQL 和WIN2K SERVER的潜能吧.

#5


对这个以前没有接触,正在查资料中!
这方面的资料比较少!请作过的给点经验

请问一下分布式中的insert,delete语句!
如果垂直分片比如BOOK表(NAME,PYEAR,Publisher,isbn,price,class)
其中(NAME,ISBN,CLASS)存储在服务器s1上的数据库DB1中,
isbn,pyear,price,Publisher存储 在服务器s2上的数据库DB2中,

怎么用sql语句插入一条纪录和删除一条纪录!能在查询分析器中执行吗?
两个数据库名字要求一样吗?
INSERT INTO DB1.BOOK@S1 VALUES() 是这样表示吗?

用的W2K p +SQL个人版!可以吗?

#6


学习。。。
UP

#7


>>一个图书馆的管理系统!比较小,数据必须存放在至少3个站点上

我觉的应该先解决设计上的问题,为什么要把数据分离在不同的客户端呢??
统一在一个服务器后台处理不行吗??

本人对分布式数据库也不太了解,我认为像小系统的话不需要用那种技术!

#8


用B/S系统可能好处理,用C/S,要做个SOCKET代理(每个点),在设计上你能完全知道
数据在那个库上吗?如果你不知道,那就只有一个个找呀。两层是解决不了的。
你还要INSERT,查询是达不到效果的,
  建议在硬件上下文章,如用VPN

#9


up

#10


感谢各位的帮助!


luke5678(奇异) ( ) 信誉:101 
我觉的应该先解决设计上的问题,为什么要把数据分离在不同的客户端呢??
统一在一个服务器后台处理不行吗??
--呵呵!这是个作业,目的是熟悉分布式数据库!所以……要求这么做!


至于哪些数据存储在什么地方!是设计数据库时确定了的!
比如简单些仅水平分片的话,科技类的书存在服务器S1中,文学类的书存在服务器S2中!
(S1,S2简化些在局域网中)仅仅是数据分布在不同地方!


#11


,数据必须存放在至少3个站点上
???

#12


楼主研究僧???

#13


问题是:比较小的数据库为什么要放到三台机器上呢?这不是多此一举吗?呵呵.

#14


如果在不同的服务器上,是不同的数据,是不是可以考虑查询这方面数据时,就连接那个服务器呢

#15


我了解的分布式应用,是把应用放在不同机上,数据我认为应该是在一个服务器上,

#16


看来大家还是没理解我的意思!

如楼上各位所说:小型数据库没有必要放在若干台服务器中,这个题目是个测试,希望通过这个题目了解一下分布式数据库的使用!我们做项目都是从小到大来的,先积累经验嘛!

经过一段的学习交流:对分布式的理解是这样的!
1.分布式对用户是透明的,这种透明要求程序员来实现,对用户来说他只知道有一个服务器。
2.分布式的重要特点是健壮和分片,
健壮:要靠数据的冗余来实现,某些数据需要在各个服务器中都存在。
分片:垂直分片可以将表中的常用字段独立出来,在每个数据库中存放,来实现快速查找
      水平分片可以把表中具有一定特征的记录(比如在图书馆1的借阅记录)独立出来。

数据库中表在各个服务器中的分布是程序员设计好的,至于能不能达到需要的效果,需要进行评估
才能确定。

#17


你可以把数据放在用不同的服务器站点,但是你要一个客户同时对几个服务器进行操作的话,就必须建多个数据模块来完成,不过你的表关联更新因为是不同服务器,不能作成存储过程是比较头痛的问题

#18


《怎么用sql语句插入一条纪录和删除一条纪录!能在查询分析器中执行吗?
两个数据库名字要求一样吗?》


这个并没有特别的要求