dh_0e

[Database] Database 소개 (1장) 본문

Database

[Database] Database 소개 (1장)

dh_0e 2025. 3. 14. 00:01

데이터베이스(DB, database)

  • 서로 연관 있는 데이터의 모임을 의미
  • 컴퓨터에 데이터베이스가 저장되어 있으면, 이를 관리하는 소프트웨어가 필요
  • 이를 데이터베이스 관리 시스템(DBMS, database management sys-tem)이라 함
  • DB, DBMS, DBS(database system, = DB + DBMS) 용어가 상호 대체적으로 사용됨

 

DBMSs의 advantages

  • Data abstraction - 데이터 추상화 제공
  • Easy accessing data - 데이터 접근의 용의성 제공
  • Controlled data redundancy and inconsistency - 데이터 중복 및 불일치성에 대한 제어 용이
    • 불일치성 - 데이터 간에 값이 서로 일치하지 않은 현상
    • file system 사용 시 데이터 중복이 발생하기 쉬우며, 이는 데이터 불일치를 유발함
  • Integrity constraint(IC) enforcement - 데이터 무결성 제약조건(IC) 유지 용이
    • ex) 학생의 학점 데이터는 0.0 ~ 4.5 범위 내의 실수 값이어야 한다
  • Atomicty of updates - 갱신 원자성 제공
    • ex) 계좌이체의 transaction 과정 (all or nothing property)
  • Concurrent access by multiple users - 다수 사용자의 동시성 제어
    • Uncontrolled concurrent는 불일치성(inconsistencies)을 유발함
  • Data security - 데이터 보호
  • Data backup and recovery - 데이터 백업 및 회복  

 

File Systems

  • 일반적인 운영체제의 기능 중 하나
  • 데이터베이스 관리 시스템은 운영체제가 관리하는 사용자 프로세스 중 하나
  • 이론적으론 이를 사용하여 데이터베이스 관리가 가능하나 여러가지 제약사항으로 효율적이지 않음 

 

Instances and Schemas

Schema

  • db의 physical(물리적) or logical(논리적) 구조를 의미
  • 프로그래밍에서 변수의 type과 analogous(유사함)
  • 인스턴스에 비해 시간의 흐름에 따라 변경이 적음

 

Instance

  • db에 저장되는 실제 content
  • 프로그래밍에서 변수의 값과 analougous

 

Abstradction(추상화)

  • 어떤 사물에 대한 세세한 instance(r개체)로부터 중요한 개념을 분리하는 프로세스를 의미
  • 중요하지 않은 사항을 제거하여 문제 핵심 속성에 집중하게 해줌
  • 추상화 레벨에 따라 사용자에게 보이는 상세한 정도가 달라짐
  • 사물을 보는 높이에 따라 description(수준)에 차이가 나므로, 추상화를 언급할 땐 레벨도 함께 고려해야 함

 

Levels of Data Abstraction

  • 추상화를 위한 관점(high, level)은 Physical level, Logical level, View level로 나뉨
  • 이 3가지 추상화가 성립되면 3단계 스키마 구조가 생성되며, 일명 ANSI/SPARC 구조라고도 함

Three-schema Architecture

Physical level

  • 실제 데이터 record(column)가 어떻게 물질적으로 저장되어 있는 지를 추상화
  • 데이터 필드 길이, 필드 간의 간격 길이, 레코드의 전체 길이 등이 포함됨

 

Logical level

  • 저장된 데이터 간의 관계를 추상화
  • 개체, 관계 및 제약조건 등의 데이터 객체 정보나 이들의 효율적 관리를 위한 필수 정보인 접근 권한, 보안 정책, 무결성 규칙에 대한 명세

논리적 관점 추상화

 

View level

  • 특정 사용자가 관심 있는 일부 db만을 추상화
  • ex) 위 logical level에서의 추상화에서 salary 필드가 개인 정보 보안상의 이유로 숨김 
  • 동일 logical level에서의 추상화에 대하여 다수 개의 서로 다른 view level 추상화가 가능
  • 뷰 스키마는 최종 사용자가 보는 데이터베이스 스키마이며, 사용자는 이를 기반으로 db 응용 및 개발

 

 

데이터 Independence(독립성)

  • 데이터 독립성은 physical data 독립성과 logical data 독립성으로 구성됨
  • 물질적 데이터 독립성 - 논리적 스키마 변화 없이 물리적 스키마를 변화할 수 있는 기능을 의미
  • 논리적 데이터 독립성 - View 스키마 변화 없이 논리적 스키마를 변화할 수 있는 기능

 

 

