데이터베이스

더미벨·2022년 5월 30일
1

데이터란?


데이터란 수, 단어, 이미지, 영상 등의 형태로 된 의미 단위로, 이러한 데이터들을 모아놓은 것을 데이터베이스라고 한다.

예를 들어, 스타벅스 홈페이지의 음료 리스트 중 이미지를 클릭하면 상세페이지로 이동하는 것도 데이터들의 상호작용이라고 볼 수 있다.

웹클라이언트, 웹어플리케이션서버, 데이터베이스


여기서 웹클라이언트는 프론트엔드 전체라고 볼 수 있다. 클라이언트가 웹서버에 상세정보를 요청하면, 웹서버(백엔드)는 다시 데이터베이스에 필요한 정보를 요청한다.
그럼 데이터베이스는 다시 웹서버에 필요한 정보를 응답하고, 웹클라이언트에게 최종적으로 상품의 상세정보를 응답하게 된다.


데이터베이스란?


데이터베이스란 컴퓨터 시스템에 저장된 정보나 데이터를 모두 모아 놓은 집합을 의미하며 데이터들은 DBMS(Database Management System)을 통해 관리된다.

즉, 데이터베이스는 데이터를 저장한 하드웨어를 부르는 말이기도 하면서, 데이터베이스를 관리하는 시스템 자체를 통칭한다. ex)MySQL

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

체계적으로 보존하고 관리하기 위해 → 즉, 꺼내쓰기 쉽다.

필요할 때 언제든 내가 원하는 자료를 쉽게 읽어낼 수 있어야만 의미있는 정보라고 할 수 있다.

만약, 데이터를 데이터베이스에 저장하지 않고 일반 메모리에 저장한다고 가정할 때, 필요한 정보를 찾기 위해서는 많은 시간이 소요될 것이다.

데이터베이스에는 데이터가 아무렇게나 어질러 저장되지 않고 체계적으로 정리되어 입력된다. 따라서 찾고자 할 때 어렵지 않게 정보를 얻을 수 있다.


2. 관계형 데이터베이스(RDBMS)

데이터를 마구잡이로 저장하면 의미가 없고 서로 관계를 맺고 있을 때 의미가 있는데, 관계형데이터베이스(ex. MySQL)를 통해 이것이 가능하다.

RDBMS란 관계형 데이터 모델에 기초를 둔 데이터베이스 시스템으로 관계형 데이터란 데이터가 서로 상호관련성을 가진 형태로 표현한 데이터를 말한다.

1) 관계형 데이터베이스는 2차원테이블들로 표현할 수 있어야 한다.

관계형 데이터베이스는 열(column)행(row)으로 이루어져있다. column을 통해 먼저 항목을 생성하고 row를 통해 각 column에 맞는 데이터를 생성한다.

2) 테이블의 각 행(row)는 자신만의 고유 키가 있다.

각 row는 다른 row와 겹치지 않는, 하나의 데이터만 정확하게 지칭할 수 있는 고유한 번호를 가지고 있다. →Id.
primary key를 통해 특정 로우를 찾거나 참조하는 것이 가능하다.

3) 각각의 테이블들은 서로 상호 관련성을 가지고 서로 연결될 수 있다.

각각의 테이블들이 완전히 독립적이지 않고, 테이블A와 테이블B가 서로 연관된 사이라는 뜻.


3. 관계 유형

1) 일대일 유형

ex) 사람 - 핸드폰번호

하나의 a테이블 데이터는 오직 하나의 b테이블 데이터와 연결되고, 하나의 b테이블 데이터 또한 하나의 a테이블 데이터와 연결된다.
그렇기 때문에 테이블을 합치는 것이 가능하다. user id가 겹치는 순간 일대다가 되기 때문에 각각의 값들은 절대 중복될 수 없다.

2) 일대다 유형

ex) 한명의 견주가 여러마리의 반려동물을 키움

일대다 유형에서는 user id가 중복될 수 있다.
한 테이블의 row에 다른 테이블의 로우 여러개를 연결하는 것이 가능하다.

3) 다대다 유형

ex) 작가 - 책

한 작가는 여러 권의 책을 쓸 수 있다. 한 책에도 작가는 여러명이 될 수 있다. 즉, 양방향으로 일대다가 될 때 다대다가 된다.

하지만, 데이터베이스를 저장할 때 하나의 셀에는 하나의 데이터만 들어가야한다.
따라서 정규화과정을 거친다.

저자와 책에 대한 테이블은 따로 있고, 그 둘의 관계를 정의하는 테이블을 따로 만들어준 뒤 작가id와 책id를 연결시켜주는 방식으로 관계를 형성한다.

profile
프론트엔드 개발자👩‍💻

0개의 댓글