데이터베이스의 구조에 대해서 알아보도록 하겠습니다.
데이터베이스는 우리가 수많은 정보를 저장하고 유지와 보수를 하는 엄청나게 거대한 창고라고 보시면 됩니다.
하지만 엄청나게 거대한 창고라도 알아보기 힘들게 되어있고 종류별로 정리가 안 되어 있다면 원하는 내용을 찾기 굉장히 힘들겠죠
나중에 유지와 관리 및 보수를 하는 과정에서도 굉장히 손이 많이 가게 되는 힘든 상황이 벌어
질 수도 있습니다.
그렇기 때문에 데이터베이스는 체계적으로 정리하고 깔끔한 구조로 관리하는 것이 아주 중요합니다.
그렇다면 데이터베이스는 어떻게 생겼을까요?
데이터베이스는 정보를 어떻게 저장하고 활용하느냐에 따라 다양한 방식으로 나뉠 수 있습니다.
예를 들어보도록 하겠습니다.
첫 번째 예시는 우리가 쿠키를 만든다고 해보겠습니다.
간단하게 설명을 해보자면 밀가루와 버터 같은 재료를 활용해서 반죽을 만든 후에 모양을 잡고 구우면 쿠키가 완성이 되겠죠?
두 번째 예시는 우리가 카페라테를 만든다고 해보겠습니다.
일단 먼저 우유와 에스프레소 샷 스팀기 등이 필요하겠군요
에스프레소 샷을 내리고 샷이 추출되는 동안 우유를 데워서 따듯하게 만든 후에 우유와 샷을 넣어주면 따듯한 카페라테가 완성되겠죠
이렇게 두 개의 예시 "따듯한 카페라테 만들기"와 " 쿠키 만들기"로 예시를 나눠서 설명해도 과정이 다르고 필요한 재료도 다릅니다.
자 다시 우리가 원래 하던 얘기인 데이터베이스 구조로 돌아가 보겠습니다.
예시를 설명하면서까지 전달하고자 했던 내용은 "우리가 어떻게 데이터를 어떻게 사용하느냐에 따라 구조를 생각해 볼 필요가 있습니다."
데이터를 작성하는 표와 구조는 대부분 아래와 같이 비슷하다고 생각하시면 됩니다.
다만 우리가 어떻게 사용하느냐에 따라 추가 요소가 필요할 수 있겠죠?
데이터베이스의 주요 구조는 아래와 같습니다.
테이블 (Table)은 데이터를 저장하는 표입니다.
행(Row), 또는 레코드(Record) 하나의 데이터 단위를 나타냅니다.
열(Column) 또는 필드(Field) 데이터의 종류를 나타냅니다.
키(Key) 데이터를 구별하는 특별한 값입니다.
그럼 먼저 테이블에 대하여 알아보도록 하겠습니다.
데이터베이스에서 테이블은 표를 사용해서 데이터를 저장합니다.
자 그럼 어떤 표냐? 이렇게 물어보신다면 우리 주변에서 가장 쉽게 볼 수 있는 표가 하나 있지요
바로 엑셀입니다.
간단하게 표를 이용해서 데이터를 작성해 보겠습니다.
각 줄을 보도록 하겠습니다.
먼저 첫 번째 이미지를 보면 줄에 가장 첫 번째 줄(Row)에는 학번, 이름, 나이, 반에 대한 정보가 있습니다.
그리고 그 아래 줄에는 101, 지훈, 12, 06월01일 이렇게 101번 학생 지훈이의 정보가 있죠
첫 번째 줄(Row)에는 몬스터가 가지고 있어야 하는 고유 키값, 이름, 체력, 마법력, 공격력, 방어력, 이동속도, 스킬 1, 스킬 2, 보유 경험치 등이 있습니다.
두 번째 줄을 보면 100101이라는 키값을 시작해서 고블린이라는 몬스터가 가지고 있어야 하는 정보가 나열되어 있습니다.
(이해를 돕기 위해 간략하게 작성한 표이므로 양해 바랍니다.)
자 위에서 설명한 줄(Row)에는 학생과 몬스터에 대한 정보가 하나씩 나열되어 있습니다.
그렇기 때문에 데이터베이스에서 하나의 행, 한 개의 Row는 데이터 조각이라고 할 수 있습니다.
그렇다면 열(Column)은 어떤 걸 뜻하게 될까요?
열(Column)은 정보의 종류를 나타냅니다. 위에서 이해를 돕기 위해 작성했던 표를 다시 봐볼까요?
가장 첫 번째 나오는 학번, 이름, 나이, 반이 있습니다.
하나하나의 열(Column)이 특정 정보를 가지고 있습니다. 그렇기 때문에 비슷한 데이터를 쉽게 찾을 수 있도록 도와줍니다.
우리가 만약 이름만 검색하고 싶다고 한다면 B 열을 전체 선택한 다음에 찾고자 하는 학생의 이름을 검색하면 나오게 되는 걸 생각하시면 됩니다.
자 이제 가장 중요한 Key 값입니다.
모든 Key 값은 절대로 중복되면 안 됩니다.
자 왜일까요?
이렇게 됐을 때 어떤 정보를 보고 판단을 할 수 있을까요?
우리가 데이터를 불러와야 하는데 그럼 지훈이는 1반일까요? 9반일까요? 어떤 정보를 출력하고 사용해야 할까요?
이건 단적인 예시로 간단하게 보여드린 상황입니다. 같은 키값을 사용하면 안되는 예시입니다.
하지만 Key 값이 다르다면 구분이 가능하겠죠
아 101번은 1반 지훈이고 102번은 9반 지훈이구나?? 이렇게 쉽게 구분이 가능하게 되며, 활용도 가능해집니다.
간략하게 표를 활용해서 데이터베이스를 활용하는 방법을 살펴봤는데요 그럼 데이터베이스 구조를 사용하게 되면 큰 장점은 무엇이 있을까요?
가장 중요한 점은 데이터베이스 구조를 잘 만들고 나면 "정보를 빠르고 효율적으로 관리할 수 있다" 이게 바로 중요한 사항입니다.
위에서 예시를 든 것처럼 101번 지훈이 102번 지훈이가 있더라도 학번으로 검색하게 되면 어떤 지훈이를 나타내는지 찾을 수 있게 됩니다.
그리고 각 열(Column)에 필요한 정보만을 보유하고 있기 때문에 체계적으로 정리되어 있기 때문에 정보를 보고 혼동을 하지 않을 수 있게 됩니다.
또한 추가로 필요한 정보가 있는 경우 연결해서 사용할 수 있습니다.
위에서는 학번, 이름, 나이 반만 작성된 데이터를 보여드렸지만 기준으로 구분하게 된다면 학생의 성적까지 연결하여 사용할 수 있습니다.
지금까지 데이터베이스의 구조에 대하여 간략하게 알아봤습니다. 읽어주셔서 감사합니다.
함께 읽으면 좋을만한 글을 추천해드립니다.