2025/09/02 DataBase -1

김기훈·2025년 9월 2일

TIL

목록 보기
11/194

데이터베이스(DB)?

  • 효율적인 데이터 관리
  • 데이터를 통합하여 관리
  • 데이터 누락 및 중복 방지
  • 여러 사용자가 실시간으로 데이터 사용이 가능

데이터 모델

계층형 데이터 모델(Hierarchical DataModel)

  • 정보를 디렉터리 형태로 분류하기 때문에, 복잡한 구조의 묘사는 불가능하다.
    • 구조: 데이터를 트리구조로 표현,각 레코드는 하나의 상위 레코드에 대한 하위 레코드를 가짐
    • 특징: 상위 레코드와 하위 레코드 간의 부모-자식 관계가 정의, 주로 트리구조의 계층적인 데인터에 유용

네트워크형 데이터 모델(Network DataModel)

  • 계층형 데이터베이스의 단점을 보완하기 위해 자료간 연결(link)을 망(Network)형태로 자유롭게 연결할 수 있도록 개선했지만 자료구조 변경시 디스크에 저장된 데이터의 물리적 구조를 재구성해야하는 번거로움 존재
    • 구조: 계층형 데이터 모델과 유사, 각 레코드는 부모 레코드를 가질 수 있습니다.
    • 특징: 각 레코드 간의 관계를 명시적으로 정의, 주로 복잡한 데이터 관계를 다루는데 사용

관계형 데이터 모델(Relational DataModel)

  • 구조: 테이블 형태로 데이터를 저장, 각 테이블은 레코드(행)과 필트(열)로 구성
  • 특징: 표 형태로 데이터를 저장하고 SQL을 사용하여 데이터를 조작, RDBMS에서 지원

객체 지향형 데이터 모델(Object-Oriented DataModel)

  • 구조: 현실 세계의 개체(Enity)와 그들 간의 상호작용을 모델링, 클래스와 객체의 개념 기반
  • 특징: 데이터와 해당 동작을 함께 캡슐화, 객체간의 관계를 강조,
    • 소프트웨어 개발에서 객체지향 프로그래밍 언어에서 주로 사용

정리

  • 관계형 데이터 베이스가 중요하게 활용되는 이유
    • 이해하기 쉬운 2차원 표 형태로 데이터를 저장
    • 매우 복잡한 자료의 데이터를 정교하게 조합가능

DBMS (Database Management System)

DBMS는 데이터베이스 관리 시스템으로, 데이터의 저장, 검색, 업데이트, 관리를 위한 소프트웨어

  • DBMS 기능

    • 대용량 데이터의 효율적인 처리와 접근 가능
    • 데이터의 무결성, 보안, 백업 및 복구 기능을 제공
  • DBMS 특징(ACID)

    • 데이터 독립성 : 물리적, 논리적 독립성
    • 데이터 무결성 : 데이터의 유효성 검사를 통해 데이터 무결성을 구현
    • 데이터 보안성 : 계정관리, 권한 설정
    • 데이터 일관성 : 데이터의 불일치성을 배체

주요 DBMS 종류 / 특징

1. Oracle Database

  • 용도: 대형 기업이나 복잡한 애플리케이션에 적합하며, 고성능, 대규모의 트랜잭션 처리와 데이터 웨어하우징에 자주 사용됩니다.
  • 특징:
    • 강력한 트랜잭션 관리, 높은 데이터 무결성 및 보안 기능을 제공합니다.
    • 확장성이 뛰어나며, 다양한 운영 체제에서 실행됩니다.
    • PL/SQL이라는 Oracle 전용 프로그래밍 언어를 사용합니다.
    • 비싼 라이선스 비용이 있지만, 대규모 엔터프라이즈 환경에서의 신뢰성과 성능은 매우 높습니다.

2. MySQL

  • 용도: 주로 웹 애플리케이션 및 소규모에서 중간 규모의 프로젝트에 사용됩니다.
  • 특징:
    • 오픈 소스이며, 사용이 쉬워 소규모 애플리케이션에 인기가 많습니다.
    • PHP와의 통합이 용이하여 웹 개발에 자주 쓰입니다. (LEMP Stack)
    • 비교적 가벼우면서도 성능이 좋으며, 다양한 운영 체제를 지원합니다.
    • 대규모 데이터베이스와 고급 기능이 필요한 환경에는 다소 제한적일 수 있습니다.

RDBMS(Relational DBMS)

