1.1 데이터 모델링의 이해
<데이터 모델링>
추상화
ㅡ> 현실세계를 일정한 형식에 맞추어 표현
단순화
ㅡ> 복잡한 현실을 이해하기 쉽게
정확화
ㅡ> 모호함을 배제하고 누구나 이해 가능하게
<데이터 모델링 유의사항>
중복
ㅡ> 여러 DB에 같은 정보 저장x
비유연성
ㅡ> 프로세스의 작은 변화가 데이터베이스에 큰 변화를 일으키지 않게
ㅡ> 데이터의 정의를 사용 프로세스와 분리
비일관성
ㅡ> 이디에는 데이터가 최신이고 어디에는 구버전
ㅡ> 중복이 없더라도 비일관성 가능.
ㅡ> 정보가 흩어져 있을수록 업데이트가 제각각 되니, 정보간의 연관성을 명확히
모델링의 3가지 단계
ㅡ> 개논물
3단계 스키마 구조
ㅡ> 외개내
ㅡ> 데이터 독립성 보장 (의존성낮 유지보수쉽)
ㅡ> 독립성 : 내부가 바뀌어도 외부가 영향을 받지 않는다
외부스키마
ㅡ> 사용자 관점 (다중 사용자 뷰) (각각 사용자의 뷰가 다름)
개념스키마
ㅡ> 설계자 관점 (통합 뷰) (사용자 뷰들을 통합함)
내부스키마
ㅡ> 개발자 관점 (물리적 뷰)
ㅡ> 테이블, 칼럼 인덱스 등의 실질적 저장구조
논리적 데이터 독립성
ㅡ> 개념 스키마가 변경되도 외부 스키마는 영향x
물리적 데이터 독립성
ㅡ> 내부 스키마가 변경되도 개념 스키마는 영향x
1.2 엔터티
엔티티의 특징
1. 반드시 해당 업무에서 필요로해야 한다
2. 유일한 식별자에 의해 식별 가능해야 한다
3. 두 개 이상의 인스턴스여야 의미있다 (1개면 굳이 엔터티 안만듬)
4. 업무 프로세스에 의해 이용
5. 반드시 속성을 가져야 한다 (2개 이상)
6. 반드시 다른 엔터티와 한 개이상의 관계
발생 시점에 따른 구분
ㅡ> 기중행
기본 엔터티 (키 엔터티)
ㅡ> 업무에 원래 존재하는 정보 (상품, 회원, 부서 등)
중심 엔터티
ㅡ> 기본 엔터티로부터 파생 (주문, 매출, 계약 등)
행위 엔터티
ㅡ> 2개 이상의 엔터티로부터 파생 (주문 내역, 이벤트 응모 내역 등)
이름을 부여하는 방법
1. 업무에서 쓰이는 용어 사용
2. 약어는 되도록 사용x
3. 모든 엔터티에서 유일한 이름
ERD
Entity Relationship Diagram
다이어그램
ERD작성순서
1. 엔터티를 그린다 ㅡ> 엔터티는 사각형
2. 엔터티를 적절하게 배치한다 ㅡ> 중요한 엔터티는 왼쪽상단
3. 엔터티 간 관계를 설정한다
4. 관계명을 기술한다 ㅡ> 관계명은 관계 표현에서 매우 중요
5. 관계의 참여도를 기술한다
6. 관계의 필수여부를 기술한다
1.3 속성
속성
ㅡ> 의미상 더 이상 분리되지 않음
ㅡ> 엔터티에는 2개 이상의 속성이 있음
엔터티, 인스턴스, 속성
엔터티 ㅡ> 표
인스턴스 ㅡ> 행
속성(attribute) ㅡ> 열
속성 값 ㅡ> 표 한칸의 내용물
1. 하나의 엔터티에는 2개이상의 인스턴스 (인스턴스 1개면 굳이 엔터티 안만듬)
2. 하나의 인스턴스에는 2개 이상의 속성
3. 하나의 속성에는 하나의 속성값 (속성값이 여러개면 엔터티를 분리)
속성값이 여러개면 엔터티를 분리
특성에 따른 분류
ㅡ> 기설파
기본속성 ㅡ>엔터티가 본래 가진 속성
설계속성 ㅡ> 설계시 필요하다 판단되어 도출된 속성
파생속성 ㅡ> 빠른 성능을 위해 다른 속성으로부터 계산(파생)하여 저장
구성방식에 따른 분류
PK : 기본키
FK : 외래키
일반 속성 : PK FK가 아닌 나머지
도메인
도메인
ㅡ> 속성이 가질 수 있:는 값의 범위 (타입, 크기)
ㅡ> ex) 주문단가 범위 100~10,000 실수 값
1.4 관계
ㅡ> 엔터티간의 관계
존재관계
ㅡ> 존재 자체로 연관성
ㅡ> ex) 엄마와 아기, 직원과 부서, 학생과 학과
행위관계
ㅡ> 특정 행위를 함으로써 관계가 생김
ㅡ> ex) 회원과 주문, 학생과 출석부
UML의 클래스 다이어그램
연관관계
ㅡ> 존재관계, 실선
ㅡ> 소스코드에서 맴버변수
의존관계
ㅡ> 행위관계, 점선
ㅡ> 오퍼레이션(메소드)에서 파라미터
ERD
ㅡ> 존재와 행위를 구분하지 않고 단일화된 표기법 사용
관계의 표기법
관계명 ㅡ> 관계의 이름
관계차수 ㅡ> 참여자의 수, 1:1, 1:M, M:N
관계선택사양 ㅡ> 필수관계, 선택관계
확인해야 할 사항
연관규칙
정보의 조합
동사(verb)
규칙
1.5 식별자
식별자
ㅡ> 인스턴스 속성 중, 인스턴스를 구분 가능하게 해주는 속성
분류
<대표성>
주식별자(PK) ㅡ> 엔터티의 상단부분이다. 하단부분은 일반속성(Attribute)
보조식별자
<스스로 생성>
내부식별자
외부식별자(FK)
<속성 갯수>
단일식별자
복합식별자
<대체 여부>
본질식별자 ㅡ> 업무적으로 원래있는 속성
인조식별자 ㅡ> 인위적으로 만들어낸 속성. 속성 2개 묶어서 사용하는 식
주식별자
유일성 ㅡ> 각 인스턴스가 구분되어 유일하도록
최소성 ㅡ> 유일성을 보장하는 최소 개수의 속성이어야 한다
불변성 ㅡ> 속성값이 되도록 변하지 말아야 한다
존재성 ㅡ> 속성값이 NULL일 수 없다
식별자, 비식별자 관계
식별자 관계
ㅡ> 실선 (강한 연결을 의미)
ㅡ> 부모가 소멸되면 자식도 반드시 소멸 (자식 엔터티의 식별자에 부모의 FK가 있어서, 부모가 없으면 비일관성)
비식별자 관계
ㅡ> 점선 (약한 연결을 의미)
ㅡ> 부모와 자식이 독립적 (FK가 식별자가 아닌 일반속성에 있어서 null이어도 상관없음)
SQL문의 조인 관계를 최소화
ㅡ> 식별자 관계로 연결해야 한다
ㅡ> 비식별자로 하면 부모의 보무까지 조인이 길어진다
'CS > 정보처리기사' 카테고리의 다른 글
[SQLD] SQL (1) | 2024.11.11 |
---|---|
[SQLD] 1-2 데이터 모델과 SQL (1) | 2024.11.08 |
4. 프로그래밍 언어 활용 (0) | 2024.07.09 |
2. 소프트웨어 개발 (0) | 2024.07.04 |
1. 소프트웨어 설계 (0) | 2024.06.28 |