개념적 설계
: 특정 체계의 정보 요구사항을 구성하는 개체, 관계, 속성들을 인식
-> 도형화/명세화 한 것이 Entity Relationship Diagram
개념적 설계의 필요성
- 데이터 독립성 제공을위한 안정된 자료 구조의 창출.
특정 DBMS에 적합한 데이터모델로 변환 용이
ER모델과 관련 명세서를 통한 산출물의 이해도 증진
논리적 설계
개념적 스키마(ER 모델) -> DBMS의 논리적 스키마로 변환
개념적 설계 - 스키마의 표현력과 완전성을 추구
논리적 설계 - 논리적 모델이 제공하는 자료 구조와 제약사항을 효율적으로 이용
논리적 설계의 접근 방향
- ER 다이어그램을 단순한 ER 다이어그램으로 변환
- 단순한 ER 다이어그램을 DBMS의 논리적 모델로 변형
물리적 설계
논리적 스키마를 이용하여 효율적인 물리적 데이터베이스를 구성하는 일
물리적 데이터베이스의 구조
: 저장 레코드의 형식, 저장 순서, 접근 경로, 물리적 저장 장치의 할당
물리적 DB구조는 세부적인 성능에 영향을 미침.
DBA가 DB구조 구성에 관여 가능
ER모델의 개념
- Entity
- Attribute
- 단순/복합 속성
- 단일/다중 값 속성
- Null 속성
- 유도 속성
Entity
: DB에서 표현해야하는 핵심적인 사물이나 개념
Attribute
: Entity를 표현하기 위해 사용하는 속성.
각 속성은 value set(또는 data type, domain)을 갖는다
속성의 분류
- 단순 속성: 더 이상의 작은 요소로 분할할 수 없는 값
- 복합 속성: 몇 개의 더 작은 속성들로 분할 가능한 속성
- 단일 값: 하나의 값만 가질 경우
- 다중 값 속성: 여러개의 값을 가질 경우(예: 취미(독서,영화감상,요리)
- 복합-다중 값 속성 혼합 가능.(예: 이전 학위(대학,연도,학위명,분야)
- Null 속성: 값이 입력되지 않은 속성
- 유도 속성: 다른 속성의 값을 이용하여 유도할 수 있는 속성(예: 나이는 주민번호 속성을 이용하여 유도 가능)
Entity Type과 Entity Set
Entity Type
: 동일한 속성들을 갖는 개체들의 집합.
이름과 속성 리스트를 갖는다.(=스키마)
(예: Employee(Name, Age, Salary)).
Entity Set
개체들의 집합.(set of instances)
Key Attribute
Entity set에 포함된 특정 개체를 식별하는 속성들의 집합.
- 유일성(Uniqueness)
- 최소성(Minimality)
슈퍼 키
:유일성을 만족하는 속성들의 집합
군더더기 속성들이 포함될 수 있음.
후보 키
: 군더더기가 없는 슈퍼 키.(유일성 + 최소성)
예: 사원의 후보 키-주민등록번호, 사원번호
주 키
: 후보 키 중의 하나를 선택.
모든 개체는 반드시 주 키를 갖는다? -> X
(관계형 DB에서는 안되지만 이건 ER이기 때문. 서로 다른 개체인데 내용이 같을 수 있는 것 => weak entity)
ERD 표기법
Relationship and Relationship Type
Relationship(관계)
둘 이상의 서로 다른 개체들을 연결
Relationship type
동일한 타입의 관계들을 묶는 개념
(예: Employee와 Project 사이에 Works_on 관계)
Relayionship type의 차수(degree)
참여하는 개체의 수
대부분의 경우 이진관계.(2개의 엔티티 참여)
이진 관계에 대한 제약 조건들
- Cardinality Ratios(최대 참여 수 조건): 일대일 관계, 일대다 관계, 다대일 관계, 다대다 관계
- Participation Constraint(최소 참여 수 조건): 완전참여, 부분 참여
-완전 참여: total participation: 모든 개체가 관계에 참여해야함
- 부분 참여: Partial participation: 일부 개체는 관계에 참여하지 않을 수 있음
Relaytionship도 Attribute를 가질 수 있다.
1:1이나 1:n의 관계에서는 개체로 속성 이동 가능.
n:n 관계에서는 relationship에 속성을 포함.
ERD에서 관계의 표현
개체와 개체를 연결하는 선과 마름모.
Cardinality: 숫자(1또는 N)로 표시.
Participation: 겹선=total, 홑선=partial
(min,max)표시를 이용하여 동시에 표현 가능.
재귀: Recursive Relationship Type의 경우
ERD에서 역할(role)을 같이 표시하는것이 좋음
'2023-2 > 데이터베이스' 카테고리의 다른 글
물리적 설계 (0) | 2023.12.16 |
---|---|
SQL: 모든 프로젝트에 참가하는 직원의 이름을 검색하라 (1) | 2023.10.21 |
5. 데이터베이스 응용 개발 (0) | 2023.10.21 |
4. 고급 SQL (0) | 2023.10.12 |
3. SQL (0) | 2023.09.26 |
댓글