정보처리기사 필기 - 1과목 데이터베이스


2장 데이터 모델링 및 설계


007 데이터 모델의 개념


① 데이터 모델의 정의


· 현실 세계의 정보들을 컴퓨터에 표현하기 위해서 단순화, 추상화하여 체계적으로 표현한 개념적 모형

· 데이터, 데이터의 관계, 데이터의 의미 및 일관성, 제약조건 등을 기술하기 위한 개념적 도구들의 모임

· 현실세계를 데이터베이스에 표현하는 중간 과정, 즉 데이터베이스 설계 과정에서 데이터의 구조를 논리적으로 표현하기 위해 사용되는 도구

· 데이터의 구조(Schema)를 논리적으로 묘사하기 위해 사용되는 지능적 도구


② 데이터 모델의 종류


- 개념적 데이터 모델


· 현실 세계에 대한 인간의 이해를 돕기 위해 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정

· 속성들로 기술된 개체 타입과 이 개체 타입들 간의 관계를 이용하여 현실 세계를 표현

· 현실 세계에 존재하는 개체를 인간이 이해할 수 있는 정보 구조로 표현하기 때문에 정보 모델이라고도 부름

· 대표적인 개념적 데이터 모델 : E-R 모델


- 논리적 데이터 모델


· 개념적 모델링 과정에서 얻은 개념적 구조를 컴퓨터가 이해하고 처리할 수 있는 컴퓨터 세계의 환경에 맞도록 변환하는 과정

· 필드로 기술된 데이터 타입과 이 데이터 타입들 간의 관계를 이용하여 현실 세계 표현

· 단순히 데이터 모델이라고 하면 논리적 데이터 모델을 의미

· 특정 DBMS는 특정 논리적 데이터 모델 하나만 선정하여 사용

· 데이터 간의 관계를 어떻게 표현하느냐에 따라 관계 모델, 계층 모델, 네트워크 모델로 구분


※정보 모델링과 데이터 모델링

현실 세계에 존재하는 개체를 컴퓨터 세계의 데이터 구조로 기술하는 것이 논리적 데이터 모델링이라면, 정보 모델링은 현실 세계에 존재하는 개체를 인간이 이해할 수 있는 정보 구조로 표현하는 개념적 데이터 모델을 의미



③ 데이터 모델에 표시할 요소


· 구조(Structure) : 논리적으로 표현된 개체 타입들 간의 관계로서 데이터 구조 및 정적 성질을 표현

· 연산(Operation) : 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세로서 데이터베이스를 조작하는 기본 도구

· 제약 조건(Constraint) : 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약 조건


④ 데이터 모델의 구성 요소


- 개체(Entity)

· 데이터베이스에 표현하려는 것(사람이 생각하는 개념이나 정보 단위 같은 현실 세계의 대상체)

· 실세계에 독립적으로 존재하는 유형, 무형의 정보로서 서로 연관된 몇 개의 속성으로 구성

· 파일 시스템의 레코드에 대응하는 것으로 어떤 정보를 제공하는 역할 수행

· 독립적으로 존재하거나 그 자체로서도 구별 가능


- 속성(Attribute)

· 데이터의 가장 작은 논리적 단위로서 파일 구조상의 데이터 항목 또는 데이터 필드에 해당

· 개체를 구성하는 항목


- 관계(Relationship)


· 관계의 형태

- 일 대 일(1:1)

- 일 대 다(1:n)

- 다 대 다(n:m)



008 개체 - 관계 모델


① 개체 - 관계(Entity-Relationship) 모델의 개요


·  E-R 모델은 개념적 데이터 모델의 가장 대표적인 것(1976년 피터 첸 Peter Chen에의해 제안됨)

· 개체와 개체 간의 관계를 기본 요소로 이용하여 현실 세계의 데이터를 개념적인 논리 데이터로 표현하기 위한 방법으로 많이 사용됨

· 개체 타입과 이들 간의 관계 타입을 이용해 현실 세계를 개념적으로 표현

· E-R 모델에서 데이터를 개체, 관계 속성으로 묘사함

· E-R 다이어그램으로 표현, 1:1, 1:N, N:M 등의 관계유형을 제한 없이 나타낼 수 있음


② E-R 다이어그램


 기호 이름

 의미

 사각형

개체(Entity) 타입

 마름모

관계(Relationship) 타입 

 타원

속성(Attribute)

 밑줄 타원

기본키 속성 

 복수 타원

복합 속성 

 관계

1:1, 1:n, n:m 등의 개체 간 관계에 대한 대응수를 선 위에 기술함

선, 링크

개체 타입과 속성을 연결 


③ 확장된 E-R 모델


· 개체를 구성하는 속성들은 개체에서 선을 연결하여 작은 원으로 표시

· 속성 중에서 단일 식별자(기본키)는 작은 원을 검게 칠함

· 복합 식별자는 관련 속성들을 선으로 묶어서, 묶은 선 끝에 검게 칠한 원을 그림

· 관계와 개체를 연결하는 선 위에는 (최소 대응수, 최대 대응수)로 표시



009 관계형 데이터 모델


① 관계형 데이터 모델(Relational Data Model)의 개념


