01 데이터베이스 시스템의 정의
DBS : 데이터베이스에 데이터를 저장하고, 이를 관리하여 조직에 필요한 정보를 생성해주는 시스템
02 데이터베이스의 구조
- 스키마
- 데이터 구조, 제약조건을 정의한 것
- 인스턴스
- 스키마에 따라 데이터베이스에 실제로 저장된 값
- 3단계 데이터베이스 구조
-
외부 단계 (External level) 사용자 관점 외부 스키마 A사용자: 이름, 전화번호만 봄
B사용자: 이름, 주소, 생일만 봄개념 단계 (Conceptual level) 조직 전체 관점 (통합된 구조) 개념 스키마 이름, 전화번호, 주소, 생일, 학번, 전공 등 내부 단계 (Internal level) 저장 방식, 성능 최적화 관점 내부 스키마 B+트리 인덱스, 저장 블록 구조 등
- 하나의 데이터베이스를 관점에 따라 세 단계로 나눈 것
- 외부 단게 : 개별 사용자 관점 (집주인) - 개념
- 하나의 데이터베이스에 외부 스키마(=서브 스키마)가 여러 개 존재할 수 있음
- 외부 단계에서 사용자에게 데이터베이스를 정의한 것
- 각 사용자가 생각하는 db 모습, 즉 논리적 구조로 사용자마다 다름
- 개념 단계 : 조직 전체의 관점 (관리인) - 논리
- 하나의 데이터베이스에 개념 스키마가 하나만 존재함
- 개념 스키마
- 전체 데이터베이스에 어떤 데이터가 저장되는지, 데이터들 간에는 어떤 관계가 존재하고 어떤 제약조건이 있는지에 대한 정의뿐만 아니라, 데이터에 대한 보안 정책이나 접근 권한에 대한 정의도 포함
- 내부 단계 : 저장 장치의 관점 (건설 업체) - 물리
- 하나의 데이터베이스에 내부 스키마가 하나만 존재함
- 내부 스키마
- 전체 데이터베이스가 저장 장치에 실제로 저장되는 방법을 정의한 것, 레코드 구조/필드 크기/레코드 접근 경로 등 물리적 저장 경로를 정의 (data 압축기법)
- 각 단계별로 다른 추성화 제공 : 내부 단계에서 외부 단계로 갈수록 추상화 레벨이 높아짐
- 외부 단게 : 개별 사용자 관점 (집주인) - 개념
- 쉽게 구분하는 법
질문 외부 단계 개념 단계 내부 단계 누가 봄? 사용자 / 응용프로그램 관리자(DBA) 시스템(DBMS) 뭘 정의? 사용자 눈에 보이는 데이터 DB 전체의 구조 저장되는 방식 예시 사용자별 뷰(view) 테이블 관계, 제약조건 인덱스, 저장 블록 비유 영화에서 편집된 영상 촬영본 전체 실제 카메라 저장 파일
- 하나의 데이터베이스를 관점에 따라 세 단계로 나눈 것
- 스키마 사이 대응 관계
- 외부/개념 사상 : 응용 인터페이스
- 개념/내부 사상 : 저장 인터페이스
- db를 3단계 구조로 나누고 단계별로 스키마르 유지하며 스키마 사이의 대응 관계를 정의하는 궁극적 목적 : 데이터 독립성
- 데이터 독립성 이란?
- 하위 스키마를 변경하더라도 상위 스키마는 영향 안받음
- 논리적 데이터 독립성
- 개념 스키마가 변경되어도 외부 스키마는 영향 X
- 개념 스키마가 변경되면 관련된 외부/개념 사상만 정확하게 수정해주면 됨
- 물리적 데이터 독립성
- 내부 스키마가 변경되어도 개념 스키마는 영향 X
- 내부 스키마가 변경되면 관련된 개념/내부 사상만 정확하게 수정해주면 됨
- 데이터 사전 (= 시스템 카탈로그, data dictionary)
- 메타데이터 (db에 저장되는 데이터에 관한 정보)를 유지하는 시스템 데이터베이스
- 스키마, 사상 정보, 다양한 제약 조건 등을 저장
- dbms가 스스로 생성하고 유지
- 일반 사용자도 접근 가능, but 검색만 가능!
- 데이터 디렉터리
- 데이터 사전에 있는 data에 실제로 접근하는 데 필요한 위치 정보를 저장하는 시스템 데이터베이스
- 일반 사용자 접근 불가
- 사용자 데이터베이스
- 사용자가 실제로 이용하는 data가 저장되어 있는 일반 데이터베이스
03 데이터베이스 사용자
- 데이터베이스 관리자
- 데이터 정의어(DDL) & 데이터 제어어(DCL) 사용
- 최종 사용자 = 일반 사용자
- 데이터 조작어(DML)
- 응용 프로그래머
- 데이터 조작어(DML)
04 데이터 언어
사용자와 데이터베이스 관리 시스템 간의 통신 수단
✅ SQL 언어는 총 4가지
| 분류 | 이름 | 하는 일 | 주요 키워드 |
| 1️⃣ DDL | Data Definition Language | 데이터 구조 정의(스키마 정의, 수정, 삭제..) | CREATE, ALTER, DROP |
| 2️⃣ DML | Data Manipulation Language | 데이터 조작 (읽고, 쓰고, 바꾸고, 지우기) | SELECT, INSERT, UPDATE, DELETE |
| 3️⃣ DCL | Data Control Language | 접근 권한/보안 관리 (내부적 필요한 규칙, 기법 정의) | GRANT, REVOKE |
| 4️⃣ TCL | Transaction Control Language | 트랜잭션 제어 | COMMIT, ROLLBACK |
2️⃣ DML 데이터 조작어
- 절차적 데이터 조작어 : what을 how까지 전달
- 두부를 사오는 방법까지 구체적으로 알려주는 심부름 상황
- 비절차적 데이터 조작어(= 선언적 언어) : 목적만 알려주는
- 단순히 두부를 사오라고만 지시하는 심부름 상황
3️⃣ DCL 데이터 제어어
- 사용목적
1) 무결성 - 정확하고 유효한 데이터만 유지
2) 보안 - 허가받지 않은 사용자의 데이터 접근 차단, 허가된 사용자에게 권한 부여
3) 회복 - 장애가 발생해도 데이터 일관성 유지
4) 동시성 제어 - 데이터 동시 공유 지원

'학교 수업 정리 > 데이터베이스' 카테고리의 다른 글
| ch8. 데이터베이스 설계 (0) | 2025.04.26 |
|---|---|
| 관계 데이터 모델 (0) | 2025.04.25 |
| 데이터베이스 관리 시스템 (0) | 2025.04.17 |