1cm

자바 프로그래밍_Day_25_ 오라클 데이터베이스(Oracle Database) 본문

국비지원_Java/Java Programming_1

자바 프로그래밍_Day_25_ 오라클 데이터베이스(Oracle Database)

dev_1cm 2021. 9. 29. 13:36
반응형

 

 

2021. 09. 23

 

Oracle Database개요

 

     > Data

       -> 관찰 결과로 나타난 정량적 혹은 정성적인 실제 값을 말한다.

     > 정보

       -> 데이터를 기반으로 의미를 부여한 것

     > Data와 정보의 예시

       -> * 에베레스트의 높이 : 8848m -> Data (정량 값)

               에베레스트는 세계에서 가장 높은 산이다. -> 정보 (의미 부여)

 

 

     > Database

       -> 한 조직에 필요한 정보를 여러 응용 시스템에서 공용할 수 있도록 논리적으로 연관된 데이터를 모으고, 중복되는 데이터를 최소화 하여 구조적으로 통합/저장해 놓은 것을 말한다.

       -> 데이터에서 정보를 추출하는 과정 -> 정보처리

       -> 정보를 만들기 위한 목적

 

 

     > Database 정의

       -> 1. 공용 데이터 (Shared Data) : 공동으로 사용되는 데이터

       -> 2. 통합 데이터 (Integerated Data) : 중복 최소화로 중복으로 인한 데이터가 불일치하는 현상을 제거

       -> 3. 저장 데이터 (Stored Data) : 컴퓨터 저장장치에 저장된 데이터

       -> 4. 운영 데이터 (Operational Data) : 조직의 목적을 위해 사용되는 데이터

 

 

      > Database 특징

       -> 실시간 접근성(real time accessibility) : 사용자가 데이터 요청 시 실시간으로 결과를 서비스

       -> 계속적인 변화 (continuous change) : 데이터 값은 시간에 따라 항상 바뀜 (최신상태 유지)

       -> 동시 공유(concurrent sharing) : 서로 다른 업무 또는 여러 사용자에게 동시 공유됨 (동시에 같은 내용)

       -> 내용에 의한 참조(content reference) : 사용자가 요구하는 데이터 내용으로 데이터를 찾는다. (주소값이나 데이터가 저장된 위치에서 찾아오는 것이 아닌 데이터 내용으로 데이터를 찾는 것.)

 

 

     > DBMS (DataBase Management System)

       -> 데이터베이스에서 데이터 추출, 조작, 정의, 제어 등을 할 수 있게 해주는 데이터베이스 전용 관리 프로그램이다.

 

 

     > DBMS 기능

       -> 데이터 추출 (Retrieval) : 사용자가 조회하는 데이터 혹은 응용 프로그램의 데이터를 추출

       -> 데이터 조작 (Manipulation) : 데이터를 조작하는 소프트웨어(응용 프로그램)가 요청하는 데이터 삽입, 수정, 삭제 작업을 지원

       -> 데이터 정의 (Definition) : 데이터의 구조를 정의하고 데이터 구조에 대한 삭제 및 변경 기능을 수행

       -> 데이터 제어 (Control) : 데이터베이스 사용자를 생성하고 모니터링하며 접근 제어, 백업과 회복, 동시성 제어 등의 기능을 지원

 

 

     > DBMS 종류와 특징

  Access SQL Server Oracle MySQL MariaDB SQLite
제조사 MS MS Oracle Oracle MariaDB재단 리처드 힙
(오픈소스)
운영체제 기반 윈도우 윈도우 윈도우
유닉스
리눅스
윈도우
유닉스
리눅스
윈도우
유닉스
리눅스
모바일OS
(안드로이드,
iOS등)
용도 개인용 윈도우 기반 기업용 대용량
데이터베이스
소용량
데이터베이스
소용량
데이터베이스
모바일전용
데이터베이스

       -> 리눅스를 가상화 시켜 sql server를 설치했다. (데몬에 cd파일(iso)을 돌리는 것과 같은 원리라고 보면 된다.)

 

 

     > Database 유형

       -> 계층형 데이터베이스 : 트리 형태의 계층적 구조를 가진 데이터베이스로 최상위 계층의 데이터부터 검색하는 구조

            -> 단점 : 데이터가 중복으로 들어가는 문제가 생길 수 있고, 추가하거나 삭제하는 과정이 복잡하다.

       -> 네트워크형 데이터베이스 : 하위 데이터들끼리의 관계까지 정의할 수 있는 구조로 설계 및 구현이 복잡하고 어렵다.

            -> 계층형 데이터베이스의 보완하고자 네트워크형(그물형) 데이터베이스가 나옴.

       -> 관계형 데이터베이스 : 모든 데이터를 2차원 테이블 형태로 표현하고, 테이블 사이의 비즈니스적 관계를 도출하는 구조, 데이터의 중복을 최소화할 수 있으며, 업무 변화에 대한 적응력이 우수하다.

            -> RDBMS(Relational DataBase Management System) : 관계형 데이터베이스를 기반으로 한 DBMS유형으로 일반 DBMS보다 효율적으로 데이터를 저장, 구성 및 관리할 수 있다.

 

 

     > DML (Data Manipulation Language)

       -> 데이터 입력, 수정, 삭제, 조회 언어를 의미한다.

 

 

     > 주요 데이터 타입

