10. ERD, 데이터 타입
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 |