정리 노트

DB와 DBMS의 개념 본문

개념 정리/데이터베이스

DB와 DBMS의 개념

꿈만 꾸는 학부생 2023. 6. 27. 23:41
728x90

이 포스트는 국민대학교 소프트웨어학부 '데이터베이스' 강의를 듣고 요약하는 포스트입니다. 원하시는 정보가 없을 수도 있습니다. 이 점 유의 바랍니다. 오류 지적은 매우 환영합니다!


Database(DB)

관련된 데이터들의 집합을 의미하며, 아래 4가지의 개념을 만족해야 합니다.

  1. 공용 데이터(shared data): 여러 사람이 같이 사용할 수 있는 데이터야 합니다.
  2. 통합 데이터(integrated data): 중복된 데이터를 철저히 제거해야 하나, 중복을 의도해서 남겨야 할 때가 있는데 이 때는 최소화 해야 합니다. 그리고 이러한 중복에 대해 알고 있으며 컨트롤할 수 있어야 합니다.
  3. 저장 데이터(stored data): 컴퓨터가 접근할 수 있는 매체에 저장돼야 합니다.
  4. 운영 데이터(operational data): 저장한 데이터는 사용돼야 합니다.

일반적으로 DB는 관계형 DB를 얘기합니다. 관계형 DB는 table의 집합을 의미하고 테이블은 같은 레코드 타입(record type)을 따르는 레코드 인스턴스의(record instance) 집합으로 정의됩니다.

레코드 타입(composite type)-> 고유 번호(Integer) 이름(String) 키(Float)
레코드 인스턴스 1 135 김수한무 172.4
레코드 인스턴스 2 345 두루미 186.1

특성

  1. 실시간 접근성(real-time accessibilities): 언제든지 접근할 수 있어야 합니다.
  2. 계속적인 변화(continuous evolution): DB의 값은 갱신(삽입, 삭제, 수정)될 수 있습니다.
  3. 동시 사용(concurrent sharing): 여러 사용자가 동시에 접근할 수 있습니다.
  4. 내용에 의한 참조(content reference): 주소를 가지고 찾지 않는다. 데이터 값을 가지고 찾습니다.

구성 요소

DB의 구성 요소로 아래의 3가지가 있습니다.

개념적(conceptual) 구성 요소

DB 설계자의 입장으로 현실 세계의 데이터를 파악하고 개체(entity) 인스턴스와 관계(relationship) 인스턴스의 집합으로 표현합니다.

  • 개체 타입(entity type): 데이터의 가장 작은 개념적 단위, 1개 이상의 속성으로 구성
  • 개체 인스턴스: 개체 타입에 맞는 인스턴스
  • 관계 타입(relationship type): 개체 타입들 사이의 의미적 연관을 나타내는 정보

관계에 대해서 2가지로 나누어 볼 수 있습니다. 보통 관계를 얘기할 때는 개체 간의 관계를 얘기합니다.

  • 개체 내 관계(intra-entity relationship): ex. 학생이라는 개체는 고유 번호, 이름, 키 속성들을 가진다.
  • 개체 간 관계(inter-entity relationship) ex. 학생 개체와 과목 개체 사이에 '등록'이라는 관계가 있다.(어느 학생이 어느 과목을 등록한다.)

논리적(logical) 구성 요소

실제로 컴퓨터 안에 저장되는 입장으로 생각하면, 개체 인스턴스와 관계 인스턴스는 테이블의 레코드 인스턴스로 저장됩니다.

물리적(physical) 구성 요소

설계한 테이블들은 파일의 형태로 저장 장치에 저장됩니다. 경우에 따라 하나의 파일에 하나의 테이블을 저장할 수 있고, 하나의 파일에 여러 테이블을 모아서 저장할 수도 있고, 하나의 테이블을 여러 파일에 나눠서 저장할 수도 있습니다. 이는 상황에 따라 선택할 수 있습니다.

 

한 테이블에 있는 수많은 인스턴스에서 특정 인스턴스를 찾아야 하는 상황이 생길 수 있습니다. 이럴 때 빠른 탐색이 중요하기 때문에 테이블에서 자주 검색되는 속성에 인덱스라는 보조적인 정보를 트리 형태로 유지합니다. 인덱스를 사용하면 DB의 전체를 보지 않고 일부만 탐색할 수 있기 때문에 탐색 속도의 향상을 기대할 수 있습니다.

Database Management System(DBMS)

관련 데이터들을 통합해 공용할 수 있도록 DB를 관리하는 운영 프로그램(ex. Oracle, MySQL, ...)으로, 파일 시스템으로 관리할 때 생기는 문제점들을 해결할 수 있습니다.

파일 시스템을 사용해 데이터들을 관리할 때는 응용 프로그램들은 각자에 해당하는 데이터에만 접근할 수 있습니다. 다른 데이터에 접근하려 하면 파일 시스템에서 접근을 막습니다. 하지만 꼭 다른 데이터가 필요할 때가 있다면 해당 파일에서 자신의 해당 데이터에 복사해서 사용해야 했습니다. 이러한 상황에서 파일 시스템에서는 아래의 문제점들을 지니고 있습니다.

  1. 데이터 종속성(data dependency): 프로그램과 데이터 사이에 의존 관계가 있다면, 데이터의 형식이나 접근 방법이 변경될 때 관련된 프로그램도 같이 변경되는 문제점 발생합니다.
  2. 데이터 중복성(data redundancy): 같은 시스템에 같은 내용의 데이터가 저장, 관리되면 데이터의 무결성과 일관성에 문제가 생깁니다.
  • 무결성(integrity): 저장된 데이터들 간의 관계에서 모순이 없도록 정확성을 유지해야 한다.
  • 일관성(consistency): 여러 사용자가 특정 데이터를 동시에 변경할 때 데이터의 일관성을 유지해야 한다.

필수 기능

DBMS는 아래 3가지 기능들은 필수적으로 가지고 있어야 합니다.

  1. 데이터 정의(data definition): 테이블을 정의할 수 있는 기능
  2. 데이터 조작(data manipulation): DB에 접근하고 조작(검색, 갱신)하는 기능
  3. 데이터 제어(data control): 데이터의 무결성, 보안성을 유지하는 기능

 

728x90

'개념 정리 > 데이터베이스' 카테고리의 다른 글

관계 데이터 구조  (0) 2023.08.10
논리적 데이터 모델링  (0) 2023.07.24
ERD(E-R Diagram)  (0) 2023.07.20
데이터베이스의 개념적 설계  (0) 2023.07.20
DBS(Database System)  (0) 2023.07.04