-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
[sof] Chapter 4. DATABASE 설계 & AWS RDS 설정
- Loading branch information
Showing
2 changed files
with
51 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
# Chapter 4. Database 설계 & AWS RDS 설정 | ||
|
||
#### 유일성 : 하나의 키값으로 튜플을 유일하게 식별할 수 있는 성질을 의미함. (중복X) / 최소성 : 키를 구성하는 속성들 중 꼭 필요한 최소한의 속성들로만 키를 구성하는 성질 | ||
|
||
# 1. 수퍼키 | ||
> 유일성 o, 최소성 x, 유일성의 특성을 만족하는 속성들의 집합. 중복된 값이 존재하지 않는다. 서로 구분만 가능하면 수퍼키라 할 수 있다. | ||
- [학생번호]의 경우 중복되는 경우가 없기 때문에 유일성을 만족하므로 슈퍼키가 될 수 있다. | ||
- [이름,나이,성별]의 경우 이 세가지 모두가 일치하는 사람이 존재할 수 있으므로 유일성을 만족하지 못한다. 따라서 수퍼키로 사용할 수 없다. | ||
- [학생번호,나이,성별]의 경우 학생번호 한가지만으로 각 튜플(레코드,행)을 구별할 수 있기 때문에 유일성을 만족한다. 따라서 수퍼키로 사용할 수 있다. | ||
|
||
# 2. 후보키 | ||
> 유일성 o, 최소성 o, 수퍼키 중에서 최소성을 만족하는 키를 칭한다. 즉, 유일성과 최소성을 모두 만족하는 속성들의 집합이다. | ||
## 이와 같이 수퍼키가 있다고 할때, [학생번호,나이,성별]의 경우, 학생번호가 있다면 나이와 성별은 특정 학생을 구별할 때 필요없다. 없어도 전혀 문제가 안됨. 여기서 나이와 성별을 제거한 [학생번호]의 경우 최소성을 만족하며 후보키가 될 수 있다. | ||
|
||
# 3. 기본키 | ||
> 유일성 o, 최소성 o (후보키의 특징)이며 해당 레코드를 식별할 때 기준이 되는 키 | ||
- 값의 변동이 잦은 후보키는 기본키로 부적절함 | ||
- NULL값을 가질수 있는 속성이 포함된 후보키는 부적절하다. | ||
- 후보키중 단순한 키를 기본키로 선택한다. | ||
- 하나의 테이블에는 반드시 하나의 기본키만 존재한다. | ||
|
||
# 4. 외래키 | ||
> 테이블간의 관계를 나타낼때 사용하며, 다른 테이블의 기본키를 참조해 외래키로 사용 | ||
- 한 테이블의 외래키는 연결되어있는 다른 테이블의 기본키중 하나다. | ||
- 외래키 설정을 따로 하지 않아도 데이터 조회가 가능하지만, 굳이 하는 이유는 데이터 무결성 때문 | ||
- 무결성: 데이터가 항상 정확한 값을 유지하는 성질 | ||
|
||
# 5. 복합키 | ||
> 두개 이상의 컬럼을 묶어서 하나의 기본키로 지정하는것 | ||
- 기본키는 하나의 테이블에 하나만 존재할 수 있음. 또한 기본키는 하나 이상의 컬럼으로 구성되어 있음 | ||
- 기본키가 만약 복합키라면. 복합키 또한 당연히 유일성과 최소성을 만족해야함 | ||
|
||
# 6. 대체키 | ||
> 기본키를 제외한 나머지 후보키들을 의미한다. | ||
# 7. ER다이어그램 (ERD) | ||
> 데이터베이스 구조를 시각적으로 나타내는 도구로 엔터티, 속성, 관계로 표현 | ||
## 관계의 cardinality | ||
- 일대일(1:1) : 한 엔티티의 인스턴스가 다른 엔티티의 단 하나의 인스턴스와만 연관될 때 (예: 각 부서에는 하나의 매니저가 있다). | ||
- 일대다(1:N) : 한 엔티티의 인스턴스가 다른 엔티티의 여러 인스턴스와 연관될 때 (예: 한 교수가 여러 코스를 가르칠 수 있다). | ||
- 다대다(N:M) : 한 엔티티의 여러 인스턴스가 다른 엔티티의 여러 인스턴스와 연관될 때 (예: 여러 학생이 여러 코스를 수강할 수 있다). | ||
|
||
# 8. 정규화 | ||
> 관계형 데이터베이스를 설계할 때 중복을 최소화하는 것 | ||
- 1정규화, 2정규화, 3정규화, BCNF는 알고 가자 | ||
|
||
# 9. 반정규화(비정규화) | ||
> 하나 이상의 테이블에 데이터를 중복하여 배치하는 최적화 기법 | ||
|
||
|
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.