본문 바로가기

Contact English

【데이터베이스】 2강. 데이터베이스 기본

 

2강. 데이터베이스 기본

 

추천글 : 【데이터베이스】 데이터베이스 목차


1. 데이터베이스 개요 [본문]

2. 데이터 프로세스 [본문]

3. 모델링 [본문]

4. 트랜잭션 [본문]


 

1. 데이터베이스 개요 [목차]

⑴ 데이터베이스의 정의

⑵ 데이터베이스의 특징

실시간 접근성(Real Time Accessibility) : 사용자 질의에 대하여 즉시 처리하여 응답하는 특징

계속적인 진화(Continuous Evolution) : 삽입, 삭제, 갱신을 통하여 항상 최근의 정확한 데이터를 동적으로 유지

동시 공유(Concurrent Sharing) : 여러 사용자가 동시에 원하는 데이터를 공용

내용에 의한 참조(Content Reference) : 데이터를 참조할 때 튜플의 주소에 의하지 않고 내용에 따라 참조

데이터의 논리적, 물리적 독립성(Independence)

논리적 독립성 : 응용 프로그램과 데이터베이스를 독립시킴으로써 데이터의 논리적 구조를 변경시키더라도 응용프로그램은 변경되지 않는 특징

물리적 독립성 : 응용 프로그램과 보조기억장치와 같은 물리적 장치를 독립시킴으로써, 데이터베이스 관리 시스템의 성능향상을 위해 새로운 디스크를 도입하더라도 응용프로그램에는 영향을 주지 않고 데이터의 물리적 구조만 변경될 수 있는 특징

⑶ 스키마(Schema) : 데이터베이스의 구조와 제약조건에 관한 전반적인 명세(Specification)

① 예 : 데이터 개체, 속성, 관계 및 제약조건

특징 1. 스키마는 데이터 사전(Data Dictionary)에 저장

특징 2. 스키마는 시간에 따라 불변인 특성을 갖는다.

④ 종류 : 외부 스키마, 논리 스키마, 내부 스키마

○ 외부 스키마(서브 스키마)

○ 논리 스키마

○ 내부 스키마

⑷ 데이터베이스 예시

① amazonaws

② google firebase : 앱 푸시 알람 같은 것도 절대적으로 firebase를 거쳐서 씀

 

 

2. 데이터 프로세스 [목차]

⑴ 데이터베이스 사용자

① 일반 사용자

○ 데이터베이스를 실제로 사용하는 사람

○ 외부 스키마를 통해 DBMS에게 질의어(Query)를 전송

② 응용 프로그래머

○ 일반 사용자가 DB를 쉽게 사용하도록 응용 프로그램 개발

○ 외부 스키마를 통해 DBMS에게 DML을 전송

③ 데이터베이스 관리자(DBA, Database Administrator)

○ DBMS를 거쳐 DB 시스템의 전체적인 관리 운영

○ 개념 스키마를 통해 DBMS에게 DDL, DCL을 전송

④ data architect : 데이터를 체계적, 구조적으로 정의/모델링

⑤ data administrator : 데이터의 모델링, 보안, 활용을 담당

⑵ DBMS

① 목표

○ data independence

○ resource management (e.g., memory, disk, CPU)

○ transaction

○ log recovery

○ concurrency control

② 구성

질의어 처리기 : 질의어를 처리하고 런타임 데이터베이스 처리기에게 전송

DML 컴파일러 : DML을 처리하고 런타임 데이터베이스 처리기에게 전송

DDL 컴파일러 : DDL을 처리하고 저장 데이터 관리자에게 전송

트랜잭션 관리자 : 런타임 데이터베이스 관리자의 업무를 스케줄링

런타임 데이터베이스 처리기 : 스케줄링에 따라 할당된 일을 처리. 각 결과는 저장 데이터 관리자에게 전송

저장 데이터 관리자 : 데이터 사전, DB(물리 스키마)에 입력하거나 외부스키마나 개념스키마에 출력

⑶ 데이터 사전(Data Dictionary) = 시스템 카탈로그(System Catalog)

 

 

3. 모델링 [목차]

⑴ 데이터베이스 모델링 : 요구조건 분석 → 설계 → 구현 → 운영 및 개선

⑵ 설계 : 개념적 설계 또는 트랜잭션 설계 → 논리적 설계 → 물리적 설계

① 개념적 설계 : 데이터베이스를 구성할 데이터의 조건과 표현에 치중하여 설계

도구 1. E-R 모델

 

E-R 모델

Figure. 1. E-R 모델

 

○ P. Chen 박사에 의해 최초로 제안

○ 개체는 직사각형, 속성은 타원, 관계는 마름모로 표현

도구 2. 객체 지향 모델

 

객체 지향 모델

Figure. 2. 객체 지향 모델

 

② 트랜잭션 설계 : 트랜잭션 명세를 기준으로 설계

③ 논리적 설계 : 개념적 설계 결과물을 논리적으로 구현 가능한 데이터 모델로 변환하고 스키마를 정의

매핑룰(Mapping Rule) : 개념적 설계 결과를 관계형 데이터베이스 구조로 변환하는 과정

개체는 릴레이션으로, 속성은 릴레이션의 항목으로, 식별자는 기본키로, 관계는 외래키로 변환

④ 물리적 설계 : 논리적 설계 결과물을 실제 처리하기에 알맞게 내부 저장 장치 구조와 접근 경로 등을 설계

⑶ 데이터 모델링

① 관계 데이터 모델 : 표 데이터 모델링이라고도 함. 2차원 구조의 테이블(릴레이션) 형태로 표현. 가장 일반적

② 네트워크 데이터 모델 : 망 데이터 모델이라고도 함. 레코드 타입 간 관계를 그래프로 표현

③ 계층 데이터 모델 : 트리 데이터 모델이라고도 함. 트리 구조로 표현

 

 

4. 트랜잭션 [목차]

⑴ 개요

① 데이터베이스 내에서 하나의 작업 처리를 위한 논리적 작업 단위

② 즉, 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 일련의 연산 집합

③ 하나의 트랜잭션은 정상적으로 종료될 경우 COMMIT 연산이 수행됨

비정상적으로 종료될 경우 ROLLBACK 연산이 수행됨

⑵ 트랜잭션의 특성 : 데이터의 무결성을 보장하기 위하여 갖추어야 하는 특성. ACID 

① 원자성(atomicity) : 트랜잭션의 연산은 데이터베이스에 모두 반영되든지 아니면 전혀 반영되지 않아야 함

② 일관성(consistency) : 트랜잭션 수행이 성공적으로 완료되면 언제나 일관성 있는 데이터베이스 상태로 변환함

③ 독립성(격리성, isolation) : 여러 트랜잭션들이 동시에 수행되어도 그 결과는 순차적으로 실행된 결과와 같아야 함

④ 영속성(durability) : 시스템에 오류가 발생하더라도 트랜잭션에 의해 변경된 내용은 영구적으로 유지되어야 함

트랜잭션 연산 : COMMIT, ROLLBACK

⑷ 트랜잭션의 상태도

① 실행 : 현재 실행 중인 상태

② 부분완료 : 실행을 모두 마치고, 데이터베이스에 결과를 저장하기 직전 상태

③ 완료 : 트랜잭션의 연산을 정상적으로 마치고, 연산 결과를 데이터베이스에 저장한 상태

④ 실패 : 트랜잭션 실행 중 오류에 의해 더 이상 진행될 수 없는 상태

⑤ 철회 : 트랜잭션 실행이 실패되어 복귀되는 상태

 

입력: 2017.10.02 08:00