오라클 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
- DDL (Data Definition Language)
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에 접속하여 데이터를 주고 받음
- File 영역
- 오라클 동작과정
- 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)
-- column level constraint과 table level constraint 존재(위치에 따라)
CREATE TABLE 테이블명(
컬럼명 데이터형(크기) CONSTRAINT 제약사항명 제약사항,
...
CONSTRAINT 제약사항명 제약사항(적용컬럼),
...
);
-- 테이블 명 조회
SELECT tname FROM tab;
-- 한줄 주석
/*
여러줄 주석
*/
-- DESC(description)는 테이블에 어떤 컬럼이 있는지 조회하는 명령어
DESC emp;
DROP TABLE 연습했던테이블1, 연습했던테이블2...;
-- 휴지통비우기
PURGE RECYCLEBIN;