개인공부
데이터 베이스 면접 질문 본문
데이터 베이스 면접 질문들 모음
제약조건
NOT NULL : '필수 입력 사항'을 의미
UNIQUE : 중복성 배제 즉, '유일한 값'으로 존재함을 의미
PRIMARY KEY(기본키) : NOT NULL + UNIQUE로, '테이블에서 대표되는 칼럼'을 의미
FOREIGN KEY(외래키) : '참조하는 테이블에서 존재하는 값만 사용 가능'을 의미
CHECK : '주어진 조건에 해당하는 값만 입력 가능'을 의미
CREATE TABLE topics(
user varchar2(20) NOT NULL,
title VARCHAR2(255) NOT NULL,
lecturekey VARCHAR2(100) NOT NULL,
CONSTRAINT FK_TOPICS FOREIGN KEY(lecturekey)
REFERENCES LECTURE(LID)
);
참조 무결성이란?
외래키 값은 NULL이거나 참조 테이블(릴레이션)의 기본키(Primary Key)값과 동일해야한다.
DBMS란?
데이터베이스를 직접 응용 프로그램들이 조작하는 것이 아니라 데이터베이스를 조작하는 별도의 소프트웨어가 있는데 이를 데이터베이스 관리 시스템(DBMS : DataBase Management System)이라 한다. 즉 데이터베이스 관리 시스템이란 데이터베이스를 관리하며 응용 프로그램들이 데이터베이스를 공유하며 사용할 수 있는 환경을 제공하는 소프트웨어다.
RDBMS란?
Relational database management system. 관계형 모델을 기반으로 한 데이터 베이스 시스템
DB에서의 Commit과 Rollback이란?
Commit : 작성한 쿼리문에서 Update, Delete, Insert를 수행했을 때, 그 쿼리문 수행결과에 대해 확정을 짓겠다는 뜻이다.
Rollback : 쿼리문 수행결과에 대해 번복을 함. 즉, 쿼리문 수행 이전으로 원상복귀 하겠다는 뜻이다(Commit 하기 전에 사용됨).
DB Nomalization(정규화)란?
관계형 데이터베이스에서 중복을 최소화하기 위해서 데이터를 구조화하는 작업입니다.
제1정규형(1NF) : 테이블의 각 셀의 값은 단일값을 가진다.
제2정규형(2NF) : 주키가 합성키며 부분종속이 존재할 경우 2차 정규형의 대상이 된다.
제3정규형(3NF) : 비주키 속성 간에 발생하는 함수적 종속(이전종속)이 발생하면 3차 정규형의 대상이 된다.
DB Nomalization(정규화)의 목적은?
저장 공간 최소화
데이터 무결성 유지
자료구조의 안정성 최대화
효과적인 검색 알고리즘
SQL이란?
Structured Query Language의 약자로 구조화 질의어라고 한다.
데이터 정의어(DDL)와 데디터 조작어(DML)을 포함한 데이터베이스 용 질의 언어(Query Language)의 일종으로 데이터베이스를 사용할 때 데이터베이스에 접근할 수 있는 데이터베이스 하부 언어를 뜻한다.
데이터 검색
전체 자료 조회 : select * from student;
학번이 3번보다 이상인 사람들의 이름과 학번을 조회 : select name, num from student where = num >= 3 order by num desc;
김자로 시작하는 학생의 이름을 조회 : select name from student where name like '김%';
* ORDER BY xx DESC (내림차순)
* ORDER BY xx ASC (오름차순)
DB Transaction(트랜잭션)이란?
트랜잭션(Transaction 이하 트랜잭션)이란, 데이터베이스의 상태를 변화시키기 해서 수행하는 작업의 단위를 뜻한다.
Inner join과 Outer join 차이점
- inner jojn : 조인이 되는 키값을 기준으로 교집합 (Null 값 포함x)
- outer join : 조인이 되는 키값을 기준으로 기준테이블 Key 집합 (기준테이블은 Null값 포함)
DB에서 Index를 사용하는 이유는?
인덱스(Index)는 데이터를 논리적으로 정렬하여 검색과 정렬 작업의 속도를 높이기 위해 사용된다.
* 단점 : 인덱스를 사용하면 데이터를 가져오는 작업의 성능은 향상시킬 수 있지만 데이터 삽입, 변경 등이 일어날 떄 매번 인덱스가 변경되기 떄문에 성능이 떨어질 수 있다.
* 사용대상 : 데이터 필터링과 정렬에 사용되므로, 데이터를 특정한 순서로 자주 정렬한다면 인덱스를 사용하기에 적합
View 테이블을 사용하는 경우는 어떤 경우인가
가상의 테이블이라 하며, View에는 데이터가 들어있는 것이 아닌 SQL에만 저장되어 있음.
View를 사용하는 이유는 보안과 사용자의 편의성 때문. 만약 어떤 테이블에 대해 다른 사용자가 봐서는 안되는 칼럼이 있다면 view를 사용하여 정의된 쿼리의 결과만 볼 수 있게 할 수 있다.
DDL(Data Definition Language) - 데이터 정의어
DDL(Data Definition Language) - 데이터 정의어 란? 데이터베이스를 정의하는 언어이며, 데이터리를 생성, 수정, 삭제하는 등의 데이터의 전체의 골격을 결정하는 역할을 하는 언어 입니다.
CREATE - 데이터베이스, 테이블등을 생성하는 역할을 합니다.
ALTER - 테이블을 수정하는 역할을 합니다.
DROP - 데이터베이스, 테이블을 삭제하는 역할을 합니다.
TRUNCATE - 테이블을 초기화 시키는 역할을 합니다.
DML(Data Manipulation Language) - 데이터 조작어
DML(Data Manipulation Language) - 데이터 조작어란? 정의된 데이터베이스에 입력된 레코드를 조회하거나 수정하거나 삭제하는 등의 역할을 하는 언어를 말합니다.
SELECT - 데이터를 조회하는 역할을 합니다.
INSERT - 데이터를 삽입하는 역할을 합니다.
UPDATE - 데이터를 수정하는 역할을 합니다.
DELETE - 데이터를 삭제하는 역할을 합니다.
DCL(Data Control Language) - 데이터 제어어
DML(Data Manipulation Language) - 데이터베이스에 접근하거나 객체에 권한을 주는등의 역할을 하는 언어를 입니다.
GRANT - 특정 데이터베이스 사용자에게 특정 작업에 대한 수행권한 부여 합니다.
REVOKE - 특정 데이터베이스 사용자에게 특정 작업에 대한 수행 권한을 박탈, 회수 합니다.
COMMIT - 트랜잭션의 작업을 취소 및 원래래 복구하는 역할을 합니다.
ROLLBACK - 트랜잭션의 작업을 취소 및 원래대로 복구하는 역할을 합니다.
'데이터베이스' 카테고리의 다른 글
토드 단축키 (0) | 2018.09.03 |
---|---|
Join 면접 (0) | 2018.08.05 |
PL / SQL - 2 (0) | 2018.04.29 |
PL / SQL - 1 (0) | 2018.04.27 |
동의어 (0) | 2018.04.26 |