Database

Database. 1일차 - 스키마(Schema) 개념, SQL의 개념

머용? 2024. 1. 24. 18:36

데이터베이스 스키마(Schema)

: 데이터베이스에서 구조와 구성을 정의하는 청사진 또는 설계도이다.
이는 데이터베이스 테이블, 필드, 관계 등을 어떻게 구성할지 명세한 것으로, 데이터베이스 시스템이 데이터를 저장, 관리, 조작하는 방식을 결정한다.
일반적으로 관계형 데이터베이스에서는 여러 테이블로 구성되며, 각 테이블의 속성을 식별하여 컬럼으로 정의한다.

  • 논리적 스키마 : 테이블 간의 관계, 각 테이블의 속성과 데이터 타입, 제약 조건 등
  • 물리적 스키마 : 데이터의 실제 저장과 관련이 있는 부분으로, 디스크에 저장하는 방식 등

스키마가 있다면 동일한 구조의 데이터베이스를 쉽게 만들 수 있다. 데이터베이스의 백업과는 달리 스키마는 데이터의 구조만을 정의하므로, 데이터 구조를 동일하게 만드는데 사용된다.



SQL(Structured Query Language)란?

: 관계형 데이터베이스에서 데이터를 정의, 처리, 제어하는데 사용되는 표준화된 언어이다. 주로 데이터베이스 관리 시스템(DBMS)과의 상호작용을 위해 설계되었다.

  1. 데이터 정의 언어(DDL - Data Definition Language)
    : 데이터베이스의 구조를 정의하고 관리하는데 사용된다.
  • 주요 명령어
    • CREATE : 데이터베이스 객체를 생성한다.(CREATE TABLE, CREATE INDEX 등)
    • ALTER : 데이터베이스 객체를 수정한다.(ALTER TABLE 등)
    • DROP : 이터베이스 객체를 삭제한다.(DROP TABLE 등)
    • TRUNCATE : 테이블의 모든 레코드를 삭제하지만 테이블은 유지한다.
  1. 데이터 처리 언어(DML - Data Manipulation Language)
    : 데이터 검색, 삽입, 수정, 삭제하는데 사용된다.
  • 주요 명령어
    • SELECT : 데이터베이스에서 정보를 검색한다.
      ex) SELECT first_name, last_name FROM employees WHERE department = 'IT';
    • INSERT : 새로운 데이터를 테이블에 삽입한다.
      ex) INSERT INFO employees (employees_id, first_name, last_name, hire_date, department);
      VALUES (1, 'John', 'Doe', '2022-01-01', 'IT');
    • UPDATE : 테이블의 기존 데이터를 수정한다.
      ex) UPDATE employees SET department = 'HR' WHERE employees_id = 1;
    • DELETE : 테이블에서 데이터를 삭제한다.
      ex) DELETE FROM employees WHERE employees_id = 1;
  1. 데이터 제어 언어(DCL - Data Control Language)
    : 데이터베이스에 대한 엑세스를 제어하는 데 사용된다.
  • 주요 명령어
    • GRANT : 사용자에게 특정 작업을 수행할 권한을 부여한다.
      ex) GRANT SELECT ON employees TO username;
    • REVOKE : 사용자로부터 특정 작업 수행 권한을 제거한다.
      ex) REVOKE SELECT ON employees FROM username;
  1. TCL(Transaction Control Language)
    : 데이터베이스 내의 트랜잭션을 관리하는데 사용되는언어
  • 주요 명령어
    • COMMIT : 트랜잭션을 완료하고, 데이터베이스 변경사항을 영구적으로 저장
    • ROLLBACK : 트랜잭션을 취소하고, 마지막 COMMIT 이후의 모든 변경사항을 되돌림
    • SAVEPOINT : 트랜잭션 내 특정 지점을 마킹하여 필요시 그 지점으로 되돌릴 수 있음

각각의 언어 유형은 데이터베이스의 다양한 측면을 다루며, 데이터베이스의 구조를 정의하고(DDL), 데이터를 처리하며(DML), 사용자 권한을 관리하고(DCL), 트랜잭션을 제어하는(TCL)역할을 한다. 이러한 분류를 통해 데이터베이스 시스템의 효과적인 관리와 운영이 가능하다.