# 데이터베이스




# 오라클 시퀀스(Oracle Sequence)

UNIQUE한 값을 생성해주는 오라클 객체

시퀀스를 생성하면 PK와 같이 순차적으로 증가하는 컬럼을 자동 생성할수 있다.

CREATE SEQUENCE 시퀀스이름
	START WITH n
	INCREMENT BY n ...



# DBMS란?

데이터베이스 관리 시스템

다수의 사용자가 데이터베이스 내의 데이터를 접근할 수 있도록 설계된 시스템



# DBMS의 기능은?

  • 정의 기능(DDL: Data Definition Language)

    • 데이터베이스가 어떤 용도이며 어떤 식으로 이용될것이라는 것에 대한 정의가 필요함
    • CREATE, ALTER, DROP, RENAME
  • 조작 기능(DML: Data Manipulation Language)

    • 데이터베이스를 만들었을 때 그 정보를 수정하거나 삭제 추가 검색 할 수 있어야함
    • SELECT, INSERT, UPDATE, DELETE
  • 제어 기능(DCL: Data Control Language)

    • 데이터베이스에 접근하고 객체들을 사용하도록 권한을 주고 회수하는 명령
    • GRANT REVOKE



# UML이란?

프로그램 설계를 표현하기 위해 사용하는 그림으로 된 표기법

이해하기 힘든 복잡한 시스템을 의사소통하기 위해 만듬



# DB에서 View는 무엇인가? 가상 테이블이란?

허용된 데이터를 제한적으로 보여주기 위한 것

하나 이상의 테이블에서 유도된 가상 테이블이다.

  • 사용자가 view에 접근했을 때 해당하는 데이터를 원본에서 가져온다.

view에 나타나지 않은 데이터를 간편히 보호할 수 있는 장점 존재



# 정규화란?

중복을 최대한 줄여 데이터를 구조화하고, 불필요한 데이터를 제거해 데이터를 논리적으로 저장하는 것

이상현상이 일어나지 않도록 정규화 시킨다!



# 이상현상이란?

릴레이션에서 일부 속성들의 종속으로 인해 데이터 중복이 발생하는 것 (insert, update, delete)



# 데이터베이스를 설계할 때 가장 중요한 것이 무엇이라고 생각하나요?

무결성을 보장해야 합니다.

# 무결성 보장 방법은?

데이터를 조작하는 프로그램 내에서 데이터 생성, 수정, 삭제 시 무결성 조건을 검증한다.

트리거 이벤트 시 저장 SQL을 실행하고 무결성 조건을 실행한다.

DB제약조건 기능을 선언한다.



# 데이터베이스 무결성이란?

테이블에 있는 모든 행들이 유일한 식별자를 가질 것을 요구함 (같은 값 X)

외래키 값은 NULL이거나 참조 테이블의 PK값이어야 함

한 컬럼에 대해 NULL 허용 여부와 자료형, 규칙으로 타당한 데이터 값 지정



# 트리거란?

자동으로 실행되도록 정의된 저장 프로시저

(insert, update, delete문에 대한 응답을 자동으로 호출한다.)

# 사용하는 이유는?

업무 규칙 보장, 업무 처리 자동화, 데이터 무결성 강화



# 오라클과 MySQL의 차이는?

일단 Oracle이 MySQL보다 훨~씬 좋음

오라클 : 대규모 트랜잭션 로드를 처리하고, 성능 최적화를 위해 여러 서버에 대용량 DB를 분산함

MySQL : 단일 데이터베이스로 제한되어있고, 대용량 데이터베이스로는 부적합. 작은 프로젝트에서 적용시키기 용이하며 이전 상태를 복원하는데 commit과 rollback만 존재



# Commit과 Rollback이란?

Commit : 하나의 논리적 단위(트랜잭션)에 대한 작업이 성공적으로 끝났을 때, 이 트랜잭션이 행한 갱신 연산이 완료된 것을 트랜잭션 관리자에게 알려주는 연산

Rollback : 하나의 트랜잭션 처리가 비정상적으로 종료되어 DB의 일관성을 깨뜨렸을 때, 모든 연산을 취소시키는 연산



# JDBC와 ODBC의 차이는?

  • JDBC 자바에서 DB에 접근하여 데이터를 조회, 삽입, 수정, 삭제 가능 DBMS 종류에 따라 맞는 jdbc를 설치해야함

  • ODBC 응용 프로그램에서 DB 접근을 위한 표준 개방형 응용 프로그램 인터페이스 MS사에서 만들었으며, Excel/Text 등 여러 종류의 데이터에 접근할 수 있음



# 데이터 베이스에서 인덱스(색인)이란 무엇인가요

  • 책으로 비유하자면 목차로 비유할 수 있다.
  • DBMS에서 저장 성능을 희생하여 데이터 읽기 속도를 높이는 기능
  • 데이터가 정렬되어 들어간다
  • 양이 많은 테이블에서 일부 데이터만 불러 왔을 때, 이를 풀 스캔 시 처리 성능 떨어짐
  • 종류
    • B+-Tree 인덱스 : 원래의 값을 이용하여 인덱싱
    • Hash 인덱스 : 칼럼 값으로 해시 값 게산하여 인덱싱, 메모리 기반 DB에서 많이 사용
    • B>Hash
  • 생성시 고려해야 할 점
    • 테이블 전체 로우 수 15%이하 데이터 조회시 생성
    • 테이블 건수가 적으면 인덱스 생성 하지 않음, 풀 스캔이 빠름
    • 자주 쓰는 컬럼을 앞으로 지정
    • DML시 인덱스에도 수정 작업이 동시에 발생하므로 DML이 많은 테이블은 인덱스 생성 하지 않음



최종 수정 : 12/17/2022, 7:23:59 AM