백엔드 자바 CS 면접 빈출 질문 대비하기 - 데이터 베이스 개념 정리 1

2024. 8. 22. 17:45·면접 준비
728x90
반응형
SMALL

2024.08.14 - [면접 준비] - 백엔드 자바 CS 면접 빈출 질문 대비하기 - 스프링

[백엔드 자바 CS 면접 빈출 질문 대비하기 - 스프링

자바(초급+중급) 면접 리스트 보러가기 https://sunro1994.tistory.com/240 백엔드 자바 CS 면접 빈출 질문 대비하기 - 자바 초급+중급이번에는 면접 리스트편중 자바를 가져왔습니다. 자바의 기초질문들

sunro1994.tistory.com](https://sunro1994.tistory.com/241)

2024.08.14 - [면접 준비] - 백엔드 자바 CS 면접 빈출 질문 대비하기 - 스프링

[백엔드 자바 CS 면접 빈출 질문 대비하기 - 스프링

자바(초급+중급) 면접 리스트 보러가기 https://sunro1994.tistory.com/240 백엔드 자바 CS 면접 빈출 질문 대비하기 - 자바 초급+중급이번에는 면접 리스트편중 자바를 가져왔습니다. 자바의 기초질문들

sunro1994.tistory.com](https://sunro1994.tistory.com/241)

요즘 들어 면접 준비를 하면서 양질의 면접 준비 영상을 여러가지 보고 있다. 그 중 유튜버 쉬운코드님의 백발 백중 강의를 보면서 개념 정리를 먼저 하려고 한다. 면접 질문 정리 이전에 DB에 대해 내가 심도있게 공부했는가? 자아 성찰을 해보니 SQLD를 취득할때 잠깐 벼락공부하고 그 이후부터 하질 않았다... 그래서 처음부터 끝까지 다시 한 번 훑어보는 시간을 가지며 면접에 도움될 만한 내용들을 정리하려고 한다.

오늘 정리할 내용은 아래 인덱스와 같다. 이 외에도 Pk, Fk, constraint, subquery, stored function, Index, 원자성, DB테이블 설계 등에 대해 순차적으로 정리하려고 한다.

아래는 이번 글에서 정리할 내용들이다. 각 용어들의 의미와 three-schema architecture를 이해하고 있다면 다음 글로 넘어가자!

1. database, DBMS, DB System

2. data models

3. database , schema, state

4. database language

1. Databse, DBMS, DB System 용어정리

database(DB)

  • 전자적으로 저장되고 사용되는 관련있는 데이터들의 조직화된 집합

DBMS

  • database management systems : 사용자에게 DB를 정의하고 만들고 관리하는 기능을 제공하는 SW 시스템
  • 대표적인 DBMS : MySQL, SQL Server, Oracle
  • DB를 정의하다보면 부가적인 데이터가 발생한다. 이때 metadata라는 용어를 알아야 한다.

metadata

  • database를 정의하거나 기술하는 data
  • catalog라고도 부른다.
  • 데이터 유형, 구조, 제약 조건, 보안, 저장, 인덱스, 사용자 그룹등의 정보를 갖고 있음
  • metadata 또한 DBMS를 통해 저장/관리된다.

database system

  • database + DBMS + 연관된 applications
  • 줄여서 database라고도 부름
  • query를 날리면 database system이 요청을 받아서 처리한다. 부가적인 정보는 Meta-Data에서 조회하고 Stored Database에서 찾는다.

https://www.youtube.com/watch?v=aL0XXc1yGPs&list=PLcXyemr8ZeoT-_8yBc_p_lVwRRqUaN8ET&index=36&t=187s

2.\ Data Models

  • DB의 구조(데이터 유형, 데이터 관계, 제약사항)를 기술하는데 사용될 수 있는 개념들이 모인 집합
  • DB 구조를 추상화해서 표현할 수 있는 수단을 제공한다
  • datya model은 여러 종류가 있으며 추상화 수준과 DB 구조 방식이 조금씩 다르다.
  • DB에서 읽고 쓰기 위한 기본적인 동작들도 포함된다.

Data models 분류

  • conceptual (or high level)
  • logical
  • physical

conceptual data models

  • 일반 사용자들이 쉽게 이해할 수 있는 개념들로 이뤄진 모델
  • 추상화 수준이 가장 높음
  • 비즈니스 요구 사항을 추상화하여 기술할 때 사용
  • ERD가 가장 대표적인 예시

logical data models

  • 이해하기 어렵지 않으면서도 디테일하게 DB를 구조화 할 수 있는 개념을 제공
  • 데이터가 컴퓨터에 저장될 때의 구조와 크게 다르지 않게 DB구조화 가능
  • 특정 DBMS나 Storage에 종속되지 않는 수준에서 DB를 구조화 할 수 있는 모델
  • 백엔드 개발자는 relational data model, 다시 말해 테이블을 통해 해당 모델을 다룬다.
  • relational, object, object-relational 외에도 다양한 모델이 있다.
  • 대부분 우리가 아는 RDBMS는 relational data model이다. postgreSQL은 object-relational data model이다.

physical data models

  • 컴퓨터에 데이터가 어떻게 파일 형태로 저장되는지를 기술할 수 있는 수단을 제공
  • data format, data orderings, access path등
  • access path: 데이터의 검색을 빠르게 하기 위한 구조체 (index)

3.\ 스키마

database schema

  • data model을 바탕으로 database의 구조를 기술한 것
  • schema는 ㅇatabase를 설계할 떄 정해지며 한 번 정해진 후에는 자주 바뀌지 않는다.

database state

  • database에 있는 실제 데이터는 꽤 자주 바뀔 수 있다.
  • 특정 시점에 있는 데이터를 database state혹은 snapshot이라고도 한다.
  • 혹은 database에 있는 현재 instances의 집합이라고도 한다.

three-schema architecture

  • database system을 구축하는 아키텍처중 하나
  • user application으로부터 물리적인 database를 분리시키는 목적
  • 세가지의 level이 존재하며 각각 level마다 스키마가 정의되어 있다.
  • 각 레벨이 독립적이며 변화가 상위 레벨에 영향을 주지 않음
  • 대부분의 DBMS가 three level을 오나벽하게 혹은 명시적으로 나누지는 않음
  • 데이터가 존재하는 곳은 internal level
  1. external schema(user views)
  2. conceptual schemas
  3. internal schema

https://www.youtube.com/watch?v=aL0XXc1yGPs&list=PLcXyemr8ZeoT-_8yBc_p_lVwRRqUaN8ET&index=36&t=187s

internal schema

  • 물리적으로 데이터가 어떻게 저장되는지 physical data model을 통해 표현
  • data storage, data structure, access path 등 실체가 있는 내용 기술

external schema

  • external views, user viewws
  • 특정 유저들이 필요로 하는 데이터만 표현
  • 그외 필요없는 데이터는 숨김
  • logical data model을 통해 표현

conceptual schema

  • 전체 database에 대한 구조를 기술
  • 물리적 저장 구조에 대한 내용은 숨김
  • entities, data types, relationships, user operations 에 집중
  • logical data model을 통해 표현

4.\ DDL , SDL, VDL, DML

data definition language(DDL)

  • conceptual schema를 정의하기 위해 사용되는 언어
  • internal schema까지 정의할 수 있는 경우도 있다.

storage definition language(SDL)

  • internal schema를 정의하는 용도로 사용되는 언어
  • 요즘은 특히 relational DBMS에서는 SDL이 거의 없고 파라미터 등의 설정으로 대체되었다.

view definition language(VDL)

  • external schemas를 정의하기 위해 사용되는 언어
  • 대부분의 DBMS에서는 DDL이 VDL역할까지 수행

data manipulation language(DML)

  • database에 있는 data를 활용하기 위한 언어
  • CRUD등의 기능을 제공하는 언어

SQL

  • 오늘날의 DBMS는 DML, VDL, DDL이 따로 존재하기 보다는 통합도니 언어로 존재
  • 대표적인 예가 relational databse language : SQL
728x90
반응형
SMALL

'면접 준비' 카테고리의 다른 글

[컴퓨터 구조 + 캐시 ] 우리가 Redis를 사용해서 캐시 메모리를 쓰는 이유  (1) 2024.12.05
면접 준비시 반드시 피해야 할 것들!  (2) 2024.11.12
백엔드 자바 CS 면접 빈출 질문 대비하기 - 스프링  (1) 2024.08.14
백엔드 자바 CS 면접 빈출 질문 대비하기 - 자바 초급+중급  (0) 2024.08.13
백엔드 자바 CS 면접 빈출 질문 대비하기 - Security  (0) 2024.08.01
'면접 준비' 카테고리의 다른 글
  • [컴퓨터 구조 + 캐시 ] 우리가 Redis를 사용해서 캐시 메모리를 쓰는 이유
  • 면접 준비시 반드시 피해야 할 것들!
  • 백엔드 자바 CS 면접 빈출 질문 대비하기 - 스프링
  • 백엔드 자바 CS 면접 빈출 질문 대비하기 - 자바 초급+중급
공부하고 기억하는 공간
공부하고 기억하는 공간
IT 비전공자로 시작하여 훌륭한 개발자가 되기 위해 공부하고 있는 공간입니다. 틀린 내용이나 부족한 부분이 있으면 댓글로 알려주세요 바로 수정하겠습니다.
    250x250
  • 공부하고 기억하는 공간
    IT - railroad
    공부하고 기억하는 공간
  • 전체
    오늘
    어제
    • 분류 전체보기 (325)
      • 면접 준비 (22)
        • OS (6)
        • Spring Security (0)
        • Java (3)
        • DB (11)
        • Network (3)
      • ElasticSearch (2)
      • Kafka (4)
      • Spring (22)
        • Spring Cloud (7)
        • Security6 (5)
        • JPA (12)
        • 프로젝트 리팩토링 회고록 (4)
        • Logging (8)
        • Batch (2)
      • Redis (17)
        • Redis 개념 (8)
        • Redis 채팅 (5)
        • Redis 읽기쓰기 전략 (1)
      • AWS (11)
      • 리눅스 (29)
        • 리눅스 마스터 2급 (5)
        • 네트워크(기초) (7)
        • 리눅스의 이해 (6)
        • 리눅스의 설치 (2)
        • 리눅스 운영 및 관리 (6)
      • JAVA-기초 (16)
        • JAVA기본 (11)
        • Design Pattern (5)
      • JSP (27)
        • JSP 기본 개념 (10)
        • JSP (1)
      • SQL (1)
      • TIL (36)
      • 문제 풀이 (2)
        • Programmers (9)
        • 백준 문제풀이 (28)
      • JavaScript (10)
      • HTML (17)
      • Ngrinder (1)
        • Ngrinder 문서 정리 (1)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      자바 반복문
      JSP
      자바
      spring redis
      자바 알고리즘
      백준
      java
      JavaScript
      프로그래머스
      jsp기초
      CSS
      자바스크립트
      리눅스마스터2급
      JS
      리눅스
      리눅스마스터2급정리
      Springframework
      자바 면접
      스프링프레임워크
      Spring Data Redis
      Spring
      자바 면접질문
      Til
      springsecurity
      redis
      레디스
      HTML
      자바기초
      jsp request
      redis 채팅
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    공부하고 기억하는 공간
    백엔드 자바 CS 면접 빈출 질문 대비하기 - 데이터 베이스 개념 정리 1
    상단으로

    티스토리툴바