RDBMS(관계형 데이터베이스 관리 시스템)는 표 형태로 데이터를 구조화하고 관리하는 데이터베이스
데이터를 정리하고 설명하기 위해 속성과 데이터 값 간의 관계를 찾아내어 이를 테이블 형태로 나타냄

  • 데이터는 속성(Attribute)과 해당 속성에 대응하는 데이터 값(Attribute Value)으로 구성
  • 테이블은 열(Column)과 행(Row)으로 이뤄져 있다.
    • 열(Column) = Attribite = field : 데이터의 속성
    • 행(Row) = Record = Tuple : 해당 속성에 대응하는 데이터 값을 포함
    • Database → Table → Column, Row

  • 스키마(Schema)
    • 데이터베이스의 구조를 정의하는 것
    • 스키마는 테이블, 행, 열, 인덱스, 관계 등의 데이터베이스 구조를 명시
  • SQL(Structured Query Language)
    • 데이터베이스에서 데이터를 관리하기 위해 사용되는 표준 프로그래밍 언어
    • SQL을 사용하여 데이터베이스에 질의, 업데이트, 삭제 등의 작업을 수행 가능
  • 인덱스(Index)
    • 데이터베이스에서 데이터 검색 속도를 빠르게 하기 위해 사용되는 객체
    • 인덱스는 특정 열에 대한 포인터를 포함하여 데이터 검색 시간을 단축
  • 데이터베이스 관리 시스템(DBMS)
    • 데이터베이스를 생성하고 관리하는 소프트웨어
    • 예를 들어, MySQL, PostgreSQL, Oracle, Microsoft SQL Server 등
  • 트랜잭션(Transaction)
    • 데이터베이스의 상태를 변화시키는 하나의 작업 단위
    • 트랜잭션은 데이터 무결성을 유지하는 데 중요한 역할

데이터베이스 스키마(Schema)

  • 데이터베이스에서 데이터의 구조와 구성을 정의하는 청사진 또는 설계도
    • 데이터베이스 테이블, 필드, 관계 등을 어떻게 구성할지를 명세한 것
    • 데이터베이스 시스템이 데이터를 저장, 관리, 조작하는 방식을 결정
  • 논리적 스키마
    • 테이블 간의 관계, 각 테이블의 속성과 데이터 타입, 제약 조건 등
  • 물리적 스키마
    • 데이터의 실제 저장과 관련이 있는 부분으로, 디스크에 저장하는 방식 등
  • 스키마가 있다면 동일한 구조의 데이터베이스를 쉽게 만들 수 있습니다.
    • 데이터베이스의 백업과는 달리 스키마는 데이터의 구조만을 정의
    • 데이터 구조를 동일하게 만드는 데 사용

단점

  • 성능: 대용량 데이터 처리나 복잡한 쿼리에 대한 성능이 다른 모델에 비해 낮을 수 있다.
  • 확장 어려움: 수직적 확장이 한계가 있고, 수평적 확장은 복잡하고 비용이 많이 들 수 있다.
  • 유연성 부족: 스키마 변경이 어려워서 요구사항 변경에 대응하기 어려울 수 있다.
  • 복잡한 조인: 많은 테이블 간의 조인은 성능에 부정적인 영향을 미칠 수 있다.
  • 고비용: 서버 하드웨어 및 라이선스 비용이 상대적으로 높을 수 있다.

RDBMS는 데이터의 구조화와 안정성 측면에서 강력하며, 일반적인 업무 응용에 적합합니다. 그러나 성능이나 유연성 등의 측면에서 고려해야 할 부분도 있습니다.


  • 데이터베이스(Database): 구조화된 데이터의 집합입니다. 데이터베이스는 데이터를 저장, 검색, 수정, 삭제할 수 있게 해주는 시스템입니다.

  • 테이블(Table): 데이터베이스 내에서 데이터가 저장되는 장소입니다. 데이터를 표 형태로 저장하는 구조

  • 행(Row)/레코드(Record): 테이블 내의 개별 데이터 항목을 나타냅니다. 각 행은 하나의 데이터 항목 또는 개체를 나타냅니다.

  • 열(Column)/필드(Field): 테이블 내의 특정 카테고리 또는 데이터 유형을 나타냅니다.

  • 기본 키(Primary Key): 테이블 내의 각 행을 고유하게 식별하는 열입니다. 기본 키 값은 유일해야 하며, 각 행마다 다른 값을 가져야 합니다.

  • 외래 키(Foreign Key): 다른 테이블의 기본 키를 참조하는 열입니다. 외래 키는 두 테이블 간의 관계를 설정하는 데 사용됩니다.

ex

ID이름나이전공
1김철수20컴퓨터공학
2이영희21경영학
3박민수22수학
  • 데이터 베이스 : 학교 전체의 데이터 창고
  • 테이블 : 학생 목록 표
  • 행 : 한명 학생 정보 → 김철수 | 20 | 컴퓨터공학
  • 열 : 이름, 나이 같은 속성 → “이름”, “나이”, “전공”이 열(Column)
  • 키 : 학생을 구분하는 고유 번호 → 같은 이름이 있어도 ID가 다르면 다른 사람으로 구분

대표적인 RDBMS

  • MySQL:
    • 개방 소스 RDBMS로서 가장 인기 있는 데이터베이스 중 하나입니다.
    • 다양한 환경에서 사용, 웹 애플리케이션부터 대규모 엔터프라이즈 시스템까지 다양한 용도로 활용
  • PostgreSQL:
    • 객체 관계형 데이터베이스 시스템으로, 확장 가능하고 풍부한 기능을 제공합니다.
    • ACID 호환성 및 다양한 데이터 유형을 지원하여 고급 데이터베이스 요구에 적합합니다.
profile
안녕하세요.

0개의 댓글