1. 바커 표기법 (Baker Notation)

바커 표기법은 영국 컨설팅 회사 CACI에 의해 처음 개발되었고 리차드 바커(Richard Barker)에 의해 지속으로 업그레이드 되었다. 오라클에서 Case Method(Custom Development Method)로 채택하여 사용하고 있다.

가. 엔터티(Entity)

엔터티는 기업에서 지속적으로 저장하고 관리해야 할 대상이다. 하나의 관리 대상이 엔터티가 되기 위해서는 반드시 두개 이상의 속성을 가져야 한다. 속성이 없는 실체는 존재할 수 없다. 엔터티란 실제 세상에 있는 객체(Object)이다.

  • 엔터티는 네 부분의 모서리가 둥근 형태인 소프트-박스(Soft-box)로 표현한다.

  • 엔터티는 하나 이상의 속성으로 구성된다.

  • [그림 4-1-30] 바커 엔터티(Entity) 예

나. 속성(Attribute)

속성은 하나의 엔터티에 종속되는 명사적 단어들을 말한다. 일반적으로 명사적 단어들 중에 구성 요소를 포함하고 있는 명사들은 엔터티가 되고 그렇지 못한 명사들은 속성이 된다. 속성의 상태에는 2가지 종류가 있다. 해당 속성에 어떤 값을 반드시 저장해야 하는 경우에는 * (Mandatory)를 표시하며 해당 속성에 어떤 값이 존재할 수도 있고 존재하지 않을 수도 있는 경우에는 o (Optional)를 표시하게 된다.

  • [그림 4-1-31] 바커 속성(Attribute) 예

다. 관계(Relationship)

두 개의 엔터티간에 CONDITIONAL을 표기한 후 해당 엔터티의 가까운 위치에 관계 명칭을 표기하고 관계(Relationship)는 실세계의 해당 엔터티에서 발생하는 동사적 단어들을 표기한다.

  • [그림 4-1-32] Barker Conditional 작성 단계 예

1) 엔터티와 엔터티간의 관계

  • 1:1 관계

A 엔터티에 존재하는 데이터 1개와 관계되는 B 엔터티에 존재하는 데이터의 개수도 1개인 엔터티간의 관계를 1:1 관계라고 한다.

  • 1:M 관계

A 엔터티에 존재하는 데이터 1개와 관계되는 B 엔터티에 존재하는 데이터의 개수가 여러 개인 엔터티 간의 관계를 1:M의 관계라고 한다.

  • M:M 관계

A 엔터티에 존재하는 데이터 1개와 관계되는 B 엔터티에 존재하는 데이터의 개수가 여러 개이며, B 엔터티에 존재한 데이터 1개와 관계되는 A 엔터티에 존재하는 데이터의 개수도 여러 개인 엔터티 간의 관계를 M:M 관계라고 말한다.

2) 엔터티와 엔터티간 상관 관계의 조건

  • 필수 조건

필수 사항은 실선으로 표시하고 상대 엔터티에 대해 해당 엔터티에 조건을 만족하는 엔터티가 반드시 존재할 경우에 표시한다.

  • 선택 조건

선택 사항은 점선으로 표시하고 상대 엔터티에 대해 해당 엔터티에 조건을 만족하는 엔터티가 존재할 수도, 존재하지 않을 수도, 있을 경우 표시한다.

  • [그림 4-1-33] 바커 관계 예

라. 식별자(Unique Identifier)

식별자란 하나의 엔터티에 구성되어 있는 여러 개의 속성 중에 엔터티를 대표할 수 있는 속성을 의미하며 하나의 엔터티는 반드시 하나의 식별자가 존재해야 한다. 보통 식별자와 키(Key)를 동일시 생각하고 있는 경우가 있는데 식별자는 논리 데이터 모델링 단계에서 사용하고 키는 물리 데이터 모델링 단계에서 사용한다.

1) 식별자의 유형

  • 본질 식별자