· 관계형 데이터 모델은 가장 널리 사용되는 데이터 모델로, 계층 모델과 망 모델의 복잡한 구조를 단순화시킨 모델

· 2차원적인 표(Table)를 이용해서 데이터 상호 관계를 정의하는 DB 구조

· 기본키(Primary Key)와 이를 참조하는 외래키(Foreign Key)로 데이터 간의 관계 표현

· 관계 모델의 대표적인 언어 : SQL

· 1:1, 1:N, N:M 관계 자유롭게 표현 가능


② 관계형 데이터 모델의 특징


· 장점 : 간결하고, 보기 편리하고, 다른 데이터베이스로의 변환이 용이

· 단점 : 성능이 다소 떨어짐



010 계층형 데이터 모델


계층형 데이터 모델은 트리 구조를 이용해서 데이터의 상호관계를 계층적으로 정의한 구조


① 계층형 데이터 모델(Hierarchical Data Model)의 구성 형태


· 데이터의 논리적 구조도가 트리 형태이며, 개체(Entity)가 Tree를 구성하는 노드 역할

· 개체 집합에 대한 속성 관계를 표시하기 위해 개체를 노드로 표현하고 개체 집합들 사이의 관계를 링크로 연결

· 개체 간의 관계를 부모와 자식 간의 관계로 표현

· 계층형 DB를 구성하는 관계의 유형

- 속성 관계(Attribute Relation) : 세그먼트(개체)를 구성하는 속성들의 관계

- 개체 관계(Entity Relation) : 개체와 개체 간의 관계를 링크로 표시


② 계층형 데이터 모델의 특징


· 개체 타입 간에는 상위와 하위 관계가 존재하며, 일 대 다(1:N) 대응관계만 존재

· 계층을 정의하는 트리는 하나의 루트 개체 타입과 다수의 종속되는 개체 타입으로 구성된 순서 트리

· 루트 개체 타입은 다른 개체 타입과 구별됨

· 개체 삭제 시 연쇄 삭제

· 개체 타입들 간에는 사이클(Cycle)이 허용되지 않음

· 두 개체 간에는 하나의 관계만 허용

· 개체를 세그먼트로 부름

· 대표적인 DBMS : IMS


③ 계층형 데이터 모델의 장·단점


장점

· 구조가 간단하고, 판독이 용이

· 구현, 수정, 검색이 용이

· 데이터의 독립성이 보장됨

· 망 데이터 모델이나 관계 데이터 모델도 실제로 구현할 때는 계층적인 기억 구조를 이용


단점

· 데이터 상호 간의 유연성이 부족

· 검색 경로가 한정되어 있음

· 삽입과 삭제 연산이 매우 복잡

· 다 대 다 관계를 처리하기 어려움



011 망(네트워크)형 데이터 모델


① 망형 데이터 모델(Network Data Model)의 개요


· CODASYL이 제안 → CODASYL DBTG 모델이라고도 불림

· 그래프를 이용해서 데이터 논리 구조를 표현

· 상위(Owner)와 하위(Member) 레코드 사이에서 다 대 다(N:M) 대응 관계를 만족하는 구조

· 레코드 타입 간의 관계는 1:1, 1:N, N:M 가능

· 대표적인 DBMS : DBTG, EDBS, TOTAL


② 망형 데이터 모델의 표현


· Entity군 : 동종의 Entity 그룹

· Entity SET : 주종 관계에 있는 Entity군들의 그룹

· SET Membership Type : 일 대 다(1:N) 관계에 연관된 레코드 타입들을 각각 오너(Owner)와 멤버(Member)라고 부름

오너(Owner) : 트리 구조에서의 Parent와 같은 개념

멤버(Member) : 트리 구조에서의 Children과 같은 개념


③ 망형 데이터 모델의 특징


· 레코드 타입과 링크들의 집합으로 구성

· 레코드 타입의 집합이 있음

· 레코드 타입들을 연결하는 링크 집합이 존재

· 상위 하나의 레코드에 대하여 하위의 레코드가 복수 대응하고, 하위 하나의 레코드에 대해 상위 레코드도 복수 대응

· 링크들로 표현한 관계성에는 제한 없음

· 한 레코드 타입에서 자기 자신으로 가는 링크는 없음

· 오너와 레코드 타입은 서로 동일 형태가 될 수 없음



012 데이터베이스 설계


① 데이터베이스 설계의 개념 및 고려 사항


데이터 베이스 설계란 사용자의 요구를 분석하여 그것들을 컴퓨터에 저장할 수 있는 데이터베이스의 구조에 맞게 변형한 후 특정 DBMS로 데이터베이스를 구현하여 일반 사용자들이 사용하게 하는 것


데이터베이스 설계 시 고려사항


· 무결성 : 삽입, 삭제, 갱신 등의 연산 후에도 데이터베이스에 저장된 데이터가 정해진 제약 조건을 항상 만족해야 함

· 일관성 : 데이터베이스에 저장된 데이터들 사이나, 특정 질의에 대한 응답이 처음부터 끝까지 변함없이 일정해야 함

