[DB/SQL] DBMS와 MSSQL 기본 이해

songeunm·2025년 6월 4일

DB & SQL

목록 보기
17/27

🎱 DBMS 개념 및 종류

⚽️ 개념

  • 데이터를 체계적으로 저장하고 관리하며, 필요할 때 쉽게 꺼내 쓸 수 있도록 도와주는 소프트웨어
  • 주요 역할
    • 데이터 저장
    • 데이터 조회 (SELECT)
    • 데이터 수정 (INSERT, UPDATE, DELETE)
    • 데이터 무결성 유지 (제약 조건)
    • 동시성 제어 - 여러 사용자가 동시에 데이터를 다뤄도 문제 없도록
    • 보안 관리 (사용자 권한)
    • 백업 및 복구

⚽️ 종류

  • RDBMS
    • 관계형 DBMS
    • 테이블 형태로 데이터 저장, 테이블 간 관계 저장
    • SQL을 통해 조작
    • 대표 제품
      • MySQL (Oracle)
      • MSSQL (Microsoft)
      • PostgreSQL (오픈소스)
      • Oracle DB (Oracle)
      • MariaDB (MySQL에서 파생)
  • NoSQL
    • 비관계형 DBMS
    • 문서, 키-값, 그래프 등 테이블이 아닌 형태로 데이터 저장
    • 정형화된 스키마 없거나 유연
    • 대용량, 실시간 처리에 적합
    • SQL 말고 각자 고유한 문법 사용
    • 대표 제품
      • MongoDB (문서 기반)
      • Redis (키-값 기반)
      • Cassandra (컬럼 기반)
      • Neo4j (그래프 기반)

🎱 RDBMS의 특징

⚽️ 주요 특징

  • 테이블 기반
    데이터를 행/열로 구성된 테이블에 저장

  • 스키마 기반
    테이블의 구조가 고정되어 명확

  • SQL 사용
    SQL을 사용해 데이터 조작

  • PK / FK
    테이블 간 관계를 연결

  • 무결성 보장
    제약 조건을 통해 데이터 무결성 유지

  • 트랜잭션 보장
    여러 작업을 하나의 단위로 묶어 처리 (ACID)

  • 보안 및 권한 관리
    사용자 단위로 권한을 부여 → 데이터 접근 제어

⚽️ ACID 속성

  • Atomicity (원자성)
    모든 작업은 전부 성공 or 전부 실패

  • Consistency (일관성)
    데이터는 항상 유효한(정합성을 만족하는) 상태로 유지

  • Isolation (고립성)
    트랜잭션끼리 서로 영향을 주지 않음

  • Durability (지속성)
    커밋된 트랜잭션은 장애가 나도 보존

🎱 MSSQL의 기본 구조

⚽️ MSSQL

  • Microsoft SQL Server
    • 마이크로소프트에서 만든 RDBMS
    • 윈도우 환경에서 많이 사용

⚽️ 특징

  • SSMS
    • 대부분의 관리 작업을 GUI 기반으로 수행 가능
  • 자동 파라미터화
    • 쿼리 실행시 자동으로 리터럴을 변수처럼 처리해서 변수에 다른 값이 들어와도 “같은 구조”로 인식되게 만드는 기법
    • Plan Cache 재사용 시도 → 성능 향상
  • 강력한 실행계획 관리 기능
    • 실행계획 캐시, 강제 지정 가능
    • 실행계획 시각화 지원 (SSMS)
  • 쿼리 힌트와 테이블 힌트 사용 자유도
    • 옵티마이저의 동작을 명시적으로 제어 가능
  • DB 파일이 단일 단위로 통합 관리
    • .mdf (데이터), .ldf (로그) 파일로 구성
    • 단일 DB 안에 스키마, 사용자, 오브젝트 모두 포함
    • 논리적 DB 단위로 통째로 이동/백업 가능
    • MySQL의 경우 테이블기준 파일 구조
  • CLR 통합
    • Common Language Runtime Integration
    • SQL Server 내부에서 C# 등의 .NET(MS의 애플리케이션 개발 플랫폼) 코드 실행 가능
    • SQL로 못하는 복잡한 로직, 고성능 연산 가능
    • 재사용성, 유닛테스트 가능
    • 설정, 배포 복잡
    • 트러블슈팅 어려움
    • 외부 의존성 증가
  • Row-Level 보안, Always Encrypted 등 고급 보안 옵션
    • 테이블/컬럼 단위 암호화, 권한 분리, 마스킹 기능 내장
    • 금융, 의료 시스템에서 강점

⚽️ 주요 구성 요소

  • SQL Server
    실제 데이터가 저장되고 처리되는 서버 프로그램
  • SSMS
    GUI 기반의 관리 도구
  • Database
    여러 개의 Table, SP, View, Trigger 등이 들어있는 단위
  • Table
    실제 데이터가 저장되는 구조
  • Stored Procedure / Function
    반복 작업을 코드로 저장한 것
  • View
    복잡한 SELECT 결과를 가상의 테이블처럼 정의한 것
  • Transaction Log
    변경 이력을 기록하는 로그 파일 (복구용)

⚽️ 쿼리 실행 흐름

  • 쿼리 작성
  • SQL Server에 전송
  • 파싱
    문법 오류 확인
  • 바인딩
    테이블/컬럼/함수 등 실재하는지 확인
    타입 확인 (연산 가능 여부)
  • 최적화
    실행 계획 중 가장 효율적인 경로 선택
  • 실행 계획 수립
    실행 계획은 캐싱되어 나중에 재사용됨
  • 실제 실행
  • 결과 반환
profile
데굴데굴 구르는 개발자 지망생

0개의 댓글