• Home
  • About
    • Young's Github Pages photo

      一日不作一日不食

    • About
    • Github
  • Posts
    • All Posts
    • All Tags
  • Projects

오라클 DBMS 정리 01

05 Nov 2018

Reading time ~2 minutes

오라클 DBMS 정리 01 - ORACLE DBMS


DBMS(Database Management System)

  • Data : 수, 문자, 이미지로된 자료(연구, 조사의 기본 재료)
    • 데이터를 체계적으로 정리한걸 Database라 함
  • 기존 종이, 판서 등의 데이터를 컴퓨터에서 사용할 수 있게 저장, 사용할 수 있는게 DBMS
  • 과거의 데이터를 사용하여 미래를 예측하기 위해서 DB를 사용
  • DB의 특징
    • 공용 데이터
    • 실시간 데이터
    • 내용에 의한 참조
    • 통합 데이터
  • 여러 종류의 프로그램(DBMS)이 존재
    • Oracle, DBII, MS-SQL, MySQL, SyBase…
  • 데이터들을 테이블(Table)에 저장
    • 관계형 데이터베이스 관리 시스템(RDBMS, Relational Database Management System)
    • Table
      • Column Name, Field Name
      • Column, Field(열)
      • Record, Row(행)

테이블을 조작하는 명령어 : SQL문(Structured Query Language)

  • ANSI Query
    • ANSI(미국 국가표준협회)에서 지정한 SQL문
    • 제조사 쿼리의 바탕, 다른 DBMS를 써도 공통으로 적용되는 SQL
  • 제조사 Query
    • 제조사가 편의성을 고려해서 만든 SQL문
  • 모든 DBMS의 쿼리는 다름
  • SQL문의 종류는 DDL(정의어), DML(조작어), DCL(제어어) 세 종류
    • DDL (Data Definition Language)
      • CREATE, ALTER, DROP
    • DML (Data Manapulation Language)
      • INSERT, UPDATE, DELETE, SELECT
    • DCL (Data Control Language)
      • GRANT, REVOKE, COMMIT, ROLLBACK

Oracle

  • 대용량 데이터를 다룰 때 사용하는 DBMS (RDBMS)
  • Larry Ellison(래리 엘리슨), Oracle CEO
  • 개인 사용시 무료, 기업 사용시 비쌈..
    • Oracle XE는 완전 무료나 작은 용량 처리만 가능
  • 컴퓨터 하나에 하나만 동작가능(SID(Security Identifier))
  • DB Server와 DB Client로 분할 설치
    • DB Server : 정보를 저장하고 제공
    • DB Client : 서버에 접속, 정보 사용
  • 뭐든지 다 대문자로 저장, 사용자 입력값은 소문자 가능
  • Oracle DBMS는 Server Process, Server Instance, File 영역, Client Process로 구성
    • File 영역
      • 저장되는 영역, 영속적
    • Server Instance
      • 메모리 영역, 일시적
    • Server Process
      • 서버 인스턴스를 사용하기 위한 소켓 프로그램
    • Client Process
      • Server Process에 접속하여 데이터를 주고 받음
  • 오라클 동작과정
    • Client Process가 Server Instance Shared Pool에서 인증 수행
    • 인증되면 Server Instance Session에 메모리 확보, SQL shell 제공
    • 세션 할당 후 쿼리 시 실행 정보는 Server Instance Redo log에 저장
    • Server Process에서 쿼리 검증, Server Instance Shared Pool에서 실행계획 세움
    • File영역 DBF에서 필요한 정보 조회, 세션에 결과 전달
    • 사용자에게 결과 보여줌
    • 이처럼 같은 쿼리를 재사용시 세션(메모리)에서 가져오기 때문에 수행속도가 빨라진다.

CREATE

  • DDL(Data Definition Language), 데이터 정의어
  • 생성할 때 사용(Table, Index, 계정생성, Sequence, View, Function, … )
  • Transaction 대상 쿼리가 아님(COMMIT, ROLLBACK 안됨)
    • INSERT, UPDATE, DELETE가 Transaction 대상 쿼리
  • Table 생성
    • Database를 저장하는 곳이 Table
    • Table은 Column과 Row(Record, Tuple)로 구성
    • 테이블명 무조건 영어로, 하나의 단어로 의미전달 안되면 ‘_‘로 이을 것
      • 예 : TEST_TEMP
      • 한글가능하나 절대 쓰지말기, 테이블명 뒤에 숫자는 붙일 수 있지만 첫 글자로 숫자로 사용 안됨!
    • 테이블은 객체, 이름은 유일해야 함
    • 데이터형(Data Type)
      • 값을 구분하여 값을 저장하기 위한 예약된 메모리 공간
      • 문자열형 한글 한글자의 크기를 알 순 없음(몰라요, 뭘 썼는지 알아야 알 수 있음)
      • EUC-KR, MS949, KSC560일 땐 2byte
      • UTF-8일 땐 3byte (요즘 대세, “가나다” - 9byte)

01-01

-- column level constraint과 table level constraint 존재(위치에 따라)
CREATE TABLE 테이블명(
  컬럼명 데이터형(크기) CONSTRAINT 제약사항명 제약사항,  
  ...
  CONSTRAINT 제약사항명 제약사항(적용컬럼),
  ...
);
-- 테이블 명 조회
SELECT tname FROM tab;

-- 한줄 주석
/*
   여러줄 주석
*/

-- DESC(description)는 테이블에 어떤 컬럼이 있는지 조회하는 명령어
DESC emp; 

DROP TABLE 연습했던테이블1, 연습했던테이블2...;

-- 휴지통비우기
PURGE RECYCLEBIN; 


오라클DBMS