본 포스팅은 '면접을 위한 CS 전공지식 노트'를 기반으로 작성되었습니다.
DB
- 일정한 규칙 혹은 규약을 통해 구조화되어 저장되는 데이터의 모음
- 실시간 접근, 동시 공유 가
DBMS(DataBase Management System)
- 해당 데이터베이스를 제어, 관리하는 통합 시스템
- 데이터베이스 안의 데이터들은 특정 DBMS마다 정의된 query language를 통해 삽입, 삭제, 수정, 조회 등을 수행
엔티티(Entity)
- 사람, 장소, 물건, 사건, 개념 등 여러 개의 속성을 지닌 명사
- ex) 회원 엔티티
- 서비스의 요구사항에 맞게 속성이 결정
약한 엔티티
- 혼자서 존재하지 못하고 다른 것에 종속적임
강한 엔티티
- B의 존재 여부와 상관없이 존재할 수 있는 엔티티
릴레이션(relation)
- 데이터베이스에서 정보를 구분하여 저장하는 기본 단위
- 엔티티에 관한 데이터를 데이터베이스는 릴레이션 하나에 담아서 관리
관계형 DB vs NoSQL
관계형 DB
- MySQL
- 레코드-테이블-DB 구조
NoSQL
- MongDB
- 도큐먼트-컬렉션-DB 구조
속성(Attribute)
- 릴레이션에서 관리하는 구체적이며 고유한 이름을 갖는 정보
- 회원 엔티티의 속성: ID, 이름, 소속부서 등
도메인(domain)
- 릴레이션에 포함된 각각의 속성들이 가질 수 있는 값의 집합
필드와 레코드
- 레코드는 튜플이라고도 함.
필드 타입
- DBMS마다 다름
- MySQL 기준으로 기록
숫자 타입
날짜 타입
- DATE
- 날짜만
- 3byte 용량
- DATETIME
- 날짜 + 시간
- 8byte
- TIMESTAMP
문자 타입
- CHAR
- 유동적이지 않은 길이를 가진 데이터의 경우 효율적
- 최대 n 글자
- VARCHAR
- 유동적인 길이를 가진 데이터의 경우 효율적
- TEXT
- 큰 문자열 저장에 씀.
- 주로 게시판의 본문을 저장할 때
- BLOB
- 이미지, 동영상 등 큰 문자열 저장에 씀
- 보통 아마존의 S3를 이용
- ENUM
- SET
관계
- 1:1관계
- 1:N관계
- N:M관계
키(key)
- 테이블 간의 관계를 조금 더 명확하게 하고 테이블 자체의 인덱스를 위해 설정된 장치
- 기본키, 외래키, 후보키, 슈퍼키, 대체키
- 슈퍼키는 유일성(중복되는 값 X) 만족
- 후보키는 유일성, 최소성(최소 필드만 써서 키를 형성) 만족
기본키(Primary key)
- 유일성과 최소성을 만족하는 키
- 데이터가 고유하게 가지고 있는 속성(중복성 가지면 안됨)
- 자연키 또는 인조키 등 골라 설정
자연키
- 부적절한 것들을 거르고 자연스럽게 나오는 키
- 언젠가는 변하는 속성을 가짐
인조키
- 인위적으로 유저 아이디를 부여
- 오라클은 sequence, MySQL은 auto increment로 설정
- 자연키와 대조적으로 변하지 않음
- 보통 인조키 사용
외래키(foreign key)
- 다른 테이블의 기본키를 그대로 참조하는 것.
- 중복되어도 괜찮
후보키(candidate key)
- 기본키가 될 수 있는 후보
- 유일성과 최소성을 동시에 만족
대체키(alternate key)
- 후보키가 2개 이상일 경우 기본키로 지정하고 남은 후보키를 말함.
슈퍼키(super key)
- 각 레코드를 유일하게 식별할 수 있는 유일성을 갖춘 키
'CS 기본 > DB' 카테고리의 다른 글
조인의 종류 (0) | 2023.10.04 |
---|---|
인덱스 (1) | 2023.10.03 |
데이터베이스의 종류 (0) | 2023.10.01 |
트랜잭션과 무결성 (0) | 2023.10.01 |
ERD와 정규화 과정 (0) | 2023.09.28 |