본문 바로가기

정보 처리 기사 필기/3. 데이터 베이스 구축

3-1 데이터 베이스 개요

반응형

데이터 베이스의 개요

 

1. 데이터 베이스의 개요

 

개념
  • 응용 시스템들이 데이터 공유할 수 있도록 운영에 필요한 모든 데이터 통합하여 컴퓨터에 저장한 데이터
정의
  • 공유 데이터(Shared Data): 여러 응용 시스템이 공동으로 소유하고 유지하는 자료
  • 운영 데이터(Operational Data): 조직의 고유한 업무 수행하는데 존재가치 확실하고 없어서는 안될 반드시 필요한 자료
  • 통합 데이터(Integrated Data, 종합 데이터): 자료의 중복 배제한 데이터의 모임
  • 저장 데이터(Stored Data): 컴퓨터가 접근할 수 있는 저장 매체에 저장된 자료

 

 

 

2. 데이터 베이스 특징 및 기능

 

특징

계속적인 변화
(Continuous Evolution)
데이터베이스 상태는 동적이므로 데이터 삽입, 삭제, 갱신으로 항상 최신 데이터 유지
실시간 접근
(Real Time Accessibility)
비정형적인 질의에 대해 실시간 처리에 의한 응답 가능
동시 공유
(Concurrent Sharing)
다수의 사용자가 동시에 같은 내용 데이터 이용
내용에 의한 참조
(Content Reference)
데이터 참조 시 레코드 주소나 위치에 의해서가 아닌 사용자 요구 내용으로 찾음
뛰어난 데이터 간 연계성
(Superb Data Combination)
 

 

 

3. 스키마(Schema)

 

  • DB 구성하는 자료 개체, 성질, 관계, 자료의 조작 및 제약 조건에 관한 정의 총칭

 

 

4. 3단계 스키마와 인터페이스

 

외부 스키마
(External Schema)
  • 어느 특정 응용에 한정된 논리적 데이터 구조이며, DB 개별 사용자나 응용 프로그래머가 접근하는 DB
  • 응용 인터페이스: 외부-개념 스키마 간 사상 관계
개념 스키마
(Conceptual Schema)
  • 모든 응용 프로그램과 사용자들이 필요로 하는 DB 전체 정의. 트랜잭션 모델링하는 단계
  • 데이터 개체, 관계, 제약 조건, 접근 권한, 무결성 규칙 등을 명세한 것
  • 저장 인터페이스: 개념-내부 스키마 간 사상 관계
내부 스키마
(Internal Schema)
  • 물리적 저장 장치 입장에서 본 DB 구조로서 실제 저장될 레코드 형식 정의, 저장 데이터 항목의 표현 방법, 내부 레코드 물리적 순서 나타냄

 

 

 

데이터 베이스 관리 시스템(DBMS)

 

1. 질의어(Query Language)

 

DDL
(Data Definition Language,
데이터 정의어)
  • 테이블 생성, 변경, 제어
  • 응용 프로그램-DB 관리 시스템 간 인터페이스 제공
  • 테이블: 열+행으로 구성되어 각각 컬럼은 지정된 유형의 데이터 값 저장
  • 행(Row): 튜플/인스턴스/어커런스
  • 열(Column): 속성
  • 기본 키(Primary Key): 하나의 행 유일하게 식별해주는 정보로, 단일/복수 컬럼 조합으로 활용
  • 외래 키(Foreign key): 다른 테이블과 연관된 정보로, 외부 데이터 집합과의 관계 구현
DML
(Data Manipulation Language,
데이터 조작어)
  • 검색(SELECT), 갱신(UPDATE), 삽입(INSERT), 삭제(DELETE)
  • 사용자-데이터베이스 관리 시스템 간 인터페이스 제공
  • DCL(Data Control Language, 데이터 제어어)
DCL(Data Control Language,
데이터 제어어)
  • 관계 데이터 언어 중 데이터 보안, 무결성, 회복과 관련

 

 

 