데이터 타입 하위 데이터 타입 설명
NUMBER   숫자
CHARACTER CHAR 고정길이 문자(최대 2000바이트)
VARCHAR2 가변길이 문자(최대 4000바이트)
LONG 가변길이 문자(최대 2기가 바이트)
DATE   날짜
LOB CLOB 가변길이 문자(최대 4기가 바이트)
BLOB Binary Data

       -> 문자형에서는 보통 CHAR, VARCHAR2를 자주 쓴다.

 

 

     > SQL(Structured Query Language)

       -> 관계형 데이터베이스에서 데이터를 조회하거나 조작하기 위해 사용하는 표준 검색 언어이다.

       -> 원하는 데이터를 찾는 방법이나 절차를 기술하는 것이 아닌 조건을 기술하여 작성한다.

분류 용도 명령어
DQL
(Data Query Language)
데이터 검색 SELECT
DML
(Data Manipulation Language)
데이터 조작 INSERT, UPDATE, DALETE
DDL
(Data Definition Language)
데이터 정의 CREATE, DROP, ALTER
TCL
(Transaction Control Language)
트랜젝션 제어 COMMIT, ROLLBACK

 

 

     > SELECT문

       -> 사용자가 입력한 데이터를 조회한다.

       -> 데이터를 조회한 결과를 Result Set이라고 하는데, SELECT구문에 의해 반환된 행들의 집합을 의미한다.

       -> Result Set은 0개 이상의 행이 포함될 수 있고, Result Set은 특정한 기준에 의해 정렬이 가능하다.

       -> 한 테이블의 특정 컬럼, 특정 행, 특정 행/컬럼 또는 여러 테이블의 특정 행/컬럼 조회가 가능하다.

       -> 테이블을 구성하는 튜플(행)들 중에서 전체 또는 조건을 만족하는 튜플(행)을 검색하여 주기억장치 상에 임시 테이블로 구성하는 명령문이다.

       -> 작성법

            -> SELECT 컬럼명 [, 컬럼명, ...]

                 FROM 테이블 명

                 WHERE 조건식;

 

            -> SELECT : 조회하고자 하는 컬럼명 기술.

                 -> 여러 컬럼을 조회하는 경우 컬럼은 쉼표로 구분하고, 마지막 컬럼 다음은 쉼표를 사용하지 않음.

                 -> 모든 컬럼 조회 시 컬럼 명 대신 '*' 기호 사용이 가능하며, 조회 결과는 기술한 컬럼 명 순으로 표시된다.

            -> FROM : 조회 대상 컬럼이 포함된 테이블 명 기술

            -> WHERE : 행을 선택하는 조건 기술.

                 -> 여러 개의 제한 조건을 포함할 수 있으며, 각각의 제한 조건은 논리 연산자로 연결한다.

                 -> 제한 조건을 만족시키는 행들만 Result Set에 포함한다.

 

 

     > SELECT 실습 | 기본

            -> 학원에서 미리 만들어진 데이터들로 실습

            -> EMPLOYEE 테이블에 전체 사원의 모든 컬럼(*) 정보 조회 시 아래와 뜨는 것을 확인할 수 있었다.

 

좌) 대문자로 쿼리 작성 / 우) 소문자로 쿼리 작성

            -> 쿼리는 대소문자를 가리지 않고 둘 다 실행이 되긴 하지만 관례적으로 대문자로 작성해야 한다.

 

