-
2024 데이터베이스개론 정리 - 3. 관계 모델 (ER모델 to 관계 모델)Database 2024. 4. 2. 18:29728x90
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가 값으로 가질 수 없다
- 참조하는 릴레이션 R1과 참조되는 릴레이션 R2가 존재할 때, R1 튜플의 외래키의 값은 (i) 특정 R2 튜플의
ER 모델에서 관계 모델로의 Mapping(사상)
- 개체타입 (강한/약한)
- 강한 개체 타입
- 릴레이션 스키마로 사상
- 강한 개체 타입의 모든 단순 속성을 릴레이션 스키마에 포함시킴
- 개체 타입의 키 중 하나를 릴레이션 스키마의 기본키로 설정
- 약한 개체 타입
- 릴레이션 스키마로 사상
- 약한 개체 타입의 모든 단순 속성을 릴레이션 스키마에 포함시킴
- 약한 개체 타입에 대한 릴레이션의 기본키는 {외래키} ∪ {약한 개체 타입의 부분키}로 설정
- 강한 개체 타입
- 관계타입 (1:1/1:N/M:N)
- 1:1
- 1:1 관계 타입에 참여하는 두 개의 개체 타입에 대한 두 릴레이션 스키마 S 와 T 중 (가능하다면) 전체 참여
릴레이션 스키마 S를 선택하여 T의 기본키를 S의 외래키로 포함시킴
- 1:1 관계 타입에 참여하는 두 개의 개체 타입에 대한 두 릴레이션 스키마 S 와 T 중 (가능하다면) 전체 참여
- 1:N
- 1:N 관계 타입에 참여하는 두 개의 개체 타입에 대한 두 릴레이션 스키마 S 와 T 중 반드시 N 측 릴레이션 스
키마 S를 선택하여 1측 릴레이션 스키마 T의 기본키를 S의 외래키로 포함시킴
- 1:N 관계 타입에 참여하는 두 개의 개체 타입에 대한 두 릴레이션 스키마 S 와 T 중 반드시 N 측 릴레이션 스
- M:N
- M:N 관계 타입에 대한 새로운 릴레이션 스키마 R을 생성 M:N 관계 타입에 참여하는 개체 타입에 대한 릴레이션 S와 T의 기본키 및 M:N 관계 타입의 모든 단순 속성
을 R에 포함시킴 R의 기본키는 {S의 기본키(외래키) }∪ {R의 기본키(외래키)}로 설정
- M:N 관계 타입에 대한 새로운 릴레이션 스키마 R을 생성 M:N 관계 타입에 참여하는 개체 타입에 대한 릴레이션 S와 T의 기본키 및 M:N 관계 타입의 모든 단순 속성
- 1:1
- 수퍼클래스/서브클래스
- 수퍼클래스 C를 릴레이션 스키마 L로 사상 → C의 모든 단순 속성을 L에 포함시킴 → C의 키 중 하나를 L
의 기본키 K로 설정 / 각 서브클래스 Si (1 ≤ i ≤ 서브클래스의 총 수) 를 릴레이션 스키마 Li로 사상 → Si의 모든 단순 속성을 Li에
포함시킴 → L의 기본키 K를 Li에 외래키로 포함시킴 → K를 Li의 기본키로 설정
- 수퍼클래스 C를 릴레이션 스키마 L로 사상 → C의 모든 단순 속성을 L에 포함시킴 → C의 키 중 하나를 L
728x90'Database' 카테고리의 다른 글
2024 데이터베이스개론 정리 - 5. SQL (문법/Stored Procedure/Transaction & Deadlock/Index & B+Tree) (0) 2024.04.02 2024 데이터베이스개론 정리 - 4. 관계 데이터 연산 - 관계 대수와 관계 해석 (0) 2024.04.02 2024 데이터베이스개론 정리 - 2. ER 모델 & EER 모델 (0) 2024.04.02 2024 데이터베이스개론 정리 - 1. 데이터베이스 시스템 개요 (0) 2024.04.02