DB 0617

yunha·2023년 6월 17일
0

DB

목록 보기
10/26

논리적 데이터 모델

:E-R 다이어그램으로 표현된 개념적 구조를 데이터베이스에 저장할 형태로 표현한 논리적 구조 데이터베이스의 논리적 구조 = 데이터베이스 스키마(schema)
:사용자가 생각하는 데이터베이스의 모습 또는 구조
:관계 데이터 모델, 계층 데이터 모델, 네트워트 데이터 모델

-관계 데이터 모델

: 개념적 구조=>논리적 구조 표현, 일반적으로 많이 사용되는 논리적 데이터 모델
: 데이터베이스의 논리적 구조 - 한 개체 데이터 : 한 릴레이션 => 2차원 테이블 형태

데이터베이스

구성

-데이터베이스 스키마(database schema)
:데이터베이스 전체 구조
:데이터베이스 구성하는 릴레이션 스키마 모음

-릴레이션 인스턴스(database intence)
:데이터베이스 구성하는 릴레이션 인스턴스 모음

릴레이션Relation

: 하나의 개체에 관한 데이터를 2차원 테이블 구조로 저장
: 파일 관리 시스템 관점 --> file

구성

-릴레이션 스키마(relation schema/relation intension)
:릴레이션의 논리적 구조
:릴레이션 이름과 릴레이션에 포함된 모든 속성 이름으로 정의
:특징 - 정적

-릴레이션 인스턴스(relation intence/relation extension)
:어느 한 시점에 릴레이션에 존재하는 튜플들의 집합
:특징 - 동적

특성

-유일성(t) : 한 릴레이션에는 동일한 튜플 존재 X
-무순서(t) : 한 릴레이션에서 튜플 사이 순서는 무의미
-무순서(a) : 한 릴레이션에서 속성 사이 순서는 무의미
-원자성(a) : 속성 값으로 원자 값만 사용 가능

키Key

: 릴레이션에서 튜플들을 유일하게 구별하는 속성/속성 집합

특성

-유일성(uniqueness) : 한 릴레이션에서 모든 튜플은 서로 다른 키 값 가져야 함
-최소성(minimality) : 꼭 필요한 최소한의 속성들로만 키 구성
기본키Primary key
외래키Foreign key
:외래키 속성과 외래키가 참조하는 기본키 속성 이름 달라도 되지만 도메인은 같아야
:한 릴레이션에는 외래키 여러 개 존재 가능, 외래키=>기본키 사용도 가능
:같은 릴레이션 기본키를 참조하는 외래키 정의도 가능, 널 값 가질 수도 있음(같은 데서 참조할 때)
대체키Alternate key
후보키Cardidate key
슈퍼키Super key

속성Attribute

: 릴레이션-열
: 파일 관리 시스템 관점 --> field

튜플Tuple

: 릴레이션-행
: 파일 관리 시스템 관점 --> record

도메인Domain

:한 속성이 가질 수 있는 모든 값의 집합
: 일반적으로 속성의 특성을 고려한 데이터 타입으로 정의
: 속성 값을 입력/수정할 때 적합성의 판단 기준이 됨

널Null

: 속성 값을 아직 모르거나 해당되는 값 없음을 표현

차수Degree

: 한 릴레이션에서 속성의 전체 개수

카디널리티Cardinality

: 한 릴레이션에서 튜플의 전체 개수

무결성 제약조건Integrity constraint

:데이터 무결성을 보장하고 일관된 상태로 유지하기 위한 규칙
:무결성 - 데이터를 결함 없는 상태, 즉 정확하고 유효하게 유지하는 것

--개체 무결성 제약조건Entity integrity constraint

:기본키를 구성하는 모든 속성은 널 값을 가질 수 없음

--참조 무결성 제약조건Referential integrity constraint

:외래키는 참조할 수 없는 값을 가질 수 없음 ex.고객아이디에 없는 주문 고객
*외래키 속성이 널 값이라고 해서 규칙 위반에 해당하진 않음

-계층 데이터 모델Hierarchical data model

:데이터베이스의 논리적 구조 - tree 형태
:루트 역할 하는 개체 존재, 사이클 존재 X
:개체 간 상하 관계 성립 ex.출판사-책-고객-구입도서/부서-직원-상품/고객
-부모 개체 / 자식 개체
-부모와 자식 개체는 일대다 관계만 허용됨 => : 다대다 관계 직접 표현X
: 두 개체 사이에 하나의 관계만 정의 가능
: 개념적 구조 모델링 어려워 구조 복잡해질 수 있음
: 데이터 삽입/삭제/수정/검색 용이X

-네트워크 데이터 모델Network data model

:데이터베이스의 논리적 구조가 네트워크, 즉 그래프 형태
:개체 간에는 일대다 관계만 허용됨 => owner / memeber
:두 개체 사이에 여러 관계를 정의할 수 있어 이름으로 구별
:다대다 관계 직접 표현할 수 없음
:구조가 복잡하고 데이터의 삽입/삭제/수정/검색 용이X

논리적 모델링(논리적 설계)

E-R 다이어그램을 릴레이션 스키마로 변환하는 규칙

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

규칙1 : 모든 개체는 릴레이션으로 변환

각 개체를 한 릴레이션으로 변환
개체 속성이 복합 속성인 경우 - 복합 속성을 구성하고 있는 단순 속성만 릴레이션 속성으로 변환

규칙2 : 다대다(n:m) 관계는 릴레이션으로 변환

관계에 참여하는 개체를 규칙 1에 따라 릴레이션으로 변환한 후 이 릴레이션의 기본키를 관계 릴레이션에 포함시켜 외래키로 지정하고 외래키들을 조합하여 관계 릴레이션의 기본키로 지정

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

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

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

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

n측 개체 릴레이션은 외래키 포함 기본키 지정
=> 약한 개체는 오너 개체에 따라 존재 여부가 결정되므로 오너 개체 기본키 이용해 식별해야 함

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

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

관계에 참여하는 개체 릴레이션들이 서로의 기본키를 주고 받아 외래키로 지정
관계의 속성들도 모든 개체 릴레이션에 포함시킴
불필요한 데이터 중복이 발생할 수 있음

규칙4-2 : 필수적으로 참여하는 개체 릴레이션만 외래키 받음

관계에 필수적으로 참여하는 개체 릴레이션에만 외래키 포함 (+관계 속성들)

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

관계 이름을 릴레이션 이름으로 사용하고 관계에 참여하는 두 개체의 속성들을 관계 릴레이션에 모두 포함
두 개체 릴레이션의 키 속성을 조합하여 관계 릴레이션의 기본키로 지정

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

E-R 다이어그램의 다중 값 속성은 독립적인 릴레이션으로 변환

: 다중 값 속성과 함께 그 속성을 가지고 있던 개체 릴레이션의 기본키를 외래키로 가져와 새로운 릴레이션에 포함시킴 => 불필요한 중복 제거, 릴레이션 특성 만족
: 새로운 릴레이션 기본키 => 다중 값 속성, 외래키 조합하여 지정

ex. 사원 - 사원번호! / 사원명 / 직위 / ((부하직원))
=> 사원 릴레이션 - 사원번호! / 사원명 / 직위
=> 사원-부하 릴레이션 - 사원번호!(F,K) / 부하직원!(P,K)

기타 고려 사항

모든 관계를 독립적인 릴레이션으로 변환 가능

속성이 많은 관계는 유형에 상관없이 릴레이션으로의 변환을 고려할 수 있음

개체가 자기 자신과 관계를 맺는 순환 관계도 기본 규칙 그대로 적용

profile
기록

0개의 댓글