[CS] DB - 데이터베이스의 기본
데이터 베이스는 일정한 규칙또는 규약을 통해 구조화 되어 저장되는 데이터의 모음이다.
해당 데이터베이스를 제어, 관리하는 통합 시스템을 DBMS라고한다.
DBMS마다 query를 통해 삽입, 삭제, 수정, 조회 등을 수행할 수 있다.
또한, 데이터베이스는 실시간 접근과 동시 공유가 가능하다.
엔터티
엔터티는 사람,장소, 물건, 사건, 개념 등 여러개의 속성을 지닌 명사를 의미한다.
물론 현실세계에 있는 모든 개념을 속성으로 만드는 것이 아니라,
추상화 과정을 통해, 서비스의 요구사항에 맞춰 속성이 정해진다.
속성
속성은 릴레이션에서 관리하는 구체적이고 고유한 이름을 갖는 정보이다.
약한엔터티 강한엔터티
A가 혼자서는 존재하지 못하고, B의 존재 여부에 따라 종속적이라면
A는 약한 엔터티이고, B는 강한 엔터티이다.
릴레이션
릴레이션은 데이터 베이스에서 정보를 구분하여 저장하는 기본단위이다.
엔터티에 관한 데이터를 데이터베이슨 릴레이션 하나에 담아 관리한다.
관계형 DB에서는 테이블, NoSQL 에서는 컬렉션 이라고 한다.
도메인
도메인이란 릴레이션에 포함된 각각의 속성들이 가질 수 있는 값의 집합을 말한다.
예를 들어 설별이라는 속성이라면, 이 속성이 가질 수 있는 값은 {남, 여} 라는 집합이 된다.
이 {남,여}라는 집합이 도메인이다.
관계
데이터베이스의 테이블은 여러개가 존재하고 이 테이블은 서로의 관계가 정의되어 있다.
ERD의 관계화살표 표기방법 아래와 같다.
1:1 관계
테이블의 관계가 1:1로 매칭되는 관계
예를들어 유저테이블과 유저이메일 테이블의 관계는 1:1이다.
1:N 관계
테이블의 관계가 1:N으로 매칭되는 관계
유저테이블과 게시글 테이블의 관계는 1:N이다.
N:M관계
테이블의 관계가 N:M으로 매칭되는 관계
예를 들어 강의테이블과 학생테이블이있다.
학생은 여러개의 강의를 동시에 수강할 수 있고, 강의를 듣는 학생 역시 여럿일 수 있다.
보통, 1:N, 1:M으로 나눠 설계한다.
키
테이블 간의 관계를 조금더 명확하게 하고, 테이블 자체의 인덱스를 위해 설정된 장치로,
기본키, 외래키, 후보키, 슈퍼키, 대체키가 있다.
슈퍼키는 유일성이 있고, 후보키는 유일성 + 최소성을 갖춘 키이다.
후보키에서 기본키로 선택되지 못한 키는 대체키가 된다.
유일성
중복되는 값이 없음.최소성
필드를 조합하지 않고 최소 필드로 키를 형성함.
기본키
기본키는 PK라고 만힝 부른다. 유일성과 최소성을 모두 만족한다.
기본키는 자연키 또는 인조키 중에 골라 설정한다.
자연키
중복되는 값을 가질 수 있는 column을 제외하고 자연스레 남게 되는 유일한 column인조키
auto_increment를 통해 만들어지는 pk처럼, 인위적으로 생성한 키
외래키
외래키는 FK라고도 하며, 다른테이블의 기본키를 그대로 참조하는 값.
후보키
기본키가 될 수 있는 후보들. 유일성과 최소성을 동시에 만족한다.
대체키
후보키가 두개 이상일 경우 어느 하나를 기본키로 설정하고, 설정되지 않은 후보키
슈퍼키
슈퍼키는 각 레코드를 유일하게 식별할 수 있는 유일성을 갖춘 키