데이터베이스 기초 이론

2025. 4. 12. 11:24·Study/DateBase
반응형

데이터와 데이터베이스 개요

데이터(data): 현실 세계에서 단순히 관찰하거나 측정하여 수집한 사실이나 값

정보(information): 의사 결정에 유용하게 활용할 수 있도록 데이터를 처리한 결과물

정보 처리(information processing): 데이터에서 정보를 추출하는 과정 또는 방법

정보 시스템(information system): 조직 운영에 필요한 데이터를 수집하여 저장해두었다가 필요할 때 유용한 정보를 만들어주는 수단 → 데이터베이스가 정보 시스템 안에서 데이터를 저장하고 있다가 필요할 때 제공하는 역할을 담당

 

데이터베이스(datebase, DB): 특정 조직의 여러 사람이 공유하여 사용할 목적으로 체계화해 통합해서 저장·관리하는 운영 데이터의 집합, 작성된 목록으로써 여러 응용 시스템들의 통합된 정보를 저장하여 운영할 수 있는 공용 데이터들의 묶음

  • 통합 데이터(integrated data): 최소의 중복과 통제 가능한 중복만 허용하는 데이터
  • 공유 데이터(shared data): 특정 조직의 여러 사용자가 함께 소유하고 이용할 수 있는 공용 데이터
  • 저장 데이터(stored data): 컴퓨터가 접근할 수 있는 매체에 저장된 데이터
  • 운영 데이터(operational data): 조직의 주요 기능을 수행하기 위해 지속적으로 꼭 필요한 데이터

 

데이터베이스의 특징

  • 실시간 접근(real-time accessibility): 사용자의 데이터 요구에 실시간으로 응답
  • 계속 변화(continuous evolution): 데이터의 계속적인 삽입, 삭제, 수정을 통해 현재의 정확한 데이터를 유지
  • 동시 공유(concurrent sharing): 서로 다른 데이터의 동시 사용뿐만 아니라 같은 데이터의 동시 사용도 지원
  • 내용 기반 참조(content reference): 데이터가 저장된 주소나 위치가 아닌 내용으로 참조

 

데이터의 분류

  • 정형 데이터(structured data): 구조화된 데이터, 즉 미리 정해진 구조에 따라 저장된 데이터(ex. 엑셀의 스프레드시트, 관계 데이터베이스의 테이블)
  • 반정형 데이터(semi-structured data): 구조에 따라 저장된 데이터지만 데이터 내용 안에 구조에 대한 설명이 함께 존재하는 데이터. 구조를 파악하는 파싱 과정이 필요. 보통 파일 형태로 저장. (ex. HTML, XML, JSON, 웹 로그, 센서 데이터 등)
  • 비정형 데이터(unstructured data): 정해진 구조가 없이 저장된 데이터. (ex. 소셜 데이터의 텍스트, 영상, 이미지, 워드나 PDF 문서와 같은 멀티미디어 데이터)

 

데이터베이스 언어(SQL)

  • 데이터 정의어(DDL, Data Definition Language): 스키마 정의, 수정/삭제 위해 사용
    • DDL 컴파일러: 데이터 디렉터리에 저장된 테이블 템플릿의 집합을 생성
  • 데이터 조작어(DML, Data Manipulation Language): 데이터 삽입,삭제,수정,검색 등의 처리 요구 위해 사용
    • 비절차적 데이터 조작어(nonprocedural DML): 사용자가 어떤 데이터를 원하는지만 설명. =선언적 언어
    • 절차적 데이터 조작어(procedural DML): 사용자가 어떤 데이터를 원하고 그 데이터를 얻기 위해 어떻게 처리해야 하는지도 설명
  • 데이터 제어어(DCL, Data Control Language): 내부적으로 필요한 규칙이나 기법을 정의하기 위해 사용
    • 무결성(정확하고 유효한 데이터만 유지), 보안(비허용 사용자의 데이터 접근 차단, 허용 사용자 권한 부여), 회복(장애 발생해도 데이터 일관성 유지), 동시성 제어(동시 공유 지원) 목적

 

데이터 모델

  • 계층 데이터 모델(hierarchical data model)
  • 네트워크 데이터 모델(network data model)
  • 객체 데이터 모델(object data model)
  • 관계 데이터 모델(relational data model)
  • 객체-관계 데이터 모델(object-relational data model): 관계 데이터 모델과 객체 데이터 모델의 장점 결합 모델


데이터베이스 관리 시스템

파일 시스템

