본문 바로가기
백엔드/SQL

데이터베이스 시스템 개요(1)

by dustnn 2025. 3. 26.

1. 데이터베이스 시스템의 개념 & 구성 요소

2. 데이터베이스 시스템, 데이터베이스관리시스템(DBMS), 데이터베이스의 정의

3. 데이터베이스의 역할, 특징, 데이터베이스 설계 및 데이터 저장과 관련된 기본 개념

4. 데이터베이스의 추상화 레벨

5. 데이터베이스관리시스템(DBMS)의 역할, 필요성, 장단점, 구성요소

6. 데이터 언어의 개념


 

데이터베이스 시스템

 

 

데이터베이스

: 데이터 저장

 

- 관계형 데이터베이스

: 표로 구조화하여 저장된 데이터베이스

 

DBMS(데이터베이스관리시스템)

 

: 데이터베이스 관리

: 다른 사람들과 공유한다는 점을 착안해 데이터를 관리해주는 프로그램 집합체

* MySQL 설치한다 = "데이터베이스 + DBMS" 설치

 

데이터 언어(접근 수단)

 

: DBMS가 데이터베이스를 관리하는 데 사용하는 언어

-> 데이터 언어를 입력하면 DBMS의 한 프로그램이 그 쿼리 받아들임

 

사용자

: 데이터 언어 사용자

: 응용프로그램 개발자, DBA(데이터베이스 관리자)가 언어 사용 가능

* 응용프로그램 개발자: 언어를 통해 쿼리를 던지고, 쿼리에 대한 답변을 토대로 프로그램 개발

* DBA: 데베 구축, 데이터를 데베에 저장하고 활용

* 최종 사용자(end user): 일부 케이스에서 데이터 연산 결과 확인 위해 접근할 때 

 

데이터베이스

 

여러 사용자가 공유할 수 있도록 데이터 중복을 최소화하여 통합 저장된 운영 데이터의 집합

 

데이터베이스의 정의와 데이터베이스 시스템에서의 역할

: 데이터 저장

 

데이터: 현실 세계에서 관찰하거나 측정하여 수집한 사실이나 값 => 데이터베이스에 저장

정보: 데이터를 처리하여 구조화한 결과물 => 의사결정에 활용

 

 

<정형/비정형/반정형 데이터>

- 정형 데이터: 정해진 구조에 저장되는 데이터 ex. 관계형 데이터베이스

- 비정형 데이터: 멀티미디오 데이터 ex. 텍스트, 이미지, 비디오 등

- 반정형 데이터: 구조가 있지만 정형만큼 고정되지는 않은 데이터 ex. XML, json, 그래프

* XML, json: 파일이지만 관계를 가지고 있는 데이터

* 그래프: 이웃 노드 

 

데이터베이스의 특징

 

<설계 관점>

 

- 공유 데이터

: 사용 목적이 다른 사용자들을 모두 고려하여 데이터베이스를 구성해야 함

ex. 회사의 sales팀, 마케팅팀

 

- 통합 데이터

: 최소한의 통제 가능한 중복 허용

-> 정규화, 성능 고려한 부분적 반정규화

 

 

<DBMS>

- 트랜잭션, 병행제어: 실시간 접근 및 동일한 데이터에 대한 동시 공용 가능

ex. 한 부서가 수정한 내용을 다른 부서도 볼 수 있어야 함 !

- 저장 데이터

: 실제로는 물리적 저장 매체에 데이터 저장(물리적 구조, 인덱싱)

- 데이터베이스는 계속적으로 변화 -> 데이터 무결성 및 정합성(일관성)의 유지

 

<데이터 언어(SQL)>

- (저장된 주소나 위치 기반의 접근이 아닌) 내용에 의한 참조를 통해 데이터에 접근

 

<공통>

- 운영 데이터

: 조직 운영에 필요한 데이터로 지속적으로 유지 관리 되어야 함

 

데이터베이스 설계 및 데이터 저장과 관련된 기본 개념

 

<데이터 모델(Data Model)>

 

- 데이터 모델을 통해 설명되는 개념적/논리적 도구들

: 데이터, 데이터가 저장되는 구조

: 데이터 관계

: 데이터 의미

