학교 공부/데이터베이스

데이터베이스_01~_02

wqdsdsf 2024. 10. 4. 16:55
*우리는 파일을 사용해 데이터를 저장할 수 있는데, 왜 데이터베이스를 따로 구축하고 사용해야 하는지 설명할 수 있나요
    -파일 처리 : 응용 프로그램 작성자가 데이터 구조를 결정, 데이터 공유의 개념이 없음
    -데이터베이스 : 데이터  공유의 개념이 기본임
    
*데이터, 데이터베이스, 데이터베이스 관리 시스템(DBMS)은 각기 어떤 차이가 있을까요?
    -데이터 : 의미를 가지면서 기록될 수 있는 사실
    -데이터베이스 : 서로 연관이 있는 데이터들의 모임
    -데이터베이스 관리 시스템 : 데이터베이스를 생성 관리 할수 있는 소프트웨어 패키지
    -데이터베이스 시스템 : 데이터베이스 자체와 이를 관리하는 이를 관리하는 소프트웨어를 모두 칭하는 용어

*메타 데이터(Meta data)란 무엇이고, 이를 사용하여 표현하는 자기 기술성(Self-describing) 개념은 무엇일까요?
    -메타 데이터 : 데이터베이스 자체에 대한 정보를 말함
    -자기 기술성 : 데이터베이스가 자신의 구조와 내용을 스스로 설명할 수 있는 능력을 의미합니다
    
*트랜잭션이 가져야 하는 주요 성질로 ACID가 있는데, ACID는 각기 무엇의 약어이고 어떤 기능을 의미할까요?
    -원자성(Atomicity) : 트랜잭션을 수행되거나 말거나
    -일관성(Consistency) : 데이터베이스 상태는 일관되어여 함
    -고립성(Isolation) : 트랜잭션이 마치 혼자서 수행된 것 같아야 함
    -지속성(Durability) : 한번 반영된 정보는 지속적으로 반영되어 있어야 함
    
*DBA는 무엇의 약어이며, 데이터베이스 시스템에서 어떤 역할을 하는 사람인가요?
	*데이터베이스 관리자(DBA) : 데이터 베이스 시스템의 관리를 총괄하여 책임지는 사람

*DBMS 관점에서 데이터 중복은 나쁜 개념인가요? 필요한 경우도 있을까요?
	상황에 따라 다르다, 성능 향상을 위해서 응용 프로그램 책임 하에 데이터를 중복 관리함
    
* DBMS 언어에는 대표적으로 DDL과 DML이 있습니다. DDL과 DML의 약어는 무엇이고 각 언어의 기능은 무엇일까요
    DDL(데이터 정의어)(내부 스키마를 정의함) : 개념 스키마와 내부 스키마를정의(create,Drop)
    DML(데이터 조작어)(뷰를 명시하거나 개념 스키마 사이의 사상을  나타냄) : 데이터를 검색, 삽입, 삭제, 수정하기 위한 조작 언어(select, update, insert)

*전통적인 2-층 C/S 아키텍처와 최근 많이 사용되는 3-층 C/S 아키텍처의 가장 큰 차이는 무엇인가요? 어떤 서버가 추가되어 2-층에서 3-층이 될까요?
	 2-층 C/S 아키텍처는 서버-클라이언트 구조면  3-층 C/S 아키텍처는 클라이언트-응용 서버 || 웹 서버 - 서버 구조를 띈다

*3단 스키마 아키텍처를 두는 이유는?
	논리적 데이터 독립성 : 개념 스키마가 변경되어도 외부 스키마는 영향이 끼치지 않는다
    물리적 데이터 독릾성 : 내부 스키마가 변경되어도 개념 스키마에는 영향이 끼치지 않는다.
    
*데이터베이스 특징
    프로그램과 데이터의 분리(프로그램-데이터 독립성) : 데이터 베이스 내의 저장 구조가 변경되어도 데이터베이스 응용 프로그램은 영향을 받지 않음
    데이터 추상화 : 사용자에게 맞는 개념적인 뷰 제공
    데이터에 대한 다양한 뷰 제공 : 데이터 베이스의 일부를 뷰로 정의
    데이터의 공유와 다수 사용자 트랜잭션 처리 : 여러 사용자가 동일한 데이터베이스 공유를 가능하도록 함
    메타 데이터 저장 관리
    => 이러한 특징을 잘 반영하기 위한 아키텍처 : 3단계 스키마 아키텍처
	*3단계 스키마 아키텍처의 목적 : 사용자의 응용과 물리적 데이터베이스의 분리(1단계 : 내부단계, 2단계: 개념 단계, 3단계: 외부 단계)
        내부 단계 : 내부 스키마를 가지며, 내부 스키마는 물리적 데이터 모델을 사용 
        개념 단계: 개념 스키마를 가지며. 전체를 사용자를 위한 데이터베이스 구조를 기술
        외부 단계 : 사용자 뷰들을 포함
    논리적 데이터 독립성 : 외부 스키마나 응용 프로그램을 변경하지 않으면서도 개념 스키마를 변경할 수 있는 능력, 뷰와 테이블 사이으이 독립성을 의미, 테이블 구조-내용 변경 시에도 뷰는 영향을 받지 않음
    물리적 데이터 독립성 : 개념 스키마를 변경하지 않으면서 내부 스키마를 변경할 수 있음,내부 스키마가 변경되더라도 개념 스키마는 영향을 받지 않는 능력을 의미
    장점 : 물리적 및 논리적 독립성 확보가 용이
    단점 : DBMS의 비효율성 처리


