미션과 퀴즈를 통한 학습의 완성
이 책은 오라클 데이터베이스를 처음 시작하는 초급 개발자나 오라클 데이터베이스를 사용하는 데 어려움이 있는 중급 개발자를 위해 만들었다. 대부분의 오라클 저서들이 이론과 실습만을 다루는 것과는 달리 이 책은 독자들이 본격적인 학습에 들어가기 전에 무엇을 어떻게 해결해야 하는지 알 수 있도록 도전 과제를 먼저 제시하였다. 각 챕터들은 다양한 미션으로 시작되며, 내용을 학습한 후에는 독자가 스스로 점검할 수 있도록 도전 Quiz를 제공하여 성취감을 느낄 수 있도록 구성했다.
특히 오라클 12c의 새로운 설치방법과 환경을 소개하며, 데이터베이스의 기본을 실무 중심으로 탄탄하게 익힐 수 있도록 하였으며, 초급자들도 쉽게 익힐 수 있도록 오라클 함수뿐 아니라, 데이터베이스 모델링, PL/SQL에 대한 설명을 제공하여 개발자들이 유용하게 활용할 수 있도록 하였다.
김수환 (SuHwan Kim)
현. 한국소프트웨어 기술진흥협회 전임강사
현. 법무법인 더쌤 - 포털/모바일 개발 및 기획 컨설턴트
현. 대법원 전산정보센터 강사
전. 인터넷 진흥협회 전임강사
전. 대구대학교 청년취업아카데미 전임강사
전. 단동 국제항운 유한공사 웹사이트 및 예약시스템 개발
전. 한빛교육센터 오라클데이터베이스와 자바개발자 과정 전임강사
전. 레스페스트 코리아 "따뜻한 디지털세상" 심사 프로그램 개발
전. 한국공업직업전문학교 리눅스 정보보안 및 데이터베이스 전임훈련교사
전. 이수직업전문학교 리눅스 정보보안 및 오라클 데이터베이스 전임 훈련교사
전. 이노정보센터 시스템 사업부/프로그래머
전. (주) 키보스 : 리눅스 서버 시스템 및 오라클 데이터베이스 시스템 튜닝/컨설턴트
전. (주) 파워샘 : 리눅스 서버 시스템 및 웹 메일 프로그래밍
1. 데이터베이스 개념과 오라클 설치
도전 미션: 학사관리를 위한 데이터베이스를 구축하라!
01. 데이터베이스는 어떻게 등장했을까?
02. 데이터베이스는 어떤 기술로 발전해 왔을까?
03. 오라클과 관계형 데이터베이스 관리 시스템이란?
04. 오라클은 어떤 제품으로 구성되어 있을까?
05. 오라클 다운받아 설치하기
06. SQL에 접속하여 사용자 계정 만들기
07. Oracle SQL Developer 설치하고 실습을 위한 예제 테이블 생성하기
2. SQL의 기본
도전 미션: 테이블 내의 정보 중 특정 컬럼만 조회하라!
특정 조건의 데이터만 조회하여 출력하라!
다양하게 데이터를 조회하여 출력하라!
01. 데이터를 조회하기 위한 SELECT 문
02. 특정 데이터를 추출하기 위한 WHERE 절
03. 정렬을 위한 ORDER BY 절
04. 집합 연산자
3. 오라클 주요 함수
도전 미션: 문자 조작 함수를 사용하여 특정 로우(행)만 조회하라!
DECODE 함수를 조건에 따라 서로 다른 결과를 구하라!
형 변환 함수를 사용하여 원하는 형태로 출력하라!
01. DUAL 테이블
02. 숫자 함수
03. 문자 처리 함수
04. 날짜 함수
05. 형 변환 함수
06. NULL을 다른 값으로 변환하는 NVL 함수
07. 선택을 위한 DECODE 함수
08. 조건에 따라 서로 다른 처리가 가능한 CASE 함수
4. 그룹 함수
도전 미션: 그룹 함수를 사용하여 통계 데이터를 구하라!
01. 그룹 함수
02. GROUP BY 절
03. HAVING 조건
5. 데이터베이스 설계
도전 미션: 영화 예매 사이트로 데이터베이스를 설계하라!
01. 데이터베이스 설계의 개념
02. 요구 조건 분석
03. 개념적 설계
04. 논리적 설계
05. 물리적 모델링
6. ERwin을 활용하여 ERD 작성하기
도전 미션: ERwin으로 ERD를 완성하라!
01. ERwin 사용하기
02. 엔티티 타입 간 관계 설정
03. ERwin을 활용하여 물리적 모델링
7. 테이블 구조를 생성, 변경 및 제거하는 DDL
도전 미션: 테이블을 생성하라!
01. 테이블 구조를 만드는 CREATE TABLE 문
02. 테이블 구조를 변경하는 ALTER TABLE 문
03. 테이블명을 변경하는 RENAME 문
04. 데이터 딕셔너리
8. 테이블의 내용을 추가, 수정, 삭제하는 DML과 트랜잭션
도전 미션: 테이블을 생성하고 생성된 테이블에 데이터를 추가하고 수정하라!
employee03 테이블에서 직급이 정해지지 않은 사원을 삭제하라!
01. 테이블에 내용을 추가하는 INSERT 문
02. 테이블의 내용을 수정하는 UPDATE 문
03. 테이블의 내용을 삭제하는 DELETE 문
04. 트랜잭션 관리
9. 데이터 무결성을 위한 제약조건
도전 미션: 제약조건을 추가하라!
01. 무결성 제약조건의 개념과 종류
02. 제약조건 확인하기
03. 필수 입력을 위한 NOT NULL 제약조건
04. 유일한 값만 허용하는 UNIQUE 제약조건
05. 컬럼 레벨로 제약조건 이름을 명시해서 제약조건 설정하기
06. 데이터 구분을 위한 PRIMARY KEY 제약조건
07. 참조 무결성을 위한 FOREIGN KEY 제약조건
08. CHECK 제약조건
09. DEFAULT 제약조건
10. 테이블 레벨 방식으로 제약조건 지정하기
11. 제약조건 변경하기
12. 제약조건의 비활성화와 CASCADE
10. 조인
도전 미션: 경리부서에 근무하는 사원의 이름과 입사일을 출력하라!
인천에서 근무하는 사원의 이름과 급여를 출력하라!
01. 조인의 필요성
02. Cross Join
03. Equi Join
04. Self Join
05. ANSI Join
11. 서브 쿼리
도전 미션: 서브 쿼리문을 이용해 ‘영업부’에서 근무하는 모든 사원의 이름과 급여를 출력하라!
01. 서브 쿼리의 기본 개념
02. 다중 행 서브 쿼리
03. 서브 쿼리를 이용한 테이블 생성과 데이터 조작하기
12. 가상 테이블 뷰
도전 미션: 부서별 최대 급여와 최소 급여를 출력하는 뷰를 작성하라!
01. 뷰의 개념과 뷰 생성하기
02. 뷰의 내부구조와 USER_VIEWS 데이터 딕셔너리
03. 뷰 제거하기
04. 뷰의 다양한 옵션
05. 인라인 뷰로 TOP-N
13. 시퀀스와 인덱스
도전 미션: 부서 테이블에 부서 번호를 자동으로 부여하라!
컬럼에 인덱스를 지정하라!
01. 시퀀스 개념 이해와 시퀀스 생성
02. 시퀀스 실무에 적용하기
03. 시퀀스 제거하고 수정하기
04. 인덱스의 개요
05. 인덱스의 종류 살피기
14. 사용자 권한
도전 미션: 사용자 계정을 만들자!
01. 사용자 관리
02. 데이터베이스 보안을 위한 권한
03. 롤을 사용한 권한 부여
04. 동의어
15. PL/SQL
도전 미션: PL/SQL 문으로 급여를 인상하라!
01. PL/SQL 구조
02. 변수 선언과 대입문
03. 선택문
04. 반복문
16. 저장 프로시저, 함수, 트리거
도전 미션: 점수가 주어졌을 때 학점을 구하라!
상품을 주문하였을 때 이에 대한 재고 처리를 하는 트리거를 작성하라!
01. 저장 프로시저
02. 저장 함수
03. 커서
04. 트리거
주어진 미션을 풀어가며 공부해 보자!
각 챕터에서는 주요 내용을 배우기 전에 독자들이 학습 목표를 쉽게 알 수 있도록 알차고 재미있는 미션들을 제시하였습니다.
명확하고 깔끔한 설명
각 챕터 내의 Section에서는 오라클의 기본적이고 필수적인 이론들을 명확하고 깔끔하게 설명했습니다.
현장 전문가의 살아있는 조언!
'전문가의 조언' 코너에서는 각 실습 예제들 속에 숨어 있는 주요한 개념이나 간혹 초보자들이 실수할 수 있는 내용들을 한 눈에 파악할 수 있도록 전문가의 경험을 살려 설명합니다.
모르면 일단 따라하자!
'직접 해보기'는 독자들이 차근차근 따라하면서 실습하는 데 어려움이 없도록 과제 해결의 순서대로 제시하였고, 한 눈에 들어오는 그림들로 이해를 돕고 있습니다.
각 장의 세부 내용
1장에서는 데이터베이스의 개념을 정의하고, 오라클을 설치해 봅니다. 데이터베이스와 SQL이 무엇이고 어떤 기능을 하는지 살펴보고, 데이터베이스를 실질적으로 사용하기에 앞서 오라클을 설치하는 방법과 샘플로 제공되는 예제 테이블을 살펴봅니다.
2장에서는 기본이 되는 SELECT 문과 산술 연산자의 사용법, NULL의 의미와 컬럼에 별칭을 부여하는 방법을 살펴봅니다.
3장에서는 오라클의 주요 함수를 학습하는 데 기능에 따른 여러 함수 및 NVL 함수와 DECODE, CASE에 대해 학습합니다.
4장에서는 전체 데이터를 그룹별로 구분하고 통계적인 결과를 구하기 위해 사용되는 '그룹 함수'를 학습합니다. 그 이후에 데이터를 그룹화하여 출력하기 위한 GROUP BY 절을 사용해 보고, HAVING 절을 사용해 봅니다.
5장에서는 데이터베이스 설계를 공부합니다.
6장에서는 ERwin을 활용하여 ERD를 작성합니다.
7장에서는 테이블 구조를 생성, 변경 및 제거하는 DDL에 대해 학습합니다.
8장에서는 테이블의 내용을 추가, 수정, 삭제하는 DML과 트랜잭션을 학습합니다.
9장에서는 데이터 무결성을 위한 제약조건에 대한 개념과 이를 위한 문법을 학습합니다. 이외에도 NOT NULL, UNIQUE, CHECK, DEFAULT 제약조건을 학습합니다.
10장에서는 각 테이블에서 하나의 컬럼을 사용하여 두 개 이상의 테이블을 연결하는 조인에 대해서 살펴봅니다.
11장에서는 서브 쿼리를 학습합니다.
12장에서는 물리적 테이블에 근거한 논리적인 가상 테이블인 뷰(View) 객체를 생성하고, 이를 제거하거나 변경하는 방법에 대해 학습합니다.
13장에서는 연속적으로 번호를 생성해야 할 경우 사용하는 시퀀스 객체를 학습합니다. 그리고 인덱스에 대한 개념과 인덱스를 생성하는 방법을 살펴봅니다.
14장에서는 사용자 계정을 어떻게 생성하는지 살펴보고, 권한을 부여하는 방법을 살펴봅니다. 또한 롤과 동의어에 대해서 학습합니다.
15장에서는 비절차적 언어인 SQL을 극복하게 해주는 PL/SQL에 대해 학습합니다.
16장에서는 자주 사용되는 쿼리문을 모듈화시켜서 필요할 때마다 호출하여 사용하는 저장 프로시저와 함수를 생성하고, 이를 고치고 지우는 작업을 학습합니다. 또한 커서에 대한 개념과 이를 사용하는 방법을 살펴봅니다.
또한 트리거를 정의하고 사용하는 방법을 학습합니다.