DBMS 기초
DBMS
데이터베이스를 관리하는 시스템
데이터를 저장하고 유지보수(수정, 삭제, 추가)하고 이를 검색하는 시스템
CRUD(Create, Retrieve, Update, Delete)
다양한 자료구조와 검색 구조를 사용해 빠른 검색 가능
검색에 최적화되어있다.(쓰기에 최적화된 시스템은 NOSQL계열)
Index
이진 탐색
최대 log2(N) 번 내에 검색 가능
데이터의 정렬이 필요
데이터가 추가/삭제/변경될 때마다 한가운데/왼쪽 가운데/오른쪽 가운데 값을 미리 계산-> Index
B-Tree
상용 DBMS에서 가장 일반적으로 많이 사용됨
이진 검색과 유사하지만 한 번에 비교를 2번 함(a, b:a <b)
작은 값 보다 작은 경우(x <a)
큰 값과 작은 값 사이인 경우(a <x <b)
큰 값보다 큰 경우(x> b)
B-트리 계열이 이진 검색 계열보다 빠름
데이터가 추가/삭제/변경될 때마다 a, b값을 업데이트하여 검색
RDBMS
관계형 데이터베이스 시스템
table 기반의 DBMS
- table /column 형태의 데이터 저장 방식
- table과 table 간의 연관관계(주로 외래 키 형태)를 이용해 필요한 정보를 구하는 방식
table 끼리의 중복 정보는 최소화시킨다.
- 동일한 데이터가 여러 군데 중복되어 존재하면 데이터의 수정 시 문제 발생 확률 증가
- 정규화를 통해 중복되는 정보를 최소화시킨다.
정규화:동일한 데이터가 여러 군데 저장되지 않도록 스키마(테이블 구조)를 만드는 것
여러 table을 합쳐 큰 table을 생성(JOIN 활용)해서 필요한 정보를 찾아낸다.
기본 용어
스키마(schema):DB, 테이블 정의 내역
SQL 쿼리(SQL Query):관계형 DBMS를 사용하는 전용 질의 언어
기본키(Primary Key:PK):테이블에서 하나의 레코드를 지정할 수 있는 하나 이상의 컬럼 집합
외래 키(Foreign Key:FK):어떤 테이블의 기본키가 다른 테이블의 컬럼에 들어 있을 경우
테이블(Table):정보들의 묶음 단위
컬럼(Column):테이블을 구성하는 정보들
레코드(Record):테이블에 들어 있는 여러 가지 인스턴스 하나하나를 지정
도메인 값(Domain Value):각 컬럼에서 나올 수 있는 후보 값