논리적 모델링(Logical Modeling)

  • 개념적 설계 단계에서 추출된 객체와 속성들의 관계를 설계하는 단계
  • 개념적 모델링 단계에서 ERD를 설계했다면, 이 단계에선 목표에 맞는 스키마를 설계하게 된다.
  • 관계형 데이터베이스라면 테이블, 즉 릴레이션을 설계하는 단계이다.

 

논리적 모델링의 종류

  • 계층형 데이터 모델
  • 객체 지향형 데이터 모델
  • 관계 데이터 모델
  • 네트워크 데이터 모델

 

관계형 데이터 모델링(Relational Data Modeling)

 

Relation

  • Table(Relation): 행과 열의 2차원 구조를 가진 데이터 저장 객체(Object)
  • Column(Field, Attribute): 테이블에서 세로 방향으로 이루어진 개별 속성
  • Row(Record, Tuple): 테이블에서 가로 방향으로 이루어진 연결된 데이터

 

Relation의 특성

  • 튜플의 유일성: 하나의 릴레이션에는 동일한 튜플이 존재할 수 없다.
  • 튜플의 무순서: 하나의 릴레이션에서 튜플 사이의 순서는 무의미하다.
  • 속성의 무순서: 하나의 릴레이션에서 속성 사이의 순서는 무의미하다.
  • 속성의 원자성: 속성 값으로 원자 값만 사용할 수 있다.

 

제약(Constraints)

  • 도메인 제약(Domain Constraints)
    • 속성(Attribute)에 대한 제약
    • 속성 값은 원자성(Atomicity)를 가지며, 도메인에서 정의된 값이어야 한다.
    • Composite Attribute와 Multivalued Attribute는 허용되지 않는다.
    • Not Null이 아닐 경우 Null 값은 허용된다.
    • 도메인: 속성 하나가 가질 수 있는 모든 값의 집합, 즉 값의 범위
    • 원자성: 더이상 분해할 수 없는 하나의 값
    • Null 값: 특정 속성에 값이 없음을 나타내며, 튜플의 속성 값을 모르거나 적합한 값이 없는 경우에 사용
  • 키 제약(Key Constraints)
    • 릴레이션(Relation)에 대한 제약
    • 릴레이션의 모든 튜플(Tuples)은 서로 식별이 가능해야한다.
    • 슈퍼키(Super Key): 유일성을 만족하는 속성 또는 속성들의 집합, 키 값이 같은 튜플은 존재할 수 없다.
    • 후보키(Candidate Key): 유일성과 최소성을 만족하는 속성 또는 속성들의 집합
      • 최소성: 필수적인 최소한의 속성들로만 키를 구성하는 특성
    • 기본키(Primary Key): 여러 개의 후보키 중에서 기본적으로 사용할 키
  • 개체 무결성 제약(Entity Integrity Constraints)
    • 기본키(Primary Key)에 대한 제약
    • 기본키는 Unique & Not Null 이어야 한다.
    • 기본키 선택 시 고려 사항
      • Null 값을 가질 수 있는 속성이 포함된 후보키는 기본키로 부적합하다.
      • 값이 자주 변경될 수 있는 속성이 포함된 후보키는 기본키로 부적합하다.
      • 자릿수가 적은 정수나 단순한 문자열인 속성으로 구성된 후보키를 기본키로 선택한다.
  • 참조 무결성 제약(Referential Integrity Constraints)
    • 외래키(FK: Foreign Key)에 대한 제약
    • 외래키
      • 어떤 릴레이션에 소속된 속성 또는 속성 집합이 다른 릴레이션의 기본키가 되는 키(= 속성), 즉 다른 릴레이션의 기본키를 그대로 참조하는 속성의 집합
      • 릴레이션 1이 릴레이션 2를 참조하는 경우, 릴레이션 2의 기본키는 릴레이션 1의 외래키로 사용된다.
      • 외래키는 자기 자신이 속한 릴레이션을 참조할 수도 있다.
      • 릴레이션 간의 관계를 표현하는 역할을 한다.

 

 

