본문 바로가기

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

3-2 논리 데이터베이스 설계 - ERD

반응형

E-R 다이어그램(ERD) 작성

 

1. E-R 다이어그램(ERD) 표기법

 

ERD: Entity Relationship Diagram - 업무 분석 결과로 도출된 개체와 실체 간의 관계 도식화

 

 

개체-관계(E-R) 다이어그램 기호

개체 ⬜️
  • 유일한 단어로 사용
관계  
속성
  • 개체가 가지고 있는 요소 또는 성질(동그라미로 표시)
  • Peter Chen, Crow's Foot Model로 표기
  • 속성명은 단수형으로 명명하며 개체와 동일한 명칭 사용하지 않음
  • 속성값이 NOT NULL인지 NULL인지 고려
다중 값 속성  
관계-속성 연결  

 

 

 

관계 표시 방법

https://itwiki.kr/w/ER_%EB%8B%A4%EC%9D%B4%EC%96%B4%EA%B7%B8%EB%9E%A8

 

 

 

 

관계 표기법 종류

 

 

 

2. 확장 E-R 다이어그램(ERD)

 

슈퍼 타입(super-type)과 서브 타입(sub-type)
  • 슈 퍼 타입은 여러 개의 서브 타입 나누어 표현
  • "IS-A" 관계
특수화
(Sepecialization)
  • 하나의 개체 타입(클래스)을 여러 개의 하위 레벨 개체 타입으로 분리하여 표현
  • 상위 클래스에서 하위 클래스 보는 관점으로, 하위로 내려갈수록 인스턴스 특수화(하향식 설계)
  • "IS-A" 관계
일반화
(Generalization)
  • 여러 개체 타입의 공통적 특성을 가진 상위 객체 타입으로 표현
  • 상위 클래스는 하위 클래스의 공통적인 특성을 갖고 하위 클래스는 상위 클래스의 속성, 메소드 상속
  • 하위 클래스에서 상위 클래스를 보는 관점으로 상위 클래스로 올라갈 수록 일반화(상향식 설계)
상속
(Inheritance)
  • 새로운 개체 타입 설계 시 기존의 개체 타입 그대로 사용
  • 하위 클스는 (다중)상위 클래스의 모든 것 상속 가능
집단화
(Aggregation)
  • 각각의 객체 타입으로 새로운 객체 타입 생성
  • 서로 관련 있는 여러 개체 타입 묶어 하나의 상위 개체 타입으로 만들 수 있음
  • 클래스 사이의 "부분-전체(part-whole)" 관계 또는 부분(is-a-part-of)관계 표현
분류화
(Classification)
  • 현실 세계에 존재하는 공통적인 성질 갖는 멤버들의 개체 타입 표현
  • 개체 타입-개체 어커런스 간 관계 표현 가능
  • "is-memeber-of", "is-instance-of" 관계 표현하며 상속관계 가질 수 없음

 

 

 

 

관계 스키마와 함수 종속

 

1. 관계 스키마

 

개념
  • 데이터 베이스 설계에서 현실 세계 가장 정확히 표현하기 위해 데이터의 논리적 구조 결정
  • 개체(Entity), 속성(Attribute), 관계(relationship) 식별하여 릴레이션 구성
이상 현상
(anomaly)
  • 데이터들 불필요하게 중복되어 예기치 않게 발생하는 곤란한 현상
  • 삭제 이상: 릴레이션에서 한 튜플 삭제할 때 의도와 상관없는 값들도 함께 삭제
  • 삽입 이상: 데이터 삽입 시 의도와 상관없는 값들도 함께 삽입
  • 갱신 이상: 일부 튜플의 정보만 갱신되어 정보에 모순

 

 

 

2. 함수 종속(Functional Dependency)

 

개념
  • 개체(Entity) 내에 존재하는 속성 간의 종속성
일반적으로 직접 종속
  • 함수(Functional) 종속
  • 다가(multivalued) 종속
  • 조인(Join) 종속
결정자(Determinant)와
종속자(Dependent)
  • 결정자: 속성 간 종속성 규명 시 기준값
  • 종속자: 결정자 값에 의해 정해지는 값
  • 결정자 X의 값은 반드시 하나의 Y 값과 연관
폐포(Closure)
  • 정규화는 함수 종속의 결정자가 키가 되도록 개체 분해

 

 

함수 종속 추론

 

 

3. 관계 대수(Relational Algebra)

관계 대수
  • 주어진 관계로부터 원하는 데이터와 그 데이터를 어떻게 유도하는가를 연산자, 연산 규칙 등 사용해 기술하는 절차적 정형 언어
