
1-1 데이터 모델링의 이해
데이터모델링 특성 적용 실패: 추상화, 단순화, 명확화
데이터모델링의 3단계: 개념 -> 논리 -> 물리모델링
외부 스키마: 사용자 관점에서 사용자와 접점이 일어나는 스키마
스키마: 데이터베이스의 설계도, 집을 예시로 설명
엔티티:개체, 데이터베이스 저장소에 넣는 실체 대상
추상화: 모든 정보의 공통적인 특징을 간략한 형태로 표현한 것
표현을 단순화
하나의 뜻으로만 해석될 수 있도록 명확화
1) 개념모델링
1단계: 엔티티 도출(사용될 테이터의 식별), 1개 이상의 하위개념을 포함
*엔티티 후보: 주로 명사로 표현
2단계: 엔티티 배치, 중요 좌측상단, ERD(Entity Relationship Diagram)
중요 엔티티부터 좌측 상단에서 우측 하단으로 유사 성격 / 동일 업무의 엔티티 -> 인접 지역 배치
주의점: 전체(전사) 비즈니스 프로세스를 분석하고 고객 Needs를 파악하여 설계
전사적인 관점에서 설계
추상적/명시적으로 표현
추상화 수준이 가장 높은 모델링
업무적인 표현으로 작성
중요한 사항에 대한 설계만 진행
3단계: 개념 설계에서 도출된 예비 Entity를 배치하고 관계 설정
관계 설정
- 관련이 있는 엔티티를 선으로 연결
2) 논리모델링
추가 단계: 속성 기술
속성기술: 개념설계에서 식별된 예비 속성을 기술
4단계 관계명 기술
관계명 기술
- 관계선 연결 시 사용한 개념 일반화 기술
- 엔티티 간의 어떤 행위나 존재나 있는지 표현하는 것
추가 단계: 식별자 정의
식별자
- 엔티티를 대표하는 유일성을 만족하는 속성
- 최소성/대표성/유일성/불변성/존재성을 만족해야 함
5단계: 관계 차수/도 기술(관계차수 도축)
- 프로세스, 데이터와 프로세스와 상관 관계 정도
- 관계기술: 연결된 두 엔티티 간의 연관도를 측정, 상대방 엔티티를 바라봤을 때, 내가 몇번 보이는가를 표현
- 1/2/3 정규화 수행을 통해 데이터의 독립성 및 재사용성을 높인다
- 엔티티/인스턴스/속성의 중복을 제거하여 데이터모델의 독립성을 보장
1/2/3 정규화 수행 무엇을 쪼개는가
1정규화: 한 칸에는 하나의 값만 넣기
2정규화: 기본키가 2개 이상으로 합쳐진 컬럼에서 일부분에만 종속된 속성을 별도의 테이블로 떼어낸다(EX. 기본키가 학번+과목코드인데, 이름이라는 정보가 학번에만 의존하고 있으면 과목코드가 바뀌어도 이름이 안 바뀌는 오류 발생)
3정규화: 기본키가 아닌 일반 컬럼들끼리 서로 종속 관계가 있는 경우
(EX. 다른 컬럼을 거쳐서 정보를 알게된다, 학번->우편번호->주소의 경우 학번,우편번호/우편번호,학번으로 테이블을 나누는 것)
원부이(원자값, 부분 종속 제거, 이행 종속 제거)
3) 물리모델링
DBMS: 데이터베이스를 관리해주는 소프트웨어 패키지
DDL문(Data Definition Language): 데이터 정의, 변경 삭제할 때 사용하는 명령어
1단계: 논리 모델을 실제 생성될 DBMS의 구조적 특성을 지원하도록 조정한다
2단계: 물리 모델링에서 주로 하는 일, 물리 DBMS가 지원하는 Data Type(유형), Size 표기법에 맞게 전환해야 함, 설계된 논리모델의 엔티티별 식별자를 Priamry Key로 전환, 위 절차에서 생성된 DDL문을 추출하여 Table/Column/INDEX 등을 생성, 성능/보안/기용성 등을 고려하여 모델링 되어야 하고, 생성되어야 한다
데이터 모델링 요점
특징: 추상화, 단순화, 명확화
순서
개념 데이터 모델링 -> 논리 데이터 모델링 -> 물리 데이터 모델링
관점
데이터, 프로세스, 데이터 & 프로세스 연관관계
ERD: 데이터베이스의 전체 설계도 시각화 그림
ERD 작성 순서
엔티티의 도출 -> 엔티티의 배치 -> 엔티티간의 관계 설정 -> 관계명 서술 -> 관계 참여도 기술
고려사항
데이터 모델의 독립성 확보
데이터 요구사항의 표현
데이터의 품질 확보
3층 스키마(데이터베이스 스키마 구조 3단계)
ANSI의 설계 표준
데이터베이스의 독립성을 확보
- 복잡도 감소
- 중복제거
- 요구사항 변경에 따른 대응력 향상
- 관리 및 유지보수 비용 절감
실선: 관계수가 실선=필수, 관계수가 점선=선택
3단 스키마: 사용자-(외부스키마-개념스키마-내부스키마)
사용자 존재 이유?
-사용자가 있어야 외부스키마가 있기 때문
엔티티 후보: 사람, 사물, 장소, 상품, 행동 등 주로 명사
데이터 모델링의 유의사항
1) 중복
2) 비유연성
3) 비일관성
2-1. 엔티티
엔티티: 현실 세계의 생활 또는 업무에서 관리해야 되는 데이터 Group(데이터 그룹)
생성/저장/관리가 되어야 하는 정보의 집합
정보를 등록 관리하기 위해서 생성
집합적인 것을 만드는 것
실체와 실체 간의 관계에 해당하는 것
두 개 이상의 인스턴스로 구성되게 만듦
엔티티 사이의 관계, 엔티티의 형태, 엔티티의 생성관점, 엔티티의 유무형 등
엔티티 생성 관점을 기준
엔티티명, 식별자, 관계수, 속성
특성
1개 이상의 속성
1개 이상의 인스턴스
1개 이상의 관계(관계: 엔티티와 엔티티 사이의 논리적 연결)
1개 또는 그 이상의 속성으로 된 식별자
1개 또는 그 이상의 업무에서 관리
엔티티의 분류
- 엔티티 사이의 관계- 강한,약한
- 엔티티 형태- 독립, 업무중심(-종속,교차)
- 엔티티 생성관점 – 핵심, 중요, 행위
- 엔티티 유/무형-유형, 비실체
강한: 독립적으로 존재, 자체 식별자 사용하여 고유하게 인스턴스를 식별
약한: 다른 엔티티의 종속, 자체 식별자가 없으며 다른 엔티티의 식별자를 상속받아 사용
2-2. 속성
업무에서 관리되는 정보
하나의 값만 가짐
두개 이상의 속성을 가짐
업무에서 명사로 표현된 값들을 추출
속성의 도출
엔티티 생성관점 기준
핵심, 중요, 행위
속성의 구성
속성명: 실체의 특성을 규정하는, 명확성과 함축성
식별자여부: 속성이 엔티티 식별자에 해당하는지 표시
Optinality: 인스턴스가 발생할 때 해당 속성이 반드시 특정 값을 가져야 하는 지에 대한 구분
도메인: 속성이 허용하는 데이터 형식/크기/범위
속성의 종류
단순속성: 더 이상 분해 할 수 없는
복합 속성: 단순 속성들의 조합
단일 값 속성:: 속성이 단 하나의 값
다중 값 속성: 하나의 속성에 여러 개의 값이 존재
기본 속성: 타 속성에 영향 받지 않는, 원래 존재
설계 속성: 데이터모델링 과정에서 생성되는 속성, 유일한 값
파생 속성: 저장, 기본 속성으로부터 생성되어 지는 속성
식별자
PK 속성: 기본키
FK 속성: 외부로부터 상속받은 것
일반 속성: 식별자 외 속성
2. 관계
엔티티 간의 존재하는 업무 규칙(관련성) 존재와 행위 관계로 나뉜다
관계수, 선택성, 식별자 상속(상속성), 관계명으로 구성
바커 표기법과 정보공학 표기법을 주로 사용
존재: 업무의 주체 또는 업무의 대상, 독립적으로 존재하는 엔티티
행위: 존재로 발생하는 업무를 대표하는 엔티티
바커 표기법 DA# 선 없음, # = 식별자(식별관계), *=일반속성(비식별관계), 점선=선택, 직선=필수
IE 표기법 ERwin 식별자상속, 비식별상속=일반속성으로 상속
관계의 구성
관계(차)수: 어떤 엔티티의 인스턴스 하나가 다른 엔티티의 몇 개 인스턴스와 대응될 수 있는지 표시
- 바커 표기법: 표시가 없으면 1, ‘<’표시가 있으면 Many
- IE 표기법: ‘|’ 표시면 1, ‘<’표시면 Many
선택성: 엔티티의 인스턴스에 대응되는 상대 엔티티 인스턴스가 반드시 존재 또는 부재 가능한지 표시
- 바커:점선이면 Optional,실선이면 Mandatory
- IE:‘-‘표시면 Mandatory,‘O’표시면 Optional
식별자 상속: 엔티티 관계를 정의 시 상대 엔티티에서 식별자를 상속 받을지 상대 엔티티의 식별자를 일반 속성으로 참조 하는가에 대한 표시
- 바커:’|’있으면 식별자 상속, 없으면 비식별자 상속
- IE:실선 식별자 상속, 점선 비식별자 상속
관계(차)수: 두 엔티티 간의 관계에 참여하는 인스턴스의 수
1:1, 1:N,M:N
완전 1:1 선택적 1:1
필수적 관계 -> 식별자 상속
선택적 관계 -> 식별자 비상속
카테시안 곱 발생: 각 엔티티의 존재하는 모든 인스턴스의 모든 조합
8강까지 강의보기 + 노랭이 P.10까지 풀어보기!