#1. 데이터베이스와 데이터 베이스 시스템
- 데이터: 현실 세계에서 단순히 관찰하거나 측정하여 수집한 정량적/정성적인 값
- 정보: 데이터에 맥락과 의미를 부여한 것
- 지식: 정보를 바탕으로 사물이나 현상에 대한 이해를 형성한 것
- 구조에 따른 데이터 분류
| 정형 데이터 | 구조화된 데이터, 행/열이 명확히 저장됨 | ex) 엑셀 스프레드 시트 |
| 반정형 데이터 | 일정한 구조는 있으나 고정되지 않음, 키-값으로 유연하게 저장 | ex) JSON, XML |
| 비정형 데이터 | 구조가 없고 자유로운 형태 | ex) 이미지, 영상, 텍스트 문서 |
- 특성에 따른 데이터 분류
| 범주형 데이터 | 범주를 구분할 수 있는 값인 종류를 나타내는 값을 가진 데이터 | 질적 데이터(크기 비교/산술적 연산 가능 x) |
| 수치형 데이터 | 크기 비교와 산술적인 연산이 가능한 숫자값을 가진 데이터 | 양적 데이터 |
- 데이터베이스: 여러 사용자가 공유하여 사용할 수 있도록 통합하여 저장한 운영 데이터의 집합
- 데이터베이스의 활용: 데이터의 검색과 변경 작업을 주로 수행 -> 시간에 따라 변하는 데이터 값을 데이터베이스에 반영하기 위해 수행하는 삽입, 삭제, 수정 등의 작업 -> 검색/변경 빈도에 따라 시스템 구축의 난이도가 결정
- 주요 데이터베이스
| 공유 데이터 | 특정 조직의 여러 사용자가 함께 소유하고 이용할 수 있는 공용 데이터 | 사용자가 다수 |
| 통합 데이터 | 최소의 중복과 통제 가능한 중복만 허용하는 데이터 | 중복 x |
| 저장 데이터 | 컴퓨터가 접근할 수 있는 매체에 저장된 데이터 | 저장, 영구적 |
| 운영 데이터 | 조직의 주요 기능을 수행하기 위해 지속적으로 꼭 필요한 데이터 | 실시간, 지속적 운영 |
- 데이터베이스 시스템: 각 조직에서 사용하던 데이터 통합/공유할 때 생기는 장점을 이용하는 시스템
- 구성
| 데이터베이스 | 실제 데이터를 저장하는 공간, 통합/공유/저장/운영 데이터 포함 |
| DBMS | 데이터베이스를 관리하는 소프트웨어로 사용자와 데이터베이스 연결 |
| 데이터 모델 | 데이터를 설계하는 논리와 저장 기법 |
| 데이터베이스 사용자 | 최종 사용자, 개발자/관리자 |
| 인터페이스 | 데이터베이스 언어(SQL), 응용 프로그램 |
#2. 데이터베이스 시스템의 발전
- 정보 기술과 데이터베이스 시스템의 발전
1. 동네 서점
2. 초기 전산화
3. 데이터베이스 시스템 도입
4. 홈페이지 구축
5. 인터넷 쇼핑몰로 확장
- 데이터 처리 관점에서 본 기업 정보 시스템의 발전 과정
- 파일 시스템
- 데이터베이스 시스템
- 웹 데이터베이스 시스템
- 분산 데이터베이스 시스템
#3. DBMS
- DBMS의 장점
- 데이터 중복 통제
- 데이터 독립성 확보
- 데이터 동시 공유 가능
- 데이터 보안 향상
- 데이터의 무결성 유지 가능
- 표준화 가능
- 장애 발생시 회복 가능
- 응용 프로그램 개발 비용 감소
- DBMS의 단점
- 도입비용 증가
- 백업과 장애 회복 방법 복잡
- 중앙 집중 관리로 인한 취약점 존재
- 대규모 사용자의 동시 접속이나 복잡한 쿼리 처리시 성능 저하 발생
- 설계, 운영, 최적화, 튜닝에 전문 지식 요구
- DBMS의 발전 과정
- 네트워크 DBMS, 계층 DBMS
- 관계 DBMS
- 객체지향 DBMS, 객체관계 DBMS
- NoSQL, NoSQL DBMS
#4. 데이터베이스 시스템의 구성
- 데이터베이스 언어(SQL): 사용자와 데이터베이스 관리 시스템 간의 통신 수단
- SQL의 구성
| 데이터 정의어(DDL) | DBMS에 저장된 테이블 구조 정의 |
| 데이터 조작어(DML) | 데이터 검색/삽입/삭제/수정 |
| 데이터 제어어(DCL) | 내부적으로 필요한 규칙이나 데이터의 사용 권한 관리 |
- 데이터베이스 사용자
| 데이터베이스 사용자 | 데이터베이스를 이용하기 위해 접근하는 모든 사람 |
| 일반 사용자 | 데이터베이스에 접근하며 데이터를 조작하는 사람 |
| SQL 사용자 | SQL을 사용하여 업무를 처리하는 사용자 |
| 응용 프로그래머 | 일반 사용자가 사용할 수 있도록 프로그램을 작성하는 사람 |
| 데이터베이스 관리자 | 데이터베이스 시스템을 운영하고 관리하는 사람 |
- 데이터 모델 관계 표현 방법
| 포인터 사용 | 계층 데이터 모델, 네트워크 데이터 모델 | 프로그램 속도 빠름, 개발 속도 느림 |
| 속성값 사용 | 관계 데이터 모델 | 개념이 쉬움, 개발 속도가 빠름 |
| 객체 식별자 사용 | 객체 데이터 모델 | 객체지향언어의 상속, 캡슐화 개념 도입 가능 |
- 스키마와 인스턴스
| 스키마(schema) | 데이터베이스에 저장되는 데이터 구조와 제약조건 정의 |
| 인스턴스(instance) | 스키마에 따라 데이터베이스에 실제로 저장된 값 |
- 데이터베이스의 개념적 구조
| 외부 단계 | 개별 사용자 관점 | 일반 사용자나 응용 프로그래머가 접근하는 계층 | 여러 개의 외부 스키마 있을 수 있음 |
| 개념 단계 | 조직 전체의 관점 | 개념 스키마 - 개념 단계에서 전체 데이터베이스의 논리적 구조 정의 | 통합 조직별로 하나만 존재, DBA가 관리 |
| 내부 단계 | 저장 장치의 관점 | 물리적 저장 장치에 데이터베이스가 실제로 저장되는 방법 표현 | 하나의 데이터베이스에는 내부 스키마 하나만 존재 |
- DBMS 사상
| 외부/개념 사상 | 응용 인터페이스 | 외부 스키마와 개념 스키마의 대응 관계 |
| 개념/내부 사상 | 저장 인터페이스 | 개념 스키마와 내부 스키마의 대응 관계 |
- 데이터 독립성: 하위 단계의 내용 추상화하여 상위 단계에 숨김으로써 다른 단계와 상호 간섭이 없도록 하는 것
| 논리적 데이터 독립성 | 외부 단계와 개념 단계 사이의 독립성 |
| 물리적 데이터 독립성 | 개념 단계와 내부 단계 사이의 독립성 |
'데이터베이스' 카테고리의 다른 글
| 데이터베이스 프로젝트1 - 동작 시나리오 작성하기 (0) | 2026.05.20 |
|---|---|
| 데이터베이스 4주차 이론 정리 (0) | 2026.03.30 |
| 데이터베이스 3주차 이론 정리 (1) | 2026.03.21 |
| 2. 데이터베이스 2주차 이론 정리 (0) | 2026.03.14 |