-
Ch 02. 데이터베이스 시스템 개념과 아키텍처학교 수업/2-2 데이터베이스 기초 2021. 9. 12. 18:15반응형
1. 데이터 모델
- 데이터 모델의 특징
- 데이터베이스의 구조를 명시하기 위해 사용할 수 있는 개념들의 집합
- 데이터 추상화를 제공
- 대부분의 데이터 모델은 데이터베이스에서 검색과 갱신을 수행하는 기본 연산들의 집합을 포함
- 시스템 카탈로그에 저장하는 데이터베이스 기술
- 데이터 모델의 3요소(S, O, C)
- Structure, Operation, Constraint
- 데이터 모델의 분류
- 저수준/물리적 데이터 모델
- 어떻게 데이터가 컴퓨터의 저장 장치에 저장되는지에 대한 세부 사항을 명시하는 개념을 제공
- 레코드 형식, 레코드 순서, 접근 경로등과 같은 정보를 나타냄
- 고수준/개념적 데이터 모델
- 많은 사용자들이 데이터를 인식하는 방법에 대한 개념을 제공
- 엔티티(entity), 속성(attribute), 관계(relationship)과 같은 개념들을 사용함
- 표현/구현 데이터 모델
- 개념적 데이터를 물리적 데이터로 바꿔주는 중간 모델
- 저수준/물리적 데이터 모델
2. 스키마(schema)
- 스키마
- 데이터베이스에서의 자료의 구조와 자료의 타입, 자료간의 관계를 정의한 것 = 데이터 베이스 구조를 설명함 = meta data
- 잘 변하지 않는 정적 정보이므로 내포(intension)라고도 부름
- 스키마 다이어그램 : 데이터베이스 스키마 구조를 그림으로 표현한 것
3. 데이터베이스 상태
- 스냅샷(snapshot), 스키마의 외연(extension)이라고도 부름
- 특정 시점에 데이터베이스에 들어 있는 데이터
- 데이터베이스 내의 어커런스(발생, occurence) 또는 인스턴스(instance)들의 현재 집합임
4. 3단계 스키마 구조
- 데이터베이스 방식의 세가지 특징
- 자기 기술성을 갖도록 데이터베이스 기술을 저장하는 카탈로그의 사용
- 프로그램과 데이터 사이의 격리(프로그램-데이터 독립성과 프로그램-연산의 독립성)
- 다양한 사용자 뷰 제공
- 3단계 스키마 구조
- 사용자의 응용과 데이터베이스를 분리하기 위해 만들었음
- ANSI / SPARC Architecture
- 내부 단계(internal level): 내부 스키마(internal schema)를 가지고, 데이터베이스의 물리적 저장 구조를 설명함
- 개념 단계(conceptual level): 개념 스키마(conceptual schema)를 가지고, 모든 사용자를 위한 전체 데이터베이스 구조를 설명함(세부사항은 은폐하고, 엔티티/데이터 타입/관계/사용자 연산/제약 조건을 설명하는데 집중)
- 외부 단계(external level) 또는 뷰 단계(view level): 여러 개의 외부 스키마와 사용자 뷰를 가지고 있음. 특정 사용자 그룹이 관심을 갖는 데이터베이스의 부분을 설명함
- 실제 데이터는 물리적 단계(physical level)에만 저장되어 있고, 사상(mapping)이 여러 번 일어나서 융통성은 좋을지 몰라도 성능면에서는 단점이 될 수 있음(시간이 많이 소요됨)
5. 데이터 독립성
- 데이터 독립성을 제공하기 위해 데이터베이스를 위와 같이 3단계로 만들었음
- 데이터 독립성의 종류
- 논리적 데이터 독립성(LDI, Logical Data Independence)
- 외부 스키마나 응용 프로그램을 변경하지 않으면서 개념 스키마를 변경하는 능력(= 개념 스키마가 변해도 외부 스키마나 응용 프로그램은 변화하지 않음)
- 물리덕 데이터 독립성(PDI, Physical Data Independence)
- 개념/외부 스키마를 변경하지 않으면서 내부 스키마를 변경하는 능력(= 내부 스키마가 변해도 개념/외부 스키마가 변화하지 않음)
- 논리적 데이터 독립성(LDI, Logical Data Independence)
- 특징
- 두 레벨 사이에 있는 사상(mapping)이 스키마가 변하는 것을 차단하고 자신이 변화함
6. 3단계 구조와 데이터 독립성의 관계
데이터 독립성을 어떻게 구현하는가? -> 3단계 구조로 만들면 된다.
왜 3단계 구조로 만드는 것인가? -> 데이터 독립성을 제공하기 위해서
7. 데이터베이스 언어
- 데이터 정의어(DDL: Data Definition Language)
- 데이터베이스 관리자(DBA)나 데이터베이스 설계자(DB Designer)가 사용하고 스키마를 정의함
- 종류에 따라 저장 구조 정의어(SDL: Storage Definition Language)와 뷰 정의어(VDL: View Definition Language)가 있음
- 데이터 조작어(DML, Data Manipulation Language)
- 데이터에 대한 검색, 삽입 삭제, 수정을 하는 언어
- 비절차적 데이터 조작어(Nonprocedural DML, High level DML)
- 사용자가 무슨 데이터를 원하는지만 적고, 어떻게 접근하여 데이터를 처리할지는 설명하지 않음
- 한 데이터 조작어 명령어로 여러 개의 레코드들을 검색할 수 있어서 set-of-records-at-a-time DML(set-of-a-time DML), set-oriendted DML이라고도 부름
- 어떤(which) 데이터를 추출할 것인가만 적기 때문에 선언적(declarative) 언어라고도 부름
- 절차적 데이터 조작어(Procedural DML, Low level DML)
- 무슨 데이터를 원하는지, 어떻게 접근하여 데이터를 처리할지 전부 사용자가 지정함
- 한 데이터 조작어 명령어로 한 개의 레코드, 객체 단위로만 처리할 수 있어서 record-at-a-time DML이라고도 부름
- 범용 프로그래밍 언어 내에 데이터 조작어 명령어가 삽입된 경우에 범용 프로그래밍 언어는 호스트 언어(host language)라고 부르고, 데이터 조작어는 데이터 부속어(data sublanguage)라고 부름
- 질의어(query language): 독립적이고 대화식으로 사용할 수 있는 언어
- SQL: 포괄적인 통합형 언어(Comprehensive integrated language), 국제 표준
8. DBMS 구성 모듈
- 저장 데이터 관리자(SDM: Stored Data Manager)
- 디스크에 저장되어 있는 DBMS의 정보(데이터베이스 or 카탈로그)에 대한 접근을 제어
- 디스크에 대한 접근은 디스크의 입출력을 스케줄하는 운영체제가 제어함
- 하지만 성능에 큰 영향을 줄 수 있는 버퍼 관리(buffer management)는 별도로 관리함
- DDL 컴파일러
- 스키마를 정의하므로 스키마들에 대한 정보(meta-data)를 DBMS 카탈로그 안에 저장
- 런타임 데이터베이스 처리기(Runtime Database Processor)
- 데이터베이스 접근에 대한 모든 기능을 담당. 검색/갱신 연산을 받아서 DB에 적용이 되게함
- 질의(query) 컴파일러
- 질의어(query language)를 번역해서 질의 최적화(query optimizer)에 보내 효율적인 방법을 선택하고, 런타임 데이터베이스 처리기로 보냄
- 프리컴파일러(precompiler)
- 호스트 언어로 작성된 코드에서 DB쪽 코드를 분리하여 호스트 언어와 데이터 부속어를 각각 다른 컴파일러로 돌릴 수 있게 구분해줌
9. 데이터베이스 시스템 유틸리티
- 적재(loading)
- 백업(backup)
- 파일 재조직(file reorganization)
- 성능 모니터링(performance monitoring)
10. 도구, 응용 환경, 통신 장비
- CASE Tools, Data Dictionary(data repository) system, Information repository
- 응용 개발 환경(Application Development Environment)
- 통신 소프트웨어(communications software)
11. 컴퓨터 시스템 환경
- 중앙집중식 DBMS 아키텍처(Centralized DBMS Architecture)
- 하나의 컴퓨터에 모든 DBMS의 기능, 응용 프로그램 수행, 사용자 인터페이스 처리 등이 수행되었음
- 유저들은 단말기나 컴퓨터를 통해 서버에 접속하고, 서버에서 모든 일을 함
- 클라이언트/서버 아키텍쳐(Client/Server Architecture)
- 웬만한 일은 단말기에서 하고, 중요한 일만 서버에서 함
- 서버는 서비스를 해주고, 클라이언트는 서비스를 요청함
- 어떤 서비스냐에 따라 File / Printer / Web / DBMS 서버로 나뉨
12. 2층 클라이언트/서버 아키텍쳐(Client/Server Two Tier Architecture)
- 특징
- 서비스를 해주면서 동시에 서비스 요청도 함
- SQL처리와 관련된 질의와 트랜잭션 기능이 서버에 남아있으면 SQL Server / Query Server / Transaction Server라고 부름
- 클라이언트: 인터페이스 프로그램, 응용 프로그램
- ODBC(Open Database Connectivity)
- 클라이언트에 제공되는 API(Application Programming Interface) 규칙에 따라서 작성하면 어느 DBMS든지 접근이 가능함
- 대부분의 DBMS 업체는 ODBC 드라이버만 제공하면 끝
- JDBC(Java Database Connectivity)
- 자바 언어를 위한 표준
13. 3층/N층 클라이언트/서버 아키텍쳐(Client/Server Three/N Tier Architecture)
- 중간 계층(Intermediate Layer, Middle Tier)를 응용 서버나 웹 서버라고 부름
- 응용 프로그램들을 수행하고, 데이터베이스 서버에 저장된 데이터에 접근하는데 사용되는 비즈니스 규칙들을 저장함으로써 유저와 서버 사이의 연결점 역할을 수행함
14. DMBS의 분류
- 데이터 모델에 따른 분류
- 관계(relational) / 계층(hierarchical) / 네트워크(networks) / 객체(object) / 객체-관계(object-related) 데이터 모델, XML(eXtened Markup Language), DBMS등이 있음
- 빅데이터 시스템은 NOSQL
- DBMS가 허용하는 사용자의 수
- 단일 사용자 시스템(Single user system)
- 다수 사용자 시스템(Multi user system)
- 데이터가 분산되어 있는 사이트의 수
- 중앙집중식 DBMS(Centralized DBMS)
- 분산 DBMS(DDBMS: Distribute DBMS)
- 동질 분산 DBMS(homogeneous DDBMS): 모든 사이트에서 같은 DBMS를 사용
- 이질 분산 DBMS(heterogeneous DDBMS): 각 사이트에서 다른 DBMS를 사용
- 연합 DBMS(Federated DBMS): 여러 이질 DBMS가 저장하고 있는 데이터베이스에 접근하기 위한 중간 층 소프트웨어를 개발하여 사용하는 DBMS
- 비용
- 엑세스 경로 유형 옵션 - 역파일 구조(검색엔진)을 위한 전용 DBMS
- 목적(특수 목적이냐 범용 목적이냐)
반응형'학교 수업 > 2-2 데이터베이스 기초' 카테고리의 다른 글
[Oracle SQL] ON UPDATE CASCADE 대체 방법 (1) 2021.10.12 Ch 06. 더 복잡한 SQL 검색 질의 (0) 2021.09.28 Ch 05. 기본 SQL (0) 2021.09.14 Ch 04. 관계 데이터 모델과 관계 데이터베이스 제약 조건 (0) 2021.09.12 Ch 01. 데이터베이스와 데이터베이스 사용자 (0) 2021.09.12 - 데이터 모델의 특징