ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [SQLD] SQL 개발자 공부하기 Day 4 : 관계형 데이터베이스 / SQL
    Study/SQL 2024. 2. 19. 23:19
    728x90
    반응형
    목차
    1. 관계형 데이터베이스
    2. SQL

    1. 관계형 데이터베이스

     

     

    관계형 데이터베이스 Relation Database

    ‣ 관계형 데이터베이스는 1970년 E.F. Codd 박사의 논문에서 처음 소개된 데이터베이스로, 릴레이션과 릴레이션의 조인 연산을 통해서 합집합, 교집합, 차집합 등을 만들 수 있다.

     

    데이터베이스의 종류

    데이터베이스는 데이터를 어떠한 형태의 자료구조로 사용하느냐에 따라서 나누어진다.

    계층형, 네트워크형, 관계형 데이터베이스 등이 있다.

     

    계층형 데이터베이스

    트리(Tree) 형태의 자료구조에 데이터를 저장하고 관리한다.

    1대N 관계를 표현한다.

     

     

    네트워크형 데이터베이스

     오너(Owner)와 멤버(Member) 형태로 데이터를 저장한다.

    1대N과 함께 M대N 표현도 가능하다.

     

     

    관계형 데이터베이스

    릴레이션에 데이터를 저장하고 관리한다.

    릴레이션을 사용해서 집합 연산과 관계 연산을 할 수 있다.

     

     

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

    집합 연산

    합집합(Union) - 두 개의 릴레이션을 하나로 합하는 것이다. 중복된 행(튜플)은 한 번만 조회된다.

    차집합(Difference) - 본래 릴레이션에는 존재하고 다른 릴레이션에는 존재하지 않는 것을 조회한다.

    교집합(Intersection) - 두 개의 릴레이션 간에 공통된 것을 조회한다.

    곱집합(Cartesian product) - 각 릴레이션에 존재하는 모든 데이터를 조합하여 연산한다.

     

    관계 연산

    선택 연산(Selection) - 릴레이션에서 조건에 맞는 행(튜플)만을 조회한다.

    투영 연산(Projection) - 릴레이션에서 조건에 맞는 속성만을 조회한다.

    결합 연산(Join) - 여러 릴레이션의 공통된 속성을 사용해서 새로운 릴레이션을 만들어 낸다.

    나누기 연산(Division) - 기준 릴레이션에서 나누는 릴레이션이 가지고 있는 속성과 동일한 값을 가지는 행(튜플)을 추출하고 나누는 릴레이션의 속성을 삭제한 후 중복된 행을 제거하는 연산이다.

    반응형

    테이블Table의 구조

     

    관계형 데이터베이스는 릴레이션에 데이터를 저장하고 릴레이션을 사용해서 집합 연산 및 관계 연산을 지원하여 다양한 형태로 데이터를 조회할 수 있다.

    릴레이션은 최종적으로 데이터베이스 관리 시스템에서 테이블(Table)로 만들어진다.

    기본 키(Primary key)는 하나의 테이블에서 유일성과 최소성, Not Null을 만족하면서 해당 테이블을 대표하는 것이다.

    ex) EMP 테이블에서는 사원번호가 기본키가 된다.

    테이블은 행과 칼럼으로 구성된다. 그중에서 행(Row)은 하나의 테이블에 저장되는 값으로 튜플(Tuple)이라고도 한다.

    칼럼(Column)은 어떤 데이터를 저장하기 위한 필드(Field)로 속성이라고도 한다.

    외래 키(Foreign key)는 다른 테이블의 기본 키를 참조(조인)하는 칼럼이다.

    ex) EMP 테이블의 부서코드는 DEPT 테이블의 기본 키인 부서코드를 참조한다.

    외래 키는 관계 연산 중에서 결합 연산(Join)을 하기 위해서 사용한다.

     

     

    데이터베이스 관리 시스템 Database Management System

    계층형 데이터베이스, 네트워크형 데이터베이스, 관계형 데이터베이스 등을 관리하기 위한 소프트웨어

    DBMS의 종류에는 Oracle, MS-SQL, MySQL, Sybase 등이 있으며 모두 관계형 데이터베이스를 지원한다.

     

     

     


    2. SQL

     

    SQL Structured Query Language

     관계형 데이터베이스에 대해서 데이터의 구조를 정의, 데이터 조작, 데이터 제어 등을 할 수 있는 절차형 + 비절차형 언어이다.

    관계형 데이터베이스는 데이터베이스를 연결하고 SQL문을 사용하여 데이터베이스를 누구나 쉽게 사용할 수 있도록 한다.

    SQL은 ANSI/ISO 표준을 준수하기 때문에 데이터베이스 관리 시스템이 변경되어도 그대로 사용할 수 있다.

    728x90

     

    SQL 종류

    DDL(Data Definition Language) - 관계형 데이터베이스의 구조를 정의하는 언어이다. (테이블을 생성, 변경, 삭제)

    Create, Alter, Drop, Rename, Truncate문이 있다.

     DML(Data Manipulation Language) - 테이블에서 데이터를 입력, 수정, 삭제, 조회한다. (데이터를 입력, 수정, 삭제, 조회)

    Insert, Update, Delete, Select문이 있다.

     DCL(Data Control Language) - 데이터베이스 사용자에게 권한을 부여하거나 회수한다. (권한 부여)

    Grant, Revoke문이 있다.

    TCL(Transaction Control Language) - 트랜잭션을 제어하는 명령어이다.

    Commit, Rollback, Savepoint문이 있다.

    ‣ 작업의 순서를 보면 데이터베이스의 사용자에게 권한을 부여하고 권한이 부여되면 DDL로 데이터 구조를 정의한다.
    ‣ 데이터 구조가 정의되면 데이터를 입력한 후에 개발자 및 사용자가 그 데이터를 조회하는 것이다.
    (DCL -> DDL -> DML)

     

     

    SQL문의 실행 순서

    1. 파싱(Parsing) - SQL문의 문법을 확인하고 구문 분석한다.

    2. 실행(Execution) - 옵티마이저(Optimizer)가 수립한 실행 계획에 따라 SQL을 실행한다.

    3. 인출(Fetch) - 데이터를 읽어서 전송한다.

     

     

    트랜잭션 Transaction

    ‣ 데이터베이스의 작업을 처리하는 단위

     

    트랜잭션의 특성

    ‣ 원자성 - 트랜잭션은 데이터베이스 연산의 전부가 실행되거나 전혀 실행되지 않아야 한다.

    ‣ 일관성 - 트랜잭션 실행 후에도 일관성이 유지되어야 한다.

    ‣ 고립성 - 부분적인 실행 결과를 다른 트랜잭션이 볼 수 없다.

    ‣ 영속성 - 트랜잭션이 그 실행을 성공적으로 완료하면 그 결과는 영구적 보장이 되어야 한다.

     

    728x90
    반응형

    댓글

Designed by Tistory.