ER - to Relational Model 변환 단계

  • step 1 : Mapping of Strong Entity Types
    • 각 강성 개체에 대응되는 릴레이션을 생성
      • 강성 개체의 단일 속성을 모두 릴레이션의 속성으로 포함
      • 복합키의 경우 각 하위 컴포넌트만 포함
      • 다중 속성은 추후 고려
    • 강성 개체의 키 속성 중 하나를 선택하여 릴레이션의 기본키로 설정
      • 복합키의 경우, 이에 속한 속성들의 조합이 릴레이션의 기본키가 된다.
  • step 2 : Mapping of Weak Entity Types
    • 각 약성 개체에 대응되는 릴레이션을 생성하고, 약성개체의 단일 속성을 모두 릴레이션의 필드로 포함
    • 약성 개체의 식별 개체에 대해, 식별 개체의 기본키를 릴레이션의 외래키로 포함
    • 릴레이션의 기본키는 식별 개체의 기본키와 약성 개체의 부분키의 조합으로 구성
  • step 3 : Mapping of Binary 1:N Relationship Types
    • 1:N Relationship RS에 대해 이 관계에 참여하는 두 개체를 각각 1-side와 N-side라 할 때
      • 1-side의 기본키를 N-side의 외래키로 포함
      • RS에 속한 모든 단일 속성을 N-side의 릴레이션에 포함
  • step 4 : Mapping of Binary 1:1 Relationship Types
    • 1:1 Relationship RS에 대해 이 관계에 참여하는 두 개체를 각각 S, T라 할 때
      • 대안 1) T → S
        • T의 기본키를 S의 외래키로 포함
        • RS에 속한 모든 단일 속성을 S에 포함
      • 대안 2) S → T
        • S의 기본키를 T의 외래키로 포함
        • RS에 속한 모든 단일 속성을 T에 포함
  • step 5 : Mapping of Binary M:N Relationship Types
    • M:N Relationship RS에 대해 이 관계에 참여하는 두 개체를 각각 S, T라 할 때
    • RS에 대응되는 새로운 릴레이션 생성
    • RS에 속한 모든 단일 속성을 릴레이션에 포함
    • S와 T의 기본키를 R의 외래키로 포함
      • R의 기본키는 S에서 온 외래키와 T에서 온 외래키의 조합으로 구성
  • step 6 : Mapping of N-ary Relationship Types
    • N-ary Ralationship RS에 대해, 새로운 릴레이션을 생성 (N > 2일 시)
    • RS의 모든 단일 속성을 릴레이션의 속성으로 포함
    • RS에 참여하는 모든 Entity의 기본키를 R의 외래키로 포함
    • R의 기본키는 모든 외래키의 조합으로 구성하나
      • 단, 대응수가 1인 관계로부터 가져온 외래키는 기본키의 조합에서 제외
  • step 7 : Mapping of Multivalued Attributes 
    • Entity에 속한 다중 값 속성 MA에 대해 릴레이션 생성
    • MA의 속성을 릴레이션에 포함(→ attribute A)
    • Entity의 기본키를 릴레이션의 외래키로 포함
    • 릴레이션의 기본키는 E의 기본키와 A의 조합으로 구성

'개인 공부 > 데이터베이스 설계' 카테고리의 다른 글

개념적 모델링  (0) 2023.04.17
DB 개요  (0) 2023.04.10

ER 모델 개념

  • 개체(Entity)
    • 실세계에 존재하는 의미있는 하나의 정보 단위
    • 물리적 객체 뿐만 아닌 개념적 객체도 포함
  • 관계(Relationship)
    • 개체들 사이의 연관성
    • [책]과 [고객] 사이의 [구매]관계

  • 속성(Attribute)
    • 개체 또는 관계가 가지는 고유의 특성

 

속성의 분류

  • 속성 값의 개수: 단일 값 속성(Single-valued) vs 다중 값 속성(Multivalued)
  • 의미의 분해 가능성: 단순 속성(Simple) vs 복합 속성(Composite)
  • 유도 속성: 저장된 다른 데이터로부터 유도 가능한 속성

키 속성(Key Attributes)

  • 어떤 개체에 대해 항상 유일한 값을 갖는 속성
    • ex) ISBN, 학번, 차량번호 등...
  • 복합 키(Composite Key)
    • Composite Attribute가 키 속성이 되는 경우
    • 복합 키는 최소성을 가져야 함
  • 각 개체는 하나 이상의 키를 가질 수 있다.
  • 어떤 개체는 키를 가지지 않을 수도 있다.( = Weak Entity)

 

 

관계(Relationship)

  • 관계(Relationship) 설정
    • 한 개체의 속성이 다른 개체를 참조할 때 관계가 형성
  • 관계의 차수(Degree)
    • 관계에 참여하는 개체의 수
    • 이항 관계, 삼항 관계, 순환 관계 등...
  • 관계의 대응수(Cardinality)
    • 해당 개체가 해당 관계에서 참여할 수 있는 관계 인스턴스의 최대 수
    • 1:1, 1:N, N:1, M:N

 

대응수에 따른 관계의 분류

  • 일대다(1:N) 관계

  • 일대일(1:1) 관계

  • 다대다(M:N) 관계

 

 

