Computer Science/Database

[면접을 위한 CS 노트] 4-1 데이터베이스의 기본

킹우현 2023. 11. 25. 17:51

1. 데이터베이스의 기본

데이터베이스란 ? 일정한 규칙과 규약을 통해 구조화되어 저장되는 데이터의 모음

DBMS : 데이터베이스를 제어하고 관리하는 통합 시스템

 

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

 

데이터 베이스의 특징

  1. 실시간 접근이 가능하다.
  2. 동시 공유가 가능하다.
  3. 지속적으로 변화한다.
  4. 데이터 참조 시에 주소가 아니라 내용에 대한 참조를 한다.

 

 

1-1. 엔터티(Entity)

엔터티는 사람, 장소, 물건, 사건, 개념 등 여러 개의 속성을 지닌 명사를 의미한다.

 

엔터티는 다른 엔터티의 존재 여부에 종속적인 '약한 엔터티'와 독립적으로 존재할 수 있는 '강한 엔터티'가 존재한다.(ex. 방 / 건물)

 

1-2. 릴레이션(Relation)

릴레이션이란 데이터베이스에서 정보를 저장하는 기본 단위다.

 

엔터티에 관한 데이터를 데이터베이스에서 릴레이션에 담아서 관리한다. 데이터베이스는 RDBMS 와 NoSQL로 나뉘는데, RDBMS에선 릴레이션을 '테이블' 이라 부르며, NoSQL에선 '컬렉션'이라고 부른다.

 

1-3. 속성(Attribute)

속성이란 릴레이션에서 고유한 이름을 갖는 정보이다.

 

예를 들어 차라는 엔티티가 있다면 차 번호, 차종, 색깔 등을 떠올릴 수 있는데, 이처럼 엔티티에 필요한 속성들이 엔티티 속성이 된다.

 

1-4. 도메인(Domain)

도메인(domain)이란 릴레이션에 포함된 각각의 속성들이 가질 수 있는 값의 집합을 말한다.

 

예를 들어 성별이라는 속성이 있다면 이 속성이 가질 수 있는 도메인은 남자여자가 된다.

 

1-5. 필드와 레코드(튜플)

엔터티의 속성들을 필드라고 하고, 속성들의 도메인들이 모인 하나의 row를 레코드(튜플)라 한다.

 

1-6. 관계(Relation)

데이터베이스에 테이블은 하나만 있는 것이 아니라, 여러 개의 테이블이 있고 이러한 테이블은 서로의 관계가 정의되어 있다. 이 관계를 관계 화살표로 나타낸다.

 

  • 1대1 관계 : 한 명의 고객은 하나의 고객등급이 부여
  • 1대N 관계 : 한 명의 고객은 여러 계좌를 개설할 수 있다.
  • M대N 관계 : 조인이 카테시안 곱이 발생하므로 1대N 또는 N대1로 해소 필요(N:M 관계는 두 테이블을 직접적으로 연결해서 구축하지 않고, 1:N, 1:M 관계를 갖는 테이블로 나눠서 설정한다 ✨)

1-7. 키(Key)

키란 조건에 만족하는 레코드를 찾거나, 순서대로 정렬할 때 다른 레코드들과 구별할 수 있는 기준이 되는 속성이다.

 

유일성이란 하나의 키값으로 레코드(튜플)을 유일하게 식별할 수 있는 성질을 의미한다.

 

최소성이란 키를 구성하는 속성들 중 최소한의 속성만 사용해서 키를 구성하는 성질을 의미한다.

 

  • 기본키 : 유일성과 최소성을 만족하는 키이다.
  • 외래키 : 다른 테이블의 기본키를 그대로 참조하는 값. 개체와의 관계를 식별하는 데 사용한다.(외래키는 중복되어도 상관없다.)
  • 후보키 : 기본키가 될 수 있는 후보들이며 유일성과 최소성을 모두 만족해야 한다.
  • 대체키 : 후보키 중에서 기본키로 선택되지 않고 남은 키이다.
  • 슈퍼키 : 각 레코드를 유일하게 식별할 수 있는 유일성을 갖춘 키이다.