What is DataBase

kio·2023년 6월 4일
0

CS

목록 보기
5/30

DataBase

정의\
여러 사람에 의해 공유되어 사용될 목적으로 통합하여 관리되는 데이터의 집합을 말한다.

왜 데이터베이스를 사용하는가? (파일시스템을 사용하지 않는 이유)

  • 데이터간의 불일치 발생
    - 중복된 데이터의 변경을 제어하는 것이 어렵기 때문에 여러 개의 중복 데이터 중 일부의 데이터만 변경된다고 하면, 중복된 데이터 간에 불일치가 발생할 수 있다.
  • 다수의 사용자의 동시성 제어 불가
    - 두 사용자가 동시에 파일에 접근할 때 각 사용자가 혼자서 데이터베이스를 접근하는 것처럼 인식하도록 하는 동기화가 되지 않는다.
  • 쉬운 쿼리가 없다
  • 보안, 회복 기능의 부재
  • 데이터의 독립성이 없다.
    - 파일의 구조가 응용 프로그램에 반영되어 있기 때문에 파일의 구조가 바뀌면 영향을 받는 모든 응용 프로그램들을 수정해야 한다. 이는 큰 유지보수 비용을 요구한다.
  • 데이터 무결성을 유지하기가 어렵다.

데이터베이스의 특징

  • 실시간 접근성
    - 데이터베이스는 실시간으로 서비스된다. 사용자가 데이터를 요청하면 몇시간이나 몇 일 뒤애 결과르 전송하는 것이 아니라 수초 내에 결괄ㄹ 서비스한다. 실시간이란 사용자가요청하는 순간에실제 데이터를 서비스하는 것을 말한다.
  • 계속적인 변화
    - 데이터베이스에 저장된 내용은 어느 한 순간의 상태를 나타내지만, 데이터 값은 시간에 따라 항상 바뀐다. 데이터베이스는 삽입, 삭제, 수정등의 작업으로 바뀐 데이터 값을 장한다.
  • 동시공유
    - 데이터베이스는 서로 다른 업무 또는 여러 사용자에게 동시에 공유된다. 동시는 병행이라고도 하며, 데이터베이스에 접근하는 사용자 데이터 요청 프로그램이 동시에 여러 개 있다는 의미다.
  • 내용에 따른 참조
    - 데이터베이스에 저장된 데이터는 데이터의 물리적인 위치가 아닌 데이터 값에 따라 참조 된다. 사용자가 원하는 데이터를 얻기 위해 데이터 값을 사용하여 조건을 제시하면 데이터베이스는 이에 해당하는 데이터를 검색해준다.

데이터 보안 3요소

  • 무결성(integrity)
    - 데이터베이스를 사용할려면 자료에 오류가 없어야 한다. 최초에 오류가 없더라도 추가,갱신,삭제 등으로 오류가 발생 가능한데, 권한자만 자료를 수정이 가능하도록 해야 한다.
  • 가용성(availability)
    - 권한을 가진 사용자가 데이터베이스에 접근할 수 있도록 하는 것을 말한다. 즉, 권한자의 접근을 거부하면 안된단 뜻이다. 가용성이 없으면 권한자나 프로그램이 자료사용이 불가한 경우가 발생한다.
  • 기밀성(confidentiality)
    - DBMS가 기술적으로 외부위협으로부터 자료 기밀을 보호해야 한다는 뜻이다. 기밀성은 권한없는 사용자에게 자료노출을 방지하는 기능이다.

해결책\

  • 접근제어
  • 추론제어
  • 흐름제어
  • 암호화 등

데이터베이스의 개념적 구성요소

개체(Entity)

현실세계에 대해 사람이 생각하는 개념이나 정보의 단위
ex ) 학생, 회사원, 유저 등등

관계(Relationship)

개체, 속성들의 관계
ex ) 담임선생님, 지도교수 등등

이러한 관계는 두가지로 나뉜다.

  • 속성관계 : 속성들 간의 관계
  • 개체관계 : 개체 집합의 관계

속성(Attribute)

저장할 필요가 있는 개체에 관한 정보로, 개체의 특성 및 상태를 기술합니다
ex ) 학생 테이블의 속성은 이름, 학번, 학과 등등

이러한 속성도 두가지로 나뉜다.

  • 단순 속성 : 값을 더 이상 나눌 수 없는 속성
  • 복합 속성 : 2개 이상의 의미있는 값으로 분해할 수 있는 속성

중요한 개념과 용어

스키마(schema)

스키마는 데이터베이스의 구조와 제약 조건에 관한 전반적인 명세를 기술한 메타데이터의 집합이다.

스키마의 3계층
1. 외부 스키마(External Schema) - 서브스키마
- 하나의 데이터베이스 시스템에는 여러개의 외부 스키마가 존재할 수 있으며 하나의 외부 스키마를 여러개의 응용 프로그램이나 사용자가 공용할 수도 있다.
- 같은 데이터베이스에 대해서도 서로 다른 관점을 정의할 수 있도록 허용한다.
- 일반 사용자는 질의어(SQL)을 이용하여 DB를 쉽게 사용할 수 있다.
2. 개념 스키마(Conceptual Schema) - 단순스키마
- 개념스키마는 개체간의 관계와 제약 조건을 나타내고 데이터베이스의 접근 권한, 보안 및 무결성 규칙에 관한 명세를 정의한다.
- 데이터베이스 파일에 저장되는 데이터의 형태를 나타내는 것이다.
3. 내부 스키마(Internal Schema)
- 내부스키마는 실제로 데이터베이스에 저장될 레코드의 물리적인 구조를 정의하고, 저장 데이터 항목의 표현방법, 내부 레코드의 물리적 순서 등을 나타낸다.
- 내부 스키마는 물리적 저장장치의 입장에서 본 데이터베이스 구조로, 물리적인 저장장치와 밀접한 계층이다.

View

뷰는 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된, 이름을 가지는 가상 테이블이다.

view의 장점
1. 논리적 데이터 독립성을 제공한다.
2. 동일 데이터에 대해 동시에 여러사용자의 상이한 응용이나 요구를 지원해 준다.
3. 사용자의 데이터관리를 간단하게 해준다.
4. 접근 제어를 통한 자동 보안이 제공된다.
view의 단점
1. 독립적인 인덱스를 가질 수 없다.
2. ALTER VIEW문을 사용할 수 없다. 즉 뷰의 정의를 변경할 수 없다.
3. 뷰로 구성된 내용에 대한 삽입, 삭제, 갱신, 연산에 제약이 따른다.

SQL Injection

해커에 의해 조작된 쿼리문에 DB에 그대로 전달되어 비정상적 명령을 실행시키는 공격 기법

파티셔닝

소프트웨어적으로 데이터베이스를 분산 처리하여 성능이 저하되는 것을 방지하고 관리를 보다 수월하게 하는 것

샤딩

동일한 스키마를 가지고 있는 여러대의 데이터베이스 서버들에 데이터를 작은 단위로 나누어 분산 저장하는 기법이다.

파티셔닝 vs 샤딩\
파티셔닝은 모든 데이터를 동일한 컴퓨터에 저장하지만, 샤딩은 데이터를 서로 다른 컴퓨터에 분산한다는 점이다.

0개의 댓글