파일 시스템(file system): 데이터를 파일로 관리하기 위해 파일을 생성·삭제·수정·검색하는 기능을 제공하는 소프트웨어

응용 프로그램마다 필요한 데이터를 별도의 파일로 관리

 

문제점:

  • 응용 프로그램이 데이터 파일에 종속적 → 데이터 종속성
    • 응용 프로그램 개발의 어려움
    • 개발하려면 파일에서의 데이터 관리 기능을 모두 포함해야 함
  • 같은 내용의 데이터가 여러 파일에 중복 저장 → 데이터 중복성
    • 저장 공간 낭비
    • 데이터 일관성, 무결성(정확성 보장) 유지 어려움
  • 데이터 파일에 대한 동시 공유, 보안, 회복 기능이 부족
    • 데이터 중복 가능성
    • 수정 중 장애 발생시 회복 불가
    • 파일 단위로 읽기, 쓰기, 실행 권한 부여하여 데이터 접근을 통제

▶ 데이터베이스 관리 시스템의 필요성 대두

 

데이터베이스 관리 시스템

DBMS(DateBase Management System): 조직에 필요한 데이터를 데이터베이스에 통합하여 저장하고 관리하는 시스템

파일 시스템의 문제를 해결하기 위해 제시된 소프트웨어

DBMS를 설치해 데이터를 가진 쪽은 서버(server), 외부에서 데이터 요청하는 쪽은 클라이언트(client)

DBMS 서버가 파일을 다루며 데이터 일관성 유지, 복구, 동시 접근 제어 등의 기능 수행

데이터 중복 줄이고 데이터 표준화, 무결성 유지

 

데이터베이스 관리 시스템의 구성

  • 질의 처리기(query processor)
    • 사용자의 데이터 처리 요구를 해석하여 처리
    • DDL 컴파일러, DML 프리 컴파일러, DML 컴파일러, 런타임 데이터베이스 처리기, 트랜잭션 관리자 등 포함
  • 저장 데이터 관리자(stored data manager)
    • 디스크에 저장된 데이터베이스와 데이터 사전을 관리하고 접근함
    • 버퍼 관리자, 파일 관리자, 권한 무결성 관리자 등 포함

 

데이터베이스 관리 시스템의 주요 기능

  • 정의 기능(Definition): 데이터베이스 구조를 정의하거나 수정(삭제 및 변경)할 수 있다.
  • 조작 기능(manipulation): 데이터를 삽입, 삭제, 수정, 검색하는 연산을 할 수 있다.
  • 제어 기능(Control): DB 사용자를 셍성하고 모니터링하며 접근 제어, 백업과 회복, 동시성 제어 등의 기능을 지원하여 데이터를 항상 정확하고 안전하게 유지할 수 있다.
  • + 추출 기능(Retrieval): 사용자가 조회하는 데이터 혹은 응용 프로그램의 데이터를 추출할 수 있다.

 

파일 시스템 vs 데이터베이스 관리 시스템

구분 파일 시스템 DBMS
데이터 정의 응용 프로그램 DBMS
데이터 저장 파일 시스템 데이터베이스
데이터 접근 방법 응용 프로그램이 파일에 직접 접근 응용 프로그램이 DBMS에 파일 접근 요청
사용 언어 Java, C++, C 등 Java, C++, C / SQL
CPU/주기억장치 사용 적음 많음

 

DBMS 장점

구분 파일 시스템 DBMS
데이터 중복 파일 단위로 저장하므로 중복 가능 데이터 공유하므로 중복 가능성 낮음
데이터 일관성 데이터 중복 저장으로 결여됨 중복 제거로 일관성 유지됨
데이터 독립성 데이터 정의와 프로그램 독립성 유지 불가능 데이터 정의와 프로그램의 독립성 유지 가능
관리 기능 보통 데이터 복구, 보안, 동시성 제어, 데이터 관리 기능 등 수행
프로그램 개발 생산성 나쁨 짧은 시간에 큰 프로그램 개발 가능
기타 장점 별도 소프트웨어 설치 필요X(OS가 지원) 데이터 무결성 유지, 데이터 표준 준수 용이

 

DBMS 단점

  • 고비용: 운영체제와 함께 설치. DBMS 설치 구매 비용 증가, 동시 접속자 허용 수에 따른 제품 가격 증가
  • 백업과 회복 복잡: 방대한 데이터 양으로 구조 복잡, 동시 공유로 장애 원인 파악 어려움, 백업 요구됨
  • 중앙 집중 관리로 위한 취약점 존재: 모든 데이터가 DB에 통합되어 DBMS에 집중

 

