본문 바로가기
Dev/Database

데이터베이스 프로그래밍

by vellahw 2022. 9. 5.

 

1. 데이터베이스와 DBMS

DBMS(Database Management System)란 데이터베이스를 관리하는 시스템을 말한다.

널리 사용되는 DBMS로는 오라클, MySQL, MS SQL 등이 있다. 

 

<DBMS의 주요기능>

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

 

데이터베이스의 종류에는 관계형 데이터베이스, 객체지향 데이터베이스, 계층형 데이터베이스 등 여러 형태가 존재하는데

가장 많이 사용되는 종류는 관계형(Relational) 데이터베이스(RDBMS)이다.

오라클, MySQL, MS SQL은 모두 관계형 데이터베이스를 지원하고 있다.

 

 

2. 테이블과 레코드

RDBMS에서 데이터가 저장되는 가상의 장소를 테이블이라고 한다.

테이블은 어떤 데이터를 저장하고 그 데이터의 길이는 최대 몇 글자인지 등의 정보를 가지고 있는데, 이런 테이블 구조와 관련된 정보를 스키마(schema)라고 한다.

테이블의 구조는 각각의 정보를 저장하는 칼럼과 칼럼 타입, 칼럼의 길이로 구성 된다.

칼럼 이름 / 타입 (길이)

 

 

칼럼의 모음을 레코드(record)라고 하며 하나의 테이블은 여러개의 레코드를 갖는다.

노랗게 줄 친 각각의 행이 레코드

 

이들 레코드와 칼럼, 테이블을 사용해서 데이터를 저장하고 추출하는 작업을 수행하는 것이 데이터베이스 프로그래밍이다.

 

 

3. 주요키(Primary Key)와 인덱스(Index)

주요키(Primary Key)란  각각의 레코드를 구별하기 위해서 사용되는 것을 말한다.

하나의 테이블에 저장된 모든 레코드가 서로 다른 값을 갖는 칼럼을 의미하며 회원 아이디와 같이 서로 다른 값(중복X)을 가져야 하는 것이 주요키로 사용된다.

sql developer에서 테이블 생성시 Primary Key 사용

 

인덱스(Index)란 레코드를 분류할 때 사용되는 것을 말한다.

인덱스는 데이터의 순서를 미리 정렬해서 저장할 때 사용된다.

예를 들어, 도서관은 보통 책의 이름에 따라서 책의 위치를 정리해놓는데 이렇게 함으로써 책 이름만으로도 쉽게 책의 위치를 찾을 수 있다. 이와 비슷하게 레코드의 특정 칼럼을 사용하여 레코드를 쉽게 찾을 수 있도록 미리 정리된 표를 만들어 둔 것이 인덱스이다.

주요키도 인덱스의 한 종류이며 인덱스는 중복된 값에 대한 정렬이 가능하지만 주요키는 중복된 값을 가질 수 없다는 차이가 있다.

 

예를 들어 MEMBERID 칼럼은 모든 레코드가 서로 다른 값을 가지며 주요키로 사용되지만, NAME 칼럼의 경우는 각 레코드가 같은 값을 가질 수 있다. 그런데 회원 이름으로 데이터를 조회하는 경우도 많으므로 이런 경우 회원 이름 칼럼을 사용한 인덱스를 생성하면 좀 더 빠르게 데이터를 조회할 수 있게 된다.

 

 

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

  1. DBMS 클라이언트와 DBMS를 연결 시킨다.
  2. 명령어를 전송한다.
  3. DBMS가 결과를 전송한다.
  4. 연결을 종료한다.

 

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

  • DBMS: 데이터베이스를 관리해주는 시스템 (예. Oracle XE 11g)
  • 데이터베이스: 데이터를 저장할 공간 (예. XE)
  • DBMS 클라이언트: 데이터베이스를 사용하는 어플리케이션 (예. JSP)

 

 

5. 주요 SQL 타입 (오라클 기준)

SQL 타입 설명
CHAR 확정 길이의 문자열을 저장 (표준의 경우 255 글자까지만 저장 가능)
VARCHAR2 가변 길이의 문자열을 저장 (표준의 경우 4000 글자까지만 저장 가능)
LONG 긴 가변 길이의 문자열을 저장 (2G)
NUMBER 숫자를 저장
DECIMAL 십진수를 저장
INTEGER 정수를 저장
TIMESTAMP 날짜 및 시간을 저장
TIME 시간을 저장
DATE 날짜를 저장
CLOB 대량의 문자열 데이터를 저장 (4G)
BLOB 대량의 문자열 데이터를 저장 (4G)

 

 

 

'Dev > Database' 카테고리의 다른 글

커넥션 풀  (0) 2022.09.06
JDBC 프로그래밍  (0) 2022.09.06
SQL - JOIN 조인 2 (Outer Join, Self Join)  (0) 2022.08.31
SQL - JOIN 조인 1 (Equi Join, Non-Equi Join )  (0) 2022.08.30
SQL - 그룹 함수 2 (group by문과 having 조건)  (0) 2022.08.30

댓글