10. ERD, 데이터 타입

기초/SQL|2021. 4. 14. 22:41

ERD(Entity Relationship Diagram)

: 개체/엔티티(=테이블) 간의 관계를 나타내는 그림.

 

Attribute : 각 엔티티가 가지는 특징이자 구조적으로 각 테이블의 컬럼명, 컬럼 정보=데이터타입

해당 컬럼이 무엇을 의미하는지 등을 나타낸다.

 

PK(Primary Key) : 주 식별자. 하나의 엔티티에 PK는 하나씩만 존재할 수 있다.

해당 엔티티(테이블)을 대표하는 키. 각 레코드마다 유니크하게 가지는 key.

FK(Foreign Key) : 외부 식별자. 다른 엔티티의 PK에서 참조될 수 있다. 

두 가지 이상의 엔티티에서 그 사이의 관계를 정의하는 데 사용될 수 있다.

 

화살표는 어떤 엔티티와의 관계를 보여주지만, 몇 개의 데이터가 몇 개의 데이터와 대응되는지 나타내 준다.

(1 : 1 관계인지, 1 : n 관계인지, n : n 관계인지 나타내준다)

 

데이터 타입

각각의 데이터타입이 뭔 지는 그리 중요하지 않다.

이런 것들이 어떤 데이터를 의미하는지, 어떨 때 사용되는지 정도만!

 

1. 숫자

- 정수

tinyint() : -128 ~ +127

smallint() : -32768 ~ 32767

bigint() : 암튼큼

- 실수

decimal() : 정밀하게 저장해야할 때 / 돈과 관련된 곳 등

double() : 대부분의 실수

float() : 정확성은 떨어지지만 처리 속도가 빨라야 할 때

 

2. 문자

varchar() : Various Character, 다양한 글자 수의 문자

char() : 글자 수가 일정한 문자

 

3. 날짜, 시간

date() : 날짜만 존재. 1000-01-01 ~ 9999-12-31

datetime() : 날짜와 시간이 존재. 1000-01-01 00:00:00.000000 ~ 9999-12-31 23:59:59.999999

timestamp() : datetime() + timezone, 어느 국가 시간 기준인 지 정보를 가지고 있는 데이터 타입. 실제로 가장 많이 사용된다.

 

 

tip. 날짜를 나타내는 컬럼인데 데이터 타입이 텍스트형이다?

- 시간 계산(해당 날짜로부터 한 달 후, 하루 후의 시점을 알고 싶을 때)이 필요한 경우에는

반드시 timestamp로 지정해 주어야 하지만, 단순히 기록만을 위한 거라면 굳이 시간 데이터를 사용할 필요는 없다.

DB마다 다르지만 텍스트 데이터를 날짜 형태로 바꾸거나 그 반대도 가능하다.

 

'기초 > SQL' 카테고리의 다른 글

11. 서브쿼리  (0) 2021.04.15
09. 조작어 / INSERT, UPDATE, DELETE  (0) 2021.04.08
08-1. 추가 연습문제 풀이  (0) 2021.01.31

댓글()