RDB(Relational Database)
관계형 데이터베이스는 key-value 형태로 이루어진 데이터들을 테이블(=표)의 형태로 정의하고, 테이블 간의 연관관계를 맺는 방식으로 상호작용할 수 있게 표현한 데이터베이스를 의미한다.
e.g. MySQL, PostgreSQL, Maria DB, Oracle DB
ID | 이름 | 나이 | 파트 | 구분 |
---|---|---|---|---|
1 | 김ㅇㅇ | 20 | 서버 | Lead |
2 | 이ㅇㅇ | 24 | 안드로이드 | YB |
3 | 박ㅇㅇ | 15 | iOS | OB |
4 | 최ㅇㅇ | 43 | 서버 | 명예OB |
RDB는 table, 또는 MxN Matrix이다.
열(Column, 세로)
: ID, 이름, 나이, 파트, 구분와 같이 값들의 속성을 나타내주는 값
행(Row, record, 가로)
: Column에 맞춰 실제 값으로 들어가 있는 가로 줄
고유 식별자
: RDB는 고유 식별자가 필요하다. 위 예시에서는 ID라는 Column이 그 역할을 하고 있음.
Relation
: DB에서 정보를 구분하여 저장하는 기본 단위. RDB에서는 'Table이 릴레이션된다'고 말한다.
Query(질의)
: RDB에 접근하기 위해 SQL이라는 언어를 적절히 사용해 데이터베이스에 접근하고 데이터를 생성/수정/조회/삭제한다. 이렇게 데이터베이스에 접근하기 위해 하는 행위를 Query(질의)라고 한다.
Key
기본키인 PK(Primary Key)와 외래키인 FK(Foreign Key)에 대해 알아보자.
: RDB에서 각각의 행을 식별할 수 있는 Identifier
이름 | 나이 | 파트 | 구분 |
---|---|---|---|
김ㅇㅇ | 20 | 서버 | Lead |
이ㅇㅇ | 24 | 안드로이드 | YB |
박ㅇㅇ | 15 | iOS | OB |
최ㅇㅇ | 43 | 서버 | 명예OB |
최ㅇㅇ | 23 | iOS | OB |
이런 식으로 이름이 같은 데이터가 추가되는 경우, 이름이 식별자가 될 수 없다.
따라서 유일성
과 최소성
을 만족하는 해당 데이터를 구분해줄 값이 필요하다. 그것이 바로 기본키(PK)!
유일성
: 하나의 키 값으로 유일하게 식별할 수 있는 성질최소성
: 키를 구성하는 속성들 중 꼭 필요한 최소한의 속성들로만 키를 구성하는 성질ID | 이름 | 나이 | 파트 | 구분 |
---|---|---|---|---|
1 | 김ㅇㅇ | 20 | 서버 | Lead |
2 | 이ㅇㅇ | 24 | 안드로이드 | YB |
3 | 박ㅇㅇ | 15 | iOS | OB |
4 | 최ㅇㅇ | 43 | 서버 | 명예OB |
5 | 최ㅇㅇ | 23 | iOS | OB |
이처럼 식별자가 될 수 있는 ID Column을 추가해 PK를 만들면 된다.
: 다른 테이블과의 관계를 표현해줄 수 있는 키
관계(Relationship)
Table 간의 관계를 표현하는 방법으로, 일대일 관계, 일대다 관계, 다대다 관계로 표현할 수 있다.
: 테이블 하나의 레코드가 다른 테이블의 하나의 레코드와 연관됨
: 테이블 하나의 레코드가 다른 테이블의 하나 이상의 레코드와 연관됨
: 테이블의 여러 레코드가 다른 테이블의 여러 레코드와 연관됨
참고자료
33기 DO SOPT 서버 파트 2차 세미나 자료(배포 불가)
33기 DO SOPT 서버 파트 3차 세미나 자료(배포 불가)
[DB] 키의 종류, 최소성과 유일성
Google Cloud : 외래 키 관계 만들기 및 관리
FileMaker Pro18Advanced : About Relationships