Life/Book Record

[서평] 오라클 SQL과 PL/SQL (다양한 예제로 쉽게 배우는)

샤아이인 2022. 2. 1. 09:27

저의 돈으로 직접 사서 직접 완독해 본 후 써보는 후기입니다. 따라서 장점은 장점대로 칭찬할 것이며, 단점은 단점대로 언급할 것입니다.

2021/10/7 ~ 2021/10/29

<리뷰 순서>

1) 책의 표지

2) 단원별 구성

3) 읽은 소감

우선 저의 글의 앞부분만 보는 분들을 위해 먼저 간단히 3가지에 대해 답해보겠습니다.

Q 이 책을 읽기 전에 필요한 수준/ 지식은?

=> 사전 시직은 필요 없습니다. 기초적인 부분은 잘 설명해 주는 책입니다.

 

Q 이 책을 읽어야 할 필요성, 어디에 도움이 될까?

=> SQL 제품으로 원탑을 달리는 oracle의 명성을 엄청나다. 특히 oracle 관련된 책들이 엄청 많다.

 

국내 SQL 책만 봐도 2010년 정도 기준으로 이전은 거의 다 oracle이며, 그나마 최근 들어서야 다른 MySQL, MariaDB, PorstgreSQL, NoSQL에 관한 책들이 나오는 것 같다.

 

이는 oracle이 그만큼 관계형 DBMS 중 뛰어난 성능을 보여주며, 이로 인하여 오랫동안 사용해온 유저들이 많기 때문일 것이다.

따라서 기본적인 SQL을 공부하는 입장에서는 oracle로 공부를 시작해도 무방할 것 같다.

이 책은 ANSI 표준의 문법 내용도 다루어주기 때문에 표준 위주로 공부하면 편하다.

 

다만 oracle은 몇 가지 문제점이 있는데...

1) 오랜 시간 발전해 옴과 더불어 너무 복잡해졌다. 깊은 이해를 하려면 oracle도 진짜 오래 공부해야 한다.

2) 유료... 이게 가장 크다.. 공부할 때 사용하는 XE 버전은 무료로 사용이 가능하지만, 실제 애플리케이션을 사용할 때 성능이 필요하다면 유료 구매를 해야 한다. 따라서 나는 나중에라도 PorstgreSQL로 갈아탈 예정이다.

Q 이 책을 읽은 후 추후 공부는?

=> 다른 MySQL 또는 PostgreSQL에 관한 책을 읽어봄과 동시에, SQL 문제를 좀 풀어봐야 할 것 같다.

또한 JPA 공부도 강의를 들으며 진행할 예정이다.

 

아! 아무도 모르시는 것 같은데 이 책 무료 강의가 있습니다.

정확히는 저자분이 제공하는 것은 아니고, KOCW에서 안양대의 변시우 교수님이 올려두신 강의가 이 책을 이용하여 강의하십니다.

저도 책으로 공부하다 설명이 부족하다 싶은 부분들은 강의를 통해 보충하였습니다.

 

 

1. 책의 표지

표지가 깔끔한 것 같다. 이상한 캐릭터 같은 거 없고, 너무 오래된 책 느낌도 안 나고, 기술서적 다운 표지인 것 같다.

 

 

2. 단원별 구성

0장 공부를 시작하기 전에 미리 알아두세요

1장 SELECT 명령을 이용하여 데이터를 조회합니다

2장 SQL 단일행 함수를 배웁니다

3장 SQL 복수행 함수(그룹 함수)를 배웁니다

4장 JOIN을 배웁니다

5장 DDL 명령과 딕셔너리를 배웁니다

6장 DML로 데이터를 관리하는 방법을 배웁니다

7장 Constraint(제약조건)를 배웁니다

8장 INDEX(인덱스)를 배웁니다

9장 VIEW(뷰)를 배웁니다

10장 Sub Query(서브 쿼리)를 배웁니다

11장 SEQUENCE(시퀀스)와 SYNONYM(동의어)를 배웁니다

12장 계층형 쿼리(Hierarchical Query)를 배웁니다

13장 오라클 계정 관리 방법을 배웁니다

14장 12c SQL에 추가된 새로운 기능

15장 Oracle PL/SQL에 입문합니다

 

이 책에서 목표로 삼고 있는 3가지는 다음과 같다고 초반부에 서술되어 있습니다.

확실히 예제 위주의 책이라 이론에서 끝나는 것이 아니라, 직접 타이핑 해가면서 결과를 보면서 공부하니 좋았다.

 

또한 원리를 자세하게 설명해 주시는 부분이 좋았다.

다만 좀 너무 들어갔다 싶은 내용들은 대부분 설명이 부족하여 이해하기 어려웠다.

