❯ Relational database (관계형 데이터베이스)
관계형 데이터베이스는 테이블(table)들이 다른 테이블과 관계를 맺고 모여있는 집합체로 이해할 수 있다.
여기서 테이블은 사전에 정의된 열의 데이터 타입에 맞는 데이터가 행으로 저장된 것을 의미한다.
<관련 용어>
- 열(column, field) : 테이블의 한 열을 나타내며 정해진 타입을 갖는다. 필드 또는 속성이라고도 불린다.
- 행(row) : 관계된 데이터의 묶음을 의미한다. 한 테이블은 같은 수의 열을 가지며 튜플, 레코드라고도 불린다.
- 값(value) : 각각 행과 열에 대응하는 값을 가진다. 열의 타입에 맞는 값을 가져야한다.
- 키(key) : 테이블에서 행의 식별자로 이용되는 열을 키(key) 또는 기본키(Primary key)라고 한다. 기본키는 null 값을 가질 수 없으며 하나만 존재한다.(반드시 한 열만이 기본키가 될 수 있는것은 아니다. 여러 열을 합쳐서 복합키로 사용할수도 있다.) 다른 테이블을 참조하기 위한 식별자로 사용되는 열을 외래키(Foreign key)라고 하며 외래키는 여러개가 될 수 있다.
- 스키마(schema) : 테이블을 디자인하기 위한 청사진을 의미한다. 테이블 각 열에대한 항목과 타입 뿐만아니라 기본키와 외래키도 나타내야한다.
- 관계(relationship) : 테이블간의 관계는 관계를 맺는 테이블 수에 따라 1:1(일대일), 1:N(일대다), N:M(다대다) 관계로 구분된다.
과제 - 인스타그램 스키마 디자인
인스타그램을 예시로 게시물 작성, 댓글달기 및 좋아요 기능, 해시태그 기능, follow 기능에 대한 스키마를 작성해보았다.
필요한 테이블을 정의하고 테이블간의 관계를 중점적으로 작성하였다.
참고자료
TCPschool : http://www.tcpschool.com/mysql/mysql_intro_relationalDB
특정 기능을 구현한다고 할 때, 어떤 특성이 필요하고 어떤 관계를 통해 구성되는지 뼈대를 작성하는것이 중요하다는걸 알 수 있었다.
다른 학습자분들의 과제에서 내가 생각하지 못했던 부분들을 보면서 많이 배울 수 있었다.
여러 사이트를 참고하면서 해당 기능을 어떻게 구현할 수 있을지 생각해보고, 구조를 그려보는 연습이 필요할 것 같다.
'부트캠프 개발일기 > Database' 카테고리의 다른 글
33일차: 데이터베이스 설계 및 SQL 심화 (0) | 2023.03.30 |
---|---|
31일차: SQL, ACID, MySQL 설치 및 실행 (0) | 2023.03.28 |