약성 개체(Weak Entity) ( ↔ Strong Entity)

  • 키 속성을 가지지 않는 개체
  • 약성 개체는 개체를 식별할 수 있는 다른 개체와 식별 관계(Identifying Relationship)으로 맺어져야 함
  • 약성 개체의 식별자는 다음 속성의 조합을 구성
    • 약성 개체의 부분키 속성 + 식별 개체(Identifying Entity)의 키 속성

 

 

ER 다이어그램 표기법

'개인 공부 > 데이터베이스 설계' 카테고리의 다른 글

논리적 모델링  (0) 2023.04.19
DB 개요  (0) 2023.04.10

데이터와 정보

  • 데이터
    • 현실 세계에서 측정하고 수집한 사실이나 값
    • 가공하기 이전의 단순한 관찰/측정을 통해 얻은 재료 즉, 사실이나 수치, 문자, 음성 등
  • 정보
    • 목적이나 의도에 맞게 데이터를 가공 처리한 것
    • 특정 목적에 맞게 가공해서 판단의 근거로 사용될 수 있도록 의미와 가치를 부여한 것
  • 데이터와 정보 구분
    • 데이터 - 1년간 아이스크림 판매량
    • 정보 - 아이스크림은 여름에 잘 팔린다.

 

Database Appplications

  • DB 활용 예시
    • 입금, 출금, 이체 등 은행 거래
    • 숙소 예약
    • 쇼핑몰에서 물품 구매
    • ...
  • DB 시스템의 특성
    • 최초 적재(Loading) 이후 이벤트 발생에 따라 빈번하게 변경(Interaction)된다.
    • 대용량의 데이터를 다루며, 그렇기에 사용자가 쉽고 빠르게 접근할 수 있도록 데이터가 체계적으로 조직화되어야 한다.

 

Database System

 

Database

  • 정의: 특정 조직 내에서 다수의 사용자가 공유할 수 있도록 통합하여 저장한 운영 데이터의 집합체
  • 실질적 의미: 데이터 및 데이터간 관계의 집합
  • 장점
    • 데이터 중복성 최소화
    • 데이터 공유성 최대화
    • 데이터 일관성 유지
    • 데이터 무결성 유지
    • 데이터 독립성 유지
    • 데이터 보안성 최대화
    • 데이터를 표준화하여 관리 가능

DBMS

  • 정의: DB를 생성하여 안정적이고 효율적으로 운영하는데 필요한 기능을 제공하는 SW, 사용자 애플리케이션과 DB간의 인터페이스 역할을 하는 논리적 프로그램
  • 실질적 의미: 사용자가 DB에 접근할 수 있도록 지원해주는 프로그램의 집합
  • DBMS의 필수 기능
    • 정의(Definition): 데이터 정의 및 저장 관리
    • 조작(Manipulation): 조회, 삽입, 삭제, 갱신
    • 제어(Control): 데이터 접근제어, 시스템 오류 발생시 복구 등
  • 종류: MS Access, MySQL, MongoDB, Oracle Database 등

 

데이터베이스 예시

 

데이터베이스 스키마(Schema)

  • 데이터베이스 구조, 데이터 타입, 그리고 제약 조건에 대한 명세
  • 데이터베이스 설계 단계에서 명시되며, 자주 변경되지 않음

 

 

데이터베이스 인스턴스(Instance)

  • 특정 시점에 데이터베이스에 실제로 저장되어 있는 데이터

 

DML/DDL

  • 데이터 정의어(DDL: Data Defination Language)
    • 데이터베이스의 논리적 구조, 즉 스키마를 기술하기 위해 사용되며, 주로 DB 설계자가 사용
  • 데이터 조작어(DML: Data Manipulation Language)
    • 데이터 처리 즉, 데이터의 조회, 삽입, 삭제, 갱신에 사용되며, 주로 이용자가 사용
  • 데이터 제어어(DCL: Data Control Language)
    • 트랜젝션 관리 즉, 권한 정의, 데이터 보안, 데이터 무결성, 데이터 복구, 병행 수행 제어에 사용
    • cf) DCL, TCL(Transaction Control Language)

독립 실행형/내장형

  • 독립 실행형: SQL 인터페이스를 이용하여 SQL 쿼리를 직접 DBMS에 입력
  • 내장형: C, C++, JAVA, 파이썬 등의 프로그래밍 언어에 내장, Host Language + Data sublanguage로 구성

 

'개인 공부 > 데이터베이스 설계' 카테고리의 다른 글

논리적 모델링  (0) 2023.04.19
개념적 모델링  (0) 2023.04.17

+ Recent posts