예를 들어 이 책에서는 PL/SQL이 가장 마지막에 나오는데, 책 중간중간 적지 않은 부분에서 PL/SQL을 이용하여 원리를 설명해 준다.

 

물론 설명을 위해 PL/SQL이 필요해서 설명하신 거 이해한다. 다만 이 책에서 PL/SQL을 맨 마지막에서 설명해 주는데 이를 기반으로 하는 내용들을 중간에서 설명하면 당혹스럽다.

차라리 관련된 부분의 설명을 전부 PL/SQL 뒤로 넘겨서 "깊게 공부하기" 와 같은 단원이 있었으면 좋을 것 같다.

 

일반적인 사람이라면 책을 앞에서부터 뒤로 읽어나가기 때문에... 이런 부분이 마음에 들지 않았다.

 

리뷰를 인상 깊게 공부했었던 4장 Join 을 기준으로 작성하겠다.

 

3. Join(4장)

이 책도 다른 책들과 마찬가지라 초반 도입부에서는 해당 단원에서 배울 내용이 무엇인지 설명해 준다.

위 사진을 확인해 보면!

왼쪽 그림을 보면 4장에서 배울 JOIN이 어떤 상황에서 필요한지를 설명해 주고 있다.

오른쪽의 사진에서와같이 참고 부분을 만들어 짤막하게나마 도움이 되는 내용들 또한 많이 있었다.

 

코드에 해당하는 부분이다.

왼쪽 사진을 보면 위에 STEP 이 적혀있는데, 과정이 필요한 부분에서는 STEP 별로 하나하나 어떻게 진행해야 하는지를 알려준다.

오른쪽 사진과 같이 SQL의 실행 결과 또한 확인할 수 있다.

 

위 내용은 재미있게 읽었던 OUTER JOIN 부분이다.

이전에 다른 책에서도 JOIN에 관한 글은 항상 읽었지만, 이 책은 JOIN을 정말 잘 설명해 주는 것 같아 좋았다.

또한 예제 문제들 또한 풀어보면서 진행하니 습득되는 느낌이 들어 더욱 좋았다.

 

또한 장점 중 하나인데, 오른쪽 사진과 같이 oracle, ANSI 2가지 문법 모두를 보여준다.

 

위 사진과 같이 참고 부분에서는 보통 심화된 내용들을 다루어 주셨다.

참고 부분에 PL/SQL로 설명한 부분과, 조금 어려운 내용들이 많았는데, 읽다 보면 초심자가 보기에 좀 설명이 부족하게 돼있는 부분들이 있었다. 다행히 난 KOCW에서 관련된 강의를 찾을 수 있어 같이 공부하였다.

 

마지막으로 연습문제와, self 체크 부분 또한 확인할 수 있다.

 

 

4. 읽은 소감

● 장점

1) 좋은 설명

기본적인 SQL은 설명을 잘해준신다.

 

2) 많은 예시를 통한 실습

진짜 이게 장점이다. 예제가 많아서 직접 따라서 쳐보기만 해도 조금씩 체화가 된다.

 

3) 좋은 연습문제들

간단하게 풀리는 연습문제들이 아닌, 어느정도 생각을 하고 노력해야 풀리는 연습문제들이 있다.

이런 문제들이 책의 수준을 높힌다.

● 단점

1) 심화된 내용들에서의 부족한 설명

그나마 나도 쌩초보는 아니라 읽었지, 진짜 SQL 처음 공부하는 분들은 금방 포기할 수도 있는 책이다.

뒷부분에 가서야 배우는 내용으로 초반부에 설명을 한다. 근데 이게 설명을 하려먼 어쩔 수 없는 부분인 건 또 이해가 가긴 한다.

 

2) 연습문제 해답 없음

내가 푼 풀이가 맞는지 정확한 확인은 할 수가 없다.

 

3) 은근 많은 책 광고

위 사진과 같이 저자의 다른 책을 추천하는 부분이 정말 많다.

이게 한두 번 나오는 정도는 이해가 가는데, 뭐랄까 어려운 내용이 나올 때마다 항상 저자의 다른 책을 살펴보라고 하니까... 맥이 끊기고...

차라리 이럴 거면 그냥 심화 내용을 다 빼버리고 더 얇게 만들거나, 문제 해답을 추가해 주지 하는 생각이 들었다..

 

내 생각일수도 있지만, 책 중간에 다른책 광고를 계속보면 그책만큼은 절대 안살거 같다.

 

4) 가끔 한글이 어색한 부분들이 있다. (일부분)

 

요약 : 오라클 입문서로 음... 강추까지는 아니고, 추천하기 좀 애매한 책