CS/데이터베이스

데이터베이스 관리시스템

임종욱 2024. 9. 24. 10:33

데이터베이스 관리 시스템(DBMS)

파일 시스템:

  • 데이터를 파일로 관리하기 위해 파일을 생성, 수정, 삭제, 검색하는 기능을 제공하는 소프트웨어
  • 응용프로그램마다 필요한데이터를 별도의 파일로 관리함

문제점:

  • 같은 내용의 데이터가 여러 파일에 중복저장됨
    • 저장공간의 낭비+ 데이터의 일관성, 무결성을 유지하기 어려움(일관성 무결성은 추후 작성)

가장큰 문제점:

데이터 종속성

응용프로그램이 데이터 파일에 종속적!

사용하는 파일의 구조가 변경된다면 응용프로그램또한 변경되야함..

+ 데이터파일에 대한 동시공유, 보안, 회복(복구, 파악)이 쉽지않음

+그걸 고려하는 프로그램을 만든다면? => 응용프로그램 개발이 쉽지않음

 

데이터베이스 관리시스템 (DBMS)

  • 아 그걸 관리해주는 소프트웨어 만들어 줄게

 

주요기능

  • 정의 기능: 데이터베이스 구조를 정의하거나 수정할수 있음
  • 조작 기능: 데이터를 수정, 삽입, 삭제, 검색 할수 있음
  • 제어 기능: 데이터를 항상 정확, 안전하게 유지할수 있음

데이터베이스 발전과정

 

1세대 : 네트워크(그래프), 계층(트리) 구조로 구성

2세대 : 관계디비 ( SQL) 데이터 베이스를 테이블 형태로 구성

3세대 : 객체지향 디비: 객체지향 즉 클래스에 데이터형태뿐 아니라 "메소드" 존제 => 직렬화(데이터)를 이용해서 객체를 데이터 베이스에 저장 수정 행동 모두 가능

4세대 : 비관계형 데이터베이스

  • 비? 아니다 관계형이 아닌 데이터도 포함해주겠다는것
  • 확장성이 뛰어남: 빅데이터 시대에 적합함 => 분산시스템을 기반으로 확장하기도 좋다
  • 스키마가 존제하지 않거나 흠흠
  • 복제와 샤딩 기법을 사용함으로 고가용성을 보장: 이건 모두에게 가능한것이지만 그럼에도 불구하고 초기 설계부터 포함되어 고려됨

샤딩? : 서버증설시에 기존의 데이터 베이스를 자근단위로 분할 => 분산시스템에서 자세히 기술할것

 

데이터 베이스 구조

데이터 베이스 구조

외부 스키마

  • DB하나에 여러 외부스키마 존재

 

  • 각 사용자가 생각하는 데이터베이스의 모습에 따라 정의
  • -> 논리적 구조가 사용자마다 다름
  • 서브 스키마라고도함

 

 

개념 스키마

  • 데이터 베이스 하나에 개념스키마는 단하나만 존재
  • 데이터베이스 전체의 논리적 구조를 정의한것
  • 조직 전체의 관점에서 생각하는 데이터베이스의 모습

내부스키마

  • 데이터 베이스 하나에 내부스키마는 단하나만 존재
  • 데이터베이스가 저장장치에 실제로 저장되는 방법을 정의한것
  • 레코드구조, 필드 크기, 레코드 접근경로 등 물리적 저장구조를 정의

 

데이터 독립성 실현

스키마사이의 대응관계

외부/개념 : 

개념/내부

=> 각단계 별로 스키마를 유지하며 스키마 사이의 대응관계를 정의

 

 

데이터 독립성

 

하위스키마를 변경하더라도 상위 스키마와 무관

 

논리적 데이터 독립성:

개념 스키마가 변경되었어도 외부스키마는 독립

 

물리적 데이터 독립성:

내부스키마가 변경되었어도 개념스키마는 독립

 

 

데이터 사용자:

최종 사용자 - 데이터베이스에 접근하여 조작하는 사람 

응용프로그래머 - 데이터 언어를 삽입하여 응용프로그램을 작성하는 사람

데이터베이스관리자 - 데이터베이스 시스템을 운영관리 하는사람 : 데이터 정의어, 제어어를 이용

데이터 언어

 

데이터 정의어(DDL) : 스키마를 정의하거나 수정, 삭제 :

CREATE TABLE, ALTER TABLE, DROP TABLE 

 

데이터 조작어(DML): 데이터를 추가,삭제, 검색등..:SQL쿼리

 

데이터 제어어(DCL) : 내부 규칙, 기법을 정의하기 위해 사용

 

 

 

'CS > 데이터베이스' 카테고리의 다른 글

데이터 베이스 기본개념  (0) 2024.09.23