SQL(1) 데이터 베이스 & RDB 개념

hyeeun·2025년 8월 1일

bootcamp

목록 보기
18/22
post-thumbnail

1. 데이터베이스

  • 데이터베이스 : 체계적 데이터 모음

  • 데이터 : 저장이나 처리에 효율적인 형태로 변환된 정보

  • 증가하는 데이터 사용량

    • 배달의 민족 국내 주문 건수 6억 8천만건(2020년 기준)
    • 구독자 2억 4000여만명이 1000억시간 넷플릭스 시청(2023 1~6월)
    • 전세계 모든 데이터의 약 90%는 2015년 이후 생산된 것 (IBM)
  • 데이터 센터의 성장

    • 네이버 제2데이터 센터에 6500억 투자(2020)
    • 카카오 : 제1데이터센터와 제2데이터센터에 1.5조 투자(2022)
    • 전 세계 데이터센터 시장 2022년부터 2026년까지 연평균 20% 이상 성장 예상

      데이터를 저장하고 잘 관리하여 활용할 수 있는 기술이 중요해짐

  • 기존의 데이터 저장 방식

    • 파일(File) 이용
      • 어디에서나 쉽게 사용가능
        • 데이터를 구조적으로 관리하기 어려움
    • 스프레드시트(Spreadsheet) 이용
      • 테이블의 열과 행을 사용해 데이터를 구조적으로 관리 가능
        • 일반적으로 100만행까지만 저장 가능
        • 단순히 파일이나 링크 소유여부에 따른 단순한 접근 권한 기능 제공
        • 데이터가 여러시트에 분산되어 있다면 변경에 누락이 생기거나 추가 문제가 발생할 수 있음(정확성 부족)
  • 데이터를 저장하고 조작하기 위하여 데이터베이스가 필요해짐


2. RDB (Relational Database)

  • 데이터 간에 관계가 있는 데이터 항목들의 모음

  • 테이블 기반 구조

    • 데이터를 테이블 단위로 관리
      • 행(Row), 열(Column)의 정보를 구조화하는 방식
    • 서로 관련된 데이터 포인터를 저장하고 이에 대한 액세스를 제공
      • 여러 테이블에 분산되어 있는 데이터를 테이블간의 관계를 이용하여 다양한 형식으로 조회 가능
  • RDBMS의 저장 구조 (Table)

(1) RDB의 주요 키워드

  • Table : 데이터를 기록하는 곳

  • Field(Column, Attribute) : 각 필드에는 고유한 데이터 형식(타입)이 지정됨

  • Record(Row, Tuple) : 각 레코드에는 구체적인 데이터 값이 저장됨

  • Database(Schema) : 테이블의 집합

  • Primary Key(기본키, PK)

    • 각 레코드의 고유값
    • RDBMS에서 레코드의 식별자로 활용
  • Foreign Key(외래키, FK)

    • 테이블의 필드 중에 다른 테이블의 레코드를 식별할 수 있는 키
    • 다른 테이블의 기본 키를 참조
    • 각 레코드에서 서로 다른 테이블 간의 관계를 만드는데 사용

(2) RDBMS (Relational Database Management System)

  • DBMS : 데이터베이스를 관리하는 소프트웨어 프로그램

  • RDBMS : 관계형 데이터베이스를 관리하는 소프트웨어 프로그램

  • 데이터 저장 및 관리를 용이하게 하는 시스템

  • 데이터베이스와 사용자간의 인터페이스 역할

  • 사용자가 데이터 구성, 업데이트, 모니터링, 백업, 복구 등을 할 수 있도록 도움

  • 서비스 종류

    • SQLite
    • MySQL
    • PostgreSQL
    • MarinaDB 등

