반응형
데이터베이스 설계: ER 다이어그램 이해하기
데이터베이스 설계에서 중요한 단계 중 하나는 데이터 모델을 시각적으로 나타내는 것입니다. 이를 위해 사용되는 주요 도구 중 하나가 Entity-Relationship(ER) 다이어그램입니다. ER 다이어그램은 데이터베이스 구조의 논리적 설계를 시각화하고, 데이터 간의 관계를 명확히 하는 데 유용합니다.
ER 다이어그램이란?
ER 다이어그램은 데이터베이스 설계에서 사용되는 그래픽 도구로, 엔터티(Entity)와 엔터티 간의 관계(Relationship)를 시각적으로 나타냅니다. 각 엔터티는 실세계에서 개체를 의미하고, 이들 사이의 관계는 데이터베이스에서 구조화된 방식으로 데이터를 표현합니다.
ER 다이어그램 작성 방법
엔터티(Entity) | 데이터베이스에서 저장할 개체나 사물을 나타냅니다. 학생, 강의, 직원 등이 엔티티가 될 수 있습니다. | 직사각형 상자로 표시하며, 엔터티 이름을 포함합니다. |
속성(Attribute) | 엔터티가 가지는 세부 정보를 나타냅니다. 학생 엔터티의 속성으로 이름, 학번, 이메일 등이 사용될 수 있습니다. | 엔터티 상자 안에 속성 이름을 작성합니다. |
관계(Relationship) | 엔터티 간의 연결을 나타내며, 데이터베이스에서 데이터들 간의 링크를 형성합니다. 일대일, 일대다, 다대다 등 다양한 관계 유형이 있습니다. | 엔터티 간의 관계를 선으로 연결하여 표시합니다. |
관계의 속성
이름: 관계에 이름을 부여하여 관계의 의미를 명확히 합니다. 예를 들어, "수강"이라는 관계를 나타내는 경우 "Enrolls"라고 이름을 지정할 수 있습니다.
카디널리티(Cardinality): 각 엔터티 인스턴스 간의 관계에서 인스턴스 수의 제한을 나타냅니다. 예를 들어, 한 고객이 여러 주문을 가질 수 있는지 여부를 명시합니다.
옵션성: 관계가 필수적인지 선택적인지를 나타냅니다. 예를 들어, 모든 고객이 반드시 주문을 가지고 있어야 하는지를 결정합니다.
PlantUML 표기법
일대일 관계 (One-to-One Relationship) |
한 엔터티의 인스턴스가 다른 엔터티의 인스턴스와 하나씩 연결된 관계입니다. ex) 한 사람이 하나의 운전 면허를 가집니다. |
|
일대다 관계 (One-to-Many Relationship) |
한 엔터티의 인스턴스가 다른 엔터티의 여러 인스턴스와 연결된 관계입니다. ex) 한 고객이 여러 주문을 가집니다. |
|| --o{ (0 or many) ||--|{ (1 or many) ||-{ (many) |
다대일 관계 (Many-to-One Relationship) |
여러 엔터티 인스턴스가 하나의 엔터티 인스턴스와 연결된 관계입니다. ex) 여러 주문이 하나의 고객에 의해 생성됩니다. |
|
다대다 관계 (Many-to-Many Relationship) |
여러 엔터티 인스턴스가 다른 여러 엔터티 인스턴스와 서로 연결된 관계입니다. ex) 여러 학생이 여러 과목을 수강합니다. |
||--o{ |
0 or many | -o{ | |
1 or many | -|{ |
예시 다이어그램
학사 관리 시스템의 예시를 통해 ER 다이어그램을 작성하는 방법을 설명합니다. 학생, 강의, 교수 간의 관계를 다이어그램으로 나타냅니다.
@startuml
entity Student {
* student_id: int
--
* name: string
* email: string
}
entity Course {
* course_id: int
--
* title: string
* description: string
}
Student --|{ Course : enrolls
@enduml
@startuml
entity Customer {
+ id (PK)
--
name
mail
}
entity Order {
+ id (PK)
--
# customer id (FK)
order date
}
entity "Order Detail" as OrderDetail {
+ id (PK)
--
# order id (FK)
price without tax
}
Customer -right-o{ Order
Order ||-right-|{ OrderDetail
@enduml
Customer 엔터티 | + id (PK): id 필드는 기본 키(Primary Key)로 설정되어 있습니다. name, mail: 일반 속성입니다. |
Order 엔터티 | + id (PK): id 필드는 기본 키입니다. # customer id (FK): customer id는 외래 키(Foreign Key)로, Customer 엔터티와 연결됩니다. order date: 일반 속성입니다. |
Order Detail 엔터티 | + id (PK): id 필드는 기본 키입니다. # order id (FK): order id는 외래 키로 Order 엔터티와 연결됩니다. price without tax: 일반 속성입니다. |
Customer - Order 관계 | -right-o{는 "일대다" 관계를 의미합니다. 즉, 한 Customer는 여러 Order를 가질 수 있습니다. |
Order - Order Detail 관계 | ||-right-|{는 "일대다" 관계를 나타내며, 이는 한 Order가 여러 OrderDetail을 가질 수 있음을 의미합니다. |
반응형
'Programming > PlantUML' 카테고리의 다른 글
Gantt 차트 작성하기 (0) | 2024.08.05 |
---|---|
UML이란? (0) | 2024.08.05 |
UML - Class Diagram (0) | 2024.06.21 |