[정처산기] 필기준비 : 데이터 입출력 구현(1) [논리 데이터저장소 확인하기]

2022. 7. 9. 19:45·◈ 자격증 공부/정보처리산업기사🔅
728x90
반응형

 

[정처산기] 필기준비 : SQL활용(2) [고급 SQL 작성하기]

[정처산기] 필기준비 : SQL활용(1) [기본 SQL 작성하기] [정처산기] 필기준비 : 화면 구현(2) [UI 구현하기] [정처산기] 필기준비 : 화면 구현(1) [UI 설계 확인하기] [정처산기] 필기준비 : 프로그래밍 언

yermi.tistory.com


1. 논리 데이터저장소 확인하기

1-1. 논리 데이터모델 검증

1) 일반적인 시스템 개발 절차

시스템 개발 절차 / 참고 : NCS 학습모듈 교재

 

- 시스템 개발 절차

  1. 개념 모델링
  2. 업무 중심의 분석(논리 데이터 모델링, 분석 모델링)
  3. 환경을 고려한 설계(물리 데이터 모델링, 설계 모델링)
  4. 개발(데이터베이스 구축, 애플리케이션 개발)

 

2) 데이터 모델링 개요

(1) 데이터 모델링 정의

기업의 정보 구조를 실체(Entity)와 관계(Relation)를 중심으로
명확하고 체계적으로 표현하여 문서화하는 기법

 

(2) 데이터 모델링 목적

  • 연관 조직의 정보요구에 대한 정확한 이해를 할 수 있다.
  • 사용자, 설계자, 개발자 간에 효율적인 의사소통 수단을 제공한다.
  • 데이터 체계 구축을 통한 고품질 S/W와 유지보수 비용의 감소효과를 기대할 수 있다.
  • 신규 또는 개선 시스템의 개발 기초를 제공한다.

 

(3) 데이터 모델링 특성

  • 데이터 중심 분석을 통한 업무 흐름 파악이 용이하다.
  • 데이터 무결성을 보장할 수 있다.
  • 데이터의 공유를 통한 중복을 제거하고 일관성 있는 정보를 제공받을 수 있다.

 

3) 데이터 모델링 절차

데이터 모델링 절차 / 참고 : NCS 학습모듈 교재

 

(1) 개념 데이터 모델링

전사의 정보요건을 표현한 상위수준의 모델
  • 주요 엔터티타입, 기본 속성, 관계, 주요 업무기능 등을 포함한다.
  • 모든 업무 영역을 포함하고, 주제 영역에 포함되는 중심 엔터티타입 간의 관계를 파악하여 주요 업무 규칙을 정의한다.
  • 논리 데이터 모델의 기초가 된다.

 

(2) 논리 데이터 모델링

개념모델로부터 업무영역의 업무 데이터 및 규칙을 구체적으로 표현한 모델
  • 모든 업무용 엔터티타입, 속성, 관계, 프로세스 등을 포함한다.
  • 모든 업무 데이터를 정규화(Normalization) 하여 모델링한다.
  • 모든 업무 규칙과 관계를 완전하고 정확하게 표현한다.
  • 성능 혹은 기타 제약 사항과는 독립적인 모델로서, 특정 DBMS로부터 독립적이라 할 수 있다.

 

(3) 물리 데이터 모델링

설계단계에서 시스템의 설계적 및 정보 요건을 정확하고 완전하게 표현한 모델
  • 데이터베이스 생성을 위한 물리 구조로 변환한다.
  • 시스템 설계 요건 반영을 위한 설계용 엔터티 타입, 설계용 속성 오브젝트를 추가한다.
  • 설계와 성능을 고려한 조정을 수행한다.
  • 적용 DBMS에 적합한 성능조정을 수행한다.

 

4) 논리 데이터 모델링 개요

(1) 논리 데이터 모델링 정의

데이터 구조에 대한 논리적 정의단계
→ 데이터베이스 개발 과정의 첫 단계로 전략수립 및 분석 단계에서 실시
  • 엔터티: 관리할 대상이 되는 실체
  • 속성: 관리할 정보의 구체적 항목
  • 관계: 엔터티간의 대응관계

 

(2) 논리 데이터 모델링 특성

  • 논리적 데이터 모델링 시 요구사항을 충분히 수집하지 않으면 다음 단계의 요구사항 변경에 따른 많은 비용이 발생
  • 모든 이해당사자들과 의사소통의 보조자료로서 E-R 모델을 활용
  • 논리적 모델은 H/W나 S/W에 독립적

 

