//Google AdSense

데이터모델링

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

데이터 모델링 특성
추상화(Abstraction) 단순화(Simple) 명확성(Clarity)
현실세계를 간략하게 표현 누구나 쉽게 이해할 수 있도록 표현

명확하게 의미가 해석되어야 하고

한 가지 의미를 가져야 함.

 

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

개념적 데이터 모델

논리적 데이터 모델

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

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

데이터 모델링 (개체-관계 모델)

관계 (relationship)

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

관계의 유형

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

E-R 다이어그램

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

 


관계형 데이터 모델

 

데이터 베이스의 구성

 

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

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

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

  • 데이터베이스를 구성하는 릴레이션 인스턴스의 모음
릴레이션의 특성
튜플의 유일성 튜플의 무순서 속성의 무순서 속성의 원자성
하나의 릴레이션에는 동일한 튜플이 존재할 수 없다. 하나의 릴레이션에서 튜플 사이의 순서는 무의미하다. 하나의 릴레이션에서 속성사이의 순서는 무의미하다. 속성 값을 원자 값으로 사용할 수 있다.

 

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

 

키의 특성

유일성(uniqueness) 최소성(minimality)
데이터베이스를 구성하는 릴레이션 스키마의 모음 꼭 필요한 최소한의 속성들로만 키를 구성

 

키의 종류

기본키 (primary key) 후보키 (candidate key) 대체키 (alternate key) 슈퍼키 (super key)
후보키 중에서 기본적으로 사용하기 위해 선택한 키 유일성과 최소성을 만족하는 속성 또는 속성들의 집합 기본키로 선택되지 못한 후보키 유일성을 만족하는 속성 또는 속성들의 집합

외래키 ( foreign key)

  • 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합
  • 릴레이션들 간의 관계를 표현
    • 참조하는 릴레이션 : 외래키를 가진 릴레이션
    • 참조되는 릴레이션 : 외래키가 참조하는 기본키를 가진 릴레이션

 

제약조건

 

무결성 제약조건 (integrity constraint)

- 데이터의 무결성을 보장하고 일관된 상태로 유지하기 위한 규칙

- 무결성 : 데이터를 결함이 없는 상태, 즉 정확하고 유효하게 유지하는 것

개체 무결성 제약조건 (entity integrity constraint) 참조 무결성 제약조건 (referential integrity constraint)
기본키를 구성하는 모든 속성은 null 값을 가질 수 없는 규칙

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

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

 


MySQL 데이터 타입

숫자 데이터 형식

데이터 형식 바이트 수  숫자범위 설명
BIT N/8   Bit 표현
TINYINT 1 -128 ~ 127 정수
SMALLINT 2 -32,768 ~ 32,767 정수
MEDIUMINT 3 -8,388,608 ~ 3,388,607 정수
INT 4 약 -21억 ~ 21억 정수
BIGINT 8 약 -900경 ~ 900경 정수
FLOAT 4 -3.40E+38 ~ 1.79E-38 소수점 7자리
DOUBLE 8 -122E-308 ~ 1.79E+308 소수점 15자리
DECIMAL(m,[d]) 5~17 -10^38+1 ~ 10^38 -1 소수점

 

문자 데이터 형식

데이터 형식 바이트 수  설명
CHAR 1~255 고정길이 문자형
VARCHAR 1~65535 가변길이 문자형
BINARY 1~255 고정길이의 이진 데이터 값
VARMINARY 1~255 가변길이의 이진 데이터 값
TEXT 1~65535 N크기의 TEXT데이터 값
BLOB 1~65535 N크기의 BLOB 데이터 값
ENUM 1 or 2 최대 65535개의 열거형 데이터 값
SET 1, 2, 3, 4, 8 최대 64개의 서로 다른 데이터 값

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

 

날짜 데이터 형식

데이터 형식 바이트 수 설명
DATE 3

날짜 : 1001-01-01~999-12-31 까지 저장

날짜형식만 사용 'YYYY-MM-DD'

 

TIME 3

시간: -838:59:59.000000~838:59:59.000000까지 저장

형식: ‘HH:MM:SS’

DATETIME 8

날짜: 1001-01-01 00:00:00~9999-12-31 23:59:59 저장

형식: ‘YYYY-MM-DD HH:MM:SS

TIMESTAMP 4

날짜: 1001-01-01 00:00:00~9999-12-31 23:59:59 저장

형식: ‘YYYY-MM-DD HH:MM:SS

Time_zone 시스템 변수와 관련 있으며 UTC 변환 저장

YEAR 1

날짜: 1901~2155까지 저장.

형식: ‘YYYY’

 

 

 

 

'Database' 카테고리의 다른 글

[Database] join  (0) 2020.03.25
[Database] SQL 활용 ②  (0) 2020.03.18
[Database] MySQL 실습  (0) 2020.03.11
[Database] MySQL 설치 / 키워드 및 실습  (0) 2020.03.11

+ Recent posts