데이터 베이스를 공부한지 얼마 안되는 초보입니다.
이번에 학원에서 외래키의 적절한 응용 쓰임과 테이블 조인에 대해 공부하고 있는데요.
그 예로 컴퓨터부품 대여를 가정으로 했어요.
1)고객 테이블(customer) - 고객번호(pk), 고객이름, 고객주소, 고객전화번호
2)컴퓨터부품 테이블(com) - 컴퓨터부품번호(pk), 컴퓨터부품명, 대여요금, 수량
3)체인점(branch) - 체인점번호(pk), 체인점이름, 체인점주소, 체인점전화번호
4)직원(emp) - 직원번호(pk), 직원이름, 직원주소, 직원전화번호
고객과 컴퓨터부품 간에 다대다 관계
체인점과 컴퓨터부품 간에 다대다 관계
체인점과 직원 간에 일대다 관계
고객과 직원간에 다대일 관계
외래키의 적절한 응용 쓰임과 테이블 조인에 관한 공부라서 조건이
고객과 컴퓨터부품간에 대여테이블(rent) 교차테이블을 만드는데
추가 속성없이 외래키만 넣어야 됩니다.
그리고,
컴퓨터부품과 체인점테이블간에 관리테이블(management) 교차테이블을 만드는데
추가 속성없이 외래키만 넣어야 됩니다.
MSSQL 2005 Express가 무료라서 이것을 사용하구요
모든 과정을 퀴리로 일일이 타이핑해서 만들라고 하더라구요
그래야 머리속에 들어오고 암기가 된다고요
그래서 그렇게 했는데
대여테이블(rent)에 문제의 결과가 나오도록 임의의 instance를 10개 이상 삽입하구요.
이제 질문입니다.
1) 대여한 고객의 고객이름과 아기용품명을 출력한다.
2) 각 고객번호별 대여요금의 합을 구하고 고객번호를 출력한다.
3) 부산점에서 그래픽카드를 대여한 고객의
고객이름, 고객주소, 대여요금, 컴퓨터부품명, 체인점이름 출력한다.
여기 3번 문제를 풀기위해 의문이 듭니다.
대여테이블(rent)에 외래키만 넣으라고 했습니다.
그러면, 대여테이블(rent)에 instance를 삽입할 때 체인점이름도 넣어줘야 할 것 같은데
대여테이블(rent) 생성시 체인점 외래키도 넣어줘야 되는지요?
넣어준다면 어떤식으로 넣어줘야 되는지?
아니면, 3번 문제를 풀기 위해 관리테이블(management)에 instance를 또 삽입해야 되나요?
CREATE TABLE rent
(
고객번호 char(10) NOT NULL,
컴퓨터부품번호 char(30) NOT NULL,
체인점번호 char(10) NOT NULL,
constraint rent_pk01 primary key (고객번호),
constraint rent_pk02 primary key (컴퓨터부품번호),
constraint rent_fk01 foreign key (고객번호) refrences customer(고객번호),
constraint rent_fk02 foreign key (컴퓨터부품번호) refrences com(컴퓨터부품번호),
constraint rent_fk03 foreign key (체인점번호) refrences branch(체인점번호)
);
이런식으로 테이블을 생성하는 것이 맞는지.... 수정을 한다면?
3번 출력 결과를 얻기 위해
쿼리를 어떤식 타이핑해야 될까요?
나머지 다른 문제도 출력 결과를 얻으려면 어떤 식으로 쿼리문을 작성해야 될까요?
다른 녀석한테 물어봐도 자기도 잘 모르겠다고 하고,
막상 주말에 하려니 다른 물어볼 사람도 없고,
애초에 문제 들을 때 졸지 말어서야 했는데... |