본문 바로가기
Programming/DB

데이터 베이스 기초 강의 (DB의 개념)

by 도낙원 2018. 4. 9.
반응형



  DB의 개념


기업이나 기관은 데이터들을 저장하고 관리를 해야 합니다. 예를 들어 회사에서는 사원 /부서/ 급여 도서관에서는 회원/ 도서/ 반납일 등의 정보를 저장하고 관리해야합니다. 



우리는 사원/ 부서/ 급여 등 이러한 정보를 '데이터'라고 합니다. 이러한 데이터들을 담고 있는 것을 '데이터베이스' 라고 합니다.

이러한 데이터의 집합을 효과적으로 관리하기 위해 사용하는 것이 '데이터베이스 관리 시스템' 입니다.


이러한 데이터베이스 관리 시스템 제품에은 오라클 / MYSQL / MS-SQL 등 여러 제품이 있으며 현재 저는 오라클을 사용하고 있습니다.



  관계형 데이터베이스

키와 값들의 간단한 관계를 테이블 형태로 정리한 데이터베이스 입니다.

이 테이블은 로우와 행으로 이루어져 있습니다.



한 행을 나타내는 것이 row 이고 한 열을 나타내는 것이 column이 됩니다.

지금 이 테이블은 3개의 row와 4개의 column으로 이루어져 있습니다.


  데이터 타입


데이터베이스에 저장할 수 있는 데이터는 타입을 가집니다.

이름/ 부서명/ 도서명 등은 문자로 이루어져있고 학번/ 급여/ 부서번호 등은 숫자로 이루어집니다.

그렇기 때문에 데이터를 삽입할 때 이를 유의해야합니다.


  데이터 무결성 제약 조건


칼럼에 들어가는 값을 제한하여 데이터의 정확성과 일관성을 보장해야합니다. 

예를 들어 대학교에 학생 정보를 저장하는 테이블에서 그 학교 학생이라면 무조건 학번을 가져야 합니다. 

이 학번은 한 학생이 가지는 유일한 값이 되어야 하며 학년의 경우에도 하나의 학년을 선택해야 저장할 수 있습니다. 


NOT NULL 제약 조건

NULL은 아직 모르는 값입니다.

숫자에서 0이나 문자에서 " "(스페이스)와 같은 값은 NULL과 다릅니다. 그냥 어느 값도 정해지지 않는 불확실한 값입니다.

우리가 만든 테이블에 무조건 들어가야 할 값들이 있을 겁니다. 

예를 들어 우리가 회사에 입사하게 되면 특정 부서에서 일을 하게 될 겁니다. 그러면 모든 사람이 부서를 가지게 될 것이고 사람마다 자기에 맞는 부서명 /부서번호 를 가지게 됩니다. 만약 이 값이 NULL이 된다면 해당 부서의 사람 목록을 찾아오려 할 때 그 사람에 대한 정보가 누락될 수가 있습니다.

그래서 반드시 테이블 내에 입력해야 하는 필수 입력 컬럼을 NOT NULL 제약 조건을 걸어줍니다.


ex) CREATE TABLE emp(

ename VARCHAR2(20) NOT NULL,

empno NUMBER(5) NOT NULL

);

-> 테이블 생성 시 NOT NULL을 입력해 제약 조건을 걸 수 있습니다.


기본키 제약 조건

한 테이블 내에서 칼럼이 동일한 값을 가질 수 없도록 제약 조건을 걸어주는 것입니다. 

만약 동일한 값을 가지게 되면 문제가 생깁니다. 학번의 경우 그 학생을 나타내는 유일한 번호가 되어야 하는데 동일한 값이 있다면 그 학생에 대한 식별이 불가능 해집니다. 


ex) CREATE TABLE emp(

snum NUMBER(5) PRIMARY KEY

);

-> 테이블 생성 시 기본키에 해당하는 컬럼명 뒤에 primary key를 입력


외래 키 제약 조건

관계형 데이터베이스는 데이터가 중복되는 것을 막기 위해 정보를 여러 테이블에 나눠 저장해 두었다가 원하는 정보를 얻기 위해 여러 테이블을 연결하여 사용합니다.

이 때 특정 테이블의 칼럼이 다른 테이블의 칼럼을 참조하게 되는 경우가 생깁니다. 이러한 칼럼을 외래키라고 합니다.

예를 들어 회사 사원 테이블에는 사원에 대한 정보와 부서번호/부서명 칼럼이 존재할 것입니다. 하지만 부서에 대한 정보는 담고 있지 않습니다. 부서에 대한 정보는 부서테이블에 정보가 담겨 있겠죠.

그렇다면 사원 테이블의 부서번호와 부서 테이블의 부서번호가 서로 연결이 된다는 것을 알 수 있습니다.

만약 사원 테이블의 부서번호와 부서 테이블의 부서번호가 일치되는 것이 없다면 부서 정보를 얻어오는데 문제가 발생합니다. 

그래서 서로 참조할 수 있도록 제약을 걸어 둔 것이 외래키 제약 조건 입니다.



반응형
사업자 정보 표시
난길샵 | 박현숙 | 경상북도 성주군 월항면 수죽길 98길 | 사업자 등록번호 : 256-07-01668 | TEL : 010-9909-8420 | Mail : skr04@naver.com | 통신판매신고번호 : 제2020-경북성주-52호 | 사이버몰의 이용약관 바로가기

댓글