데이터베이스 개인공부

데이터베이스 - 데이터베이스 시스템

여파고 2024. 1. 15. 11:19

데이터베이스(Database)

조직에 필요한 정보를 얻기 위해 논리적으로 연관된 데이터를 모아 구조적으로 통합해 놓은 것.

 

데이터, 정보, 지식

  • 데이터 : 관찰의 결과로 나타난 실제 값( 데이터가 어떠한 속성을 가지고 있는지 ...
    정량적(Quantitative) - 수치적 표현(온도, 길이, 무게 등), 혹은
    정성적(Qualitative) - 양적으로 측정하기 어려운(명목형:색깔, 동물의 종류, 혈액형 등, 순서형:학점(A,B,C), 만족도(매우만족, 만족, 보통) 등))
  • 정보 : 데이터에 의미를 부여한 것
  • 지식 : 사물이나 현상에 대한 이해

 

일상생활에서의 데이터베이스

데이터베이스 시스템은 데이터의 검색과 변경 작업을 주로 수행한다.

변경 : 시간에 따라 변하는 데이터 값을 데이터베이스에 반영하기 위해 수행하는 삽입, 삭제, 수정 등의 작업

 

 

  • 통합된 데이터(Integrated data)
    데이터를 통합하는 개념. 각자 사용하던 데이터의 중복을 최소화하여 -> 중복으로 인한 데이터 불일치 현상을 제거
  • 저장된 데이터(Stored data)
    문서가 아니라, 디스크, 테이프 등 컴퓨터 저장장치에 저장된 데이터
  • 운영 데이터(Operational data)
    조직의 목적을 위해 사용되는 데이터. 업무를 위한 검색을 할 목적으로 저장된 데이터
  • 공용 데이터(Shared data)
    한 사람, 또는 한 업무를 위한 데이터가 아닌, 공동으로 사용되는 데이터

 

데이터베이스의 특징

  • 실시간 접근성
    실시간으로 서비스한다. 사용자가 데이터를 요청하면 수 초 내에 결과를 서비스.
  • 계속적인 변화
    데이터 값은 시간에 따라 항상 바뀜(삽입, 수정, 삭제 등의 작업을 통해)
  • 동시 공유성
    서로 다른 업무 또는 여러 사용자에게 동시에 공유. 데이터에 접근하는 프로그램이 여러 개 있다.
  • 내용에 따른 참조
    데이터베이스에 저장된 데이터는 데이터의 물리적인 위치가 아니라 데이터 값에 따라 참조

 

데이터베이스 시스템

  • DBMS(Data Base Management System)
    데이터베이스를 생성, 유지, 관리하고 사용자가 데이터에 접근할 수 있게 해주는 소프트웨어 시스템
    ※DBMS 접근을 위한 언어 -> SQL(Structed Query Language)
  • 데이터베이스
    데이터를 모아 둔 토대
  • 데이터 모델
    데이터가 저장되는 기법에 관한 내용. 데이터를 표현하고 조직화하는 방법을 정의한 구조 또는 체계

 

정보 시스템의 발전

  1. 파일 시스템
    데이터를 파일 단위로 파일 서버에 저장
    각 컴퓨터는 LAN을 통하여 파일 서버에 연결되어 있다
    각 응용 프로그램이 독립적으로 파일을 다루기 때문에 데이터의 일관성 훼손 및 중복 저장 가능성이 있다
  2. 데이터베이스 시스템
    DBMS를 도입하여 데이터를 통합관리하는 시스템
    데이터를 가진 쪽을 서버, 데이터를 요청하는 쪽을 클라이언트
    데이터의 중복을 줄이고 데이터를 표준화하여 무결성을 유지
  3. 웹 데이터베이스 시스템
    데이터베이스를 웹 브라우저에서 사용할 수 있도록 서비스하는 시스템
    불특정 다수를 상대로 하는 이커머스나 공공민원서비스 등에 사용
  4. 분산 데이터베이스 시스템
    여러 곳에 분산된 DBMS 서버를 연결하여 운영하는 시스템
    대규모의 응용 시스템에 사용된다

 

 

프로세스 상태 전이

프로세스가 실행하는 동안 상태가 OS에 의해 변경되는것

운영체제는 프로세스의 상태를 모니터링하고
프로세스 상태를 기반으로 프로세스 스케줄링을 한다.

 

상태 전이 (admitted)

  • 생성(new) ----Admitted----> 준비(ready) : 프로세스 생성을 승인받음
  • 준비(ready, runnable) -------Dispatch------> 실행(running) : 준비 상태에 있는 여러 프로세스 중 하나가 스케줄러에 의해 실행됨
  • 실행(running) -----interrupt() ------> (ready,runnable) : Timeout, 등 이벤트가 발생해서 현재 실행중인 프로세스가 준비상태로 전환되는것
  • 실행(running) -----waiting : 실행중인 프로세스가 입출력이나 이벤트에 의해 대기해야 하는 경우, 입출력이나 이벤트가 끝날때까지 대기해야 하는 경우
  • waiting ---> ready : 다시 준비 상태로 만들어서 스케줄러에 의해 선택될 수 있도록 상태전환

 

 

 

yield() : 양보하다 포기하다. 다른애한테 양보해주는 느낌. "이제 니가 러너블해^^" 

sleep() : 잠깐만 쉬었다가 다시 러너블
join() : 해당 join스레드가 종료될때까지만 일시정지
wait() : 동기화 블럭에서 일시정지... notify()할 때까지 무기한 waiting

interupt() : exception을 만들어서 복귀. or 스레드를 강제종료해서 일시정지 품
notify() : wait를 풀어줌(러너블로 해줌)
notifyAll() : 모든 wait를 풀어줌(러너블로 해줌)

 

반응형