이번 학기 데이터베이스 과목을 수강하게 되었다. 1주차에는 데이터베이스의 전반적인 개념을 배웠다.
데이터베이스 개념
데이터베이스와 DBMS
- 데이터베이스
- 여러 응용 시스템들의 통합된 정보들을 저장하여 운영할 수 있는 공용 데이터들의 집합
- 데이터의 저장, 검색, 갱신을 효율적으로 수행할 수 있도록 고도로 조직화하여 저장
- DBMS
- 데이터베이스 관리 시스템(DataBase Management System)
- DBMS 종류
- 관계형 DBMS
- 키(key)와 값(value)들의 관계를 테이블로 표현한 데이터베이스 모델
- 객체 지향 데이터베이스
- 정보를 객체의 형태로 표현하는 데이터베이스 모델
- NoSQL, NewSQL DBMS
관계형 데이터베이스 구조와 기본 용어
- 데이터베이스를 테이블 형태로 구성
- 데이터들이 다수의 테이블로 구성되며, 각 테이블은 키(key)와 값(value)들의 관계로 표현
- 키는 테이블의 열(column), 테이블의 행(row)은 하나의 레코드(record)를 표현
- 여러 테이블 간에 공통된 이름의 열을 포함할 수 있으며, 서로 다른 테이블 간에 관계(relation)가 성립
- 기본 용어
- 릴레이션: 하나의 개체에 관한 데이터를 2차원 테이블 구조로 저장한 것
- 속성(Attribute)
- 릴레이션의 열, 파일 관리 시스템에서 필드에 해당
- 튜플(tuple)
- 릴레이션의 행, 파일 관리 시스템에서 레코드에 해당
- 도메인(domain)
- 하나의 속성이 가질 수 있는 모든 값의 범위 또는 데이터 타입

SQL과 JDBC
- SQL(Structured Query Language)
- 관계형 데이터베이스 관리 시스템에서 사용하는 쿼리용 언어
- 데이터베이스 스키마 생성, 자료의 검색, 관리, 수정, 그리고 데이터베이스 객체 접근 관리를 위해 고안된 언어
- 데이터베이스로부터 정보를 추출하거나 갱신하기 위한 표준 대화식 프로그래밍 언어
- 다수의 데이터베이스 관련 프로그램들이 SQL을 표준으로 채택
- JDBC(Java DataBase Connectivity)
- 관계형 데이터베이스에 저장된 데이터를 접근 및 조작할 수 있게 하는 API
- 다양한 DBMS에 대해 일관된 API로 데이터베이스 연결, 검색, 수정, 관리 등을 할 수 있게 함
- JDBC 드라이버: DBMS마다 고유한 JDBC 드라이버 제공
데이터베이스와 데이터베이스 시스템
데이터베이스의 개념 및 특징
- 데이터베이스 개념
- 여러 사용자가 공유하여 사용할 수 있도록 통합하여 저장한 운영 데이터의 집합
- 공유 데이터: 특정 조직의 여러 사용자가 함께 소유하고 이용할 수 있는 공용 데이터
- 통합 데이터: 최소의 중복과 통제 가능한 중복만 허용하는 데이터
- 저장 데이터: 컴퓨터가 접근할 수 있는 매체에 저장된 데이터
- 운영 데이터: 조직의 주요 기능을 수행하기 위해 지속적으로 꼭 필요한 데이터
데이터베이스 시스템의 기본 구성요소
- 데이터베이스 시스템
- 각 조직에서 사용하던 데이터를 통합하고 공유할 때 생기는 장점을 이용하는 시스템
- 구성: 데이터베이스 관리 시스템(DBMS), 데이터베이스, 데이터 모델
- 데이터베이스(Database)
- 실제 데이터를 저장하는 공간, 통합·공유·저장·운영 데이터 포함
- DBMS(Database Management System)
- 데이터베이스를 관리하는 소프트웨어로 사용자와 데이터베이스를 연결
- 데이터 모델(Data Model)
- 데이터베이스 사용자(User)
- 최종 사용자(일반사용자): 응용 프로그램을 통해 데이터 활용
- 개발자/관리자: DB 설계, 운영, 보안 관리
- 인터페이스
- 데이터베이스 언어: SQL
- 응용 프로그램(Application)
- DBMS와 사용자 사이에서 동작
- SQL을 통해 데이터베이스와 연동
파일 시스템과 DBMS
DBMS의 장단점
| 장점 |
단점 |
- 데이터 중복을 통제할 수 있다 - 데이터 독립성이 확보된다 - 데이터를 동시 공유할 수 있다 - 데이터 보안이 향상된다 - 데이터의 무결성을 유지할 수 있다 - 표준화할 수 있다 - 장애 발생시 회복이 가능하다 - 응용 프로그램 개발 비용이 줄어든다 |
- 도입비용이 많이 든다 - 백업과 장애 회복 방법이 복잡하다 - 중앙 집중 관리로 인한 취약점이 존재한다 - 대규모 사용자의 동시 접속이나 복잡한 쿼리 처리시 성능 저하가 발생한다 - 설계, 운영, 최적화, 튜닝에 전문지식이 요구되며, 효율적 관리를 위해서는 숙련된 DBA가 필요하다 |
DBMS의 발전 과정

파일시스템과 DBMS 정리

데이터베이스 시스템의 구성
데이터베이스 시스템의 구성

