태태개발일지 - DB 관계 데이터 모델링
개체 - 관계 데이터 모델링
1. 일반적으로 알려져있는 데이터 모델링.
2. 데이터의 구조를 개체와 개체들의 관계를 표현해 나가며 접근하는 방법론.
3. RDBMS는 개체 - 관계 모델을 구현해 놓은 소프트웨어이다.
4. RDBMS는 테이블 형태로 데이터를 관리한다.
1. 엔터티(Entity)
- 업무상 관심있는 개체의 집합 또는 행위의 집합
- 개체의 특성을 설명할 수 있는 속성을 가진다.
2. 속성 (Attribute)
- 개체 집합의 특성을 설명하는 항목
- ex) 작가인 경우 작가ID
3. 식별자(Identifier)
- 개체의 집합에서 하나의 개체를 식별해 주는 속성
- 여러개의 속성이 식별자가 될 수 있다.
4. 관계(Relationship)
- 엔터티와 엔터티간 연관성을 표현
- 연결시 카디날리티 표시
- 1:1 , 1:M , M:M
O -> 옵셔널 -> Null이여도 된다.
정규화
- 논리적인 데이터 모델의 일관성유지, 중복을 제거한 안정적인 자료구조
정규화가 되어있지 않다면,
입력이상, 삭제이상, 수정이상 의 이상현상이 일어난다.
3차까지는 가급적이면 진행한다.
1차 정규화 - 모든 속성은 하나의 값을 가져야한다.
ex) 도서의 속성에 구매가격이라는 것이 있는데 이것이 구매가격1, 구매가격2 ... 이렇게 늘어나면 안된다.
2차 정규화 - 식별자가 아닌 모든 속성은 식별자 완전 종속
ex) 식별자를 제외한 속성이 특정 식별자에 종속이 되어서 변경시 이상이생기게 되기때문.
과목명을 update쳐서 과목코드와 과목명이 달라지기 때문에. (변경 이상)
3차 정규화 - 식별자를 제외한 나머지 속성간 종속성이 전재하면 안된다.
ex)
평가코드와 평가내역이 서로 종속이 되어있으면, 이상이 생기게된다.
평가 내역을 바꿔버리면 각각 다른 사람이 평가코드와 평가내역이 달라지기 때문이다.
NoSql 데이터 모델링
- 유연한 구조를 가지는 DBMS이기 때문에 모델링이 어렵다.
Nosql 데이터 모델링의 장단점
장점:
- 스키마 유연성 데이터 구조의 변경이 매우 용이하다.
- 어플리케이션에서 구조변경이 가능해 개발 편의성을 제공한다.
- 조인이 없어지기 때문에 프로그램이 간단해진다.
단점:
- 데이터의 일관성이 보장되지 않는다.
- Nosql 모델링으로 비지니스를 이해하기 어렵다.
- 데이터 표준을 맞추기 어렵다.