[회고] 신입 iOS 개발자가 되기까지 feat. 카카오 자세히보기

💻 CS/데이터베이스

데이터베이스 모델링 개념

inu 2021. 5. 2. 01:50
반응형

데이터베이스 설계 프로세스

데이터베이스 생명 주기

  • 요구조건 분석 -> 설계 -> 구현 -> 운영 -> 감시 및 개선
  • 감시 및 개선 과정에서 전 단계로 되돌아가 내용을 수정할 수 있다.

데이터베이스 설계 프로세스

  • 요구사항 수집 분석 : 데이터베이스 요구사항 정리
  • 개념적 설계 : 개념적 스키마 (ER 스키마) 완성
  • 논리적 설계 : 논리적 스키마 (관계 데이터베이스 스키마) 완성, DBMS의 특성 고려, 관계 DBMS에서는 ER 스키마를 릴레이션들로 구성
  • 정규화 : 정규화된 릴레이션들
  • 물리적 설계 : 물리적 스키마 (릴레이션, 인덱스 등)

데이터 모델링 개념

데이터 세계

  • 현실 세계의 개체를 개념적으로 모델링하여 개념적 구조를 만들고
  • 해당 개념적 구조를 기반으로 데이터 모델링을 진행해 논리적 구조를 만든다.
  • 그리고 이를 최종적으로 데이터 구조화하면 저장 데이터베이스가 된다.

논리 데이터 모델링

  • 데이터베이스 설계 과정 중 비즈니스 정보구조와 규칙을 표현하는 단계
  • 전산의 기본적 업무 프로세스를 이해하고 시스템의 효율과 사용성을 극대화하기 위해 정보들을 분석하고 설계하는 과정
  • 데이터의 일관성 및 정확성 유지 필요
  • 시스템 설계자와 사용자(업무 담당자)간의 명확한 의사소통을 위한 수단
  • 데이터의 구조와 무결성을 함께 고려
  • 다이어그램 등 표준화된 개발도구 적극 활용
  • 개체파악 - 식별자파악 - 상세화 - 통합 - 품질검증 순서로 이루어짐

데이터모델

  • 논리적으로 표현된 데이터 구조, 해당 구조에서 허용되는 연산, 구조와 연산에 대한 제약조건에 대한 명세
  • 데이터 구조 : 데이터베이스에 표현될 대상. 개체와 개체 타입, 그들간의 관계를 명세
  • 연산 : 데이터베이스에 표현된 개체를 처리하는 작업에 대한 명세
  • 제약조건 : 데이터베이스에 허용될 수 있는 개체 인스턴스에 대한 논리적 제약

관련용어

  • 개체 : 업무 활동 상 지속적 관심을 가진 대상. 대상간의 동질성을 가진 개체 집합
  • 속성 : 개체 타입에 속한 개체의 성격을 구체적으로 나타낸 항목
  • 관계 : 두 개 이상의 개체들 간 명명된 의미있는 연결
  • 주 식별자 : 개체 타입의 대표성을 나타내는 속성 (개체의 유일한 식별자)
  • 외래 식별자 : 다른 개체 관계에 의해 주 식별자 속성을 상속받아 자신의 속성에 포함되는 식별자
  • ER 다이어그램 : 개체-관계 모델을 이용해 현실 세계를 개념적으로 모델링한 결과물을 그림으로 표현한 것

개체의 개념 및 도출

개체

  • 명확하게 식별 가능한 사물
  • 정보를 보관하는 객체
  • 데이터베이스에 표현되어야하는 모든 오브젝트
  • 관계형 모델 구축을 위해 설정된 규칙들의 특정 집합을 충족시키는 속성들의 집합체

개체 타입의 특성

  • 개체 타입 : 애트리뷰트들로 구성된 개체의 공통된 논리구조 (반드시 속성이 포함되어야함)
  • 상호 배타성 : 사물이나 객체는 반드시 하나의 개체에만 속해야 한다
  • 상호 식별성 : 객체 내 모든 튜플은 각 개체에서 유일하게 식별 가능해야 한다 (기본키의 존재)
  • cf. 독자적으로 구별될 수 있는 개체 타입을 강한 개체 타입이라고 하며, 다른 개체 타입의 특정 개체와 관련됨으로써 식별되는 개체 타입을 약한 개체 타입이라고 한다. 약한 개체 타입은 기본키가 아닌 부분키를 가진다.

참고 : e-koreatech 논리적 데이터베이스 설계 강의

반응형

'💻 CS > 데이터베이스' 카테고리의 다른 글

Python으로 Mysql 다루기 (pymysql)  (2) 2021.06.07
개체와 속성  (0) 2021.05.04
Mysql - 기초명령어 정리  (0) 2021.01.20
SQLite - 기본함수  (0) 2020.07.08
SQLite - DB 생성과 변경  (0) 2020.07.08