C++/개인메모

데이터베이스

K.DJ 2023. 5. 30. 10:33

데이터베이스는 조직의 운영에 필요한 데이터들을 여러 사용자들이 공유하고 접근할 수 있도록 만든 데이터의 집합이다.

데이터를 조직적으로 통합하여 중복을 최소화하고 데이터들을 구조화하여 저장한다.

  1. 통합 데이터(Intergrated Data)
    • 데이터 베이스는 여러 개의 연관된 데이터를 하나로 통합하여 저장, 관리한다. 이러한 방법으로 데이터의 중복을 최소화하고 일관성을 유지시킨다.
  2. 저장 데이터(Stored Data)
    • 데이터베이스는 디스크, 메모리같은 컴퓨터가 접근할 수 있는 저장 매체에 데이터를 저장한다.
  3. 운영 데이터(Operational Data)
    • 데이터베이스는 조직의 운영에 필요한 데이터를 포함한다.
  4. 공용 데이터(Shared Data)
    • 데이터베이스는 여러 사용자 또는 응용 프로그램이 동시에 데이터에 접근하고 사용할 수 있도록 한다.

 

데이터베이스의 장점

  • 데이터 중복 최소화
  • 데이터 공유
  • 일관성, 무결성, 보안성 유지
  • 최신 데이터 유지
  • 데이터의 표준화 가능
  • 데이터의 논리적, 물리적 독립성
  • 용이한 데이터 접근
  • 데이터 저장 공간 절약

 

데이터베이스의 단점

  • 데이터베이스 전문가 필요
  • 많은 비용 부담
  • 데이터의 백업과 복구가 어려움
  • 시스템의 복잡함
  • 저장 매체의 과부하 발생 우려

데이터베이스의 특징

 

  1. 실시간 접근성(Real-Time Accessibility)
    • 사용자의 요청에 실시간으로 데이터를 서비스해 주어야 한다.
  2. 지속적인 변화(Continuous Evolution)
    • 데이터베이스는 데이터의 추가, 수정, 삭제등의 작업들로 항상 최신의 데이터를 유지하여야 한다.
  3. 동시 공용(Concurrent Sharing)
    • 데이터베이스는 여러 사용자들이 동시에 데이터에 접근할 수 있어야 한다.
    • 동시 제어 매커니즘을 통해 충돌이나 데이터의 일관성 문제를 처리할 필요가 있다.
  4. 내용에 의한 참조(Content Reference)
    • 데이터베이스는 데이터의 내용에 기반하여 데이터를 탐색해야한다.
    • 사용자는 데이터의 실제 물리적 위치나 저장 방식에 대해 알 필요가 없다.

스키마(Schema)

데이터베이스의 개체(Entity), 속성(Attribute), 관계(Relationship)를 정의하여 데이터베이스의 구조와 조건을 정의한 것.

  • 외부 스키마: 각 사용자들이 데이터베이스에 접근할 때 사용하는 데이터의 논리적 구조를 정의한다. 하나의 데이터베이스에는 여러개의 외부 스키마가 있을 수 있다. 전체 데이터베이스의 일부분이라고 볼 수 있으며 이러한 점 때문에 서브 스키마라고도 한다.
  • 개념 스키마: 데이터베이스 전체의 논리적 구조를 정의한다. 모든 사용자들이 필요로 하는 전체 데이터 베이스로 하나만 존재한다. 데이터 베이스 관리자(DBA)에 의해서 설계 및 구성된다.
  • 내부 스키마: 데이터베이스가 물리적으로 저장되는 구조를 정의한다. 레코드의 물리적 구조 및 순서가 여기에 해당된다.

 

데이터베이스의 구조


테이블(Table)

  • Relation(=Table): 정보를 구분하여 저장하는 기본 단위. 데이터의 집합.
  • Tuple(=Record): 관계된 데이터들의 묶음. 테이블의 행
  • Attribute(=Field): 개체에 대해 저장하고 싶은 항목(속성). 테이블의 열. 애트리뷰트의 수를 릴레이션의 차수라고 한다.
  • Domain: 릴레이션에 포함된 각각의 속성들이 가질 수 있는 값들의 집합. 학년이란 애트리뷰트는 1~6 사이의 값만 저장할 수 있도록 하는 개념.

키(Key)

릴레이션에서 다른 튜플들과 구별할 수 있는 유일한 기준이 되는 속성. 유일성과 최소성의 특성을 갖고있다.

  • 유일성: 하나의 키 값으로 단 하나의 튜플을 식별할 수 있어야 함.
  • 최소성: 키를 구성하는 애트리뷰트 중 하나를 제거하면 유일한 식별이 불가능하도록 최소한의 애트리뷰트로 구성되어야 함.

 

  1. 후보키(Candidate Key): 유일성과 최소성을 둘 다 만족하는 키의 집합
  2. 기본키(Primary Key): 후보키중 데이터베이스에서 사용할 키로 선택된 키.
  3. 대체키(Alternate Key): 후보키에서 기본키를 제외한 나머지 키.
  4. 슈퍼키(Super Key): 유일성을 만족하는 키의 집합.
    • 고객의 데이터베이스에 ID(중복 불가능)와 이름(동명이인 가능)이라는 애트리뷰트가 있다면 (ID+이름)이라는 키는 유일성은 만족하지만 최소성은 만족하지 않는다. 이러한 경우 슈퍼키에는 포함되지만 후보키에는 포함되지 않는다고 볼 수 있다.
  5. 외래키(Foreign Key): 어떤 릴레이션의 애트리뷰트 혹은 애트리뷰트의 집합이 다른 릴레이션의 기본 키가 되는 키.

외래키의 예