DEVELOP
article thumbnail

본 게시물은 데이터베이스 과목의 강의영상과 강의자료를 바탕으로 작성한 학습용 게시물입니다.


E/R에서 RDB로의 변환 주요 단계

  • Entity를 Table로 변환 
    - 식별자 → 기본키 
    - 애트리뷰트의 타입 정의
    - Unique, NOT null 속성
  • Relationship 고려
    - Foreign key 추가 
    - Intersection / Association Table 생성 
    - 관계에 의해 새로운 table 생성되기도 함

 

  • 이상적인 기본 키는 짧고, 숫자이며, 고정 값
  • 대체 키는 이상적이지만, 사용자에게는 의미 x
  • entity : 그림자 o , table : 그림자 x 
  • 기본 키는 key symbol로 디자인


Specify Candidate (Alternate) Keys 

  • 후보 키는 테이블에서 고유한 행의 대체 식별자 
  • 각 후보 키는 테이블의 애트리뷰트에 Unique 속성 부여 
  • AKn.m 
    - n : 후보키의 번호 
    - m : 후보키의 column 번호


Specify Column Properties

  • Null status : 값이 null일 수 있는지 여부 표시

# Genetic Data Type : 

  • CHAR(n)  문자열
  • VARCHAR(n)  가변길이 문자열
  • DATATIME  날짜/시간
  • INTEGER  정수형
  • FLOAT / DECIMAL  실수형


Create Relationships : 1:1 Strong Entity Relationships

  • 다른 개체의 기본키를 외래키로 배치 
    : 자식, 부모 상관없이 설계 가능

With Foreign Key in LOCKER
With Foreign Key in CLUB_MEMBER
Member, Locker Tables


Create Relationships : 1:N Strong Entity Relationships

  • 1:N 에서 1쪽의 테이블의 기본 키를 N쪽의 테이블의 외래키로 배치
  • 1쪽의 테이블은 부모 테이블, N쪽의 테이블은 자식 테이블
  • 부모의 키를 자식에 배치

1:N Strong Entity Relationship
Placing the Key of the Parent in the Child
Company, Department Tables


Create Relationships : N:M Strong Entity Relationships

  • COMPANY에서 많은 PART 공급 가능
  • PART는 많은 COMPANY에 의해 공급 가능
  • 외래키로 해결 되지 않음
  • 해결책 : 각 개체 사이의 관계를 저장하는 교차 테이블 생성
  • 교차 테이블은 각 테이블의 기본 키로만 구성 (추가적인 애트리뷰트 x)
  • 각 테이블의 기본 키는 교차 테이블로 연결되는 외래 키가 됨

COMPANY_PART_INT (CompanyName, PartNumber

 

  • Company_Part_Int : 연결 테이블이라는 제 3의 테이블 만듦
  • (CompanyID, PartID) : 복합키로 구성된 기본 키 
  • CompanyID , PartID : 각각의 부모 테이블의 기본키를 가리키는 2개의 외래키

Relationships Using ID-Dependent Entites

# Four Uses for ID-Dependent Entities

  • Intersection table (strong N:M)
  • Association Relationships (추가적인 애트리뷰트가 필요할 때 )
  • Multivalued Attributes(애트리뷰트가 다중 값일 때 )
  • Archtype / Instance Relationships (원형/인스턴스)

# intersection table 

  • N:M 관계의 두 strong 개체 사이의 관계
  • 외래키인 두 개체의 기본키만 포함

# association table

  • intersection table의 모든 특성을 가지고 있음 
  • 두 개체 쌍을 특정짓기 위한 추가적인 애트리뷰트가 포함됨 
  • 대학 데이터베이스의 enrol은 전형적인 association 테이블임

QUOTATION (CompanyName, PartNumber, Price)

# Multivalued Attributes

  • 애트리뷰트가 다중 값일때
  • 외래키를 추가할 필요 x
  • 기본키의 일부가 외래키

Phone_Contact table

# Archtype/Instance 

  • 원형이 있고, 원형을 모델로 만든 인스턴스가 있음
  • ID-dependent entity로 설계된 경우에는 외래키 애트리뷰트를 추가할 필요 x
  • Non Id-dependent entity로 설계된 경우에는 외래키를 추가함 
  • 기본키의 구성이 다르다는 점을 확인 


Recursive Relationships 

# 1:1 Recursive Relationships

  • 외래 키 애트리뷰트를 추가 
  • ex) 이어져있는 지하철에서의 앞 뒤 차 

Boxcar table

# 1:N Recursive Relationships

  • 외래 키 애트리뷰트를 추가
  • ex) 매니저와 그의 담당 직원들 

Employee table

# N:M Recursive relationships

  • Intersection table 생성해 짝을 표현
  • ex) CPU 안 여러 부품 (볼트, 너트)

Part & PP_Int table

 

profile

DEVELOP

@JUNGY00N