데이터베이스 종류 및 선정
데이터베이스 종류
[ 데이터 베이스 개요 ]
데이터베이스(Database)?
다수의 인원, 시스템 또는 프로그램이 사용할 목적으로 통합하여 관리되는 데이터의 집합
자료의 중복성 제거, 무결성 확보, 일관성 유지, 유용성 보장은 데이터베이스 관리의 핵심
DBMS(Database Management System)?
위와 같은 데이터 관리의 복잡성을 해결하는 동시에 데이터 추가, 변경, 검색, 삭제 및 백업, 복구, 보안 등의 기능을 지원하는 소프트웨어
[ 데이터베이스 종류 ]
1. 파일 시스템
파일에 이름을 부여하고 저장이나 검색을 위하여 논리적으로 그것들을 어디에 위치시켜야 하는지 등을 정의한 뒤 관리하는 데이터베이스 전 단계의 데이터 관리 방식
- ISAM(Indexed Sequential Access Method)
: 자료 내용은 주 저장부, 자료의 색인은 자료가 기록된 위치와 함께 색인부에 기록되는 시스템
- VSAM(Virtual Storage Access Method)
: 대형 운영 체계에서 사용되는 파일 관리시스템
2. 계층형 데이터베이스 관리시스템(HDBMS: Hierarchical Database Management System)
데이터를 상하 종속적인 관계로 계층화하여 관리하는 데이터베이스
- 데이터에 대한 접근 속도가 빠름
- 종속적인 구조로 인하여 변화하는 데이터 구조에 유연하게 대응하기가 쉽지 않음
- IMS, System2000 등
3. 망형 데이터베이스 관리시스템(NDBMS: Network Database Management System)
데이터의 구조를 네트워크 상의 망상 형태로 논리적으로 표현한 데이터 모델
- 트리구조나 계층형 데이터베이스보다는 유연하지만 설계가 복잡
- IDS, TOTAL, IDMS 등
4. 관계형 데이터베이스 관리시스템(RDBMS: Relational Database Management System)
데이터를 저장하는 테이블의 일부를 다른 테이블과 상하 관계로 표시하며 상관관계를 정리
- 가장 보편화된 데이터베이스 관리시스템
- 변화하는 업무나 데이터 구조에 대한 유연성이 좋아 유지 관리가 용이함
[ 데이터베이스 관리시스템(DBMS) 특징 ]
- 데이터 무결성 : 부적절한 자료가 입력되어 동일한 내용에 대해 서로 다른 데이터가 저장되는 것을 허용하지 않는 성질
- 데이터 일관성 : 삽입, 삭제, 갱신, 생성 후에도 저장된 데이터가 변함없이 일정
- 데이터 회복성 : 장애가 발생했을 때 특정 상태로 복구돼야 하는 성질
- 데이터 보안성 : 불법적인 노출, 변경, 손실로부터 보호되어야 하는 성질
- 데이터 효율성 : 응답 시간, 저장 공간 활용 등이 최적화되어 사용자, 소프트웨어, 시스템 등의 요구 조건을 만족시켜야 하는 성질
[ 상용 DBMS 및 오픈소스 기반 DBMS ]
- 상용 DBMS : 특정 회사에서 유료로 판매하는 시스템으로 유지 보수와 지원이 원활
- 오픈소스 기반 DBMS : 오픈소스 라이선스 정책을 준용하는 범위 내에서 사용이 자유로움
관계형 데이터베이스 활용
ERD(E-R Diagram)
[ ERD 개요 ]
ERD? 업무 분석 결과로 도출된 실체(엔티티)와 엔티티 간의 관계를 도식화한 것
ERD로 요소들 간 연관성을 도식화
→ 데이터베이스 관리자, 개발자, 사용자 모두 데이터의 흐름과 연관성을 공통적으로 쉽게 확인할 수 있음
[ ER Model ]
ER Model? ERD로 도식화하기 전 각 개체를 사각형, 화살표, 마름모로 표기한 형태
1. 엔티티(Entity)
사물 또는 사건으로 정의되며 개체라고도 함
ERD에서 엔티티는 사각형으로 나타내고 사각형 안에는 엔티티의 이름을 넣음
- 가능한 한 대문자로 엔티티 이름을 써 주며 단수형으로 명명
- 유일한 단어로 정함
2. 속성(Attribute)
엔티티가 가지고 있는 요소 또는 성질을 속성이라고 부름
속성은 선으로 연결된 동그라미로 표기(Chen Model)하거나 표 형식으로 표기(Crow's Foot Model)
- 속성명은 단수형으로 명명
- 엔티티명을 사용하지 않음
- 속성이 필수 사항(Not Null)인지, 필수 사항이 아닌지(Null) 고려하여 작성
3. 관계(Relationship)
두 엔티티 간의 관계를 정의함
ERD(E-R Diagram) 작성
[ ERD 최적화 ]
1. 테이블 정의 : 업무나 시스템을 분석하여 엔티티, 속성을 추출한 뒤 테이블을 작성
2. 정규화 수행
데이터베이스 정규화는 무결성을 확보하고 중복성을 배제하여 테이블에 정확한 데이터가 들어가도록 하는 데 목적이 있음
→ 데이터의 중복성을 없애면 저장 공간을 최소화하고 시스템의 속도도 빨라짐
- 1차 정규화 : 반복되는 그룹의 속성을 별도로 추출함
- 2차 정규화 : 부분 함수적 종속성을 제거
- 3차 정규화 : 키에 종속되지 않은 칼럼을 제거
3. ERD 관계형 스키마(논리 모델, 물리 모델) 작성
사용자가 식별하기 쉬운 한글 또는 영어 단어로 작성된 논리 ERD를 작성
시스템이 식별하기 쉽도록 코드화 된 물리 ERD를 작성
관계형 데이터베이스 테이블 생성
[ 생성 언어 ]
- 데이터베이스의 종류와 상관없이 명령어는 국제 표준으로 제정된 SQL(Structured Query Language)를 사용함
- 미국 표준 연구소인 ANSI와 국제 표준화 기구인 ISO에서 SQL을 관계 데이터베이스의 표준 질의어로 채택하고 표준화하고 있음
[ 테이블 관리 ]
데이터베이스 관리
데이터베이스 기본 연산
CRUD : 데이터베이스가 가지는 기본적인 데이터 처리 기능인 Create(생성), Read(읽기), Update(갱신), Delete(삭제)
데이터베이스 관리 툴
1. 툴 선정 시 고려 사항
- 협업 : 개발자, 품질 담당자, 필요에 따라 경영층까지 협업이 용이한 툴 선정
- 지원 깊이 : SQL에서 제공하는 명령어에 대한 지원 커버리지
- 시각화 : 데이터의 흐름, 테이블 가시화 등 그래픽 요소 지원 여부
- 이기종 데이터베이스 지원 : 하나의 툴로 다양한 복수의 데이터베이스 지원
- 비용 : 라이선스 비용, 운용 인력 급여 등 유지하는 데 들어가는 총비용 고려
- 편의 기능 : 관리자, 사용자를 구분한 접근 권한 설정 등 편의 기능 고려
2. 데이터베이스 관리 툴의 주요 기능
- 논리적/물리적 모델 구축
- 스크립트를 사용한 자동 생성 및 수정
- SQL 관련 최적화 수행(악성 SQL 추출, 튜닝, Index 생성 전후 성능 비교 등)
- 벤치마크 시나리오 생성
- 가상 유저를 가정한 다양한 테스트 환경 단순화
- 부하 테스트 수행
- 데이터베이스 상태 모니터링 및 문제 해결 방안 제시
※ 게시물에 사용된 개념도와 도표 등의 출처 : 교육부의 NCS 학습모듈 자료