Today I learn... "Data Base"

mr.ginger·2021년 5월 17일
0

Data Base란?

Data base는 일반적으로, 컴퓨터속에 저장 된 정보나 데이터를 모아둔 집합을 이야기 한다.

이 데이터베이스는 데이터베이스 관리 시스템(DBMS)으로 제어 되는데, 데이터와 DMBS, 관련 어플리케이션들을 통칭 데이터 베이스 시스템, 혹은 더 줄여서 데이터베이스라고 통칭 되기도 한다.(oracle)

데이터베이스는 크게 나누어 두종류로 나누어진다.
하나는 관계형 데이터베이스이고, 다른 하나는 비관계형 데이터베이스이다.

관계형 데이터베이스는 관계형 데이터모델을 기반으로 한 데이터 시스템을 말하는데,

관계형 데이터모델이란,
데이터를이 서로 어떤 관계인지를 나타낸 데이터를 이야기한다.

물론 비 관계형 데이터베이스는 이와 반대로, 서로간의 관계가 없는 데이터베이스이다.
관계형 데이터베이스는 mySQL등 SQL 데이터베이스가 있고,
비관계형 데이터베이스는 MongoDB등 NoSQL 데이터베이스가 있다.

비관계형 데이터베이스는 다음에 알아보기로 하고, 오늘은
관계형 데이터베이스에 대해 먼저 다뤄보려 한다.

관계형 데이터베이스는 어떻게 나타내는가?

관계형 데이터베이스를 나타낼때는 2차원의 테이블로 나타내게 된다.

이렇게 흔히 보던 엑셀시트에 데이터를 저장하는것처럼 2차원의 테이블로 저장 하게 되고, 각 테이블은 행(row)과 열(column)으로 구성된다.

열에는 테이블들의 각 항목들을 이야기하고, 행에는 각 항목들이 가지고 있는 실제값을 입력하게 된다.

이때, 각각의 행에 들어가는 항목은 저마다 고유한 key를 가지고 있는데, 이것이 Primary Key이다.

이 키는 고유한 키이기 때문에, 해당 행을 찾거나 데이터를 가져오는곳에 사용 할 수 있다.

데이터 연결의 종류

데이터들은 상호관련성을 가지고 있으며, 데이터베이스 안에서 데이터들의 연결을 나타내는 종류는 3종류가 있다.

one to one

테이블 A와 B, 두개의 테이블이 있다고 하자.
테이블 A의 행에 있는 데이터(실제값)이 B의 행에 있는 데이터(실제값)과 일치하는 데이터 연결을 one to one의 관계라 한다.

one to many

아까전과 같이 2개의 테이블이 있다고 할때, one to one이 일대일로 매칭되었다 하면, one to many는 테이블 A의 데이터 하나가 여러개의 테이블 B의 데이터와 매칭 될 수 있는 관계를 나타낸다.

many to many

이번엔 one to many의 데이터 연결을 연상해보자.
one to many는 하나의 테이블 A의 데이터가 테이블 B의 여러 데이터와 매칭 되었다 하면, many to many는 두개의 테이블에 있는 여러 데이터가 다른 테이블의 여러 데이터와 매칭이 되는 데이터 연결을 의미한다.

이때는 매칭 되는 데이터들을 바로 매칭 시키지 않고, 테이블을 하나 더 둬서 정리하는것이 특징이다.

어떻게 데이터의 관계를 나타내는가

데이터간의 관계를 나타내기 위해서는 우선 Foreign key(외부키) 를 먼저 이해해야 한다.
외부키는 한 테이블의 키에서, 다른 테이블의 키를 식별가능한 키를 이야기 하는데, 외래키는 서로가 같은 데이터타입과 값을 가지고 있어야 한다.
즉, 만약 외래키가 id라고 한다면, 둘다 id에 INT타입이어야 한다는 것이다.

이 외부키를 사용하여, 여러 테이블을 엮어서 데이터간의 관계를 나타내는것이다.

데이터를 연결해서 저장하는 이유는 무엇인가

만약 우리가 하나의 테이블에 모든 정보를 다 넣는다면, 동일한 정보가 들어가거나 잘못된 정보가 들어갈 가능성이 높고,
그걸 읽기위해 불필요한 메모리가 소모되게 된다.

이러한 일을 막기위해 정보를 여러 테이블에 나눠서 저장하고, 이를 연결해서 저장하여 중복되는 정보의 저장을 막고, 효율적으로 데이터를 처리하는것을 정규화라고 한다.

0개의 댓글