데이터베이스의 개념

이강용·2026년 9월 18일

SQLD

목록 보기
1/13

데이터(Data)의 개념

  • 데이터란 현실 세계에서 발생하는 사실이나 현상을 기록한 모든 것
  • 숫자, 문자, 날짜, 사진, 영상 등 형태와 상관없이 "어떤 현상을 기록한 것"

데이터의 유형

유형설명
정형 데이터- 행(Row)과 열(Column) 구조가 명확하게 정의된 데이터
- 일정한 형식을 가지므로 검색·정렬·집계가 빠름
- 관계형 데이터베이스(DBMS)에서 주로 사용
비정형 데이터- 정해진 구조가 없는 데이터
-표 형태로 정리되어 있지 않아 즉시 분석이 어려움
- 사진, 영상, 음성 등 대용량 데이터에 해당
반전형 데이터- 구조는 있으나, 고정된 행·열 형태는 아님
- 태그 또는 키-값 형태로 구성됨
- 웹·모바일 환경에서 데이터 교환에 자주 사용(JSON, XML, HTML)

DB와 DBMS

1) DB(Database)

  • 데이터를 체계적으로 모아 놓은 저장 공간
  • 정리된 상태로 보관된 데이터 그 자체를 의미
  • 논리적으로 연관된 데이터들의 집합
  • 사용자가 직접 조장하는 대상이 아니라, DBMS를 통해 접근
  • 테이블(Table)단위로 구성되며, 행(Row)과 열(Column) 구조를 가짐

2) DBMS(Database Management System)

  • DB를 생성·관리·제어하는 소프트웨어
  • 사용자가 데이터를 조회·사입·수정·삭제할 수 있도록 기능을 제공
  • 다수 사용자의 동시 접근을 처리
  • 데이터 무결성, 보안, 백업 및 복구 기능을 제공
  • SQL을 이용해 DB를 조작할 수 있도록 지원

3) DBMS의 종류

종류설명
계층형 DBMS-데이터를 트리(Tree) 구조로 저장
- 부모-자식(1:N) 관계만 표현 가능
- 구조가 단순하지만 유연성이 낮음
네트워크형 DBMS- 그래프 구조로 데이터 관계 표현
- M:N 관계 표현 가능
- 구조는 유연하나 설계와 관리가 복잡함
관계형 DBMS(RDBMS)- 테이블(table)형태로 데이터 저장
- 행(Row)과 열(Column) 구조 기반
- SQL을 사용하여 데이터를 저장
- 종류: Oracle, MSSQL, MySQL, MAriaDB
객체지향 DBMS- 객체(Object) 단위로 데이터 저장
- 클래스, 상속 등 객체지향 개념 지원
- 특수 분야 시스템에서 활용
NoSQL DBMS- 관계형 모델을 사용하지 않음
-유연한 구조로 대용량 데이터 처리 가능
- 분산 환경 및 확장성에 강점이 있음
- 종류: MongoDB, Redis 등

데이터 모델링

데이터 모델링의 개념

  • 데이터를 저장하고 관리하기 위한 구조를 설계하는 과정
  • 데이터의 구조, 규칙, 관계를 미리 정의
  • 데이터베이스 설계의 기준을 마련
  • 현실 세계의 복잡한 데이터를 일정한 표기법으로 표현
  • 데이터 모델로 업무 흐름과 데이터 사용 관계를 함께 파악

데이터 모델링의 특징

특징설명
추상화(Abstraction)- 현실 세계의 복잡한 데이터를 이해하기 쉬운 구조로 표현
단순화(Simplification)- 불필요한 요소를 제거하여 데이터 구조와 관계를 간결하게 만듦
명확화(Clarification)- 데이터의 구조와 사용 방법을 명확히 정의하여 공통된 이해를 제공

데이터 모델링의 유의점

유의점설명
중복(Duplication)- 동일한 데이터를 여러 곳에 저장하지 않도록 한다.
- 예: 회원 전화번호를 여러 테이블에 저장하면 수정 시 모두 변경해야 한다.
- 정규화(Normalization)를 통해 중복을 최소화한다.
비유연성(Inflexibility)- 업무 변경 시 데이터 구조를 쉽게 수정할 수 있도록 설계한다.
- 프로그램과 데이터 구조를 분리하여 설계한다.
비일관성(Inconsistency)- 동일한 데이터는 항상 값은 값을 유지해야 한다.
- 예: 회원 전화번호가 화면마다 다르면 문제가 발생한다.
- 관계(Relationship)와 속성(Attribute)을 명확하게 정의해야 한다.