2. 데이터 베이스 관리 시스템(DBMS: DataBase Management System)

 

필수 기능

  • 데이터 정의 기능(Definition Facility)
  • 데이터 조작 기능(Manaipulation Facility)
  • 데이터 제어 기능(Control Facility)
    • 병행 제어(Concurrency Control) 미 보장시 문제점 갱현모현
갱신 손실(Lost Update) 먼저 실행된 트랜잭션의 결과를 나중에 실행된 트랜잭션이 덮어쓸 때 발생
현황 파악 오류(Dirty Read) 트랜잭션의 중간 수행 결과를 다른 트랜잭션이 참조하여 발생
모순성(Inconsistency) 두 트랜잭션이 동시에 실행되어 데이터베이스 일관성이 결여되는 오류
연쇄 복귀(Cascading Rollback) 복수의 트랜잭션이 데이터 공유 시 특정 트랜잭션이 처리 취소 시 트랜잭션이 처리한 곳의 부분을 취소하지 못하는 오류

 

DBMS 특징

데이터 무결성 부적절한 자료가 입력되어 동일한 내용에 대해 서로 다른 데이터 저장되는 것 허용하지 않음
데이터 일관성 삽입, 삭제, 갱신, 생성 후에도 저장된 데이터가 변함없이 일정
데이터 회복성 장애 발생 시 특정 상태로 복구되어야 하는 성질
데이터 보안성 불법적 노출, 변경, 손실로부터 보호되어야 하는 성질
데이터 효율성 응답 시간, 저장 공간 활용 등 최적화되어 사용자, 소프트웨어, 시스템 등 요구 조건 만족

 

장, 단점 및 고려사항

장점
  • 데이터 중복 최소화
  • 많은 사용자 공유
  • 규칙에 맞게 표준화 관리
  • 보안/무결성/일관성 유지
단점
  • 데이터 규모 크고 복잡하여 구축 어려움
  • 데이터 파괴 회복 매우 어려움
  • 일정 부분 문제 발생 시 전체 시스템에 영향
  • 구축 비용 큼
상용 DBMS 선정 시
고려 사항
  • 협업
  • 지원 깊이
  • 시각화
  • 이 기종 데이터베이스 지원
  • 비용
  • 편의 기능

 

 

 

 

데이터 베이스의 종류

 

1. 데이터 베이스의 종류

파일 시스템  
HDBMS
(Hierachical DBMS)
  • 종속적인 트리 형태의 구조
NDBMS
(Network DBMS)
  • 데이터 구조를 네트워크 형태로 논리적으로 표현한 그래프 형태 구조
  • 데이터 간 연계성 뛰어나며 1:1, 1:N, N:1, N:M 표현 가능
  • 설계 복잡해 비용 많이 듬
RDBMS
(Relational DBMS)
  • 테이블을 이용하여 데이터 상호 간의 관계를 표현한 가장 보편화된 DB 관리 시스템
  • RDBMS 제품
    • Oracle
    • SQL Server
    • MySQL
    • Maria DB
  • 상용 DBMS와 오픈소스 기반 DBMS
    • 상용(유료): Oracle, SQL Server, DB2, Microsoft Access, Teradata 등
    • 오픈소스: MySQL, PostgreSQL, Mongo DB, Redis, Elasticsearch 등

 

 

 

2. 범용 DBMS 종류

 

관계형 DBMS
(Relational DBMS)
  • 가장 광범위하게 쓰이는 테이블 구조/관계 정의하여 데이터 관리하는 DBMS
  • Oracle, MySQL, MS-SQL Server, PostgreSQL, DB2, Maria DB 등
문서 저장 DBMS
(Document Store DBMS)
  • 스키마/일관된 구조 필요 없음
  • 컬럼은 하나 이상의 값 가질 수 없음
  • 클라이언트 단에서 후 처리 필요
  • Mongo DB, Amazon Dynamo DB, Couchbase, MS Azure cosmos DB 등
