본문으로 바로가기

데이터베이스 용어

category IT인터뷰면접질문 2016. 3. 26. 16:20
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

데이터베이스

데이터베이스는 특정한 방법으로 조직화된 데이터의 집합입니다.

데이터베이스는 플랫 파일 데이터베이스, 관계형 데이터베이스, 분산 데이터베이스 등과 같이 많은 유형이 있습니다.

그 중에서 관계형 데이터베이스는 행과 열로 이루어진 2차원 테이블의 연결 개념을 사용합니다. 사용자는 여러 테이블 사이의 관계를 그릴 수 있고 다시 테이블로 출력을 표시할 수 있습니다.

관계형 프로그래밍은 비 절차형 입니다.


절차형(Procedural)과 비 절차형(non-procedural)

프로그래밍 언어가 조건문(if-then-else, do-while) 같은 프로그래밍 요소들을 사용하면 절차형입니다. SQL은 문장에 이러한 유형을 사용하지 않으며 비 절차형의 예입니다.


SQL

모든 데이터베이스의 질의에 사용되는 언어입니다.

SQL의 이해와 효율적인 사용은 효율적인 데이터베이스 설계에 반드시 필요합니다. 


DBMS

DBMS는 DataBase Management System 의 약자로 데이터 베이스의 관리 시스템을 말합니다. 자료에 대한 사용자의 다양한 요구를 적절히 처리하고 응답해 줌으로써 이를 사용할 수 있도록 해주는 시스템을 의미합니다.

DBMS의 종류에는 DB2, Oracle, Sybase, Postgres, Gemstone 등등 다양하게 있다.


데이터 정의 및 조작

DBMS는 데이터 정의어(DDL : Data Definition Language)와 데이터 조작어(DML : Data Manipulation Language)를 사용합니다. DML은 데이터 형, 데이터 구조, 데이터베이스 일부로의 제약을 명세할 수 있게 합니다. DDL로 정의되는 모든 명세는 데이터베이스에 저장됩니다. DML은 데이터 베이스에 대한 엑세스 권한이 있는 사람들이 데이터를 삽입, 갱신, 삭제 그리고 조회할 수 있게 합니다.

구조화된 질의어(SQL)는 오늘날 사용되는 표준 DML입니다. SQL은 비절차형 언어입니다.


정규화

데이터베이스 정규화는 데이터베이스에서 중복된 데이터를 제거하고, 데이터 조직에 명확성을 향상시키는 방향으로 디자인하는 과정입니다. 

정규화를 통해 관리, 데이터 저장, 확장성 측면에서 데이터베이스의 효율성을 높이고 있습니다. 


데이터 베이스의 정규화는 데이터 베이스 생성시 정규형이라는 일련의 규칙에 의해 달성됩니다. 이러한 규칙은 모두 5개(세 번째 정규형과 네 번째 정규형 사이에 한가지 추가되는) 며 다음과 같습니다.


첫 번째 정규형(1NF) : 테이블의 각 컬럼의 유형은 유일해야 합니다. 릴레이션 R의 모든 속성 값이 원자값을 가지면 제 1정규형이라고 합니다.


이름

특기 

ktko

당구, 헬스 

Cafe

커피만들기

Computer

 계산, 인터넷


1NF 진행시


이름

특기 

ktko 

당구

ktko 

헬스 

cafe 

커피만들기 

computer 

계산 

 computer

인터넷 


두 번째 정규형(2NF) : 개체는 1NF를 만족하고 개체의 모든 속성들은 오직 개체의 고유 식별자(유일키)에만 의존해야 합니다. 릴레이션 R이 제 1정규형이고 기본키가 아닌 속성이 기본키에 완전 함수 종속일 때 제 2정규형이라고 합니다.

* 함수적 종속

A의 값을 알면 B의 값을 알수있거나 A의 값에 따라 B의 값이 달라진다면 B는 A에 함수적 종속(A → B)(A를 결정자, B를 종속자 라고한다)이라고 한다.

