관계형 데이터 베이스의 관계 두 가지 특성
- 관계의 선택성 (Optionality)
두 테이블 간 관계 설정 시, 페어링 필수 여부
(mandatory vs optional)
부모에게 자식은 선택의 존재(optional)이지만, 자식에게 부모는 필수적인(mandatory) 존재
일반적인 관계의 중요성과 비슷한 의미
optional = "동그라미(O)" 표시 (가질 수 있다)
mandatory = "수직바(|)" 표시 (가져야 한다)
- 관계의 기수성 (Cardianality)
두 테이블 간 관계 설정 시, 참여 멤버 수 표현
(One vs many)
부모는 여러 명의 자식과 관계를 맺을 수 있지만, 자식은 부모 한 명만 관계 맺음
연인 관계는 서로 한 명만
일반적인 관계의 다중성과 비슷한 의미
- Primary key = PK
NOT NULL: 빈 칸인 Null이 될 수 없음
UNIQUE: 다른 Row와 중복 X, 단일 값
- Foreign key 외래키 = FK
다른 테이블의 PK / UNIQUE 필드와 대응,
참조 관계를 표현하는 속성
- RDB Table 대표 관계
1. 1 대 1 관계
한 "유저"는 하나의 "address"만 가질 수 있다.
한 "address"는 하나의 "user"를 가져야 한다.
2. 1 대 N 관계
한 "책"은 여러 "리뷰"들을 가질 수 있다.
한 "리뷰"는 하나의 "책"을 가져야 한다.
3. N 대 M 관계
한 "유저"는 여러 "책"을 살 수 있다.
한 "책"은 여러 "유저"에게 판매될 수 있다.
N:M을 그대로 두면 중복 데이터 발생하므로 연결 테이블(mapping table) 두는 것이 좋음
RDB Table 관계 TABLE 만들 때 tip
1. FK 필드 설정
관계의 '을'인 Table에게 주자
2. 'NOT NULL' 사용 유무
Optional을 나타낼 수 있다
3. 'UNIQUE' 사용 유무
1:1과 1:N 구분할 수 있다
참조 무결성: 데이터 간 항상 일관된 값/관계가 유지되어야 한다.
'SuperCoding' 카테고리의 다른 글
2024.04.12(금) 데이터베이스 모델링 (0) | 2024.04.12 |
---|---|
2024.04.12(금) SQL Join과 Foreign Key(FK) 제약 조건 (0) | 2024.04.12 |
2024.04.02(화) MySQL (0) | 2024.04.03 |
2024.03.03(일) 슈퍼코딩 부트캠프 백엔드 인턴 Week5 Day1 보고 (0) | 2024.03.06 |
2024.02.02(금) 슈퍼코딩 부트캠프 백엔드 인턴 Week4 Day5 보고 (0) | 2024.03.06 |