속성들 중에서 집합의 본질을 명확하게 설명할 수 있는 의미상의 주어를 본질 식별자라한다. 의미상의 주어에는 사원번호, 상품번호처럼 집합을 식별하기 위한 임의의 유일값을 사용하는 인조 식별자(Artificial Unique Identifier)도 있고, 내가 태어나기 위해서 절대적으로 존재했어야만 하는 본질 속성들에 해당하는 것으로 자신의 고유 속성과 부모로부터 물려받은 속성(릴레이션십)들로 이루어진 것도 있을 수 있다.

  • 후보 식별자

각 인스턴스를 유일하게 식별할 수 있는 속성 또는 속성들의 조합이며, 후보 식별자로 속성 집합을 선택하는 경우에는 개념적으로 유일해야 한다.

  • 대체(보조) 식별자

보조 식별자란 원래의 식별자를 대신할 수 있는 또 다른 속성들이나 릴레이션십을 말한다. 가령 사원 엔터티에 공식적으로 부여된 식별자(실질식별자)는 사원번호이지만, 만약 주민등록번호 속성이 유일한 값을 가지면서 필수적(mandatory)으로 정의되었다면 비록 공식적인 식별자는 아니지만 식별자로서의 역할을 할 자격은 충분히 갖추고 있다. 특히 보조 식별자는 여러 참조 엔터티 중에서 원래의 식별자보다 보조 식별자로 연결을 맺는 것이 자신에게는 훨씬 유리한 경우에 의미가 있게 된다.

  • 인조 식별자

인조 식별자란 식별자 확정시 기존의 본질 식별자를 그대로 실질 식별자로 인정할 수 없는 여러 가지 상황이 발생했을 때, 전부 혹은 일부를 임의의 값을 가진 속성들로 대체하여 새롭게 구성한 식별자를 말한다. 가령, 사원 엔터티에 이미 존재하고 있는 속성 중에서 원래의 본질 식별자를 찾으라고 한다면 주민등록번호가 될 것이다. 그러나 이 속성은 너무 길고 관리상 여러 가지 문제점이 발생하기 때문에 새롭게 사원번호라는 임의의 값을 가진 인조 속성을 영입하여 공식적인 식별자 자리까지 부여받은 것이다.

  • 실질 식별자

인스턴스를 식별하기 위해 공식적으로 부여된 식별자를 말한다. 본질 식별자나 인조 식별자 모두가 실질 식별자가 될 수 있다.

2) 작성 방법

식별자 앞에는 # 기호를 표시하고 여러 개# 기호를 반복적으로 표시한다.

  • [그림 4-1-34] 바커 식별자(Unique identifier) 예

마. 서브타입(Sub-type)

바커 표기법에서는 슈퍼타입(super-type) 안에 서브타입(sub-type)을 상자로 나타낸다. 이것은 다이어그램에서 공간을 적게 사용하는 장점을 가지고 있다. 서브타입은 서브타입의 중복을 허락하지 않는 상호 배타적 관계이다.

  • [그림 4-1-35] 바커 서브타입 예

바. 관계의 표현 비교

다음은 바커 표기법과 I/E 표기법의 가장 큰 차이점인 관계의 표현 비교를 설명하겠다. [그림 4-1-36]은 사원과 부서 엔터티 간의 관계를 표현한 모습이다. 릴레이션이란 양방향 관계를 합성한 것이라 할 수 있다. 각 관계를 설명하자면 사원을 주어로 부서를 보는 관계에서 의미는“각각의 사원은 단 하나의 부서를 반드시 가져야 한다”라고 정의할 수 있다. 또한 부서를 주어로 사원을 보는 관계의 정의는 “각각의 부서는 하나 이상의 사원을 현 주소속 부서로서 배치 받을 수도 있다”라는 의미를 표현한 것이 바로 관계선이다. 이때 관계선을 살펴보면 실선과 점선으로 구분할 수 있다. 실선은 필수를 뜻하고 점선은 필수가 아님을 뜻한다. 현재 [그림 4-1-36]의 사원 엔터티가 주어일 경우 사원 엔터티 쪽에 가까이 있는 실선이 바로 사원이 주어일 때 부서를 바라보는 관계를 설명한 것이다. 때문에 까마귀 발 모양은 이미 설명한 것처럼 하나 이상의 개체를 허용한다는 뜻이다. 이런 표시를 근거로 “각각의 사원은 단 하나의 부서를 반드시 가져야 한다”와 같이 정의할 수 있다.

  • [그림 4-1-36] 바커 표기법의 관계의 표현 예

