군만두의 IT 공부 일지

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

개발일지/패스트캠퍼스

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

mandus 2024. 2. 14. 19:10

목차

    📅진행기간: 2024년 2월 5일 ~ 2024년 9월 20일

    ⭐요약


    패스트캠퍼스 백엔드 개발 온라인 필수 강의를 듣고 데이터베이스 시스템의 기본 개념과 구조에 대해 알아둘 필요가 있다고 생각하여 정리함. 데이터베이스는 정보처리기사를 취득하는 것 뿐만 아니라, 실제 개발 작업에서도 많은 도움이 될 것 같음. 다양한 블로그와 수업 내용을 종합해서 작성했음. 데이터베이스를 처음 접하는 사람들도 이해하기 쉽게 정리하력 노력함.

    ⭐데이터베이스 시스템 구조


    1. 데이터베이스와 데이터베이스 관리 시스템

    데이터베이스는 구조화된 데이터의 집합로, 정보를 저장하는 테이블, 보고서, 뷰 등으로 구성될 수 있음.

     

    데이터베이스 시스템은 조직에 필요한 정보를 생성하기 위해 데이터를 저장하고 관리하는 시스템임. 데이터베이스 관리 시스템(DBMS, Database Management System)소프트웨어 도구의 집합으로, 사용자와 응용 프로그램이 데이터베이스와 상호 작용할 수 있도록 함. 데이터베이스 관리 시스템는 데이터의 생성, 검색, 업데이트, 관리를 용이하게 하며, 데이터의 무결성, 보안, 백업과 복구 등을 담당함. 통상적으로 데이터베이스 시스템과 데이터베이스 관리 시스템은 구분하지 않음.

     

    DBMS의 예시로 은행 시스템을 들 수 있음. 은행 데이터베이스에는 고객 계좌 정보, 거래 내역, 대출 정보 등이 저장되어 있음. DBMS는 이 데이터에 대한 안전한 접근을 제공하며, 여러 사용자가 동시에 거래를 하더라도 데이터의 일관성과 무결성을 보장함. 예를 들어, 두 고객이 동시에 같은 계좌로부터 금액을 인출하려 할 때, DBMS는 이러한 트랜잭션을 적절히 관리하여 계좌 잔액이 음수가 되지 않도록 함.

    ▲ DBMS의 예

     

    이러한 DBMS의 핵심 요소로는 스키마, 인스턴스, 3단계 데이터베이스 구조가 있음.

     

    2. 데이터베이스 기본 개념

    데이터 사전메타데이터데이터베이스의 효율적인 사용과 관리에 필수적이므로 알고 있어야 함.

     

    • 데이터 사전(Data Dictionary):  데이터베이스에 저장되는 메타 데이터를 위한 데이터베이스 시스템. 데이터베이스의 테이블 구조, 필드 타입, 접근 권한 등에 대한 정보를 포함함.
    • 메타 데이터(Meta data): 데이터에 대한 데이터로, 데이터의 구조, 타입, 특성 등을 설명함. 사진의 메타 데이터에는 촬영 날짜, 시간, 위치, 카메라 설정 등이 포함될 수 있음.

    스키마는 데이터베이스 설계의 청사진과 같으며, 인스턴스는 그 설계를 기반으로 실제 저장된 데이터임. 예를 들어, '도서관' 데이터베이스의 스키마는 도서, 저자, 출판일 등의 필드를 포함할 수 있고, 인스턴스는 이 필드에 따라 저장된 각각의 도서 정보임.

     

    • 스키마: 데이터베이스에 저장되는 데이터의 논리적 구조와 제약조건을 정의한 것. 데이터베이스의 설계도와 같은 역할을 함. 
    • 인스턴스: 스키마에 따라 데이터베이스에 실제로 저장된 값. 데이터베이스의 현재 상태를 반영함.

     

    3. 3단계 데이터베이스 구조

    아래 구조를 이해함으로써 데이터베이스 설계가 어떻게 데이터의 물리적 저장 방식으로부터 독립적일 수 있는지, 그리고 사용자가 데이터를 어떻게 쉽게 접근하고 사용할 수 있는지를 알 수 있음.

     

    • 3단계 데이터베이스 구조: ANSI/SPARC에서 제안한 데이터베이스의 내부 구조를 감추고 일반 사용자가 데이터베이스를 쉽게 이용할 수 있게 하는 구조
      • 내부 스키마: 데이터베이스에 데이터가 어떻게 저장되는지 기술함.
      • 개념 스키마: 일반적인 스키마. 데이터베이스의 전체적인 구조를 개념적으로 표현함. 데이터 테이블 간의 관계를 기술함. 전체 데이터베이스의 설계도 역할을 함.
      • 외부 스키마: 사용자가 보는 뷰(view) 레벨. 각 사용자에게 필요한 정보만 보여주는 단계로, 사용자 인터페이스의 역할을 함.

    ▲ 3단계 데이터베이스 구조

     

    4. 데이터베이스 사용자와 데이터 언어

    데이터베이스 관리 시스템(DBMS) 내에서 데이터베이스 관리자, 최종 사용자, 응용 프로그래머는 중요한 역할을 수행하며, 이들 사이의 상호작용은 데이터 언어를 통해 이루어짐.

     

    • 사용자
      • 데이터베이스 관리자(DBA): 데이터베이스시스템을 운영하고 관리하는 사람. 데이터 정의어와 데이터 제어어를 사용함.
      • 최종 사용자(End user): 데이터베이스에 접근하여 데이터를 조작하는 사람
      • 응용 프로그래머: 데이터베이스 언어를 이용하여 응용프로그램을 작성하는 사람. 주로 데이터 조작어 사용함.
    • 데이터 언어: 사용자가 데이터베이스를 구축하고 이에 접근하기 위해 사용됨.
      • 데이터 정의어(DDL): 데이터베이스의 스키마 구조와 제약조건 등을 정의, 삭제, 수정
      • 데이터 조작어(DML): 데이터의 삽입, 삭제, 수정, 검색
      • 데이터 제어어(DCL): 데이터베이스의 보안, 권한 설정 등 내부적으로 필요한 규칙 등을 정의

     

    5. 데이터베이스의 유형

    관계형 데이터베이스는 구조화된 데이터 관리에 적합하며, SQL을 사용하여 쿼리할 수 있음. 반면, NoSQL 데이터베이스는 비구조화된 대규모 데이터 세트의 저장 및 검색에 유용함. 프로젝트 요구사항에 따라 적합한 데이터베이스 유형을 선택하는 것이 중요함.

     

    유형 특징
    관계형(Relational) 열과 행이 있는 테이블 집합으로 구성됨.
    객체지향형(Object-Oriented) 객체 지향 프로그래밍과 마찬가지로 객체 형태로 표현됨.
    NoSQL 비정형 및 반정형 데이터를 저장하고 조작할 수 있음.
    오픈 소스(Open Source) 소스 코드가 오픈 소스인 시스템으로, SQL 또는 NoSQL 데이터베이스가 있음.

    ⭐후기


    • 이번 공부를 통해 데이터베이스의 기본적인 구조와 다양한 유형에 대해 더 깊이 이해할 수 있었음. 이 지식을 바탕으로 더 복잡한 데이터베이스 설계와 관리를 학습하는 데 도움이 될 것이라고 생각함.
    • 데이터베이스라는 과목은 공부한 적이 있어 어느 정도 사전 지식이 있었음. 복습하는 느낌으로 주요 개념부터 다시 정리할 수 있었음.
    • 이 글이 데이터베이스를 처음 접하는 사람들에게 도움이 되면 좋겠음. 복잡할 수 있는 데이터베이스 시스템의 구조와 언어들을 조금이나마 명확하게 설명하려 노력함.

    ⭐참고자료


    1) Oracle, "데이터베이스란?", https://www.oracle.com/kr/database/what-is-database/

    2) 혼공학습단, "[데이터베이스 이해하기] Database(DB), DBMS, SQL의 개념", 2021.11.05, https://hongong.hanbit.co.kr/데이터베이스-이해하기-databasedb-dbms-sql의-개념/

    3) prinha, "[DB] 3단계 데이터베이스-외부/개념/내부스키마", 2020.12.17, https://prinha.tistory.com/entry/DB-3단계-데이터베이스-시스템-외부개념내부스키마

    4) yoons2owo.lng, "데이터베이스 시스템의 3단계 구조", 2021.03.30, https://yoons2owo.tistory.com/10

     

    이 글은 패스트캠퍼스백엔드 개발 캠프에서 공부한 내용을 작성한 것입니다.

     

    Comments