-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
34 changed files
with
949 additions
and
8 deletions.
There are no files selected for viewing
148 changes: 148 additions & 0 deletions
148
_posts/Computer-Science/DB/2024-04-17-database-introduce.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,148 @@ | ||
--- | ||
title: "[DB] 데이터베이스 개요" | ||
date: 2024-04-17 16:10:00 +0900 | ||
categories: [Computer-Science, DB] | ||
tags: ['DB'] | ||
--- | ||
|
||
|
||
|
||
## 1. 데이터베이스란? | ||
|
||
- 데이터 : 관찰의 결과로 나타난 정량적 혹은 정성적인 실제 값 | ||
- 정보 : 데이터에 의미를 부여한 것 | ||
- 지식 : 사물이나 현상에 대한 이해 | ||
- 데이터베이스: 정보 획득 위해 논리적으로 연관된 데이터를 모아 구조적으로 통합해 놓은 것 | ||
- 활용: 각종 분야에서의 정보 제공 | ||
|
||
- 검색/변경 빈도에 따른 DB 유형 | ||
|
||
| 유형 | 검색 빈도 | 변경 빈도 | 구축 난이도 | 예시 | | ||
| ----- | --------- | --------- | :---------: | ----------- | | ||
| 유형1 | 적다 | 적다 | 쉬움 | 공룡정보 | | ||
| 유형2 | 많다 | 적다 | ↑ | 도서 | | ||
| 유형3 | 적다 | 많다 | ↓ | 비행기 예약 | | ||
| 유형4 | 많다 | 많다 | 어려움 | 증권 | | ||
|
||
|
||
|
||
## 2. 데이터베이스의 개념과 특징 | ||
|
||
### 2.1. 데이터베이스 개념 | ||
|
||
> 데이터베이스 개념이란? | ||
> - 여러 사람이 공용으로 사용하기 위해 통합 / 저장한 운영 데이터 집합 | ||
{: .prompt-info} | ||
|
||
- **통합된 데이터(intergrated)** | ||
- 중복을 제거해 데이터 불일치 현상을 제거 | ||
- **저장된 데이터(stored)** | ||
- 물리적(문서)으로 보관된 것이 아닌 SW적으로 저장 | ||
- **운영 데이터(operational)** | ||
- 조직의 목적으로 저장 | ||
- **공용 데이터(shared)** | ||
- 공동으로 사용되는 데이터 | ||
|
||
### 2.2. 데이터베이스 특징 | ||
|
||
- 실시간으로 접근이 가능 | ||
- **계속해서 변화** | ||
- DB를 사용하는 이유 | ||
- 동시 공유 가능 | ||
- 내용으로 참조 가능 | ||
|
||
|
||
|
||
## 3. 데이터베이스 시스템의 구성 | ||
|
||
> **데이터베이스시스템** = DBMS + 데이터베이스 + 데이터 모델 | ||
{: .prompt-info} | ||
|
||
### 3.1. DB 시스템 발전의 예시 | ||
|
||
| 단계 | 규모 | 시기 | 정보기술 | 주요 특징 | | ||
| ----- | ------------- | -------- | ------------------ | ----------------------------------------------------------------------------------------------------------------------------- | | ||
| 1단계 | 마당서점 | 1970년대 | 컴퓨터 X | • 사장이 모든 도서의 제목/가격 기억<br>• 매출/판매가 컴퓨터 없이 관리됨<br>• 매출 내역이 부정확함 | | ||
| 2단계 | 초기전산화 | 1980년대 | 컴퓨터 | • 컴퓨터 이용한 초기 응용프로그램으로 업무 처리<br>• 파일시스템 사용<br>• 한 대의 컴퓨터에서만 판매/매출 관리 | | ||
| 3단계 | 데이터베이스 | 1990년대 | 컴퓨터 + 원격 통신 | • 지점 간 클라이언트/서버 시스템 도입, 업무 처리<br>• 데이터베이스 관리 시스템(DBMS) 도입 | | ||
| 4단계 | 홈페이지 구축 | 2000년대 | 컴퓨터 + 인터넷 | • 인터넷 이용, 도서 검색/주문<br>• 웹 DB시스템으로 불특정 다수 고객 유치<br>• 고객이 지리적으로 넓게 분산됨 | | ||
| 5단계 | 인터넷 쇼핑몰 | 2010년대 | 컴퓨터 + 인터넷 | • 도서뿐 아니라 음반, 액세서리, 문구 등까지 판매하는 인터넷 쇼핑몰로 확대<br>• 도서 외 상품의 매출 비중이 50% 이상으로 늘어남 | | ||
|
||
|
||
|
||
## 4. 정보 시스템의 발전 | ||
|
||
### 4.1. 파일 시스템 | ||
|
||
- 데이터를 파일 단위로 **파일서버에 저장** | ||
- 각 프로그램이 독립적으로 파일 다룸 | ||
- 데이터 중복 가능성 발생 | ||
- **동시접근**: 데이터 일관성 훼손 가능 | ||
|
||
### 4.2. 데이터베이스 시스템 | ||
|
||
- DBMS 도입, 데이터 통합 관리 | ||
- **서버**: DBMS 설치, 파일 가진 쪽 | ||
- **클라이언트**: 데이터 요청 | ||
- DBMS가 파일 다룸 | ||
- 데이터 일관성 유지 | ||
- 복구 | ||
- 동시 접근 제어 | ||
- 데이터 중복 줄임, 데이터 표준화 | ||
- 무결성 유지 | ||
|
||
### 4.3. 웹 데이터베이스 시스템 | ||
|
||
- 웹에서 DB를 사용하게 함 | ||
|
||
### 4.4. 분산 데이터베이스 시스템 | ||
|
||
- 여러 곳에 분산된 DBMS 서버 연결 및 운용 | ||
- 클라우드 시스템 | ||
|
||
|
||
|
||
## 5. 데이터를 저장하는 방법 | ||
|
||
### 5.1. 프로그램 내부 저장 | ||
|
||
- 프로그램에 **데이터 정의** + **데이터 값** 모두 포함하는 방식 | ||
- 프로그램에 구조체 정의와 데이터 값도 직접 변수에 저장함 | ||
- 문제점: 새 데이터 생길 때마다/값 변경 될 때마다 다시 컴파일 필요 | ||
|
||
### 5.2. 파일 시스템 사용 | ||
|
||
- 프로그램에 데이터 정의, 파일에 데이터 값을 포함하는 방식 | ||
- 프로그램에 구조체 정의만 저장 | ||
- 데이터 값은 외부 파일에 저장 | ||
- 문제점 | ||
- 동일 파일을 두 프로그램이 공유하려면 OS의 도움 필요 | ||
- 데이터 값 변경시에는 프로그램 변경 X, **데이터 구조 변경시 재컴파일 필요** | ||
|
||
### 5.3. DBMS 사용하는 방법 | ||
|
||
- DBMS가 데이터 정의와 데이터 값을 관리하는 방식 | ||
- 데이터 구조는 DBMS가 관리 | ||
- 데이터 값은 데이터베이스에 저장됨 | ||
- 데이터 값 바뀌거나 데이터 구조 바뀌어도 재컴파일 필요 X | ||
|
||
|
||
|
||
## 6. 파일 시스템 vs DBMS | ||
|
||
| 구분 | 파일 시스템 | DBMS | | ||
| ------------------- | ------------------------------------------------------ | ---------------------------------------------- | | ||
| 데이터 정의 및 저장 | 데이터 정의: 응용 프로그램<br>데이터 저장: 파일 시스템 | 데이터 정의: DBMS<br>데이터 저장: 데이터베이스 | | ||
| 데이터 접근 방법 | 응용 프로그램이 파일에 직접 접근 | 응용 프로그램이 DBMS에 파일 접근 요청 | | ||
| 사용 언어 | Java, C++, C 등 | Java, C++, C 등과 SQL | | ||
| CPU/주기억장치 사용 | 적음 | 많음 | | ||
|
||
| 구분 | 파일 시스템 | DBMS | | ||
| :------------------: | --------------------------------------- | ----------------------------------------------------- | | ||
| 데이터 중복 | 데이터를 파일단위로 저장 → 중복 가능 | DBMS 이용해 데이터 공유하므로 중복 가능성 ↓ | | ||
| 데이터 일관성 | 데이터 중복 저장 → 일관성 결여 | 중복 제거 → 데이터 일관성 유지 | | ||
| 데이터 독립성 | 데이터 정의/프로그램 독립성 유지 불가능 | 데이터 정의/프로그램 독립성 유지 가능 | | ||
| 관리 기능 | 보통 | 데이터 복구, 보안, 동시성 제어, 데이터 관리 기능 수행 | | ||
| 프로그램 개발 생산성 | 나쁨 | 짧은 시간에 큰 프로그램 개발 가능 | | ||
| 기타 장점 | 별도의 SW설치 필요 X(OS가 지원) | 데이터 무결성 유지, 데이터 표준 준수 용이 | | ||
|
Oops, something went wrong.