필드(Field)
- 필드는 데이터베이스 테이블의 열(Column)
- 테이블에서 특정 종류의 데이터를 저장하는 단위로 하나의 필드는 특정 속성(Attribute)에 해당
- 예시 : 학생 테이블에서 이름, 학번, 전공 등이 필드
- 특징
- 속성 : 필드는 엔터티의 속성을 나타냄
- 일관성 : 하나의 필드에는 같은 타입의 데이터가 저장
- 제약 조건 : 필드는 고유성, 무결성, 기본 값 등의 제약 조건을 가질 수 있음
학번(Student ID) | 이름(Name) | 전공(Major) | 나이(Age) |
---|
필드 | 필드 | 필드 | 필드 |
레코드(Record)
- 레코드는 데이터베이스 테이블의 행(Row)
- 하나의 레코드는 여러 필드로 구성되며 특정 엔터티나 객체에 대한 데이터를 저장
- 튜플(Tuple)이라고도 함
- 예시 : 학생 테이블에서
1, 김철수, 컴퓨터 공학, 20
은 하나의 레코드
- 특징
- 엔터티 인스턴스 : 레코드는 엔터티의 한 인스턴스를 나타냄
- 구성 요소 : 레코드는 여러 필드로 구성되며 각 필드는 레코드의 속성을 나타냄
학번(Student ID) | 이름(Name) | 전공(Major) | 나이(Age) |
---|
1 | 김철수 | 컴퓨터공학 | 20 |
2 | 이영희 | 전자공학 | 22 |
3 | 박지훈 | 기계공학 | 21 |
MySQL 예시
CREATE TABLE book(
id INT NOT NULL AUTO_INCREMENT, title VARCHAR(255),
author_id INT,
publishing_year VARCHAR(255), genre VARCHAR(255),
created_at DATETIME, updated_at DATETIME,
PRIMARY KEY (id)
);
타입(Type)
- 타입은 필드에 저장될 데이터의 형식(데이터 타입)을 의미
- DB는 다양한 데이터 타입을 지원하며 각 필드는 특정 데이터 타입을 가짐
- 예시 :
INTEGER
, VARCHAR
, DATE
, BOOLEAN
등이 데이터 타입임
- 특징 :
- 일관성 보장 : 데이터 타입을 지정함으로써 필드에 저장되는 데이터의 형식을 일관되게 유지함
- 유효성 검사 : 데이터 타입을 통해 입력되는 데이터의 유효성을 검사할 수 있음
필드 | 데이터 타입 |
---|
학번(Student ID) | INTEGER |
이름(Name) | VARCHAR(50) |
전공(Major) | VARCHAR(50) |
나이(Age) | INTEGER |
MySQL 숫자 타입
Type | Storage (Bytes) | Minimum Value Signed | Minimum Value Unsigned | Maximum Value Signed | Maximum Value Unsigned |
---|
TINYINT | 1 | -128 | 0 | 127 | 255 |
SMALLINT | 2 | -32768 | 0 | 32767 | 65535 |
MEDIUMINT | 3 | -8388608 | 0 | 8388607 | 16777215 |
INT | 4 | -2147483648 | 0 | 2147483647 | 4294967295 |
BIGINT | 8 | -2^63 | 0 | 2^63 - 1 | 2^64 - 1 |
만약 unsigned를 쓰려고 한다면?
author_id INT UNSIGNED
MySQL 날짜 타입
Type | Format | 범위 | 저장 크기 | 추가 설명 |
---|
DATE | YYYY-MM-DD | 1000-01-01 ~ 9999-12-31 | 3 bytes | 날짜만 저장 |
DATETIME | YYYY-MM-DD HH:MM:SS | 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 | 8 bytes | 날짜와 시간 저장 |
TIMESTAMP | YYYY-MM-DD HH:MM:SS | 1970-01-01 00:00:01 UTC ~ 2038-01-19 03:14:07 UTC | 4 bytes | UTC 기준으로 저장, 타임존 영향을 받음 |