본문 바로가기
IT

[DB] 데이터베이스 기본 개념

by 유나니나노 2025. 2. 25.
반응형

 

데이터베이스?

  • 전자적으로 저장되고 사용되는 관련된 데이터들의 조직화된 집합
  • 데이터를 체계적으로 관리하고 효율적으로 저장, 검색, 수정할 수 있도록 구성된 시스템

DBMS (Database Management Systems)

  • 데이터베이스를 정의, 생성, 관리하는 소프트웨어 시스템
  • 사용자가 쉽게 다룰 수 있도록 인터페이스 제공
  • 데이터의 일관성과 무결성을 유지하며, 여러 사용자가 동시에 데이터를 활용할 수 있도록 지원
  • 사용자에게 DB를 정의하고 만들고 관리하는 기능을 제공하는 소프트웨어 시스템

 

메타데이터(MetaData)

  • 데이터를 정의하고 설명하는 데이터
  • 데이터의 데이터라고 표현함
  • 데이터의 구조, 형식, 저장 방식, 제약 조건, 보안 설정 등을 포함
  • 카탈로그(Catalog)라고도 불리며, DBMS에서 저장 및 관리됨
  • ex)
    • 테이블 이름: User
    • 컬럼 정보: id(INT, PRIMARY KEY)
    • 인덱스 정보: PRIMARY KEY(id)
    • 접근 권한 정보: admin 사용자만 DELETE 가능

 

데이터베이스 시스템

  • 데이터베이스 + DBMS + 관련 애플리케이션
  • 데이터 저장, 관리, 검색 기능을 하나의 시스템으로 구성

데이터 모델(Data Models)

  • 데이터베이스의 구조를 정의하는 개념적 틀
  • 데이터를 추상화하여 표현하는 방식
  • 데이터를 저장하고 활용하는 방법을 정의하며, 데이터 간의 관계 및 제약 조건도 포함
  • DB에서 읽기, 쓰기, 수정, 삭제와 같은 기본 동작을 포함

종류

개념적 데이터 모델 (Conceptual (or high-level) Data Models)

  • 사용자가 이해하기 쉬운 개념으로 데이터 구조를 표현
  • 비즈니스 요구 사항을 중심으로 설계
  • Entity-Relationship Model(ER-diagram)

 

논리적 데이터 모델 (Logical (or representational) Data Models)

  • 실제 DBMS에서 데이터가 저장될 구조를 정의
  • 특정 DBMS에 종속되지 않음(ex) MySQL, PostgreSQL 등에서 사용 가능)
  • ex)
    • 관계형 데이터 모델(Relational Data Model): 테이블(행, 열)로 구성
    • 객체 데이터 모델(Object Data Model): 객체 지향 개념 적용
    • 객체-관계형 데이터 모델(Object-Relational Data Model): 관계형 모델과 객체지향 개념을 결합

 

물리적 데이터 모델(Physical (or low-level) Data Models)

  • 데이터가 컴퓨터에 파일 형태로 저장되는 방식을 정의
  • 데이터의 포맷, 저장 순서, 접근 경로 등을 포함
  • ex)
    • 엑세스 경로(Access Path): 데이터를 빠르게 찾기 위한 구조(e.g.) 인덱스)

스키마(Schema) & 상태(State)

스키마(Schema)

  • 데이터베이스의 구조를 정의하는 설계도
  • 한 번 정해지면 자주 바뀌지 않음
  • 테이블, 컬럼, 데이터 타입, 관계, 제약 조건 등을 포함
  • ex)
    • CREATE TABLE Users(
    • id INT PRIMARY KEY,
    • name VARCHAR(50),
    • email VARCHAR(100), UNIQUE
    • );

상태(State)

  • 데이터베이스에 저장된 실제 데이터 값
  • 시간이 지나면서 변할 수 있음 -> 상태는 계속 바뀜
  • 특정 순간의 상태를 스냅샷(Snapshot)이라고도 함
  • ex)
    • id  name  email
    • 1  홍길동 hong@gmail.com

3단계 스키마 구조(Three-Schema Architecture)

  • 사용자 관점과 물리적 데이터 저장 방식을 분리하여 유연성 제공
  • 3가지 레벨에서 스키마를 정의하여 변경이 다른 레벨에 영향을 주지 않도록 설계

외부 스키마(External Schemas)

  • 사용자 관점에서 필요한 데이터만 표현
  • 특정 유저나 애플리케이션에 필요한 정보만 제공(보안 목적 포함)

개념 스키마(Conceptual Schmas)

  • 데이터베이스 전체 구조를 기술
  • 데이터의 논리적 관계를 정의(엔티티, 속성, 관계, 제약 조건 등)
  • ex) ER 다이어그램, 관계형 모델(테이블, 키, 관계 등)

내부 스키마(Internal Schmas)

  • 데이터가 물리적으로 저장되는 방식(파일 구조, 저장 포맷, 인덱스 등)
  • 성능 최적화를 위해 저장 방식 변경 가능

각 레벨을 독립시켜서 어느 레벨에서 변화가 상위 레벨에 영향을 주지 않기 위함

대부분의 DBMS가 Three-Level을 완벽하게 혹은 명시적으로 나누지는 않음

데이터가 존재하는 곳은 Internal Level

 

데이터베이스 언어(Database Languages)

  • 데이터베이스를 정의, 조작, 관리하는데 사용되는 언어
  • 1. DDL(Data Definition Language): 데이터베이스 구조 정의
    • 테이블 생성, 변경, 삭제
    • CREATE, ALTER, DROP
  • 2. DML(Data Mainpulation Language): 데이터 조작
    • 추가, 수정, 조회, 삭제
    • INSERT, UPDATE, SELECT, DELETE
  • 3. SDL(Storage Definition Language): 물리적 저장 구조 정의
    • 예전에는 따로 존재했으나 현재는 DB 설정값으로 대체됨
  • 4. VDL(View Definition Language): 외부 스키마(뷰) 정의
    • 일반적으로 DDL과 통합됨
    • CREATE VIEW
  • 오늘날은 대부분 SQL이 모든 기능을 통합
    • SQL (Structured Query Language): 관계형 데이터베이스에서 DDL, DML, VDL 등을 통합한 언어

 

**내용 및 이미지 출처: https://www.youtube.com/watch?v=aL0XXc1yGPs (쉬운 코드)

반응형