제로하우스
[TIL][DB] 02 관계형 데이터베이스 (RDB) 본문
Overview
구조화된 데이터는 하나의 테이블로 표현할 수 있으며, 테이블을 사용하는 데이터베이스를 관계형 데이터베이스((Relational Database)라고 한다. 관계형 데이터베이스는 많은 사용자들이 동시에 데이터를 공유 및 조작할 수 있는 기능을 제공한다.
- data: 각 항목에 저장되는 값
- table(relationship): 사전에 정의된 열의 데이터 타입대로 작성된 데이터가 행으로 축적된다.
- column(field): 테이블의 한 열을 가리킨다.
- record(tuple): 테이블의 한 행에 저장된 데이터이다.
- key: 테이블의 각 레코드를 구분할 수 있는 값이다. 각 레코드마다 고유한 값을 가진다. 기본키(primary key)와 외래키(foreign key) 등이 있다.
특징
- 정규화를 통해 이상(ANOMLY) 현상을 제거하고 데이터 중복을 피할 수 있다.
- 삽입 이상(Insertion anomaly) : 데이터를 삽입할 때 의도와는 상관없이 원하지 않는 값들도 함께 삽입하는 현상 - 삭제 이상(Deleting anomaly) : 데이터를 삭제할 때 의도와는 상관없는 값들도 함께 삭제되는 연쇄 삭제 현상 - 갱신 이상(Modification anomaly) : 반복되는 데이터 중 일부를 갱신 할 때 데이터 불일치가 발생하는 현상
- 동시성 관리, 병행 제어를 통해 데이터를 공유
- 데이터 무결성을 보장
- 데이터를 복구하는 기능
관계 종류
1:1 관계
하나의 레코드가 다른 테이블의 레코드 한 개와 연결된 경우이다.
1:N 관계
하나의 레코드가 서로 다른 여러 개의 레코드와 연결된 경우이다.
N:N 관계
여러 개의 레코드가 다른 테이블의 여러 개의 레코드와 관계가 있는 경우이다. N:N 관계를 위해 스키마를 디자인할 때는 join 테이블을 만들어 관리한다.
Self Referencing 관계
때로는 하나의 테이블 내에서도 관계가 필요할 때가 있다. 예를 들어 추천인이 누구인지 파악하기 위해 사용할 수 있다.
Copyright © 2021 Song_Artish
'DB&SQL' 카테고리의 다른 글
[TIL][DB] 11 ACID (0) | 2022.06.02 |
---|---|
[TIL][DB] 03 NoSQL (0) | 2022.06.02 |
[TIL][DB] 01 Database Intro (0) | 2022.06.02 |
[MySQL] Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client (0) | 2022.05.31 |
[MySQL] windows 'mysql'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. (0) | 2022.05.31 |
Comments