CS/DB

데이터베이스 & 관계형 데이터베이스 기본 개념 - 1

happenundo 2024. 3. 7. 00:02
728x90
파일시스템과 데이터베이스

 

 

  • 데이터란, 현실 세계에서 단순히 관찰하거나 측정하여 수집한 사실(fact)이나 값(value)이며, 한국어로 자료라고 할 수 있다.
  • 이러한 데이터를 아무렇게나 저장하기보다는, 필요할 때 잘 사용할 수 있도록 효율적으로 저장하는 것이 필요하다.
  • 파일 시스템과 데이터베이스는 컴퓨터 분야에서 데이터를 저장하고 관리하는 데 사용되는 기술이다.

파일시스템과 데이터베이스의 공통점

  • 데이터를 저장한다.
  • 데이터에 접근할 수 있는 방법을 제공한다.

파일시스템

  • 데이터를 저장한다.
    • 파일 시스템은 디렉토리(폴더)로 구성되어 있으며, 해당 디렉토리 안에 다른 디렉토리나 개별 파일이 들어 있을 수 있다.
    • 하지만 데이터베이스는 테이블로 구성되며, 각 테이블은 행과 열로 이루어진 구조화된 데이터를 가진다.
  • 데이터에 접근할 수 있는 방법을 제공한다.
    • 파일 시스템은 파일 이름을 사용해 데이터에 직접 접근한다.
    • 하지만, 데이터베이스는 SQL이라는 언어를 사용해 테이블 안 데이터에 접근한다.
  • 데이터를 관리하는 방법
    • 파일 시스템은 보통 데이터의 일관성과 보안을 유지하기 위해 추가적인 작업이 필요하다.
    • 하지만, 데이터베이스는 DBMS(데이터베이스 관리 시스템)을 사용해 일관성, 보안, 백업 등의 작업을 자동으로 처리할 수 있다.
  • 다중 사용자 
    • 파일 시스템은 보통 단일 사용자 혹은 제한된 사용자 그룹에 대한 접근만 허용한다.
    • 하지만, 데이터베이스는 다수의 사용자가 동시에 데이터에 접근할 수 있도록 해준다. 이를 위해 데이터의 일관성과 동시성을 보장하기 위한 특별한 기능을 요구한다.
      • 예) 트랜잭션 관리, 트랜잭션 격리수준, 락 등

 


데이터베이스의 특징

그래서 데이터베이스가 뭔데?

  • 데이터베이스란 여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합이다. (출처: 위키피디아)

데이터베이스

공유 데이터

  • 특정 조직의 여러 사용자가 함께 소유하고 이용할 수 있어야 한다.

통합 데이터

  • 데이터베이스는 똑같은 데이터가 여러개 존재하는 중복(data redundancy)을 허용하지 않는다.
  • 하지만 효율성을 위해, 가끔은 중복은 의도적으로 허용하기도 한다. 예) 분산 시스템
  • 여기서 통합 데이터란, 데이터의 중복을 최소화하되, 통제가 가능한 중복만을 허용한다는 뜻으로 이해하자.

저장 데이터

  • 데이터베이스의 데이터는 주로 컴퓨터가 처리하므로, 데이터베이스를 컴퓨터를 통해 접근할 수 있는 매체에 저장해야 한다.

운영 데이터

  • 조직을 운영하기 위해 필요하고, 지속적으로 유지해야 한다.

 


 

DBMS

DBMS에 대해 본격적으로 알아보기 전에, 파일 시스템과 데이터베이스의 차이점에 대해 간단히 정리하고 넘어가 보자.

파일 시스템의 단점

  • 같은 내용의 데이터가 여러 파일에 중복 저장된다. (데이터 중복성 - data redundancy)
    • 데이터가 중복 저장되면, 저장 공간도 낭비되고, 데이터 일관성(data consistency)과 데이터 무결성(data integrity)을 유지하기 어려워진다.
  • 응용 프로그램이 데이터 파일에 종속적이다.
    • 응용 프로그램이 파일에 직접 접근해, 데이터를 처리해야 한다. 그러므로 파일의 구성 방식에 따라 응용 프로그램도 작성될 수밖에 없다.
    • 여기서 만약에, 파일 구조가 변경된다면? 응용 프로그램도 그에 맞게 변경해야 한다. (데이터 종속성 - data dependency)
  • 데이터 파일에 대한 동시 공유, 보안, 회복 기능이 부족하다.
    • 일반적으로 파일 시스템에서는 응용 프로그램 하나가 사용 중인 파일을 다른 응용 프로그램이 접근하여 사용하지 못하도록 한다.
      • 예) 사용하고 있는 파일을 제거하려고 하면, 안 되는 경험(안 겪어본 사람 없다고 장담)
    • 파일 시스템에서는 파일 단위로 read, write, execute 권한을 주는데, 이는 파일 자체에만 주어지는 권한이며, 파일 안 더 작은 단위(파일 안의 아무 실행 기능)에 대한 접근 통제와 권한 부여 기능이 필요하다.
    • 파일 시스템에서 응용 프로그램이 파일을 사용하는 중 장애가 발생하면 일관된 상태로 데이터 회복이 어렵다.
      • Ctrl + S 안 눌렀다가 낭패한 경험(안 겪어본 사람 없다고 장담)

 