2. I/E 표기법 (Information Engineering Notation)

Information Engineering(I/E)은 1981년에 Clive Finkelstein과 James Martin이 공동 저술로 발표하였으며, 80년대 중반에 James Martin에 의해 그 체계가 정리되면서 본격적으로 활용이 되었고, 정보시스템을 구축하는데 있어서 데이터 분석(Data Analysis)과 데이터베이스 설계(Database Design)를 위한 매우 유용한 기법으로 자리 잡게 되었다.

이 모델은 관계의 다(Many) 쪽을 나타내기 위해 까마귀 발을 사용하기 때문에 때때로 까마귀 발모델(Crow’s Foot Model)이라 부른다.

가. 엔터티(Entity)

엔터티란 사용자가 추적하고자 하는 어떤 사물이다.

  • [그림 4-1-37] I/E 엔터티(Entity) 예

나. 속성(Attribute)

엔터티는 엔터티의 특징을 기술해 주는 여러 개의 속성을 가진다. 속성은 [그림 4-1-38]과 같이 엔터티 안에 위치한다.

  • [그림 4-1-38] I/E 속성(Attribute)의 예

다. 관계(Relationship)

까마귀 발 부호는 관계의 다(Many) 쪽을 보여주는 데 사용되고, 타원(Oval), 해쉬 마크 및 까마귀발의 다양한 조합들은 [표 4-1-3]과 같이 사용된다.

  • [표 4-1-3] I/E 관계(Relationship) 예

라. 식별자(Unique Identifier)

엔터티는 그들을 지칭하거나 식별해 주는 속성인 식별자를 가지고 있다. 속성의 식별자는 엔터티의 상단에 나타나며, [그림 4-1-39]와 같이 수평선이 식별자 밑에 그려진다.

  • [그림 4-1-39] I/E 식별자(Unique Identifier) 예

마. 서브타입(Sub-type)

서브타입은 배타적 또는 포괄적일 수 있다. 만일 배타적이라면 슈퍼타입은 많아야 1개의 서브타입과 관련될 수 있다. 만일 포괄적이라면 슈퍼타입은 1개 또는 그 이상의 서브타입과 관련될 수 있다. [그림 4-1-40]에서 A는 슈퍼타입, B와 C는 배타적 서브타입이다. 구분자는 보이지 않고 있다. 관계는 실선으로 그려져 있다. [그림 4-1-41]에서 A는 슈퍼타입, B와 C는 포괄적 서브타입이다. 관계는 실선으로 그려져 있다.

  • [그림 4-1-40] I/E 배타적 서브타입 예와 [그림 4-1-41] I/E 포괄적 서브타입 예

장 요약

  • 제1절 데이터 모델링 개요
    • 데이터 모델링은 복잡한 현실 세계를 단순화시켜 표현하는 것이다.
    • 데이터 모델링은 기업 업무에 대한 이해를 바탕으로 데이터에 존재하는 업무 규칙을 명확하게 표현하는 추상화 기법이다.
    • 데이터 모델링은 개념 데이터 모델링, 논리 데이터 모델링, 물리 데이터 모델링의 단계가 있다.
    • 논리 데이터 모델링의 접근 방식을 성공적으로 이끌기 위해 커뮤니케이션 원칙, 상세화 원칙, 논리적 표현의 원칙을 토대로 한다.
  • 제2절 데이터 모델링 기법 이해
    • 개체-관계 모델을 사용하는 목적은 여러 사람이 서로 다르게 인식하고 있는 뷰들을 하나로 통합할 수 있는 단일화된 설계안을 만들기 위해서이다. 또한 서로 다른 뷰들을 충족시킬 수 있는 데이터 처리와 제약 조건 등의 요구 사항을 정의하기 위해서이다.
    • 개체-관계 다이어그램의 요소에는 엔터티, 속성, 관계, 식별자 등이 있다.
    • 객체지향 개념에서 객체는 객체를 기술하는 데이터와 그 기술 데이터를 운영하는 메소드로 구성된다. 속성 유형과 메소드를 공유하는 객체가 그룹화되어 객체 클래스로 된다.
  • 제3절 데이터 모델링 표기법 이해
    • 데이터 모델을 표현하기 위한 표기법에는 여러가지가 있다. 이 책에서는 데이터 모델링 표기법 중에서 가장 많이 활용되고 있는 바커 표기법(Barker Notation)과 I/E 표기법(Information Engineering Notation)을 설명한다. 각 표기법마다의 장.단점을 가지고 있지만 표기법이 다르다고 해서 데이터 모델이 표현하고자 하는 비즈니스 정보의 구체화, 체계화라는 목표가 달라지는 것은 아니다.

