SQL스터디

ERD/데이터 타입

hozy연 2023. 10. 17. 13:07

1. ERD

ERD란 Entity Relationship Diagram의 약자로 개체 관계 지도, 개체 관계 다이어그램이라고도 부른다. 
데이터베이스 안에 있는 개체 간의 관계를 시각화해서 보여주는 방식을 말한다 

- Entity: 개체, 테이블
- Attribute: Entity가 가지고 있는 특성, 컬럼
- Relationsh: Entity간의 관계 (e.g. PK primary key, FK foreign key)

 

ERD

  • 여기서 11자 모양은 1:1 관계를 나타냄 (one to one)
  • 삼각형 모양 일자: customer 테이블에 customer_id가 꼭 1개가 있고 또는 여러개가 있을 수도 있다 (one to many)
  • 삼각형 모양 동그라미: customer 테이블에 customer_id가 0개가 있을 수도 있고 여러개가 있을 수도 있다 (many to many)

 

2. ERD 만들때 주의할 점!

 


데이터 타입

  • 숫자
    • 정수
      • tinyint: 3자리수
      • smallint: 5자리수
      • mediumint: 7자리수
      • int: 10자리수
      • bigint: 2의 63승 등...
    • 실수
      • decimal(): 정확한 값을 저장하기 때문에 정밀하게 계산해야할 떄 사용 e.g. 가격 저장할 때
      • float(): 지수표현을 통해 근사값을 저장함. 따라서 정확성은 떠라지지만 처리 속도가 빠름
      • double: float()보다 정확한 대신 저장공간이 더 많이 필요함

 

  • 문자 
    • varchar(): 글자수가 정해져있지 않은 문자 (이름, 주소)
    • char(): 글자수가 일정한 문자

 

  • 날짜/시간
    • date(): 1000-01-01
    • datetime(): 1000-01-01-00:00:00, 000000
    • timestamp() = datetime() + timezone (e.g. KST) 가장 많이 사용

 

  • JSON
    • JavaScript Object Notation의 약자로 데이터를 저장하고 전송하기 위해 사용되는 포맷
    • JSON 포맷의 표현 방식
      • 객체(Object): 키-값 쌍의 집합 (e.g.{'이름':'김민호', '키':'158', '취미': '축구'})
      • 배열(Array): 순서가 있는 값의 집합
      • 고정된 컬럼이 아닌 유동적인 경우에 사용
      • 분석할 때는 필요한 값만 가지고 와서 분석에 사용