안녕하십니까 다제입니다.
오늘은 ①SQL Bussiness Rule과 ②카디널리티에 대해서 알아보도록 하겠습니다.
1. SQL Bussiness Rule
-. 말 그대로 실제 데이터베이스를 구축 시, 지켜야할 규칙들에 대해서 알아보도록 하겠습니다.
-. 반드시 해당 규칙이 맞다는 것은 아니며, 이러한 규칙이 효율적인 데이터베이스를 생성하는 기반이 된다고 생각합니다.
★ 규칙 ★
1) 모든 명사는 entity 후보입니다.
2) 모든 동사는 relationship후보입니다.
3) 하나의 값으로 표현할 수 잇는 명사는 attribute 후보입니다.
* 단, 여러 값을 가질 수 있다면 attribute는 entity 후보가 된다.
* 또한, 다대다 관계에서는 동사도 entity 후보가 될 수 있기 때문에 "주의"가 필요하다.
* 비지니스 룰은 항상 간단명료하면서도 필요한 내용을 모두 담고 있어야 한다.
2. 카디널리티
-. 두 entity type 사이 관계에서 한 종류의 entity가 다른 종류의 entity 몇 개에 대해서 관계를 맺을 수 있는지를 나타내는 개념을 의미합니다.
★ 종류 ★
1) 1:1(일대일 관계)
-. 두 entity 어디에 다른 테이블 로우를 특정 지을 수 있는 foreign key를 넣어도 큰 상관은 없음
-. 단, 구조적으로 NULL이 생기는 문제를 최소화하기 위해서 일반적으로 최소 카디널리티가 0인 테이블에 foreign key를 만들어준다.
-. 예) 주민등록증, 학생증번호
2) 1:N(일대다 관계)
-. 1:N 관계에서는 꼭 N쪽에 Foreign Key를 넣어주어야 한다.
-. "다"에 해당하는 테이블에 "일"에 해당하는 테이블 로우를 특정 지을 수 있는 foreign key를 만들어준다.
-. 예) 선생님과 여러 수업
3) N:N(다대다 관계)
-. 연결테이블(Junction Table)을 이용하여 각각의 Foreign Key를 만들어준다.
-. 예) 학생과 여러 수업, 쇼핑몰에서 찜하기 기능
해당 내용에 대해서는 방대한 자료가 있습니다.
이에, 추가적으로 정보가 필요하신 분들은 위의 카디널리티를 나타내는 이미지를 클릭하시면 추가적으로 공부하실 수 있습니다.
오늘도 방문해주셔서 감사드리며, 공감 부탁드립니다.
감사합니다.
'Code > SQL' 카테고리의 다른 글
[MySQL 13] 물리적모델링(feat. Codestates _AI_BootCamp, codestates) (0) | 2021.03.11 |
---|---|
[MySQL 11] 정규화 & 정규형{1NF, 2NF, 3NF}(feat.Codestates _AI_BootCamp, 부트캠프) (0) | 2021.03.11 |
[MySQL 9] MySQL data Modeling (feat. Codestates _AI_BootCamp, 코드스테이츠) (0) | 2021.03.11 |
[MySQL 8] Foreign Key 삭제 & 업데이트 정책(feat. Codestates _AI_BootCamp, 코드스테이츠) (0) | 2021.03.11 |
MySQL 기초부터 훑어보기7(ALTER, TABLE) (2) | 2021.03.08 |