· 회복(Recovery) : 시스템에 장애가 발생했을 때 장애 발생 직전의 상태로 복구할 수 있어야 함

· 보안 : 불법적인 데이터의 노출 또는 변경이나 손실로부터 보호할 수 있어야 함

· 효율성 : 응답시간의 단축, 시스템의 생산성, 저장 공간의 최적화 등이 가능해야 함

· 데이터베이스 확장 : 데이터베이스 운영에 영향을 주지 않으면서 지속적으로 데이터를 추가할 수 있어야 함


② 요구 조건 분석


요구 조건 분석은 데이터베이스를 사용할 사람들로부터 필요한 용도를 파악하는 것


· 데이터베이스 사용자에 따를 수행 업무와 필요한 데이터의 종류, 용도, 처리 형태, 흐름, 제약 조건 등을 수집

· 수집된 정보를 바탕으로 요구 조건 명세 작성


③ 개념적 설계(정보 모델링, 개념화)


개념적 설계란 정보의 구조를 얻기 위하여 현실 세계의 무한성과 계속성을 이해하고, 다른 사람과 통신하기 위하여 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정


· 개념적 설계 단계에서는 개념 스키마 모델링과 트랜잭션 모델링을 병행 수행

· 요구 부넉 단계에서 나온 결과(요구 조건 명세)를 DBMS에 독립적인 E-R 다이어그램(개체 관계도)으로 작성

· DBMS에 독립적인 개념 스키마를 설계


④ 논리적 설계(데이터 모델링)


논리적 설계 단계에서는 현실 세계에서 발생하는 자료를 컴퓨터가 이해하고 처리할 수 있는 물리적 저장장치에 저장할 수 있도록 변환하기 위해 특정 DBMS가 지원하는 논리적 자료 구조로 변환시키는 과정


· 논리적 구조의 데이터로 모델화

· 개념적 설계가 개념 스키마를 설계하는 단계라면 논리적 설계에서는 개념 스키마를 평가 및 정재하고 DBMS에 따라 서로 다른 논리적 스키마를 설계하는 단계

· 트랜잭션의 인터페이스 설계

· 관계형 데이터베이스라면 테이블을 설계하는 단계· 


⑤ 물리적 설계(데이터 구조화)


논리적 설계 단계에서 논리적 구조로 표현된 데이터를 디스크 등의 물리적 저장장치에 저장할 수 있는 물리적 구조의 데이터로 변환하는 과정


· 데이터베이스 파일의 저장 구조 및 액세스 경로 설정

· 저장 레코드의 형식, 순서, 접근 경로와 같은 정보를 사용하여 데이터가 컴퓨터에 저장되는 방법을 묘사

· 물리적 설계 단계에 꼭 포함되어야 할 것은 저장 레코드의 양식 설계, 레코드 집중의 분석 및 설계, 접근 경로 설계 등

· 기본적인 데이터 단위는 저장 레코드

· 여러 가지 타입의 저장 레코드 집합


물리적 설계 시 고려사항


· 인덱스의 구조

· 레코드의 크기

· 파일에 존재하는 레코드 개수

· 파일에 대한 트랜잭션의 갱신과 참조 성향

· 성능 향상을 위한 개념 스키마의 변경 여부 검토

· 빈번한 질의와 트랜잭션들의 수행속도를 높이기 위한 고려

· 시스템 운용 시 파일 크기의 변화 가능성


물리적 설계 옵션 선택 시 고려 사항


물리적 설계 옵션이란 특정 DBMS에서 제공되는 것으로, 데이터베이스 파일에 대한 저장 구조와 접근 경로에 대한 다양한 옵션


· 반응시간(Response Time) : 트랜잭션 수행을 요구한 시점부터 처리 결과를 얻을 때까지 경과 시간

· 공간 활용도(Space Utilization) : 데이터베이스 파일과 액세스 경로 구조에 의해 사용되는 저장공간의 양

· 트랜잭션 처리량(Transaction Throughput) : 단위시간 동안 데이터베이스 시스템에 의해 처리될 수 있는 트랜잭션의 평균 개수


데이터베이스 구현


구현 단계는 논리적 설계 단계와 물리적 설계 단계에서 도출된 데이터베이스 스키마를 파일로 생성하는 단계


· 사용하려는 특정 DBMS의 DDL을 이용하여 데이터베이스 스키마를 기술한 후 컴파일하여 빈 데이터베이스 파일을 생성

· 생성된 빈 데이터베이스 파일에 데이터 입력

· 응용 프로그램을 위한 트랜잭션 작성

· 데이터베이스 접근을 위한 응용 프로그램 작성


※ 데이터 베이스 설계 순서

요구분석 : 요구 조건 명세서 작성

개념적 설계 : 개념 스키마, 트랜잭션 모델링, E-R 모델

논리적 설계 : 목표 DBMS에 맞는 논리 스키마 설계, 트랜잭션 인터페이스 설계

물리적 설계 : 목표 DBMS에 맞는 물리적 구조의 데이터로 변환

구현 : 목표 DBMS의 DDL로 데이터베이스 생성, 트랜잭션 작성



출처 : 2017 시나공 정보처리기사 필기

+ Recent posts