[Database] 데이터모델링, 관계형 데이터모델, MySQL데이터타입

h220101·2022년 4월 30일
0

데이터 모델링

복잡한 현실세계에 존재하는 '데이터를 단순화' 시켜 표현해 컴퓨터 세계의 데이터베이스로 옮기는 변환 과정이다.

데이터 모델링 특성

  1. 추상화 ( Abstraction )
    현실세계를 간략하게 표현한다.

  2. 단순화 ( Simple )
    누구나 쉽게 이해할 수 있도록 표현한다.

  3. 명확성 ( Clarity )
    명확하게 의미가 해석되어야하고,
    1가지 의미를 가져야한다.

현실세계 -> 개념적구조 -> 논리적구조

개념적 데이터 모델

  • 사람의 머리로 이해할 수 있도록
    현실세계를 개념적인 형태로 모델링하여,
    데이터베이스의 개념적구조로 표현하는 도구

논리적 데이터 모델

  • 개념적 구조를 논리적 형태로 모델링하여,
    데이터베이스의 논리적 구조로 표현하는 도구

개체 - 관계 모델

  • 관계( relationship )
    개체와 개체가 맺고있는 의미있는 연관성
    개체 집합들 사이의 대응관계, 즉 매핑(mapping)을 의미
    예) 고객 개체 - 상품 개체 간 구매관계
    "고객은 - 상품을 - 구매한다"

  • 관계의 유형
    일대일 (1:1) 관계
    일대다 (1:N) 관계
    다대다 (N:M) 관계

E-R 다이어그램



E-R 다이어그램 도형 기호



관계형 데이터 모델

데이터 베이스 구성

데이터베이스 스키마 (database schema)

  • 데이터베이스의 전체 구조
  • 데이터베이스를 구성하는 릴레이션 스키마의 모음

데이터베이스 인스턴스 (database instance)

  • 데이터베이스를 구성하는 릴레이션 인스턴스의 모음

릴레이션의 특성

  1. 튜플의 유일성
    하나의 릴레이션에는 동일한 튜플이 존재할 수 없다.

  2. 튜플의 무순서
    하나의 릴레이션에서 튜플 사이의 순서는 무의미하다.

  3. 속성의 무순서
    하나의 릴레이션에서 속성사이의 순서는 무의미하다.

  4. 속성의 원자성
    속성값을 원자값으로 사용할 수 있다.

릴레이션에서 튜플들을 유일하게 구별하는 속성 또는 속성들의 집합

키의 특성

  1. 유일성(uniqueness)
    한 릴레이션에서 모든 튜플은 서로 다른키 값을 가져야 함

  2. 최소성(minimality)
    꼭 필요한 최소한의 속성들로만 키를 구성

키의 종류

기본키 (primary key) PK
후보키 중에서 기본적으로 사용하기 위해 선택한 키
예) 고객 릴레이션의 기본키 : 고객ID

후보키 (candidate key)
유일성과 최소성을 만족하는 속성 또는 속성들의 집합
예) 고객 릴레이션의 후보키: 고객ID, (고객이름, 주소) 등

대체키 (alternate key)
기본키로 선택되지 못한 후보키
예) 고객 릴레이션의 대체키: (고객이름, 주소)

슈퍼키 (super key)
유일성을 만족하는 속성 또는 속성들의 집합
예) 고객 릴레이션의 슈퍼키: 고객ID, (고객아이디, 고객이름), (고객이름, 주소) 등


외래키 (foreign key) FK
다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합

  • 릴레이션들 간의 관계를 표현
    -참조하는 릴레이션 : 외래키를 가진 릴레이션
    -참조되는 릴레이션 : 외래키가 참조하는 기본키를 가진 릴레이션

제약조건

무결성 제약조건
-데이터의 무결성을 보장하고 일관된 상태로 유지하기 위한 규칙
-무결성: 데이터를 결함이 없는 상태, 즉 정확하고 유효하게 유지하는 것

도메인 무결성 제약조건

  • 특정 속성의 값이 그 속성이 정의된 도메인에 속한 값이어야 한다는 규칙
  • null값은 허용됨 (not null이 아닌 경우)

개체 무결성 제약조건

  • 기본키를 구성하는 모든 속성은 null값을 가질 수 없는 규칙

참조 무결성 제약조건

  • 외래키는 참조할 수 없는 값을 가질 수 없는 규칙

    (외래키의 속성이 null값을 가진다고 참조무결성을 위반하는 것은 아님)

  • RESTRICTED
    레코드를 변경 또는 삭제하고자 할 때, 해당레코드를 참조하고있는 개체가 있다면, 변경 또는 삭제연산을 취소

  • CASECADE
    레코드를 변경 또는 삭제하면, 해당 레코드를 참조하고있는 개체도 변경 또는 삭제

  • SETNULL
    레코드를 변경 또는 삭제하면, 해당 레코드를 참조하고있는 개체의 값을 null로 설정



MySQL데이터타입

숫자데이터 형식

문자데이터 형식

-한글 데이터를 BINARY로 변환하여 ORDER BY 할 수 있다.

날짜데이터 형식

profile
기록하는 삶

0개의 댓글