Relational DataBase Management System: 관계형 모델을 기반으로 하는 데이터베이스 관리 시스템
Relational DB = 모든 데이터를 2차원의 테이블 형태로 표현
테이블이 서로 연관되어 있어 일반 DBMS보다 효율적으로 데이터를 저장, 구성 및 관리할 수 있다.
정규화를 통해 데이터의 중복성을 최소화, 트랜잭션을 수행하는 것이 더 쉽다
데이터의 원자성, 일관성, 격리 및 내구성을 유지하며 데이터의 무결성을 높인다.
EX: MSSQL, MySQL, Oracle
테이블(Table) = relation
- 관계형 데이터베이스에서 정보를 구분하여 저장하는 기본 단위
스키마(Schema) (외부 스키마 / 개념 스키마 / 내부 스키마)
- 데이터베이스의 구조를 전반적으로 기술한 것
- 데이터베이스의 엔티티와 그 엔티티들 간의 관계를 정의
슈퍼키 (super key): 한 릴레이션 내의 속성들의 집합으로 이루어진 키로, 유일성은 만족시키나 최소성은 아니다.
후보키 (candidate key): 기본키로 사용할 수 있는 속성들, 유일성과 최소성을 만족한다.
기본키 (primary key): 후보키 중 선택한 메인키로 한 릴레이션에서 튜플을 구별하는 키이다. 중복될 수 없음
외래키 (foreign key) : 다른 릴레이션간의 기본키를 참조 하는 속성으로 테이블들의 관계를 나타내기 위하여 사용
참고 링크 : https://hoban123.tistory.com/147, https://jhnyang.tistory.com/71
1:1 관계
1:N 관계
PK
를 자식 테이블에 FK
로 집어 넣어 관계를 표현N:M 관계
- 관계를 가진 양쪽 엔티티 모두에서 1:N 관계
를 가지는 것
- N:M 관계
는 서로가 서로를 1:N 관계
, 1:M 관계
로 갖고 있기 때문에, 서로의 PK
를 자신의 외래키 컬럼으로 갖고 있으면 된다
![](https://velog.velcdn.com/images%2Fkim_sunnnny%2Fpost%2Fdefa3f8d-d000-4cab-b44e-693e0c219a04%2Fimage.png)
모르거나 해결하지 못한 것들을 정리해서 QnA 채널이나 스터디를 통해 같이 해결해보아요!
🧐 추가적으로 알아보면 좋을 SQL 함수
by 스누피(Snoopy)