면접 예상 질문
- 파일시스템과 데이터베이스의 차이점에 대해서 설명해주세요.
파일 시스템과 데이터베이스는 데이터를 저장하고 관리하는 방식에서 차이가 있습니다.
파일 시스템은 데이터를 파일과 디렉터리로 구성하여 저장하며, 데이터의 구조화된 쿼리나 복잡한 연산을 지원하지 않습니다.
반면, 데이터베이스는 구조화된 테이블로 데이터를 저장하고 SQL과 같은 쿼리 언어를 사용하여 효율적으로 데이터를 관리하고 검색할 수 있습니다.
데이터베이스는 데이터의 무결성과 보안을 강화하며, 동시 액세스와 대량의 데이터 처리에도 효과적입니다.
- 데이터베이스의 특징에 대해 설명해주세요.
데이터베이스는 데이터의 무결성과 일관성을 보장하여 정확하고 안정적인 정보를 제공합니다.
또한 복잡한 쿼리를 지원하며, 여러 사용자가 동시에 접근하고 데이터를 수정할 수 있는 동시성 제어 기능을 제공합니다.
또한 데이터베이스는 보안과 권한 관리를 강화하여 민감한 정보를 안전하게 보호할 수 있습니다.
이와 함께 데이터의 백업과 회복 기능을 제공하여 데이터 손실을 방지하고 비즈니스 연속성을 유지할 수 있습니다.
데이터베이스는 대용량의 데이터를 처리할 수 있고, 효율적인 인덱싱과 쿼리 최적화를 통해 빠른 검색 및 분석을 지원하여 기업이나 조직이 중요한 의사 결정을 내릴 때 필요한 신뢰할 수 있는 정보를 제공합니다.
- DBMS는 뭘까요? 특징에 대해 설명해주세요.
DBMS는 데이터베이스 관리 시스템(Database Management System)의 약자로, 데이터를 구조화하고 관리하는 소프트웨어입니다.
DBMS는 데이터의 안정성, 일관성, 무결성을 보장하며, 데이터를 효과적으로 저장, 검색, 갱신, 삭제할 수 있는 기능을 제공합니다.
또한 여러 사용자가 동시에 데이터에 접근할 때 데이터의 일관성과 무결성을 유지하기 위한 동시성 제어 기능을 갖추고 있습니다.
DBMS는 복잡한 쿼리를 지원하고, 데이터를 보안적으로 관리하며 권한을 효과적으로 제어할 수 있는 기능을 제공하여 데이터의 기밀성을 유지합니다.
더불어 데이터의 백업과 회복 기능을 제공하여 데이터 손실을 방지하고 시스템의 안정성을 확보합니다.
이러한 특징들은 DBMS를 엔터프라이즈 수준의 응용 프로그램과 정보 시스템에서 필수적인 도구로 만듭니다.
그 예시로 오라클, mysql,PostgreSQL,MongoDB 등이 있습니다.
- 스키마가 뭘까요? 3단계 데이터베이스 구조에 대해 설명해주세요.
데이터베이스에서 스키마(Schema)는 데이터베이스의 구조와 구성 요소를 정의한 청사진입니다.
스키마는 데이터베이스 테이블, 열, 데이터 형식, 제약 조건 등과 같은 데이터 구조를 포함합니다.
데이터베이스의 스키마는 크게 세 가지 수준으로 나눌 수 있습니다.
1. 외부 스키마(External Schema): 이 수준은 사용자나 응용 프로그램이 데이터베이스에 접근하는 관점을 나타냅니다. 각 사용자 또는 응용 프로그램이 필요로 하는 데이터의 일부분만을 정의합니다. 여러 외부 스키마가 하나의 논리 스키마를 참조할 수 있습니다.
2. 논리 스키마(Logical Schema): 이 수준은 데이터베이스 전체의 논리적인 구조를 정의합니다. 논리 스키마는 데이터의 구조, 관계, 제약 조건 등을 기술하며, 다수의 응용 프로그램이 공유하는 데이터베이스의 전반적인 논리적 구조를 나타냅니다.
3. 내부 스키마(Internal Schema): 이 수준은 실제로 데이터가 어떻게 저장되고 처리되는지를 정의합니다. 데이터의 물리적 저장 구조, 인덱스, 저장 장치 등과 같은 내부적인 세부 정보를 포함합니다. 내부 스키마는 논리 스키마의 구현 방법을 나타냅니다.
이러한 세 가지 스키마 수준은 데이터베이스 설계에서 중요한 역할을 하며, 데이터의 구조를 이해하고 정의하는 데 도움을 줍니다.
외부 스키마는 최종 사용자와 응용 프로그램의 관점에서 중요하며, 논리 스키마는 데이터베이스 전체의 논리적 구조를 기술합니다.
내부 스키마는 실제 데이터의 물리적 저장 방법과 처리 방법을 정의하므로 데이터베이스 시스템 내부에서 중요한 역할을 합니다
- 데이터 독립성에 대해서 설명해주세요.
데이터 독립성이란 데이터베이스 시스템에서 응용 프로그램과 데이터 스키마 간의 독립성을 나타내며,
스키마 변경이나 응용 프로그램 수정 없이 데이터에 접근할 수 있는 능력을 의미합니다
- RDBMS(관계형 데이터베이스 관리시스템)는 뭘까요?
RDBMS(관계형 데이터베이스 관리시스템)는 데이터를 구조화하여 저장하고 관리하는 소프트웨어 시스템으로,
테이블 간의 관계를 기반으로 데이터를 저장하고 조회하며, 데이터의 무결성과 보안을 도와주는 데이터베이스 시스템입니다.
주요한 RDBMS 제품으로는 오라클, MySQL, Microsoft SQL Server 등이 있습니다.
- 릴레이션 스키마와 릴레이션 인스턴스에 대해서 설명해주세요.
릴레이션 스키마는 데이터베이스 테이블의 구조를 정의하고 있는 설계도로,
각 열의 이름과 해당 열이 어떤 데이터 유형을 가지는지를 정의합니다.
반면, 릴레이션 인스턴스는 릴레이션 스키마에 따라 실제로 저장된 데이터의 행들을 나타내며,
특정 시점의 테이블 내용을 포함하고 있습니다.
스키마는 테이블의 '계획'이라고 볼 수 있고, 인스턴스는 테이블의 '실제 데이터'라고 이해할 수 있습니다.
- 릴레이션의 차수와 카니덜리티에 대해 설명해주세요.
릴레이션의 차수는 해당 릴레이션에 포함된 속성(열)의 수를 나타내며, 속성의 갯수에 따라 릴레이션의 차수가 결정됩니다.
카디널리티는 릴레이션에 포함된 튜플(행)의 수를 의미하며, 릴레이션 내에 저장된 데이터의 행 갯수를 나타냅니다.
차수는 릴레이션의 넓이를, 카디널리티는 릴레이션의 높이를 나타냅니다.
- 키(Key)에 대해서 설명해주세요. (슈퍼키, 후보키, 기본키, 대리키, 외래키)
키는 데이터베이스에서 튜플(행)을 식별하거나 관계를 설정하기 위해 사용되는 필드 또는 속성의 집합입니다.
슈퍼키는 튜플을 고유하게 식별할 수 있는 모든 속성의 조합을 나타내며,
후보키는 슈퍼키 중에서 유일성과 최소성을 만족하는 키입니다.
기본키는 튜플을 유일하게 식별하기 위해 선택된 후보키로, 각 튜플은 기본키 값을 가져야 합니다.
대리키는 기본키와 유사하지만 중복된 값을 허용하며,
외래키는 다른 릴레이션의 기본키를 참조하는 키로, 릴레이션 간의 관계를 설정하는 데 사용됩니다.
- 무결성 제약조건에 대해서 설명해주세요. (도메인 무결성, 개체 무결성, 참조 무결성)
무결성 제약조건은 데이터베이스에서 저장된 데이터의 정확성과 일관성을 보장하기 위한 규칙입니다.
도메인 무결성은 각 속성이 정의된 도메인에 속한 값만을 가질 수 있어야 함을 나타냅니다.
개체 무결성은 기본키가 각 튜플을 고유하게 식별하고, 널 값을 허용하지 않는 규칙을 의미합니다.
참조 무결성은 외래키가 참조하는 테이블의 기본키와 일치하거나 널 값이어야 함을 보장하여 데이터 간의 일관성을 유지합니다.
이러한 무결성 제약조건들은 데이터베이스 내의 데이터가 올바르고 신뢰할 수 있도록 보장합니다.
- 사용했던 데이터베이스에 대해서 설명해주세요. (오라클DB, MySQL, MariaDB, MongoDB 등)
MySQL은 오픈 소스 기반의 관계형 데이터베이스 관리 시스템(RDBMS)으로, 표준 SQL 쿼리 언어를 사용하여 데이터를 저장, 검색, 수정 및 삭제할 수 있습니다.
MySQL은 안정성과 확장성이 뛰어나며, 다양한 프로그래밍 언어와 호환되어 다양한 웹 응용 프로그램과 시스템에서 널리 사용됩니다.
MongoDB는 NoSQL 데이터베이스로, JSON과 유사한 BSON 형식을 사용하여 데이터를 저장합니다.
MongoDB는 유연한 스키마 구조를 가지고 있어 데이터 모델을 빠르게 변경하고 확장할 수 있습니다.
또한, MongoDB는 대량의 비정형 데이터를 다루는 데 적합하며, 분산 시스템과 연동하여 대규모 애플리케이션을 구축하는 데 사용됩니다.
- (MySQL을 사용했다면) MySQL 엔진에 대해서 설명해주세요.
MySQL 엔진은 MySQL 데이터베이스 시스템에서 데이터의 저장, 검색, 수정, 삭제와 같은 기본적인 작업을 수행하는 핵심 역할을 하는 소프트웨어 모듈입니다.
MySQL은 다양한 스토리지 엔진을 제공하여 사용자가 데이터를 어떻게 저장하고 관리할지 선택할 수 있도록 합니다.
예를 들어, InnoDB는 MySQL의 기본 스토리지 엔진으로, 트랜잭션 처리와 ACID(원자성, 일관성, 고립성, 지속성) 속성을 지원하여 안정성과 신뢰성 있는 데이터 관리를 제공합니다.
이 엔진은 데이터의 무결성을 보장하고 동시에 높은 성능을 유지할 수 있으며, 복구 기능과 함께 트랜잭션 관리를 지원하여 데이터베이스 시스템의 신뢰성을 높이는 데 사용됩니다.
InnoDB는 대규모 웹 애플리케이션과 기업급 솔루션에서 널리 사용되며, 안정적이고 효율적인 데이터베이스 처리를 위한 강력한 엔진으로 평가받고 있습니다.
'외부 활동 > JSCODE 데이터베이스 면접' 카테고리의 다른 글
3주차 인덱스 (0) | 2023.11.20 |
---|---|
2주차 면접 예상 질문 (0) | 2023.11.14 |
2주차 : SQL (1) | 2023.11.14 |
1주차 : 데이터베이스란? (0) | 2023.11.05 |
OT 및 가이드 (0) | 2023.11.05 |