DB구현-EER 모델링 개체 생성

조정우·2022년 5월 6일
0

DB구현

목록 보기
6/16
post-thumbnail

2022.05.06
국비지원교육 DB구현 인터넷강의 6강

EER 모델링

EER 모델의 개념

1.Entity-Relationship(ER) 모델의 개념 : 실세계의 데이터들을 개념적으로 일반화시킨 데이터 타입, 속성, 관계, 제약조건을 이끌어내는 과정에서 사용되는 대표적인 개념적 데이터 모델
-실세계의 속성들로 이루어진 개체(Entity)와 개체 사이의 관계(Relationship)를 정형화 시킨 모델
-구성요소 4가지
개체 : 실세계에 존재하는 다른 모든 객체와 구별되는 유.무형의 사물로 여러 속성들로 구성되며 업무 처리 대상이 되는 데이터를 표현
제약조건 : 관계에 대한 표현을 명확하게 하기 위해 데이터베이스가 항상 준수해야 하는 조건
속성 : 개체를 구체적으로 설명하는 특성
관계 : 개체와 개체 사이의 연관성을 표현, 업무 프로세스와 관련된 개체 명시
2.Enhanced Entity-Relationship(EER) 모델의 개념 : 복잡하고 대형화되는 DB의 특성과 제약조건을 보다 구체적으로 명시하기 위해 기존의 ER 모델을 확장한 모델
-ER 모델의 개념을 모두 포함
-Union과 Category 타입 지원
-Superclass와 Subclass 개념 지원하기 때문에 기존의 존재하는 개체 집합을 확장하여 새로운 개체 집합을 생성하는 상속 개념 지원
3.MySQL Workbench의 EER 모델
-P. Chen이 초기에 제안한 표기법 대신 UML 표기법을 사용하여 GUI 환경에서 객체 및 관계를 편리하게 생성할 수 있는 방법을 제안
-개념적 모델링을 지원하면서 관계형 모델에서의 기본
키-외래키 및 데이터 타입, 제약조건을 정의

MySQL Workbench의 EER 모델링

1.Models의 UI
-개념, 논리, 물리적 데이터 모델링을 동시에 수행
-데이터 모델링 전, 스키마에 대한 설정을 수행
-스키마의 이름과 콜레이션을 설정
스키마 : 데이터 분야에서 스키마란 데이터의 구조, 즉 데이터를 저장할 수 있는 설계 결과를 의미하며, MySQL에서 스키마와 데이터베이스는 같은 의미
2.EER Diagram의 UI
-UI 구성요소 4가지
Bird's Eye : 전체 EER 다이어그램의 형태를 파악할 수 있는 패널
Category Tree : EER 다이어그램을 구성하는 테이블, 뷰, 루틴을 나열하는 패널
Description Editor : 테이블, 뷰 등의 객체의 설명을 표시하는 패널
Diagram : 데이터 모델링을 수행하는 캔버스
3.개체 정의 : 데이터 모델링 상에서 프로세스를 수행하는 주체
tip : MySQL Workbench 상에서는 개체(Entity) 대신 테이블(Table)이라는 용어를 사용
4.테이블의 구성
컬럼 이름 : 컬럼 이름 표기
제약 조건 : 기본키, not null 등 컬럼에 대한 제약 조건을 설정
데이터 타입 : 컬럼에 저장될 데이터의 타입을 지정

데이터 타입과 제약조건

데이터 타입의 이해

1.데이터 타입의 정의 : 컴퓨터 기억 장치에 저장된 값, 객체의 표현, 해석, 구조를
설명하면서 데이터의 해석을 위한 목적으로 사용
-일반적인 DBMS에서는 문자, 숫자, 날짜에 데이터를 저장 관리할 수 있는 기능을 내장하고 있음
-이러한 유형의 데이터에 대한 다양한 데이터 타입을 지원
2.일반 데이터 3가지 타입
-문자
CHAR(n) : n개의 문자를 저장하기 위한 데이터 타입, 최대 4096(4KB)개로 확장 가능, n개보다 적은 개수의 문자가 저장되어도 나머지 공간을 유지
VARCHAR(n) : n개의 문자를 저장하기 위한 데이터 타입, 최대 4096(4KB)개로 확장 가능, n개보다 적은 개수의 문자가 저장될 경우 나머지 공간을 유지하지 않고 다음 컬럼의 데이터를 기록
TEXT 또는 CLOB : 최대 약 20억(2GB)개의 문자 데이터를 저장하기 위한 데이터 타입, 인덱스 생성이 불가능
-숫자
INT : 바이트 크기, 정수 데이터를 저장
FLOAT : 4바이트 크기, 실수 데이터를 저장
DOUBLE : 8바이트 크기, 실수 데이터를 저장
DECIMAL (m, n) : 정수와 실수 자리수를 지정하여 숫자 데이터를 저장, m: 숫자의 자릿수,
n: 실수부의 자릿수, m – n: 정수부의 자릿수
-날짜
DATE : 날짜 데이터를 저장하기 위한 데이터 타입, YYYY-MM-DD 형식
TIME : 시각 데이터를 저장하기 위한 데이터 타입, HH : MI : SS 형식
DATETIME/TIMESTAMP : 날짜 및 시각 데이터를 저장하기 위한 데이터 타입, YYYY–MM-DD HH : MI : SS 형식

