ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2024 데이터베이스개론 정리 - 3. 관계 모델 (ER모델 to 관계 모델)
    Database 2024. 4. 2. 18:29
    728x90

     

     

     

    2024 데이터베이스개론 정리 - 3. 관계 모델 (ER모델 to 관계 모델)

     

     

    • 1. 데이터베이스 시스템 개요
    • 2. ER 모델 & EER 모델 
      • ER 모델 
      • EER 모델 
    • 3. 관계 데이터베이스 모델 (ER모델 to 관계 모델)
    • 4. 관계 데이터 연산 - 관계 대수와 관계 해석
      • 관계 대수 
      • 관계 해석
    • 5. SQL
      • 검색 
      • 테이블 정의, 조작, 뷰 
      • Stored Function, Stored Procedure 
      • Tigger
      • Transaction
      • DB 인덱스와 B Tree
    • 6. 함수적 종속성과 정규화 
      • 함수적 종속성
      • 정규화
    • 추가 
      • RDB VS NoSQL 

     

     


     

     

     

     

    관계모델 

    • 데이터베이스를 논리적 구조로 표현하는 표현적 데이터 모델 
    • 릴레이션(Relation)의 집합으로 데이터베이스를 표현
      • 릴레이션: ER 모델에서 하나의 개체 집합, 관계 집합, 혹은 다치 속성 값을 저장하는 2차원 테이블 구조

     

     

    RDB (relational database)

    • relational data model에 기반하여 구조화된 database
    • relational database는 여러 개의 relation으로 구성된다
    • relational database schema 
      • relational schemes set + integrity constraints set 

     

     

     

    관계모델의 기본 용어 

    • 속성 : 릴레이션의 열 이름  
    • 튜플 : 릴레이션의 행 
    • 도메인 : 속성 값이 될 수 있는 모든 원자 값(Atomic Value)들의 집합
    • 데이터타입 : 도메인은 데이터 타입으로 명시함
    • 차수 : 릴레이션의 속성 수 
    • 카디널리티 : 릴레이션의 튜플 수 

     

     

    키 (수퍼키, 후보키, 기본키, 대체키, 외래키, 복합키)

     

    • 키 : 릴레이션 R의 각 튜플 t를 고유하게 식별할 수 있는 속성 혹은 속성들의 집합
    • 수퍼키 (Super Key) : 한 릴레이션 내의 특정 튜플을 고유하게 식별 가능 (튜플을 고유하게 식별하는데 꼭 필요하지 않은 속성들을 포함할 수 있음)
    • 후보키 (Candidate Key): 릴레이션 내의 각 튜플을 고유하게 식별할 수 있는 최소한의 속성 혹은 속성들의 집합 ( 즉, 어느 한 속성이라도 빠지면 슈퍼키가 될 수 없는 슈퍼키를 의미함)
    • 기본키 (Primary Key): 한 릴레이션 내에 여러 후보키가 존재하면 설계자 또는 데이터베이스 관리자가 이들 중 하나를 기본
      키 PK로 선정
      • 기본키 선정 시 고려사항
        • 후보키가 항상 고유한 값을 가질 것인가
        • 후보키가 확실하게 널 값을 갖지 않을 것인가
        • 값이 자주 변경될 가능성이 높은 후보키는 기본키로 선정하지 않음
        • 가능하면 작은 정수 값이나 짧은 문자열을 갖는 후보키
        • 가능하면 두 개 이상의 속성으로 이루어진 후보키는 기본키로 선정하지 않음
    • 대체키 (Alternative key) : 기본키가 아닌 후보키
    • 외래키 (Foreign Key): 다른 릴레이션(혹은 자신)의 기본키를 참조하는 속성 또는 속성들의 집합 FK
    • 복합키 (Composite Key : table에서 각 row를 식별할 수 있는 두 개 이상의 column으로 구성된 key를 말한다

     

     

     

    Constraint : RDB의 relation들이 언제나 지켜줘야 하는 제약 사항 

     

    • implicit constraints
      • relational data model 자체가 가지는 constraints
      • relation은 중복되는 tuple을 가질 수 없다 
      • relation 내에서는 같은 이름의 attribute를 가질 수 없다 
    • explicit constraints (schema-based constraints)
      • 주로 DDL을 통해 schema에 직접 명시할 수 있는 constraints
      • 도메인 제약조건, 키 제약조건, Null value constraints, 개체 무결성 제약조건, Referential Integrity Constraint
        • null value constraints : attribute가 not null로 명시됐다면 null을 값으로 가질 수 없다

     

     

    관계 모델의 무결성 제약 조건

    • 도메인 제약조건, 키 제약조건, 개체 무결성 제약조건, 참조 무결성 제약조건이 있음
    • 도메인 제약조건(Domain Constraint): 릴레이션의 각 속성 Ai의 값은 반드시 domain(Ai)에 속하는 원
      자값만을 가져야 한다는 조건
    • 키 제약조건(Key Constraint): 릴레이션의 키는 중복된 값이 존재해서는 안된다는 조건
    • 개체 무결성 제약조건(Entity Integrity Constraint): 릴레이션의 키를 구성하는 어떤 속성도 널 값을
      가져서는 안된다는 조건
    • 참조 무결성 제약조건(Referential Integrity Constraint)
      • 참조하는 릴레이션 R1과 참조되는 릴레이션 R2가 존재할 때, R1 튜플의 외래키의 값은 (i) 특정 R2 튜플의
        기본키의 값과 같거나, (ii) 널 값을 가져야 한다는 조건
      • FK와 PK와 도메인이 같아야 하고 PK에 없는 values를 FK가 값으로 가질 수 없다 

     

     

     

    ER 모델에서 관계 모델로의 Mapping(사상)

     

     

     

     

     

     

    • 개체타입 (강한/약한)
      • 강한 개체 타입 
        • 릴레이션 스키마로 사상
        • 강한 개체 타입의 모든 단순 속성을 릴레이션 스키마에 포함시킴
        • 개체 타입의 키 중 하나를 릴레이션 스키마의 기본키로 설정
      • 약한 개체 타입 
        • 릴레이션 스키마로 사상
        • 약한 개체 타입의 모든 단순 속성을 릴레이션 스키마에 포함시킴
        • 약한 개체 타입에 대한 릴레이션의 기본키는 {외래키} ∪ {약한 개체 타입의 부분키}로 설정
    • 관계타입 (1:1/1:N/M:N)
      • 1:1
        • 1:1 관계 타입에 참여하는 두 개의 개체 타입에 대한 두 릴레이션 스키마 S 와 T 중 (가능하다면) 전체 참여
          릴레이션 스키마 S를 선택하여 T의 기본키를 S의 외래키로 포함시킴
      • 1:N
        • 1:N 관계 타입에 참여하는 두 개의 개체 타입에 대한 두 릴레이션 스키마 S 와 T 중 반드시 N 측 릴레이션 스
          키마 S를 선택하여 1측 릴레이션 스키마 T의 기본키를 S의 외래키로 포함시킴 
      • M:N
        • M:N 관계 타입에 대한 새로운 릴레이션 스키마 R을 생성  M:N 관계 타입에 참여하는 개체 타입에 대한 릴레이션 S와 T의 기본키 및 M:N 관계 타입의 모든 단순 속성
          을 R에 포함시킴 R의 기본키는 {S의 기본키(외래키) }∪ {R의 기본키(외래키)}로 설정
    • 수퍼클래스/서브클래스 
      • 수퍼클래스 C를 릴레이션 스키마 L로 사상 → C의 모든 단순 속성을 L에 포함시킴 → C의 키 중 하나를 L
        의 기본키 K로 설정 / 각 서브클래스 Si (1 ≤ i ≤ 서브클래스의 총 수) 를 릴레이션 스키마 Li로 사상 → Si의 모든 단순 속성을 Li에
        포함시킴 → L의 기본키 K를 Li에 외래키로 포함시킴 → K를 Li의 기본키로 설정

     

     

     

     

     

     

     

    728x90
Designed by Tistory.