완전 함수 종속(Full Functional Dependency) A와 B가 릴레이션 R의 속성이고 A → B 종속성이 성립할 때, B가 A의 속성 전체에 함수 종속하고 부분 집합 속성에 함수 종속하지 않을 경우 완전 함수 종속라고 한다.

부분함수종속(Partial Functional Dependency) 한 속성이 기본키가 아닌 다른 속성에 종속 되거나 기본키가 2개이상의 합성키일경우 이중 일부 속성에 종속 

이행적함수종속(Transitive Functional Dependency) 세가지 종속간의 종속이 (A → B) & (B → C) 일경우 A → C가 성립되는 종속

세 번째 정규형(3NF) : 개체는 2NF를 만족하고 테이블의 키 외에 다른 속성에 의존하는 요소가 존재해서는 안됩니다. 그런 요소가 존재할 경우, 다른 새로운 테이블로 옮깁니다. 3NF가 될성되면 데이터베이스는 정규화된것으로 간주합니다.

BCNF(보이스 코드 정규화) : 데이터베이스가 3NF를 만족하고 모든 테이블들은 오직 하나의 기본키를 가져야 합니다.

네 번째 정규형(4NF) : 테이블은 하나의 키(Primary Key)에 여러 값을 가질 수 없습니다.

다섯 번째 정규형(5NF) : 합성키에 순환 종속성이 없어야 합니다.

* http://beansberries.tistory.com/entry/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%A2%85%EC%86%8D%EC%84%B1%EA%B3%BC-%EC%A0%95%EA%B7%9C%ED%99%94 참조하시기바랍니다. 설명 잘되어 있네요 !


정규화된 데이터 베이스 설계의 장단점

정규화된 데이터베이스는 응용 프로그램이 쓰기에 편중되었을 때 즉, 쓰기 부하가 읽기 부하보다 클 때 매우 적합합니다.

이것은 다음과 같은 이유가 있습니다.

  • 정규화된 테이블은 일반적으로 크기가 작고, 더 작은 데이터 공간을 가지는 것은 한 테이블 보다 많은 테이블로 수직 분할합니다. 이것은 버퍼에 저장되기에 알맞은 작은 크기여서 수행을 더 잘할  수 있습니다.
  • 업데이트할 데이터가 하나의 장소에 위치하고 중복이 없어 업데이트가 매우 빠릅니다.
  • 같은 이유로, 데이터가 한 곳에 삽입되고 중복되지 않기 때문에 삽입이 매우 빠릅니다.
  • 단일 테이블에서 데이터를 가져올 때 일반적으로 정규화된 테이블은 버퍼에 저장되기 알맞은 작은 크기이기 때문에 조회가 빠릅니다.
  • 데이터가 중복되지 않기 때문에 무겁고 복잡한 group by와 distinct 질의가 덜 필요합니다.
역정규화된 데이터베이스 설계의 장단점
역정규화는 읽기 부하가 무겁고 어플리케이션이 읽기 집중적일 때 정말 좋습니다. 이유는 다음과 같습니다.
  • 데이터가 같은 테이블에 존재하기 때문에 어떤 조인도 필요없습니다. 따라서 Select가 매우 빠릅니다.
  • 필요한 모든 데이터를 가진하나의 테이블은 더 효율적으로 인덱스를 사용할 수 있습니다. 컬럼이 적절하게 인덱싱된 경우 결과는 동일한 인덱스를 이용해서 거르고 정렬할 수 있습니다. 정규화된 데이터의 경우 이러한 데이터가 서로 다른 테이블에 분산되어 있기 때문에 불가능합니다.




'IT인터뷰면접질문' 카테고리의 다른 글

자바 면접 손코딩 예상 문제  (10) 2018.10.04
개발자 면접 질문(자바, 스프링)  (5) 2018.10.04
프로그래머 면접 질문2  (6) 2016.03.31
운영체제 시스템 개념  (0) 2016.03.26
데이터베이스 질문들  (0) 2016.03.26