정리하자면, 파일 시스템이 가진 문제들의 근본적인 원인은 데이터 중복성데이터 종속성이라고 할 수 있다.

이러한 문제를 해결하기 위해, DBMS가 등장한다.

 

DBMS(DataBase Management System)

  • 파일 시스템이 가진 데이터 중복과 데이터 종속 문제를 해결하기 위해 제공된 소프트웨어
  • DBMS는 조직에 필요한 데이터를 데이터베이스에 통합하여 저장하고, 이에 대한 관리를 집중적으로 담당한다.
  • DBMS는 응용 프로그램을 대신해 데이터베이스에 존재하는 데이터의 검색, 수정, 삭제, 삽입 등을 가능하게 하고, 모든 응용 프로그램이 데이터베이스를 공유할 수 있게 한다.

 

DBMS의 주요 기능

  • 정의 기능: 데이터베이스 구조를 정의하거나, 이미 정의된 구조를 수정한다.
    • SQL 언어 중 , DDL이 이에 해당한다. 예) CREATE, ALTER, DROP
  • 조작 기능: 데이터를 삽입, 삭제, 수정, 검색한다.
    • DML 예) SELECT, INSERT, UPDATE, DELETE
  • 제어 기능: 데이터베이스를 항상 정확하고 안전하게 유지한다.
    • DCL 예) GRANT, REVOKE

 

DBMS의 장점

  • 데이터 중복 통제
  • 데이터 독립성 확보
  • 데이터 동시 공유 가능
  • 데이터 보안 향상
  • 데이터 무결성 유지
  • 응용 프로그램이 데이터에 종속적 X

 


스키마

스키마(Schema)

  • 데이터베이스 전체 또는 일부의 논리적인 구조를 표현하는 것
  • 데이터베이스의 구조와 제약조건을 정의한 것
    • 데이터 개체(Entity)
    • 데이터 개체의 특성(Attribute)
    • 개체 사이 존재하는 관계(Relationship)
    • 제약 조건
  • 쉽게 말해, DB 내에 데이터가 어떤 구조로 저장되는가를 나타내는 데이터베이스 구조를 스키마라고 한다.

 

 

3단계 데이터베이스 구조

  • 왜 뜬금없이 3단계로 구성해 놨을까?
  • 만약, 일반 사용자가 데이터베이스의 복잡한 내부 구조와 동작 방식을 모두 이해하고 있어야 한다면 일반 사용자는 데이터베이스의 여러 장점에도 불구하고 사용하려고 하지 않을 것이다.
  • 이러한 데이터베이스의 복잡한 내부 구조를 감추고(추상화) 일반 사용자가 데이터베이스를 더 쉽게 이해할 수 있도록 제안된 구조이다.
  • 보통 스키마는 3단계로 구성되어 있다.

스키마 3단계

 

 

1. 외부 스키마

  • 개별 사용자 또는 응용 프로그램 관점의 스키마.
  • 개별 사용자는 하나의 데이터베이스를 조직 내에서 함께 사용하지만, 각 사용자는 데이터베이스 전체의 관심이 있는 것은 아니다.
  • 필요한 데이터 내용이 개별 사용자마다 다를 수 있다. -> 여러 개가 존재할 수 있다.
  • 일반 사용자는 보통 SQL 같은 질의어를 통해 DB를 쉽게 사용할 수 있다.

