※ 대학교 수업에서 배운 내용의 노트 필기를 기억을 더듬어가며 옮겨 쓰는 것이므로 오류가 있을 수 있습니다.
지적해주시면 감사하겠습니다.
Data Models : DB의 논리 구조를 설계/정의하기 위한 도구들의 모음
- Data
- Data Relationship(관계)
- Data Semantics(의미)
- Data Constraints(제약조건)
현대 DB에서 가장 많이 사용하는 형태는 관계형 모델(Relational Model)이다.
Entity와 Relation으로 DB 구조를 설계한다.
DB Metadata : Knowledge/Information about DB
Database Design
- DB Schema
- 무결성 제약조건 : 참조무결성(Referential Integrity), Primary key - 중복/null X
- 사용자 권한 정보
DB 설계 절차
- 사용자 요구 사항 분석
- Conceptual Schema(DB) Design(with ER model)
- Logical DB Design(Relational model)
- Physical DB Design
- Process Design
Relation과 Table은 비슷한 의미지만...
Relation은 수학적 개념이다. 특정 요소를 지칭할 때 행렬처럼 지칭한다.
Table은 논리적 개념이다. 특정 요소를 지칭할 때 Attribute 이름을 사용한다.
※ 용어 정리
Instructor : Table의 이름
Attribute(Field) : 각 항목의 이름(표제)
Degree : attribute의 개수
Tuple(Record) : 각 요소(attribute)의 값
Cardinality : tuple(데이터)의 개수
Domain : 어떤 attribute가 가지는 값들의 집합(유한한 경우만 생각한다). 대충 테이블을 행렬로 보면 열이 domain
Atomic : 더 이상 분해할 수 없는 attribute
※ 관계형 모델에서는 Attribute 값이 atomic해야만 한다. 관계형 모델의 기본 원칙.
attribute/degree가 1개면 unary relation이라 한다.
2개면 binary, 3개면 ternary, ...n개면 n-ary
Null Value는 아래 2가지 value의 표현을 위해 도입한 것이다.
1. unidentified
2. missing
space, blank, zero와는 다르다(코드값 없음)
Relation
- Table명은 소문자로 시작한다
- n개의 domain(D1, D2, ... , Dn)들의 곱의 부분집합이 Relation n
- domain 간 곱셈 : 데카르트 곱(Cartesian Product)
수많은 D가 있는데, 그 D들의 곲은 모든 경우의 수를 의미한다. 하지만 현실의 DB(Relation)는 그 중 일부(부분집합)다.
DB는 Table이 모여서 이루어진다.
Db를 특정 기준에 따라 나누지 않고 통합한다면?
-> 데이터 중복, null value 발생으로 공간 낭비
Key
- key ⊂ Relation
가장 상위 키를 Super key라고 한다.
-> 중복되지 않는 값(unique value)을 갖는 attribute의 집합
예를 들면, 학번은 고유한 값이므로 super key가 될 수 있으나 이름은 동명이인이 있을 수 있으니 될 수 없다.
[학번 + 이름]은 super key가 될 수 있다.
super key는 여러개가 될 수 있다 : 별 의미 없다는 말이다.
Candidate key : super key 중 최소의 길이로 이루어진 attribute의 집합(Minimality)
-> [학번], [학번 + 이름], [학번 + 이름 + 주소] 이렇게 3가지의 key가 있다면 [학번]이 candidate key가 된다.
Candidate key가 1개라면 그 key가 Primary key가 된다.
※ 모든 Table은 최소 1개의 Primary key를 가진다.
※ Candidate key가 2개 이상이라면 DBA가 Applcation의 성격에 따라 Primary key를 결정한다.
-> Primary key 외의 Candidate key는 Alternate key가 된다.
Foreign key(외래/외부 키) : Relation의 핵심
다른 테이블에서 PK고, 어떤 테이블에 attribute로 들어가 있으며, Relation을 나타낸다.
Referential Integrity Rule(참조 무결성의 법칙)
어떤 Relation A의 Foreign key 값은 다른 Relation B의 Primary key 값과...
1. 반드시 matching되어야 한다.
2. 그렇지 않다면 A의 Foreign key는 null 값을 가진다.
'DB' 카테고리의 다른 글
생활코딩 - DATABASE1 강의 정리 (0) | 2022.10.01 |
---|---|
데이터베이스 (1) (0) | 2022.08.17 |
데이터베이스 (0) (0) | 2022.08.17 |
댓글