ORACLE

[Oracle #1] DataBase/DBMS/SQL의 정의 및 특징

zoozoo2 2022. 12. 16. 17:48

Data : 어떤 자료 혹은 실제 값

정보가 되려면? 데이터를 기반으로 의미를 부여한 것.

ex) 에베레스트 산은 세계에서 가장 높은 산이다.

 

DataBase의 정의

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

 

1. 운영 데이터(Operational Data)

- 조직의 목적을 위해 사용되는 데이터

 

2. 공용 데이터(Shared Data)

- 공동으로 사용되는 데이터

 

3. 통합 데이터(Integrated Data)

-중복을 최소화하여 중복으로 인한 데이터 불일치 현상 제거

 

4. 저장 데이터(Stored Data)

- 컴퓨터 저장장치에 저장된 데이터

 

DataBase의 특징

1. 실시간 접근성(real time accessiblility)

-사용자가 데이터를 요청하면 실시간으로 결과를 서비스한다.

 

2. 계속적인 변화(continuous change)

- 데이터 값은 시간에 따라 항상 바뀐다.

 

3. 동시 공유(concurrent sharing)

-데이터 베이스는 서로 다른 업무 또는 여러 사용자에게 동시 공유된다.

 

4. 내용에 따른 참조(reference by content)

- 데이터베이스에 저장된 데이터는 데이터의 물리적 위치가 ㅋ아니라 데이터 값에 따라 참조된다.

 

DBMS(DataBase Management System)

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

ex) MySql, mssql,Oracle,Maria

 

DBMS의 기능

  • 데이터 추출 : 사용자가 조회하는 데이터 혹은 응용 프로그램의 데이터를 추출
  • 데이터 조작 : 데이터를 조작하는 소프트웨어가 요청하는 데이터의 삽입, 수정, 삭제, 작업을 지원
  • 데이터 정의 : 데이터의 구조를 정의하고 데이터 구조에 대한 삭제 및 변경 기능을 수행
  • 데이터 제어 : 데이터베이스 사용자를 생성하고 모니터링하며 접근을 제어 백업과 회복, 동시성 제어 등의 기능을 지원

 

DBMS의 사용 이점

  • 데이터 독립화 : 데이터와 응용 프로그램을 분리시킴으로써 상호 영향 정도를  줄임
  • 데이터 중복 최소화, 데이터 무결성 보장 : 중복되는 데이터를 최소화 시키면 무결성 손상 가능성이 줄어듬, 저장공간의 낭비를 줄임 (무결성 예) user03은 회원이 아닌데 게시판에 글을 작성했다. 이런걸 무결성이 깨졌다라고 함
  • 데이터 보안 향상 : 응용프로그램은 DBMS를 통해 DBMS가 허용하는 데이터에만 접근 할 수 있음, 권한에 맞게 데이터 접근을 제한 or 암호화 시켜 저장할 수 있음
  • 관리 편의성 향상 : 다양한 방법으로 백업할 수 있음, 장애 발생 시 복구 가능

SQL이란?

Structured Query Language

  • 관계형 데이터베이스에서 데이터를 조회하거나 조작하기 위해 사용하는 표준 검색 언어
  • 원하는 데이터를 찾는 방법이나 절차를 기술하는 것이 아닌 조건을 기술하여 작성

SQL 문법 종류

 

분류 용도 명령어
DDL(Data Definition Language)   데이터 정의 CREATE
DROP
ARTER
TRUNCATE
DML
(Data Manipuation Language)
데이터 조회(DQL) SELECT
데이터 조작 INSERT
UPDATE
DELETE
DCL
(Data Control Language)
권한 설정 GRANT
REVOKE
TCL
(Transaction Control Language)
트랜잭션 제어 COMMIT
ROLLBACK
SAVEPOINT

 


TABLE

하나의 행을 row(가로한줄)

하나의 열을 clunmn(세로한줄)

단일값  filed(한칸)

 

데이터 타입

구분 데이터 타입 설명
숫자 NUMBER 숫자
문자 CHAR 고정 길이 문자(최대 2000Byte)
VARCHAR2 가변 길이 문자(최대 4000Byte)
NCHAR CHAR과 동일하며 유니코드 문자
NVARCHAR2 VARCHAR2와 동일하며 유니코드 문자
LONG 가변길이 문자(최대 2GByte)
날짜 DATE 날짜
데이터 CLOB 가변길이 문자(최대 4GByte)
BLOB Binary Data

char(5) 와 varchar2(5)의 차이점

abc라는 값을 입력했을 때

char타입은 "abc  "으로 저장한다. 빈 공간은 공백 처리해서 길이가 안변함!

varchar2타입은 "abc"으로 저장한다. 빈 공간은 능동적인 삭제 처리를 함!

 

그럼 varchar2 쓰지 왜 char타입을 쓰냐?!

char가 속도가 빨라서

그래서 "남" "여" / "y" "n" 같이 공백의 자유도 없이 길이가 고정된 데이터를 저장하는 경우에는 char타입으로 쓰는게 빠르다!

 


NUMBER([P,S])

  • P: 표현할 수 있는 전체 숫자 자리 수 (1~38)
  • S: 소수점 이하 자리 수 (-84 ~ 127)
실제값 데이터 타입 저장되는 값
1234.678 NUMBER(7,3) 1234.678
NUMBER(7) 1234
NUMBER 1234.678
NUMBER(7,1) 1234.7
NUMBER(4,-2) 1200

 

CHAR(SIZE)

  • SIZE: 포함될 문자(열) 크기
  • 지정한 크기보다 작은 문자(열)이 입력되고 남는 공간은 공백으로 채움
  • 데이터는 "를 이용하여 표기하고 대/소문자를 구분
실제값 데이터 타입 저장되는 값
ORACLE CHAR(3) 에러
CHAR(6)  ORACLE
CHAR(9) ORACLE + 공백 3칸
오라클 CHAR(3) 에러
CHAR(6) 에러
CHAR(9) 오라클

영어는 1글자 = 1byte

한글은 1글자 = 3byte(무료버전) / 1글자 = 2byte(유료버전)

 

VARCHAR2(SIZE)

  • SIZE: 포함될 문자(열) 크기
  • 지정한 크기보다 작은 문자(열)이 입력되고 남는 공간은 없앤다.
  • 데이터는 "를 이용하여 표기하고 대/소문자를 구분
실제값 데이터 타입 저장되는 값
ORACLE VARCHAR2(3) 에러
VARCHAR2(6)  ORACLE
VARCHAR2(9) ORACLE 
오라클 VARCHAR2(3) 에러
VARCHAR2(6) 에러
VARCHAR2(9) 오라클

 

DATE

일자(세기/년/월/일) 및 시간(시/분/초) 정보를 관리

기본적으로 화면에 년/월/일 정보만 표기

날짜의 연산 및 비교가 가능

실제 값 결과 타입 저장되는 값
날짜 + 숫자 DATE 숫자를 더한 날짜값
날짜 - 숫자 DATE 숫자를 뺀 날짜값
날짜 - 날짜 NUMBER 두 날짜의 차이(일수)
날짜 + 숫자/24 DATE 날짜+시간