✔ Done
- 호눅스 마스터 수업 복습 여기-비공개
- 시온과 함께 PR날림
📂 Feeling
- 호눅스 마스터 수업을 복습하다가 개발 세계가 서로 다른 패러다임을 인정하는 세계라는 것을 알게 되었는데 멋있게 느껴졌다.
Good
- 호눅스 수업을 복습하면서 지금 하고있는 미션에서 무엇을 잘못했는지 + 왜 잘못했는지 알게되었다. 역시 만들면서 배우는 것이 가장 잘 배울 수 있는 방법 같다
Bad
✔ TODO
- aws, 남은 마스터 수업 복습, api 데이터 만들기 등
🗒 Learned
- 데이터베이스 설계가 테이블을 만드는 과정이라는 것을 알게 되었다.
- 테이블을 만든 다는 것은 애트리뷰트를 어떻게 묶을 것인지 결정한다는 것을 알게되었다.
- 테이블을 잘 설계하기 위해서 정규화를 한다는 것을 알게 되었다.
- 이상 현상(삭제이상, 삽입이상 등)이 생기는 테이블을 잘 나누는 법이 정규화다 == 정규형을 만족할 수 있도록 테이블을 나누는 과정이다
- 1정규화를 하면 1정규형이 된다
- 정규형 : 이상현상이 잘 안생기는 좋은 테이블을 갖추어야 할 조건이다.
- 1정규형 : 후보키, 원자
- 2정규형 : 부분 함수적 종속이 벌어지면 안된다 ( 후보키 중 일부가 그 일부만으로 다른 애트리뷰트를 함수적으로 결정)
- 3정규형 : 후보키 아닌 애트리뷰트들에서 이행 종속이 발생하지 않는다. x -> y -> z 이렇게 되면 안된다. (x-> y) (y->z) 라는 테이블로 쪼개주고 y를 외래키로 설정해야겠지
4정규형 : 싸이클이 생기면 안된다.
- X가 Y값을 함수적으로 결정(X값이 유일한 Y값을 결정)하면 X->Y라고 한다
- X->Y라면 Y값이 달라지면 반드시 X값이 달라져야 한다
- SUPER KEY : 개념적 정의
- 애트리뷰트의 집합 & SUPER KEY로 다른 애트리뷰트를 고유하게 식별 가능
- 후보키
- 후보키를 설명하기 위해? SUPER KEY개념이 나왔다.
- PK가 될 수 있는 후보. 후보키
- SUPERKEY의 부분집합.
- 후보키의 구성 요소 중 하나라도 제거하면 후보키가 되지 못하는 집합 (에를 들어 주민번호 앞자리 + 주민번호 뒷자리 ) 이렇게 합쳐져야만 다른애트리뷰트를 식별가능 ( super key는 주민번호 앞자리 + 주민번호 뒷자리 + 아파트 주소) 이런 것도 super key
- 모든 다른 애트리뷰트를 함수적으로 결정하는 애트리뷰트를 후보키라고 한다.
- 이 후보키 중 하나가 pk 가 된다
- 기본키 primary key
- 후보키들 중 대표적인 것이 테이블의 기본키가 된다
- natural key(테이블에 존재하던 attribute 중 하나를 pk로)일수도 인공키일 수도 있다. ( Long id로 값을 따로 만들어줌)