Skip to content

Commit

Permalink
post: 데이터베이스 개요~관계대수까지
Browse files Browse the repository at this point in the history
  • Loading branch information
lja3723 committed Apr 17, 2024
1 parent 8f44d91 commit 2109cdd
Show file tree
Hide file tree
Showing 34 changed files with 949 additions and 8 deletions.
148 changes: 148 additions & 0 deletions _posts/Computer-Science/DB/2024-04-17-database-introduce.md
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가 지원) | 데이터 무결성 유지, 데이터 표준 준수 용이 |

Loading

0 comments on commit 2109cdd

Please sign in to comment.