DBMS의 발전 과정

 

1세대

네트워크 DBMS: 데이터베이스를 그래프 형태로 구성 ex. IDS(Integrated Data Store)

계층 DBMS: 데이터베이스를 트리 형태로 구성 ex. IMS(Inofrmation Management System)

 

2세대

관계 DBMS: 데이터베이스를 테이블 형태로 구성 ex. 오라클, MS SQL 서버, 액세스, 인포믹스, mySQL

 

3세대

객체지향 DBMS: 객체를 이용해 데이터베이스를 구성 ex. O2, 온투스 , 젬스톤

객체관계 DBMS: 객체 DBMS + 관계 DBMS

 

4세대

Non-SQL, non-relational, DB Not only SQL - Unstructured된 방대한 데이터 저장에 적합

* 고성능의 DB로 Scale up하는 SQL과 달리, Scale out하고 여러 DB 시스템을 추가하는 식의 NoSQL *

 

NoSQL DBMS: 비정형 데이터를 처리하는데 적합하고 확장성이 뛰어남

  • 안정성과 일관성 유지를 위한 복잡한 기능을 포기
  • 유연성; 데이터 구조를 미리 정해두지 않음
  • 확장성; 여러 대의 서버 컴퓨터에 데이터 분산, 처리하는 환경에서 주로 사용
  • ex. MongoDB, HBase, Cassandra, Redis, Neo4j, OrientDB

NewSQL DBMS: 관계 DBMS의 장점 + NoSQL의 확장성 및 유연성 ex. 구글 스패너, VoltDB, NuoDB


데이터베이스 시스템

DBS(DateBase System): 데이터베이스에 데이터를 저장하고, 이를 관리하여 조직에 필요한 정보를 생성해주는 시스템

스키마(schema): 데이터베이스에 저장되는 데이터 구조와 제약조건을 정의한 것

인스턴스(instance): 스키마에 따라 데이터베이스에 실제로 저장된 값

 

데이터베이스 시스템 구성

 

데이터베이스 사용자: 데이터베이스를 이용하기 위해 접근하는 모든 사람

  • 일반 사용자(최종 사용자)
    • 데이터를 다루는(조작-삽입,삭제,수정,검색) 업무를 하는 사람, 프로그램을 이용하여 DB에 접근하려는 일반인
    • 주로 데이터 조작어를 사용
    • 캐주얼 사용자와 초보 사용자로 구분
    • 응용 인터페이스(application interfaces)를 통해 접근
  • 응용 프로그래머
    • 일반 사용자가 사용할 수 있도록 프로그램을 만드는 사람
    • Java, C, JSP 등 프로그래밍 언어와 SQL을 사용해 일반 사용자를 위한 UI와 데이터를 관리하는 응용 로직 개발
    • 주로 데이터 조작어를 사용
  • SQL 사용자
    • SQL을 사용하여 업무를 처리하는 IT 부서 담당자
    • 응용 프로그램으로 구현되어 있지 않은 업무를 SQL을 사용해 처리
    • query tools를 사용
  • DBA(DataBase Administrator, 데이터베이스 관리자)
    • 데이터베이스 운영 조직의 DB 시스템 총괄자
    • 주로 데이터 정의어와 데이터 제어어 이용
    • 데이터 설계, 구현, 유지보수의 전 과정 담당
      • DB 구성 요소 선정, 물리적 저장 구조와 접근 방법, 보안 및 접근 권한 정책 결정
      • DB 스키마; 무결성 유지를 위한 제약조건, 백업 및 회복 기법 정의
      • 시스템 DB 관리, 시스템 성능 감시 및 분석
      • DB 재구성, 데이터 전체 파악 및 관리, 이동 및 복사 등
    •  administration tools 사용

 

Two-tier, three-tier architecture

 

3단계 데이터베이스 구조

미국 표준화 기관인 ANSI/SPARC에서 제안

데이터베이스를 쉽게 이해하고 이용할 수 있도록 하나의 데이터베이스를 관점에 따라 세 단계로 나눈 것

각 단계별로 다른 추상화(abstraction) 제공; 내부 단계에서 외부 단계로 갈수록 추상화 레벨이 높아짐

데이터베이스를 3단계 구조로 나누고 단계별로 스키마를 유지하며 스키마 사이의 대응 관계를 정의하는 궁극적 목적

→ 데이터 독립성의 실현

 

