com

오라클 Database 교육 노트 (3)


by Kitle · 2020. 06. 24.



Table을 설계할 때, DML
발생하지 않으면, Index를 많이 만들어둬도 된다.

그런데 DML 이 자주 발생하는
table
Index를 과도하게 만들지 않아야 한다.

 

View : Table을 기초로 하는 가상 Table. “거울” >> Table의 데이터를 업데이트
하면, View의 데이터도 함께 변경된다.

 

Synonym : 별명

 

Partion Table : 테이블이 나뉘어져 있음. 성능 때문에 사용함. ex) 은행 거래내역 처럼 데이터가 아주 많은 Table

 

Global Index, Local Index. 마이그레이션시에는
Global Index를 빼는 추세. why? 만들고 유지보수
하는데 오래 걸리므로. 은행쪽은 아직 존재함.

개인정보 암호화 -> 성능 속도의 Issue 가 있음.

 

grant select_catalog_role to 계정명;

>> Oracle의 딕셔너리 정보만 볼 수 있는 권한

 

number(8)

12345 입력시

데이터 인풋은 00012345

 

row id

같은 데이터가 2개 들어가 있는 경우 하나만 지우고 싶을 때

data 주소를 이용하여 삭제함.

 

select rowid 를 사용해 검색할 수 있음

 

create table
check
제약

ex) check (Loc in(‘서울’,’부산’)),

 

foreign-key

1) 부모없는 자식 없다

2) 자식없는 부모 있다

3) 데이터의 변경 및 삭제는 자식부터 한다

 

마이그레이션 작업

1) 데이터 이관 작업
>>
시간 엄~~ 청 오래 걸림

2) 제약조건 생성

 

>> 제약조건을 먼저 생성하면 계속 체크를 하기 때문에
성능 안나옴

 

[사용하지 않는 컬럼 > 사용하지
않는 컬럼으로 설정하면 됨]

alter table [테이블명]
set unused column [
컬럼명];

alter table [테이블명] drop
unused columns;

 

 

Index

너무많은 인덱스는 오히려 성능이 감소된다.

select만 사용하는 table
적용하라~

 

대부분의 데이터가 where절에 매핑되면 (ex 80%데이터)

풀테이블 스켄이 빠름.

10% 미만인 경우 인덱스 스켄이 빠름.

 

sequence >> 값이 1씩 증가함.

 

데이터베이스 유저 계정 관리

시스템 권한 : create session, create table

객체 권한 : 오브젝트 권한. select
update, insert, delete

 

시스템 권한 DBA -> USER1 -> USER2

객체권한 DAB -> USER1 -> USER2

시스템 권한은 삭제할 때 연쇄적으로 삭제하지 않지만

객체 권한은 USER1을 삭제하면
USER2
도 삭제된다.

 

merge

Insert Update
동시에 함

 

DML 이 여러 개인 경우 중간중간
commit
을 통해 error를 방지한다. Undo
list
가 많아지고, 기존자료가 undo
없으면 select 하는데 문제가 발생할 수 있다.

 

보안관리

1)내부적 보안

2)외부적 보안

 

현재 시장에서 db보안

1. 접근제어 : 사용자ip, db계정, 접속도구 (국정원 cc인증 받음)

2. 암호화 : 개인정보(주민번호, 계좌번호, 여권번호
) 암호화(국정원 cc인증
받음)

 

하나는 상관 없으나 두가지가 매핑되면 문제로봄

ex) 핸드폰 번호만 있음
->
상관없음

ex) 이름 + 핸드폰 -> 암호화 필요

 

암호화를 하면 table View
보여줌. View의 제약사항으로 대용량 db에서는 성능상의
문제가 있음

 

2-Tier : pc -> db

3-Tier : pc (ip) -> middle ware (ip) ->
db (ip)

미들웨어의 기능 : Load balancing – Connect 분산

3-Tier 방식은 사용자의 ip
남지않고 미들웨어 ip가 남으므로 문제가 될수 있다. 누가
접속했는지 찾기가 어려움 ip로 되지 않으니 1 1계정으로 구분함

 

MTBT 장애와 장애시간 : 길수록
좋음

MTTR 장애복구시간 : 짧을수록
좋음

 


오프라인 백업 –db 내리고 백업,
운영중에는 hot 백업