[CS/DB] 데이터베이스의 기본

joy_five·2023년 1월 12일
0

DB란?

데이터베이스(DB, DataBase)는 일정한 규칙, 혹은 규약을 통해 구조화되어 저장되는 데이터의 모음

데이터베이스를 제어, 관리하는 통합 시스템을 DBMS(DataBase Management System)라고 하며,

DB 내 데이터들은 특정 DBMS마다 정의된 쿼리 언어를 통해 삽입, 삭제, 수정, 조회 등을 수행할 수 있다.

4.1.1 엔터티(Entity)

  • 사람, 장소, 물건, 사건, 개념 등 여러개의 속성을 가진 명사를 의미합니다.

Entity Type 1 - 유형/무형

종류설명
유형 엔티티지속적으로 사용되는 엔티티
개념 엔티티물리적 형태가 없이 개념적으로 사용되는 엔티티
사건 엔티티비즈니스 프로세스를 실행하면서 생성되는 엔티티

Entity Type 2 - 발생 시점

종류설명
기본 엔티티(Basic Entity)키 엔티티라고도 하며, 다른 엔티티에 영향을 받지 않고 독립적으로 생성되는 엔티티
중심 엔티티(Main Entity)기본 엔티티와 행위 엔티티의 중간단계로 기본 엔티티로부터 발생되며 행위 엔티티를 생성하는 역할을 한다.
행위 엔티티(Active Entity)2개 이상의 엔티티로부터 발생된다.

약한 엔티티와 강한 엔티티

A가 독립적인 존재가 아니라, B의 존재 여부에 따른 종속성을 가진 경우 A는 약한 엔티티, B는 강한 엔티티로 볼 수 있다.

4.1.2 릴레이션(Relation)

  • 데이터베이스에서 정보를 구분하여 저장하는 기본 단위
  • RDBS(MySQL 등) DB에서는 Table이라고 하며, NoSQL DB에서는 Collection이라고 한다.

*관계형 데이터베이스는 엔티티와 연관이 깊고, NoSQL DB는 key:value 형태로 Data를 저장한다.

4.1.3 속성(Attribute)

  • 릴레이션에서 관리하는 구체적이며 고유한 이름을 갖는 정보
  • Entity 내의 개별 정보의 key값으로 볼 수 있음

4.1.4 도메인(Domain)

  • 릴레이션에 포함된 개별 속성들이 가질 수 있는 값의 집합
    ex. 속성 성별의 도메인 {남, 여}

4.1.5 필드(Field)와 레코드(Record)

  • 필드 : 속성의 column name 이라고 생각하면 된다.
  • 레코드 : 개별 속성들이 모여있는 row 단위의 데이터를 레코드라고 하며, 튜플 자료형의 형태로 이해할 수 있다.

필드 타입

  • 각 필드의 자료형을 의미한다.
  • 대표적인 타입: 숫자타입(TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT), 날짜타입(DATE, DATETIME, TIMESTAMP), 문자타입(CHAR, VARCHAR, TEXT, BLOB, ENUM, SET)

4.1.6 관계

  • 데이터베이스 내의 개별 테이블들 간에 관계를 지어줄 수 있다.

1:1 관계

  • 유저 테이블과 유저 이메일 테이블 과 같이 1:1로 매칭되는 형태의 관계는 1개의 테이블을 2개로 나누어 테이블의 구조를 더 이해하기 쉽도록 돕는다.

1:N 관계

  • 유저 테이블과 개별 유저가 담은 장바구니 테이블을 비교해보자면, 유저별로 여러 개의 상품을 담거나 삭제할 수 있는 구조이므로 1:N 관계가 성립한다.

N:M 관계

  • 학생 테이블과 강의 테이블의 관계는 학생도 여러개의 강의를 들을 수 있고, 강의도 여러 명의 학생을 수용할 수 있어야 하므로 N:M 관계로 정의할 수 있다.
    N:M 관계는 테이블 간의 직접적인 연관관계를 맺어주는 대신 1:N과 1:M 관계를 갖는 테이블 2개로 나누어 설정한다.

4.1.7 키

  • 테이블 간의 관계를 명확하게 하고, 테이블 자체의 인덱스를 위해 설정된 장치이다.
키의 종류기본키, 외래키, 후보키, 슈퍼키, 대체키

기본키(Primary Key)

  • PK, 프라이머리키로 통용되는 기본키는 유일성최소성을 만족한다.
  • 테이블의 데이터 중 고유하게 존재하는 속성으로, 중복되는 값이 없는 필드를 기본키로 지정해야한다.

자연키

  • 중복된 값들을 제외하여 중복되지 않는 것을 자연스레 뽑아 선별하는 경우 자연키라고 명명한다.
    인조키
  • 테이블 생성 시 인위적인 ID를 부여하는 등 고유 식별자를 만들어 내는 경우 인조키라고 하며, 자연키와 달리 변하지 않으므로 일반적으로 기본키는 인조키로 설정한다.

외래키(Foreign Key)

  • FK라고도 하며, 다른 테이블의 기본키를 그대로 참조하는 값으로, 개체관계를 식별하기 위해 사용한다.

후보키(Candidate Key)

  • 기본키가 될 수 있는 후보군을 의미한다. 유일성과 최소성을을 동시에 만족시키는 키들을 후보키라고 일컫는다.

대체키(Alternate Key)

  • 후보키가 2개 이상인 경우 어느 하나를 기본 키로 지정하고 남은 후보키들을 의미한다.

슈퍼키(Super Key)

  • 각 레코드를 유일하게 식별할 수 있는 유일성을 갖춘 키
profile
😤 Started in Sep. 2022 😎 I'm going to further!

0개의 댓글