*데이터베이스 사용자의 분류
    데이터베이스 관리자 : 데이터 베이스 시스템의 관리를 총괄하여 책임지는 사람
    데이터베이스 설계자 : 데이터 베이스의 설꼐를 책임진 사람
    최종 사용자 : 데이터 베이스에 대하여 질의하고 변경하고 보고서를 작성하는 사람
    시스템 분석가-응용 프로그래머 : 초보 사용자를 위하여 잘 정의된 기능의 응용을 분석 설계하고 구현하는 사람
    무대 뒤의 사람들
    	DBMS 설계 및 구현자 : DBMS 소프트웨어 자체를 설계하고 구현하는 업무를 담당하는 사람
        도구 개발자 : 데이터베이스를 사용하는 데에 필요한 도구들을 설계하고 구현하는 사람들
        운영 및 유지 보수 요원 : 데이터베이스 시스템 운영에 필요한 HW 및 SW 운영 및 유지보수 담당 요원들
 
 *DBMS의 장점
    데이터 중복성의 제어 및 중복의 최소화 : 동잃한 데이터가 중복되어 저장되는 것을 방지 , 중복 제어를 통한 데이터의 일치성 보장, 메모리 낭비 방지
    보안 기능 : 권한 없는 사용자의 데이터 접근을 통제
    지속성 기억 공간 제공 : 프로그램 수행이 끝나더라도 관련 데이터-객체는 그 값을 저장하고 있어야함(영구 저장)
    효율적 질의처리를 위한 저장 구조 제공 : 레코드의 신속한 검색을 위해 인덱스 제공
    백업과 회복 기능 제공 : 시스템 고장 시에도 데이터의 일관성을 보장
    데이터베이스의 무결성 제약 조건의 시행 : 각 속성 값이 가져야 하는 제약 조건
    규칙을 사용한 추론과 수행 : 데이터 베이스에 저장된 사실로부터 새로운 정보를 추론
    동시성 제어 기능 제공(트랜잭션) : 여러 사용자가 동시에 DB에 접근하여 효율적으로 칠
    데이터 독립성 제공  : 쉽게 사용할수 있고, 응용 프로그램 개발이 용이함
    표준화된 데이터 관리, 응용프로그램의 개발 시간 단축, 항상 최신의 정보를 제공, 데이터 구조 변경에 따른 융통성 부여

*DBMS의 분류 기준
	데이터 모델에 따른 분류 : 관계 모델,네트워크 모델,계층 모델,객체지향 모델,객체-관계 모델
    사용자의 수에 따른 분류,사이트의 수에 따른 분류,비용에 따른 분류,접근 경로 유형에 따른 분류,범용 또는 특수 목적용,개념적 데이터 모델,논리적 데이터 모델    
*클라이언트-서버 아키텍처
	클라이언트-서버 아키텍처의 구조와 특징 : 특정 기능을 수행하는 특별한 서버를 지정, 여러 서버가 메인 프레임의 기능을 분산해서 수행
    
*기존 파일 처리시스템 대비 데이터베이스의 장점 : 표준화된 데이터 관리, 프로그램 개발의 시간 단축,실시간성, 규모의 경재성    
*DBMS 언어
	DDL(데이터 정의어) : 개념 스키마와 내부 스키마를 정의함
    DML(데이터 조작어) : 데이터를 삽입,삭제,수정,검색하기 위한 조작 언어

*데이터베이스 시스템 유틸리티 : 
	-적재  : 데이터 파일을 자동적으로 데이터베이스 파일의 형식으로 변화해서 저장함
    -백업 : 전체 데이터베이스를 백업장치에 복사하여 데이터베이스의 백업 사본을 만듦
    -파일 재조직 : 성능 향상을 위해 데이터베이스 파일 구조를 다른 파일 구조로 재조직함
    -성능 모니터링 : 사용 통계를 관리자에게 제공