본문 바로가기
책 리뷰/Doit! 오라클로 배우는 데이터베이스 입문

[Chapter2] Do it! 오라클로 배우는 데이터베이스 입문 - 관계형 데이터베이스와 오라클 데이터베이스

by 조조링 2021. 9. 18.
728x90
반응형
다음 내용들은
책 제목 : Do it! 오라클로 배우는 데이터베이스 입문
출판사 : 이지스퍼블리싱
를 참고하여 작성하였음을 미리 말씀드립니다! ( 사진에 링크 연결 )

 

02-1 관계형 데이터베이스의 구성 요소

 

테이블

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

아래 표 형태를 테이블(table)이라 하고, 가로줄은 행(row), 세로줄은 열(column)이라고 한다. 

학번 이름 생년월일 학과 코드
16031055 홍길동 971210 COM
12071632 성춘향 940424 BNS

 

관계형 데이터베이스에서 "관계'란 행과 열의 특성에 맞추어 데이터를 저장한 데이트 하나하나를 의미한다. 

여러 테이블의 구성과 관계를 잘 규정하고 관리하는 것이 관계형 데이터베이스에서 데이터를 관리하는 핵심이다. 

 

 

특별한 의미를 지닌 열, 키

key; 수많은 데이터를 구별할 수 있는 유일한 값을 의미! 

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

키는 기본키(primary key), 후보키(candidate key), 외래키(foreign key), 복합키(composite key)등으로 구분 가능하다. 

 

 

기본키 

PK(;Primary key)는 여러 키 중에서 가장 중요한 키로서 한 테이블 내에서 중복되지 않는 값만 가질 수 있다. 

기본키의 속성  => 테이블에 저장된 행을 식별할 수 있는 유일한 값이어야 한다 .

                    => 값의 중복이 없어야 한다. 

                    => NULL 값을 가질 수 없다. 

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

 

아래와 같이 학생 정보 테이블을 통해 학생별로 특정 서비스를 제공하기 위해서는 각 학생을 구별할 수 있는 데이터가 반드시 필요하다. 이름같은 경우는 동명이인이 있을 수 있기 때문에 즉, 중복이 발생할 수 있기 때문에 적절하지 않고

학번 혹은 아이디, 주민등록 번호 정도가 기본키의 후보가 될 수 있다. (여기서는 학번을 PK로 설정)

학번 아이디 주민등록번호 이름
16031055 baby 971210-1xxxxxx 홍길동
12071632 onemore 940424-2xxxxxx 성춘향

 

보조키

후보키 중에서 기본키(PK)로 지정되지 않는 열을 의미

즉, 위에서 학번을 PK로 설정했으니, 아이디와 주민등록번호가 보조키가 된다. 

 

외래키

FK(;Foreign Key)는 특정 테이블에 포함되어 있으면서 다른 테이블의 기본키로 지정된 키를 의미한다. 

 

< 학생 정보 테이블 >

학번 이름 학과코드 졸업여부
16031055 홍길동 COM  
12071632 성춘향 BNS 졸업

< 학과 정보 테이블 >

학과 코드 학과 이름 개설 날짜 대표 전화번호
COM 컴퓨터공학과 19861021 070-0000-0000
BNS 경영학과 19730201 070-1111-1111

학과 정보 테이블은 각 학과를 구별할 수 있는 유일한 데이터인 "학과 코드"를 PK로 지정했다. 

학생 정보 테이블에도 '학과 코드'가 있다. 

이 학과 코드가 바로 학생 정보 테이블과 학과 정보 테이블을 이어 주는 '외래키' 역할을 한다. 

즉, 학생 정보 테이블은 학과 코드를 통해 학과 정보 테이블의 세부 정보를 찾아갈 수 있다. 

 

 

복합키

복합키(composite key)는 여러 열을 조합하여 기본키 역할을 할 수 있게 만든 키를 의미한다. 

하나의 열만으로는 행을 식별하는 것이 불가능하여 두 개 이상의 열 값을 함께 사용해야 각 행이 유일한 데이터로서 가치를 지니기 때문이다.

예를 들어, 수강신청에서 통계수학의 과목코드가 C5545일때, 과목코드가 PK 역할을 할 수있을까?

어떤 사람은 분명 그 과목은 하나밖에 없으니깐 PK로 지정해도 될 거다! 라고 말할 수 있을 거다. 

하지만 만약 같은 과목의 분반이 3개라면? 말이 달라진다. 

이 때는 과목코드 + 분반 번호를 PK로 지정해야 한다. 

 

 

 

02-2 오라클 데이터베이스

 

자료형 

데이터베이스에 저장하는 데이터는 다양한 형태를 가지고 있다. 

자료형은 테이블을 구성하는 열에 지정한다. 예를 들어 NUMBER(4)로 지정한 열이 있다면 네 자리 숫자만 저장할 수 있다. 

하나의 자료형에 맞춰 한 종류의 데이터를 저장할 수 있는 자료형을 스칼라형이라고 한다. 

자료형은 여러 종류가 있으며 한 번에 여러 데이터를 저장할 수 있는 VARRAY, NESTED TABLE같은 컬렉션형도 있다. 

하지만 여전히 가장 많이 사용하는 자료형은 VARCHAR2, NUMBER, DATE 이다. 

자료형 설명
VARCHAR2(길이) 4000byte만큼의 가변 길이 문자열 데이터를 저장 가능
NUMBER(전체 자릿수, 소수점 이하 자릿수) +-38자릿수의 숫자 저장 가능. NUMBER(p,s)와 같이 표기한 경우 s자리만큼 소수점 이하 자릿수를 표현하고, 이 소수점 자리를 포함한 전체 p자리만큼 숫자 데이터를 저장한다.
DATE 날짜 형식을 저장하기 위해 사용하는 자료형
CHAR(길이) 4000byte만큼의 고정 길이 문자열 데이터 저장 가능

 

 

객체

객체는 오라클 데이터베이스 내에서 데이터를 저장하고 관리하기 위한 논리 구조를 가진 구성 요소이다. 

객체의 종류는 다음과 같다. 

객체 설명
테이블 데이터를 저장하는 장소
인덱스 테이블의 검색 효율을 높이기 위해 사용
하나 또는 여러 개의 선별된 데이터를 논리적으로 연결하여 하나의 테이블처럼 사용하게 해 줌
시퀀스 일변 번호를 생성해 줌
시노님(synonym) 오라클 객체의 별칭을 지정함
... ...
트리거(trigger) 데이터 관련 작업의 연결 및 방지 관련 기능을 제공

 

 

PL/SQL

오라클 데이터베이스를 포함한 여러 관계형 데이터베이스에서 데이터를 관리하기 위해 복잡한 기능이 필요할 때 기존 SQL만으로 이를 구현하는 것은 다소 한계가 있다. 그래서 오라클 데이터베이스는 데이터 관리를 위해 별도의 프로그래밍 언어를 제공하는데 이를 PL/SQL 이라고 한다. 

728x90
반응형

댓글