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 |