(3) 정규화(Normalization)

① 정의

중복성을 최소화하고 정보의 일관성을 보장하기 위한 개념

 

② 목적

  • 데이터 중복 배제로 데이터 관리 편의성 제고 및 자료 저장 공간의 최소화
  • 데이터 모형 단순화
  • 데이터 구조의 안정성 및 무결성 유지
  • 속성의 배열상태 검증
  • 엔터티와 속성의 누락 여부 검증 수단
  • 자료검색과 추출의 효율성을 추구

 

③ 특징

  • 관계구조에 관한 구체적인 판단기준을 제공
  • 정규화된 데이터 모델은 정확성, 일치성, 단순성, 비중복성, 안정성 보장

 

④ 유형

제1정규화
  1) 반복되는 속성이나 Group 속성 제거
  2) 새로운 실체와 1:N의 관계 추가
  3) 모든 속성은 반드시 하나의 값을 가져야 함(반복형태가 있어서는 안됨)

제2정규화
  1) 주식별자에 완전하게 종속되지 않는 속성 제거
  2) 불완전 함수적 종속(Non Fully Dependency) 제거
  3) 모든 속성은 반드시 UID전부에 종속되어야 함(UID일부에만 종속되어서는 안됨)

제3정규화
  1) 비식별자에 종속되는 속성 제거
  2) 주식별자에 이행종속(Transitive Dependency) 되는 속성 제거
  3) UID가 아닌 모든 속성 간에는 서로 종속될 수 없음(속성간 종속성 배제)

제4정규화
  1) 실제로 거의 고려되지 않는 정규화
  2) 주식별자에 다가종속(Multi-Valued Dependency)되는 속성을 두가지 이상 두지않음
  3) 2차 정규화된 테이블은 다대다 관계를 가질 수 없음
  4) 관계구조에 관한 구체적인 판단기준을 제공

 

⑤ 정규화 수준에 따른 장단점

정규화 수준이 높을수록,

- 장점
  1) 유연한 데이터 구축이 가능
  2) 데이터의 정확성 높아짐

- 단점
  1) 물리적 접근이 복잡
  2) 길이가 짧은 데이터 생성으로 과도한 조인 발생

 

4) 모델 작성 기법

  • 엔터티들은 정렬하여 배열한다.
  • 업무흐름의 진행 순서와 관련된 엔터티는 진행순서를 고려하여 좌에서 우, 상에서 하로 중심부에 배열한다.
  • 중심에 배열된 엔터티와 관계를 가진 엔터티를 가까이 배열한다.
  • 관계는 사선이 아닌 수직, 수평선을 사용한다.
  • 공간을 활용하여 복잡해 보이지 않도록 배열한다.
  • 교차선이 생기거나 관계선이 너무 길지 않도록 배열한다.
  • 관계있는 엔터티끼리 그룹핑한다.

 

참고자료 : https://www.ncs.go.kr



728x90
반응형
'◈ 자격증 공부/정보처리산업기사🔅' 카테고리의 다른 글
  • [정처산기] 필기준비 : 데이터 입출력 구현(2) [물리 데이터저장소 설계하기]
  • [정처산기] 필기준비 : SQL활용(2) [고급 SQL 작성하기]
  • [정처산기] 필기준비 : SQL활용(1) [기본 SQL 작성하기]
  • [정처산기] 필기준비 : 화면 구현(2) [UI 구현하기]
