cs

[데이터베이스] 엔티티, 릴레이션, 속성, 도메인

ssoonn 2024. 8. 6. 22:01

데이터베이스란?

일정한 규칙 혹은 규약을 통해 구조화되어 저장되는 데이터의 모음.

구조
- 응용 프로그램 - nodeJS, php
- DBMS
- 데이터베이스

데이터베이스 위에 DBMS 가 존재하고, 그 위에 응용프로그램이 존재하여, 응용프로그램에서 데이터베이스 안에 있는 데이터를 끄집어내어 관련 로직을 정의한다.

 

DBMS (Data Managemet System)

데이터베이스를 제어, 관리하는 통합 시스템.

ex. Oracle, MySQL, MongoDB

 

DBMS마다 정의된 쿼리 언어들을 사용하여 데이터베이스를 관리(CRUD)한다.

 

엔티티 Entity

사람, 장소, 물건 등 여러 개의 속성을 지닌 명사.

ex. '회원' 엔티티에는 이름, 아이디, 주소, 전화번호 등의 속성이 있음. 서비스에 맞게 속성을 지정

 

강한 엔티티와 약한 엔티티로 나뉜다.

  • 강한 엔티티: 독립적으로 존재할 수 있는 강한 개체.
    • 다른 엔티티와 관계를 가질 때, 다른 엔티티에 기본 키를 공유한다.
  • 약한 엔티티: 독립적으로 존재하지 못하고, 다른 엔티티의 존재 여부에 따라 종속적.

ex. 방, 건물

방: 건물에 종속적 -> 약한 엔티티

건물: 독립적으로 존재 -> 강한 엔티티

 

엔티티의 특징

  • 반드시 해당 업무에서 필요하고 관리하고지 하는 정보
  • 유일한 식별자에 의해 식별이 가능해야 함
  • 영속적으로 존재하는 인스턴트의 집합: '한 개'가 아닌, '두 개 이상'
  • 반드시 속성이 있어야 함
  • 다른 엔티티와 최소 한 개 이상의 관계가 있어야 함

 

릴레이션 Relation

데이터베이스에서 정보를 구분하여 저장하는 기본 단위.

엔티티에 관한 데이터는 릴레이션에 담아서 관리한다.

 

데이터는 RDBMS와 NoSQL로 나뉜다.

  • RDBMS에서 릴레이션 = 테이블
  • NoSQL에서 릴레이션 = 컬렉션

 

cf. RDBMS인 MySQL에서 테이블 생성 방법

create table book (
  id INT NOT NULL AUTO_INCREMENT,
  title VARCHAR(255),
  author_id INT,
  PRIMARY KEY (id)
);

속성 Attribute

릴레이션에서 관리하는 구체적이고, 고유한 이름을 갖는 정보.

엔티티에서 필요한 속성들이 엔티티 속성이 된다.

ex. '차' 엔티티의 속성: 차의 번호, 차종, 차의 색

 

도메인 Domain

릴레이션에 포함된 각각의 속성들이 가질 수 있는 값의 집합 (= 각 속성이 가질 수 있는 값의 범위)

엔티티 내에서 속성에 대한 데이터 타입, 크기, 제약사항을 지정한다.

ex. '회원'이라는 릴레이션에 이름, 아이디, 주소, 전화번호, 성별이라는 '속성'

'성별'이라는 속성은 {남, 여}라는 도메인을 가진다.

 

ref.

기본 1 - 엔티티, 릴레이션, 속성, 도메인

데이터베이스의 기본(엔터티, 릴레이션, 속성, 도메인, 필드와...

[Database] 데이터베이스 정리 (엔티티, 릴레이션, 속성)