📊 Database

[Database] Database Languages

date
Jul 9, 2022
slug
db-languages
author
status
Public
tags
Tech
summary
type
Post
thumbnail
updatedAt
Jul 11, 2023 02:47 PM
category
📊 Database

Database Languages 데이터베이스 언어

데이터베이스 관리 시스템에서는 데이터를 조작하기 위해 사용하는 세 가지 유형의 SQL 명령어가 있다. 각각은 DDL(Data Definition Language), DML(Data Manipulation Language), DCL(Data Control Language)이다.

Data Definition Language (DDL)

  • 데이터베이스 Schema(스키마)를 정의하고 조작하기 위한 언어
  • DDL은 데이터베이스 개체 (테이블, 인덱스, 뷰 등)를 생성, 변경 또는 삭제할 수 있는 SQL 명령문을 제공한다.
  • 데이터베이스 설계자는 DDL을 사용하여 데이터베이스 스키마를 정의하고 데이터의 논리적 구조를 설명한다.

Data Manipulation Language (DML)

  • Database 의 data를 조작(schema는 불변)하는 언어
  • 데이터베이스 내의 데이터를 검색, 수정, 삽입 및 삭제하는 데 사용되는 컴퓨터 프로그래밍 언어의 일종이다.
  • 명령어는 데이터베이스 내의 테이블과 같은 객체를 조작하는 데 사용된다.
  • SQL, Oracle PL/SQL, MySQL 등은 대표적인 DML 언어 중 하나이다.

Data Control Language (DCL)

  • 데이터베이스에서 권한 부여와 회수, 데이터 보안 등 데이터의 제어를 위해 사용되는 언어와 명령어 집합이다.
  • 이를 사용하여 데이터베이스 관리자는 데이터베이스 사용자에게 적절한 권한을 부여하고, 데이터에 대한 보안 및 무결성을 유지할 수 있다.
😃
예를 들어, 데이터베이스를 설계하고자 할 때는 DDL을 사용하여 새로운 테이블이나 컬럼을 생성하거나 수정할 수 있다. 생성한 테이블에 데이터를 삽입하기 위해서는 DML을 사용할 수 있으며, 데이터베이스 사용자의 권한을 관리하기 위해서는 DCL을 사용할 수 있다.

Procedural vs nonprocedural languages 절차적인 언어 vs 비절차적인 언어

  • procedural 절차적인
    • 우리가 배운 대부분의 언어!
    • Relational Algebra 관계대수
    • 개발자가 코드를 특정 순서대로 작성해야하는 것으로, 코드의 실행 흐름이 개발자가 작성한 절차에 의해 결정된다.
    • 일반적으로 개발자는 특정 목적을 위한 서브루틴이나 함수를 작성하고, 이러한 서브루틴이나 함수를 일련의 단계로 구성하여 큰 프로그램을 만들게 된다. 대표적인 절차적 언어로는 C, FORTRAN, Pascal 등이 있다.
  • non-procedural 절차적이지 않은
    • declarative 선언적인
    • 필요한 데이터만 지정
    • 비절차적 언어는 언어적인 컨트롤 흐름이 더 자유롭다.
    • 개발자는 특정 명령어를 작성하여 원하는 결과를 얻을 수 있다. 이러한 언어의 실행 흐름은 일반적으로 시스템이나 런타임 환경에서 결정된다.
    • 대표적인 비절차적 언어로는 SQL, HTML, CSS 등이 있다.
⇒ 비절차적 언어는 개발자가 코드를 더 쉽게 작성하고 유지 관리할 수 있으며, 코드를 더 빠르게 작성할 수 있다.
  • Query (Question)
    • query language part of DML, 질의어: DML의 일부다!!!!!!
    •  

Structured Query Language (SQL)✨

  • SQL : 절차적이지 않은 언어
  • ODBC, JDBS : ODBC와 JDBC는 데이터베이스와 프로그래밍 언어 간의 인터페이스를 제공하기 위한 API(응용 프로그래밍 인터페이스)이다. 둘 다 데이터베이스와 응용 프로그램 간의 인터페이스를 제공하지만, ODBC는 C/C++ 프로그래밍 언어와 함께 사용하기에 적합하며, JDBC는 자바 프로그래밍 언어와 함께 사용하기에 적합하다.
    • ODBC: Microsoft가 개발한 데이터 액세스 API로, Windows 운영체제와 함께 제공된다. ODBC를 사용하면 데이터베이스를 사용하는 애플리케이션에서 SQL 쿼리를 실행하고, 데이터를 조회, 삽입, 업데이트, 삭제할 수 있다.
    • JDBC: 자바 언어로 작성된 응용 프로그램이 데이터베이스와 상호 작용할 수 있도록 하는 자바 API이다. JDBC는 자바에서 데이터베이스를 쉽게 액세스할 수 있도록 하며, 데이터를 쿼리, 삽입, 업데이트, 삭제할 수 있다. JDBC를 사용하면 여러 데이터베이스와 상호 작용할 수 있다.

Transaction Management 거래 관리

  • Transaction
    • 논리적으로는 하나의 function을 실행하는 것이다. but, 안을 들여다보면 여러개의 collection으로 이루어져 있다.
  • ACID
    • atomicity 원자성, 완벽하거나-아예 안되거나
    • consistency 일치성, 일관성
    • Isolation 고립성
    • durability 내구성 있는 영속성의
    • 😃
      이러한 ACID 특성은 데이터베이스 트랜잭션의 안정성과 신뢰성을 보장하기 위해 중요하다.