데이터베이스 면접 단골질문 정리

wonsik·2023년 3월 19일
1
post-thumbnail

1. 데이터베이스 설계

데이터베이스의 스키마 내에 테이블, 인덱스, 뷰 등의 데이터베이스 객체를 정의하는 것.

스키마 내에 정의한다는 뜻에서 '스키마 설계'라고 한다.

논리명과 물리명

테이블을 설계할 때는 테이블 이름이나 열 이름을 지정하는데, 하나의 테이블에 대해 두 개의 이름을 지정할 때도 있다.

데이터베이스에서 사용될 이름으로, 실제로 create table에 지정하는 이름을 말하며 '물리명'이라 부른다
테이블의 설계상 이름으로 '논리명'이라고 부른다.

ER다이어그램

테이블을 설계할 때 테이블 간의 관계를 명확히 하기 위해 설계도를 작성한다. ER다이어그램은 이 때 널리 쓰이는 도식.

E는 'Entity'의 약자, R은 'Relationship'의 약자이다. 즉 개체 간의 관계를 표현한 것이다.

개체는 사각형, 관계는 선으로 표시한다.

2. 스키마

스키마: 데이터베이스에서 자료의 구조, 자료의 표현 방법, 자료 간의 관계를 형식 언어로 정의한 구조. 외부 스키마, 개념 스키마, 내부 스키마 3층 구조로 되어있다.

특징

데이터 사전(=시스템 카탈로그)에 저장: 데이터베이스에 저장되어 있는 모든 데이터 개체들에 대한 정보를 유지, 관리하는 시스템. DB서버 내에 존재하는 DB의 메타 정보(테이블, 칼럼, 인덱스 등의 스키마 정보)를 모아둔 곳이다.

External Level

사용자 관점에따라 필요한 엔티티와 컬럼이 다른 것을 볼 수 있다.

Conceptual Level

Conceptual Level 은 우리가 흔히 생각하는 엔티티라고 생각하면된다.
단, 개념 스키마가 테이블이라는 의미는 아니다. 필드와 데이터 타입을 나타낸 엔티티라고 생각하면 된다.

각 데이터 파일의 필드들이 저장된다.
Conceptual Level 에 있는 엔티티를 통해서 External Level 에서는 사용자 관점에 따라 외부 스키마가 구성된다.

Internal Level

Conceptual Level 에 있는 엔티티에 저장 크기, 저장 위치, 인덱스, 스토리지 메서드등 실제 데이터에 접근하기 위한 방법들과 구조들을 담고있다.

MySQL에서는 스키마 = 데이터베이스 같은 의미로 사용한다.

3. DBMS 언어

4. 무결성(Integrity)

데이터의 무결성은 데이터의 정확성, 일관성, 유효성이 유지되는 것을 말한다. 주로 데이터에 적용되는 연산에 제한을 두어 데이터의 무결성을 유지한다.

무결성에는 1. 개체 무결성, 2. 참조 무결성, 3. 도메인 무결성 4. 무결성 규칙이 존재한다.

https://untitledtblog.tistory.com/123

5. 트랜잭션(Transaction)

트랜잭션이란 데이터베이스의 상태를 변경시키기 위해 수행하는 작업 단위이다.

데이터베이스의 상태를 변경시킨다는 이야기는 SELECT, UPDATE, INSERT, DELETE 와 같은 행동을 뜻한다.

이런 트랜잭션은 상황에 따라 여러 개가 만들어질 수 있다. 그 하나의 트랜잭션은 Commit(저장)되거나 Rollback(철회)될 수 있다.

트랜잭션에는 1.원자성, 2.일관성, 3.독립성, 4.지속성 특징이 존재한다.

https://wonit.tistory.com/462

profile
새로운 기술을 배우는 것을 좋아하는 엔지니어입니다!

0개의 댓글