[DB] ch9 DB 설계(ERD)

박소미·2023년 12월 9일
0

DB

목록 보기
9/14

9.1 데이터 베이스 설계의 절차

1단계 : 요구 사항 분석

  • 데이터 베이스 용도 파악
  • 결과물 : 요구 사항 명세서

2단계 : 개념적 설계

  • DBMS에 독립적인 개념적 구조 설계
  • 결과물 : 개념적 스키마 (E-R 다이어그램)

3단계 : 논리적 설계

  • DBMS에 적합한 논리적 구조 설계 (데이터 모델링)
  • 결과물 : 논리적 스키마 (릴레이션 스키마)

4단계 : 물리적 설계

  • DBMS로 구현 가능한 물리적 구조 설계
  • 결과물 : 물리적 스키마 (ex. 테이블명세서)
  • 산출물 : index, structure 등

5단계 : 구현

  • SQL문을 작성한 후 이를 DBMS에서 실행하여 데이터베이스 생성

9.2 요구 사항 분석

설계 1단계 : 요구 사항 분석

목적 : 사용자의 요구 사항을 수집하고 분석하여 데이터베이스의 용도를 파악

결과물 : 요구 사항 명세서


9.3 개념적 설계

설계 2단계 : 개념적 설계

목적 : DBMS에 독립적인 개념적 스키마 설계 , 개념적 데이터 모델을 이용해 개념적 구조로 표현, 일반적으로 ER모델 이용

결과물 : 개념적 스키마(ERD)

주요 작업 : 요구 사항 결과를 기반으로 중요한 개체를 추출하고 개체 간의 관계를 결정하여 ERD으로 표현

작업 과정
step 1 개체와 속성 추출

  • 개체 : 저장할 만한 가치가 있는 중요 데이터를 가진 사람이나 사물
  • 개체 추출 방법 : 요구 사항 문장에서 업무와 관련 깊은 의미 있는 명사 찾기
  • 찾아낸 명사를 개체와 속성으로 분류

step 2 관계 추출

  • 관계 : 개체 간의 의미 있는 연관성
  • 관계 추출 방법 : 개체 간의 연관성을 표현한 동사 찾기
  • 찾아낸 관계에 대해 매핑 카디널리티와 참여 특성을 결정
    • 매핑 카디널리티 : 일대일(1:1), 일대다(1:n), 다대다(n:m)
    • 참여 특성 : 필수적 참여/선택적 참여

step 3 ERD로 표현

9.4 논리적 설계

설계 3단계 : 논리적 설계

목적 : DBMS에 적합한 논리적 스키마 설계, 개념적 스키마를 논리적 데이터 모델을 이용해 논리적 구조로 표현

결과물 : 논리적 스키마-릴레이션 스키마

주요 작업 : 개념적 설계 단계의 결과물인 ERD를 릴레이션 스키마로 변환, 변환 후 데이터 타입, 길이, 널값 허용 여부, 기본 값, 제약 조건 등을 세부적으로 결정 후 결과를 문서화 시킴

ERD를 릴레이션 스키마로 변환하는 규칙
규칙1 : 모든 개체는 릴레이션으로 변환한다. (개체의 이름 -> 릴레이션 이름)

규칙 2 🎯 : 다대다 (n:m) 관계는 릴레이션으로 변환한다. (관계의 이름->릴레이션 이름)

규칙 3 : 일대다(1:n) 관계는 외래키로 표현한다.

규칙 3-1 : 일반적인 일대다 관계는 외래키로 표현한다.

  • 일대다(1:n) 관계에서 1측 개체 릴레이션의 기본키를 n측 개체 릴레이션에 포함시켜 외래키로 지정
  • 관계의 속성들도 n측 개체 릴레이션에 포함시킴

규칙 3-2 약한 개체가 참여하는 일대다 관계는 외래키를 포함해서 기본키로 지정한다.

  • n측 개체 릴레이션은 외래키를 포함하여 기본키를 지정한다.
    • 약한 개체는 강한 개체에 따라 존재 여부가 결정되므로 강한 개체의 기본키를 이용해 식별해야 한다.

규칙 4 : 일대일(1:1) 관계는 외래키로 표현한다.

규칙 4-1 : 일반적인 일대일 관계는 외래키를 서로 주고 받는다.

  • 관계에 참여하는 개체 릴레이션들이 서로의 기본키를 주고 받아 외래키로 지정

