[데이터베이스] 데이터베이스 기본 개념
2025-04-22
3분 분량
데이터베이스
1. 데이터베이스 시스템
1.1 데이터베이스 관리 시스템(DBMS)
- 서로 관계 있는 데이터들의 모임과 그 데이터에 접근하기 위한 프로그램의 집합으로 구성됨
- DBMS의 목적: 데이터베이스에 정보를 저장하고 이를 검색하기 위한 편리하고도 효율적인 환경 제공
2. 데이터베이스 시스템의 응용
2.1 최초의 데이터베이스 시스템
- 1960년대: 상업용 데이터 관리 목적으로 개발
- 초기 응용: 단순하고 구조화된 데이터(structured data)
2.2 최신 데이터베이스 응용
- 세계적인 기업에서 사용
- 복잡한 관계와 다양한 구조의 데이터 → 약하게 구조화된 데이터와 매우 가변적인 형태
대표적인 데이터베이스 응용:
- 기업 정보: 판매, 회계, 인적 자원
- 은행 업무 및 재무: 계좌, 대출, 신용카드, 주식 거래
- 대학: 학생 정보, 수강 신청, 학점 관리
- 항공: 예약 및 비행 스케줄
- 통신: 통화 내역, 통신비 산정
- 웹 기반 서비스: 소셜 미디어, 온라인 소매, 온라인 광고
- 문서 데이터베이스: 뉴스 기사, 특허, 논문
- 내비게이션 시스템: 도로, 철도, 관심 지역 정보
2.3 데이터베이스 두 가지 사용 모드
- 온라인 트랜잭션 처리 (OLTP) 지원 모드
- 데이터 분석 (Data Analysis) 지원 모드
3. 데이터베이스 시스템의 목적
3.1 기존 파일 처리 시스템의 한계
문제점:
- 데이터 중복과 비일관성:
- 데이터 접근의 어려움:
- 데이터 고립:
- 무결성 문제:
- 원자성 문제:
- 동시 접근 문제:
- 보안 문제:
4. 데이터의 관점
4.1 데이터 추상화
추상화 단계:
- 물리적 단계 (Physical Level):
- 논리적 단계 (Logical Level):
- 뷰 단계 (View Level):
4.2 데이터베이스 스키마와 인스턴스
- 스키마 (Schema): 데이터베이스의 전체 설계
- 인스턴스 (Instance): 특정 시점에 데이터베이스에 저장된 데이터
- 스키마의 종류:
5. 데이터베이스 언어
5.1 데이터 정의 언어 (DDL)
- 데이터베이스 스키마 정의
- 무결성 제약조건, 접근 권한 정의
예시:
sql
CREATE TABLE department (
dept_name CHAR(20),
building CHAR(15),
budget NUMERIC(12,2)
);5.2 데이터 조작 언어 (DML)
- 데이터 검색, 삽입, 삭제, 수정
- 절차적 DML: 데이터 어떻게 구할지 명시
- 선언적 DML: 어떤 데이터가 필요한지만 명시
SQL 예시:
sql
SELECT instructor.name
FROM instructor
WHERE instructor.dept_name = 'History';6. 데이터베이스 설계
6.1 데이터베이스 설계 개요
- 데이터베이스 시스템: 많은 양의 정보를 효율적으로 관리하기 위해 설계됨.
- 데이터는 기업/조직 운영에 필요한 자료.
- 데이터베이스 설계: 데이터베이스 스키마 설계와 관련.
- 설계 시 고려사항:
6.2 데이터베이스 설계 과정
1단계: 요구 사항 분석
- 장래 사용자가 필요로 하는 데이터를 명확히 규정.
- 전문가 및 사용자와 상호작용.
- 결과물: 사용자의 요구 명세서 (specification of use requirements).
2단계: 개념적 설계
- 사용자 요구를 개념적 데이터 모델로 변환 → 개념적 스키마 생성.
- 스키마 재검토 및 중복 제거.
- E-R 다이어그램으로 데이터와 관계를 표현.
3단계: 논리적 설계
- 개념적 스키마 → 논리적 데이터 모델 (릴레이션 스키마)로 변환.
4단계: 물리적 설계
- 물리적 속성 (파일 구성 형식, 저장 구조)을 구체화.
5단계: 구현
- 설계한 스키마를 SQL 문으로 실행하여 DBMS에서 데이터베이스 생성.
7. 데이터베이스 엔진
7.1 데이터베이스 시스템 구성
- 데이터베이스 시스템은 여러 모듈로 구성되며, 각 모듈은 데이터베이스의 여러 책무를 나눠 맡음
- 기능적 구성:
- 기업 데이터베이스 용량:
- 디스크 저장:
7.2 저장 장치 관리자 (Storage Manager)
- 저장된 데이터와 응용 프로그램/질의 사이의 인터페이스 제공
구성요소:
- 권한과 무결성 관리자:
- 트랜잭션 관리자:
- 파일 관리자:
- 버퍼 관리자:
저장 구조:
- 데이터 파일: 데이터베이스 자체를 저장
- 데이터 사전 (Data Dictionary):
- 인덱스: 특정 값의 데이터 항목에 빠르게 접근 (예: 교수 ID 찾기)
7.3 질의 처리기 (Query Processor)
구성요소:
- DDL 인터프리터:
- DML 컴파일러:
- 질의 평가 엔진:
8. 데이터베이스 및 응용 구조
8.1 시스템 구조
- 중앙화된 서버에서 데이터베이스 시스템 실행
구성:
- 공유 메모리 (Shared Memory) 서버 구조:
- 병렬 데이터베이스 (Parallel Database):
- 분산 데이터베이스 (Distributed Database):
8.2 응용 구조
2계층 구조 (Two-tier Architecture):
- 초기 데이터베이스 응용에서 사용
- 클라이언트에서 응용 프로그램 실행 → 서버의 데이터베이스와 직접 통신
3계층 구조 (Three-tier Architecture):
- 클라이언트 (프론트엔드)는 응용 서버 (Application Server)와 통신
- 응용 서버가 데이터베이스 시스템과 직접 통신
- 비즈니스 로직은 응용 서버에 위치 → 보안과 성능 향상
9. 데이터베이스 사용자와 관리자
9.1 사용자 유형
- 일반 사용자:
- 응용 프로그래머:
- 능숙한 사용자:
9.2 데이터베이스 관리자 (DBA)
역할:
- 스키마 정의:
- 저장 구조 및 접근 방법 정의:
- 스키마 및 물리 구조 수정:
- 데이터 접근 권한 인정:
- 일상적인 유지 보수:
함께 읽으면 좋은 글
CS2025-04-22
[데이터베이스] 고급 SQL
SQL은 선언형 질의어로 데이터 처리에 강력하지만 동적 SQL (Dynamic SQL): 내장 SQL (Embedded SQL): Java에서 데이터베이스 접근을 위한 표준 API DriverManager.getConnection() 사용 매개변수: Statement 객체로…
CS2025-04-22
[데이터베이스] 중급 SQL
student 릴레이션과 takes 릴레이션을 조인 공통 속성인 ID를 기준으로 조인 student와 takes를 ID 속성으로 자연 조인 두 릴레이션에서 속성명이 같은 경우 한 번만 출력 student natural join takes를 먼저 계산한 후 자연 조인을 연속으로…
CS2025-04-22
[데이터베이스] SQL
1970년대 초: IBM이 Sequel이라는 SQL 초기 버전 개발 SQL (Structured Query Language)로 명칭 변경 1986년: ANSI와 ISO가 SQL-86 표준 발표 이후 SQL-89, SQL-92, SQL:1999, SQL:2003,…
CS2025-04-22
[데이터베이스] 관계형 모델 소개
상업용 데이터 처리 응용을 위한 주요 데이터 모델 네트워크 모델이나 계층형 모델에 비해 프로그래머 작업을 쉽게 해주는 단순성으로 널리 사용됨 객체 지향 특징 지원: 복잡한 데이터 타입, 저장형 프로시저 XML 데이터 및 반구조형 데이터 지원 관계형 데이터베이스:…