본문 바로가기

콩's EDUCATION/콩's DATABASE

오라클 데이터베이스 1강 기초

WDP 수업을 들으며 스스로 복습도 할 겸 수업 내용을 토대로 오라클 데이터 베이스 기초부터 다져볼까 해서 포스팅을 합니다. 복습중 본인이 잘못한 부분이 있을 수도 있습니다.

OCP자격증 취득도 중요하겠지만 이 자격증에 맞는 실력을 갖추는게 더 중요하다고 생각됩니다.

그런 의미에서 기초부터 수업 내용을 토대로 차근 차근 진행해나가도록 할 생각입니다.

가능하면 OCP 덤프에 나오는 문제도 직접 풀어서 왜 그렇게 되는지 추가도 해 볼 생각입니다.^^

 

참고로 WDP과정 기본 교재인 오라클 공인교재 SQL 기초는 학생용 가이드의 경우 1,2로 나눠져 있습니다.

당연히 영어로 되어 있는 메뉴얼 형태입니다.

 

설치는 윈도우 7 OS에서 VMWARE 9.0(가상화 프로그램)를 활용하여 오라클 리눅스를 설치한 후 기본 설정을 바탕으로, 오라클 데이터베이스 11g R2를 설치하였습니다. JDK환경은 1.7 45이며 ORACLE DEVELOPER 4.0 버전을 사용합니다.

 

오라클 데이터베이스를 사용하는 모든 분들은 기본적으로 오라클 홈페이지에서 메뉴얼을 보시며 설치하길 권장합니다.

대다수의 블로그에 있는 글은 개인 PC 설정을 기반으로 하였기에 자신의 PC에 설치할 때 문제가 발생할 경우가 많습니다.

 

http://www.oracle.com/kr/index.html

 

 


 

 

데이터베이스 기초 용어

 

기초용어에 들어가기 전 오라클 관계형 데이터베이스의 시초는 어떻게 될까요?

 

관계형 데이터베이스(RDB)를 처음으로 세상에 보인 사람은 바로 코드 박사입니다.

이 분 덕택에 전 세계의 모든 회사 전산 시스템의 기본 모형이 설계된 것이죠.

오라클은 이 관계형 데이터베이스를 토대로 관계형 데이터베이스 시스템을(RDBMS)를 구현하여 어마어마하게 성장한 회사입니다.

 

그렇다면 데이터베이스 설계는 왜 필요할까요?

 

이는 웹 서버와 웹 어플리케이션 서버(WAS)의 차이점을 이해하면 됩니다.

웹 서버는 HTML로 작성된 웹 페이지 문서를 요청한 사용자에게 서비스하는 서버입니다.

일련의 예로 네이버, 다음등 우리나라 초창기 포탈사는 회원 정보 페이지를 인당 하나씩 전부 만들어야 했다고 합니다.

하나의 페이지에 회원 정보를 담은 페이지를 사용해야했다는 것은 지금 생각해보면 매우 비효율적이었던 방법이었죠.

 

이후, 단지 동일한 문서에 데이터만 다른 웹 페이지 문서를 처리할 방법을 찾았습니다.

각 웹 페이지 문서에 표시되는 데이터는 데이터베이스 서버에 저장하였습니다.

그리고, 회원 정보 웹 페이지를 하나만 구성합니다. 웹 서버에 존재하는 웹 페이지가 사용자의 의해 요청받으면, JSP,PHP,ASP등의 프로그램을 통해 데이터를 데이터베이스 서버로부터 받아와 해당 웹 페이지에 표시하고, 데이터가 채워진 웹 페이지를 요청한 회원에게 전송하는 방법을 구현하였습니다.

 

바로 여기서 데이터베이스가 필요한 이유가 나타납니다. 많은 웹 페이지를 만들 필요 없이 단지 데이터베이스 서버에 저장된 데이터를 요청받고 보내는 일련의 방식을 통해서 이용할 수 있고 무엇보다도 어마어마한 데이터를 체계적으로 관리하고 구성할 수 있다는 장점에서 데이터베이스 설계가 필수가 된 것입니다.

 

본격적으로 데이터베이스 기본 용어를 알아 보겠습니다.

 

1) 데이터

- 이 세상에 구체적으로 표현 되는 하나의 정보입니다

   ex) 콩쓰, 티스토리, .... 등 콩쓰는 하나의 인터넷 상의 별명 데이터, 티스토리는 인터넷 업체 이름 명입니다.

 

2) 정보

- 어떠한 데이터를 활용하는 사용자에게 특별한 의미를 부여하는 데이터 조합입니다.

   ex) 콩쓰와 티스토리를 연결하면 티스토리에서 블로그 하는 콩쓰라는 사용자 정보가 됩니다.

 

3) 레코드

- 사용자가 프로그램이 실행할 때 처리되는 하나의 데이터 조합입니다.

   ex) 회사 월급 지급 프로그램이 있다면 사번, 이름, 월급 데이터가 필요한데 이를 구성한 조합을 
         월급 지급 프로그램의 레코드라고 생각하면 됩니다.

         위 레코드를 구성하는 개별의 데이터를 각각 필드라고 합니다.

 

4) 테이블

- 개별 데이터들의 의미가 정의된 하나의 객체입니다. 테이블을 생성하면 저장되는 공간이 생성되고,

  행의 구성하는 각 데이터의 의미가 데이터베이스 내부에 저장됩니다.

  ex) 사원 테이블 생성 employees 라는 테이블을 생성하면 데이터는 없지만, 데이터를 저장할 공간을 만든다.

 

5) 컬럼

- 개별 데이터의 특성에 맞도록 정의된 집합을 컬럼이라고 합니다.

ex) 사원 테이블에 필요한 정보로는 사원 이름, 사원 입사일, 사원 봉급 등이 있습니다. 바로 이것이 컬럼입니다.

 

6) 과거 데이터베이스 설계

- 데이터 단위인 레코드를 기준으로 테이블을 생성했다.

- 데이터 중복 및 관리에 문제가 많았다.

 

7) 현재 데이터베이스 설계

- 전문가에 의하여 설계된 엔티티 관계 다이어그램(Entity Relationship Diagram;ERD)을 근거로 테이블을 생성한다.

- 개별 데이터가 가지는 의미인 속성(Attribute)으로 정의된다.

- 서로 관련된 속성은 사용 목적에 적절하도록 설계된다.

- 그룹화된 속성들을 엔티티(Entity)라고 합니다.

- 엔티티를 토대로 도식화 한 것이 바로 엔티티 관계 다이어 그램(ERD)입니다.

- 테이블은 속성과 엔티티를 토대로 작성되고 구현단계에서 속성은 컬럼, 엔티티는 테이블로 구현된다.

 

8) 행(ROW)

- 테이블(엔티티) 또는 컬럼(속성)들의 의미에 해당하는 실제 데이터들의 묶음이다.

ex) 사원 테이블 - 사원 이름 속성 - 사원 이름 (콩쓰)