본문 바로가기

기타/SQLD 자격증

6. SQL 기본 (SQLD 자격증 공부)

관계형 데이터베이스(Relation Database)

  → 1970년 E.F. Codd박사의 논문에서 처음 소개 되었다.

  → 릴레이션과 릴레이션의 조인 연산을 통해 합집합, 교집합, 차집합 등을 만들 수 있다.

  → Oracle, Ms-SQL, MySQL, Sybase 등의 다양한 데이터베이스 관리 시스템이 존재한다.

 

▷ 데이터베이스와 관리 시스템의 차이점

  • 데이터를 어떤한 형태의 자료구조로 사용하느냐에 따라 나뉜다.
  • 계층형, 네트워크형 데이터베이스, 관계형 데이터베이스 등이 있다.
    1. 계층형은 트리(Tree) 형태의 자료구조에 데이터를 저장하고 관리하고, 1대N 관계를 표현한다
    2. 네트워크는 오너(Owner)와 멤버(Member) 형태로 데이터를 저장하고, 1대N과 함계 M대N 표현도 가능
  • 관계형 데이터베이스는 릴레이션에 데이터를 저장하고 관리
  • 관계형 데이터베이스는 릴레이션을 사용해서 집합 연산과 관계 연산을 할 수 있다.
  • 데이터베이스 관리 시스템 (Database Management System)은 관리하기 위한 소프트웨어를 의미 하며, DBMS라고 한다.
 ※ 릴레이션이란?
  • 정보를 구분하여 저장하는 기본 단위
  • 쉽게 보면 DB테이블이다.

데이터베이스 종류 중 부모와 자식 관계를 표현하기 쉬운 데이터베이스는? (답 : 3)
1. 빅데이터
2. 관계형 데이터베이스
3. 계층형 데이터베이스
4. 네트워크 데이터베이스

관계형 데이터베이스 집합 연산과 관계 연산

  • 집합 연산
    1. 합집합(Union) : 두 개의 릴레이션을 하나로 합하는 것, 중복된 행은 한번만 조회
    2. 차집합(Difference) : 본래 릴레이션에 존재하며 다른 릴레이션에 존재하지 않는 것을 조회
    3. 교집합(Intersection) : 두개의 릴레이션 간에 공통된 것을 조회
    4. 곱집합(Cartesian Product) : 각 릴레이션에 존재하는 모든 데이터를 조합하여 연산
  • 관계 연산
    1. 선택 연산(Selection) : 릴레이션에서 조건에 맞는 행만 조회
    2. 투영 연산(Projection) : 릴레이션에서 조건에 맞는 속성만을 조회
    3. 결합 연산(Join) : 공통된 속성을 사용해서 새로운 릴레이션을 만들어 낸다
    4. 나누기 연산(Division) : 나누는 릴레이션이 가지고 있는 속성과 동일한 값을 가지는 행을 추출, 나누는 릴레이션의 속성을 삭제 후 중복된 행을 제거

테이블의 구조

  • 릴레이션에 데이터를 저장하고 사용해서 집합 연산 및 관계 연산을 지원하여 다양한 형태로 데이터를 조회
  • 릴레이션은 최종적으로 DBMS에서 테이블로 만들어진다
  • 기본키(Primary Key)는 하나의 테이블에서 유일성, 최소성, Not Null을 만족하면서 해당 테이블을 대표하는 것
  • 테이블은 행과 칼럼으로 구성된다. 
  • 행은 하나의 테이블에 저장되는 값
  • 칼럼은 어떤 데이터를 저장하기 위한 필드로 속성이라고도 한다.
  • 외래키(Foreign Key)는 다른 테이블의 기본키를 참조하는 칼럼
  • 왜리키는 관계 연산중 결합연산(조인)을 하기 위해 사용

SQL(Structured Query Language) 종류

SQL

  • 관계형 데이터베이스에 대해 데이터의 구조를 정의, 데이터 조작, 데이터 제어 등을 할 수 있는 절차형 언어
  • ANSI/ISO 표준을 준수하기에 다른 DMBS로 변경되도 그대로 사용가능

SQL 종류

  1. DDL (Data Definition Language) : 관계형 데이터베이스의 구조를 정의
  2. DML (Data Mainpulation Language) : 테이블에서 데이터를 수정, 입력, 조회, 삭제를 한다.
  3. DCL (Data Control Language) : 사용자에게 권한을 부여 또는 회수
  4. TCL (Transaction Control Language) : 트랜잭션을 제어하는 명령어
트랜잭션 (Transaction)
 트랜잭션은 데이터베이스의 작업을 처리하는 단위

트랜잭션의 특징

  1. 원자성(Atomicity) : 연산의 전부가 실행 또는 전혀 실행되지 않아야 함
  2. 일관성(Consistency) : 데이터베이스의 상태가 모순되지 않아야 하며 일관성이 유지되어야 한다.
  3. 고립성(Isolation) : 연산의 중간결과는 다른 트랜잭션이 접근할 수 없다.
  4. 영속성(Durability) : 실행을 성공적으로 완료하면 그 결과는 영구적으로 보장

  SQL문의 실행 순서

  1. 파싱(Parsing) : SQL문의 문법을 확인하고 구문분석
  2. 실행(Execution) : 옵티마이저가 수립한 실행 계획에 따라 실행
  3. 인출(Fetch) : 데이터를 읽어서 전송

 


트랜잭션의 특징 중 결과를 영구적으로 보장하는 것은? (답 : 2)
1. 원자성
2. 영속성
3. 고립성
4. 일관성
데이터베이스 관리 시스템이 SQL을 실행하는 순서로 올바른 것은? (답 : 4)
1. 실행 → 파싱 → 인출
2. 인출 → 파싱 → 실행
3. 실행 → 인출 → 파싱
4. 파싱 → 실행 → 인출