본문 바로가기
Web

데이터베이스 프로그래밍 기초 (1)

by jaee_ 2021. 9. 27.
본 글을 📚 최범균의 JSP2.3 웹 프로그래밍 을 읽고 정리한 글입니다. 

 

1.1 데이터베이스와 DBMS

우리가 흔히 데이터베이스(Database)라고 부르는 것의 주요 목적은 데이터를 저장했다가 필요할 때에 사용하는 것이다. 데이터베이스를 관리하는 시스템을 DBMS(Database Management System)라고 부르며 주로 사용하는 DBMS로는 오라클, MySQL, MSSQL 서버 등이 있다. 

 

데이터베이스는 데이터를 지속적으로 관리하고 보호하는 것을 주 목적으로 하기 때문에, DBMS는 데이터를 안정적으로 보관할 수 있는 다양한 기능을 제공하고 있다. 예를들어, 데이터의 손실이 발생하면 안 되기 때문에 DBMS는 트랜잭션(Transaction)을 보장하여 데이터의 신뢰성을 높여준다. 이외에도 몇가지 중요한 기능들을 정리하면 아래와 같다. 

  • 데이터의 추가/조회/변경/삭제
  • 데이터의 무결성(integrity) 유지
  • 트랜잭션 관리
  • 데이터의 백업 및 복원
  • 데이터 보안

웹 어플리케이션을 구축할 때 주로 사용하는 데이터베이스는 관계형 데이터베이스이다. 

 

1.2 테이블과 레코드

RDBMS에서 데이터를 저장하는 장소를 테이블(table)이라고 한다. 테이블은 어떤 데이터를 저장하며 그 데이터의 길이는 최대 몇 글자인지 등의 정보를 갖고 있는데 이처럼 테이블의 구조와 관련된 정보를 테이블 스키마(Schema)라고 한다. 

컬럼 이름 컬럼 타입 길이
MEMBERID VARCHAR 10
PASSWORD VARCHAR 10
NAME VARCHAR 20
EMAIL VARCHAR 80

위의 표는 회원정보를 저장하는 테이블의 스키마를 나타낸 것이다. 스키마는 하나의 데이터에 대한 구조를 나타낸다. 위의 표는 '회원 정보'에 대한 구조를 보여주고 있다. 여기서 'MEMBERID, PASSWORD, NAME, EMAIL'의 칼럼 데이터 모음을 레코드(record)라고 부른다. 하나의 테이블은 여러 개의 레코드로 구성된다. 각 레코드는 테이블의 스키마에 정의된 컬럼에 해당하는 값을 가진다. 이 레코드, 컬럼 그리고 테이블을 사용해서 데이터를 저장하고 조회하는 작업을 수행하는 것이 바로 데이터베이스 프로그래밍이다. 

 

1.3 주요키(Primary Key)와 인덱스(index)

테이블에 저장한 레코드를 사용하려면 각 레코드를 구분하는 방법이 필요하다. 레코드를 미리 특정한 값을 이용하여 정렬해 놓으면 빠르게 구분하며 레코드를 찾을 수 있을 것 이다. 이런 목적으로 사용할 수 있는 것이 바로 주요키(Primary Key) 컬럼이다. 주요키 컬럼은 유니크한 값을 가진다. 만약 위의 테이블에서 MEMBERID가 중복허용이 되지 않는다면 MEMBERID를 주요키로 사용할 수 있다.

 

주요키와 더불어 레코드를 분류할 때 사용되는 것이 인덱스(index)이다. 인덱스는 데이터의 순서를 미리 정렬해서 저장할 때 사용된다. 레코드를 쉽게 찾을 수 있도록 미리 정리된 표를 만들어두는데, 이것이 바로 인덱스이다. 인덱스는 중복된 값에 대한 정렬이 가능하지만 주요키는 중복된 값을 가질 수 없다는 차이가 있다. 

 

1.4 데이터베이스 프로그래밍의 일반적 순서

DBMS의 사용 순서

데이터베이스를 사용하려면 먼저 데이터베이스에 연결해야한다. 그 후 데이터베이스에 데이터를 삽입, 삭제, 갱신 작업을 수행한다. 원하는 작업을 마쳤으면 연결을 종료한다. 2~3번은 작업을 완료할 때까지 반복해서 수행할 수 있다. 데이터베이스 프로그래밍의 위 네단계 과정은 자바의 데이터베이스 프로그래밍인 JDBC 프로그래밍에서도 동일하게 적용된다. 

 

1.5 데이터베이스 프로그래밍의 필수 요소

  • DBMS : 데이터베이스를 관리해주는 시스템
  • 데이터베이스 : 데이터를 저장할 공간
  • DBMS 클라이언트 : 데이터베이스를 사용할 어플리케이션

앞에서 말했듯이 DBMS는 오라클, MYSQL,,등 관리 프로그램을 말한다. DBMS가 필요하다는 것은 오라클, MYSQL 등 관리 프로그램을 설치해야 한다는 의미다.

데이터를 저장하려면 데이터를 저장할 공간인 데이터베이스가 필요하고 데이터베이스를 생성하는 방법은 DBMS마다 다르므로 실제로 사용할 DBMS에 맞게 생성해주어야 한다. 

 

마지막으로 DBMS 클라이언트가 필요한데 DBMS를 설치할 때 클라이언트가 함께 설치되기도 하며, 클라이언트만 따로 설치할 수도 있다. 자바에서는 JDBC Driver가 클라이언트의 역할을 대신한다. 

댓글