코딩 기록들
[Database Programming] 3. ER - Diagram 본문
ER - Diagram
- Database의 구조를 도식화 함
- 한 데이터베이스의 테이블을 컬럼으로 도식화 함
- 각 테이블 끼리의 관계를 연결
- 대표적인 프로그램 : CA사의 ER-Win, Tomato System사의 eXERD https://www.exerd.com/index.do
- 하나의 테이블을 도식화 함
- 컬럼들을 나열하고 속성을 정의함
PK (Primary Key)
->테이블 안에서 절대 중복이 일어나지 않는 컬럼. ex) 아이디
-> Row(데이터)를 구분할 수 있는 유일한 값.
FK (Foreign Key)
-> Primary Key를 참조하는 컬럼(값)
-> 테이블 내에서 (일부러) 중복을 일으키는 컬럼. ex) 장바구니의 상품들
-> FK는 반드시 PK의 값을 받아오는 형태
Table Constraints
- 테이블 간의 관계를 정의함
- 관계의 종류 : 일대일, 일대다, 다대다
1 vs 1 : 일 대 일
- 만들지 말아야 할 관계
- 하나의 테이블에 컬럼 20개이상 될경우 부득이하게 사용됨
- 단, row의 수가 천만개 넘어갈경우 성능위해 컬럼 나누지 않음
(1 or 0) vs N : 일대다
- 컬럼 하나가 다른 테이블의 컬럼 여러개 참조할 경우
ex) 책 카테고리의 상품들 : 1개의값에 여러 값들이 연결됨
회원 상품 주문
아이디(PK) | 이름 번호(PK) | 이름 주문번호 (PK) | 아이디(FK) | 번호(FK)
member1 | 사용자2 prod1 | 휴대폰 order1 | member1 | prod1
member2 | 사용자2 prod2 | 케이스 order2 | member1 | prod2
member3 | 사용자3 order3 | member3 | prod2
** FK : 아무거나 가져올수 없고, 반드시 PK의 값을 받아오는 것이어야 함
N vs N : 다대다
- 1회원 - 구매 - n 상품
- n회원- 구매 - 1 상품
이러한 상황에서는 : '해소테이블'이 필요함 --> '구매' 를 테이블로!
( 다 대 다 관계는 관계를 해소하기 위한 테이블이 존재해야 함)
ex) 하나의 상품은 여러 사용자가 주문할 수 있음. + 한 명의 사용자는 여러 상품을 주문할 수 있음.
일 대 일 관계
일 대 다 관계
- 동그라미 의미 : pk값이 fk에 존재하지 않을수도 있다는 뜻
단, ERD 에서는 일 대 다 관계만 존재할수 있다 (일 대 일)
논리모드, 물리모드
논리모드(Logical Diagram)
- 사용자관점 ERD
- ERD를 보았을 때 의미를 즉시 알 수 있도록 만들어 놓은 논리 구조
물리모드(Physical Diagram)
- 데이터베이스 관점의 ERD
- ERD를 보았을 때 데이터베이스의 테이블 및 컬럼명을 즉시 알 수 있도록 만들어놓은 물리 구조
논리모드 예시
물리모드 예시
'Database Programming' 카테고리의 다른 글
오라클 SQLD 정리 (0) | 2024.05.27 |
---|---|
[Database Programming] 10. 데이터베이스 구성 실습 (분석)1 (1) | 2024.02.27 |
[Database Programming] 9. 데이터 삽입, 수정, 삭제(INSERT, UPDATE, DELETE) (0) | 2024.02.21 |
[Database Programming] 2. SQL (SELECT, FROM, ORDER BY, WHERE) (0) | 2024.02.15 |
[Database Programming] 1. DBMS (1) | 2024.02.15 |