데이터베이스 설계 단계

  • 커뮤니케이션
    • 사용자의 요구사항 분석
    • 개념적 설계: 분석 결과를 추상화된 표현 방식으로 기술 (개념적 스키마 생성)
      • ex: 개체 관계 모델, 개체관계 다이어그램(ERD), ER스키마
  • DBMS
    • 논리적 설계: 논리적 데이터베이스 구조에 맞는 스키마 생성 (논리적 스키마 생성)
      • 개념적 스키마를 통해 논리적 스키마(테이블 구조도)를 생성
      • 관계형 데이터 모델
    • 물리적 설계: 실제 컴퓨터에 저장되는 방식 설계
      • DBMS를 통해 실제 테이블 저장, 구조 설계, 생성
      • 필드의 데이터 타입, 인덱스, 물리적 스키마 지정

설계 과정의 고려사항

  • 충실성: 모든 데이터를 표현해야 한다.
  • 단순성: 단순하고 이해하기 쉬운 구조로 짜야한다.
  • 중복의 최소화
  • 제약조건의 표현

개체관계 모델: 개념적 설계

  • 개체(Entity)
    • 현실 세계에서 물리적/추상적으로 존재하는 실체 (레코드)
  • 개체집합(Entity Set)
    • 동일한 특성을 갖는 개체들의 모임 (테이블)
      • 강성 개체 집합: 기본키 형성에 필요한 속성을 모두 갖는 개체집합
      • 약성 개체 집합: 기본키 형성에 필요한 속성을 모두는 갖지 못한 개체 집합(독립적으로 존재 할 수 없음), 강성 개체 집합과 일대다 관계로 전체 참여한다.
  • 속성(Attribute)
    • 개체의 특성, 관계형 데이터 모델의 (필드)와 유사
      • (관계형 데이터 모델)필드: 테이블의 컬럼 원자 값만 허용된다.
      • (개체관계 모델)속성: 다중값 속성, 복합 속성 가능

관계와 관계집합

  • 관계: 개체간의 대응성
    • 일대일(one-to-one): 외래키를 추가 하여 구현
    • 일대다(one-to-many): 외래키를 추가 하여 구현
    • 다대일(many-to-one): 외래키를 추가 하여 구현
    • 다대다(many-to-many): 중간 테이블"이나 "연관 테이블"이라고 불리는 새로운 테이블을 만들어 다대다 관계를 두 개의 일대다 관계로 분리
  • 관계집합: 동일한 유형의 관계들의 집

부분키, 구별자

  • 약성 개체집합에서 강성 개체집합의 특정 개체 내에서만 유일한 값을 갖는 속성 집합
  • course 개체집합의 속성
    • course_id, title, credit
  • class 개체집합의 속성
    • year, semester, division, classroom, enroll
  • 특정 course에 대해서만 유일한 값을 갖는 class의 속성: year, semester, division (class 개체 집합의 부분키)
  • 약성 개체집합의 기본키: 약성 개체집합의 부분키 + 강성 개체집합의 기본키

'CS > DataBase' 카테고리의 다른 글

정규화  (0) 2023.05.19
개체 관계  (0) 2023.05.10
물리적 저장 구조와 인덱스  (0) 2023.04.26
데이터베이스 보안  (0) 2023.04.09
무결성과 보안  (1) 2023.04.07

+ Recent posts