Database, DBMS, SQL 기초 정리

배고픈귤·2025년 6월 27일

Backend

목록 보기
4/11

데이터베이스는 데이터를 효율적으로 저장, 관리, 검색할 수 있는 구조화된 저장소이다.

데이터베이스를 사용하면 대량의 데이터를 체계적으로 관리하고 접근할 수 있다.

DBMS(Database Mangement System)

DBMS는 데이터베이스를 운영하고 관리하는 소프트웨어이다.
DBMS는 구조에 따라 여러 종류로 나뉘며, 일반적으로 관계형(RDBMS)비관계형(NoSQL)으로 구분한다.

DBMS의 종류

  • 계층형 DBMS: 트리의 형식으로 데이터를 모으고 관리한다. 검색할 때 root부터 아래로 탐색한다.

  • 망형 DBMS: 계층형 모델에 다대다 관계를 추가한 구조로, 하위 노드 간에도 연결이 가능하다.

  • 객체지향형 DBMS: 데이터를 객체 형식으로 저장하고 관리한다.

  • 객체관계형 DBMS: 관계형 + 객체지향형 DBMS의 특징을 혼합한 DBMS이다.

  • 관계형 DBMS(RDBMS): Relational DBMS로 많은 DBMS가 이에 속한다. 데이터는 테이블이라는 단위로 구성되며 테이블은 행과 열로 이뤄진다.
    관계형 DBMS는 SQL(Structured Query Language)를 사용하여 데이터를 관리한다.

  • 비관계형 DBMS(NOSQL): 비정형, 반정형 데이터를 처리하는 데 최적화된 DB모델이다. 대용량 데이터의 빠른 읽기/쓰기, 유연한 스키마가 필요할 경우 사용한다.

SQL(Structured Query Language)

SQL은 데이터를 관리하고 조작할 때 사용하는 언어이다.

SQL의 구성 요소

  1. DDL(Data Definition Language)
    데이터베이스의 구조를 정의한다.
    • CREATE: db 객체 생성
    • ALTER: db 구조 변경
    • DROP: 객체 삭제
    • TRUNCATE: 테이블 전체 삭제(구조는 유지)
  2. DML(Data Mangement Language)
    데이터를 조작한다.
    • SELECT: 데이터 조회
    • INSERT: 데이터 삽입
    • UPDATE: 기존 데이터 수정
  3. DCL(Data Control Language)
    데이터의 접근 권한을 관리한다.
    • GRANT: 권한 부여
    • REVOKE: 권한 회수
  4. TCL(Transaction Control Language)
    트랜잭션을 제어한다.
    • COMMIT: 트랜잭션 내의 모든 작업을 영구 반영
    • ROLLBACK: 트랜잭션 내의 작업을 취소하고 이전 상태로 복원
    • SAVEPOINT: 트랜잭션의 중간 지점을 점검하여 이후 ROLLBACK 시 부분 취소가 가능하다.

SQL 제약 조건

SQL은 데이터의 무결성(정확성, 일관성)을 보장하기 위해 사용한다.
테이블에 잘못된 값이 들어가지 않도록 제약을 거는 장치라 생각하면 된다.

  • NOT NULL: 반드시 값이 존재해야 한다.
  • UNIQUE: 무조건 유일한 값(중복x)
  • PK(primary key): 기본 키로 각 테이블의 고유한 식별자이다. NOT NULL, UNIQUE 속성을 모두 가진다.
  • FK(foreign key): 외래 키로 다른 테이블의 PK를 참조한다. 테이블 간의 관계를 만들고 데이터의 무결성을 위해 필요하다.
  • CHECK: 지정한 조건을 만족해야 저장이 가능하다.
  • DEFAULT: 값을 입력하지 않을 경우 기본값을 지정한다.
  • CK(composite key): 복합키로 기본키가 두 개 이상의 칼럼으로 구성된 것을 의미한다. 예를 들어 이름을 키로 했을 때 성 + 이름의 두 칼럼이 하나의 키를 이룬다.

Entity

DB를 디자인하기 시작할 때 가장 먼저 하는 것이 entity를 정의하는 것이다. entitiy라 DB에 입력될 데이터의 집합이다. 예를 들어 도서관 앱에서의 entitiy는 책, 사용자, 대출 기록 등이 될 수 있다.

이러한 entity를 정하면 entity간에 관계를 정해야한다. 관계를 정의할 때는 다음의 3가지 개념이 적용된다.

  • 관계명: 말 그대로 어떤 관계인지를 표현한다. '장르'와 '노래' entity가 있을 때
    장르는 노래를 포함하고 노래는 장르에 소속된다.

  • 관계 차수: entity 관계 차수의 종류는 3가지가 있다.
    1:1, 1:N, N:M 관계.
    이때 N:M 관계의 경우 entity를 분리해서 1:N, N:1의 관계로 바꿔주어야 한다.

  • 관계 선택성: 관계가 필수적으로 성립하는 지 아니면 선택적인지를 나타낸다.
    대학생과 전공수업이 필수 관계라면 교양과목은 선택적 관계이다.

참고


https://velog.io/@xilver0203/DataBase-DBMS%EC%9D%98-%EC%A2%85%EB%A5%98%EC%99%80-%EB%B9%84%EA%B5%90)

https://miki3079.tistory.com/158

https://etloveguitar.tistory.com/132

0개의 댓글