① 외부 단계(external level): 개별 사용자 관점에서 DB를 이해하고 표현하는 단계

  • DB 하나에 외부 스키마가 여러 개 존재할 수 있음
  • 외부 스키마: 외부 단계에서 사용자에게 필요한 DB를 정의한 것. 각 사용자가 생각하는 DB의 모습(논리적 구조)이 사용자마다 다름. (=서브 스키마)

② 개념 단계(conceptual level): 조직 전체의 관점에서 DB를 이해하고 표현하는 단계

  • DB 하나에 개념 스키마 하나만 존재
  • 개념 스키마: 개념 단계에서 DB 전체의 논리적 구조를 정의한 것. 조직 전체의 관점에서 생각하는 DB의 모습.
    • 전체 DB에 어떤 데이터가 저장되는지, 데이터 간 어떤 관계와 제약조건이 존재하는지 정의
    • 데이터에 대한 보안 정책이나 접근 권한에 대한 정의도 포함

③ 내부 단계(internal level): 물리적인 저장 장치의 관점에서 DB를 이해하고 표현하는 단계

  • DB 하나에 내부 스키마가 하나만 존재
  • 내부 스키마: 전체 DB가 저장 장치에 실제로 저장되는 방법을 정의한 것.
    • 레코드 구조, 필드 크기, 레코드 접근 경로 등 물리적 저장 구조를 정의

 

3단계 데이터베이스 구조의 사상(매핑)

 

3단계 데이터베이스 구조의 사상(매핑): 스키마 사이의 대응 관계

외부/개념 사상: 외부 스키마와 개념 스키마의 대응 관계. 응용 인터페이스(application interface)

개념/내부 사상: 개념 스키마와 내부 스키마의 대응 관계. 저장 인터페이스(storage interface)

 

미리 정의된 사상 정보를 이용하여 사용자가 원하는 데이터에 접근할 수 있다.

 

데이터 독립성(data independency): 하위 스키마를 변경하더라도 상위 스키마가 영향을 받지 않는 특성

  • 논리적 데이터 독립성: 개념 스키마가 변경되면 관련된 외부/개념 사상만 정확하게 수정하면 되고 외부 스키마 영향X
  • 물리적 데이터 독립성: 내부 스키마가 변경되면 관련된 개념/내부 사상만 정확하게 수정하면 되고 개념 스키마 영향X

데이터 사전(data dictionary): DB에 저장되는 데이터에 관한 정보, 즉 메타 데이터(데이터에 대한 데이터)를 유지하는 시스템 데이터베이스 (=시스템 카탈로그)

데이터를 정확하고 효율적으로 이용하기 위해 참고해야 하는 스키마, 사상 정보, 다양한 제약조건 등을 저장

데이터베이스 관리 시스템이 스스로 생성하고 유지함

일반 사용자도 접근 가능하지만 저장 내용 검색만 할 수 있음

 

데이터 디렉터리(data directory): 데이터 사전에 있는 데이터에 실제로 접근하는 데 필요한 위치 정보를 저장하는 시스템 데이터베이스. 일반 사용자 접근 비허용. 메타 데이터를 포함.

 

사용자 데이터베이스(user database): 사용자가 실제로 이용하는 데이터가 저장되어 있는 일반 데이터베이스

 

 

 

 

출처: 데이터베이스 개론 2판 김연희 저, MySQL로 배우는 데이터베이스 개론과 실습 박우창 외2
반응형

'Study > DateBase' 카테고리의 다른 글

데이터베이스 언어 SQL  (2) 2025.05.25
데이터베이스 모델과 연산  (0) 2025.04.12
'Study/DateBase' 카테고리의 다른 글
  • 데이터베이스 언어 SQL
  • 데이터베이스 모델과 연산
harchiving
harchiving
Computer Science Engineering, undergraduate student
  • harchiving
    harchiving
    harchiving
  • 전체
    오늘
    어제
    • 분류 전체보기 (14)
      • Study (14)
        • JavaScript (6)
        • OS (5)
        • DateBase (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    SQL
    자바스크립트
    모던자바스크립트딥다이브
    operatingsystemconcepts
    FE
    데이터모델
    데이터베이스
    운영체제
    OS
    Datebase
    DATABASE
    javascript
    CS
    js
    OperatingSystem
    프로그래밍
    DB
    데이터베이스개론
    공룡책
    프론트엔드
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.3
harchiving
데이터베이스 기초 이론
상단으로

티스토리툴바