ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 03.15 수업
    학교 수업 정리/데이터베이스 2023. 3. 16. 00:54

    정보를 저장하는 방법은 파일기반(File-based)과 데이터베이스기반(Database-based) 두 가지 방법이 있다.

    파일기반은 기존의 프로그램(C, JAVA)등의 프로그램을 이용해 데이터를 관리하는 방법이다. 데이터 구조를 프로그램 안에서 정의한다. 프로그램과 데이터가 종속되며 데이터구조가 바뀌면 모든 프로그램을 업데이트해줘야 한다.

    데이터베이스기반은 프로그램과 데이터가 분리되어 있고 데이터가 저장될 때 메타데이터(스키마)와 같이 저장된다는 특성이 있다.

    두 가지 방법을 선택할 때는 여러 가지를 고려해서 선택하여야 함. 공통된 데이터가 많다고 하면 중복문제(Redundancy)가 발생해 공간이 낭비되고 데이터의 일관성이 보장되지 않을 수도 있다.(두 개의 부서에서 각각 정보를 가지고 있다가 하나의 부서만 업데이트된 경우)

    데이터베이스기반의 특징 4가지

    1) 데이터베이스가 데이터의 추가정보를 메타데이터로 가지고 있음.

    2) 프로그램과 데이터가 분리.

    3) 데이터에 대한 다중 뷰를 지원.

    4) 다수의 유저가 동시에 데이터를 사용하고 공유할 수 있음.

    전체 데이터중 일부분만 뷰를 통해 볼 수 있음. 여러 개의 부서에서 특정 뷰에 접근할 권한만 주고 뷰레 특정 데이터만 접근하게 설정하면 그 부서는 특정 데이터에만 접근할 수 있다.

    데이터베이스는 운영에 필요한 정보만을 담고 있다. 데이터베이스의 구조에는 테이블이름, 제한 조건, 메타데이터, 데이터 타입, 저장포맷, DBMS소프트웨어등이 포함된다.

    데이터 타입을 도메인이라고 한다.

    pk는 not null + uniqe이다.

    하나의 데이터베이스에서는 많은 뷰를 선언할 수 있다. 뷰는 가상테이블과 같은 개념으로 데이터베이스의 일부분만 보여줄 때 사용한다. 뷰를 사용하면 쿼리를 간단하게 만들 수 있고(뷰를 만들 때 조건을 쓰므로 사용자가 입력할 조건이 줄어든다) 보안이 향상된다. 뷰는 쿼리를 받으면 생성되어 결과를 출력하고 사라진다. 캐싱을 하기도 하지만 캐시를 했는데 원본이 바뀌면 소용이 없으므로 제한적이다.

    동시에 많은 사용자가 데이터베이스에 접근하는 경우 동시성 제어(Concurrency Control)가 매우 중요해진다. 은행시스템 같은 경우 동시에 입출금이 발생했는데 반영이 안 되면 안 된다.

    DBMS를 사용할 경우 장점

    1) 낭비를 막을 수 있음. 저장공간, 시간 등등... 성능도 더 좋게 만들 수 있음.

    2) 허가되지 않은 접속을 차단할 수 있음. 뷰를 이용하는 등의 방법을 이용해 사용자가 접근할 수 있는 데이터를 제한할 수 있음.

    3) 데이터가 계속 남음. 프로그램이 종료되면 데이터가 사라지는 것이 일반적이지만 데이터베이스는 데이터가 남아 나중에 다시 사용이 가능함.

    4) 저장된 데이터에 관한 새로운 규칙 추가가 용이하다.

    5) 다중 유저 인터페이스를 제공한다. 유저가 원하는 기술을 만족시킨다. 쿼리를 여러 방식으로 다양하게 할 수 있다.

    6) 데이터들 간의 복잡한 관계가 있을 때 더 효과적으로 이것들을 다룰 수 있게 해 준다.

    7) 데이터의 무결성을 강화한다. 데이터 타입, fk, uniqe 등을 이용해 중복을 막고 고유한 상태를 유지하게 한다.

    8) 백업과 복구를 제공한다. 데이터베이스는 하드웨어, 소프트웨어적으로 백업과 복구를 지원한다.

    DBMS를 사용하면 안 좋은 경우도 있음. 데이터베이스는 비싸다. 하드웨어, 소프트웨어, 기술자가 필요. 초기비용이 크다. 데이터가 간단하고 잘 정리되어 있고 자주 바뀌지 않는 경우는 파일기반으로 하는 게 낫다. 실시간 서비스가 필요하면 데이터베이스에서는 오버헤드가 발생할 수 있다. 많은 사용자가 같은 데이터에 동시에 접속해야 데이터베이스가 의미가 있다.

    '학교 수업 정리 > 데이터베이스' 카테고리의 다른 글

    03.22 수업  (0) 2023.03.24
    03.20 수업  (0) 2023.03.23
    03.08 수업  (0) 2023.03.09
Designed by Tistory.