데이터베이스, 테이블, 엔티티, 리포지토리
데이터베이스
: 데이터를 보관하기 위한 상자. 특정 규칙을 적용하여 데이터를 정리해서 보관한다. 보통 약칭 DB라고 부른다.
관계형 데이터베이스
: 데이터를 표 형식으로 표현하고, 여러 표에서 항목의 값 사이에 관계를 맺고 있는 데이터베이스.
표는 테이블이라고 부르고 테이블과 테이블 관계를 Relationship이라고 부른다.
관계형 데이터베이스는 가장 일반적으로 사용되는 데이터베이스. 보통 RDB라고 부른다.
테이블
: 데이터베이스 안에서 실제로 규칙을 가진 데이터가 저장되는 상자.
레코드와 칼럼
- 테이블의 세로 열을 칼럼(column) / 가로 행을 레코드(record)라고 한다.
[테이블의 제약 조건]
제약 조건의 예 >
제약 조건 | 개요 |
NOT NULL | NULL 입력을 허용하지 않는다(필수 입력) |
UNIQUE | 중복값 입력을 허용하지 않는다(고유한 값) |
CHECK | 지정한 조건을 만족하지 않는 값의 입력을 허용하지 않는다. |
PRIMARY KEY | 테이블 안에서 레코드를 식별하는 기본키를 설정한다. 기본키는 NOR NULL과 UNIQUE가 함께 적용된다. |
FOREIGN KEY | 관련된 테이블을 연결하는 설정이다. 외부 키라고도 불린다. |
DEFAULT | 칼럼의 초깃값을 설정한다. |
SQL
: 데이터베이스를 조직하기 위한 언어.
Structure Query Language 의 약자이다.
[SQL의 CRUD]
CRUD | 명령어 | 개요 |
생성(Create) | INSERT | 데이터 등록 |
읽기(Read) | SELECT | 데이터 참조 |
갱신(Update) | UPDATE | 데이터 갱신 |
삭제(Delete) | DELETE | 데이터 삭제 |
PostgreSQL에서의 CRUD 구문
CRUD | 구문 |
생성(Create) | INSERT INTO 테이블명(칼럼명, 칼럼명,...) VALUES(값, 값, ...); |
읽기(Read) | SELECT 칼럼명 FROM 테이블명; |
갱신(Update) | UPDATE 테이블명 SET 갈럼명 = 값 WHERE '갱신할 레코드를 특정하는 조건'; ***WHERE로 조건을 지정하지 않는 경우, 모든 레코드가 대상이 된다. |
삭제(Delete) | DELETE FROM 테이블명 WHERE '삭제할 레코드를 특정하는 조건'; *** WHERE로 조건을 지정하지 않는 경우, 모든 레코드가 대상이 된다. |
엔티티(Entity)
: (실제) 데이터를 담아두는 객체 => 데이터베이스 테이블의 한 행(레코드)에 대응하는 객체
-- 엔티티의 필드는 테이블의 한 행(레코드)에 대응하는 객체.
-- 엔티티의 필드는 테이블의 칼럼값(세로 열)에 대응한다.
(실제) 데이터를 담아두는 객체 <=여기서 기억해야 할 것
* 클래스명
: 대응하는 데이터베이스의 테이블명으로 하는 경우가 많다.
* 데이터베이스에 값 넘겨주기
: 데이터베이스의 값을 등록/갱신하는 경우에는 Entity에 값을 넣어서 넘겨준다.
* 데이터베이스에서 값 가져오기
: 데이터베이스에서 값을 가져오는 경우에는 값을 엔티티에 넣어서 가져온다.
리포지토리(Repository)
: 소위 데이터베이스를 조직하는 클래스이다.
=> 리포지토리를 생성하는 경우에는 반드시 인터페이스를 정의하고 구현해야 한다
=====> 리포지토리 인터페이스의 필드에 리포지토리 구현 클래스를 DI 하여특정 구현에 의존하는 것을
피할 수 있기 때문에.