inblog logo
|
DailyCoding
    RDBMS

    3. 데이터베이스의 구조 및 SQL

    박은서's avatar
    박은서
    Feb 09, 2026
    3. 데이터베이스의 구조 및 SQL
    Contents
    1. 데이터베이스의 구조1️⃣ 서버 (Database Server)2️⃣ 데이터베이스 (Database)3️⃣ 스키마 (Schema)4️⃣ 테이블 (Table)5️⃣ 행 (Row, Record, Tuple)6️⃣ 열 (Column, Field, Attribute)7️⃣ 제약 조건 (Constraints)8️⃣ 인덱스 (Index)2. SQL (Structured Query Language)1️⃣ SQL 이란?2️⃣ SQL의 역할3️⃣ SQL의 대표 명령※ DSL(Domain-Specific Language, 도메인 특화 언어)1️⃣ DSL 이란?2️⃣ DSL의 특징3️⃣ 예시

    1. 데이터베이스의 구조

    서버 └─ 데이터베이스(DB) └─ 스키마(Schema) └─ 테이블(Table) └─ 행(Row, Record) └─ 열(Column, Field)

    1️⃣ 서버 (Database Server)

    • DB가 올라가 있는 물리적/논리적 장비
    • 하나의 서버에 여러 DB가 실행될 수 있음
      • (예: MySQL 서버 안에 DB 여러 개)

    2️⃣ 데이터베이스 (Database)

    • 데이터가 모여 있는 논리적 저장소
    • 회사별 서비스 모듈별로 DB를 나누기도 함
      • (예: user_db, order_db)

    3️⃣ 스키마 (Schema)

    1) 개념

    DB 내부에서 데이터를 조직화하는 구조 정의

    2) 스키마의 역할

    • 어떤 테이블이 있는지
    • 테이블의 필드가 무엇인지
    • 제약 조건 (PK, FK, UNIQUE, NOT NULL)
    • 인덱스 등 구조 전반을 정의
    💡 MySQL에서는 스키마=데이터베이스 라는 개념이 거의 동일하게 쓰이기도 함

    4️⃣ 테이블 (Table)

    1) 개념

    데이터를 저장하는 기본 단위(엑셀 표라고 생각하면 됨)

    2) 테이블의 구성

    • 행(Row): 한 사람/한 주문 같은 레코드
    • 열(Column): 이름, 나이, 전화번호 같은 속성

    3) 예시

    Users 테이블
    id
    name
    age
    1
    Kim
    20
    2
    Lee
    30

    5️⃣ 행 (Row, Record, Tuple)

    • 테이블에 저장된 한 개의 데이터 묶음
    • 한 사람, 한 주문, 한 제품 등 실체 데이터

    6️⃣ 열 (Column, Field, Attribute)

    • 행이 갖는 속성
    • 데이터 타입 존재 (INT, VARCHAR, DATE 등)

    7️⃣ 제약 조건 (Constraints)

    데이터 무결성을 보장하기 위해 테이블에 적용하는 규칙
    • PRIMARY KEY: 고유 식별자
    • FOREIGN KEY: 다른 테이블과 관계 연결
    • UNIQUE: 중복 금지
    • NOT NULL: 꼭 값 필요
    • DEFAULT: 값 없을 때 기본값

    8️⃣ 인덱스 (Index)

    테이블 검색을 빠르게 하기 위한 보조 구조
    (책의 목차처럼 특정 컬럼으로 빠르게 점프)
    • 조회는 빠르지만
    • 삽입/수정/삭제는 약간 느려질 수도 있음

    2. SQL (Structured Query Language)

    1️⃣ SQL 이란?

    관계형 데이터베이스(RDBMS)를 조작하기 위한 표준 언어

    2️⃣ SQL의 역할

    • 데이터를 조회
    • 데이터를 삽입/수정/삭제
    • 테이블 구조 생성/변경
    • 트랜잭션 수행

    3️⃣ SQL의 대표 명령

    분류
    풀네임
    역할(설명)
    대표 명령어
    DQL
    Data Query Language
    데이터 조회
    SELECT
    DML
    Data Manipulation Language
    데이터 조작(삽입·수정·삭제)
    INSERT, UPDATE, DELETE, MERGE
    DDL
    Data Definition Language
    테이블/DB 구조 정의 및 변경
    CREATE, ALTER, DROP, TRUNCATE
    TCL
    Transaction Control Language
    트랜잭션 제어
    COMMIT, ROLLBACK, SAVEPOINT
    DCL
    Data Control Language
    권한/보안 제어
    GRANT, REVOKE

    1) 데이터 조회

    SELECT * FROM users WHERE age > 20;

    2) 데이터 삽입

    INSERT INTO users(name, age) VALUES('Kim', 30);

    3) 데이터 수정

    UPDATE users SET age = 31 WHERE id = 1;

    4) 데이터 삭제

    DELETE FROM users WHERE id = 1;
    SQL은 Oracle, MySQL, PostgreSQL, SQL Server 등 대부분의 RDBMS에서 사용됨
     

    ※ DSL(Domain-Specific Language, 도메인 특화 언어)

    1️⃣ DSL 이란?

    특정 목적(도메인)을 위해 만들어진 언어

    2️⃣ DSL의 특징

    • 범용 언어가 아니라 한 분야에 최적화
    • 사용 목적이 제한적
    • 복잡한 동작을 간단한 문법으로 표현 가능

    3️⃣ 예시

    분야
    DSL 예
    데이터베이스 질의
    SQL
    웹 페이지 스타일
    CSS
    정규식
    Regex
    빌드/자동화
    Gradle DSL, Ant DSL
    하드웨어 설계
    Verilog
    인프라 관리
    Terraform, CloudFormation
     
    Share article
    Contents
    1. 데이터베이스의 구조1️⃣ 서버 (Database Server)2️⃣ 데이터베이스 (Database)3️⃣ 스키마 (Schema)4️⃣ 테이블 (Table)5️⃣ 행 (Row, Record, Tuple)6️⃣ 열 (Column, Field, Attribute)7️⃣ 제약 조건 (Constraints)8️⃣ 인덱스 (Index)2. SQL (Structured Query Language)1️⃣ SQL 이란?2️⃣ SQL의 역할3️⃣ SQL의 대표 명령※ DSL(Domain-Specific Language, 도메인 특화 언어)1️⃣ DSL 이란?2️⃣ DSL의 특징3️⃣ 예시

    DailyCoding

    RSS·Powered by Inblog