[Wecode] Database

김택수·2022년 9월 27일
0

Datebase

1. 데이터베이스(Datebase)의 개념

데이터베이스의 정의

컴퓨터 시스템에 저장된 정보나 데이터를 모아놓은 집합이며, 쉽게는 데이터를 많이 모아놓은 베이스라는 뜻으로 데이터베이스라 한다. 이런 데이터들은 보통 데이터베이스 관리시스템(DBMS, Database Management System)으로 제어하며 관리한다.

데이터베이스를 사용하는 이유

데이터베이스는 데이터를 오랜기간 저장하고, 보존하기 위해서 사용한다. 우리가 저장하지 않은 데이터는 삭제되고, 오래 보존할 수 없다. 또한 내가 필요한 데이터를 다시 읽어들일 수 없기 때문에 데이터베이스를 사용한다.

또한, 오래 저장하는 것 뿐 아니라 필요할 때 내가 원하는 자료를 쉽게 읽어내기 위해 체계적으로 관리하는 방법으로 데이터베이스를 사용한다.

2. 관계형 데이터베이스(RDBMS)가 무엇이며 왜 사용하는지

관계형 데이터베이스(RDBMS, Relational DataBase Management System)는 이름대로 데이터 사이에 관계를 기초로한 데이터베이스 시스템이다. 관계형 데이터베이스에서 모든 정보는 테이블과 열(Column)과 행(Row)로 구분해놓은 테이블에 저장된다.

  • 열(Column) : 각 테이블의 항목이름을 의미(id, 제목, 이름 등)
  • 행(Row) : 각 항목들의 실제 값을 의미(1, 위코드, 김택수 등)

관계형 데이터베이스를 사용하는 이유는, 하나의 테이블에 모든 데이터를 저장하면 동일한 정보가 불필요하게 중복되어 저장될 가능성이 크고, 더 많은 디스크를 사용하게 되고, 잘못된 데이터가 저장 될 가능성이 높다.

예를 들면, 아이디가 같은데 이름이 다른 경우 어떤 이름이 같은지 확인 할 수 없는데 테이블을 나눠 Foreign Key로 저장하게 되면 이러한 문제들을 해결할 수 있다.

  • 고유키(Primary Key) : 변하지 않는 고유값으로써 보통 id값을 이야기한다.
  • 외래키(Foreign Key) : 다른 테이블에 있는 Primary Key값을 참조하는 값
    ex) 1번 테이블의 id값을 2번 테이블에서 user_id와 같은 형태로 참조하는 형태

3. 테이블의 관계 - One to One(일대일), One to Many(일대다), Many to Many(다대다)의 예시

One to One(일대일)

테이블 A의 로우와 테이블 B의 로우가 일대일로 매칭되는 관계를 말한다. 쉽게는, 이름테이블과 주민번호테이블이 있다고 가정하면, 각각의 테이블마다 id값이 있을것이고, 하나의 이름엔 하나의 주민번호만 가질 수 있기 때문에 FK(Foreign Key)를 설정하여
하단과 같이 user_id로 서로 하나씩 매칭할 수 있고 이러한 관계를 일대일 관계라고 한다.

One to Many(일대다)

users 테이블의 정보는 변하지 않으나, pets 테이블의 정보는 하나의 user에 여러가지가 적용될 수 있다. 이 경우에는 일대일로 하나의 데이터가 하나의 다른 데이터만을 바라보지 않고, 김코드라는 이름을 가진 users의 id 1번 값에 pets 테이블의 냥돌이와 스위티가 바라보고 있기 때문에 이 경우에는 일대다 관게가 성립한다.

Many to Many(다대다)

한 작가가 여러 책을 쓸 수 있고, 하나의 책은 작가가 여럿이 될 수 있다. 이 경우에는 하나의 데이터가 여러 데이터를 가질 수 있고, 또 그 여러 데이터들은 다른 데이터를 가질 수 있기 때문에 이 경우에는 다대다 관계가 성립한다.

보통 두 테이블을 연결하기 위한 참조값을 가진 테이블이 중간에 생겨서 하단과 같은 모양이 된다.

profile
개발자 키우기 Lv1

0개의 댓글