TIL - 20260119

juni·2026년 1월 19일

TIL

목록 보기
243/316

0119 정보처리기사 필기 (6/N): 3과목 - 데이터베이스 구축


✅ 1. 데이터베이스 (Database, DB)

  • 데이터베이스란 여러 사람이나 시스템이 공유하고 사용할 목적으로, 통합하여 관리되는 데이터의 집합입니다.
  • DBMS (Database Management System): 데이터베이스를 효율적으로 생성, 관리, 사용할 수 있도록 해주는 소프트웨어 시스템입니다. (e.g., Oracle, MySQL, MariaDB, SQL Server)

➕ 데이터베이스의 특징

  • 실시간 접근성 (Real-time Accessibility): 사용자의 요청에 즉시 반응하여 처리.
  • 계속적인 변화 (Continuous Evolution): 데이터는 끊임없이 삽입, 삭제, 수정됨.
  • 동시 공유 (Concurrent Sharing): 여러 사용자가 동시에 접근하여 사용.
  • 내용에 의한 참조 (Content-addressable): 데이터의 주소가 아닌, 내용(값)을 통해 데이터를 찾음.

✅ 2. 데이터베이스 설계

  • 데이터베이스 설계는 현실 세계의 업무 요구사항을 분석하여, 이를 데이터베이스의 논리적, 물리적 구조로 변환하는 체계적인 과정입니다.

➕ 데이터베이스 설계 순서 (요개논물구)

  1. 요구조건 분석 (Requirements Analysis):

    • 사용자의 요구사항을 수집하고 분석하여, 데이터베이스가 무엇을 저장하고 어떤 기능을 제공해야 하는지를 명확히 정의합니다.
  2. 개념적 설계 (Conceptual Design):

    • 수집된 요구사항을 바탕으로, 현실 세계를 추상적인 개념으로 모델링합니다.
    • 특정 DBMS에 종속되지 않으며, 엔터티(Entity)와 그들 간의 관계(Relationship)를 중심으로 표현합니다.
    • 산출물: E-R 다이어그램 (ERD)
  3. 논리적 설계 (Logical Design):

    • 개념적 설계의 ERD를, 우리가 사용할 관계형 데이터베이스 모델에 맞게 변환하는 과정입니다.
    • 엔터티는 테이블로, 속성은 컬럼으로, 관계는 외래 키(Foreign Key) 등으로 변환됩니다.
    • 데이터의 중복을 제거하고 무결성을 확보하기 위한 정규화(Normalization) 과정이 이 단계에서 수행됩니다.
    • 산출물: 테이블 명세서
  4. 물리적 설계 (Physical Design):

    • 논리적 설계를 바탕으로, 실제 데이터베이스에 어떻게 저장될지를 결정하는 과정입니다.
    • 특정 DBMS에 종속적이며, 성능, 저장 공간, 보안 등을 고려합니다.
    • 컬럼의 데이터 타입 지정, 인덱스 생성, 파티셔닝 등을 결정합니다.
    • 산출물: 실제 데이터베이스 스키마
  5. 구현 (Implementation):

    • 물리적 설계를 바탕으로, DDL(데이터 정의어)을 사용하여 실제 데이터베이스를 생성합니다.

✅ 3. SQL (Structured Query Language)의 분류

  • SQL은 관계형 데이터베이스와 상호작용하기 위한 표준 언어입니다. 기능에 따라 크게 세 가지로 분류됩니다.
구분이름설명주요 명령어
DDL데이터 정의어
(Data Definition Language)
데이터베이스 객체(테이블, 뷰, 인덱스 등)의 구조를 정의CREATE, ALTER, DROP, TRUNCATE
DML데이터 조작어
(Data Manipulation Language)
테이블의 데이터를 조작(추가, 수정, 삭제, 조회)INSERT, UPDATE, DELETE, SELECT
DCL데이터 제어어
(Data Control Language)
데이터베이스 객체에 대한 접근 권한을 제어GRANT, REVOKE

✅ 4. DDL (데이터 정의어)

  • DDL은 테이블과 같은 데이터베이스 객체의 구조를 생성하고, 변경하며, 삭제하는 데 사용됩니다. DDL 명령어는 실행 즉시 자동으로 COMMIT 됩니다.

CREATE TABLE

  • 새로운 테이블을 생성합니다. 테이블 이름, 컬럼 이름, 데이터 타입, 그리고 제약조건을 정의합니다.
    CREATE TABLE STUDENT (
        SNO    VARCHAR(10) PRIMARY KEY, -- 학번 (기본 키)
        SNAME  VARCHAR(20) NOT NULL,    -- 이름 (NULL 불가)
        YEAR   INT         CHECK(YEAR BETWEEN 1 AND 4), -- 학년 (1~4 값만 허용)
        DEPT   VARCHAR(20)
    );

ALTER TABLE

  • 이미 생성된 테이블의 구조를 변경합니다.

    -- STUDENT 테이블에 MAJOR 컬럼 추가
    ALTER TABLE STUDENT ADD MAJOR VARCHAR(30);
    
    -- STUDENT 테이블의 DEPT 컬럼 이름 변경
    ALTER TABLE STUDENT RENAME COLUMN DEPT TO DEPARTMENT;
    
    -- STUDENT 테이블의 SNAME 컬럼 데이터 타입 변경
    ALTER TABLE STUDENT MODIFY SNAME VARCHAR(50);
    
    -- STUDENT 테이블의 MAJOR 컬럼 삭제
    ALTER TABLE STUDENT DROP COLUMN MAJOR;

DROP TABLE

  • 테이블의 구조와 데이터를 완전히 삭제합니다.
    DROP TABLE STUDENT;

📌 요약

  • 데이터베이스는 공유, 통합되어 관리되는 데이터의 집합입니다.
  • 데이터베이스 설계는 요구조건 분석 → 개념적 설계 → 논리적 설계 → 물리적 설계 → 구현의 순서로 진행됩니다.
  • 개념적 설계의 산출물은 ERD, 논리적 설계에서는 정규화가, 물리적 설계에서는 성능이 중요한 고려사항입니다.
  • SQL은 기능에 따라 DDL, DML, DCL로 나뉘며, 이 중 DDLCREATE, ALTER, DROP을 사용하여 데이터베이스 객체의 구조를 정의하는 역할을 합니다.

0개의 댓글