3. Database 모델링

  • 데이터베이스 시스템을 구축하기 위한 과정으로 데이터의 구조, 관계, 특성을 결정하는 작업

  • 효율성, 일관성, 무결성을 보장하기 위해 진행하는 주요한 단계

  • 무결성 제약조건

    • 데이터베이스의 데이터 일관성을 유지하고 부적절한 데이터의 삽입, 수정, 삭제를 방지하여데이터의 신뢰성을 보장하는 조건

    • 개체 무결성(Entity Integrity) : 기본키의 값이 중복되지 않고, NULL값이 허용되지 않는 것을 보장하는 제약조건

    • 참조 무결성(Referntial Integrity): 외래키와 기본키간의 관계를 유지하고, 무효한 참조를 방지하는 제약조건

      • 외래키값은 참조하는 테이블의 기본키값을 참조하거나 NULL값을 가질수 있다.존재하지 않는 기본키는 참조할 수 없다.
    • 도메인 무결성(Domain Integruty): 각 속성의 값이 정의된 도메인에 속하는 것을 보장하는 제약조건

      • 도메인은 속성이 가질 수 있는 값의 범위, 형식, 제약조건등을 정의해야 한다.
      • 속성값이 도메인에 속하지 않는 경우에는 삽입 또는 수정을 제한하거나 오류를 발생시킨다.
      • 예시: 나이 속성은 (0~150)의 정수로 제약
  • 데이터베이스 모델링 과정

  1. 요구사항 수집 및 분석
  2. 개념적 설계
  3. 논리적 설계
  4. 물리적 설계

(1) 요구사항 수집 및 분석

  • 어떤 종류의 데이터를 정리하는지 정보 수집하고 어떤 작업을 수행해야 하는지 파악하는 단계
    • 객체(Entity): 업무에 필요하고 유용한 정보를 저장하는 집합적인 것 (예: 고객, 제품, 사원, 부서)
    • 속성(Attribute): 관리하고자 하는 것의 의미를 더 이상 작은 단위로 분리되지 않은 데이터 단위(예시: 고객명, 고객전화번호, 상품명, 상품 가격)
    • 관계(Relationship): 객체 사이의 논리적인 연관성을 의미하는 것(예시: 고객-상품, 부서사원)

(2) 개념적 설계

  • 요구사항을 기반으로 데이터베이스의 개념적 모델을 설계
  • 개체(Entity)와 관계(Relationship)를 식별하고, 개체간의 관계를 정의하여 ERD( Entity Relationship Diagram)을 작성

(3) 논리적 설계

  • 개념적 설계를 기반으로 데이터베이스의 논리적 구조를 설계
  • 테이블, 칼럼(속성), 제약 조건 등과 같은 구체적인 데이터베이스 개체를 정의
  • 정규화를 수행하여 데이터 중복을 최소화하고 일관성을 유지

(4) 물리적 설계

  • 논리적 설계를 기반으로 데이터베이스를 실제 저장 및 운영할 수 있는 형태로 변환하는 단계

  • 테이블의 인덱스, 파티션, 클러스터링 등 물리적 구조와 접근방식을 결정

  • 보안, 백업 및 복구, 성능 최적화 등을 고려하여 데이터베이스를 설정

(5) 정규화(Normalization)

  • 중복을 최소화하고 데이터의 일관성 및 효율성을 유지하기 위해 데이터를 구조화하는 과정

  • 정규화의 목적

    • 불필요한 데이터를 제거하여 중복 최소화
    • 이상현상(Anomaly)을 방지
    • 데이터베이스 구조를 변경할 때 다시 구조화해야 하는 영역을 최소화
  • 이상현상(Anomaly) : 데이터베이스를 잘못 설계했을 때 발생할 수 있는 불필요한 데이터 중복으로 인한 부작용 (삽입/갱신/삭제 이상)

  • 정규화 규칙 : 일반적으로 3NF(Normalization Form)만 되면 정규화가 되었다고 표현

    • 1NF: 각 속성이 원자적(Atomic)이며, 각 행이 유일한 식별자를 가져야 한다.
    • 2NF: PK의 일부만으로 다른 속성을 결정할 수 있으면, 이를 다른 테이블로 분리하여 종속관계가 완전함수종속 관계여야 한다.
    • 3NF: A → B이고, B → C가 성립할 때, A → C가 자동으로 성립하는 관계인 이행적 함수종속이 없어야 한다
profile
hyeeun-techlog

0개의 댓글