1. 모든 컬럼 정보 조회 / 2. JOB 테이블의 직급명 컬럼만 조회 / 3. DEPARTMENT 테이블의 모든 컬럼 정보 조회 / 4. EMPLOYEE 테이블의 원하는 정보 조회

            -> 각각 테이블의 컬럼 정보 불러오기

 

 

 

     > SELECT 예시 | 컬럼 값 산술 연산

       -> 컬럼 값에 대해 산술 연산한 결과 조회 가능

1. EMPLOYEE 테이블에서 직원 연봉 조회 / 2. EMPLOYEE 테이블에서 보너스가 포함된 연봉 조회

 

       -> 날짜 산술 연산도 가능하다.

 

 

     > SELECT 예시 | 컬럼 별칭

       -> 'AS 별칭' 이나 "별칭", 또는 'AS "별칭"'을 기술하여 컬럼 별칭을 지을 수 있다.

       -> 별칭을 지정해줌으로써 컬럼명이 간결하게 출력되는 것을 확인할 수 있다.

 

 

     > SELECT 예시 | 리터럴

       -> 임의로 지정한 문자열을 SELECT절에 사용하면 테이블에 존재하는 데이터처럼 활용이 가능하다.

       -> 임의로 지정한 '원'이라는 문자열을 SELECT절에 사용해줌으로써 테이블에 존재하는 데이터처럼 조회가 가능하며, RESULT SET의 모든 행에 반복적으로 출력 되는 것을 확인할 수 있었다.

 

 

     > SELECT 예시 | DISTINCT

       -> 컬럼에 포함된 데이터 중 중복 값을 제외하고 한 번 씩만 표시하고자 할 때 사용

1. EMPLOYEE 테이블에서 직원 코드 조회 / 2. EMPLOYEE 테이블에서 직원코드(중복제거한 데이터) 조회 / 3. DISTINCT는 SELECT절에 한 번만 기술할 수 있음.

 

 

     > 연결 연산자

       -> '||' 를 사용하여 여러 컬럼을 하나의 컬럼인 것처럼 연결하거나 컬럼과 리터럴을 연결함

 

 

     > 논리 연산자

       -> 여러 개의 제한 조건 결과를 하나의 논리 결과로 만들어 준다.

연산자 설명
AND 여러 조건이 동시에 TRUE일 경우에만 TRUE값 반환
OR 여러 조건들 중에 어느 하나의 조건만 TRUE면 TRUE값 반환
NOT 조건에 대한 반대 값으로 반환(NULL 제외)

 

     > [AND 연산 결과]

  TRUE FALSE NULL
TRUE TRUE FALSE NULL
FALSE FALSE FALSE FALSE
NULL NULL FALSE NULL

 

     > [OR 연산 결과]

  TRUE FALSE NULL
TRUE TRUE TRUE TRUE
FALSE TRUE FALSE NULL
NULL TRUE NULL NULL

 

 

     > 비교연산자

       -> 표현식 사이의 관계를 비교하기 위해 사용하고, 비교 결과는 논리 결과(TRUE/FALSE/NULL) 중 하나가 된다.

       -> 단, 비교하는 두 컬럼 값/표현식은 서로 동일한 데이터 타입이어야 한다.

 

       -> 주요 비교 연산자

연산자 설명
= 같다
> , < 크다 / 작다
>=, <= 크거나 같다 / 작거나 같다
<>, !=, ^= 같지 않다
BETWEEN AND 특정 범위에 포함되는지 비교
LIKE / NOT LIKE 문자 패턴 비교
IS NULL / IS NOT NULL NULL 여부 비교
IN / NOT IN 비교 값 목록에 포함 / 미포함 되는지 여부 비교

 

 

     > SELECT 예시 | WHERE 절 | 비교연산자

       -> 검색할 컬럼의 조건을 설정하여 행 결정

       -> 실습은 동등 연산, 대소 비교, 같지 않음을 진행함.

좌 : EMPLOYEE 테이블에서 부서 코드가 D9와 일치하는 사원들의 모든 컬럼 조회 / 우 : 그 반대(D9와 일치하지 않는 사원들의 모든 컬럼) 조회
좌: EMPLOYEE 테이블에서 급여가 400만원 이상인 직원들의 컬럼들 조회 / 우: EMPLOYEE 테이블에서 재직중인 직원들의 컬럼들 조회
1. EMPLOYEE 테이블에서 급여 일정 금액 이상인 직원의 컬럼들 조회 / 연봉이 일정 금액 이상인 직원의 컬럼들 조회

반응형
Comments