예르미(yermi)
예르미(yermi)
끊임없이 제 자신을 계발하는 개발자입니다👨🏻‍💻
  • 예르미(yermi)
    예르미의 코딩노트
    예르미(yermi)
  • 전체
    오늘
    어제
    • 분류 전체보기 (1053)
      • ◎ Java (133)
        • Java☕ (93)
        • JSP📋 (26)
        • Applet🧳 (6)
        • Interview👨🏻‍🏫 (8)
      • ◎ JavaScript (48)
        • JavaScript🦎 (25)
        • jQuery🌊 (8)
        • React🌐 (2)
        • Vue.js🔰 (6)
        • Node.js🫒 (3)
        • Google App Script🐑 (4)
      • ◎ HTML5+CSS3 (17)
        • HTML5📝 (8)
        • CSS3🎨 (9)
      • ──────────── (0)
      • ▣ Framework (67)
        • Spring🍃 (36)
        • Spring Boot🍀 (12)
        • Bootstrap💜 (3)
        • Selenium🌕 (6)
        • MyBatis🐣 (10)
      • ▣ Tools (47)
        • API🎯 (18)
        • Library🎲 (15)
        • JitPack🚀 (3)
        • Jenkins👨🏻 (7)
        • Thymeleaf🌿 (4)
      • ▣ Server (30)
        • Apache Tomcat🐱 (14)
        • Apache HTTP Server🛡️ (1)
        • Nginx🧶 (7)
        • OracleXE💿 (4)
        • VisualSVN📡 (4)
      • ▣ Infra & DevOps (36)
        • LGTM Stack🔭 (5)
        • Kafka🐦‍🔥 (3)
        • Kubernetes🚢 (10)
        • KubeCon Japan 2026⚓ (18)
      • ▣ OS : 운영체제 (18)
        • cmd : 명령프롬프트💻 (10)
        • Linux🐧 (8)
      • ▣ SQL : Database (56)
        • Oracle SQL🏮 (26)
        • PL SQL💾 (9)
        • MySQL🐬 (6)
        • MariaDB🦦 (6)
        • H2 Database🔠 (3)
        • SQL 실전문제🐌 (6)
      • ────────── (0)
      • ◈ Human Project (86)
        • Mini : Library Service📚 (15)
        • 화면 설계 [HTML]🐯 (10)
        • 서버 프로그램 구현🦁 (15)
        • Team : 여수어때🛫 (19)
        • Custom : Student🏫 (9)
        • Custom : Board📖 (18)
      • ◈ Yermi Project (57)
        • 조사모아(Josa-moa)📬 (5)
        • Riddle-Game🧩 (6)
        • 맛있을 지도🍚 (2)
        • 어디 가! 박대리!🙋🏻‍♂️ (5)
        • 조크베어🐻‍❄️ (4)
        • Looks Like Thirty🦉 (2)
        • Toy Project💎 (12)
        • 오픈소스 파헤치기🪐 (5)
        • 오늘가챠🃏 (16)
      • ◈ Refactoring (15)
        • Mini : Library Service📚 (8)
        • 서버 프로그램 구현🦁 (1)
        • Team : 여수어때🛫 (0)
        • 쿼리 튜닝일지🔧 (6)
      • ◈ Coding Test (80)
        • 백준(BOJ)👨🏻‍💻 (71)
        • 프로그래머스😎 (2)
        • 코드트리🌳 (7)
      • ◈ Study (130)
        • 기초튼튼 개발지식🥔 (25)
        • HTTP 웹 지식💡 (4)
        • 클린코드(Clean Code)🩺 (1)
        • 디자인패턴(GoF)🥞 (12)
        • 알고리즘(Algorithm)🎡 (14)
        • 다이어그램(Diagram)📈 (4)
        • 파이썬(Python)🐍 (16)
        • 에러노트(Error Note)🧱 (35)
        • 웹 보안(Web Security)🔐 (11)
        • 인공지능 AI🛸 (8)
      • ◈ 공부모임 (60)
        • 혼공학습단⏰ (18)
        • 코드트리 챌린지👊🏻 (2)
        • 개발도서 100독👟 (8)
        • 나는 리뷰어다🌾 (20)
        • 국가기술자격 서포터즈🌻 (12)
      • ◈ 자격증 공부 (48)
        • 정보처리기사🔱 (16)
        • 정보처리산업기사🔅 (9)
        • 정보보안기사⚜️ (11)
        • 컴퓨터활용능력 1급📼 (12)
      • ─────────── (0)
      • ◐ 기타 (124)
        • 알아두면 좋은 팁(tip)✨ (46)
        • 개발자의 일상🎈 (55)
        • 개발도서 서평🔍 (10)
        • 개발관련 세미나🎤 (2)
        • 블로그 꾸미기🎀 (9)
        • 사도신경 프로젝트🎚️ (2)
  • 인기 글

  • 최근 댓글

  • 반응형
    250x250
  • 태그

    백준
    javascript
    일상
    Project
    Oracle
    CSS
    Database
    BOJ
    spring boot
    백준 티어
    Java
    spring
    자바스크립트
    Error Note
    jsp
    코딩 테스트
    프로그래밍
    SQL
    꿀팁
    코딩
  • hELLO· Designed By정상우.v4.10.3
예르미(yermi)
[정처산기] 필기준비 : 데이터 입출력 구현(1) [논리 데이터저장소 확인하기]
상단으로

티스토리툴바