ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [SQLD 요약] II. SQL 기본 및 활용 - 01. SQL 기본 (1) - 관계형 데이터베이스와 SQL
    자격증/SQLD (SQL 개발자) 2021. 4. 28. 15:45
    728x90
    반응형

     

     

    SQLD 요약 / SQL Developer 요약

    🔑 관계형데이터베이스/ 데이터베이스관리시스템(DBMS)/ 릴레이션/ 테이블/ 기본키/ 외래키/

           집합연산/ 합집합/ 차집합/ 교집합/ 곱집합/ 관계연산/ 선택/ 투영/ 결합/ 나누기/

           SQL/ DDL, DML, DCL, TCL/ 트랜잭션/ 원자성/ 일관성/ 고립성/ 영속성

     

     

    II. SQL 기본 및 활용

       01. SQL 기본

              [1] 관계형 데이터베이스

              [2] SQL 종류

     

     



     

    01. SQL 기본

     

     

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

    (1) 데이터베이스와 데이터베이스 관리 시스템

    • 데이터베이스 (위키백과 정의)
      - 여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합
      - 작성된 목록으로써, 여러 응용 시스템들의 통합된 정보들을 저장하여 운영할 수 있는 공용 데이터들의 묶음

    • 데이터를 어떤 형태의 자료구조로 사용하는가에 따라서 데이터베이스를 나눔 ⇒ 계층형/ 네트워크/ 관계형
    계층형 데이터베이스 네트워크 데이터베이스 관계형 데이터베이스
    - 자료구조: 트리형태 (Tree)
    - 표현관계: 1대N 관계
    - 자료구조: 오너-멤버 형태
    - 표현관계: 1대N, M대N
    - 자료구조: 릴레이션 (Relation)
    - 릴레이션으로 집합 연산, 관계 연산

     

     

    • 데이터베이스 관리 시스템 (DBMS; Database Management System)
      - 계층형/ 네트워트/ 관계형 데이터베이스 등을 관리하기 위한 소프트웨어
      - 종류: 현업에서 가장 많이 사용되는 DBMS는 Oracle, MS-SQL, MySQL, Sybase 등

     


     

     

    (2) 관계형 데이터베이스 | 릴레이션에 데이터를 저장하고 관리하는 데이터베이스

    • 릴레이션(Relation) → 테이블(Table)
    • 릴레이션의 조인연산(Join)을 통해 → 합집합, 교집합, 차집합 등 생성 가능
    • 릴레이션을 사용하여 집합 연산, 관계 연산 가능 → 다양한 형태로 데이터를 조회
    • 관계형 데이터베이스는 DB를 연결하고, SQL문을 사용 → 누구나 쉽게 DB를 사용할 수 있도록 함

     

    • 관계형 데이터베이스의 집합연산: 합집합/ 차집합/ 교집합/ 곱집합
    합집합 Union 차집합 Difference 교집합 Intersection 곱집합 Catesian product
    - 릴레이션 2개→1개로 합침
    - 중복 행은 1번만 조회됨
    본래 릴레이션에는 있고,
    다른 릴레이션에는 없는 것 조회
    릴레이션 2개 간에
    공통된 것을 조회함
    각 릴레이션의 모든 데이터를
    조합하여 연산함

     

     

     

    • 관계형 데이터베이스의 관계연산: 선택/ 투영/ 결합/ 나누기
    선택 연산 Selection 투영 연산 Projection 결합 연산 Join
    릴레이션에서 조건에 맞는 만 조회함 릴레이션에서 조건에 맞는 속성만 조회함 여러 릴레이션의 공통된 속성을 사용하여
    새로운 릴레이션을 생성

     

    나누기 연산 (Division): 나누는 릴레이션의 모든 속성관련있는 기준 릴레이션의 속성들을 반환
                                          - 기준 릴레이션에 속한 튜플(행)들 중에서,
                                          - 나누는 릴레이션이 가지고 있는 속성과 같은 값을 가지는 튜플을 추출하고,
                                          - 나누는 릴레이션의 속성을 삭제한 후에,
                                          - 중복된 행을 제거하는 연산이다!

     

     

    (3) 테이블 | 릴레이션은 최종적은 DBMS에서 테이블로 생성됨

    • 관계형 데이터베이스는 릴레이션에 데이터를 저장함 → 관리시스템에서 테이블로 만들어짐
    • 테이블 구조: 기본키/ 행(튜플)/ 열(속성)/ 외래키

    • 외래키: 관계연산 중 결합연산(Join)을 하기 위해 사용하는 키
    기본키 Primary Key 행 Row = 튜플 Tuple 열 Column = 속성 외래키 Foreign Key
    - 테이블을 대표하는 키
    - 유일성, 최소성, Not Null 만족
    - 하나의 테이블에
      저장되는
    - 어떤 데이터를
      저장하기 위한 필드
    - 다른 테이블의 기본키를
      참조(조인)하는 칼럼

     

     


     

     

    [2] SQL 종류

    (1) SQL (Structured Query Language)

    • 관계형 데이터베이스에 대해서, 데이터 구조 정의/ 데이터 조작/ 데이터 제어 등을 할 수 있는 절차형 언어
    • ANSI/ISO 표준 준수 → DBMS가 달라도 SQL은 그대로 사용 가능

     

     

    (2) SQL 종류 | DDL, DML, DCL, TCL

    • SQL이 지원하는 기능: 데이터 정의/ 조작/ 제어 등

    • 작업 순서: 권한 - 정의 - 입력 - 조회
      ① 데이터베이스 사용자에게 권한 부여
      ② DDL로 데이터 구조 정의
      ③ 데이터 입력
      ④ 개발자/사용자가 데이터 조회
    DDL DML DCL TCL
    관계형 데이터베이스의
    구조를 정의함
    테이블에서 데이터를
    입력, 수정, 삭제, 조회
    데이터베이스 사용자에게
    권한을 부여, 회수함
    트랜잭션을 제어하는 명령어
    - CREATE
    - ALTER
    - DROP
    - RENAME
    - INSERT
    - UPDATE
    - DELETE
    - SELECT
    - GRANT
    - REVOKE
    - TRUNCATE

    - COMMIT
    - ROLLBACK
    - SAVEPOINT

     

     

    • 트랜잭션(Transaction): 데이터베이스 작업을 처리하는 단위
    • 트랜잭션의 특성: 원자성/ 일관성/ 고립성/ 영속성 (ACID)
    원자성 Atomicity 일관성 Consistency 고립성 Isolation 영속성 Durability
    - 연산 전부가 실행되거나,
      전혀 실행되지 않아야 함
    - 트랜잭션 처리가 완전히
      끝나지 않은 상태는
      실행되지 않은 상태와 같음
    - 트랜잭션 실행 결과로
      DB상태가 모순되지 않아야 함
    - 실행 후에도 일관성 유지


    - 트랜잭션 실행 중에
      생성되는 연산 중간결과

      다른 트랜잭션이 접근 불가능
    - 부분적인 실행결과는
      다른 트랜잭션이 볼 수 없음
    - 트랜잭션 실행 완료 후
      그 결과는 영구적으로 보장됨



     

     

     

    (3) SQL문의 실행순서 | 파싱-실행-인출

    • 작성한 SQL문은 3단계에 걸쳐서 실행됨
      (SQL문은 DDL, DML, DCL 등을 의미함)
    파싱 Parsing 실행 Execution 인출 Fetch
    - SQL문의 문법확인 및 구문분석
    - 분석된 SQL문은 캐시에 저장함
    - 옵티마이저가 수립한
      실행계획에 따라서 SQL 실행
    데이터를 읽어서 전송

     

     


     

    참고도서: SQL 개발자 이론서+기출문제_이기적, 2020

    참고링크: chartworld.tistory.com/12

     

     

     

    728x90
    반응형