MySQL의 데이터 타입

1.숫자
-정수 : 저장할 수 있는 값의 범위에 따라 다양한 정수형을 지원
TINYINT 필요공간 : 1
SMALLINT 필요공간 : 2
MEDIUMINT 필요공간 : 3
INT 필요공간 : 4
BIGINT 필요공간 : 8
-실수 : 실수의 길이와 형식에 따라 다양한 실수형을 지원
FLOAT 필요공간 : 4
DOUBLE 필요공간 : 8
REAL 필요공간 : 8
DECIMAL(M, D) 필요공간 : M, D의 값에 따라 결정
NUMERIC(M, D) 필요공간 : M, D의 값에 따라 결정
2.숫자
-CHAR vs. VARCHAR
-ENUM : ENUM으로 정의된 항목 중 최대 1개의 항목을 저장할 수 있는 데이터 타입, 주어진 항목 중에 한 항목을 선택하는 라디오 버튼에 비유, 최대 65,535개의 항목 가능
3.문자
-SET : SET으로 정의된 항목 중 0개 또는 그 이상의 개수를 선택하여 저장할 수 있는 데이터 타입, 주어진 항목에서 복수개의 항목을 선택할 수 있는 체크 버튼에 비유, 최대 64 항목 가능
4.날짜 및 시간
-날짜와 시간을 구성하는 요소별 다양한 형식을 지원
5.문자셋(Character Set)
-문자셋(Character Set)의 정의 : 특정 문자가 저장될 때 어떠한 인코딩 체계에 따라 저장될
것인지에 대한 규칙을 정의
모든 문자에 대해 문자와 문자의 인코딩 값을 조합해 놓은 정보의 집합
Database 수준, Table 수준, Column 수준에서 문자셋을 결정
6.콜레이션(Collation) : 특정 문자 셋에 의해 저장된 값들을 검색, 정렬하는 등의 작업을
위해 문자들간에 서로 비교할 때 사용하는 규칙이 정의되어 있는 집합
-해당 국가 또는 지역에서 사용하는 문자 집합에 대한 정보를 저장
주로 대소문자를 구별하는 Binary 형식을 사용할 것인지, 대소문자를 구별하지 않는 Case Insensitive 형식을 사용할 것인지 구분
Case Insensitive 형식을 사용하는 콜레이션들은 모두 이름의 끝에 '_ci'라는 문자가 첨부

제약조건의 정의

1.제약조건의 이해
-테이블 및 테이블의 컬럼을 보다 세밀하게 관리하기 위한 목적으로 사용
-애플리케이션 수준에서 모니터링하던 데이터의 값과 형식에 대한 요구사항을 DBMS가 관리
-데이터의 입력 및 수정 시, 정의된 제약 조건을 DBMS가 준수하는지 지속적으로 모니터링
2.제약조건의 종류
-PK - 기본키(Primary Key)를 지정 : 한 개 이상의 컬럼에 지정 가능, UQ와 NN 제약 조건이 동시에 적용되는 효과
-NN - Not Null 컬럼을 지정 : 반드시 입력해야 하는 컬럼을 명시
-UQ - Unique 컬럼을 지정 : Unique로 지정된 컬럼에 반드시 유일한 값만 저장될
수 있음을 명시
-ZF - Zero Fill 컬럼을 지정 : 데이터 저장 후 나머지 공간을 0으로 채움
-AI - Auto Increment 컬럼을 지정 : 새로운 레코드에 대해 INT 데이터 타입으로 지정된
컬럼에 유일한 ID를 부여
-Default – 기본값을 지정 : 레코드 입력 시 Default로 지정된 컬럼에 값이 입력되지 않을 경우 정의된 기본값으로 입력

profile
코딩관광

0개의 댓글