우리는 지금 데이터의 시대에 살고 있습니다. 개인으로부터 시작해서 기업에 이르기까지 매일 새로운 데이터를 생산하고 이 데이터에 기반해 생활과 비즈니스가 이루어집니다. 실시간 교통 데이터는 내비게이션 SW에서 이용되고, 고객의 구매 데이터는 새로운 상품을 개발하는 데 사용됩니다. 인공지능, 빅데이터, 자율주행, 클라우드 등 요즘 언론과 뉴스에 오르내리는 이 기술들은 모두 데이터와 깊이 연관되어 있습니다. 지금은 데이터가 경제활동의 기본 요소가 되는 ‘데이터 경제’의 시대입니다.
우리는 왜 데이터베이스를 배워야 할까요? 첫째, 최근 그 가치를 새롭게 인정받고 있는 데이터를 저장하고 처리할 수 있는 가장 기본적이면서도 널리 쓰이는 수단이 데이터베이스이기 때문입니다. 데이터베이스를 잘 알아야 데이터를 잘 처리할 수 있습니다. 둘째, 대부분의 소프트웨어 개발이 데이터베이스를 기초로 이루어지기 때문입니다. 따라서 소프트웨어 개발자이거나 소프트웨어에 관심이 있다면, 기본적으로 데이터베이스를 알아야 합니다.
본 교재는 데이터베이스를 처음 접하는 학습자들을 위해 집필되었으며, 다음과 같은 두 가지 목표를 가지고 있습니다. 첫째, 데이터베이스에 대한 이론적인 이해를 제공합니다. 둘째는 데이터베이스를 실제 업무나 소프트웨어 개발에 활용할 수 있도록 실무적 기술을 습득하도록 합니다. 특별히 SQL 활용 능력을 기르도록 합니다.
많은 교재의 교육과정이 이론에 치우치거나 데이터베이스 사용법 위주로 구성되어 있는데 이것은 바람직하지 않습니다. 본 교재는 학습자들이 단단한 이론적 기초 위에서 실무능력을 갖출 수 있도록 구성했습니다. 데이터베이스 초심자들에게 이 교재가 많은 도움이 되기를 기원합니다.
Contents
CHAPTER 01 데이터의 시대
1.1 지금은 데이터의 시대
1.2 4차 산업혁명과 데이터
1.3 데이터베이스의 등장 배경과 역사
1.4 실습환경의 구축
단원 요약
연습문제
CHAPTER 02 데이터베이스 시스템
2.1 데이터베이스 시스템의 개념
2.2 데이터베이스와 데이터베이스 관리 시스템
2.3 데이터베이스 사용자
2.4 데이터베이스 언어
2.5 오라클 데이터베이스 개요
실습 오라클 데이터베이스 살펴보기
단원 요약
연습문제
CHAPTER 03 관계형 모델
3.1 데이터 모델의 개념
3.2 관계형 데이터 모델
3.3 관계형 데이터 연산
3.4 데이터 무결성 규칙
실습 오라클 SQL Developer의 사용
단원 요약
연습문제
CHAPTER 04 관계대수
4.1 관계대수 개요
4.2 일반 집합 연산자
4.3 순수 관계 연산자
4.4 관계대수의 응용
실습 관계대수의 활용
단원 요약
연습문제
CHAPTER 05 SQL Ⅰ
5.1 SQL 언어 개요
5.2 예제 데이터베이스 소개
5.3 SELECT 문
5.4 내장 함수의 사용
5.5 정렬, 그룹
실습 SQL Developer에서 SQL의 실행
단원 요약
연습문제
CHAPTER 06 SQL Ⅱ
6.1 기본키와 외래키
6.2 조인 연산
6.3 UNION, INTERSECT, MINUS
6.4 중첩 SQL
실습 오라클의 임시 테이블 사용하기
단원 요약
연습문제
CHAPTER 07 SQL Ⅲ
7.1 개요
7.2 CREATE
7.3 ALTER, DROP
7.4 INSERT, UPDATE, DELETE
실습 SQL Developer를 이용한 테이블 관리
단원 요약
연습문제
CHAPTER 08 뷰
8.1 뷰
8.2 인덱스
8.3 PL/SQL 프로시저
8.4 PL/SQL 함수
실습 부서 정보를 출력하는 프로시저의 작성
단원 요약
연습문제
CHAPTER 09 데이터베이스 설계 I
9.1 데이터베이스 설계의 절차
9.2 ER 다이어그램
9.3 데이터 모델링
9.4 물리적 데이터베이스의 설계
실습 SQL Developer로 물리적 ERD 작성하기
단원 요약
연습문제
CHAPTER 10 데이터베이스 설계 II
10.1 함수적 종속성
10.2 정규화
10.3 정규화 사례
실습 Data Modeler를 이용한 순공학 및 역공학 작업
단원 요약
연습문제
CHAPTER 11 데이터베이스 관리와 보안
11.1 데이터베이스 보안 개요
11.2 사용자 계정의 생성
11.3 사용자 권한 관리
11.4 역할의 관리
실습 데이터베이스 내보내기
단원 요약
연습문제
CHAPTER 12 트랜잭션
12.1 트랜잭션
12.2 장애와 회복
12.3 병행 수행 제어
실습 테이블을 엑셀 파일로 저장
단원 요약
연습문제
CHAPTER 13 데이터베이스 기반 앱 개발
13.1 개발 환경의 설정
13.2 텍스트 모드 프로그래밍
13.3 GUI 프로그래밍 예제
실습 데이터베이스 GUI 앱 개발
단원 요약
연습문제
CHAPTER 14 데이터베이스 최근 동향
14.1 클라우드와 데이터베이스
14.2 인공지능과 데이터베이스
14.3 NoSQL
14.4 NewSQL
단원 요약
연습문제
부록 예제 데이터베이스 테이블 설명
찾아보기
Author
오세종
서강대학교 컴퓨터학부 학사와 석사를 거쳐 동대학원 컴퓨터학과에서 접근제어 이론으로 박사학위를 받았다. 학위 후 George Mason University에서 Post Doc. 연구원으로 2년간 일하였다. 대우정보시스템 CIM 사업부에 근무하면서 데이터베이스 설계, ERP 시스템 개발에도 참여하였다. 현재 단국대학교 소프트웨어학과 교수로 재직 중이다. 주요 연구 분야로 빅데이터 분석, 데이터 시각화, 머신러닝을 활용한 의료분야 진단모델 개발 등이 있다, 저서로는 『데이터베이스 설계 및 구축』(생능출판사, 2012), 『C로 배우는 기초 프로그래밍』(그린, 2010) 등이 있다.
서강대학교 컴퓨터학부 학사와 석사를 거쳐 동대학원 컴퓨터학과에서 접근제어 이론으로 박사학위를 받았다. 학위 후 George Mason University에서 Post Doc. 연구원으로 2년간 일하였다. 대우정보시스템 CIM 사업부에 근무하면서 데이터베이스 설계, ERP 시스템 개발에도 참여하였다. 현재 단국대학교 소프트웨어학과 교수로 재직 중이다. 주요 연구 분야로 빅데이터 분석, 데이터 시각화, 머신러닝을 활용한 의료분야 진단모델 개발 등이 있다, 저서로는 『데이터베이스 설계 및 구축』(생능출판사, 2012), 『C로 배우는 기초 프로그래밍』(그린, 2010) 등이 있다.