데이터는 비즈니스 가치를 극대화 시키는 핵심엔진이며 데이터를 분석하면 그 안에서 이전에 예측하지 못했던 새로운 통찰력(Insight)를 얻을 수 있습니다. 데이터베이스 없이 종이 혹은 파일에 기록할 때는 동일한 데이터라도 실시간 공유할 수 있는 것이 한정적이므로 데이터가 중복되어 저장될 수 밖에 없었지만 데이터베이스는 이렇게 중복된 데이터를 한 군데 집약시켜서 중복을 배제한 상태에서 관리합니다.
위의 그림은 데이터베이스 정의를 구성하는 4가지 요소입니다
1. 통합된 데이터(Integrated Data)
- 데이터가 원칙적으로 중복되어 있지 않다는 것을 의미
- 최소의 중복(Minimal Redundancy)이나 통제된 중복(Controlled Redundancy)
2. 저장된 데이터(Stored Data)
- 컴퓨터가 접근할 수 있는 저장 매체에 저장된 데이터
3. 운영 데이터(Operational Data)
- 컴퓨터가 접근할 수 있는 저장 매체에 저장된 데이터
4. 공용 데이터(Shared Data)
- 조직에 있는 여러 응용 시스템들이 공통으로 생성하고 유지하며 이용하는 공통의 데이터
데이터베이스에 저장된 구조와 값을 처리하기 위해서는 적절한 데이터베이스 처리 언어가 필요하며 처리 언어를 살펴보면 다음과 같습니다.
종류 | 명령어 | 설명 |
데이터 조작어 (Data Manipulation Language) |
SELECT | 데이터베이스에 들어 있는 데이터를 조회하거나 검색하기 위한 명령어를 말하는 것으로 RETRIEVE라고도 함 |
INSERT UPDATE DELETE |
데이터베이스의 테이블에 들어 있는 데이터에 변형을 가하는 명령어를 말함 가) 절차적 데이터 조작어(Procedural DML) ☞ 사용자가 무슨 데이터를 원하며, 어떻게 접근하여 처리해야 하는지를 명세하는 저급 데이터 언어로 한 번에 하나의 레코드를 검색하여 호스트 언어와 함께 처리하는 특성을 가짐 ☞ 독자적으로 사용되지 못하고 응용 프로그램 속에 삽입(Embedded)되어 사용 나) 비절차적 데이터 조작어(Nonprocedural DML) ☞ 사용자가 무슨 데이터를 원하는지만 명세하고, 어떻게 접근하여 처리할 것인가에 대해서는 DBMS가 처리하는 고급 데이터 언어 ☞ 한번에 여러 개의 레코드를 검색하여 처리하는 특성을 가짐 ☞ 터미널을 통해 사용자와 대화식으로 사용됨 데이터 부속어(Data Sublanguage) ☞ 호스트 프로그램 속에 삽입되어 사용되는 DML |
|
데이터 정의어 (Data Definition Language) |
CREATE ALTER DROP RENAME |
테이블과 같은 데이터 구조를 정의하는데 사용되는 명령어들로 그러한 구조를 생성하거나 변경하거나 삭제하거나 이름을 바꾸는 데이터 구조와 관련된 명령어들을 말함 |
데이터 제어어 (Data Control Language) |
GRANT REVOKE |
데이터베이스에 접근하고 객체들을 사용하도록 권한을 주고 회수하는 명령어를 말함 DCL의 내용으로는 데이터 보안(Security), 무결성(Integrity), 회복(Recovery), 병행수행제어(Concurrency Control)이 있음 |
트랜잭션 제어어 (Transaction Control Language) |
COMMIT ROLLBACK |
논리적인 작업의 단위를 묶어서 DML에 의해 조작된 결과를 작업단위 별로 제어하는 명령어를 말함 |
데이터베이스 관리 시스템(DBMS)는 파일 시스템의 문제점인 종속성과 중복성의 문제를 해결하고자 고안된 시스템으로 응용 프로그램과 데이터 사이의 중재자로서 모든 응용 프로그램들이 데이터베이스를 사용할 수 있도록 관리해 주는 소프트웨어 시스템이며 아래의 그림은 DBMS의 개념도입니다.
데이터 모델링은 현실세계의 업무 프로세스를 추상화하여 데이터베이스의 데이터로 표현하기 위한 설계과정입니다.
모델링에는 아래와 같은 세 가지 중요한 요소가 있습니다.
관점 | 내용 | 핵심 |
모델리의 데이터 관점 | 업무가 어떤 데이터와 관련이 있는지 또는 데이터간의 관계는 무엇인지에 대해서 모델링 하는 방법 | 정보분석 |
모델링의 프로세스 관점 | 업무가 실제하고 있는 일은 무엇인지 또는 무엇을 해야 하는지를 모델링 하는 방법 | 프로세스분석 |
데이터와 프로세스의 상관모델링에 대한 관점 | 업무가 처리하는 일의 방법에 따라 데이터는 어떻게 영향을 받고 있는지를 모델링 하는 방법 | 데이터 프로세스 연관성 분석 |
구체적으로 정의되지 않은 아날로그 세상에서 이것의 실체를 구분하여 데이터베이스화 하기 위해서는 추상화 수준이 높은 단계에서부터 낮은 단계로의 작업 절차가 필요합니다. 일반적으로 데이터베이스 설계와 구축 프로세스는 계획단계 이후 분석, 설계, 개발, 테스트, 전환의 단계를 수행한다고 할 수 있으며 데이터모델링과 물리적인 데이터베이스 설계, 그리고 데이터베이스를 구축하고 변경관리하는 부분 및 데이터베이스 성능 튜닝 데이터베이스 전환의 작업이 핵심적인 일이라고 할 수 있습니다. 또한 각 작업들은 상호간에 검증이 발생이 되어 잘못된 설계나 구축을 예방하는 역할을 하게 됩니다.
1. 요구분석
- 기본 프로세스별 정보항목 표준화
- 요구사항 기술적 사항 확정
- 정형화된 모델링 적용검토 및 정규화 적용
- 요구사항 검증
- 부정확한 요구사항에 대한 애매모호성 제거
- 사용자의 요구조건을 수집하고 분석해서 공식적인 요구 조건을 명세
- 개체, 애트리뷰트, 관계성, 제약조건 등 정적구조 요구
- 트랜잭션 유형/빈도 등 동적구조 요구
- 경영 목표, 정책, 규정 등 범 기관적 요구
2. 개념 데이터 모델링
- 속성들로 기술된 개체 타입(Entity type)과 이 개체 타입들 간의 관계를 이용하여 현실 세계를 표현하는 방법
- 주제영역과 핵심데이터간 관계정의
- 업무중심적, 포괄적 수준의 모델링으로 추상화
- 전사적데이터 모델링, EA수립시 사용
- 개체-관계 모델(Entity-Relationship Model)
- 핵심 엔터티 및 식별자 추출
- ERD 작성
3. 논리적 데이터 모델링
- 레코드 타입에 기초를 둔 논리적 개념을 이용하여 데이터 필드로 기술된 데이터 타입과 이 데이터 타입들 간의 관계를 이용하여 현실 세계를 표현하는 방법
- 목적 시스템의 업무에 대한 키, 속성, 관계를 표현
- 식별자 확정
- 정규화 수행
- 재사용성
4. 물리적 데이터 모델링
- 실제 DBMS의 특성에 맞게 이식하는 물리적 스키마를 만드는 일련의 작업
- 저장 레코드 양식 설계
- 레코드 집중화
- 접근 경로 설계
- 컬럼의 데이터 형식 정의
- 제약조건 정의
- 인덱스 정의
5. 구축
- 실제 데이터 모델링을 통한 물리적인 데이터베이스 시스템 구축
- 데이터베이스 스키마 생성
- 공백 데이터베이스 파일 생성
- 데이터 전환 및 적재
6. 운영/튜닝
- 성능 개선
- 안정성 확보
- 가용성
데이터 모델링은 3-Level 아키텍처와 데이터 독립성의 이론에 입각하여 전개하면 무결성과 성능 관점에서 안정적인 결과가 나올 수 있습니다.
- 3-Level 아키텍처의 스키마 종류
스키마 | 내용 | 관리 정보 |
외부 스키마 (External Schema) |
☞ 데이터베이스의 개개 사용자나 응용 프로그래머가 접근하는 데이터베이스를 정의한 것 ☞ 개인이나 특정 응용프로그램에 제한된 전체 데이터베이스의 한 논리적 부분 ☞ 서브 스키마(Sub schema) |
☞ 해당 응용 프로그램이나 사용자에 관련된 개체와 관계 정보 |
개념 스키마 (Conceptual Schema) |
☞ 범 기관적 입장에서 데이터베이스를 정의한 것 ☞ 모든 응용 시스템들이나 사용자들 필요로 하는 데이터를 통합한 조직 전체의 데이터베이스를 기술한 것 ☞ 하나의 데이터베이스 시스템은 하나의 개념 스키마만 존재 |
☞ 모든 데이터 객체 정보(개체, 관계 및 제약조건) ☞ 이들을 효율적 관리를 위한 필수 정보(접근권한, 보안정책, 무결성 규칙에 대한 명세) |
내부 스키마 (Internal Schema) |
☞ 저장 장치(Storage) 입장에서 데이터베이스 전체가 저장되는 방법을 명세한 것 ☞ 개념 스키마에 대한 저장 구조를 정의 ☞ 저장 장치 관점에서 표현 ☞ 내부 레코드의 형식, 인덱스 유무, 데이터 표현 방법 기술 |
☞ 실제 저장될 내부 레코드의 형식, 인덱스의 유무, 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 |
이상으로 이번 학습을 마치겠습니다.
그럼 이만-_-
'Database' 카테고리의 다른 글
[Database] 함수 종속성(Functional Dependency)과 정규화(Normalization) (0) | 2020.11.11 |
---|---|
[Database] ER(Entity-Relationship) Model과 IE(Information Engineering) (0) | 2020.11.11 |
[Big Data] 데이터 적재 및 저장 (0) | 2020.10.27 |
[Big Data] 데이터 수집 및 전환 (0) | 2020.10.25 |
[Big Data] 데이터 분석 계획 (0) | 2020.10.23 |