관리 메뉴

클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지

제약 조건 3 - 단원 마무리 연습문제 풀기 본문

알고리즘 및 자료 관리/데이터베이스

제약 조건 3 - 단원 마무리 연습문제 풀기

huenuri 2024. 8. 23. 16:53

이제 마지막으로 연습문제만 풀면 된다. 이번 연습문제는 한 문제밖에 되지 않아 너무 좋았다. 하지만 살펴보면 3개의 문제로 나누어져 있으니 결코 쉽지 않을 것이다.
난 공부를 하기 전에 얼마만큼 할지, 어느 정도 시간에 마칠지 목표를 정하고 한다. 신기하게도 내가 설정한 목표에 대부분 근접한다. 이번에는 30분 안에 문제를 다 풀어볼 예정이다.

 

학습 목표

제약 조건 연습문제를 풀어보자!

학습 시간

아침 8시 ~ 8시 50분 <50분 소요>


 

 

 

 

 

단원 마무리 연습문제 풀기

 

문제 설명

 

문제가 길고 복잡해서 붙여 넣어보았다.


 

 

 

1-1번 문제

책을 뒤적이며 이 쿼리문을 작성해 보았다. 답을 보지 않고 혼자서 헤매면서 답을 찾아가는 과정은 정말 즐거운 경험이다~


 

 

 

1-2번 문제

작업을 하는데 계속 NAME 오류가 발생해서 다시 새로 파일을 만들어하기로 했다. 하지만 새로 만들어도 비슷했다.

 

 

 

 

FOREIGN KEY를 설정하는 문제는 조금 어려워서 답을 참조해 보았다. 여기서 중요한 것은 REFERENCES를 쓰고 참조할 테이블 이름과 열을 써야 한다는 것이다.
그리고 한번 만들어진 이름의 경우 다시 설정할 수 없으니 롤백을 하든 되돌려야 한다. 아직 이 부분을 잘 몰라서 그냥 넘어가기로 했다.


 

 

 

 

1-3번 문제

 

 

이 문제는 많이 어려워서 정답을 보면서 풀었다. 아직 사전 뷰를 만드는 문제는 감이 잘 잡히지 않는다. 이전 장에서도 사전 뷰 문제는 풀지 못했던 것 같다.

 

 

 

 

정답을 지우고 혼자서 다시 풀어보았는데 새로운 사실을 깨달았다. WHERE 조건에서 IN의 위치를 다르게 설정하니 이렇게 출력이 되었다.

 

 

즉 DEPT CONST가 모두 지워진 것이다. 아마도 EMP_CONST 안에 DEPT_CONST가 자식으로 포함되어 있어서 그런 것 같다. 그래서 EMP를 DEPT보다 먼저 써준 것 같다.


 

 

 

 

 

학습을 마치고

스스로 문제를 풀며 여러 가지 찾아보느라 예상 시간보다는 10분 정도 더 걸렸다. 하지만 이 시간을 통해 시행착오를 겪으며 더 많은 것들을 알게 되었다. 이제 다시 데이터베이스 공부도 재미있어졌다.


무얼 하든 차에 시동이 걸리는 시간이 필요하듯이 공부에도 몰입하려면 일정 시간이 필요한 것 같다. 어느 날은 정말 몰입이 잘 되는데 또 어떤 날은 정말 집중할 수 없는 날이 있다. 엊그제 금요일이 그랬다. 아무리 일기를 쓰고 수업에 집중하려고 했으나 쉽지 않았다. 공부도 훈련인 것 같다. 하려고 마음을 먹으면 반드시 할 수 있다는 걸 요즘 많이 느낀다. 이제 아침을 먹고 그다음 과정을 시작해 볼 것이다!