관계형 데이터베이스의 구성요소
관계형 데이터베이스는 기본적으로 데이터를 2차원 표 형태로 저장하고 관리
테이블
- 표 형태의 데이터 저장 공간
- 테이블은 2차원 형태이므로 가로줄과 세로줄로 구성
- 가로줄은 행(row), 세로줄을 열(column)이라고 함.
- relation,관계 라고도 함
- 행(row)
- 하나의 개체를 구성하는 여러 값을 가로로 늘어뜨린 형태
- 튜플(tuple) 또는 레코드(record) 라고도 함
- 열(column)
- 저장하려는 데이터를 대표하는 이름과 공통 특성을 정의
- 저장 정보의 종류(자료형)과 저장 가능한 값의 최대 길이, 저장 조건과 범위를 지정 가능
- 어트리뷰트(attribute) 또는 필드(field)라도 함.
- 행(row)
관계형 데이터베이스에서 관계란 행과 열의 특성에 맞추어 데이터를 저장한 테이블 하나하나를 의미
여러 테이블의 구성과 관계를 잘 규정하고 관리하는 것이 관계형 데이터베이스에서 데이터를 관리하는 핵심
키(key)
- '열쇠'라는 의미에서 비롯, 수많은 데이터를 구별할 수 있는 유일한 값
- 키는 하나의 테이블을 구성하는 여러 열 중에서 특별한 의미를 지닌 하나 또는 여러 열의 조합을 의미
- 종류별로 데이터를 구별하거나 테이블 간의 연관 관계를 표현할 때 키로 지정한 열을 사용
- 키의 종류는 기본키(primary key), 후보키(candidate key),외래키(foreign key), 복합키(composite key) 등으로 구분
- 기본키(PK:Primary Key)
- 여러 키 중에서 가장 중요한 키, 한 테이블 내에서 중복되지 않는 값만 가질 수 있는 키
- 기본키의 속성
- 테이블에서 저장된 행을 식별할 수 있는 유일한 값
- 값의 중복이 없어야 함
- NULL 값을 가질 수 없음
- 중복되지 않는 유일한 값이라는 특성을 가졌기 때문에 하나 또는 여러 열의 조합으로 만들 수 있음
- 보조키
- 대체키(alternate key)라고도 부름
- 후보키(candidate key)에 속해 있는 키, 후보키 중에서 기본 키로 지정되지 않은 열
- 후보키는 기본키가 될 수 있는 모든 키를 의미
- 기본 키 역시 후보키에 속하며, 후보키 중 기본키로 지정되지 않은 키를 보조키 또는 대체키라 함
- 행 식별이 가능한 키의 모든 조합을 의미하는 슈퍼키(super key) 개념도 존재
- 유일한(중복되지 않은) 데이터를 가지고 있으며 빈 값(NULL) 이 없는 열은 기본키가 될 수 있는 후보키
- 그 중 기본키로 지정한 열을 제외한 열들은 보조키 또는 대체키라고 함
- 외래키(FK:Foreign Key)
- 특정 테이블에 포함되어 있으면서 다른 테이블의 기본키로 지정된 키
- 관계형 데이터 베이스에서는 액셀 처럼 여러 행에 컬쳐 특정 열을 병합 하는 것이 불가능 하지만 외래키를 사용하면 병합과 유사한 효과를 얻을 수 있어 데이터 중복을 최소화 할 수 있음
- 데이터 중복을 피하기 위해 테이블 사이의 관계를 규명하기 위한 필수 요소
- 실무에서 데이터베이스를 활용하여 응용 프로그램을 만들 때 데이터의 구조 및 설계가 외래키를 사용해 너무 엄격하게 정의하면 응용 프로그램의 제작과 테스트 진행에 걸림돌이 되기도함
- 테이블사이의 관계에서 개념적으로 외래키가 필수인 상황일지라도 응용 프로그램 제작의 효율 및 편의를 위해 외래키를 따로 정의하지 않고, 테이블 사이의 관계를 '느슨하게' 설계하여 이를 응용 프로그램 영역에서 처리하는 경우도 발생.
- 복합키
- 복합키(composite key)는 여러 열을 조합하여 기본키 역할을 할 수 있게 만든 키
- 적게는 두 세개, 많게는 열 개가 넘는 열을 조합하기도 함
- 하나의 열만으로 행을 식별하는 것이 불가능하여 두개 이상의 열 값을 함께 사용해야 각 행이 유일한 데이터로서 가치를 지니기 때문
- 기본키(PK:Primary Key)
다양한 키는 관계형 데이터베이스에서 테이블 행을 구분하고, 여러 테이블 간의 관계를 정의하기 위해 사용
오라클 데이터베이스
- 오라클 데이터 베이스는 오라클 사가 만든 DBMS 제품
- 11 g 버전을 기준으로 설치 및 학습 진행
- 최신 버전은 계속 나오고 있으나 데이터베이스의 버전 업그레이드가 어려워 대부분의 기업이 11g버전을 사용 중
- 최신 버전으로 바꿀 시 데이터 관리에 문제가 생길 수 있으며 전체 서비스의 마비를 초래할 수도 있음
- 최신 버전은 계속 나오고 있으나 데이터베이스의 버전 업그레이드가 어려워 대부분의 기업이 11g버전을 사용 중
- 오라클 데이터 베이스의 대표적인 자료형
자료형 | 설명 |
Varchar2(길이) | 4000byte만큼의 가변 길이 문자열 데이터를 저장할 수 있음 (최소 크기는 1byte) |
NUMBER(전체 자릿수, 소수점 이하 자릿수) | ±38자릿수의 숫자를 저장할 수 있음 NUMBER(p,s)와 같이 표기 할 경우 s자리만큼 소수점 이하 자릿수를 표현하고, 이 소수점 자리를 포함한 전체 p자리만큼 숫자 데이터를 저장 |
DATE | 날짜 형식을 저장하기 위해 사용하는 자료형으로 세기, 연, 월 , 일, 시 분, 초 저장이 가능 |
CHAR(길이) | 4000byte만큼의 고정 길이 문자열 데이터를 저장할 수 있음 (최소 크기는 1byte) |
NVARCHAR2(길이) | 4000byte만큼의 가변 길이 국가별 문자열 데이터를 저장할 수 있음 (최소 크기는 1byte) |
BLOB | 최대 크기 4GB의 대용량 이진 데이터를 저장할 수 있음 |
CLOB | 최대 크기 4GB의 대용량 텍스트 데이터를 저장할 수 있음 |
BFILE | 최대 크기 4GB의 대용량 이진 데이터 파일을 저장할 수 있음 |
- 자료형은 테이블을 구성하는 열에 지정
- 하나의 자료형에 맞춰 한 종류의 데이터를 저장할 수 있는 자료형을 스칼라(scalar)형이라고 함
- 한 번에 여러 데이터를 저장할 수 있는 컬렉션(collection)형도 있음.
- VARRAY,NESTED TABLE 등
객체
- 오라클 데이터 베이스 내에서 데이터를 저장하고 관리하기 위한 논리 구조를 가진 구성 요소
- 오라클 데이터베이스 객체의 종류
객체 | 설명 |
테이블(table) | 데이터를 저장하는 장소 |
인덱스(index) | 테이블의 검색 효율을 높이기 위해 사용 |
뷰(view) | 하나 또는 여러 개의 선별된 데이터를 논리적으로 연결하여 하나의 테이블 처럼 사용하게 해줌 |
시퀀스(sequence) | 일련 번호를 생성해 줌 |
시노님(synonym) | 오라클 객체의 별칭(다른 이름)을 지정 |
프로시져(procedure) | 프로그래밍 연산 및 기능 수행 가능(반환 값 없음) |
함수(function) | 프록래밍 연산 및 기능 수행이 가능(변환 값 있음) |
패키지(package) | 관련 있는 프로 시저와 함수를 보관 |
트리거(trigger) | 데이터 관련 작업의 연결 및 방지 관련 기능을 제공 |
- 이 외에도 여러 종류가 있으나 일반적으로 사용하는 객체들임
PL/SQL(Procedural Language extesion to SQL)
- 관계형 데이터베이스에서 데이터를 관리하기 위한 복잡한 기능이 필요 할 때 SQL만으로 구현하는 것에는 한계가 있음
- 데이터 관리를 위해 별도의 프로그래밍 언어를 제공
- 오라클 데이터베이스 프로그래밍은 SQL문과 PL/SQL을 사용하여 프로그램을 제작하는 것
- 변수,조건문,반복문 등 프로그래밍 언어에서 제공하는 요소를 사용하여 데이터 관리 가능
- SQL문만 사용하는 것보다 강력한 데이터 관리 기능 구현
'DB > Doit!오라클로 배우는 데이터베이스 입문_개념정리' 카테고리의 다른 글
DB 기초 개념 정리_7)다중행 함수와 데이터 그룹화_DoIt!오라클로 배우는 데이터 베이스 입문 (0) | 2024.06.13 |
---|---|
DB 기초 개념 정리_6)데이터 처리와 가공을 위한 오라클 함수_DoIt!오라클로 배우는 데이터 베이스 입문 (0) | 2024.06.02 |
DB 기초 개념 정리_5)더 정확하고 다양하게 결과를 출력하는 WHERE절과 연산자_DoIt!오라클로 배우는 데이터 베이스 입문 (0) | 2024.05.27 |
DB 기초 개념 정리_4)SELECT문의 기본형식_DoIt!오라클로 배우는 데이터 베이스 입문 (0) | 2024.05.26 |
DB 기초 개념 정리_1)데이터베이스 개념 잡기_DoIt!오라클로 배우는 데이터 베이스 입문 (0) | 2024.05.23 |