일정한 규칙 혹은 규약을 통해 구조화되어 저장되는 데이터의 모음
DBMS(Database Management System): MySQL등 데이터베이스를 제어, 관리하는 통합 시스템
Entity: 여러 개의 속성을 가진 명사. (서비스의 요구 사항에 맞춰)
데이터베이스에서 정보를 구분하여 저장하는 기본 단위.
릴레이션에 포함된 각각의 속성들이 가질 수 있는 값의 집합.
ex) 성별 속성 - {남, 여}
예시)
회원(Entity)
| name | ID | address | phone |
|---|---|---|---|
| 홍길동 | gildong1 | 서울 | 112 |
필드: name, ID, address, phone
레코드: 홍길동, gildong1, 서울, 112
숫자 타입 (바이트)
TINYINT(1), SMALLINT(2), MEDIUMINT(3), INT(4), BIGINT(8)
날짜 타입
DATE: 날짜 부분 있고 시간 부분이 없는 값. 3바이트
1000-01-01 ~ 9999-12-31 범위
DATETIME: 날짜 및 시간 부분 포함. 8바이트
1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 범위
TIMESTAMP: 날짜 및 시간 부분 포함. 4바이트
1970-01-01 00:00:01 ~ 2038-01-19 03:14:07 범위
1:1 관계: 유저 당 유저 아이디 한 개와 같이 하나씩만 대응. 테이블을 두 개의 관계로 나누어 이해하기 쉽도록 할 수 있음.
1:N 관계: 한 개체가 다른 많은 개체를 포함하는 관계
N:M 관계: 학생과 강의처럼 서로 여러 개체를 포함할 수 있는 관계. N:M은 테이블 두 개를 직접 연결하지 않고 1:N, 1:M 관계를 갖는 테이블로 나누어 사용함.
테이블 간 관계 명확하게 하기 위함 및 테이블 자체의 인덱스를 위해 설정.
기본키(Primary key): 유일성과 최소성을 만족해 모든 튜플들을 구분 가능한 키. Null 값을 가질 수 없음.
외래키(Foreign key): 다른 테이블의 기본키를 참조하는 값으로 개체와의 관계를 식별.
후보키(Candidate key): 기본키가 될 수 있는 후보들로 유일성과 최소성 만족하는 키.
대체키(Alternate key): 후보키가 두 개 이상인 경우 기본키 외의 키.
슈퍼키(Super key): 각 레코드를 식별할 수 있는 유일성을 갖춘 키.