소피it블로그

[DB] 데이터베이스 기본 본문

CS/데이터베이스

[DB] 데이터베이스 기본

sophie_l 2022. 11. 13. 17:59

1. 데이터베이스

  • 데이터베이스: 일정한 규칙을 통해 구조화되어 저장되는 데이터의 모음
  • 데이터베이스 관리 시스템(Database Management System, DBMS): 사용자의 요구에 따라 정보를 생성해주고, 데이터베이스를 관리하는 소프트웨어.
  • 데이터베이스 위에 DBMS가 있고, 그 위에 응용프로그램이 있는 구조
  • 데이터의 독립성:
    • 논리적 독립성: 응용 프로그램과 데이터베이스를 독립시킴으로써 데이터베이스의 변경에도 응용 프로그램은 영향을 받지 않는다.
    • 물리적 독립성: 응용 프로그램과 물리적 저장장치를 독립시킴으로써 데이터베이스의 크기를 늘리거나 디스크를 추가, 변경하더라도 응용 프로그램은 영향을 받지 않는다.

2. 관계형 데이터베이스의 릴레이션 구조

  • 개체(Entity): 데이터베이스에 표현하려는 것으로, 현실 세계의 대상체.
  • 관계(Relation): 개체들 간의 논리적인 연결. 관계형 데이터베이스에서는 테이블이라고 한다.
  • 속성(Attribute): DB를 구성하는 가장 작은 논리적 단위. 속성의 수를 차수(Degree)라고 한다.
  • 튜플(Tuple): 릴레이션을 구성하는 각각의 행으로, 레코드라고도 한다. 튜플의 수를 기수(Cardinality)라고 한다.
  • 도메인(Domain): 하나의 속성이 가질 수 있는 원자값들의 집합

3. 관계형 데이터베이스의 제약 조건 - 키

  • 후보키(Candidate Key): 유일성과 최소성을 모두 만족시키는 키로, 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합.
  • 기본키(Primary Key, PK): 후보키 중에서 선정된 main key이다. 유일성과 최소성을 모두 만족시키는 키이며, 기본키로 설정된 속성에는 Null값이 있어서는 안 된다(UNIQUE & NOT NULL).
  • 대체키(Alternate Key): 후보키 중 기본키로 선정되지 않고 남은 키들.
  • 외래키(Foreign Key, FK): 다른 테이블의 기본키를 참조하는 속성. 중복되어도 괜찮지만 참조 릴레이션의 기본키에 없는 값은 입력할 수 없다.
  • 슈퍼키(Super Key): 유일성은 만족시키지만 최소성은 만족시키지 못하는 키.

4. 커넥션 풀

  • 커넥션 풀: 각 어플리케이션의 스레드에서 DB에 접근하기 위한 커넥션을 여러 개 생성해 저장해둔 공간(캐시)
  • DB에 접근하는 단계: 풀에서 커넥션을 가져옴 → 커넥션 사용 → 풀에 반환
  • 커넥션이 부족할 경우 클라이언트는 대기 상태로 전환되고, 풀에 커넥션이 반환되면 대기 상태의 클라이언트에게 순차적으로 제공
  • 사용하는 이유
    • 매번 커넥션을 생성하고 소멸할 필요가 없기 때문에 비용을 줄일 수 있다.
    • 미리 연결된 커넥션 객체를 사용함으로써 DB 접근 시간을 단축시킬 수 있다.
    • DB에 접근하는 커넥션의 수에 제한을 둠으로써 메모리와 DB에 걸리는 부하를 조정할 수 있다.

참고자료: https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/master/Database#%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4

 

GitHub - JaeYeopHan/Interview_Question_for_Beginner: Technical-Interview guidelines written for those who started studying progr

:boy: :girl: Technical-Interview guidelines written for those who started studying programming. I wish you all the best. :space_invader: - GitHub - JaeYeopHan/Interview_Question_for_Beginner: Techn...

github.com

https://github.com/WeareSoft/tech-interview/blob/master/contents/db.md#4-database

 

GitHub - WeareSoft/tech-interview: 🙍 tech interview

:loudspeaker:🙍 tech interview. Contribute to WeareSoft/tech-interview development by creating an account on GitHub.

github.com

http://www.yes24.com/Product/Goods/108887922

 

면접을 위한 CS 전공지식 노트 - YES24

디자인 패턴, 네트워크, 운영체제, 데이터베이스, 자료 구조, 개발자 면접과 포트폴리오까지!CS 전공지식 습득과 면접 대비, 이 책 한 권이면 충분하다!개발자 면접에서 큰 비중을 차지하는 CS(Comp

www.yes24.com

http://www.yes24.com/Product/Goods/107477760

 

2022 시나공 정보처리기사 실기 - YES24

시나공 정보처리기사 실기는 NCS 학습 모듈을 가이드 삼아 자세한 설명과 충분한 예제를 더한 후 교재에 수록된 문제나 이론은 하나도 빼놓지 않고 이 분야에 전혀 기초가 없는 수험생의 눈높이

www.yes24.com

https://delf-lee.github.io/post/connection-pool/

 

Databese Connection Pool | Delf's blog

Connection Pool 클라이언트의 요청에 따라 각 어플리케이션의 스레드에서 데이터베이스에 접근하기 위해서는 Connection 필요합니다. Connection pool은 이런 Connection 여러 개 생성해 두어 저장해 놓은 공

delf-lee.github.io