관계 해석
  • 관계 데이터 언어에서 원하는 릴레이션을 정의하는 방법 제공하고 비절차식으로 원하는 정보가 무엇이라는 것만 선언
  • 수학의술어 해석({redicate Calculus)에 기반
  • 질의어로 표현 가능
질의 최적화
경험적 규칙
  • 질의는 DB에 존재하는 데이터를 사용자가 원하는 조건을 통해 검색하고, 검색된 결과를 자유로이 조회할 수 있는 기능 지원
  • 추출(Project) 연산은 일찍 수행
  • 선택(Select) 연산은 가능한 한 일찍 수행
  • 조인(Join) 연산은 가능한 마지막에 수행

 

 

 

일반 집합 연산자 합교차카

https://velog.velcdn.com/images%2Fodh0112%2Fpost%2F7fd3b5f5-4268-4c43-9f42-332ce3f28c32%2F2.PNG

 

합집합 (Union) R∪S 합병 가능한 두 릴레이션의 합집합
교집합 (Intersection) R∩S 릴레이션 R,S에 속하는 모든 튜플로 결과 릴레이션 구성
차집합 (Difference) R-S R에 존재하고 S에 미 존재하는 튜플로 결과 구성
카티션 프로덕트 (CARTISIAN Product) R-S R, S에 속한 모든 튜플 연결해 만들어진 새로운 튜플로 구성

 

 

 

순수 관계 연산자 셀프조디

https://velog.velcdn.com/images%2Fodh0112%2Fpost%2Fb32238ee-dbaa-4798-b084-5e3f54d01ae5%2F%EC%88%9C%EC%88%98%20%EA%B4%80%EA%B3%84%20%EC%97%B0%EC%82%B0%EC%9E%90.PNG

 

셀렉트 (Select) σ_조건(R) 릴레이션 R에서 조건 만족하는 튜플 반환
프로젝트 (Project) π_속성리스트(R) 릴레이션 R에서 주어진 속성들의 값으로만 구성된 튜플 반환
조인 (Join) R⋈S 공통 속성 이용해 R과 S 튜플들 연결해 만들어진 튜플 반환
디비전 (Division) R÷S 릴레이션 S의 모든 튜플과 관련있는 R의 튜플 반환

 

 

 

데이터 베이스 정규화

 

정규화

개념
  • 관계형 데이터 모델에서 데이터 중복성 제거하여 이상 현상 방지하고 데이터 일관성과 정확성 유지위해 무손실 분해
  • 하나의 릴레이션에 하나의 의미만 존재할 수 있도록 분해해 나가는 과정
  • 데이터 모델링 단계 중 가장 중요한 단계로 논리 데이터 모델링 상세화 단계
  • 중복성 최소화, 정보 일관성 보장위한 개념
목적
  • 구성되는 모든 릴레이션 중복되지 않게 효과적으로 데이터베이스 내에 표현 가능하도록 함
  • 보다 간단한 연산자에 의해 효과적 연산 가능하도록 구성
  • 새로운 형태의 데이터 삽입 시 릴레이션 재구성할 필요성 감소
  • 자료 검색과 추출의 효율성 추구
  • 전체적인 성능 향상에 기여
  • 어떠한 릴레이션이라도 데이터베이스 내에서 표현 가능하도록 함

 

 

 

정규화 과정 원부이결다조

 

 

 

논리 데이터 모델 품질 검증

 

1. 좋은 데이터 모델의 요건

  • 완전성(Completeness)
  • 중복 배제(Non-Redundancy)
  • 비즈니스 규칙(Business Rules)
  • 데이터 재사용(Data Reusability)
  • 안전성 및 확장성(Stabo;otu amd Flexibility)
  • 간결성(Elegance)
  • 의사소통(Communication)
  • 통합성(Integration)

 

2. 데이터 모델 품질 검증 기준

  • 정확성: 표기법에 따른 정확한 표기, 업무 영역 또는 요구사항 정확히 반영
  • 완전성: 구성 요소 정의/요구사항 및 업무 영역 반영 누락 최소화
  • 준거성: 제반 준수 요건들 누락없이 정확히 준수
  • 최신성: 현행 시스템 최신 상태 반영, 이슈 사항 지체없이 반영
  • 일관성: 공통적 데이터 요소 전사 수준에서 한번 정의 후 다른 영역에서 참조, 활용하며 모델 표현상 일관성 유지
  • 활용성: 작성된 설명 내용, 모델 표기, 모델 작성 의도 쉽게 이해 가능

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Reference

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

 

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

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

book.naver.com

 

반응형

'정보 처리 기사 필기 > 3. 데이터 베이스 구축' 카테고리의 다른 글

3-3 SQL  (0) 2023.04.20
3-2 논리 데이터베이스 설계  (0) 2022.07.19
3-1 데이터 베이스 개요  (0) 2022.07.05