개발 & 공부/SQL

SQL - 1일차

hyungmuk 2020. 6. 29. 00:56

1일차

DBMS(Database Management System)란?

  • 파일시스템의 문제점을 개선하기 위하여 등장
  • 데이베이스를 관리하며, 다른 응용프로그램이 데이터베이스를 공유하며 사용 할 수 있는 환경

파일시스템의 문제점

데이터 중복이 생김

복구 미흡

보안/공유 미흡

파일이 프로그램에 종속됨

파일시스템의 문제점을 해결한 DBMS

데이터 중복을 방지

백업/복구 개선

보안/공유 개선

SQL 표준 사용으로 프로그램에 종속 되지 않음

데이터베이스(Database)

여러사람에 의해 공유될 목적으로 저장된 데이터의 집합

트랜젝션(Transaction)

여러 단계의 과정을 하나의 작업 행위로 묶는 단위

ex) 계좌이체는 출금과 입금이 하나의 작업으로 이루어져야 한다.

트랜젝션의 4가지 특성 (ACID)

  • 원자성(Atomicity)
    트랜젝션 내의 작업 전체가 완전히 실행 되거나 안되거나 해야한다. (일부 작업만 완료할수 없음)
  • 일관성(Consistency)
    트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 유지하는 것을 의미한다. (무결성 제약이 지켜져야 한다 - ex) 무결성 제약이 모든 계좌는 잔고가 있어야 한다면 이를 위반하는 트랜잭션은 중단된다.)
  • 독립성(Isolation)
    여러 트랜잭션이 동시에 실행 되도 각각의 트랜잭션은 서로 영향을 받지 않는다.
  • 지속성(Durability)
    트랜잭션이 커밋된 이후에는, 해당 트랜잭션으로 변경된 모든 사항이 보존되어야한다.

SQL(Structured Query Language) 이란?

  • 구조화된 질의 언어
  • DBMS와 통신하기 위한 유일한 수단
  • 문법이 쉽다.
  • 집합적 사고를 가진다.

SQL의 종류

  • DDL (Data Definition Language) : 데이터 정의어
    • CREATE
      데이터 베이스, 테이블 등을 생성하는 역할을 한다.
    • DROP
      테이블을 수정하는 역할을 한다.
    • ALTER
      데이터베이스, 테이블을 삭제하는 역할을 한다.
    • TRUNCATE
      테이블을 초기화 시키는 역할을 한다
  • DML (Data Manipulation Language) : 데이터 조작어
    • SELECT
      데이터를 조회하는 역할을 수행한다.
    • INSERT
      데이터를 삽입하는 역할을 수행한다.
    • DELETE
      데이터를 삭제하는 역할을 수행한다.
  • DCL (Data Control Language) : 데이터 제어어
    • GRANT
      특정 데이터베이스 사용자에게 특정 작업에 대한 수행권한 부여를 한다.
    • REVOKE
      특정 데이터베이스 사용자에게 특정 작업에 대한 권한을 박탈, 회수한다.
  • TCL(Transaction Control Language) : 트랜잭션 제어어
    • COMMIT
      트랜젝션의 작업이 정상적으로 와료되었음을 관리자에게 알려준다.
    • ROLLBACK
      트랜젝션의 작업이 비정상적으로 종료 되었을 때 원래의 상태로 복구한다.

Table

  • 데이터베이스에서 가장 많이 사용하는 객체
  • 데이터를 저장하는 2차원 구조의 저장소
    (엑셀과 비슷함)
    • ROW(행) : 테이블의 가로방향
    • COL(열) : 테이블의 세로 방향

SQL 공통사항

  • 대소문자를 가지리 않음
    • SELECT, Select, select 전부 동일
  • 여러줄에 걸쳐 작성 가능
    • 단 KEYWORD는 한줄에 표현 (ex : select, from)
  • SQL의 종료는 ; (Semicolon)

참고문헌