데이터 모델

  • 데이터, 데이터 relationships(관계성), 데이터 semantics(의미), 데이터 constraints and so on(제약 조건) 등을 기술하는 specification(명세) 또는 conceptual tool(개념적인 도구)

 

Relational data model (관계형 데이터 모델)

  • 우리가 일반적으로 인지하고 있는 테이블 형식으로 RDBMS라 주로 불림

Object-relational data model (객체 관계형 데이터 모델)

  • 관계형 데이터 모델을 기반으로 객체지향 요소를 부분적으로 도입한 것
  • 현재 상용 데이터베이스 시장에서 가장 흔하게 볼 수 있는 인기 있는 모델

Object-oriented data model (객체 지향 데이터 모델)

출처: https://chessire.tistory.com/entry/

Entity-Relationship data model (개체-관계 데이터 모델) - for database design

XML data model (for semi-structured data)

  • 관계형 데이터 모델과 비관계형 모델의 사이
  • 웹 관련 기술로서 국제 표준 기술임
  • 문서 마크업 언어로 개발되었으며, 문서 교환을 위한 표준 기술로 널리 사용되는 중

Hierarchical data model (계층 데이터 모델), Network data model (네트워크 데이터 모델)

현대 사회에서는 더 이상 사용되지 않으며, 이를 지원하는 구 시스템을 legacy system이라 함 

 

 

Entity-Relationship data model

  • 가장 널리 사용되는 데이터베이스 설계 방식

ER Diagram Example

 

 

데이터베이스 언어

  • SQL, QUEL, relational algebra(관계 대수), query-by-example(예제 질의), LDL 등이 있음
  • SQL이 현대 가장 많이 사용되는 중

 

DBMS(Database Mangement System) 구성 요소

  • 개념적 관점에서는 크게 두 가지 구성요소를 가짐
  1. Query processor(질의어 처리기) - 질의어 처리, 권한 부여 및 철회, 인증 등의 기능 담당
  2. Storage manager(저장 관리자) - 데이터 사전 관리, 데이터 저장, 검색, 파일 구조, 색인, 트랜잭션 관리를 담당

 

Data dictionary

  • Meta data(data about data)를 저장하는 장소
  • Database schema, Integrity constraints(제약 조건), Authorization(접근 권한), Statistical data(통계적 데이터)를 관리

 

Transaction Management (트랜잭션 관리)

  • Concurrency control manager(동시성 제어 기능) - interaction among the concurrent transactions(동시 거래 간 상호작용)를 관리함(to ensure the consistency(일관성) of the DB)
  • Recovery manager(복구 기능) - despite of failures(실패에도 불구하고), DB가 in a consistent state (일관된, 정확한 상태)를 유지하도록 보장해 줌

 

DB Users

  • Naive users(일반 사용자) - DB 응용을 이용하여 데이터를 접근/관리하며 주어진 화면 형식에 의거하여 주어진 절차대로 DBMS를 사용
  • Application programmers
  • Database designers - 스키마 구성
  • Database analysts - 데이터 분석 도구를 가지고 DB를 분석
  • Database administrator(DBA, 관리자)
    • DB에 대한모든 권한을 가진 super user
    • 스키마 definition, storage structure(저장 공간) 및 access method definition(접근 방법 정의), 스키마 및 physical organization modification(물리 구조 변경), DB Authorization to access(접근 권한) 관리, Specifying integrity constraints(무결성 제약 조건 지정), 시스템 성능 관리 등을 담당 

 

DBMS 구조

  • 데이터 위치에 의거하여, Centralized(중앙 집중식), Distributed(분산), 중간 형태를 보이는 Client-Server(고객/서버) DB로 구분 가능
  • 컴퓨터 병렬 처리 기술을 적용한 Parallel(병렬) DBMS도 있음

 

DB의 역사

  • 1950/60 - DB 이전 단계인 file system 사용
  • 1970 - 네트워크 데이터 모델, 계층 데이터 모델(legacy systems) 사용, E.Codd가 관계형 데이터 모델 제안 
  • 1980 초반 - Oracle이 관계형 모델을 지원하는 상용 DBMS 출시
  • 1980 중후반 - 객체지향 DBMS 개념이 정립
  • 1990 중후반 - 데이터 웨어하우스 및 마이닝 연구가 활발했으며, 객체 관계형 데이터 모델 정립
  • 2000 - XML 기술 출현
  • 2010 - 빅 데이터 시대로 Not only SQL(NOSQL), BigTable, Hadoop, pNuts, Amazon 등 여러 DBMS 출현