데이터 모델링 과정

  1. 요구사항 수집 및 분석
  • 비즈니스 요구사항을 수집하고 분석

  • 수집방법: 사용자 인터뷰, 문서분석, 사용 사례검토

  • 시스템에 필요한 데이터, 데이터 간 관계, 데이터 사용 방식 등을 파악

    • 개념 설계 - ERD
    • 논리 설계 - 정규화, T/I( 트랜잭션 인터페이스)
    • 물리 설계 - 성능, 용량
  1. 개념적 모델링
  • 수집된 요구사항을 바탕으로 개념적 데이터 모델을 생성
  • 이 모델은 데이터의 고수준 구조를 나타낸다.
  • 주요 엔터티와 엔터티 간 관계를 정의
  • 가장 널리 사용되는 도구는 ERD(엔터티-관계 다이어그램)이다.
  • 데이터 모델링 단계 중 추상화 수준이 가장 높다.
  1. 논리적 모델링
  • 개념적 모델을 더욱 세분화하여 논리적 데이터 모델을 개발
  • 특정 데이터베이스 관리 시스템(DBMS)에 정속되지 않은 형태로 생성
  • 주요 작업
    작업설명
    엔터티와 속성 정의- 각 엔터티의 속성을 정의
    - 일반적인 수준에서 데이터 타입을 지정
    관계 설정- 엔터티 간 관계를 명확히 정의
    - 왜래 키(Foreogn key) 개념을 반영
    정규화- 데이터 중복을 최소화하고 논리적 일관성을 확보
  1. 물리적 모델링
  • 논리적 모델을 특정 DBMS에 맞춰서 구현 가능한 형태로 변환

  • 쿼리 성능을 테스트하여 모델의 정확성을 검증

  • 필요한 경우 스키마를 조정하여 성능을 개선

  • 주요 작업

    작업설명
    구체적인 데이터 타입 지정- DBMS에서 지원하는 실제 데이터 타입을 지정
    인덱싱 및 최적화- 검색 속도 향상을 위해 인덱스를 생성
    저장 공간 할당- 데이터 저장 공간을 계산하고 설정
    보안 및 접근 제어 설정- 사용자 권한 및 보안 정책을 적용

스키마 구조 3단계

스키마 정의

  • 데이터베이스의 구조, 제약 조건, 속성, 개체, 관계를 포함한 전반적인 명세를 기술한 것
  • 개체(Entity)는 여러 속성(Attribute)의 집합으로 이루어져 있으며 개체들 사이에는 관계(Relationship)가 존재
  • 스키마에 명세된 정보는 데이터 사전(Data Dictionaray)에 저장

3단계 스키마

  1. 외부 스키마(External Schema) - 사용자 뷰
  • 사용자나 응용 프로그램의 관점에서 데이터베이스의 논리적 구조를 정의
  • 서브 스키마(Sub Schema)라고도 불림
  • 여러 하나의 데이터베이스에 여러 개의 외부 스키마가 존재할 수 있음
  • 여러 응용 프로그램이나 사용자가 하나의 외부 스키마를 공유할 수 있음
  • 데이터베이스 접근 시 SQL 같은 질의어나 C,JAVA 등 프로그래밍 언어를 사용할 수 있음
  • 외부 스키마는 보통 뷰(View)를 통해 구현
  1. 개념 스키마(Conceptual Schema) - 전체적인 뷰
  • 데이터베이스의 전체적인 논리적 구조를 나타냄
  • 전체 조직의 데이터 요구사항을 종합적으로 반영
  • 일반적으로 하나의 데이터베이스에는 하나의 개념 스키마만 존재
  • '스키마'라는 용어만으로도 주로 개념 스키마를 의미
  • 데이터 접근 권한, 보안 정책, 무결성 규칙 등의 명세를 포함
  • 보통 ER 다이어그램을 통해 시각적으로 표현
  1. 내부 스키마(Internal Schema) - 저장 스키마
  • 물리적 저장장치의 관점에서 데이터베이스의 구조를 정의
  • 실제로 데이터가 어떻게 저장 장치에 배열되고 저장되는지, 레코드의 물리적 구조, 표현방식, 순서 등을 명세
  • 데이터 파일의 구조, 인덱스, 접근 경로, 데이터 압축 방식 등이 여기에 속함

데이터 독립성

  1. 논리적 독립성
  • 데이터베이스 논리적 구조를 변경할 수 있는 능력
  • 개념 스키마가 변경되어도 외부 스키마에는 영향을 미치지 않도록 지원
  1. 물리적 독립성
  • 데이터의 물리적 구조를 변경할 수 있는 능력
  • 응용 프로그램이나 논리적 구조에는 영향을 주지 않음
  • 내부 스키마가 변경되어도 외부/개념 스키마가 영향을 받지 않도록 지원
profile
HW + SW = 1

0개의 댓글