-
[DB] RDBMSProgramming/etc 2022. 9. 13. 14:51
관계형 데이터베이스
데이터베이스란 '구조화된 정보 또는 데이터의 조직화된 모음' 이다. 그렇다면 관계형 데이터베이스란 무엇일까?
관계형 데이터베이스란 데이터들을 2차원 배열과 같은 테이블에 저장하고 관리하는 것이다. 이는 서로 다른 데이터 구조가 어떻게 관련되어 있는지 쉽게 파악하고 이해할 수 있다는 장점을 가지고 있다.
테이블 만들기
학생 수강신청 관리를 하는 테이블을 만들어 본다.
테이블은 다음과 같은 조건을 가지고 있다.
- 각 학생들은 수학, 영어, 국어, 과학, 국사 중 최소한 세 과목을 수강 - 학생 수는 3명이다.
대부분의 경우 2가지 방식으로 테이블을 작성한다.
# 1. 2차원 테이블
성명 수학 영어 과학 국어 국사 김** o o o 이** o o o 박** o o o 위 방법은 x,y 좌표 체계를 이용한 방식이다. o 각각의 위치를 x,y 좌표 값으로 볼 수 있다. 또한, o 를 bit로 생각 할 수도 있는데, o 가 있는 곳은 bit 1, 없는 곳은 bit 0 으로 간주하여 이진화된 것으로 생각해 볼 수도 있다.
# 2. 레코드
성명 과목 김** 수학,국어,영어 이** 수학,영어,국사 박** 영어,과학,국어 위 방법은 레코드형 방식이다. 학생이 수강하는 과목을 하나의 컬럼에 전부 담는다.
다음은 테이블 변경시 생각해보아야 할 점이다.
만일, 같은 과목을 담당하는 선생님이 두명 이상으로 늘어난 다면 테이블의 구조는 어떻게 변할까?
# 1. 2차원 테이블
성명 수학(김선생) 수학(이선생) 영어 과학 국어 국사 김** o o o 이** o o o 박** o o o # 2. 레코드형
성명 과목 김** 수학(김선생),국어,영어 이** 수학(이선생),영어,국사 박** 영어,과학,국어 DB 접근 사용자의 입장에서 보면 변경 전 테이블보다는 복잡한 느낌이 들지만, 크게 문제가 되지는 않는다.
그렇다면, 프로그래머의 입장에서도 크게 차이가 없을까?
더보기프로그래머의 입장에서 보면, 첫번째 2차원으로 이루어진 데이터베이스가 훨씬 불편하다.
만일, 변경 테이블과 같이 과목을 담당하는 선생님이 늘어날 때, 2차원 DB의 경우 컬럼이 추가된다. DB에서 내용을 읽어와 웹 상에서 보여주는 프로그램을 만든다고 가정 하였을 때, 컬럼이 1개 추가 될 때 마다 프로그래머는 코드를 수정해야 한다. 만일, 각 과목의 선생님이 2명씩으로 전부 늘어난다면 프로그래머는 코드 전체를 수정해야 한다.
반면, 레코드형 DB의 경우는 과목 컬럼의 내용이 복잡해 질 뿐, 테이블 구조체는 변하지 않는다. 즉, 유지/보수 측면에서 첫번째 DB보다 유리하다고 할 수 있다.
'Programming > etc' 카테고리의 다른 글
멀티 캠퍼스 강의 (0) 2024.11.25