danbibibi
article thumbnail

DBMS (Database Management System)

: 어떤 조직에 대한 모든 정보를 가지고 있는 시스템으로, 데이터를 체계적으로 저장, 관리, 운영할 수 있도록 잘 조직화한 것

  • 서로 관련된 데이터들의 집합, 데이터에 접근하기 위한 프로그램의 집합 (DB)
  • + 데이터와 프로그램을 쉽고 편리하게 사용할 수 있는 환경 ( = DBMS)

( * DBMS는 DB에 정보를 저장하고, 또 이를 검색하기 위한 편리하고 효율적인 환경을 제공)

 

DBMS 목적

  • DBMS 이전에는 파일 시스템을 이용해 데이터를 관리
  • 이 경우, 데이터 중복, 비일관성, 고립, 무결성 등의 문제가 발생 !

→ 이러한 문제를 해결하기 위해 DBMS 등장!

 

DBMS 특징

데이터의 독립성

  • 물리적 독립성 : 응용 프로그램이 물리적 스키마(크기 등)에 의존하지 않아서 물리적 스키마가 변동되어도 고칠 필요가 없는 것
  • 논리적 독립성 : 논리적인 구조로 다양한 응용 프로그램의 논리적 요구를 만족시켜줄 수 있음

데이터의 무결성

  • 데이터의 정확성, 일관성, 유효성이 유지되는 것
  • 정확성 : 데이터가 실제로 나타내는 값이 정확하고 올바른지, 중복이나 누락이 없는 상태
  • 일관성 : 데이터가 시간이 지나더라도 언제나 일관된 상태를 유지, 원인과 결과의 의미가 연속적으로 보장되어 변하지 않는 상태
  • 유효성 : 데이터가 정해진 규칙과 제약 조건에 부합 ex) 나이는 음수일 수 x
  • 개체 무결성, 참조 무결성, 도메인 무결성, Null 무결성, 고유 무결성, 키 무결성, 관계 무결성
데이터베이스 무결성 규칙 
: 일관성과 신뢰성을 보장하기 위해 존재

1. 개체 무결성(기본 키 제약) : 기본 키에는 null 값이 올 수 없고, 기본키는 고유함.
2. 참조 무결성(외래 키 제약) : 외래 키 값은 null이거나, 참조 릴레이션의 기본키 값과 동일해야 함.
    ( 관계형 데이터베이스에서 두 테이블 간의 관계를 유지하고 보증하는 것을 의미 )
3. 도메인 무결성 : 올바른 데이터가 입력되었는지 확인하는 조건

- Null 무결성 : 테이블의 특정 속성 값이 Null 값이 될 수 없도록 하는 조건
- 고유 무결성 : 테이블의 특정 속성에 대해 각 레코드들이 갖는 값이 서로 달라야 하는 조건
- 키 무결성 : 하나의 테이블에는 적어도 하나의 키가 존재해야 하는 조건
- 관계 무결성 : 레코드 삽입 가능 여부, 테이블 간 레코드 관계에 대한 적절성 여부를 지정하는 조건

장점
스키마를 정의 시 일관성 조건을 명시하면, 데이터베이스가 갱신될 때 DBMS가 자동적으로 일관성 조건을 검사하므로
응용 프로그램들은 일관성 조건을 검사할 필요가 없음 (잘못된 데이터의 삽입, 갱신, 삭제를 방지하여 데이터의 높은 신뢰성 유지)

단점
프로그래밍 복잡도가 증가하고, 무결성 제약조건 간 충돌이 발생할 수 있음

 

데이터의 보안성

  • 인가된 사용자들만 데이터베이스나 데이터 베이스 자원에 접근할 수 있도록 함
  • 계정 관리, 접근 권한 설정 등

데이터의 일관성

  • 연관된 정보를 논리적인 구조로 관리
  • 데이터 변경시 발생할 수 있는 데이터의 불일치성 해결

데이터 중복 최소화

  • 데이터를 통합해서 관리
  • 파일 시스템의 단점 중 하나인 자료의 중복과 데이터의 중복성 문제를 해결

 

데이터의 관점

 

physical level

: record를 물리적 저장장치에 어떻게 저장할 것인지.

logical level

: 데이터들의 논리적 관계, 즉 record가 어떻게 구성되는지 기술함.

  • 스키마 - 데이터베이스의 논리적 구조 (물리적 스키마/논리적 스키마) ≈ 변수
  • 인스턴스 - 데이터베이스의 실제 내용물 ≈ 변수에 저장된 값

view level

: 응용 프로그램에서 데이터의 일부를 보안상의 목적으로 숨길 수 있음.

 

 

DB 언어

  • DDL (데이터 정의 언어): 데이터베이스 스키마를 정의
  • DML (데이터 조작 언어): 데이터베이스 질의 및 갱신에 사용

 

DB 설계

논리적 설계

: 데이터베이스 구조를 결정하는 과정으로 설계자는 좋은 관계형 스키마들의 집합을 찾아야 한다.

  • 비즈니스 관점: 데이터베이스에 어떤 속성들이 저장되어야 하는가?
  • 컴퓨터과학 관점: 어떤 관계형 스키마에 어떤 속성들이 저장되어야하며 서로 다른 관계형 스키마들이 어떤 속성으로 연결되어야 하는가!

물리적 설계

: 데이터 베이스의 물리적 구조

 

DB 성능

  • 디스크 I/O를 어떻게 줄이는지에서 시작
  • 디스크 헤더의 위치 이동 없이 얼마나 많은 데이터를 한 번에 기록하는지
  • 순차 I/O가 랜덤 I/O보다 빠름 (but, 현실은 대부분의 작업이 랜덤 I/O) 
  • 랜덤 I/O를 순차 I/O로 바꿔서 실행할 수는 없을까? (데이터 베이스 쿼리 튜닝)
profile

danbibibi

@danbibibi

꿈을 꾸는 시간은 멈춰 있는 것이 아냐 두려워하지 마 멈추지 마 푸른 꿈속으로