Tech Log

[DataBase] 데이터베이스의 구성 본문

Computer Science/DataBase

[DataBase] 데이터베이스의 구성

yuhee kim 2023. 2. 13. 19:20

데이터베이스(DB, DataBase)

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

 

데이터베이스의 특성

  • 실시간 접근성 : 질의에 대한 실시간 처리 및 응답
  • 계속적인 변화 : 갱신(update), 삽입(insert), 삭제(delete)
  • 동시 공유 : 여러 사용자가 동시에 사용
  • 내용에 의한 참조 : 데이터의 위치나 주소가 아닌 내용에 따라 참조

 

DBMS(DataBase Management System)

 

출처 : 면접을 위한 CS 전공지식 노트(2022)

 

데이터베이스를 제어, 관리하는 통합 시스템을 DBMS이라고 한다.

응용 프로그램과 데이터 사이의 중재자로서 모든 응용 프로그램(사용자)들이 데이터베이스를 공유할 수 있도록 관리해주는 소프트웨어 시스템이다.

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

 

데이터베이스 위에 DBMS가 있고 그 위에 응용 프로그램이 있다.

이러한 구조를 기반으로 데이터를 주고 받는다.

예를 들어 MySQL이 DBMS이고 Node.js가 응용 프로그램에 속한다.

 

엔터티(Entity)

출처 : 면접을 위한 CS 전공지식 노트(2022)

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

정보의 단위가 된다.

하나 이상의 속성(attribute)으로 구성되어 있다.

 

위 그림에서는 회원이 엔터티가 된다.

 

엔터티의 속성은 서비스의 요구 사항에 맞춰 속성이 정해진다.

예를 들어 주소라는 속성이 서비스의 요구 사항과 무관하다면 이 속성은 사라진다.

 

약한 엔터티와 강한 엔터티

엔터티에는 약한 엔터티와 강한 엔터티가 있다.

예를 들어 A 엔터티가 B 엔터티에 종속적이며, 혼자서는 존재하지 못한다면

A는 약한 엔터티, B는 강한 엔터티다.

방은 약한 엔터티고, 건물은 강한 엔터티다.

방은 건물 없이는 존재할 수 없기 때문이다.

 

릴레이션(relation)

출처 : 면접을 위한 CS 전공지식 노트(2022)

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

엔터티에 관한 데이터를 데이터베이스는 릴레이션 하나에 담아 관리한다.

 

위 그림에서 엔터티가 데이터베이스에서 관리될 때, 릴레이션으로 변화된다.

릴레이션은 관계형 데이터베이스에서는 테이블,

NoSQL 데이터베이스에서는 컬렉션 이라고 한다.

 

릴레이션은 테이블과 유사한 개념이다.

다만 테이블은 다음과 같은 릴레이션의 특징을 만족하지 않아도 된다.

 

릴레이션의 특징

  • 릴레이션은 튜플들의 집합이다.
  • 한 릴레이션에는 똑같은 튜플이 포함될 수 없으므로 릴레이션에 포함된 튜플들은 모두 다르다.
  • 한 릴레이션에서 튜플들은 순서가 없다.
  • 튜플들의 삽입, 삭제 등으로 릴레이션은 시간에 따라 변한다.
  • 릴레이션 스키마를 구성하는 속성들 간의 순서는 중요하지 않다.
  • 속성의 유일한 식별을 위해 속성의 명칭은 유일해야 하지만, 속성을 구성하는 값은 동일한 값이 있을 수 있다.
  • 릴레이션을 구성하는 튜플을 유일하게 식별하기 위해 속성들의 부분 집합을 키(Key)로 설정한다.
  • 애트리뷰트 값은 원자 값이다; 애트리뷰트 값은 논리적으로 분해가 불가능하다.

*튜플(Tuple) : 릴레이션을 구성하는 각각의 행(Row)

*스키마(Schema) : 데이터베이스의 구조와 제약조건에 관한 전반적인 명세를 기술한 것

 

 테이블과 컬렉션

출처 : 면접을 위한 CS 전공지식 노트(2022)

관계형 데이터베이스의 경우 구조는 레코드 - 테이블 - 데이터베이스

NoSQL 데이터베이스의 경우 구조는 도큐먼트 - 컬렉션 - 데이터베이스 로 이루어져 있다.

그림처럼 레코드가 쌓여서 테이블이 되고 테이블이 쌓여 데이터베이스가 된다.

 

속성(attribute)

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

서비스의 요구 사항을 기반으로 관리해야 할 필요가 있는 속성만 엔터티의 속성이 된다.

 

도메인(Domain)

출처 : 면접을 위한 CS 전공지식 노트(2022)

릴레이션에 포함된 각각의 속성들이 가질 수 있는 값의 집합.

예를 들어 성별이라는 속성의 도메인은 {남, 여} 가 된다.

 

그림에서는 회원이라는 릴레이션에 이름, 아이디, 주소, 전화번호, 성별이라는 속성, {남, 여} 라는 도메인을 나타내고 있다.

 

필드와 레코드

출처 : 면접을 위한 CS 전공지식 노트(2022)

위 그림에서 필드는 name, ID, addres, phonenumber 이다.

레코드는 테이블에 쌓이는 행(row) 단위의 데이터를 말한다.

 

필드는 파일 시스템에서 사용되는 용어이기도 하다. 필드를 속성(attribute)로 말하기도 한다.

레코드도 파일 시스템에서 사용되며 튜플과 동일한 말이다.

 

 

참조
  • 주홍철, 면접을 위한 CS 전공지식 노트, 길벗(2022)
  • 이석호, 데이터베이스론, 정익사(2010)
  • 김정준, 시나공 정보처리기사 실기, 길벗(2022)
Comments