TIL 10. Database

주민콩·2020년 11월 1일
0

Database?

  • 데이터를 저장 및 보존하는 시스템

  • Application에서는 데이터가 메모리 상에서 존재하지만, 해당 애플리케이션이 종료되면 메모리에 있던 데이터들은 다시 읽어 들일 수 없기 때문.

  • 데이터를 장기 기간 동안 저장 및 보존하기 위해 데이터 베이스를 사용하는 것.

관계형 데이터베이스 (RDBMS, Relational Database Management System)

  • 이름 그대로, 관계형 데이터 모델에 기호를 둔 데이터베이스 시스템을 말한다.

  • 관계형 데이터란 데이터를 서로 상호 관련성을 가진 형태로 표현한 데이터를 말한다.

특징

-모든 데이터들은 2차원 테이블(table)들로 표현된다.

-각각의 테이블은 칼럼(column)과 row(로우)로 구성된다.

컬럼(column)과 로우(row)은 무엇인가?

-칼럼은 테이블의 각 항목을 말한다. 행으로 생각하면 된다.

-로우는 각 항목들의 실제 값들을 이야기한다. 열로 생각하면 된다.

-각 로우는 저만의 고유 키(Primary Key)가 있다. 주로 이 primary key를 통해서 해당 로우를 찾거나 인용(reference)하게 된다.

-각각의 테이블들은 서로 상호 관련성을 가지고 서로 연결될 수 있으며, 크게 3가지 종류가 존재한다.

1. One To One

테이블 A의 로우와 테이블 B의 로우가 정확히 일대일 매칭이 되는 관계를 one to one 관계라고 한다.

2. Many to Many

어떻게 테이블과 테이블을 연결하는가?

  • Foreign key(외부 키)라는 개념을 사용해서 연결한다.

  • 앞서 본 one to one 예에서 user_profiles 테이블의 user_id 칼럼은 users 테이블에 걸려있는 외부 키라고 지정한다.

  • 즉 데이터베이스에게 user_id의 값은 users 테이블의 id 값이며 그러므로 users 테이블의 id 칼럼에 존재하는 값만 생성될 수 있다.

왜 테이블들을 연결하는가?

  • 하나의 테이블에 모든 정보를 다 넣으면 동일한 정보들이 불필요하게 중복되어 저장된다.

  • 여러 테이블에 나누어서 저장한 후 필요한 테이블끼리 연결시키면, 중복된 데이터를 저장하지 않음으로 디스크를 더 효율적으로 쓰고, 또한 서로 같은 데이터이지만 부분적으로 틀린 데이터가 생기는 문제가 없어지기 때문이다

profile
코딩하면서 기록하는 메모장 ᰔ

0개의 댓글