데이터베이스 언어(SQL)
데이터베이스 사용자
- 데이터베이스 사용자
- 데이터베이스를 이용하기 위해 접근하는 모든 사람
- 이용 목적에 따라 최종 사용자, 데이터베이스 관리자, 응용 프로그래머, SQL 사용자 구분
- 일반 사용자
- 데이터베이스에 접근하여 데이터를 조작(삽입·삭제·수정·검색)하는 사람
- 프로그래머가 개발한 프로그램을 이용하여 접근하거나 주로 데이터 조작어를 이용
- 캐주얼 사용자와 초보 사용자로 구분
- SQL 사용자
- SQL을 사용하여 업무를 처리하는 사용자
응용 프로그램으로 구현되지 않은 업무를 SQL을 사용해 처리
- 응용 프로그래머
- 일반 사용자가 사용할 수 있도록 프로그램을 작성하는 사람
- 데이터베이스 관리자(DBA)
- 데이터베이스 시스템을 운영하고 관리하는 사람, 주로 DDL, DCL를 이용
데이터 모델
- 데이터 모델의 개념
- 현실 세계의 데이터를 DB 구조로 변환하는 논리적 가이드라인
- 데이터베이스 시스템에서 데이터를 저장하는 이론적인 방법에 관한 것
- 데이터베이스에 데이터가 어떻게 구조화되어 저장되는지를 결정함
- 관계를 표현하는 방법에 따라 계층/네트워크/관계/객체 모델 등이 존재
- 현재 가장 많이 사용되는 데이터 모델은 관계 데이터 모델
- 관계 표현 방법
- 포인터 사용: 계층 데이터 모델, 네트워크 데이터 모델
- 강좌 데이터가 저장된 포인터 값 p를 학생 데이터에 저장
- 프로그램 속도는 빠르지만 개발 속도는 느리다.
- 속성값 사용: 관계 데이터 모델
- 강좌 데이터의 속성값을 학생 데이터에 저장
- 개념이 쉽고, 개발 속도가 빠르다
- 객체 식별자 사용: 객체 데이터 모델
- 강좌 객체의 고유식별자인 oid를 학생 테이블에 저장
- 객체 지향 언어의 상속, 캡슐화 개념 도입 가능
데이터 모델별 관계 표현 방법


데이터베이스의 개념적 구조
- 3단계 데이터베이스 구조
- 미국 표준화 기관인 ANSI/SPARC에서 제안
- 관점에 따라 외부 단계, 개념 단계, 내부 단계로 나뉨
- 스키마와 인스턴스
- 스키마(schema): 데이터베이스에 저장되는 데이터 구조와 제약 조건을 정의한 것
- 인스턴스(instance): 스키마에 따라 데이터베이스에 실제로 저장된 값

- 외부 단계: 개별 사용자 관점
- 일반 사용자나 응용 프로그래머가 접근하는 계층으로 전체 데이터베이스 중에서 하나의 논리적인 부분을 의미
- 여러 개의 외부 스키마가 있을 수 있음
- 개념 단계: 조직 전체의 관점
- 통합 조직별로 하나만 존재하며 DBA가 관리
- 개념 스키마(conceptual schema)
- 개념 단계에서 전체 데이터베이스의 논리적 구조를 정의한 것
- 데이터들 간의 관계, 제약조건에 대한 정의, 보안 정책이나 접근 권한에 대한 정의도 포함
- 내부 단계: 저장 장치의 관점
- 물리적 저장 장치에 데이터베이스가 실제로 저장되는 방법을 표현한 것
- 하나의 데이터베이스에는 내부 스키마 하나만 존재하며, 레코드 구조, 필드 크기, 인덱스, 데이터 레코드의 배치 방법, 데이터 압축 등에 관한 사항이 포함됨
- DBMS는 매핑(사상)을 통하여 각 단계 간 대응 관계를 정의함
- 외부/개념 사상
- 외부 스키마와 개념 스키마의 대응 관계
- 응용 인터페이스(application interface)라고도 함
- 개념/내부 사상
- 개념 스키마와 내부 스키마의 대응 관계
- 저장 인터페이스(storage interface)라고도 함
- 데이터 독립성
- 하위 단계의 내용을 추상화하여 상위 단계에 숨김으로써 다른 단계와 상호 간섭이 없도록 하는 것
- 하위 스키마를 변경하더라도 상위 스키마가 영향을 받지 않도록 만드는 것
- 2가지 데이터 독립성
- 논리적 데이터 독립성(logical data independence)
- 외부 단계와 개념 단계 사이의 독립성
- 개념 스키마가 변경되어도 외부 스키마(사용자 뷰)에는 영향을 미치지 않도록 지원함
- 논리적 구조가 변경되어도 응용 프로그램에는 영향이 없도록 하는 개념
- 예) 새로운 속성을 테이블에 추가해도 기존 사용자 질의는 그대로 동작
- 물리적 데이터 독립성(physical data independence)
- 개념 단계와 내부 단계 사이의 독립성
- 내부 스키마(저장 구조)가 변경되어도 개념 스키마에 영향을 미치지 않도록 지원함
- 예) 인덱스 구조를 바꾸거나 저장 방식을 변경해도 논리적 구조는 동일
후속활동
DBMS 종류에 대한 선호도
아래 이미지는 2026년 3월 기준 전세계 DBMS 선호도 및 트렌드 랭킹을 집계한 결과이다.

출처: https://db-engines.com/en/ranking
국내 점유율
국내 공공 및 기업 데이터베이스 시장은 전통적으로 오라클의 점유율이 60% 이상을 차지할 정도로 의존도가 매우 높게 형성되어 있다. 하지만 최근에는 높은 유지보수 비용과 벤더 종속성을 탈피하기 위해 국산 DBMS나 클라우드 환경에 유리한 MySQL, PostgreSQL 등과 같은 오픈소스 데이터베이스를 도입하는 사례가 꾸준히 늘어나는 추세이다.
출처: http://www.itdaily.kr/news/articleView.html?idxno=235029
DB 자격증
- 범용 데이터베이스 자격증
- 일반: SQLD, Das
- 전문가: SQLP, DAP
- 오라클 계열: OCP