DataBase
특정한 목적을 위해 저장된 데이터들의 집합
DB 설계
-
DATABASE 설계
- DATA : 각 항목에 저장되는 값
- TABLE : 열과 행으로 이루어진 DATA
- Column (Field) : TABLE의 열 단위
- Row : TABLE의 행 단위
- Record (tuple) : TABLE의 한 행에 저장되어 있는 데이터
- Key : 각 record를 구분할 수 있는 고유값
-
TABLE 사이의 관계
-
1:1 관계
: 하나의 레코드가 다른 테이블 레코드 한개와 1:1로 연결된 경우

-
1:N관계
: 하나의 레코드가 여러개의 다른 레코드와 연결된 경우

-
N:N관계
: 여러 개의 레코드가 여러개의 다른 레코드와 연결된 경우이며, JOIN
을 사용해서 관리
✎ JOIN테이블을 위한 기본키 (sc_id)가 필수이다.

-
자기참조 관계
: 테이블 내에서 연결된 경우
✎ 1:N관계와 유사하지만 다르다

DATABASE Normailzation
- Database Normalization (데이터베이스 정규화)
- Data redundancy (데이터 중복) : 데이터의 복사본, 혹은 부분적은 복사본
- 장점
- 단점
- 일관된 자료처리가 어려우며 저장공간의 낭비로 효율성 감소
- Data intergrity (데이터 무결성) : 입력된 데이터의 정확성과 일관성을 유지
- Data Anomaly : 기대한 데이터와는 다른 상황
- update anomaly (갱신 이상) : 여러 행에 동일한 데이터가 있을 때 발생
- insertion anomaly (삽입 이상) : 새로운 데이터를 추가 할 때 형식이 맞지 않을 때 발생
- deletion anomaly (삭제 이상) : 특정 데이터를 지울 때 의도하지 않은 데이터도 지워지는 상황
ACID
데이터베이스에서 일어나는 트랙잭션들의 안정성을 보장하기 위한 성질들
✎트랜잭션 : 하난의 특정 작업으로 시작해, 관련된 모든 작업을 다 완료해야 종료되는 실행 유닛
- Atomicity (원자성) : 하나의 트랜잭션 실행 시, 모든 작업은 전부 성공하거나 전부 실패해야 한다
- Consistency (일관성) : 데이터 베이스는 트랙잭션의 유무와 상관없이 상태는 일관되어야 한다
- Isolation (격리성) : 모든 트랜잭션들은 각각 다른 트랜잭션으로부터 독립되어야 한다
- Durability (지속성) : 트랜잭션이 실행 될 경우 오류가 발생하더라도, 해당 기록은 영구적이어야 한다