DB/Doit!오라클로 배우는 데이터베이스 입문_개념정리

DB 기초 개념 정리_2)관계형 데이터베이스와 오라클 데이터베이스_DoIt!오라클로 배우는 데이터 베이스 입문

김쟈워니 2024. 5. 24. 11:41
관계형 데이터베이스의 구성요소

 

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

테이블

  • 표 형태의 데이터 저장 공간
  • 테이블은 2차원 형태이므로 가로줄과 세로줄로 구성
  • 가로줄은 행(row), 세로줄을 열(column)이라고 함.
  • relation,관계 라고도 함
    • 행(row)
      • 하나의 개체를 구성하는 여러 값을 가로로 늘어뜨린 형태
      • 튜플(tuple) 또는 레코드(record) 라고도 함
    • 열(column)
      • 저장하려는 데이터를 대표하는 이름과 공통 특성을 정의
      • 저장 정보의 종류(자료형)과 저장 가능한 값의 최대 길이, 저장 조건과 범위를 지정 가능
      • 어트리뷰트(attribute) 또는 필드(field)라도 함.
관계형 데이터베이스에서 관계란 행과 열의 특성에 맞추어 데이터를 저장한 테이블 하나하나를 의미
여러 테이블의 구성과 관계를 잘 규정하고 관리하는 것이 관계형 데이터베이스에서 데이터를 관리하는 핵심

 

키(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)는 여러 열을 조합하여 기본키 역할을 할 수 있게 만든 키
      • 적게는 두 세개, 많게는 열 개가 넘는 열을 조합하기도 함
        • 하나의 열만으로 행을 식별하는 것이 불가능하여 두개 이상의 열 값을 함께 사용해야 각 행이 유일한 데이터로서 가치를 지니기 때문
다양한 키는 관계형 데이터베이스에서 테이블 행을 구분하고, 여러 테이블 간의 관계를 정의하기 위해 사용

오라클 데이터베이스
  •  오라클 데이터 베이스는 오라클 사가 만든 DBMS 제품
  •  11 g 버전을 기준으로 설치 및 학습 진행
    • 최신 버전은 계속 나오고 있으나 데이터베이스의 버전 업그레이드가 어려워 대부분의 기업이 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문만 사용하는 것보다 강력한 데이터 관리 기능 구현