코드 그라데이션

데이터베이스, 테이블, 엔티티, 리포지토리 본문

Spring/핵심 가이드

데이터베이스, 테이블, 엔티티, 리포지토리

완벽한 장면 2023. 1. 14. 21:22

데이터베이스

: 데이터를 보관하기 위한 상자. 특정 규칙을 적용하여 데이터를 정리해서 보관한다. 보통 약칭 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 하여특정 구현에 의존하는 것을

             피할 수 있기 때문에. 

 

리포지토리

 

728x90
Comments