분산 데이터베이스 - 서버 생성

4306 단어
** 각각 네 대의 서버에 양방향 데이터베이스 링크를 구축하여 컴퓨터학과에서 외국어학과로 연결되는 링크 서버 ** (student1)를 만드는 것을 예로 들자.

EXEC sp_addlinkedserver

@server='student1',

@datasrc='tred',

@srvproduct='',

@provider='SQLOLEDB';

EXEC sp_addlinkedsrvlogin

@rmtsrvname='student1',

@useself='false'


각각 세 개의 계열 서버에 분포식 구역 보기를 만들고 컴퓨터 계열을 예로 들다.
create view info_student

as

select * from student

union all

select * from student1.dbo.student1

union all

select * from student2.dbo.student2


예:
사이트 구분
1. 사이트 학생에서 학생2 액세스
select sc.sno,sc.cno,grade ,sdept

from sc, student2.dbo.student

where student2.dbo.student.sno=sc.sno

2. 모 사이트의 모든 학우 중 가장 높은 학우 정보를 조회
select top 1 sc.sno, sname, sc.cno,grade ,cname,sdept
from sc, course,student1.dbo.student
where student1.dbo.student.sno=sc.sno and sc.cno=course.cno 
order by grade desc

3. 두 사이트의 sno, sname, sdept 조회
select sno, sname,sdept
from student1.dbo.student
union
select sno, sname,sdept
from student2.dbo.student

4. 모든 사이트 남학생 성적 조회(재구성법)
select sc.sno, sname,ssex,sdept,grade
from student1.dbo.student,sc
where student1.dbo.student.sno=sc.sno and ssex=' '
union
select sc.sno, sname,ssex,sdept,grade
from student2.dbo.student,sc
where student2.dbo.student.sno=sc.sno and ssex=' '
union
select sc.sno, sname,ssex,sdept,grade
from student,sc
where student.sno=sc.sno and ssex=' '

  • 다른 사람을 방문하여'데이터베이스'를 선택한 학생의 성적을 조회하다
    select sc.sno, sname,sdept,grade,cname
    from student1.dbo.student,sc,course
    where student1.dbo.student.sno=sc.sno and sc.cno=course.cno and cname='Java'
    
    

    6. 데이터베이스 선택 점수가 가장 높은 학생의 학번, 이름, 성적을 찾아낸다
    select top 1 sc.sno, sname,cname,sdept,grade
    from student,sc,course 
    where student.sno=sc.sno and course.cno=sc.cno and cname=' '
    order by grade desc
    
    select top 1 sc.sno, sname,cname,sdept,grade
    from student1.dbo.student,sc,course 
    where student1.dbo.student.sno=sc.sno and course.cno=sc.cno and cname=' '
    order by grade desc
    
    select top 1 sc.sno, sname,cname,sdept,grade
    from student2.dbo.student,sc,course 
    where student2.dbo.student.sno=sc.sno and course.cno=sc.cno and cname=' '
    order by grade desc
    

    7. 한 사이트에서 다른 사이트로 데이터 삽입
    insert 
    into student1.dbo.student(sno,sname,ssex,sage,sdept)
    values ( '201212009','dd',' ',19,' ')
    

    8. 화학계 생성 평균점, 최고점, 최저점 보기
    create view T_huxue(sno,avg_grade,min_g,max_grade,cmane)
    as
    select sc.sno,avg(grade),min(grade),max(grade),cname
    from sc, student2.dbo.student ,course
    where student2.dbo.student.sno=sc.sno and course.cno=sc.cno 
    group by sc.sno,cname
    

    9. 컴퓨터계 보기를 만드는 데 평균 60점 이상의
    create view Ji_60(cname,avg_g)
    as
    select cmane,avg_grade
    from  T_huxue
    where  avg_grade>60
    
    

    컴퓨터의 한 성 보기에 데이터 삽입
    insert 
    into Ji_xin
    values ('201212022',' ',24,' ',' ')
    
    select max(grade)  ,min(grade)  ,avg(grade)  
    from T_jisuanji
    

    수학과 보기의 인원수를 조회하다
    select  count(  distinct sno)  
    from T_shuxue
    

    어떤 성 보기에서 여학생의 나이를 갱신하다
    update Ji_xin
    set sage=sage+1
    where ssex=' '
    

    모든 계수 보기 만들기
    create view hh(renshu,sdept)
    as
    select count(sno),sdept
    from student1.dbo.student
    group by sdept
    union
    select count(sno),sdept
    from student2.dbo.student
    group by sdept
    union
    select count(sno),sdept
    from student
    group by sdept
    

    모든 학과의 수강생 수를 보기로 만들다
    create view hh2(renshu,sdept)
    as
    select count(distinct sc.sno),sdept
    from student1.dbo.student,sc
    where sc.sno=student1.dbo.student.sno
    group by sdept
    union
    select count(distinct sc.sno),sdept
    
    from student2.dbo.student,sc
    where sc.sno=student2.dbo.student.sno
    group by sdept
    union
    select count(distinct sc.sno),sdept
    from student,sc
    where sc.sno=student.sno
    group by sdept
    

    다른 사이트 데이터 삭제
    delete student2.dbo.student
    where sno='ll'
    
    

    뷰 삭제
    drop view ji_xin
    
    drop view T_shuxue1
    

    좋은 웹페이지 즐겨찾기