- ex1-dom
-
ex2-mvc
-
ex3- flux, ex4-flux-class
- ex5-closure, ex6-node, ex7-nodeprj
- ex8-typed, ex9-oop
데이터베이스 모델링: 시스템 + 데이터베이스
시스템이란?
-
유기적으로 역할자들이 연결된 집합체(업무 시스템, 관리 시스템) => 개발자가 하는 건 업무 시스템을 위한 관리 시스템 만들기
-
하나를 만들더라도 똑바로 만들기가 중요
-
데이터베이스 모델링을 위해 꼭 필요함
-
데이터베이스와 DBMS의 개요
-
Hierarchical DBMS
-
Network DBMS
-
Object-Oriented DBMS
-
Relational DBMS(이것을 주로 사용함)
- Concept Design: 업무적인 흐름에서 DB에 저장할 데이터를 선별하는 과정
- 데이터+베이스 => 정규화된 데이터 => 액터의 행위
- Logical Design: Entity와 Relation을 R-DB의 테이블 형태로 사상시키는 과정
-
데이터 레코드 하나가 엔티티. 레코드가 여러개면 엔티티 집합
-
행위자의 행위는 관계(Relation)임.
-
DB는 결국 엔티티와 관계로 이뤄짐 => ERD(Entity-Relation-Diagram)
-
키의 종류
| 키의 종류 | 설명 |
|---|---|
| 주키 | 엔티티 식별하기 위한 키, 자주 노출되어야만 함 |
| 후보키 | 주키가 될 수 있을 만한 키 |
| 대체키 | 후보키 중 주키가 되지 못한 나머지 키 |
| 대리키 | 새로 만들어서 주키 대신 자주 쓰는 키(아이디, 일련번호) |
| 수퍼키(복합키) | 외래키를 합쳐서 주키로 사용되는 키 |
| 외래키 | 다른 테이블에서 가져온 주키 |
-
N 대 N의 관계의 경우 어느 엔티티로도 갈 수 없으므로 새로운 독립적인 테이블을 만든다.
-
식별자를 꼭 대리키로만 해야하는가?(행위들은 대리키를 자주 안쓰는게 좋음) 그럼 행위가 가진 속성들을 합쳐서 복합키로 만들기도 한다.
-
정규화: 데이터베이스 내에서의 중복을 제거하는 과정
-
1정규화: 원자값이 아닌 도메인을 분해하는 것(도메인: 속성, 원자값: 속성에 들어갈 단 하나의 값)
- 여러개가 있을 수 있는 애들이 짤려나갈 때 참조키는 짤려나간 쪽이 가지고 있고 관계는 1대 다이다.
- 2정규화: 부분적으로 함수 종속을 제거하는 것(함수: 키)
- 함수 종속: 키로 식별되는 속성들
- 부분적 함수 종속: 식별관계를 가지는 테이블에서 복합키의 일부분으로만 식별되는 속성들
- 주키로만 식별이 되는게 아니라 주키와 다른 속성을 합쳐야 식별되는 속성들을 분리하는 것
- Physical Design: Logical Deisgn의 결과물을 특정 DBMS의 테이블 형태로 사상시키는 과정
- 사전적 정의
- 이행(적 함수)종속을 없애는 것
- 이행(적 함수) 종속
-
전이적 관계: X > y 이고, y > z 이면 x > z 이다.
-
이행적 함수 종속을 제거한다는 것은, 위의 표현을 빌리자면 x > y 이고, y > z 일때 x > z 는 당연하므로 없애는 것이다.
-
주키로 식별이 되는 속성으로도 식별되는 다른 속성을 분리하는 것
-
3.5 정규화
-
모든 결정자가 후보키 이어야만 한다.(결정자: 어떤 값을 기준으로 다른 값을 유일하게 정할 수 있는 속성(또는 속성의 조합), 후보키: 튜플을 식별할 수 있는 최소 속성 집합)
-
키가 아닌 모든 것들이 결정자(후보키 아닌 결정자가 있으면 안됨.)
-
복합키(후보키)로 결정되는 속성(결정자)이 복합키중 하나의 후보키를 결정하면 안된다.
- 다치 종속을 제거
- 다치 종속: 한 속성이 복수의 값을 가질 때, 다른 속성과 "곱" 형태로 튜플이 증식하는 현상
-
쉽게 말해서 N:N 관계를 테이블 분리 하지 않을 때 발생함.
-
테이블을 늘어나면 안되지만 키의 튜플을 계속 늘어나도 됨.
-
속성에 도메인이 아닌 값이 올 수 없도록 하는 제약조건
-
Not Null: Null 값 금지
-
Default: 시작전 미리 초기화
-
Check: 특정 구간의 값을 제어하는 제약조건
-
Primary key 제약조건건: 엔티티 내에서 다른 엔티티를 식별하기 위한 것
-
Unique 제약조건