연습문제

문제 1. 다음 중 소프트웨어 생산성 향상을 위한 객체지향 모델링의 장점이 아닌 것은?

  • ① 재사용 코드와 같은 개념이 실제로 가능한 환경을 제공한다.
  • ② 모든 비즈니스 규칙이 표현될 수 있는 유일한 환경을 제공한다.
  • ③ 프로세스와 테이터 모델링을 함께 운영한다.
  • ④ 테이터 프로세스를 종속되어 운영한다.

    논리 데이터 모델링의 개념을 잘 이해하는 분석가들은 데이터가 프로세스에 종속하지 않는 방식으로 데이터와 프로세스의 개념을 결합한다. 이것은 객체지향 모델링에 기반한 애플리케이션을연구하고 이해하는 사람들이기 때문이다. ④ 는 객체지향 모델링의 접근 방식에 대한 내용으로 장점과는 거리가 멀다.

문제 2. 개체-관계 모델에 대한 설명으로 틀린 것은?

  • ① 모델의 단순성 때문에 현재 광범위하게 사용되고 있다.
  • ② 확장된 개체-관계 모델은 서브타입을 포함한다.
  • ③ 연관과 상속의 개념을 통해 객체들을 연결한다.
  • ④ 서로 다른 뷰들을 하나로 통합할 수 있는 단일화된 설계안을 만들 수 있다.

    ③ 은 개체-관계 모델에 대한 설명보다는 객체지향 모델링에 대한 설명이다.

문제 3. 다음 중 ‘관계형 모델 이론과 ‘비관계형 모델 이론의 차이점으로 가장 부적합한 것은?

  • ① 관계형 모델 이론은 데이터 중심의 분석 기법이고, 비관계형 모델 이론은 일반적으로 프로세스 중심의 분석 기법이다.
  • ② 관계형 모델 이론은 데이터의 구조와 조작 및 무결성을 정의하고, 비관계형 모델 이론은데이터의 구조와 조작을 정의한다.
  • ③ 관계형 모델 이론은 데이터를 집합적으로 처리를 요구하고, 비관계형 모델 이론은 데이터의 레코드 처리(한 건씩 처리)를 요구한다.
  • ④ 관계형 모델 이론은 비관계형 모델 이론에 비하여 데이터를 분석하는데 있어 우수한 분석기법이다.

    관계형 모델 이론이 데이터를 분석하는데 비관계형 이론보다 반드시 우수하지는 않다.

문제 4. 다음 중 아래에서 데이터 무결성과 관계된 사항으로 적합한 것은?

ㄱ. 실체 무결성 ㄴ. 연쇄 작용(Triggering Operation) ㄷ. 참조 무결성 ㄹ. 영역(속성) 무결성 ㅁ. 정규화(Normalization) ㅂ. 인덱스(Index)

  • ① ㄱ, ㄷ, ㄹ
  • ② ㄱ, ㄷ, ㄹ, ㅁ
  • ③ ㄱ, ㄴ, ㄷ, ㄹ, ㅁ
  • ④ ㄱ, ㄴ, ㄷ, ㄹ, ㅁ, ㅂ

    연쇄작용은 비즈니스 규칙으로 어느 실체에 데이터 값이 입력, 수정, 삭제 될 때 그 실체 내지는다른 실체의 데이터 값에 영향도를 분석하는 것으로 데이터의 무결성과 관계가 깊다. 정규화를 잘못하면 입력, 수정, 삭제 이상이 발생할 수 있다. 인덱스눈 수행 성능의 향상을 위한 기법이다.

