Design Phases(디자인 단계)
초기 단계
- 잠재적 database 사용자들의 data 요구를 완전히 파악
두 번째 단계
- data model 선택
- 선택한 data model의 개념 적용
- 이러한 요구사항을 database의 개념적 schema로 변환
- 완전히 개발된 개념적 schema는 기업의 기능적 요구사항(functional requirements)을 나타냅니다.
- data에 대해 수행될 작업(또는 트랜잭션)의 종류를 설명
최종 단계
- abstract data model에서 database 구현으로 이동
- 논리적 설계(Logical design)
- database schema 결정
- database 설계는 '좋은' relation schemas 컬렉션을 찾아야 함을 요구합니다.
- 비즈니스 관점에서 decision: database에 어떤 attribute를 기록해야 하는가?
- Computer Science 관점에서 decision: 어떤 relation schemas를 가져야 하고 attributes를 다양한 relation schemas에 어떻게 분배해야 하는가?
- 물리적 설계(Physical design)
- database의 물리적 레이아웃 결정
- 논리적 설계(Logical design)
Design Alternatives
- database schema를 설계할 때, 우리는 두 가지 주요 함정을 피해야 합니다:
- Redundancy(중복): 나쁜 설계는 중복된 정보를 초래할 수 있습니다.
- 정보의 중복된 표현은 정보의 다양한 복사본 간의 data 불일치를 초래할 수 있습니다.
- Incompleteness(불완전성): 나쁜 설계는 기업의 특정 측면을 모델링하기 어렵거나 불가능하게 만들 수 있습니다.
- Redundancy(중복): 나쁜 설계는 중복된 정보를 초래할 수 있습니다.
- 나쁜 설계를 피하는 것만으로는 충분하지 않습니다. 우리는 선택해야 할 많은 좋은 설계가 있을 수 있습니다.
Design Approaches(디자인 접근 방식)
- Entity Relationship 모델
- entity 및 relation의 모음
- Entity: 다른 객체와 구별되는 'thing(것)' 또는 'object(객체)'
- attributes 집합에 의해 설명됨
- Relationship: 여러 entities 간의 association
- Entity: 다른 객체와 구별되는 'thing(것)' 또는 'object(객체)'
- entity 및 relation의 모음
ER model in Database Modeling(Database 모델링에서의 ER 모델)
- ER data model은 database 설계를 용이하게 하기 위해 database의 전체 논리적 구조를 나타내는 schema 지정 기능을 제공하여 개발되었습니다.
- ER data model은 세 가지 기본 개념을 사용합니다.
- Entity sets
- Relationship sets
- Attributes
- ER 모델은 database의 전체 논리적 구조를 그래픽으로 표현할 수 있는 ER 다이어그램이라는 관련 다이어그램 표현도 가지고 있습니다.
- ER data model은 세 가지 기본 개념을 사용합니다.
Entity Sets(엔티티 집합)
- Entity는, 존재하며 다른 객체들과 구별되는 객체입니다.
- 예: 특정 사람, 회사, 이벤트, 식물
- Entity set은 동일한 유형의 entities의 집합으로, 동일한 properties를 공유합니다.
- 예: 모든 사람, 회사, 나무, 휴일...의 집합
- Entity는 attributes의 집합으로 표현됩니다. 즉, entity set의 모든 구성원이 소유한 descriptive properties(기술적 속성?)입니다.
- 예:
- instructor = (ID, name, salary)
- course = (course_id, title, credits)
- 예:
- attributes의 하위 집합은 entity set의 primary key를 형성합니다. 즉, 각 구성원을 고유하게 식별합니다.
Entity Sets (instructor and student)
Representing Entity sets in ER Diagram(ER 다이어그램에서 Entity 집합 표현)
- Entity sets은 다음과 같이 그래픽으로 표현될 수 있습니다:
- 사각형은 entity sets을 나타냅니다.
- attributes는 entity 사각형 내부에 나열됩니다.
- 밑줄은 primary key attributes를 나타냅니다.
Relationship Sets
- 관계 유형은 entity types 간의 연관을 나타냅니다.
- 예: advisor relationship set을 정의하여 student와 그들의 advisor 역할을 하는 instructor 간의 연관을 나타냅니다.
- 관련 entities 간의 선을 그릴 수 있습니다.
- attribute는 relationship set과도 연관될 수 있습니다.
- 예: instructor와 student 사이의 advisor relationship set은 학생이 advisor와 연관된 날짜를 추적하는 attribute data를 가질 수 있습니다.
Relationship Sets을 ER 다이어그램으로 표현하기
Relationship sets with Attribute
Roles
- Entity가 Relationship에서 수행하는 기능을 Role이라고 한다.
- Relationship set의 의미가 명확하지 않을 때 유용하다.
- ER 다이어그램에서, Entity(직사각형)와 Relationship(다이아몬드)를 연결하는 선에 라벨을 붙여 이를 나타낼 수 있다.
Relationship Set의 차수
Binary Relationship
- 두 개의 Entity set(또는 차수 2)을 포함한다.
- 데이터베이스 시스템에서 대부분의 Relationship sets은 Binary 관계이다.
- 예: 학생이, 수강 중인 코스에 등록되어 있다.
- 두 개 이상의 Entity 집합 간의 Relationship은 드물다
- 예: 학생들이 강사의 지도 아래 연구 프로젝트를 수행한다.
- Relationship proj_guide는 instructor, student, project 간의 삼항 관계(ternary relationship)이다.
- 예: 학생들이 강사의 지도 아래 연구 프로젝트를 수행한다.
Non-binary Relationship Sets
- 대부분의 Relationship sets은 Binary 관계이다.
- Non-binary 관계로 표현하는 것이 더 편리한 경우가 있다.
- ER 다이어그램의 삼항 관계
Attributes
- Attribute 유형:
- Simple 및 Composite Attributes
- Single-valued 및 Multivalued Attributes
- 예: Multivalued Attribute: phone_numbers
- Derived Attributes
- 다른 Attributes로부터 계산될 수 있음
- 예: 나이, 생년월일
- Domain
- 각 Attribute에 허용되는 값의 집합
Attributes
- Attributes는 Entity type을 정의하는 속성들이다.
- 예: Roll_No, Name, Age, Address, Phone_numbers는 학생 Entity type을 정의하는 Attributes이다.
- ER 다이어그램에서 Attribute는 타원으로 표현된다.
Key Attribute
- Entity set의 각 Entity를 고유하게 식별하는 Attribute를 Key Attribute라고 한다.
- 예: Roll_No는 각 학생마다 고유하다.
- ER 다이어그램에서 Key Attribute는 밑줄이 있는 타원으로 표현된다.
Attributes
- Attributes는 Entity type을 정의하는 속성들이다.
- Composite Attribute
- 여러 다른 Attribute로 구성된 Attribute를 Composite Attribute라고 한다.
- 예: 학생 Entity 유형의 address Attribute는 street, city, state, country로 구성된다.
- ER 다이어그램에서 Composite Attribute는 여러 타원으로 구성된 타원으로 표현된다.
- 여러 다른 Attribute로 구성된 Attribute를 Composite Attribute라고 한다.
- Composite Attribute
- Attributes는 Entity 유형을 정의하는 속성들이다.
- Multivalued Attribute
- 주어진 Entity에 대해 하나 이상의 값을 가질 수 있는 Attribute를 Multivalued Attribute라고 한다.
- 예: Phone_No (학생의 경우 여러 값을 가질 수 있다).
- ER 다이어그램에서 Multivalued Attribute는 이중 타원으로 표현된다.
- 주어진 Entity에 대해 하나 이상의 값을 가질 수 있는 Attribute를 Multivalued Attribute라고 한다.
- Derived Attribute
- 다른 Attributes로부터 도출될 수 있는 Attribute를 Derived Attribute라고 한다.
- 예: 나이 (생년월일(DOB)로부터 도출될 수 있다).
- ER 다이어그램에서 Derived Attribute는 점선 타원으로 표현된다.
- 다른 Attributes로부터 도출될 수 있는 Attribute를 Derived Attribute라고 한다.
- 학생 Entity type은 다음과 같은 Attributes로 표현될 수 있다.
Mapping Cardinality Constraints
- Entity가 Relationship 집합을 통해 연관될 수 있는 Entity의 수를 표현한다.
- Binary Relationship 집합을 설명하는 데 가장 유용하다.
- Binary Relationship 집합의 경우, 매핑 Cardinality는 다음 유형 중 하나여야 한다:
- One to one
- One to many
- Many to one
- Many to many
Mapping Cardinalities
- 주의: A와 B의 일부 요소는 다른 집합의 어떤 요소에도 매핑되지 않을 수 있다.
- 주의: A와 B의 일부 요소는 다른 집합의 어떤 요소에도 매핑되지 않을 수 있다.
Representing Cardinality Constraints in ER diagram
- Cardinality 제약 조건은 Relationship 집합과 Entity 집합 사이에 방향성이 있는 선(→)을 그려 "one"을 나타내거나 방향성이 없는 선(—)을 그려 "many"를 나타내어 표현한다.
- One-to-one Relationship between an instructor and a student:
- 학생은 advisor Relationship을 통해 최대 한 명의 instructor와 연관된다.
- 학생은 stud_dept를 통해 최대 한 개의 학과와 연관된다.
One-to-Many Relationship
- One-to-many Relationship between an instructor and a student
- Instructor는 advisor를 통해 여러 명의 학생(0명 포함)과 연관된다.
- 학생은 advisor를 통해 최대 한 명의 instructor와 연관된다.
Many-to-One Relationship
- Many-to-one Relationship between an instructor and a student
- Instructor는 advisor를 통해 최대 한 명의 학생과 연관된다.
- 학생은 advisor를 통해 여러 명의 instructor(0명 포함)와 연관된다.
Many-to-Many Relationship
- Instructor는 advisor를 통해 여러 명의 학생(0명 포함)과 연관된다.
- 학생은 advisor를 통해 여러 명의 instructor(0명 포함)와 연관된다.
Total and Partial Participation
- Total participation (이중 선으로 표시됨)
- Entity 집합의 모든 Entity는 Relationship Sets의 적어도 하나의 Relationship에 참여한다.
- advisor 관계에서 학생의 참여는 총체적이다.
- 모든 학생은 연관된 instructor가 있어야 한다.
- Partial participation
- 일부 Entity는 Relationship Sets의 어떤 Relationship에도 참여하지 않을 수 있다.
- 예: advisor 관계에서 instructor의 참여는 부분적이다.
- 일부 Entity는 Relationship Sets의 어떤 Relationship에도 참여하지 않을 수 있다.
Notation for Expressing More Complex Constraints
- 선은 최소 및 최대 Cardinality를 가질 수 있으며, l..h 형식으로 표시되며, 여기서 l은 최소값, h는 최대값이다.
- 최소값이 1이면 총 참여를 나타낸다.
- 최대값이 1이면 Entity가 최대 하나의 Relationship에 참여함을 나타낸다.
- 최대값이 *이면 제한이 없음을 나타낸다.
- instructor는 0명 이상의 학생을 지도할 수 있다.
- 학생은 1명의 advisor를 가져야 하며, 여러 advisor를 가질 수 없다.
Weak Entity Sets
- Entity type은 Entity set의 각 Entity를 고유하게 식별하는 키 Attribute를 가져야 한다.
- 그러나 key attribute를 정의할 수 없는 일부 Entity type이 존재한다 → 이러한 유형을 weak entity type이라고 한다.
- 충분한 Attribute가 없어 Primary Key를 형성할 수 없는 Entity set을 weak entity sets라고 한다.
- Primary Key를 가진 Entity set을 strong entity sets라고 한다.
- Weak entity
- Weak entities는 Primary Key가 없기 때문에 스스로 식별할 수 없으며, 다른 Entity(소유자 Entity로 알려진)에 의존한다.
- Weak entities는 소유자 아이덴티티와의 식별 관계에서 총 참여 제약 조건(total participation constraint)을 가진다.
- Weak entity type은 partial keys를 가진다.
- Partial keys는 weak entities의 튜플을 구별하고 식별할 수 있는 Attribute 집합이다.
- Weak entities는 Primary Key가 없기 때문에 스스로 식별할 수 없으며, 다른 Entity(소유자 Entity로 알려진)에 의존한다.
- Weak entity는 Weak entity의 존재를 보장하기 위해 Strong entity에 의존한다.
- E-R 다이어그램에서 Weak entity set은 이중 사각형으로 표시된다.
- Weak entity set의 식별자를 점선으로 밑줄 친다.
- Weak entity set을 식별하는 Strong entity set과 연결하는 Relationship set은 이중 다이아몬드로 표시된다.
- Section의 Primary key는 (course_id, sec_id, semester, year)이다.
- E-R 다이어그램에서 Weak entity set은 이중 사각형으로 표시된다.
E-R Diagram for a University
Extended E-R Features
- 데이터의 복잡성이 증가함에 따라 기존의 ER 모델을 데이터베이스 모델링에 사용하기가 점점 더 어려워졌다.
- 따라서 기존 ER 모델에 일부 개선 또는 향상을 추가하여 더 복잡한 애플리케이션을 더 잘 처리할 수 있도록 했다.
- Enhanced ER 모델의 일환으로, 다른 개선 사항들과 함께 기존 ER 모델에 새로운 개념이 추가되었다.
- Specialization
- Generalization
- Aggregation
Extended E-R Features: Specialization
- Specialization
- 하나의 상위 Entity가 두 개의 하위 Entity로 나뉘는 상향식(top-down) 접근법이다.
- Attribute inheritance(상속): lower-level의 Entity set은 연결된 higher-level의 Entity set의 모든 Attribute와 Relationship participation를 상속받는다.
Extended E-R Features: An Example of Specialization in ER diagram
- ER 다이어그램에서 Specialization의 예:
Extended E-R Features: Generalization
- Generalization
- 동일한 기능을 공유하는 여러 Entity set을 higher-level의 Entity set으로 결합하는 하향식(bottom-up) 접근법이다.
- Specialization과 Generalization은 서로 단순히 반전한 것이다.
Extended E-R Features: Aggregation
- Aggregation
- 여러 Entity 간의 Relationship이 단일 Entity로 처리되는 프로세스이다.
- 예시:
- Center와 Course 사이의 Relationship은 다른 Entity인 Visitor와 관계를 맺고 있는 Entity로 작동한다.
- 현실 세계에서 Visitor 또는 Student가 Coaching Center를 방문하면, 단순히 Center나 Course만 묻지 않고 둘 다 묻는다.
- Aggregation
- 삼항 관계 proj_guide를 고려한다.
- 프로젝트에 대한 가이드에 의해 학생의 평가를 기록하려고 한다고 가정
- Aggregation
- Relationship sets인 eval_for와 proj_guide는 중복 정보를 나타낸다.
- 모든 eval_for Relationship은 proj_guide Relationship에 해당한다.
- 그러나 일부 proj_guide Relationship은 eval_for Relationship과 일치하지 않을 수 있다.
- 따라서 proj_guide Relationship을 삭제할 수 없다.
- Aggregation을 통해 이 중복을 제거한다.
- Relationship을 abstract Entity로 처리한다.
- Relationship 간의 relationships를 허용한다.
- Relationship의 Abstraction을 새로운 Entity로 만든다.
- Relationship sets인 eval_for와 proj_guide는 중복 정보를 나타낸다.
- 특정 프로젝트에서 특정 instructor가 학생을 지도한다.
- 학생, instructor, 프로젝트 조합에는 관련된 평가가 있을 수 있다.
E-R Design Decisions
- 객체를 나타내기 위해 attribute나 entity set을 사용하는 것
- strong entity set 또는 weak entity set을 사용하는 것
- ternary relationship을 사용할지 binary relationship 쌍을 사용할지 결정하는 것
- specialization/generalization을 사용하는 것
- 이는 설계에서 modularity를 높이는 데 기여한다.
- aggregation을 사용하는 것
- 이는 aggregate entity set을 내부 구조의 세부 사항에 대한 고려 없이 단일 단위로 처리할 수 있다.
Summary of Symbols used in ER Notation
- E: entity set
- R: relationship set
- 이중 사각형: weak entity set을 식별하는 relationship set
- 이중 선: relationship에 대한 entity set의 전체 참여
- 밑줄: primary key
- 점선 밑줄: weak entity set의 구별 attribute
Unified Modeling Language (UML)
- UML은 범용 모델링 언어이다.
- UML의 주요 목표는 시스템이 설계된 방식을 시각화하는 표준 방법을 정의하는 것이다.
- UML에는 전체 소프트웨어 시스템의 다양한 측면을 그래픽으로 모델링하기 위한 많은 구성 요소가 있다.
- UML은 소프트웨어 엔지니어, 시스템 설계자에게 모델링, 설계 및 분석을 돕는다.
- UML 클래스 다이어그램은 E-R 다이어그램에 해당하지만 몇 가지 차이점이 있다.
UML Diagrams
- 클래스 다이어그램
- 복합 구조 다이어그램
- 객체 다이어그램
- 구성 요소 다이어그램
- 배포 다이어그램
- 패키지 다이어그램
- 기타
ER vs. UML Class Diagrams
'DataBase > LegacyPosts' 카테고리의 다른 글
[DataBase] 07. Data Storage Structure (0) | 2024.06.25 |
---|---|
[DataBase] 06. Physical Storage System (0) | 2024.06.25 |
[DataBase] 04. Intermediate SQL (0) | 2024.06.15 |
[DataBase] 03. Introduction to SQL(2) (0) | 2024.06.15 |
[DataBase] 03. Introduction to SQL(1) (0) | 2024.06.15 |