- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- C언어
- python
- 프로그래밍 입문
- 컴퓨터공학과
- 연결리스트
- 안드로이드 스튜디오
- oauth
- 자료구조
- C++
- 배열
- 구글 로그인
- 파이썬
- 비주얼 베이직
- 안드로이드
- Firebase
- 공유대학
- 동적할당
- sql
- til
- 프로그래머스
- 알고리즘
- Java
- 로그인
- 백준
- 코딩테스트
- 자바
- firebase google
- 정렬
- android studio
Archives
코딩하는 해달이
[데이터 베이스 설계] 4주차 본문
Logical Data Modeling
Relational Data Model
Relational Model Constaints
도메인 제약(Domain Constaints)
- 속성에 대한 제약
- 속성 값은 원자성을 가지며, 도메인에서 정의된 값이어야 함
- 복합속성과 다중속성은 허용되지 않음
- Null 값은 허용됨
- 도메인 : 속성 하나가 가질 수 있는 모든 값의 집합, 즉 값의 범위
- 원자성 : 더는 분해할 수 없는 하나의 값
- 널 값 : 특정 속성에 해당되는 값이 없음을 나타냄, 튜플의 속성 값을 모르거나 적합한 값이 없을 경우 사용
키 제약(Key Constaints)
- 테이블에 대한 제약
- 관계의 모든 튜플은 서로 식별이 가능해야 함
- 수퍼키 : 유일의 특성을 만족하는 속성 또는 속성들의 집합, 키 값이 같은 튜플은 존재할 수 없다.
- 후보키 : 유일성과 최소성을 만족하는 속성 또는 속성들의 집합
- 기본키 : 여러 개의 후보키 중에서 기본적으로 사용할 키
- 최소성 : 꼭 필요한 최소한의 속성들로만 키를 구성하는 특성
개체 무결성 제약(Entity Integrity Constraints)
- 기본키에 대한 제약
- 기본키는 독자적인 특성이 있어야 하며, Null 값이 아니어야 함
- UNIQUE & NOT NULL 제약 조건이라고도 함
- 기본키 선택시 고려사항
- 널값을 가질 수 있는 속성이 포함된 후보키는 기본키로 부적함
- 값이 자주 변경될 수 있는 속성이 포함된 후보키는 기본키로 부적함
- 단순한 후보키를 기본키로 선택
- 자릿수가 적은 정수나 단순한 문자열인 속성으로 구성
- 속성의 개수가 적은 후보키
참조 무결성 제약(Referential Integrity Constraints)
- 외래키에 대한 제약
- 외래키 (FK : Foreign Key)
- 어떤 테이블에 소속된 속성 또는 속성 집합이 다른 테이블의 기본키가 되는 키(=속성), 즉 다른 테이블의 기본키를 그대로 참조하는 속성의 집합
- 테이블 R1이 테이블 R2를 참조하는 경우, R2의 기본키는 R1에서 외래키로 사용됨
- FK는 자기 자신이 속한 관계를 참조할 수도 있음
- 테이블간의 관계를 표현하는 역할
- 외래키는 참조할 수 없는 값을 가질 수 없다.
- 테이블 R1이 테이블 R2를 참조하는 경우 R1의 FK는
- Null이거나
- Null이 아닐 경우 R2에 실제로 존재하는 값으로 구성되어야 함
관계의 특성
- 튜플의 유일성 : 하나의 릴레이션에는 동일한 튜플이 존재할 수 없다
- 튜플의 무순서 : 하나의 릴레이션에서 튜플 사이의 순서는 무의미하다.
- 속성의 무순서 : 하나의 릴레이션에서 속성 사이의 순서는 무의미하다.
- 속성의 원자성 : 속성 값으로 원자 값만 사용 할 수 있다. = 속성 값을 나눳을때 의미가 없어야 함 (가장 큰 특성) - 도메인 제약과 관련이 있다.
ER - to - RelationalModel 변환 규칙
- Mapping of Strong Entitiy Types
- 각 strong entitiy E에 대항되는 테이블 R을 생성함
- E의 단일/단순/저장 속성을 모두 R의 속성으로 포함시킴
- 복합속성의 경우 각 하위 컴포넌트만 포함시킴
- 다중 속성은 추후 고려
- E의 키 속성 중 하나를 선택하여 R의 기본키로 정함
- 복합 키의 경우, 이에 속한 속성들의 조합이 R의 기본키가
- 각 strong entitiy E에 대항되는 테이블 R을 생성함
- Mapping of Weak Entitiy Types
- 각 weak entitiy W에 대응되는 테이블 R을 생성하고, W의 단일/단순/저장 속성을 모두 R의 필드로 포함시킴
- W의 식별 개체 E에 대해서, E의 기본키를 R의 외래키로 포함시킴
- R의 기본키는 E의 기본키와 W의 부분키(= 약한 개체의 기본키)의 조합으로 구성
- Mapping of Binary 1:N Relationship Types
- 각 Binary 1: N Relationship RS에 대해, 이 Relationship에 참여하는 두 entitiy를 각각 S(N-side)와 T(1-side)라고 하면...
- T의 기본키를 S의 외래키로 포함
- RS에 속한 모든 simple attribute를 S에 포함시킴
- 각 Binary 1: N Relationship RS에 대해, 이 Relationship에 참여하는 두 entitiy를 각각 S(N-side)와 T(1-side)라고 하면...
- Mapping of Binary 1:1 Relationship Types
- 각 Binary 1:1 Relationship에 참여하는 두 entitiy를 각각 S와 T라고 한다면...
- 대안 1 - T→S 방향
- T의 기본키를 S의 외래키로 포함
- RS에 속한 모든 단순 속성을 S에 포함시킴
- 반대방향
- 위와 동일
- Mapping of Binary M:N Relationship Types
- 각 Binary M:N Relationship RS에 대해, 이 Relationship에 참여하는 두 entity를 각각 S와 T라고 하면…
- RS에 대응되는 새로운 릴레이션 R을 생성함
- RS에 속한 모든 simple attributes를 R에 포함시킴
- S와 T의 기본키를 R의 외래키로 포함
- R의 기본키는 S에서 온 외래키와 T에서 온 외래키의 조합으로 구성
- Mapping of N-ary Relationship Types
- 각 N-ary Relationship RS에 대해, 새로운 릴레이션 R을 생성함
-
(N > 2 인 경우에 해당됨)
-
- RS의 모든 simple attributes를 R의 속성으로 포함시킴
- RS에 참여하는 모든 두샤쇼의 기본키를 R의 외래키로 포함시킴
- R의 기본키는 모든 외래키의 조합으로 구성됨
- 단 대응수가 1인 관계로부터 가져온 외래키는 기본키의 조합에서 빠짐
- 각 N-ary Relationship RS에 대해, 새로운 릴레이션 R을 생성함
- Mapping of Multivalued Attributes
- Entity E에 속한 multivalued attributed MA에 대해 릴레이션 R 생성
- E의 기본키 K를 R의 외래키로 포함시킴
- R의 기본키는 K와 A의 조합으로 구성됨
- MA의 속성을 R에 포함시킴 (→ attribute A)
Anomaly
Anomaly : DB설계를 잘못하여 불필요한 데이터 중복이 발생하여 테이블에 대한 데이터의 삽입, 삭제, 객잇ㄴ 연산을 수행할 때 부작용이 발생할 수 있다.
Nomalization
정규화 : 테이블을 관련있는 속성들로만 구성하기 위해 테이블을 분해하는 과정
함수적 풍속성 (FD - Functional Dependency)
- 어느 시점에서든 테이블 내의 모든 튜플에서 하나의 x값에 대한 y값이 항상하나면 "x가y를 함수적으로 결정한다" 또는 "y가 x에 함수적으로 종속되어 있다"
- 함수 종속 관계 : x→y
반응형
'학교 공부 > 데이터 베이스 설계' 카테고리의 다른 글
[데이터 베이스 설계] 3주차 (0) | 2023.03.16 |
---|---|
[데이터베이스 설계] 2주차 (0) | 2023.03.09 |
Comments