wisdiom 아니고 wisdom

02. 데이터 모델과 SQL 본문

👩‍🎓✍/SQL 개발자(SQLD)

02. 데이터 모델과 SQL

글로랴 2021. 8. 10. 15:47

1. 트랜잭션, Transaction

인가받지 않은 사용자로부터 데이터를 보장하기 위해 DBMS가 가져야 하는 특성이자, 데이터베이스 시스템에서 하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본 단위이다.

 

특성 설명 주요기법
원자성
(Atomicity)
- 분해가 불가능한 작업의 최소단위
- 연산 전체가 성공 또는 실패
- 하나라도 실패할 경우 전체가 취소되어야 하는 특성
- Commit / Rollback
- 회복성 보장
일관성
(Consistency)
- 트랜잭션이 실행 성공 후 항상 일관된 데이터베이스 상태를 보존해야하는 특성 - 무결성 제약조건
- 동시성 제어
격리성
(Isolation)
- 트랜잭션 실행 중 생성하는 연산의 중간 결과를 다른 트랜잭션이 접근 불가한 특성 - Read Uncomited
- Read Commited
- Repeatable Read
- Serializable
영속성 / 지속성
(Durability)
- 성공이 완료된 트랜잭션의 결과는 영속적으로 데이터베이스에 저장하는 특성 - 회복기법

 

 

 

2. 조인, Join

  • 조인은 두 개 이상의 테이블을 연결하여 데이터를 검색하는 방법이다.
  • 두 릴레이션으로부터 관련된 튜플들을 결합하여 하나의 튜플로 만드는 가장 대표적인 데이터 연결 방법이다.
유형 키워드
내부 조인
(Inner Join)
Table1 [INNER] JOIN Table2
외부 조인
(Outer Join)
- 왼쪽 외부 조인 (Left Outer Join) : Table1 LEFT [OUTER] JOIN Table2
- 오른쪽 외부 조인 (Right Outer Join) : Table2 RIGHT [OUTER] JOIN Table2
- 완전 외부 조인 (Full Outer Join) : Table1 FULL [OUTER] JOIN Table2
교차 조인
(Cross Join)
Table1 CROSS JOIN Table2
셀프 조인
(Self Join)
Table1 A [INNER] JOIN Table1 B

 

  • Oracle 조인 문법 vs. 1999 ANSI 조인 문법
  Oracle 조인 문법 1999 ANSI 조인 문법  
데이터가 부족한 테이블 쪽에 outer join sign (+) 를 붙여준다. select e.ename, d.loc
from emp e, dept d
where e.deptno = d.deptno(+);
select e.ename, d.loc
from emp e left outer join dept d
on (e.deptno = d.deptno);
- 왼쪽 테이블이 기준
- 조인 조건에 부합하는 데이터가 조인 당하는 테이블(오른쪽)에 있으면 해당 데이터를, 없으면 NULL로 조회한다.
- 모든 데이터를 조회하고 싶다면 데이터가 많은 테이블을 왼쪽에 작성한다.
select e.ename, d.loc
from emp e, dept d
where e.deptno(+) = d.deptno;
select e.ename, d.loc
from emp e right outer join dept d
on (e.deptno = d.deptno);
- 오른쪽 테이블이 기준
- 조인 조건에 부합하는 데이터가 조인 당하는 테이블(왼쪽)에 있으면 해당 데이터를, 없으면 NULL로 조회한다.
- 모든 데이터를 조회하고 싶다면 데이터가 많은 테이블을 오른쪽에 작성한다.
select e.ename, d.loc
from emp e full outer join dept d
on (e.deptno = d.deptno);
 

 

 

 

03. 정규화, Normalization

관계형 데이터베이스 설계에서 중복을 최소화하게 데이터를 구조화하는 프로세스이다.

단계 조건
1정규형 (1NF) 원자 값으로 구성
2정규형 (2NF) 부분 함수 종속 제거 (완전 함수적 종속 관계)
3정규형 (3NF) 이행 함수 종속 제거
보이스-코드 정규형 (BCNF) 결정자 함수 종속
4정규형 (4NF) 다치 (다중 값) 종속성 제거
5정규형 (5NF) 조인 종속성 제거

*참고 : https://mangkyu.tistory.com/110

 

[Database] 정규화(Normalization) 쉽게 이해하기

지난 포스팅에서 데이터베이스 정규화와 관련된 내용을 정리했었다. 하지만 해당 내용이 쉽게 이해되지 않는 것 같아서 정규화 관련 글을 풀어서 다시 한번 정리해보고자 한다. 1. 정규화(Normaliz

mangkyu.tistory.com

 

 

 

04. NULL 속성

  • NULL은 '알 수 없는 값' 또는 '아직 정해지지 않은 값'을 의미한다
  • 컬럼 간 연산을 할 때 NULL이 포함되면 항상 NULL을 반환하지만, 여러 행 간에 SUM, AVG, MIN, MAX, COUNT 함수로 값을 집계할 때는 함수 인자 값이 NULL인 행이 포함돼도 결과를 정상적으로 반환한다.  👉 여러 행을 읽어 값을 집계할 때는 NULL 값을 연산 대상에서 제외하기 때문
  • IS NULL : NULL 값인지 확인
  • IS NOT NULL : NULL 값이 아닌지 확인
  • NVL (NULL 값, 대체값) : NULL 값이 나타난다면 NULL을 특정 값으로 변환해주는 함수 
반응형

'👩‍🎓✍ > SQL 개발자(SQLD)' 카테고리의 다른 글

01. 데이터 모델링의 이해  (0) 2021.08.08
제42회 SQL 개발자(SQLD)  (0) 2021.07.12
Comments