그래프 DBMS
(Graph DBMS)
  • Node(정점), Edge(간선)으로 특화되어 노드 간 관계 구조화하여 저장
  • Neo4j, MS Azure cosmos DB, Orient DB, Arango DB 등
키 값 DBMS
(Key-value DBMS)
  • 가장 간단한 형태
  • 임베디드 시스템 같은 간단한 시스템에 적합
  • Redis, Amazon Dynamo DB, Memcached 등

 

 

 

3. RDBMS 모델링

 

용어
  • 속성(Attribute) : 개체 정보 특성에 대한 이름으로 변수명, 항목, 필드
  • 도메인(Domain): 한 속성에 입력되는 실제 원자 값들의 범위, 하나의 애트리뷰트가 가질 수 있는 원자 값들의 집합
  • 튜플(Tuple): 속성 들에 실제 입력된 하나의 행, 하나의 줄에 해당되는 값
  • 릴레이션(Relation): 데이터 간 나타내는 표 자체
  • 릴레이션 스키마(Relation Schema): 하나 이상의 속성 합쳐 정의하는 이름
  • 릴레이션 어커런스(Relation Occurrence): 실제 입력된 튜플들의 집합으로 시간에 따라 변화
  • 차수(Degree): 하나의 릴레이션에서 정의된 속성의 개수(컬럼수) = attribute의 수
  • 카디날리티(Cardinality, 기수): 하나의 릴레이션에 형성된 튜플의 개수로 레코드w의 수 의미 = tuple의 수
  • 널(NULL): 속성 값이 비어 있는 상태
릴레이션의 특징
  • 튜플의 유일성: 중복된 튜플 미존재
  • 튜플의 무순서: 입력되는 모든 튜플은 순서없이 입력
  • 속성의 원자성: 속성으로 입력되는 도메인 값은 분해될 수 없는 형태로 입력
  • 속성의 무순서: 속성 간 논리적인 순서 무의미
  • 속성 이름의 유일성: 속성 이름은 미중복

 

 

RDBMS의 key

후보키int(Candidate Key) 테이블에서 각 튜플 구별 기준이 되는 컬럼
모든 튜플에 대해 유일성, 최소성 모두 만족
기본키(Primary Key) 테이블 각 튜플을 고유하게 식별
NULL 값 가질 수 없음
대체키(Alternate Key, 보조키) 후보 키 중 기본 키로 선택되지 않은 키
외래키(Foreign Key) 한 릴레이션 컬럼이 다른 릴레이션 기본키로 이용
테이블 간 참조 데이터 무결성위한 제약 조건
슈퍼키(Super Key) 릴레이션 모든 튜플 유일성 만족, 최소성은 만족시키지 못함

 

 

무결성(Integrity)의 제약사항

 
개체 무결성 한 엔티티에서 같은 기본키를 가질 수 없거나 기본 키 속성이 NULL 허용 불가        
참조 무결성 외래 키가 참조하는 다른 개체의 기본 키에 해당하는 값이 기본 키 값이나 NULL이어야 함
속성 무결성 속성의 값은 기본값, NULL 여부, 도메인(데이터 타입, 길이)이 지정된 규칙 준수
사용자 무결성 사용자 의미적 요구사항 준수
키 무결성 한 릴레이션에 같은 키값을 가진 튜플들 허용 불가

 

 

 

 

 

 

 

 

 

 

Reference

https://book.naver.com/bookdb/book_detail.naver?bid=17134434 

 

이기적 정보처리기사 필기 기본서

- 기초부터 탄탄히 잡아주는 영진닷컴의 이기적 수험서!영진닷컴이 자랑하는 수험서 브랜드 ‘이기적’ 시리즈는 쉽고 풍부한 내용으로 기초부터 튼튼하게 쌓아주는 합격의 동반자입니다. 기

book.naver.com

 

반응형