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)
- 각 레코드를 유일하게 식별할 수 있는 유일성을 갖춘 키