본문 바로가기
카테고리 없음

오라클 11g 오라클과 데이터베이스

by AJAX하고싶다 2023. 3. 7.
반응형

데이터 저장소인 데이터베이스(DB) 및 데이터 베이스의 기본 제약조건, 오라클 SQL의 기본제공 함수등을 알아본다.

 

01. 데이터베이스 관리 시스템.

기업이나 기관은 정보를 필요로 한다. 예를 들어 회사에서는 사원, 부서 급여등에 대한 정보를 관리해야 하고 도서관은 회원, 도서, 반납일 등의 정보를 관리해야 한다. 이러한 정보를 '데이터'라고 하는데 이러한 데이터를 담고 있는 것을 '데이터 베이스(DB)'라고 한다. 데이터베이스는 조직화된 정보의 집합이며 데이터를 관리하려면 '데이터베이스 관리시스템'이 필요하다. 데이터베이스 관리시스템(DBMS은 연관성 있는 데이터들의 집합을 효율적으로 응용하기 위해 구성된 소프트웨어들의 집합체이다.  즉, 데이터와 응용프로그램의 중간에서 응용 프로그램이 요구하는 대로 데이터를 정의하고, 읽고 , 쓰고 , 갱신하는 등의 데이터를 조작하고 이들을 효율적으로 관리하는 프로그램들을 지칭합니다.

데이터베이스 관리시스템은 사용자가 새로운 데이터베이스를 생성하고, 데이터베이스의 구조를 명시할 수 있게 하고, 사용자 데이터를 효율적으로 질의하고 수정할 수 있도록 한다. 시스템의 고장이나 권한이 없는 사용자로부터 데이터를 안전하게 보호하며, 동시에 여러 사용자가 데이터베이스를 접근하는 것을 제어하는 소프트웨어 패키지이다. 또한, 데이터베이스 내에 정보를 생성, 변경, 조회, 저장할 수 있도록 하는 시스템적인 방법을 제공한다.  일반적으로 데이터 일치, 접근통제, 자동롤백, 복구를 담당한다. 데이터 베이스 관리시스템 제품으로는 오라클,  MS-SQL , MySQL , Maria DB , Infomix, DB2등이 있다.

 

02. 제약조건

데이터 무결성 제약 조건
제약조건은 칼럼에 들어가는 값을 제한하여 데이터의 정확성과 일관성을 보장한다. 예를 들어 고등학생의 정보를 저장하는 테이블의 학년 칼럼에는 1,2,3 중의 하나의 값만 저장할 수 있어야 한다는 조건을 만족해야 합니다.

NOT NULL 제약조건 
NULL은 할당 받지 않은 값, 아직 무엇인지 모르는 값을 의미하며, NULL은 0이나, 공백과는 다른 값으로 어떠한 값도 정해지지 않은 불확실한 값이다. NOT NULL 제약조건은 다음과 같다. 부서의 정보가 불확실하다고 해서 칼럼의 모든 값을 NULL로 저장하게 되면, 특정 부서가 검색해 올 수 없게 됩니다. 이러한 문제를 발생하지 않도록 테이블 내의 반드시 입력해야 하는 필수입력 칼럼에 NULL값을 저장하지 못하도록 NOT NULL제약조건을 걸어주어야 한다. NOT NULL조건이 지정된 칼럼은 NULL값이 아닌 확실한 정보가 저장되어야 하기 때문에 필수적으로 데이터가 입력되어야 하는 칼럼을 말한다.

키본키 제약조건
키본키란 한 테이블 내에서 칼럼이 동일한 값을 가질 수 없게 제약조건을 지정하며, 테이블의 ROW를 식별할 수 있도록 한다. 같은 이름의 사원이 존재하더라도 사원번호에 기본키 제약조건이 설정되어 있으면 이를 통해 원하는 사원을 검색할 수 있다.

외래키 제약조건
관계형 데이터 베이스가 중복되는 것을 막기 위해서 정보를 여러 테이블에 나눠서 저장해 두었다가 필요한 정보의 테이블을 연결하여 사용할 때 특정 테이블의 칼럼이 다른 테이블의 칼럼을 참조하게 된다. 다른 테이블의 칼럼값을 참조하는 테이블을 '자식 테이블'이라고 하고 다른 테이블에 의해 참조되는 테이블을 '부모 테이블'이라고 한다. 사원 테이블을 보면 어떤 부서 소속인지 알려주기 위해 부서번호 칼럼이 존재한다.

 

상세한 부서 정보는 사원테이블에는 없고 부서테이블에 존재하기 때문에 사원 테이블의 부서번호와 일치되는 값을 부서 테이블에서 찾아와야만 상세정보를 알 수 있다. 만약 사원 테이블의 부서번호와 일치되는 부서번호가 부서 테이블에 존재하지 않는다면 부서정보를 얻을 수 없는 문제가 발생한다. 그렇기 때문에 사원 테이블에 사원정보를 추가, 수정할 때에 입력한 부서번호가 부서 테이블에 존재하는지 살펴본 후에 추가 또는 수정수 있도록 하기 위해서 사원테이블의 부서번호가 부서테이블의 부서번호를 참조하도록 제약을 걸어 둘 때 사용되는 것이 외래키 제약조건이다.

 

03. SQL기본제공

DUAL 테이블

DUAL 테이블은 한 행으로 결과를 출력하기 위해 제공되는 테이블로서 오라클에서 자동으로 생성됩니다. DUAL 테이블은 VARCHAR2(1)로 정의된 DUMMY라는 단 하나의 칼럼으로 구성되어 있으며 한 개의 행을 포함하고 있습니다. DUAL 테이블의 구조를 살펴보기 위해 DESC명령어를 사용한다.

 

SQL : DESC DUAL 


DAUL 테이블의 유일한 칼럼인 DUMMY는 X라는 데이터만 저장하고 있어 한 개의 행으로 구성되어 있습니다. DUMMY칼럼에 저장되는 값은 아무런 의미가 없습니다. 사용자가 계산이나 함수를 실행하고 나서 결괏값을 한번 표시하고 싶을 때 사용하기 위해서 단행으로 구성해 놓은 것뿐이다. 오늘이 며칠인지 알아보기 위해서 오라크에서 제공하는 SYSDATE 함수를 사용해 보자 "SYSDATE"와 같이 함수만을 SQL 프롬프트에 입력해서는 원하는 결과를 얻을 수 없으며 SELECT  문에서 SYSDATE  함수를 사용해야 한다.


테이블 구조를 살펴보기 위한 DESC
DESCRIBE은 테이블의 구조(컬러명, 데이터형 , 길이와 NULL 허용유무)를 확인하기 위해서 제공되는 SQL 명령어이다.

 

사용법 : DESC [RIBE] 테이블 명

 

DESCRIBE 명령어는 약어가 제공되며,  주로 DESC로 사용합니다. DESC명령어 다음에 조회하고자 하는 테이블명을 기술한다.

 

 

반응형

댓글