학습/DATABASE

[DATABASE] 관계형 데이터베이스(Oracle)

힝뿌 2024. 5. 18. 18:31
반응형

관계형 데이터베이스란?

관계형 데이터 모델 개념을 바탕으로 데이터를 저장 및 관리하는 데이터베이스를 의미한다. 

이러한 관계형 데이터베이스를 관리하는 시스템은 RDBMS(relational Database Management System)이라고 부른다.

MS-SQL, MySQL, MariaDB, PostgreSQL, DB2, Oracle 등 많은 DBMS 제품이 대부분 관계형 데이터베이스 관리 시스템이다.

관계형 데이터 모델(Relational data model) : 데이터 간 관계에 초점을 둔 모델

 

 

 

관계형 데이터베이스 구성 요소

 

테이블

관계형 데이터 베이스는 기본적으로 데이터를 2차원 표 형태로 저장하고 관리한다.

이러한 표 형태의 데이터 저장 공간을 테이블(table)이라고 한다.

가로줄을 행(row), 세로줄을 열(column)이라고 부른다.

회원 테이블

 

  • 행(row) : 저장하려는 하나의 개체를 구성하는 여러 값을 가로로 늘어뜨린 형태, 즉 회원 한 명의 데이터를 의미
  • 열(column) : 저장하려는 데이터를 대표하는 이름과 공통 특성을 정의(이름, 나이, 성별)
관계형 데이터베이스에서 테이블은 관계(relation), 행은 튜플(tuple) 또는 레코드(record) 그리고 열은 애트리뷰트(attribute) 또는 필드(field)라고 한다.

 

 

 

하나의 테이블을 구성하는 여러 열 중에서 특별한 의미를 지닌 하나 또는 여러 열의 조합을 의미한다.

 

1. 기본키(PK; Primary Key)

한 테이블 내에서 중복되지 않는 값만 가질 수 있는 키

기본키 속성
1. 테이블에 저장된 행을 식별할 수 있는 유일한 값이어야 한다.
2. 값의 중복이 없어야 한다.
3. NULL 값을 가질 수 없다.

 

기본키는 중복되지 않는 유일한 값이라는 독성을 가졌기 대문에 하나 또는 여러 열의 조합으로 만들 수 있다.

NULL은 특정 column 값이 존재하지 않는다는 의미다.

 

 

 

2. 보조키(alternate key)

후보키(candidate key)에 속해있는 키로 후보키 중 기본키로 지정되지 않은 열을 의미한다.

후보키는 기본키가 될 수 있는 모든 키를 의미한다. 즉, 기본키 역시 후보키에 속한다고 할 수 있다.

 

 

 

3. 외래키(FK; Foreign Key)

특정 테이블에 포함되어 있으면서 다른 테이블의 기본키로 지정된 키를 의미한다.

 

 

 

4. 복합키(composite key)

여러 열을 조합하여 기본키 역할을 할 수 있게 만든 키를 의미한다.

복합키를 만들 때 적게는 2~3개, 많게는 10개가 넘는 열을 조합하기도 한다. 왜냐하면 하나의 column만으로는 행을 식별하는 것이 불가능하여 두 개 이상의 column 값을 함께 사용해야 각 row가 유일한 데이터로서 가치를 지니기 때문이다.

 

 

예시를 들어보기 위해 아래와 같이 학생 테이블과 학과 테이블이 있다고 가정해 보자.

 

 

왼) 학생 테이블 오) 학과 테이블

 

 

먼저 학생 테이블을 살펴보자.

아래와 같이 유일한 데이터, 즉 중복되지 않는 데이터를 가지고 있는 학번과 아이디가 학생 테이블의 기본키가 될 수 있는 후보키가 된다.

 

학생 테이블의 후보키

 

 

후보키(학번, 아이디) 중에서 기본키를 선택하면 된다. 여기서는 학번을 선택해 기본키로 선택하고자 한다.

 

학생 테이블의 기본키

 

 

그럼 이제 학과 테이블도 함께 살펴보자.

 

학과 테이블

 

 

학과 테이블의 기본키는 각 학과를 구별할 수 있는 유일한 데이터인 학과 코드로 설정했다고 생각해 보자.

그리고 장보고라는 학생이 과사 전화번호를 알기 위해 포털에 접속했다고 가정해 보자.

 

 

 

학생 테이블에서 학과 코드를 통해 학과 테이블을 통해 해당 학과의 세부 정보를 찾아볼 수 있다.

이를 "학생 테이블이 학과 코드를 참조한다"고 표현한다.

학생 테이블에서 학과 코드를 참조하여 학과 정보를 얻어낼 수 있다는 의미다.

 

즉, 포털 사이트는 장보고 학생의 학번을 통해 학생 테이블에서 장보고 학생을 찾아내고, 저장된 학과 코드를 활용해서 학과 테이블을 찾아가 전화번호 정보에 접근할 수 있는 것이다.

 

따라서 학과 코드가 학생 테이블과 학과 테이블을 이어 주는 외래키 역할을 한다.

 

 

실무에서는 테이블 개수가 많게는 몇 백, 몇 천 개에 이른다고 한다. 또, 하나의 테이블이 가진 열의 수 또한 몇 백개를 넘나드는 일도 종종 있다고 한다. 규모가 있는 회사는 행의 수는 억 단위를 웃도는 게 흔한 일이라고 한다.

 

 

 

 

 

앞으로 Oracle 데이터베이스로 공부를 할 예정이라 Oracle 데이터베이스의 자료형을 알아보자.

 

 

Oracle 데이터베이스 자료형(data type)

 

자료형 설명
VARCHAR2(길이) 4000byte만큼의 가변 길이 문자열 데이터를 저장할 수 있다.(최소 크기는 1byte)
NUMBER(전체 자릿수, 소수점 이하 자릿수) ±38자릿수의 숫자를 저장할 수 있다. 
NUMBER(p, s)와 같이 표기할 경우 s자리만큼 소수점 이하 자릿수를 표현하고, 이 소수점 자리를 포함한 전체 p자리만큼 숫자 데이터를 저장한다.
DATE 날짜 형식을 저장하기 위해 사용하는 자료형으로 세기, 연, 월, 일, 시, 분, 초 저장이 가능하다.
CHAR(길이) 4000byte만큼의 고정 길이 문자열 데이터를 저장할 수 있다.(최소 크기는 1byte)
NVARCHAR2(길이) 4000byte만큼의 가변 길이 국가별 문자 세트 데이터를 저장할 수 있다.(최소 크기는 1byte)
BLOB 최대 크기 4GB의 대용량 이진 데이터를 저장할 수 있다.
CLOB 최대 크기 4GB의 대용량 텍스트 데이터를 저장할 수 있다.
BFILE 최대 크기 4GB의 대용량 이진 데이터 파일을 저장할 수 있다.

 

  • 스칼라(scalar) 형 : 하나의 자료형에 마주쳐 한 종류의 데이터를 저장할 수 있는 자료형(NUMBER 등)
  • 컬렉션(collection) 형 : 한 번에 여러 데이터를 저장할 수 있는 자료형 (VARRAY, NESTED TABLE 등)

 

 

 

 

 

 

 

 

 

 

 

 

참고 문헌) 'Do it! 오라클로 배우는 데이터베이스 입문 ' 서적을 참고하여 작성하였습니다.

반응형