[Database] RDBMS & SQL

SHINYEJI·2023년 9월 12일
0

Database

목록 보기
1/12

🚩 RDBMS

Relational DataBase Management System (관계형 데이터 베이스)

  • 테이블 기반의 DBMS
    • 데이터를 파일 기반이 아닌 테이블 단위로 관리한다.
      • 하나의 테이블을 여러 개의 Column으로 구성한다.
  • 중복 데이터를 최소화 시킨다.
    • 같은 데이터가 여러 컬럼이나 테이블에 존재 했을 때, 데이터 삭제,삽입,갱신 시 문제가 발생하는 이상현상이 나타날 수 있음으로 정규화를 통해 중복 데이터를 최소화 시켜야 한다.
    • 정규화 시켜 여러 테이블에 분산된 데이터를 검색 시 테이블 간의 join을 통해 필요한 데이터를 검색할 수 있다.

  • RDBMS의 예
    • MySQL
    • PostgreSQL
    • MariaDB
    • Microsoft SQL Server
    • Oracle Database

💡 정규화란?
데이터 모델의 중복을 베재하여 삽입, 삭제, 갱신 이상의 발생을 방지하기 위해 여러 개의 테이블을 나누는 과정이라고 생각하자.

🚩 SQL

Structured Query Language

  • Database에 있는 정보를 사용할 수 있도록 지원하는 언어이다.
  • SQL은 모든 DBMS에서 사용 가능한 표준이다.
    - DBMS들은 표준 SQL + α를 제공하므로 각 DBMS마다 제공하는 기능이 조금씩 다름으로 다양한 DBMS가 존재한다.
  • Query의 대소문자는 구분하지 않고 데이터의 대소문자만 구분한다.
    • MySQL 에서는 데이터의 대소문자도 구분하지 않는다.

DDL

Data Definition Language

  • 데이터 정의어

    • 데이터베이스 객체의 구조를 정의

    • 테이블 생성, 컬럼 추가, 타입 변경, 제약조건 지정, 수정 등

      SQL 키워드설명
      create데이터베이스 객체를 생성
      drop데이터베이스 객체를 삭제
      alter기존에 존재하는 데이터베이스 객체를 수정

DML

Data Manipulation Language

  • 데이터 조작어

    • 테이블의 레코드를 CRUD(Create, Retrieve, Update, Delete)

      SQL 키워드설명
      insert (C)데이터베이스 객체에 데이터를 입력 (행 삽입)
      select (R)데이터베이스 객체에서 데이터를 조회 (속성에 해당하는 값 조회)
      update (U)데이터베이스 객체에 데이터를 수정 (이미 존재하는 데이터를 수정)
      delete (D)데이터베이스 객체에 데이터를 삭제 (행 삭제)

DCL

Data Control Language

  • 데이터 제어어

    • DB, Table의 접근권한이나 CRUD 권한을 정의

    • 특정 사용자에게 테이블의 검색권한 부여/금지 등

      SQL 키워드설명
      grant데이터베이스 객체에 권한을 부여
      revoke데이터베이스 객체 권한 취소

TCL

Transaction Control Language

  • 트랜젝션 제어어

    Transaction
    데이터베이스의 논리적 연산 단위

    SQL 키워드설명
    commit실행한 Query를 최종적으로 적용
    rollback실행한 Query를 마지막 commit 전으로 취소시켜 데이터를 복구
    checkpointcheckpoint를 설정하면 rollback 시 checkpoint로 이동

SET 집합연산자

연산자설명
UNION합집합, 두 쿼리에서 선택된 속성의 모든 행을 중복 없이 반환
UNION ALL합집합, 두 쿼리에서 선택된 속성의 모든 행을 중복을 포함하여 반환
INTERSECT교집합, 두 쿼리에서 선택된 속성의 행 중 두 쿼리의 중복된 행만 반환
MINUS차집합, 첫번째 쿼리에서 선택한 행에 대해 두번째 쿼리에서 선택한 행을 제거하여 반환

0개의 댓글