문제 5. 아래 표는 바커 표기법의 실체와 실체 간의 상관관계 조건을(관계) 표기한 것이다. 다음 중 틀린 것은?

  • ① ㄱ
  • ② ㄴ
  • ③ ㄷ
  • ④ ㄹ

    표의 ‘라’는 바커 표기법의 관계가 아니라 I/E표기법의 관계(Relationship)예이다.

문제 6. 다음 중 좋은 데이터 모델의 요소로 보기에 적절하지 않은 것은?

  • ① 완전성(Completeness)
  • ② 데이터 재사용(Data Reusability)
  • ③ 반정규화(Denormalization)
  • ④ 간결성(Elegance)

    데이터 모델에서 요구되는 필수 조건은 반정규화가 아닌 중복 배제(Non-Redundancy)로, 이를통해 저장 공간의 낭비를 최소화하고, 데이터 일관성을 유지하도록 하고 있다. 반정규화는 이와같은 관점에서 데이터 모델 설계가 완료된 후 성능을 고려하여 불가피하게 부분적인 중복을 허용한 것이다.

문제 7. 요구사항은 모든 사람이 이해할 수 있도록 명확하게 공표됨은 물론 최종 사용자 지향적으로 분명하게 파악되는 수준으로 작성되어야 한다는 것은 모델링 기본 원칙 중 무엇에 대한 설명인가?

  • ① 커뮤니케이션 원칙(Communication Principle)
  • ② 모델링 상세화 원칙(Granularity Principle)
  • ③ 논리적 표현 원칙(Logical Representation Principle)
  • ④ 설계 형식화 원칙(Design Formalization Principle)

    지문의 내용은 커뮤니케이션 원칙에 대한 설명 내용으로, 논리 데이터 모델링의 주목적이 최종 사용자 데이터에 대한 뷰(View)를 개념화하고 추상화하여 시스템 설계자들에게 전달하는 것임을 의미한다.

문제 8. 다음의 데이터 모델링 단계에 대한 설명 중 적절하지 않은 것은?

  • ① 개념 데이터 모델링은 분석 초기에 수행되어 본질적으로 기술과 무관한 사양들의 집합을 형상화하여 데이터 요구사항을 정의하고 비즈니스 이해관계자들과 초기 요구사항을 논의하는데 사용된다.
  • ② 개념 모델로부터 논리 모델로, 다시 물리 모델로 가면서 복잡성이 증가하기 때문에, 가급적 개념 데이터 모델에서부터 출발하여 다른 데이터 요소와 그 상호 관계가 무엇인지를 상위 레벨에서 이해하는 것이 바람직하다.
  • ③ 논리 데이터 모델링이 비즈니스 정보의 논리적인 구조와 규칙을 명확하게 표현하는 기법 또는 과정이라고 한다면, 물리 데이터 모델링은 논리 데이터 모델이 데이터 저장소로서 어떻게 컴퓨터 하드웨어에 표현될 것인가를 다루기 위해 테이블, 칼럼 등으로 표현되는 물리적 저장 구조와 저장 장치 등을 정의하는 것이다.
  • ④ 모두 틀림

    ① ~ ③ 은 모두 적절한 설명이다.

문제 9. 다음 중 개체-관계 모델의 구성 요소로 적절하지 않은 것은?

  • ① 엔터티
  • ② 속성
  • ③ 서브타입
  • ④ 도메인

    개체-관계 모델의 구성 요소는 엔터티, 속성, 식별자, 관계, 카디날리티, 존재 종속, 서브타입 등이다.

문제 10. 객체 지향 모델에서 객체가 다른 객체에 연결되는 방법은?

  • ① 캡슐화(Encapsulation)
  • ② 상속(Inheritance)
  • ③ 추상화(Abstraction)
  • ④ 메소드(Methods)

    객체는 연관(Association) 또는 상속(Inheritance)을 통해 다른 객체들에 연결된다.

업데이트: