CS - 강의, 서적/[SQLD] 홍쌤의 데이터랩

[SQLD] 2-1. 관계형 데이터베이스 개요 (데이터 무결성, SQL)

SH3542 2024. 9. 16. 19:02

[홍쌤의 데이터랩, SQLD n과목 완벽 정리] 영상를 개인이 정리하여 [원작자의 허가 이후] 올린 글이며,

[개인이 추가로 정리한 내용]이 포함되어 있습니다.

 

 

 
 

홍쌤의 데이터랩

[개정판] SQLD n과목 완벽 정리

https://www.youtube.com/watch?v=rdfHFnqVoRw

 

 


 

 

목차

 

    데이터 무결성(Data Integrity)

    데이터가 정확성과 일관성을 유지하고 있음을 의미하는 속성

    => 결손과 부정합이 없음을 보증

     

    데이터 무결성의 종류

    1. 개체 무결성

    테이블의 기본키를 구성하는 속성은 NULL이나 중복 값을 가질 수 없음

    => 복합키 구성 시에도 일반적으로 NULL 미포함

     

    2. 참조 무결성

    외래키 값은 NULL이거나 참조 테이블의 기본키 값과 동일해야 함

    => 참조 값이 없거나, 있다면 관계 대상이 반드시 존재해야 함을 의미

     

    3. 도메인 무결성

    주어진 속성 값이 정의된 도메인에 속한 값이어야 함

     

    4. NULL 무결성

    특정 속성에 대해 NULL을 터용하지 않음

     

    5. 고유 무결성

    특정 속성에 대해 중복 값을 허용하지 않음

     

    6. 키 무결성

    하나의 연관 관계에는 적어도 하나의 키가 존재

     

    SQL (Structured Query Language)

    - 관계형 데이터베이스 조작을 위한 질의 언어

    - SQL 문법은 대소문자를 구별하지 않음

    SQL의 종류

    DDL (Data Definition Language) - 데이터 정의어

    CREATE, ALTER, DROP, TRUNCATE (+RENAME, COMMENT)

     

    - 구조를 정의하기에 수정을 지원하지 않으며 Auto-Commit되는 특성을 가지고 있음

    => ROLLBACK 불가 (일반적인 표현, 어떻게든 가능은 함)

    - TRUNCATE는 테이블 구조(스키마)를 유지한 채로 모든 데이터를 삭제하며, 명시적 트랜잭션 관리에서도 Auto-Commit된다는 점에서 DELETE(*)와 구분

     

    DML (Data Manipulation Language) - 데이터 조작어

    INSERT, DELETE, UPDATE, MERGE

     

    DCL (Data Control Language) - 데이터 제어어

    GRANT, REVOKE

     

    TCL (Transaction Control Language) - 트랜잭션 제어어

    COMMIT, ROLLBACK

     

    DQL (Data Query Language) - 데이터 질의어

    SELECT

     

    - SELECT는 DML이 아닌 DQL로 구분되며, 원본 데이터의 변화가 없다(조회 목적)는 특성에 따라, 다음과 같은 경우에 다소 느슨한 로직을 적용할 수 있음

    e.g. 데이터 접근 권한 => 조작 권한과 분리, 무결성을 위한 트랜잭션 복잡성 => 조작어보다 덜 엄밀할 수 있음