1. 테이블 설계:
- 사건(event) 테이블: 사건의 기본 정보를 저장합니다.
- 이벤트ID (EventID): 기본 키(PK), 각 사건의 고유 식별자
- 제목 (Title): 사건의 제목
- 날짜 (Date): 사건이 발생한 날짜
- 위치 (Location): 사건이 발생한 위치
- 관련자(people) 테이블: 사건과 관련된 주요 인물 정보를 저장합니다.
- 인물ID (PersonID): 기본 키, 각 인물의 고유 식별자
- 이름 (Name): 인물의 이름
- 역할 (Role): 사건에서의 역할 (예: 목격자, 피해자 등)
- 사건_인물(event_people) 테이블: 사건과 인물 간의 관계를 나타내는 다대다(M:N) 관계 테이블입니다.
- 이벤트ID (EventID): 외래 키(FK), 사건 테이블과 연결
- 인물ID (PersonID): 외래 키, 인물 테이블과 연결
2. 예시 데이터:
- event 테이블 예시:
| EventID | Title | Date | Location |
|---------|--------------------|------------|--------------|
| 1 | 동덕여대 항의 사건 | 2023-01-15 | 서울 동덕여대 |
- people 테이블 예시:
| PersonID | Name | Role |
|----------|----------|-----------|
| 1 | 김철수 | 목격자 |
| 2 | 이영희 | 피해자 |
- event_people 테이블 예시:
| EventID | PersonID |
|---------|----------|
| 1 | 1 |
| 1 | 2 |
3. 쿼리 작성 예시:
- 특정 날짜에 발생한 사건 조회:
```sql
SELECT * FROM event WHERE Date = '2023-01-15';
```
- 특정 사건과 관련된 모든 인물 조회:
```sql
SELECT p.Name, p.Role FROM people AS p
JOIN event_people AS ep ON p.PersonID = ep.PersonID
WHERE ep.EventID = 1;
```
이와 같은 방식으로 동덕여대 사건의 다양한 데이터를 RDBMS로 체계화하면 정보 관리와 분석이 용이해집니다. 각 테이블 간의 관계를 명확히 하고, 필요한 데이터를 효율적으로 쿼리할 수 있게 설계하는 것이 중요합니다.