: 데이터 제약 조건 -> 일관성 유지를 위한 제약조건

 

- 데이터 모델의 종류

: 개체-관계 모델(Entity-Relationship Model): 데이터베이스 설계를 위한 개념적 모델

: 관계 데이터 모델(Relational Data Model): 관계형 데이터베이스 설계를 위한 논리적 모델

* 연관된 데이터를 표 형태(row/column)로 구조화해 표현

* 관계 데이터 모델에서 모든 데이터는 릴레이션으로 표현

* 관계 대수: 릴레이션을 조작하기 위해 정의된 연산들 집합

관계 데이터 모델

 

: 객체지향 데이터 모델, 객체-관계 데이터 모델

: 반정형 데이터 모델(XML, 그래프 등)

: 네트워크형, 계층형 모델(관계 데이터 모델 이전)

 

-> 개체-관계 모델 & 관계 데이터 모델만 배울 것이다.

 

<스키마(Schema)와 인스턴스(Instances)>

 

- 스키마

: 데이터베이스에 저장되는 데이터 구조와 제약조건 등의 명세

-> 한 번 정의된 이후에는 자주 변경 x

 

- 인스턴스

: 정의된 스키마에 따라서 데이터베이스에 실제로 저장된 값

-> 계속해서 변함

 

 

데이터베이스의 추상화 레벨

 

<3단계 데이터베이스 구조(3-level Database Architecture)>

- 데이터베이스 내부 구조와 동작 방식은 복잡하고 방대

-> 각 사용자별로 필요한 수준까지만 데이터베이스를 선택적으로 사용할 수 있도록 3단계로 추상화

-> 데이터 독립성 확보

 

1. View Level(외부 단계) - Subschema(외부 스키마)
2. Logical Level(개념 단계) - Logical Schema(개념 스키마, 일반적으로 우리가 말하는 스키마)
3. Physical Level(내부 단계) - Physical Schema(내부 스키마)

 

 

 

View Level(외부 단계)

사용자들(사용자/응용프로그래머)이 자신의 목적에 맞는 부분만 골라서 사용

"자신한테만 의미 있는 논리적 구조" = "Subschema"

=> 사용자 목적에 따라 여러 개 존재 가능

 

Logical Level(개념 단계) - 일반적인 스키마

조직 전체, DBMS, DBA의 관점 (모든 사용자 관점의 데이터 통합)

"한 조직 전체의 논리적 구조" = "Logical Schema"

 

Physical Level(내부 단계)

데이터가 저장되는 물리적 저장 매체 관점

-> 실제로 저장되는 방법 정의 = "Physical Schema"

ex. "학생의 정보를 모두 넣으면 총 인스턴스 크기는 20byte일 것이다"

=> 하나만 존재 가능

 

 

===> <추상화 레벨의 최종 목적>: "데이터 독립성 실현"

세 단계 중 하나가 수정된다고 해서 다른 단계에 지장이 가면 안 됨

-> 수정되더라도 인터페이스만 수정하면 되게끔

* 인터페이스 = 사상

외부-개념단계 사상 -> 논리적 데이터 독립성

개념-내부단계 사상 -> 물리적 데이터 독립성

 

데이터 사전

: 데이터베이스 활용 및 관리를 위한 메타 데이터의 저장

 

<데이터 사전에 저장된 메타 데이터>

- 데이터베이스 스키마

- 스키마 간 사상 정보

* 수정됐을 때 해당 사상(인터페이스) 불러와야 DBMS가 처리 가능

- 무결성 제약 조건

* 기본키 관련 제약 조건 등

- 사용자의 권한 정보

 

<데이터 사전 = 시스템 카탈로그>

: 관리할 때 필요 -> DBMS가 스스로 생성 및 유지

: 일반 사용자도 접근 가능하지만 검색만 가능하고 내용 추가/수정은 불가

'백엔드 > SQL' 카테고리의 다른 글

관계형 데이터 모델과 관계대수(2)  (0) 2025.04.02
관계형 데이터 모델과 관계대수(1)  (0) 2025.03.30
데이터 언어 & 사용자  (0) 2025.03.29
SQL 첫걸음 3~4장  (0) 2025.03.29
데이터베이스관리시스템(DBMS)  (0) 2025.03.28