규칙 4-2 : 일대일 관계에 필수적으로 참여하는 개체의 릴레이션만 외래키를 받는다.

규칙 4-3 : 모든 개체가 일대일 관계에 필수적으로 참여하면 릴레이션 하나로 합친다.

  • 관계의 이름을 릴레이션 이름으로 사용하고 관계에 참여하는 두 개체의 속성들을 관계 릴레이션에 모두 포함 시킨다.

규칙 5 : 다중 값 속성은 릴레이션으로 변환한다.

  • 새로운 릴레이션의 기본키는 다중 값 속성과 외래키를 조합하여 지정

순서대로 적용하되 해당되지 않는 규칙은 제외

9.5 물리적 설계와 구현

물리적 설계 - 테이블 명세서 작성

  • 릴레이션 스키마 변환 후 속성의 데이터 타입과 길이, 널값 허용 여부, 기본값, 제약조건 등을 세부적으로 결정하고 문서화시킴

테이블 명세서 : 릴레이션 스키마에 대한 설계 정보를 기술한 문서

실제 데이터베이스 구축을 위한 테이블, 뷰, 인덱스, 용량 등을 설계


구현
SQL로 작성한 명령문을 DBMS에서 실행하여 데이터베이스를 실제로 생성

🎯 단원 요약

  • 데이터베이스 설계란 데이터베이스의 구조, 즉 스키마를 설계하는 과정이다.

  • 데이터 모델링이란 현실세계를 데이터의 관점에서 파악하여 개념적인 모델로 표현하는 단계를 말하며 논리적 데이터베이스 설계라고도 말한다.

  • 물리적 데이터베이스 설계에서는 실제 데이터베이스 구축을 위한 테이블, 뷰, 인덱스, 용량 등을 설계한다.

  • ER 다이어그램은 Entity-Relationship Diagram의 줄임말이며 데이터베이스 설계 결과를 표현하기 위한 도구이다.

  • ER 다이어그램은 엔티티들과 엔티티 안에 포함될 속성들(PK,FK) , 엔티티들 간의 관계를 선으로 표시한 도표이다.

  • 엔티티란 업무의 관심 대상이 되는 정보를 갖고 있거나 그에 대한 정보를 관리할 필요가 있는 유형, 무형의 사물(개체)을 말한다.

  • 속성이란 엔티티에서 관리해야 할 최소 단위의 정보 항목을 말하며, 테이블의 컬럼으로 구현된다.

  • 관계란 두 엔티티 사이의 관련성을 나타내는 용어이다. 1:1 , 1:N 관계와 선택, 필수 관계가 있다.

  • 공유 속성으로 관계를 맺는 두 엔티티에서 자식 엔티티의 외래 식별자(FK)는 부모 엔티티의 주식별자(PK)를 참조한다.

  • 하나의 속성이 주식별자가 될 수 없는 경우는 여러 개의 속성을 묶어서 주식별자로 지정해야 한다.

  • 데이터베이스 정규화란 설계된 데이터베이스 안에 존재하는 데이터의 중복을 제거하여 데이터의 무결성을 유지하는 과정을 말한다.

  • 1:1 관계에 있는 두 엔티티는 하나로 합칠 수 있으므로 둘로 나누어야 할 필요가 있는지를 검토한다.

  • 반정규화는 정규화와 대비되는 개념으로 어느 정도의 중복은 감수하고 데이터베이스의 성능을 향상시키고자 정규화의 반대 방향으로 작업한다.

📌연습문제

  1. 실제 데이터베이스 구축을 위한 테이블, 뷰, 인덱스, 용량 등을 설계하는 단계를 말한다. - 물리적 데이터베이스 설계

  2. 응용 SW 개발을 위해 기반이 되는 데이터베이스의 구조, 즉 스키마를 설계하는 과정을 말한다. -데이터베이스 설계

  3. 데이터베이스의 설계 결과를 표현하기 위해 일반적으로 사용되는 도구이다. - ER다이어그램

  4. 현실세계를 데이터의 관점에서 파악하여 개념적인 모델로 표현하는 단계를 말하며 논리적 데이터베이스 설계라고도 말한다. - 데이터모델링

  5. 업무의 관심 대상이 되는 정보를 갖고 있거나 그에 대한 정보를 관리할 필요가 있는 유형, 무형의 사물(개체)을 말한다. - 엔티티

0개의 댓글