본문 바로가기

언어공부/JDBC&오라클&SQL

JDBC - 데이터베이스, 테이블, SQL

JDBC - 데이터베이스 및 테이블에 대해서 알아보자.

데이터베이스(Database)

데이터베이스는 데이터가 빠르게 추출될 수 있도록 데이터를 조직화하여 저장하는 방법이다. 가장 간단하게는 열과 행으로 이루어진 테이블도 일종의 데이터베이스라고 할 수 있다. 데이터베이스 관리시스템(DBMS)는 다수의 사용자를 위하여 데이터가 저장, 접근, 변경되는 기능을 정의한다.

 

데이터베이스 시스템 중 관계형 데이터베이스 시스템(RDBMS)이 있는데, 관계형 데이터베이스에서는 여러 개의 테이블이 존재하고 테이블과 테이블 간에는 공통적인 데이터로 인하여 어떤 관계가 성립될 수 있다. 예를 들어 고객들의 테이블과 주문서 테이블은 공통적으로 고객들의 정보를 포함하고 있을 것이다.

 

DBMS로는 오라클, MySQL등이 있으며, 관계형 데이터베이스는 SQL이라고 불리는 언어로 사용할 수 있다. SQL은 데이터베이스를 조작하는 국제적인 표준 언어이다.

 


테이블(Table)

테이블의 하나의 행(row)은 레코드(record)라고 불린다. 레코드는 여러 개의 칼럼(column)(=필드)으로 이루어져 있다. 테이블은 무결성 법칙을 따라서 작성되어야 한다. 대표적인 것이 테이블에서 각 레코드는 중복되지 않아야 한다는 것이다. 중복이 있으면 어떤 레코드가 올바른 것인지 알기 어렵기 때문에, 대부분 DBMS에서 사용자는 중복된 레코드가 허용되지 않도록 설정할 수 있다.

 

  • 무결성이란, 관계형 데이터베이스에서 데이터의 정확성과 일관성을 유지하고, 데이터에 결손과 부정합이 없음을 보증하는 것을 의미한다.
  • 데이터 무결성이란 데이터베이스 내의 데이터에 대한 정확성, 일관성, 유효성, 신뢰성을 보장하기 위해 데이터 변경 혹은 수정 시 여러가지 제한을 두어 데이터의 정확성을 보증하는 것을 말한다.

테이블에서는 하나의 컬럼(=필드)을 이용하여 레코드와 레코드를 구분할 수 있다. 이러한 특정한 칼럼을 주요키(primary key)라고 하며, 주요키는 null이 되면 안된다. 

 

 

위의 테이블에서 주요키는 학번이다. 학번은 동일할 수가 없고, 레코드와 레코드를 비교할 때는 숫자가 문자보다 더 효율적이다. 이름, 나이, 학점은 동일할 수가 있기 때문에 주요키로 사용할 수 없다.

 


SQL(Structured Query Language)

SQL은 데이터베이스에 접근할 수 있는 데이터베이스 하부 언어로 관계형 데이터베이스에서 사용하기 위하여 설계된 언어이다. 표준적인 SQL 명령어들이 있으며 이것은 모든 관계형 데이터베이스에 의하여 지원된다.

 

SQL 명령어로 두 가지의 카테고리로 나누어져 있는데, 데이터 정의 명령어(Data Definition Language)들은 테이블을 생성하거나 변경하고, 데이터 조작 명령어(Data Manipulation Language)는 데이터를 추출, 추가, 삭제, 수정한다.