DataBase
2-1. 관계형 데이터베이스의 구성 요소
테이블
관계형 데이터베이스는 기본적으로 데이터를 2차원 표 형태로 저장하고 관리합니다. 이 표형태의 데이터 저장 공간을
테이블(table)이라고 합니다. 테이블은 2차원 형태이므로 가로줄과 세로줄로 구성되는데 이때 가로줄을 행(row),
세로줄을 열(column)이라고 부릅니다.
행(row)
행은 저장하려는 하나의 개체를 구성하는 여러 값을 가로로 늘어뜨린 형태입니다.
열(column)
열은 저장하려는 데이터를 대표하는 이름과 공통 특성을 정의합니다. 그리고 열은 저장 정보의 종류(자료형)와
저장 가능한 값의 최대 길이 그리고 값의 중복을 허용하지 않은 등의 저장 조건과 범위를 지정할 수 있습니다.
관계형 데이터베이스와 테이블
관계형 데이터베이스에서 관계란 행과 열의 특성에 맞추어 데이터를 저장한 테이블 하나하나를 의미합니다.
여러 테이블의 구성과 관계를 잘 규정하고 관리하는 것이 관계형 데이터베이스에서 데이터를 관리하는 핵심입니다.
[테이블, 행, 열]
테이블, 행, 열은 관계형 데이터베이스의 SQL에서 사용합니다. 관계형 데이터베이스에서
테이블은 관계(relation), 행은 튜플(tuple) 또는 레코드(record)
그리고 열은 속성을 의미하는 애트리뷰트(attribute) 또는 필드(field)라고 합니다.
특별한 의미를 지닌 열, 키
키(key)는 단어 뜻 그대로 '열쇠'라는 의미에서 비롯된 용어입니다. 어떤 문에 꼭 맞는 열쇠가 하나씩 있듯이 수많은 데이터를 구별할 수 있는 값이라는 뜻입니다. 키는 하나의 테이블을 구성하는 여러 열 중에서 특별한 의미를 지닌 하나 또는 여러 열의 조합을 의미합니다.
종류별로 데이터를 구별하거나 테이블 간의 연관 관계를 표현할 때 키로 지정한 열을 사용합니다.
키는 기본키(primary key), 후보키(candidate key), 외래키(foreign key), 복합키(composite key) 등으로 구분할 수 있습니다.
기본키
기본키(PK : Primary Key)는 여러 키 중에서 가장 중요한 키로서 한 테이블 내에서 중복되지 않는 값만 가질 수 있는 키입니다. 기본키의 속성을 정리하면 다음과 같습니다.
[기본키의 속성]
1. 테이블에 저장된 행을 식별할 수 있는 유일한 값이어야 한다.
2. 값의 중복이 없어야 한다.
3. NULL 값을 가질 수 없다.
기본키는 중복되지 않는 유일한 값이라는 특성을 가졌기 때문에 하나 또는 여러 열의 조합으로 만들 수 있습니다.
보조키
보조키는 대체키(alternate key)라고도 부르며 후보키(candidate key)에 속해 있는 키입니다.
그리고 후보키 중에서 기본키로 지정되지 않은 열입니다.
엄밀한 의미의 후보키는 기본키가 될 수 있는 모든 키를 의미합니다. 즉 기본키 역시 후보키에 속합니다. 이 후보키 중 기본키로 지정되지
않은 키를 보조키 또는 대체키라고 합니다. 그 밖에 행 식별이 가능한 키의 모든 조합을 의미하는 슈퍼키(super key) 개념도 존재합니다.
외래키
외래키(FK : Foreign Key)는 특정 테이블에 포함되어 있으면서 다른 테이블의 기본키로 지정된 키를 의미합니다.
언뜻 보면 외래키는 테이블을 두 개로 따로 나누어 데이터를 사용하므로 번거로워 보일 수 있지만
저장 공간 크기와 관리는 비용과 밀접한 관련이 있기 때문에 데이터 중복은 어쩔 수 없는 상황이 아닌 이상
반드시 피해야 합니다.
엑셀에서는 중복 데이터의 저장을 해결하기 위해 관련된 내용을 병합하는 방법을 생각할 수 있습니다.
관계형 데이터베이스에서는 엑셀처럶 여러 행에 걸쳐 특정 열을 병합하는 것이 기본적으로 불가능합니다.
하지만 외래키를 사용하면 이러한 병합과 유사한 효과를 얻을 수 있어 데이터 중복을 최소화할 수 있습니다.
응용 프로그램 개발과 외래키
외래키는 데이터의 중복을 피하기 위해 테이블 사이의 관계를 규명하기 위한 필수 요소입니다. 하지만 실무에서 데이터베이스를 활용하여 응용 프로그램을 만들 때 데이터의 구조 및 설계가 외래키를 사용해 너무 엄격하게 정의하면 응용 프로그램의 제작과 테스트 진행에 걸림돌이 되기도 합니다. 따라서 테이블 사이의 관계에서 개념적으로 외래키가 필수인 상황일지라도 응용 프로그램 제작의 효율 및 편의를 위해 외래키를 따로 정의하지 않고, 테이블 사이의 관께를 '느슨하게' 설계하여 이를 응용 프로그램 영역에서 처리하는 경우도 종종 발생합니다.
복합키
복합키(composite key)는 여러 열을 조합하여 기본키 역할을 할 수 있게 만든 키를 뜻합니다. 복합키를 만들 때 적게는
두세 개, 많게는 열 개가 넘는 열을 조합하기도 합니다. 왜냐하면 하나의 열만으로 행을 식별하는 것이 불가능하여 두 개
이상의 열 값을 함께 사용해야 각 행이 유일한 데이터로서 가치를 지니기 때문입니다.
다양한 키는 결국 관계형 데이터베이스에서 테이블 행을 구분하기 위해 그리고 여러 테이블 간의 관계를 정의하기 위해 사용한다는 점을 꼭 기억해야 합니다.
2-2. 오라클 데이터베이스
오라클 데이터베이스와 버전
오라클 데이터베이스는 오라클 사가 만든 DBMS 제품이며 1977년 리래 엘리슨(Larry Ellison), 봅 마이너(Bob Miner)와
에드 오츠(Ed Oates)가 자본금 2000달러로 창업한 SDL(Software Development Lab)에서 시작했습니다.
이후 IBM 사의 System R 프로젝트 및 에드거 프랭크 커드의 관계형 데이터베이스 이론에 착안하여 SQL 기반의 RDBMS 오라클 2.0을 선보입니다.
일반적으로 현업에서 데이터베이스를 한번 구축하면 버전 업그레이드가 쉽지 않기 때문에 아직도 많은 기업에서 11g를 사용하고 있습니다. 데이터베이스의 버전 업그레이드가 어려운 이유는 서비스의 바탕이 되는 데이터베이스를 최신 버전으로 바꾸면 데이터 관리에 문제가 생길 수 있으며 전체 서비스 마비를 초래할 수도 있기 때문입니다.
자료형
데이터베이스에 저장하는 데이터는 다양한 형태를 가지고 있습니다. 숫자만으로 표현 가능한 데이터도 있고 여러 가지 문자를 포함한 데이터도 있습니다. 이렇게 데이터가 어떤 형태의 데이터인지를 말할 때 IT 분양에서는 보통 자료형이라는
용어를 사용합니다. 오라클 데이터베이스는 여러 자료형을 제공하고 있으며 이 중 대표적인 자료형은 다음과 같습니다.
자료형 | 설명 |
VARCHAR2(길이) | 4000Byte만큼의 가변 길이 데이터를 저장할 수 있습니다.(최소 크기 1byte) |
NUMBER(전체 자릿수, 소수점 이하 자리수) |
± 38자릿수의 숫자를 저장할 수 있습니다. NUMBER(p,s)와 같이 표기할 경우 s자리만큼 소수점 이하 자릿수를 표현하고, 이 소수점 자리를 포함한 전체 p자리만큼 숫자 데이터를 저장합니다. |
DATE | 날짜 형식을 저장하기 위해 사용하는 자료형으로 세기, 연, 월, 일, 시, 분, 초 저장이 가능합니다. |
CHAR(길이) | 4000Byte만큼의 고정 길이 문자열 데이터를 저장할 수 있습니다.(최소 크기 1byte) |
NVARCHAR(길이) | 4000byte만큼의 가변 길이 국가별 문자 세트 데이터를 저장할 수 있습니다.(최소 크기 1byte) |
BLOB | 최대 크기 4GB의 대용량 이진 데이터를 저장할 수 있습니다. |
CLOB | 최대 크기 4GB의 대용량 텍스트 데이터를 저장할 수 있습니다. |
BFILE | 최대 크기 4GB의 대용량 이진 데이터 파일을 저장할 수 있습니다. |
자료형은 데이블을 구성하는 열에 지정합니다. 예를 들어 NUMBER(4)로 지정한 열이 있다면 네 자리 숫자만 저장할 수 있습니다. 이 열에는 문자열을 저장할 수 없고 다섯 자리 숫자를 저장할 수도 없습니다. 이렇게 하나의 자료형에 맞춰 한 종류의 데이터를 저장할 수 있는 자료형을 스칼라(scalar)형이라고합니다.
자료형은 여러 종류가 있으며 한 번에 여러 데이터를 저장할 수 있는 VARRY, NESTED TABLE 같은 컬렉션(collection)형도 있습니다. 8 버전 이후 오라클 데이터베이스는 객체 관계형 데이터베이스를 지원하기 위해 여러 자료형을 추가했습니다. 하지만 여전히 가장 많이 사용하는 자료형은 VARCHAR2, NUMBER, DATE 입니다.
특수한 경우를 제외하고는 그밖에 자료형을 다루지 않기 때문에 부담을 가질 필요는 없지만 물론 복잡한 여러 데이터를
다루어야 하는 경우라면 좀 더 많은 자료형을 이해하고 활용해야 할 상황이 있을 수 있습니다.
객체
객체는 오라클 데이터베이스 내에서 데이터를 저장하고 관리하기 위한 논리 구조를 가진 구성 요소입니다.
오라클 객체의 종류는 다음과 같습니다.
객체 | 설명 |
테이블(table) | 데이터를 저장하는 장소 |
인덱스(index) | 테이블의 검색 효율을 높이기 위해 사용함 |
뷰(view) | 하나 또는여러 개의 선별된 데이터를 논리적으로 연결하여 하나의 테이블처럼 사용하게 해줌 |
시퀀스(sequence) | 일련 번호를 생성해 줌 |
시노님(synonym) | 오라클 객체의 별칭(다른 이름)을 지정함 |
프로시저(procedure) | 프로그래밍 연산 및 기능 수행이 가능함(반환 값 없음) |
함수(function) | 프로그래밍 연산 및 기능 수행이 가능함(반환 값 있음) |
패키지(package) | 관련 있는 프로시저와 함수를 보관함 |
트리거(trigger) | 데이터 관련 작업의 연결 및 방지 관련 기능을 제공함 |
이 외에도 오라클에서 제공하는 객체는 여러 종류가 있습니다.
PL/SQL
오라클 데이터베이스를 포함한 여러 관계형 데이터베이스에서 데이터를 관리하기 위해 보잡한 기능이 필요할 때 기존
SQL만으로 이를 구현하는 것은 다소 한계가 있습니다. 그래서 오라클 데이터베이스는 데이터를 관리를 위해 별도의
프로그래밍 언어를 제공하는데 이를 PL/SQL(Procedural Languaga extension to SQL)이라고 합니다.
보통 오라클 데이터베이스 프로그래밍이라고 하면 SQL문과 PL/SQL을 사용하여 프로그램을 제작하는 것을 의미합니다.
PL/SQL을 사용하면 변수, 조건문, 반복문 등 프로그래밍 언어에서 제공하는 요소를 사용하여 데이터를 관리할 수 있습니다. 따라서 SQL문만 사용하는 것보다 강력한 데이터 관리 기능을 구현할 수 있습니다.
잊기 전에 한 번 더
Q1. 다음 문장의 빈킨을 채워 보세요
관계형 데이터베이스는 데이터를 2차원 표 형태로 저장/관리하는데 이를 ㅁㅁㅁ이라고 합니다. ㅁㅁㅁ은 하나의 개체를
구성하는 여러 값을 가로로 능러뜨린 ㅁㅁㅁ과 저장할 데이터를 이루는 각 값의 공통 특성을 정의하기 위해 세로줄 ㅁㅁ로
구성됩니다.
정답 : 테이블, 테이블, 행, 열
Q2. 다음 문장의 빈킨을 채워 보세요.
ㅁㅁㅁ는 테이블의 행을 구분하는 유일한 값으로 사용한는 키이며 테이블에 단 하나만 지정할 수 있습니다. ㅁㅁㅁ를 포함한 데이터를 식별할 수 있는 모든 키의 집합을 ㅁㅁㅁ라고 합니다. ㅁㅁㅁ 중 ㅁㅁㅁ로 선정되지 못한 나머지 키를
ㅁㅁㅁ/ㅁㅁㅁ라고 합니다. 또 특정 테이블에 포함되어 있으면서 다른 테이블의 ㅁㅁㅁ로 지정된 키를 ㅁㅁㅁ라고 합니다.
정답 : 기본키, 기본키, 후보키, 후보키, 기본기, 보조키, 대체키, 기본키, 외래키
'javaboiii의 DataBase > DB 요약정리(Do it! 오라클 데이터베이스)' 카테고리의 다른 글
DB -10) 데이터를 추가, 수정, 삭제하는 데이터 조작어 (0) | 2024.07.30 |
---|---|
DB -6) 데이터 처리와 가공을 위한 오라클 함수 (1) | 2024.07.29 |
DB -5) WHERE절과 연산자 (0) | 2024.07.28 |
DB - 4) SELECT문의 기본 형식 (0) | 2024.07.27 |
DB -1) 데이터베이스 (0) | 2024.07.26 |