[SQLD]TIL 21일차

Cherta·2024년 5월 14일
0

[TIL]

목록 보기
22/30

데이터베이스(Database)

  • 데이터베이스(Database) : 데이터베이스는 정보를 한 곳에 모아서 관리하는 역할 (효율적인 데이터 관리는 정보를 단순히 쌓아두는 것이 아니라, 효과적으로 저장하고 활용하는 것을 의미)

  • 관계형데이터 베이스(Relational Database) :
    파일 시스템은 데이터를 일방적으로 저장하여 중복된 정보를 가지며, 프로그램 종속성과 데이터 형식의 제한으로 인한 비효율성을 가지고 있어 이러한 한계를 극복하기 위해 관계형 데이터베이스가 등장
    관계형 데이터베이스는 데이터를 체계적으로 정의하고 관리할 수 있으며, 사용자가 요청한 방식으로 데이터를 생성, 수정, 삭제, 조회할 수 있음 이를 통해 데이터 관리의 효율성과 일관성이 향상되며, 데이터의 활용성도 증가

  • 관계형 데이터베이스 관리 시스템

    • 관계형 데이터베이스 구조에 기반한 관계형 데이터베이스 관리 시스템 (Relational Database Management System, RDBMS)는 메타 데이터를 총관 관리할 수 있기 때문에 데이터의 성격, 속성 또는 표현 방법 등을 체계화할 수 있음
      또한 데이터 표준화를 통해 데이터 품질을 확보할 수 있는 장점을 가지고 있음
    • RDBMS는 인증된 사용자만이 참조할 수 있도록 보안 기능을 제공
      사용자가 실수로 조건에 위배되는 행동을 할 경우 이를 방지하여 데이터 무결성(Intergrity)을 보장
    • RDBMS는 시스템의 갑작스러운 장애로부터 사용자가 입력, 수정, 삭제하던 데이터가 제대로 반영될 수 있도록 보장해주는 기능과 시스템 다운, 재해 등의 상황에서도 데이터를 회복/복구할 수 있는 기능을 제공

SQL

  • SQL : SQL은 Structured Query Language의 약자로, 관계형 데이터베이스와 상호작용하기 위한 구조화된 질의 언어 이러한 질의는 데이터를 생성, 수정, 삭제, 조회하는 문장으로 이루어져 있으며, 특정 권한을 가진 사용자만 해당 작업을 수행할 수 있도록 제어할 수 있음

  • SQL 언어 분류

    • 데이터 정의 언어(DDL: Data Definition Language) : 관계형 데이터베이스의 구조를 정의하는 데 사용하는 언어
      • 데이터를 저장하는 테이블을 만들거나 수정할 수 있음
      • 테이블을 생성(CREATE), 변경(ALTER, RENAME), 삭제(DROP) 할 수 있음
    • 데이터 조작 언어(DML: Data Manipulation Language) : 테이블에 저장된 데이터를 조작하는 데 사용하는 언어
      • 데이터를 삽입(INSERT), 조회(SELECT), 수정(UPDATE), 삭제(DELETE) 할 수 있음
    • 데이터 제어 언어(DCL: Data Control Language) : 데이터베이스에 접근하여 이를 제어하기 위한 권한을 관리하는 데 사용하는 언어
      • 특정한 사용자의 데이터베이스 사용 권한을 부여하거나 박탈할 수 있음
      • 데이터베이스 접근하고 객체를 사용하도록 권한을 부여(GRANT)하거나 회수(REVOKE)할 수 있음
    • 트랜잭션 제어어(TCL: Transaction Control Language) : 논리적인 작업의 단위를 묶어서 DML에 의해 조작된 결과를 작업단위(트랜잭션)별로 제어하는 언어
      • 논리적인 작업의 단위를 묶어서 DML에 의해 조작된 결과를 작업단위(트랜잭션) 별로 제어할 수 있습니다. 이때 COMMIT, ROLLBACK 등의 명령어를 수행할 수 있음
      • 트랜잭션은 다음과 같은 특징을 가짐(ACID)
        • 원자성(Atomicity) : 하나의 논리적인 단위로 묶여있는 트랜잭션이 데이터베이스에 모두 적용되거나 아니면 적용되지 않거나 둘 중 하나의 선택지만 있어야함
        • 일관성(Consistency) : 트랜잭션의 작업 처리 결과는 항상 일관되어야 함
        • 독립성(Isolation) : 둘 이상의 트랜잭션이 동시에 진행되고 있는 상황에서 하나의 트랜잭션의 결과가 다른 트랜잭션의 결과에 영향을 줄 수 없음
        • 지속성(Durability) : 트랜잭션을 통해 특정한 작업이 마무리된 경우 결과는 데이터베이스에 영구적으로 반영되어야 함

0개의 댓글