정규화란?
최소한의 데이터만을 하나의 엔터티에 넣는 식으로 데이터를 분해하는 과정
데이터의 중복을 제거하고 데이터 모델의 독립성을 확보.
논리 데이터 모델링 수행 시점에서 고려 (엔터티를 상세화하는 과정)
1~5 정규화 중 실질적으로 제 3정규화까지만 수행.
EX) 학생 엔터티에 넣을 데이터를 분류하는 것. 학생 엔터티에 지도교사는 필요 X.
이상현상을 줄이기 위한 설계 기법
이상현상?
정규화를 하지 않아 발생하는 현상(삽입이상, 갱신이상, 삭제이상)
정규화의 결과
데이터 입력,수정,삭제 성능 ▲
데이터의 조회 성능 하락 가능성 ▲(JOIN의 횟수가 증가함에 따라)
정규화 단계
1. 제 1 정규화 (1NF)
테이블의 컬럼이 원자성(한 속성이 하나의 값을 갖는 특성) 을 갖도록 테이블을 분해하는 단계
트랜잭션이란?
데이터 베이스 작업의 최소 실행 단위 / 하나의 연속적인 업무 단위.
EX. 100 만원 이체 시, -100과 +100이 동시에 이루어져야함. 모두 실패하거나, 성공하거나.
트랜잭션의 특징 (ACID)
1. 원자성(Atomicity) : 하나의 트랜잭션으로 묶인 연산은 ALL or NOTHING으로 실행된다.
2. 일관성(Consistency) : 트랜잭션 이전에 데이터베이스에 오류가 없다면 이후에도 오류가 없다.
3. 고립성(Isolation) : 독립적으로 수행되며, 다른 트랜잭션이 영향을 미치지 않는다.
4. 영속성(Durability) : 결과는 데이터베이스에 영구적으로 저장되어 유지된다.
트랜잭션 명령어
1. COMMIT : INSERT, UPDATE, DELETE와 같은 DML 명령들을 통한 변경사항을 데이터베이스에 영구적으로 반영하고 락을 해제하여 트랜잭션을 완료. 최종적으로 데이터베이스에 반영
2. ROLLBACK : 트랜잭션에 포함된 변경사항 또는 세이브포인트 이후의 변경 사항을 취소하고 되돌림.
3. SAVEPOINT : 롤백을 하기 위한 저장점을 지정.
필수적, 선택적 관계와 ERD
IE 표기법 : 필수적 관계 = 동그라미X / 선택적 관계 = 동그라미 표기
바커 표기법 : 필수적 관계 = 실선 / 선택적 관계 = 점선
NUUL 이란?
DBMS에서 값이 아직 정해지지 않았을 때.
NULL의 특성
1. NULL을 포함한 사칙연산 결과는 항상 NULL. (NULL은 0이 아니다)
-> 보완하려면? NULL을 치환해야함. "EX. NVL(컬럼,값), 컬럼이 NULL이면 값으로 치환"
2. 그룹 함수는 NULL을 제외하고 연산을 수행
NULL의 ERD 표기법
IE 표기법 : 알 수 없음.
바커 표기법 : 속성 앞에 동그라미가 있으면 NULL을 허용하는 속성