관계형 데이터베이스
최근, 데이터베이스 과제를 풀며 기초지식이 너무 부족하다고 느껴 블로깅을 하자 마음을 먹었다. 데이터베이스 공부를 하다보면 꼭 나오는 용어인 관계형 데이터베이스! 굉장히 중요한 느낌인데 자료가 너무 방대해서 오히려 공부하기 더 어렵다... 차근차근 하나씩 정리해보자!
관계형 데이터베이스?
현재 가장 많이 사용되고 있는 데이터베이스의 한종류이며, 테이블(table)로 이루어져 있으며, 해당 테이블은 키(key) & 값(value) 형태다. 데이터의 종속성을 관계로 표현하는것이 관계형 데이터베이스의 특징이다. 쉽게 생각하면 엑셀 표에 데이터를 저장하는 느낌이다. 엑셀로 표를 만들때처럼, 각 데이터 항목들은 행(row)에 저장되고, 항목의 속성은 열(column)에 저장된다. 데이터베이스에서 열은 입력되는 데이터의 유형을 정한다.
위 그림을 참고하면 나와 있지만, 행과 열은 여러가지 이름으로 불린다. 해당 이름들은 관계형 데이터베이스에 관련된 대표적인 용어이니 숙지하는것이 좋다!
-
열(column) : 각 열은 유일한 이름을 가지며, 자신만의 타입을 가진다. 필드(field) 또는 속성(attribute)라고도 불린다.
-
행(row) : 관계된 데이터의 묶음이다. 한 테이블의 모든 행은 같은 갯수의 열을 가진다. 튜플(tuple) 또는 레코드(record)라고도 불린다.
-
키(key) : 행의 식별자로 이용된다.
그렇다면 우리는 왜 관계형 데이터베이스를 쓰는걸까? 관계형 데이터베이스의 특징을 이해하면 해당 물음에 대한 답이 조금 나오지 않을까? 데이터베이스의 관계에 대해 설명하기 전에 관계형의 특징을 먼저 알아보자!
관계형 데이터베이스는 데이터의 분류, 정렬, 탐색의 속도가 빠르며, 오랫동안 많은곳에서 사용된만큼 신뢰성이 높고, 어떤 상황에서도 데이터의 무결성을 보장한다. 그러나 기존에 작성된 스키마를 수정하기 어려우며, 데이터베이스의 부하를 분석하는것이 어렵다는 단점이 있다.
관계형 데이터베이스의 관계
이름부터 관계형인 이 데이터베이스는 테이블 간의 관계(relationship)를 나눈다. 이것의 종류는 관계를 맺는 테이블의 수에 따라 나눠진다. 관계형 데이터베이스는 관계를 나타내기 위해 외래키(foreign key)를 사용한다.
※ 외래키는 한 테이블의 키 중에서 다른 테이블의 행을 식별할 수 있는 키
관계의 종류는 일대일(one-to-one) 관계 / 일대다(one-to-many) 관계 / 다대다(many-to-many) 관계가 있다.
해당 부분은 조금 더 공부해서 따로 다뤄보도록하겠다.
스키마는 무엇일까?
과제를 하다가 다른 동기분들에게 물어보면 지겹게 듣는 용어가 있는데, 그것은 바로 스키마다. 데이터베이스에 대한 이해가 떨어진 상황에서 스키마 이야기를 들었을땐 진짜 머리에 물음표가 가득찼었다. 아직도 깊은 이해는 부족하지만 그래도 이제 기본적인 설명은 가능하다.
스키마는 필드의 제약사항이다. 필드는 데이터의 유형뿐만 아니라 제약사항도 지정할 수 있는데 이러한 제약사항을 스키마라도 부른다. 사전적인 의미로는 데이터베이스의 구조와 제약 조건에 관한 전반적인 명세를 기술한 메타데이터의 집합이다. 스키마는 사용자의 관점에 따라 외부 스키마, 개념 스키마, 내부 스키마로 나눌 수 있다. 스키마는 시간에 따라 불변인 특성을 가지며, 데이터의 구조적 특성을 의미하기도 한다. 인스턴스에 의해 규정되는 특징이 있다.
참고자료 : www.tcpschool.com/mysql/mysql_intro_relationalDB
코딩교육 티씨피스쿨
4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등
tcpschool.com