반응형
데이터 모델링이란
- 정보시스템을 구축하기 위한 데이터 관점의 업무 분석 기법
- 현실세계의 데이터에 대해 약속된 표기법에 의해 표현하는 과정
- 데이터베이스를 구축하기 위한 분석/설계 과정
데이터 모델링 유의점
- 중복
: 여러 장소의 데이터베이스에 같은 정보를 저장하지 않는다. - 비유연성
: 데이터의 정의를 데이터의 사용 프로세스와 분리하여 유연성을 높인다. - 비일관성
: 데이터 간의 상호 연관관계를 명확하게 정의하여 일관성 있게 데이터가 유지되도록 한다.
개념적 모델 vs 논리적 모델 vs 물리적 모델
- 개념적 데이터 모델링
: 추상화 수준이 높고 업무중심적이고 포괄적인 수준의 모델링 진행.
전사적 데이터 모델링, EA 수립시 많이 이용 - 논리적 데이터 모델링
: 시스템으로 구축하고자 하는 업무에 대해 Key, 속성, 관계 등을 정확하게 표현, 재사용성이 높음. - 물리적 데이터 모델링
: 실제로 데이터베이스에 이식할 수 있도록 성능, 저장 등 물리적인 성격을 고려하여 설계
데이터베이스 스키마 구조 3단계
스키마란 데이터베이스의 구조와 제약조건에 관해 전반적인 명세를 기술한 것이다.
- 외부스키마
- 데이터 추상화의 최상위 단계로서 전체 데이터 베이스의 일부분만 기술해 놓는다.
- 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의
- 같은 데이터베이스에 대해서도 서로 다른 관점을 정의할 수 있도록 허용
- 하나의 외부 스키마를 여러 개의 응용프로그램이나 사용자가 공용할 수 있음
- 일반 사용자는 질의어를 사용하여 데이터베이스를 사용
- 개념스키마
- 데이터베이스의 전체적인 논리 구조로서, 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 종합한 조직 전체의 데이터베이스로 하나만 존재
- 개체간의 관계와 제약 조건을 나타냄
- 데이터베이스의 접근 권한, 보안 및 무결성 규칙에 관한 명세를 정의
- 단순히 스키마라고 한다면 개념 스키마를 의미
- 기관이나 조직체 관점에서 데이터베이스를 정의
- 내부스키마
- 데이터베이스의 물리적 구조를 정의
- 데이터 실제 저장방법을 기술 (데이터의 물리적인 설계도)
- 물리적인 저장장치와 밀접한 계층 (데이터의 저장위치, 데이터의 구조, 파일 구성 및 보안대책 등)
- 시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마
ERD 작성 순서
- 엔티티를 그린다.
- 엔티티를 적절하게 배치한다.
- 엔티티간 관계를 설정한다.
- 관계명을 기술한다.
- 관계의 참여도를 기술한다.
- 관계의 필수여부를 기술한다.
발생 시점에 따른 엔티티 분류
엔티티란 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것이다.
- 기본엔티티 (키 엔티티)
: 기본엔티티란 그 업무에 원래 존재하는 정보로서 다른 엔티티와 관계에 의해 생성되지 않고, 독립적으로 생성이 가능하고 자신은 타 엔티티의 부모 역할을 하게 된다. 다른 엔티티로부터 주식별자를 상속받지 않고, 자신의 고유한 주식별자를 가짐.
ex) 사원, 부서, 고객, 상품 등 - 중심엔티티
: 중심엔티티란 기본엔티티로부터 발생되고, 그 업무에 있어서 중심적인 역할을 한다. 데이터의 양이 많거나 다른 엔티티와의 관계를 통해 많은 행위엔티티를 생성한다.
ex) 계약, 사고, 예금원장, 주문, 매출 등 - 행위엔티티
: 행위엔티티란 두 개 이상의 부모엔티티로부터 발생되고 자주 내용이 바뀌거나 데이터량이 증가된다.
분석 초기 단계에서 잘 나타나지 않으며 설계단계나 프로세스와 상관모델링을 진행하면서 도출된다.
ex) 주문목록, 사원변경이력 등
엔티티의 특징
- 반드시 해당 업무에서 필요하고 관리하고자 하는 정보이어야 한다.
ex) 환자, 토익의 응시횟수, ... - 유일한 식별자에 의해 식별이 가능해야 한다.
- 영속적으로 존재하는 인스턴스의 집합이어야 한다. ('한 개'가 아니라 '두 개 이상')
- 엔티티는 업무 프로세스에 의해 이용되어야 한다.
- 엔티티는 반드시 속성이 있어야 한다.
- 엔티티는 다른 엔티티와 최소 한 개 이상의 관계가 있어야 한다.
속성의 특성에 따른 분류
속성은 더 이상 쪼개지지 않는 최소의 데이터 단위이다.
업무에 필요한 데이터이며, 의미상 더 이상 분리되지 않고, 엔티티를 설명하는 인스턴스의 구성요소가 된다.
- 기본 속성
: 사원이름, 직책이름, 고용일자 등 가장 일반적인 속성 - 설계 속성
: 업무상 필요한 데이터 외에 데이터 모델링을 위해, 업무를 규칙화하기 위해 속성을 새로 만들거나 변형하여 정의하는 속성 - 파생 속성
: 다른 속성에 영향을 받아 발생하는 속성으로, 계산된 값들이 여기에 해당한다. 다른 속성에 영향을 받으므로, 영향받는 속성을 알아두어야 하는 등 유의할 점이 많아 가급적 적게 정의하는 것이 좋다.
각 속성은 가질 수 있는 값의 범위가 있는데 이를 그 속성의 도메인(Domain)이라하며, 엔티티 내에서 속성에 대한 데이터 타입과 크기, 제약사항을 지정하는 것이다.
속성의 명칭 부여
- 해당업무에서 사용하는 이름을 부여한다.
- 서술식 속성명은 사용하지 않는다.
- 약어사용은 가급적 제한한다.
- 전체 데이터 모델에서 유일성을 확보하는 것이 좋다.
ERD에서는 존재적 관계와 행위에 의한 관계를 구분하지 않지만 클래스다이어그램에서는 이것을 구분하여 연관관계와 의존 관계로 표현한다.
엔티티, 인스턴스, 속성, 속성값의 관계
- 한 개의 엔티티는 두 개 이상의 인스턴스의 집합이어야 한다.
- 한 개의 엔티티는 두 개 이상의 속성을 갖는다.
- 한 개의 속성은 한 개의 속성값을 갖는다.
관계의 표기법
- 관계명
: 관계의 이름 - 관계차수
: 1:1, 1:M, M:N - 관계선택사양
: 필수관계, 선택관계
관계 읽기
- 기준 엔티티를 한 개 또는 각으로 읽는다.
- 대상 엔티티의 관계참여도 즉 개수를 읽는다.
- 관계선택사양과 관계명을 읽는다.
식별자의 종류
- 엔티티 내에서 대표성을 가지는가에 따라 주식별자와 보조식별자로 구분
- 엔티티 내에서 스스로 생성되었는지 여부에 따라 내부식별자와 외부식별자로 구분
- 단일 속성으로 식별이 되는가에 따라 단일식별자와 복합식별자로 구분
- 원래 업무적으로 의미가 있던 식별자 속성을 대체하여 일련번호와 같이 새롭게 만든 식별자를 구분하기 위해 본질식별자와 인조식별자로 구분
주식별자의 특징
- 유일성 : 주식별자에 의해 엔티티내에 모든 인스턴스들을 유일하게 구분함
- 최소성 : 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 함
- 불변성 : 주식별자가 한 번 특정 엔티티에 지정되면 그 식별자의 값은 변하지 않아야 함
- 존재성 : 주식별자가 지정되면 반드시 데이터 값이 존재 (Null 허용 안됨)
반응형
'프로그래밍 > SQLD' 카테고리의 다른 글
[SQLD] 오라클 계층형 쿼리 (0) | 2024.02.25 |
---|---|
SQLD_DB의 구조 (1) | 2023.12.30 |