데이터 모델
관계형 데이터 모델 : 데이터 간의 관계(relationship)에 초점을 둔다.
<사원 테이블> 의 부서코드와 <부서 테이블> 의 부서 코드가 연결이 되어서 작용을 한다.
관계형 데이터베이스 (RDBMS)
- 관계형 데이터 모델 개념을 바탕으로 데이터를 저장, 관리하는 데이터베이스
SQL ( Structurd Query Language : 구조적 질의 언어 )
- RDBMS에서 데이터를 다루고 관리하는 데 사용하는 데이터베이스 질의 언어
- RDBMS에게 데이터에 관해 물어보고 결과를 얻는다.
DML | RDBMS 내 테이블의 데이터를 저장,수정,삭제하는 명령어 |
DDL | RDBMS 내 데이터 관리를 위해 테이블을 포함한 여러 객체를 생성,수정,삭제하는 명령어 |
TCL | 트랜잭션 데이터의 영구 저장, 취소 등 관련하는 명령어 |
DDL | 데이터 사용 권한 관련하는 명령어 |
관계형 데이터베이스 구성 요소
1) 테이블 : 2차원 표 형태로 표현한 데이터 저장공간
2) 행(row) : 저장하려는 하나의 개체를 구성하는 여러값을 가로로 늘어뜨린 형태
3) 열(column) / 필드(field)
: 저장하려는 데이터를 대표하는 이름, 공통 특성
: 저장 정보의 종류와 저장 가능한 값의 최대 길이, 값의 중복을 허용하지 않는 등 저장 조건과 범위를 지정할 수 있다.
- 관계형 데이터베이스에서 관계란 행과 열의 특성에 맞추어 데이터를 저장한 테이블 하나하나를 의미한다.
4) 키 : 하나의 테이블을 구성하는 여러 열 중에 특별한 의미를 지닌 하나 또는 여러 열의 조합
: 종류별로 데이터를 구별하거나, 테이블 간의 연관 관계를 표현할 때 키로 지정한 열을 사용
1. 기본키 (PK - Primary Key)
- 가장 중요한 키
- 한 테이블 내에서 중복되지 않는 값만 가질 수 있는 키.
속성 ① 테이블에 지정된 행을 식별할 수 있는 유일한 값이어야 한다. (ex - 학번, 아이디) ② 값의 중복을 없애야 한다. ③ NULL 값을 가질 수 없다. ( 식별할 수 있는 요소를 반드시 가져야 한다.) |
2. 보조키 (alternate key)
- 후보키 중에서 기본키로 지정되지 않는 열.
- 기본키가 될 수 있는 모든 키
3. 외래키 (FK - Foreign Key)
- 특정 테이블에 포함되어 있으면서, 다른 테이블의 기본 키로 지정된 키.
( 학생 정보 테이블에 학과 코드는 기본 키가 아니지만, → 학과 정보 테이블에서 학과 코드는 기본 키이다.)
- 학생 정보 테이블은 학과 코드를 통해 학과 정보 테이블의 세부정보를 찾을 수 있는데
이를 학생 정보 테이블이 학과 코드를 참조한다고 표현한다.
- 기본키만이 다른테이블에 외래키가 될 수 있다.
- 하나의 테이블로 저장하는 경우 중복 데이터가 저장되는 현상을 피하기 위해.
- 또한 추후에 변경을 하게되는 경우, 해당된 데이터 수만큼 데이터를 변경해야 하므로, 중복 처리 비용 감소를 위해.
4. 복합키(composite key)
- 여러 열을 조합하여 기본키 역할을 할 수 있게 만든 키
- 과목코드와 담당 교수를 함께 작성하는 것
오라클 데이터베이스
- 자료형 : 데이터가 어떤 형태의 데이터인지 말할 때.
VARCHAR2(길이) | 가변 길이(길이 변경이 가능) 문자열 데이터를 저장할 수 있다. |
NUMBER(전체자리수, 소수점 이하 자릿수) |
38자릿수의 숫자(정수와 실수 모두) 를 저장할 수 있다. NUMBER(p, s)와 같이 표기할 경우 s자리만큼 소수점 이하 자릿수를 표현하고, 이 소수점 자리를 포함한 전체 p자리만큼의 숫자 데이터를 저장한다. (정수만 사용하는 경우 p만 작성해주면 된다.) |
DATE | 날짜 형식을 저장하기 위한 자료형 세기, 연, 월, 일, 시, 분, 초 저장이 가능하다. |
CHAR | 고정 길이 문자열 데이터를 저장할 수 있다. |
- 데이터 저장 관련 자료형 (참고만...)
BLOB | 최대 4GB의 대용량 이진 데이터 저장 |
CLOB | 최대 4GB의 대용량 텍스트 데이터 저장 |
- 객체 : 오라클 데이터베이스 내에서 데이터를 저장하고 관리하기 위한, 논리구조를 가진 구성 요소.
테이블(table) | 데이터를 저장하는 장소 |
인덱스(index) | 테이블의 검색 효율을 높이기 위해 사용 |
뷰(view) | 하나 또는 여러 개의 선별된 데이터를 논리적으로 연결하여 하나의 테이블처럼 사용하게 해준다. |
시퀀스(sequence) | 일련 번호를 생성해 줌. ( 순서대로 번호를 부여 ) |
PL/SQL
- 데이터 관리를 위해 별도의 프로그래밍 언어를 제공하는 것.
- 변수, 조건문, 반복문 등 프로그래밍 언어에서 제공하는 요소를 사용하여 데이터를 관리할 수 있다.
- 자바에서 프로그래밍 언어를 하게 되는 경우 오라클에 종속되어, 다른 데이터베이스를 사용하게 되는 경우 작동을 하지 않을 수 있다. 따라서 PL/SQL을 사용하여, 데이터베이스 내부에서 작성할 수 있게 하는 것이 낫다.