2. 개념 스키마

  • 조직 전체 관점의 스키마
  • 데이터베이스에 실제로 어떤 데이터가 저장되어 있으며, 데이터 간 관계는 어떻게 되어있는지 정의하는 스키마
  • 데이터베이스의 전체적인 논리 구조를 표현한다.
  • 모든 사용자가 생각하는 데이터베이스의 모습을 하나로 합친 모습이다. -> 한 개만 존재한다.
    • 각 사용자는 데이터베이스의 개념 스키마의 일부분을 사용한다.
    • 즉, 외부 스키마는 개념 스키마를 기초로 하여 사용자의 이용 목적에 맞게 만들어진다.
  • 개체 간의 관계, 제약조건, 데이터베이스 접근 권한, 보안 및 무결성 규칙에 관한 명세 정의
  • 보통 단순히 스키마라고 하면, 개념 스키마를 의미한다.

3. 내부 스키마

  • 물리적인 저장 장치와 DB 설계자 관점의 스키마.
  • 개념 스키마를 물리적 저장 장치에 구현하는 방법을 정의한다.
  • 전체 데이터베이스가 저장 장치에 실제로 저장되는 방법을 정의한다.
  • 내부 레코드의 물리적 순서, 레코드를 구성하는 필드 크기, 인덱스 유/무 등

 

외부/개념/내부 스키마

  • 이러한 3단계 구조를 통해, 데이터베이스 시스템은 데이터베이스 구조와 내부 동작을 추상화하여, 사용자가 데이터에 더 편리하게 접근하고 관리할 수 있도록 한다.
  • 데이터의 일관성과 무결성 유지가 가능하다.
  • 대부분의 데이터베이스 시스템에서 적용되고 있다.

 


 

데이터 독립성

 

 

데이터베이스의 구조와 데이터의 내용이 서로 영향을 미치지 않는 것을 의미한다.

  • 위에서 알아봤던 3단계 스키마는 서로 유기적으로 대응관계를 이루며 이루어져 있다.
    • 사용자가 외부 스키마를 통해 원하는 정보를 얻으려면 내부 스키마에 따라 저장된 데이터베이스에 접근할 수 있어야 하므로
  • 이런 스키마 사이의 대응관계를 사상(mapping)이라고 한다.

데이터 독립성

논리적 데이터 독립성

  • 개념 스키마가 변경되어도, 외부 스키마가 영향을 받지 않는 것
  • 전체 데이터베이스의 논리적인 부분이 변경되어도 관련된 외부/개념 사상 정보만 적절히 수정해주면, 직접적으로 관련 없는 사용자를 위한 외부 스키마는 변경할 필요가 없다.
  • 데이터베이스의 구조를 변경할 때, 사용자나 응용 프로그램에게 영향을 미치지 않고 변경할 수 있는 유연성을 제공한다.

물리적 데이터 독립성

  • 내부 스키마가 변경되어도,개념 스키마가 영향을 받지 않는 것
  • 데이터베이스의 저장 구조가 변경되어도 관련된 개념/내부 사상 정보만 적절히 수정해주면, 직접적으로 관련 없는 데이터베이스의 논리적 구조는 영향 받지 않는다.
  • 데이터베이스를 다른 저장 장치나 시스템으로 이전하거나 물리적 구성을 변경할 때 유연성을 제공한다.

 

데이터베이스 독립성

  • 데이터베이스 스키마를 3단계 구조로 나누고, 단계별로 스키마를 유지하며 스키마 사이의 대응 관계를 정의해, 스키마 사이 관계를 독립적으로 유지하는 궁극적인 목적은 데이터 독립성(data independency)를 실현하기 위해서이다.
  • 스키마의 분리를 통해 데이터베이스의 구조와 데이터의 내용이 서로 독립적으로 관리되므로, 데이터베이스 시스템의 복잡성이 감소한다.
  • 이는 데이터베이스의 유지보수 및 관리를 효율적으로 수행할 수 있게 해준다.

참고

 

TTA정보통신용어사전

한국정보통신기술협회(TTA)는 정보통신 기술 발전과 타 분야와의 기술 융합에 따라 무수히 생성되는 정보통신용어를 해설하고 표준화하여, 전문가뿐만 아니라 비전문가들도 올바르게 활용할 수

terms.tta.or.kr

 

데이터베이스 개론 : 네이버 지식백과

참조 무결성 제약조건, MS SQL 서버를 이용한 데이터베이스 활용, 갱신 이상, 병행 수행의 문제, 빅 데이터, 테이블의 생성, 멀티미디어 데이터베이스의 발전 과정, 데이터 웨어

terms.naver.com

 

[데이터베이스] 데이터 독립성과 스키마

데이터 독립성이란 데이터베이스의 구조와 데이터의 내용이 서로 영향을 미치지 않는 것을 의미합니다. 데이터 독립성은 논리적 데이터 독립성과 물리적 데이터 독립성으로 나눌 수 있습니다.

velog.io

 

728x90