2-1 관계형 데이터베이스의 구성 요소
테이블 (Relation)
관계형 데이터베이스는 기본적으로 데이터를 2차원 표 형태로 저장하고 관리.
이 표 형태의 데이터 저장공간을 테이블(table)이라고 한다.
테이블은 2차원 형태이므로 가로줄과 세로줄로 구성되는데 이때 가로줄을 행(row) 세로줄을 열(column)이라고 부른다.
(학번 테이블)
학번 | 이름 | 생년월일 | 전화번호 |
[열] | |||
행 | 행 | [열] [행] | 행 |
행 (tuple or record)
행은 저장하려는 하나의 개체를 구성하는 여러 값을 가로로 늘어뜨린 형태이다.
1603955 | 홍길동 | 971210 | 010-111-111 | 서울시 | 1 | 2 | COM |
열 (attribute or field)
열은 저자하려는 데이터를 대표하는 이름과 공통 특성을 정의
저장 정보의 종류(자료형)와 저장 가능한 값의 최대 길이 그리고 값의 중복을 허용하지 않는 등의 저장 조건과 범위를 지정가능
학번 |
16031055 |
12071632 |
15022655 |
이름 |
홍길동 |
성춘향 |
박문수 |
학과 코드 |
COM |
BNS |
MTH |
관계형 데이터베이스와 테이블
관계형 데이터베이스에서 관계란 행과 열의 특성에 맞추어 데이터를 저장한 테이블 하나하나를 의미.
여러 테이블의 구성과 관계를 잘 규정하고 관리하는 것이 관계형 데이터베이스에서 데이터를 관리하는 핵심
특별한 의미를 지닌 열, 키
키(key)는 단어 뜻 그대로 '열쇠'라는 의미에서 비롯된 용어
수많은 데이터를 구별할 수 있는 유일한 값
하나의 테이블을 구성하는 여러 열 중에서 특별한 의미를 지닌 하나 또는 여러 열의 조합을 의미
종류별로 데이터를 구별하거나 테이블 간의 연관 관계를 표현할 때 키로 지정한 열을 사용
키는 기본키(Primary key), 후보키(candidate key), 외래키(foreign key), 복합키(composite key) 등으로 구분할 수 있습니다.
기본키
기본키(PK : Primary Key)는 여러 키 중에서 가장 중요한 키로서 한 테이블 내에서 중복되지 않는 값만 가질 수 있는 키입니다.
기본키의 속성을 정리하면 다음과 같습니다.
기본키의 속성
1. 테이블에 저장된 행을 식별할 수 있는 유일한 값이어야 한다.
2. 값의 중복이 없어야 한다.
3. NULL 값을 가질 수 없다.
기본키는 중복되지 않는 유일한 값이라는 특성을 가졌기 때문에 하나 또는 여러 열의 조합으로 만들 수 있습니다.
학번 | 아이디 | 주민등록번호 | 이름 |
16031055 | baby | 971210-1XXXXXX | 홍길동 |
12071632 | onemore | 940424-2XXXXXX | 성춘향 |
(기본키) | |||
15022655 | time | 960605-1XXXXXX | 박문수 |
보조키
보조키는 대체키(alternate key)라고도 부르며 후보키(candidate key)에 속해 있는 키
후보키 중에서 기보키로 지정되지 않는 열
학번 | 아이디 | 주민등록번호 | 이름 |
16031055 | baby | 971210-1XXXXXX | 홍길동 |
12071632 | onemore | 940424-2XXXXXX | 성춘향 |
(기본키) (후보키) | (보조키 또는 대체키) (후보키) | (보조키 또는 대체키) (후보키) | |
15022655 | time | 960605-1XXXXXX | 박문수 |
유일한(중복되지 않은) 데이터를 가지고 있고
빈 값(NULL)이 없는 열(학번, 아이디, 주민등록번호)은 기본키가 될 수 있는 후보키이다.
후보키 중에서 기본키로 선택한 학번을 제외한 아이디와 주민등록번호가 보조키가 된다.
외래키
외래키(FK : Foreign Key)는 특정 테이블에 포함되어 있으면서 다른 테이블의 기본키로 지정된 키를 의미
중복 데이터 저장을 막기위해 분리를 위해 사용
복합키
복합키(composite key)는 여러 열을 조합하여 기본키 역할을 할 수 있게 만든 키를 뜻한다.
과목 코드 (복합키) | 담당 교수 (복합키) | 전공 여부 | 과목 이름 |
C3655 | 이순신 | 교양 | 논리와 비판적 사고 |
C3655 | 김유신 | 교양 | 논리와 비판적 사고 |
E0134 | 이몽룡 | 전공 | 모바일 프로그래밍 |
E0021 | 이몽룡 | 전공 | 네트워크 프로그래밍 |
2-2 오라클 데이터베이스
오라클 데이터베이스와 버전
11g 버전을 기준으로 설치 및 학습을 진행 (대부분 기업에서 11g를 사용 | 2018년 6월 기준)
자료형
자료형 | 설명 |
VARCHAR2(길이)* | 4000byte만큼의 가변 길이 문자열 데이터를 저장할 수 있습니다(최소 크기는 1byte). |
NUMBER(전체 자릿수, 소숫점 이하 자릿수)* | ±38자릿수의 숫자를 저장할 수 있습니다. NUMBER(p, s)와 같이 표기할 경우 s자리만큼 소수점 이하 자릿수를 표현하고, 이 소수점 자리를 포함한 전체 p자리만큼 숫자 데이터를 저장합니다. |
DATE* | 날짜 형식을 저장하기 위해 사용하는 자료형으로 세기, 연, 월, 일, 시, 분, 초 저장이 가능 |
CHAR(길이) | 4000byte만큼의 고정 길이 문자열 데이터를 저장할 수 있습니다.(최소 크기는 1byte) |
NVARCHAR2(길이) | 4000byte만큼의 가변 길이 국가별 문자 세트 데이터를 저장할 수 있습니다.(최소 크기는 1byte). |
BLOG | 최대 크기 4GB의 대용량 이진 데이터를 저장할 수 있습니다. |
CLOB | 최대 크기 4GB의 대용량 텍스트 데이터를 저장할 수 있습니다. |
BFILE | 최대 크기 4GB의 대용량 이진 데이터 파일을 저장할 수 있습니다. |
객체
객체는 오라클 데이터베이스 내에서 데이터를 저장하고 관리하기 위한 논리구조를 가진 구성요소
객체 | 설명 | 다루는 부분 |
테이블(table) | 데이터를 저장하는 장소 | 전체 |
인덱스(index) | 테이블의 검색 효율을 높이기 위해 사용함 | 13장 |
뷰(view) | 하나 또는 여러 개의 선별된 데이터를 논리적으로 연결하여 하나의 테이블처럼 사용하게 해 줌 | |
시퀸스(sequence) | 일련 번호를 생성해 줌 | 13장 |
시노님(synonym) | 오라클 객체의 별칭(다른 이름)을 지정함 | |
프로시저(procedure) | 프로그래밍 연산 및 기능 수행이 가능함(반환 값 없음) | 넷째마당 |
함수(function) | 프로그래밍 연산 및 기능 수행이 가능함(반환 값 있음) | |
패키지(package) | 관련 있는 프로시저와 함수를 보관함 | |
트리거(trigger) | 데이터 관련 작업의 연결 및 방지 관련 기능을 제공함 |
PL/SQL
데이터를 관리하기 위해 복잡한 기능이 필요할 때 기존 SQL만으로 이를 구현하는 것은 다소 한계가 있다.
그래서 오라클 데이터베이스는 데이터 관리를 위해 별도의 프로그래밍 언어를 제공하는데
이를 PL/SQL (Procedural Language extension to SQL)이라고 합니다.
보통 오라클 데이터베이스 프로그래밍이라고 하면 SQL문과 PL/SQL을 사용하여 프로그램을 제작하는 것을 의미한다.
PL/SQL을 사용하면 변수, 조건문, 반복문 등 프로그래밍 언어에서 제공하는 요소를 사용하여 데이터를 관리할 수 있다.
따라서 보다 강력한 데이터 관리 기능을 구현할 수 있다.
참조
https://ittutorial.org/oracle-version-history-oracle-database-release-versions/
'DataBase' 카테고리의 다른 글
[Mysql] Mysql 8.0 버전 설치하기 (0) | 2022.12.01 |
---|---|
[Oracle] 1장. 데이터 베이스 개념 잡기 (1-3 오라클 데이터베이스와 도구 프로그램 설치) (0) | 2022.11.29 |
[Oracle] 1장. 데이터 베이스 개념 잡기 (1-1 데이터베이스) (0) | 2022.11.28 |
[Oracle] Oracle 시작하기 (0) | 2022.11.28 |
[Sqld] 파티셔닝(Partitioning) (0) | 2021.03.14 |