본문 바로가기

기술 너머의 문화

데이터베이스란 무엇일까(DBMS)-1

#DBMS란 #스키마의 종류 #논리스키마 #관계형모델 #트랜잭션 

 

최근 국민 은행에서 마이데이터를 연결하면 나한테 무려 8000원상당의 스벅 기프티콘을 준다고 했다.  

난 그냥 일반 시민인데동 ;;ㅎㅎ 

 

지금 데이터는 엄청나게 가치있다 .

 

예를들어

20대여자는 이런걸 소비하며 사는구나,  잔고는 이만큼이고, 청약은 얼마고, 대출은 얼마구나 .. 이런거 


 

 

데이터베이스 ..  = 쉽게 말해 데이터의 집합 . 뭉텅이이다 .  

좋은 데이터란 뭘까 . 데이터는 쓸모가 있어야한다 . 

이 때 데이터하나에는 하나의 값만 대응되어야 한다 . 

당연하다 . 같은 데이터를 두고 여러개의 값이 대응되는 것은 정확하지 않다 

(데이터의 무결성 integrity )

서로 관련이 있어야 하고,  중복되지 않아야한다 . 

동시접근해도 문제가 없어야한다 . 

 

이렇게 데이터를 잘~ 관리해주는 것이 DBMS이다 . 

DBMS = DATA BASE MANAGEMENT SYSTEM 

그니까 얘는 소프트웨어의 일종이다 . 


데이터베이스는 파일의 모음이다 

파일은 레코드의 모음이다 

레코드는 필드의 모음이다 . 

 

필드에는 정해진 값만 들어간다 

예를들어 이름 필드라면 .. 이명박 박근혜 문재인 이런거 ㅎ

요런 파일이 n 개 있는것이 데이터 베이스임다 . 


요즘의데이터는 겁나 방대하다 .

연결관계도 복잡하다 . 무작정 서랍에 착착 넣는다고 되는 일이 아니다 .

그래서 우리는 요놈을 설계해야 한다 . 

 

데이터 베이스의 설계를 <스키마>라고 한다. 

물리적설계 (물리스키마) / 논리적 설계 (논리스키마) / 뷰 단계 로 나눌 수가 있겠다 . 

물리적 단계(=내부 단계) 저장장치의 내부에 실질적으로 데이터가 저장될 위치와 구조를 결정  . 하드웨어와의 상호작용 
논리적 단계(=개념 단계 ) 데이터의 종류와 관계를 설계
뷰 단계(=외부단계 ) 사용자와 상호작용하는 과정을 설계
사용자한테 보여줘야 되니까 (VIEW) 라는 용어를 쓴다 . 

 

 


글쿠만 . .그렇다면 데이터의 종류와 관계를 설계한 논리적 설계에 대해 조금 더 알아보자는 . 

 

계층형 모델 / 네트워크모델 / 관계형 모델(테이블형 ) 으로 나눈다 . 

 

그 중에서도 관계형 모델에 대해 좀 더 알아보자 . .

왜냐면 최근에 젤루 많이 쓰니까 


관계형 모델.  

 

이 모델의 가장 큰 특징은 , 관계라고 부르는 테이블로 이루어져 있다는거다. 

(관계 사례-relation instance 는 이 관계에 들어가는 값을 말합니다)이 일부인 필드를 다른 테이블에서 겹치게 사용(중복)하면서  관계가 정의된다는 거다 . 

 

이 테이블의 행을 튜플 , 열을 속성 이라고 일컫는다 .

 

만약에 데이터베이스에 복수의 접근 및 변경이 일어난다면 ? ?

값이 정확해지지 않을 수 있다 . 얘는 a로 입력하였는데 쟤는 b로 입력할 수도 있으니까 .. 

 

그 문제를 해결하기 위해 트랜잭션이라는 개념이 사용된다 

 

트랜잭션 

: 단위 이름이다 . 연필 한 다스 할때 '다스' 같은거  ㅎㅎ

데이터베이스의 상태를 변화시키려면 뭔가 작업을 해야하지 않겠는가 ? 

작업은 명령어의 집합으로 이뤄졌다 

특히 데이터베이스를 다룰때는 SQL 명령어를 사용하게 된다  .

 

이 작업단위를 트랜잭션이라고 한다. 


그러면 명령어 집합(트랜잭션) 을 어떻게 짜야 잘 짰다고 소문이 날까  ? 

 

아래 네 가지 특성을 만족시킨다 . 

 

원자성 트랜잭션에 포함된 모든 명령어가 한번에 처리되어야한다 . 
아님 아무것도 실행 안하던가 . 
일관성 작업 처리결과는 항상 일관성 있어야한다.  
독립성 (=고립성 ) 하나의 트랜잭션은 다른 트랙잭션과 완전히 분리되어있다. 
방해를 받지 않는다 . 
지속성 트랜잭션의 결과는 영구적으로 반영된다 . 

 

CF) COMMIT과 ROLLBACK 

더보기

commit : 하나의 트랜잭션이 성공적으로 실행되었음을 알려주기 위해 사용하는 연산 

rollback : 트랜잭션 처리중 비정상적으로 종료된 경우(- 원자성이 깨짐)